(function () {
	function bl() {
		this.ZN = {};
		this.MQ = {}
	}
	bl.oP = [];
	bl.HE = function (F) {
		var P = bl.oP;
		if (P.length != 0) {
			var o = new l(i.E.El);
			for (var w = 0; w < P.length; w++) P[w].w(o)
		}
		window.requestAnimationFrame(bl.HE)
	};
	window.requestAnimationFrame(bl.HE);
	bl.prototype.IP = function (F) {
		var P = this.ZN[F];
		if (P == null) return !1;
		return P.length > 0
	};
	bl.prototype.addEventListener = function (F, P) {
		this.$(F, P, null)
	};
	bl.prototype.$ = function (F, P, o) {
		if (this.ZN[F] == null) {
			this.ZN[F] = [];
			this.MQ[F] = []
		}
		this.ZN[F].push(P);
		this.MQ[F].push(o);
		if (F == i.E.El) {
			var X = bl.oP;
			if (X.indexOf(this) == -1) X.push(this)
		}
	};
	bl.prototype.removeEventListener = function (F, P) {
		var o = this.ZN[F];
		if (o == null) return;
		var X = o.indexOf(P);
		if (X < 0) return;
		var Y = this.MQ[F];
		o.splice(X, 1);
		Y.splice(X, 1);
		if (F == i.E.El && o.length == 0) {
			var y = bl.oP;
			y.splice(y.indexOf(this), 1)
		}
	};
	bl.prototype.w = function (F) {
		F.currentTarget = this;
		if (F.target == null) F.target = this;
		var P = this.ZN[F.type];
		if (P == null) return;
		var o = this.MQ[F.type];
		for (var w = 0; w < P.length; w++) {
			if (o[w] == null) P[w](F);
			else P[w].call(o[w], F)
		}
	};

	function G() {
		this.cZ = {};
		this.v5 = 0
	}
	G.prototype.reset = function () {
		this.cZ = {};
		this.v5 = 0
	};
	G.prototype.es = function (F) {
		this.v5++;
		this.cZ[F] = !0
	};
	G.prototype.Y9 = function (F) {
		this.v5--;
		delete this.cZ[F];
		if (this.v5 <= 0 || G.be(F, G.gV)) this.reset()
	};
	G.prototype.s = function (F) {
		for (var w = 0; w < F.aJ.length; w++)
			if (this.cZ[F.aJ[w]]) return !0;
		return !1
	};
	G.prototype.Ef = function () {
		var F = this,
			P = F.s(G.cm) ? 10 : 1,
			o = 0,
			X = 0;
		if (F.s(G.Nf)) o = -P;
		if (F.s(G.rc)) o = P;
		if (F.s(G.DY)) X = -P;
		if (F.s(G.yF)) X = P;
		return new aH(o, X)
	};
	G.prototype.gL = function () {
		var F = this,
			P = G.Ed;
		for (var w = 0; w < 10; w++)
			if (F.s(P[w])) return w;
		return -1
	};
	G.be = function (F, P) {
		return P.aJ.indexOf(F) != -1
	};
	G.iX = function (F) {
		var P = F.code,
			Y = !1;
		if (P == "") return !1;
		var o = G.be,
			X = G.Ed.concat([G.Kh, G.lY, G.VR, G.nH]);
		for (var w = 0; w < X.length; w++)
			if (o(P, X[w])) Y = !0;
		if (F.altKey && !F.shiftKey && !F.ctrlKey && Y) return !1;
		return G.DL.indexOf(P) == -1 || F.shiftKey && (P == "F5" || P == "F6")
	};
	G.a7p = function (F) {
		var P = F.code;
		return P != "" && (G.DL.indexOf(P) == -1 || F.shiftKey && (P == "F5" || P == "F6"))
	};
	G.u0 = function (F) {
		if (typeof F == "string") return F;
		var P = navigator.platform.toUpperCase().indexOf("MAC") >= 0;
		if (F == null) return "";
		var o = [];
		for (var w = 0; w < F.length; w++) {
			var X = F[w].Bj ? F[w].Bj : F[w];
			if (P && F[w].iu) X = F[w].iu;
			o.push(X)
		}
		if (P || o.length == 1) return o.join(" + ");
		else {
			var Y = o.pop();
			return o.join("+") + " + " + Y
		}
	};
	G.DL = "ZoomToggle BrightnessDown BrightnessUp AudioVolumeMute AudioVolumeDown AudioVolumeUp LaunchApplication1 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Enter Shift Escape KeyV".split(" ");
	G.RF = function (F) {
		var P = {
				"+": "NumpadAdd",
				"-": "NumpadSubtract",
				".": "Period"
			},
			o = F.code,
			X = F.key.toLowerCase(),
			Y = X.charCodeAt(0);
		if (X.length == 1) {
			if (97 <= Y && Y <= 122) {
				var y = "Key" + X.toUpperCase();
				o = y
			} else if (P[X]) o = P[X]
		}
		return o
	};
	G.Xr = {
		Bj: "Enter",
		aJ: ["Enter", "NumpadEnter"]
	};
	G.cm = {
		Bj: "Shift",
		iu: "\u21E7",
		aJ: ["ShiftLeft", "ShiftRight"]
	};
	G.gV = {
		Bj: "Meta",
		aJ: ["MetaLeft", "MetaRight", "OSLeft", "OSRight"]
	};
	G.Bl = {
		Bj: "Ctrl",
		iu: "\u2318",
		aJ: "ControlLeft ControlRight MetaLeft MetaRight OSLeft OSRight".split(" ")
	};
	G.ze = {
		Bj: "Alt",
		iu: "\u2325",
		aJ: ["AltLeft", "AltRight"]
	};
	G.aj4 = {
		Bj: "CtrlOrAlt",
		aJ: G.Bl.aJ.concat(G.ze.aJ)
	};
	G.yc = {
		Bj: "Escape",
		aJ: ["Escape"]
	};
	G.fd = {
		Bj: "Space",
		aJ: ["Space"]
	};
	G.gP = {
		Bj: "Tab",
		aJ: ["Tab"]
	};
	G.adv = {
		Bj: "Home",
		aJ: ["Home"]
	};
	G.agd = {
		Bj: "End",
		aJ: ["End"]
	};
	G.Nf = {
		Bj: "Left",
		aJ: ["ArrowLeft"]
	};
	G.DY = {
		Bj: "Up",
		aJ: ["ArrowUp"]
	};
	G.rc = {
		Bj: "Right",
		aJ: ["ArrowRight"]
	};
	G.yF = {
		Bj: "Down",
		aJ: ["ArrowDown"]
	};
	G.Kh = {
		Bj: "+",
		aJ: ["NumpadAdd", "Equal"]
	};
	G.lY = {
		Bj: "-",
		aJ: ["NumpadSubtract", "Minus", "Slash"]
	};
	G.JS = {
		Bj: ";",
		aJ: ["Semicolon"]
	};
	G.am9 = {
		Bj: "Dead",
		aJ: ["Dead"]
	};
	G.aiO = {
		Bj: "=",
		aJ: ["Equal"]
	};
	G.Yp = {
		Bj: "Backspace",
		aJ: ["Backspace"]
	};
	G.Yk = {
		Bj: "Delete",
		aJ: ["Delete"]
	};
	G.ads = {
		Bj: "Backslash",
		aJ: ["Backslash", "IntlBackslash"]
	};
	G.ajo = {
		Bj: "Backquote",
		aJ: ["Backquote"]
	};
	G.VR = {
		Bj: "[",
		aJ: ["BracketLeft"]
	};
	G.nH = {
		Bj: "]",
		aJ: ["BracketRight"]
	};
	G.Ua = {
		Bj: ".",
		aJ: ["Period"]
	};
	G.a9s = {
		Bj: ",",
		aJ: ["Comma"]
	};
	G.e7 = {
		Bj: "'",
		aJ: ["Quote"]
	};
	G.B = {
		Bj: "A",
		aJ: ["KeyA"]
	};
	G.ZA = {
		Bj: "B",
		aJ: ["KeyB"]
	};
	G.qS = {
		Bj: "C",
		aJ: ["KeyC"]
	};
	G.fY = {
		Bj: "D",
		aJ: ["KeyD"]
	};
	G.E = {
		Bj: "E",
		aJ: ["KeyE"]
	};
	G.EH = {
		Bj: "F",
		aJ: ["KeyF"]
	};
	G.da = {
		Bj: "G",
		aJ: ["KeyG"]
	};
	G.Fm = {
		Bj: "H",
		aJ: ["KeyH"]
	};
	G.vu = {
		Bj: "I",
		aJ: ["KeyI"]
	};
	G.RH = {
		Bj: "J",
		aJ: ["KeyJ"]
	};
	G.zo = {
		Bj: "K",
		aJ: ["KeyK"]
	};
	G.Ov = {
		Bj: "L",
		aJ: ["KeyL"]
	};
	G.eO = {
		Bj: "M",
		aJ: ["KeyM"]
	};
	G.g8 = {
		Bj: "N",
		aJ: ["KeyN"]
	};
	G.PW = {
		Bj: "O",
		aJ: ["KeyO"]
	};
	G.fi = {
		Bj: "P",
		aJ: ["KeyP"]
	};
	G.ae2 = {
		Bj: "Q",
		aJ: ["KeyQ"]
	};
	G.YP = {
		Bj: "R",
		aJ: ["KeyR"]
	};
	G.Z7 = {
		Bj: "S",
		aJ: ["KeyS"]
	};
	G.G = {
		Bj: "T",
		aJ: ["KeyT"]
	};
	G.B6 = {
		Bj: "U",
		aJ: ["KeyU"]
	};
	G.fv = {
		Bj: "V",
		aJ: ["KeyV"]
	};
	G.gy = {
		Bj: "W",
		aJ: ["KeyW"]
	};
	G.ej = {
		Bj: "X",
		aJ: ["KeyX"]
	};
	G.a9M = {
		Bj: "Y",
		aJ: ["KeyY"]
	};
	G.HW = {
		Bj: "Z",
		aJ: ["KeyZ"]
	};
	G.p4 = {
		Bj: "0",
		aJ: ["Numpad0", "Digit0"]
	};
	G.Yd = {
		Bj: "1",
		aJ: ["Numpad1", "Digit1"]
	};
	G.afW = {
		Bj: "2",
		aJ: ["Numpad2", "Digit2"]
	};
	G.a14 = {
		Bj: "3",
		aJ: ["Numpad3", "Digit3"]
	};
	G.a4p = {
		Bj: "4",
		aJ: ["Numpad4", "Digit4"]
	};
	G.a8a = {
		Bj: "5",
		aJ: ["Numpad5", "Digit5"]
	};
	G.ack = {
		Bj: "6",
		aJ: ["Numpad6", "Digit6"]
	};
	G.a6D = {
		Bj: "7",
		aJ: ["Numpad7", "Digit7"]
	};
	G.a0$ = {
		Bj: "8",
		aJ: ["Numpad8", "Digit8"]
	};
	G.acf = {
		Bj: "9",
		aJ: ["Numpad9", "Digit9"]
	};
	G.Ed = [G.p4, G.Yd, G.afW, G.a14, G.a4p, G.a8a, G.ack, G.a6D, G.a0$, G.acf];
	G.a3b = {
		Bj: "F1",
		aJ: ["F1"]
	};
	G.a8d = {
		Bj: "F2",
		aJ: ["F2"]
	};
	G.akI = {
		Bj: "F3",
		aJ: ["F3"]
	};
	G.abW = {
		Bj: "FF",
		aJ: ["F4"]
	};
	G.SS = {
		Bj: "F5",
		aJ: ["F5"]
	};
	G.a9K = {
		Bj: "F6",
		aJ: ["F6"]
	};
	G.abS = {
		Bj: "F7",
		aJ: ["F7"]
	};
	G.acV = {
		Bj: "F8",
		aJ: ["F8"]
	};
	G.ag_ = {
		Bj: "F9",
		aJ: ["F9"]
	};
	G.afq = {
		Bj: "F10",
		aJ: ["F10"]
	};
	G.abE = {
		Bj: "F11",
		aJ: ["F11"]
	};
	G.ahl = {
		Bj: "F12",
		aJ: ["F12"]
	};

	function bh() {
		bl.call(this);
		this.QD = {};
		this.PE = {};
		this.bo = 0;
		this._i = {};
		this.Jj = 0;
		bh.ZM = this
	}
	bh.prototype = new bl;
	bh.abY = function (F, P) {
		var w = 0,
			o = bh.yv;
		while (w < o.length) {
			if ((P >>> w & 1) == 1) break;
			w++
		}
		if (P == 0 || o[w][1] == "") {
			if ((P & 15) != 0 && bh.Ud(F, [33, 126]) > .7) w = 0;
			else if (P == 0) w = 0;
			else {
				w = 0
			}
		}
		return o[w][1]
	};
	bh.Ut = 120;
	bh.lH = 20;
	bh.cols = 16;
	bh.TF = function (F) {
		var P = F.name.postScriptName;
		if (P == null) return null;
		return P.replace(/ /g, "-")
	};
	bh.cv = function (F) {
		var P = F.name,
			o = P.typoFamilyName ? P.typoFamilyName : P.fontFamily,
			X = P.typoSubfamilyName ? P.typoSubfamilyName : P.fontSubfamily,
			Y = bh.a60,
			y = o.toLowerCase();
		for (var w = 0; w < Y.length; w++) {
			if (Y[w] == "roman") continue;
			if (y.endsWith(" " + Y[w]) || y.endsWith("-" + Y[w])) {
				var z = o.length - Y[w].length,
					s = o.slice(z);
				o = o.slice(0, z - 1);
				if (s != "") {
					if (X == "Regular" || X == o + " Regular") X = s;
					else X = s + " " + X
				}
				break
			}
		}
		var t = "BPdots,Baloo,Diner,EB Garamond Initials,Encode Sans Semi Condensed,Encode Sans Semi Expanded,Changa,HVD Poster,IM FELL DW,IM FELL Double,IM FELL English,IM FELL FLOWERS,IM FELL French Canon,IM FELL Great Primer,itsadzoke,JUICE,Lacuna,Latin Modern Mono,Latin Modern Sans,Latin Modern Roman,Latinia,Libre Barcode,Libre Caslon,Londrina,Panefresco,UnifrakturMaguntia,WC Rhesus,WC Sold Out,WC Wunderbach,Walkway".split(",");
		for (var w = 0; w < t.length; w++)
			if (o.startsWith(t[w])) {
				var s = o.slice(t[w].length);
				o = t[w];
				if (s.startsWith(" ") || s.startsWith("-")) s = s.slice(1);
				if (s != "") {
					if (X == "Regular") X = s;
					else X = s + " " + X
				}
				break
			} var d = {
				"Caudex-BoldItalic": "Bold Italic",
				"Comfortaa-Light": "Light",
				"Comfortaa-Medium": "Medium",
				"Comfortaa-SemiBold": "SemiBold",
				DevroyeSCOSF: "Regular SCOSF",
				DevroyeUnicode: "Regular Unicode",
				"LeagueScriptThin-Regular": "Regular",
				"Monda-Bold": "Bold",
				"Nobile-Bold": "Bold",
				"Oswald-BoldItalic": "Bold Italic",
				"Oswald-HeavyItalic": "Heavy Italic",
				"Oswald-LightItalic": "Light Italic",
				"Oswald-MediumItalic": "Medium Italic",
				"Oswald-RegularItalic": "Regular Italic",
				"PaloAlto-Italic": "Heavy Italic"
			},
			U = d[bh.TF(F)];
		if (U) X = U;
		return [o, X]
	};
	bh.prototype.VV = function (F, P) {
		if (this.QD[F]) return this.QD[F];
		if (this.PE[F]) return null;
		var o = null,
			X = this.Ij();
		if (X[F] != null) o = X[F][5];
		if (o == null) {
			var Y = bh.amC[F];
			if (Y == null) {
				var y = "AlibabaPuHuiTi-Regular AlibabaPuHuiTi-Bold AlibabaPuHuiTi-Regular AlibabaPuHuiTi-Bold AlibabaPuHuiTi-Regular AlibabaPuHuiTi-Bold AlibabaSans-Italic AlibabaSans-BoldItalic".split(" "),
					z = F.toLowerCase(),
					s = 0;
				if (z.indexOf("sans") != -1) s = 0;
				else if (z.indexOf("serif") != -1) s = 4;
				var t = z.indexOf("bold") != -1 || z.indexOf("-black") != -1,
					d = z.indexOf("italic") != -1 || z.indexOf("oblique") != -1 || z.endsWith("-it");
				if (t && d) s += 3;
				else if (d) s += 2;
				else if (t) s += 1;
				Y = y[s]
			}
			if (P != null && P > 128) Y = this.Jd(P, Y);
			if (this._i[F] == null) {
				this._i[F] = 1;
				var U = Date.now() - this.bo > 2e3 ? 2e3 : 0;
				this.bo = Date.now();
				alert(F + " \u27A1 " + Y, U)
			}
			return this.VV(Y, P)
		}
		this.PE[F] = "a";
		var v = new l(i.E.L, !0);
		v.data = {
			e: i.B.JX,
			S9: {
				url: "" + o
			}
		};
		this.w(v)
	};
	bh.prototype.Jd = function (F, P, o) {
		var X = this.QD[P];
		if (X && Typr.U.codeToGlyph(X, F) != 0) return P;
		var Y = this.Ij(),
			y = bh.aha(F),
			z = y[0];
		if (Y[P] && (Y[P][3] & z) == 0) {
			if (o)
				for (var w = 0; w < o.length; w++) {
					var s = o[w].Name,
						t = Y[s];
					if (t && (t[3] & z) != 0) return s
				}
			var s = bh.yv[y[1]][4];
			if (Y[s]) return s
		}
		return P
	};
	bh.aha = function (F) {
		var P = bh.yv,
			o = [0];
		for (var w = 0; w < P.length; w++) {
			var X = P[w][2];
			for (var Y = 0; Y < X.length; Y += 2)
				if (X[Y] <= F && F <= X[Y + 1]) {
					o[0] += 1 << w;
					o.push(w)
				}
		}
		if (o.length == 1) o.push(0);
		return o
	};
	bh.prototype.a3t = function (F, P) {
		if (P != !0) {
			var o = Date.now() - this.Jj > 2e3 ? 2e3 : 0;
			this.Jj = Date.now();
			alert(h9.get([22, 6, 0]) + " " + F.name.fullName + " " + h9.get([23, 0]) + ".", o)
		}
		var X = bh.TF(F),
			Y = this.Ij(),
			y = Y[X],
			z = bh.ahZ(F);
		if (y == null) {
			var s = document.createElement("canvas"),
				t = s.getContext("2d");
			s.width = bh.Ut;
			s.height = bh.lH;
			var d = bh.lH * 1.2 / F.head.unitsPerEm;
			t.translate(4, bh.lH * .9);
			t.scale(d, -d);
			t.fillStyle = "#000000";
			var U = Typr.U.shape(F, bh.abY(F, z[3]), !0);
			Typr.U.pathToContext(Typr.U.shapeToPath(F, U), t);
			t.fill();
			z.U6 = s.toDataURL();
			this.v3(z)
		}
		delete this.PE[X];
		this.QD[X] = F
	};
	bh.agu = function () {
		var F = bh.yv,
			P = [];
		for (var w = 0; w < F.length; w++) P.push(F[w][0]);
		return P
	};
	bh.yv = [
		["Latin-1", "Preview", [161, 169, 192, 246, 248, 255], .7, "AlibabaPuHuiTi-Regular"],
		["Latin Ext. A", "", [256, 383], .7, "AlibabaPuHuiTi-Regular"],
		["Greek", "", [913, 929, 931, 969], .7, "AlibabaPuHuiTi-Regular"],
		["Cyrillic", "", [1040, 1119], .7, "AlibabaPuHuiTi-Regular"],
		["Hebrew", "", [1473, 1479, 1488, 1514, 1520, 1524], .7, "AlibabaPuHuiTi-Regular"],
		["Arabic", "", [1569, 1594, 1600, 1749], .4, "AlibabaPuHuiTi-Regular"],
		["Hangul", "\uC608\uACE0\uD3B8", [4352, 4607, 44032, 55203], .7, "NotoSansKR-Regular"],
		["Chi-Jap-Kor", "\u9810\u7FD2", [12288, 12351, 12352, 12447, 12448, 12543, 19968, 40895], .05, "DroidSansFallback"],
		["Tibetan", "\u0F50\u0F74\u0F42\u0F66\u0F0B\u0F62\u0F97\u0F7A\u0F0B\u0F46\u0F7A\u0F0D", [3840, 3948, 3953, 4044], .7, "NotoSansTibetan"],
		["Devanagari", "\u092A\u0942\u0930\u094D\u0935\u093E\u0935\u0932\u094B\u0915\u0928", [2304, 2431], .7, "Hind-Regular"],
		["Thai", "\u0E20\u0E32\u0E1E\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07", [3585, 3642, 3647, 3675], .7, "K2D-Regular"],
		["Khmer", "\u1798\u17BE\u179B\u1787\u17B6\u1798\u17BB\u1793", [6016, 6109, 6112, 6121, 6128, 6137], .7, "Battambang-Regular"],
		["Vietnamese", "Xem tr\u01B0\u1EDBc", [192, 195, 200, 202, 204, 205, 210, 213, 217, 218, 221, 221, 224, 227, 232, 234, 236, 237, 242, 245, 249, 250, 253, 253, 258, 259, 272, 273, 296, 297, 360, 361, 416, 417, 431, 432, 7840, 7929], .95, "AlibabaPuHuiTi-Regular"]
	];
	bh.ahZ = function (F, P, o) {
		var X = F.name,
			t = 0;
		if (bh.TF(F) == null) {
			console.log(F);
			throw "No postScriptName!"
		}
		var Y = bh.yv,
			y = [];
		for (var w = 0; w < Y.length; w++) {
			var z = Y[w][2],
				s = Y[w][3];
			y[w] = bh.Ud(F, z) > s ? 1 : 0
		}
		for (var w = 0; w < y.length; w++) t += y[w] << w;
		var d = bh.cv(F);
		return [d[0], d[1], bh.TF(F), t, o, P]
	};
	bh.Ud = function (F, P) {
		var o = 0,
			X = 0;
		for (var Y = 0; Y < P.length; Y += 2) {
			for (var y = P[Y]; y <= P[Y + 1]; y++) {
				var z = Typr.U.codeToGlyph(F, y);
				if (z == 0) X++;
				else o++
			}
		}
		return o / (o + X)
	};
	bh.a3f = function (F, P) {
		if (F[2] < P[2]) return -1;
		if (F[2] > P[2]) return 1;
		return 0
	};
	bh.aiY = function (F, P) {
		if (F[5] == "fs/" + F[2] + ".otf") F[5] = "";
		else if (F[5] == "gf/" + F[2] + ".otf") F[5] = "a";
		if (F[2] == (F[0] + "-" + F[1]).replace(/\s/g, "")) {
			F[2] = ""
		} else if (F[2] == F[0].replace(/\s/g, "")) {
			F[2] = "a"
		}
		if (P) {
			if (F[0] == P[0]) F[0] = "";
			if (F[1] == P[1]) F[1] = "";
			if (F[3] == P[3]) F[3] = "";
			if (F[4] == P[4]) F[4] = ""
		}
		return F.join(",")
	};
	bh.ali = function (F, P) {
		F = F.split(",");
		if (F[0] == "") F[0] = P[0];
		if (F[1] == "") F[1] = P[1];
		if (F[3] == "") F[3] = P[3];
		else F[3] = parseInt(F[3]);
		if (F[4] == "") F[4] = P[4];
		else F[4] = parseInt(F[4]);
		if (F[2] == "") F[2] = (F[0] + "-" + F[1]).replace(/\s/g, "");
		else if (F[2] == "a") F[2] = F[0].replace(/\s/g, "");
		if (F[5] == "") F[5] = "fs/" + F[2] + ".otf";
		else if (F[5] == "a") F[5] = "gf/" + F[2] + ".otf";
		return F
	};
	bh.amC = {
		ArialMT: "LiberationSans",
		"Arial-BoldMT": "LiberationSans-Bold",
		"Arial-ItalicMT": "LiberationSans-Italic",
		"Arial-BoldItalicMT": "LiberationSans-BoldItalic",
		TimesNewRomanPSMT: "LiberationSerif",
		"TimesNewRomanPS-BoldMT": "LiberationSerif-Bold",
		"TimesNewRomanPS-ItalicMT": "LiberationSerif-Italic",
		"TimesNewRomanPS-BoldItalicMT": "LiberationSerif-BoldItalic",
		CourierNewPSMT: "LiberationMono",
		"CourierNewPS-BoldMT": "LiberationMono-Bold",
		"CourierNewPS-ItalicMT": "LiberationMono-Italic",
		"CourierNewPS-BoldItalicMT": "LiberationMono-BoldItalic",
		Courier: "CourierPrime",
		TrebuchetMS: "SourceSansPro-Regular",
		"TrebuchetMS-Bold": "SourceSansPro-Semibold",
		"TrebuchetMS-Italic": "SourceSansPro-It",
		"TrebuchetMS-BoldItalic": "SourceSansPro-SemiboldIt",
		"Times-Roman": "LiberationSerif",
		Impact: "Anton-Regular",
		Calibri: "SourceSansPro-Regular",
		"Calibri-Italic": "SourceSansPro-It",
		"Calibri-Bold": "SourceSansPro-Bold",
		CalibriBold: "SourceSansPro-Bold",
		"Times-Roman": "LiberationSerif",
		"Times-Italic": "LiberationSerif-Italic",
		"Times-Bold": "LiberationSerif-Bold",
		"Helvetica-Bold": "LiberationSans-Bold",
		"HelveticaNeue-Thin": "Roboto-Thin",
		"HelveticaNeue-Light": "Roboto-Light",
		HelveticaNeue: "Roboto-Regular",
		"HelveticaNeue-Roman": "Roboto-Regular",
		"HelveticaNeue-Medium": "Roboto-Medium",
		"HelveticaNeue-Bold": "Roboto-Bold",
		"HelveticaNeue-BoldItalic": "Roboto-BoldItalic",
		"HelveticaNeue-Black": "Roboto-Black",
		"HelveticaNeue-Heavy": "Roboto-Black",
		"SFProText-Light": "Roboto-Light",
		"SFProText-Regular": "Roboto-Regular",
		"SFProText-Roman": "Roboto-Regular",
		"SFProText-Medium": "Roboto-Medium",
		"SFProText-Semibold": "Roboto-Medium",
		"SFProText-Bold": "Roboto-Bold",
		"SFProText-BoldItalic": "SFProText-BoldItalic",
		"SFProText-Black": "Roboto-Black",
		"SFProText-Heavy": "Roboto-Black",
		"SFProDisplay-Light": "Roboto-Light",
		"SFProDisplay-Regular": "Roboto-Regular",
		"SFProDisplay-Roman": "Roboto-Regular",
		"SFProDisplay-Medium": "Roboto-Medium",
		"SFProDisplay-Semibold": "Roboto-Medium",
		"SFProDisplay-Bold": "Roboto-Bold",
		"SFProDisplay-BoldItalic": "SFProDisplay-BoldItalic",
		"SFProDisplay-Black": "Roboto-Black",
		"SFProDisplay-Heavy": "Roboto-Black",
		"SFUIText-Light": "Roboto-Light",
		"SFUIText-Regular": "Roboto-Regular",
		"SFUIText-Roman": "Roboto-Regular",
		"SFUIText-Medium": "Roboto-Medium",
		"SFUIText-Semibold": "Roboto-Medium",
		"SFUIText-Bold": "Roboto-Bold",
		"SFUIText-BoldItalic": "SFUIText-BoldItalic",
		"SFUIText-Black": "Roboto-Black",
		"SFUIText-Heavy": "Roboto-Black",
		Verdana: "AlibabaPuHuiTi-Regular",
		"Verdana-Bold": "AlibabaPuHuiTi-Bold",
		"Verdana-Italic": "AlibabaPuHuiTi-Regular",
		"Verdana-BoldItalic": "AlibabaPuHuiTi-Bold",
		"MyriadPro-Regular": "PTSans-Regular",
		"MyriadPro-Bold": "PTSans-Bold",
		"MyriadPro-LightIt": "PTSans-Italic",
		"MyriadPro-Semibold": "PTSans-Bold",
		"MyriadPro-BlackCond": "PTSans-NarrowBold",
		Cambria: "Oranienbaum-Regular",
		Georgia: "CharisSIL",
		"Georgia-Bold": "CharisSIL-Bold",
		"Georgia-Italic": "CharisSIL-Italic",
		"Georgia-BoldItalic": "CharisSIL-BoldItalic",
		"AGaramondPro-Regular": "EBGaramond08-Regular",
		"AGaramondPro-Bold": "EBGaramond08-Bold",
		"AGaramondPro-Italic": "EBGaramond08-Italic",
		Garamond: "EBGaramond08-Regular",
		FontAwesome: "FontAwesome5FreeSolid",
		"ProximaNova-Regular": "Metropolis-Regular",
		"ProximaNova-Semibold": "Metropolis-SemiBold",
		"ProximaNova-Light": "Metropolis-Light",
		BellMT: "GalatiaSIL",
		PalatinoLinotype: "TeXGyrePagella-Regular",
		"PalatinoLinotype-Bold": "TeXGyrePagella-Bold",
		"PalatinoLinotype-Italic": "TeXGyrePagella-Italic",
		"PalatinoLinotype-BoldItalic": "TeXGyrePagella-BoldItalic",
		"": ""
	};
	bh.prototype.Ij = function () {
		if (FNTS.map == null) {
			var F = FNTS.list,
				P = [];
			for (var w = 0; w < F.length; w++) {
				P[w] = bh.ali(F[w], P[w - 1]);
				P[w].XN = w;
				this.v3(P[w])
			}
		}
		return FNTS.map
	};
	bh.prototype.v3 = function (F) {
		var P = F[0],
			o = F[1],
			X = F[5];
		if (FNTS.map == null) FNTS.map = {};
		FNTS.map[F[2]] = F;
		if (FNTS.mapFS == null) FNTS.mapFS = {};
		var Y = FNTS.mapFS[P + "---" + o];
		FNTS.mapFS[P + "---" + o] = F;
		if (FNTS.mapSub == null) FNTS.mapSub = {};
		var y = FNTS.mapSub[P];
		if (y == null) y = FNTS.mapSub[P] = [];
		var z = y.indexOf(o);
		if (z == -1) y.push(o);
		else y[z] = o
	};
	bh.a6Z = function (F, P) {
		return bh.Ge(F) - bh.Ge(P)
	};
	bh.Ge = function (F) {
		F = F.toLowerCase();
		var P = bh.a9Q(F) + (bh.aaA(F) << 1);
		if (F.indexOf("cond") == -1) P += 1 << 25;
		return P
	};
	bh.a9Q = function (F) {
		return F.indexOf("italic") != -1 || F.indexOf("oblique") != -1 ? 1 : 0
	};
	bh.a60 = "two,four,eight,hair,thin,ultralight,extralight,exlight,light,regular,roman,book,medium,semi bold,semibold,demibold,extra bold,extrabold,bold,heavy,ultra,x black,black,extra".split(",");
	bh.ahF = ["two", "four", "eight", "hair", "thin", "ultralight", "extralight", "light", ["regular", "roman", "book"], "medium", ["semibold", "demibold"], "bold", "extrabold", "heavy", "ultra", "black", "x black"];
	bh.aaA = function (F) {
		var P = bh.ahF,
			o = -1,
			X = -1;
		for (var w = 0; w < P.length; w++) {
			var Y = P[w];
			if (Y instanceof Array)
				for (var y = 0; y < Y.length; y++) {
					var z = Y[y];
					if (F.indexOf(z) != -1 && (o == -1 || X < z.length)) {
						o = w;
						X = z.length
					}
				} else if (F.indexOf(Y) != -1 && (o == -1 || X < Y.length)) {
					o = w;
					X = Y.length
				}
		}
		if (o == -1) o = 8;
		return o
	};
	bh.u5 = function (F, P) {
		var o = 1e9,
			X = null,
			Y = bh.Ge(P);
		for (var w = 0; w < F.length; w++) {
			var y = Math.abs(bh.Ge(F[w]) - Y);
			if (y < o) {
				o = y;
				X = F[w]
			}
		}
		return X
	};
	bh.prototype.TS = function (F, P) {
		this.Ij();
		return FNTS.mapFS[F + "---" + P]
	};
	bh.prototype.MW = function (F) {
		this.Ij();
		return FNTS.mapSub[F]
	};
	bh.prototype.amf = function () {
		this.Ij();
		return FNTS.mapSub
	};
	var ej = {
			Qt: 0,
			jT: null,
			LR: null,
			KT: null,
			tu: null,
			$L: null,
			li: !0,
			Go: 0,
			pj: !1
		},
		aW = 0;
	ej.WQ = function () {
		var F = i.Xn(24) ? " " : "",
			P = i.A0[i.Dj("Uu," + F)];
		P = P[i.Dj(F + "$/")];
		return ej.X9() != null && ej.X9()[i.ZK("!&|'&50")] * 50 > P() / 20
	};
	ej.Wx = function () {
		return ej.a36() != null
	};
	ej.X9 = function () {
		return ej.$L
	};
	ej.uZ = function (F) {
		window.addEventListener("message", ej.a95, !1);
		setInterval(ej.E8, 5e3);
		if (ej.Wx()) {
			ej.jT = F;
			ej.G1()
		} else setTimeout(F, 1)
	};
	ej.E8 = function () {
		if (ej.Wx() && ej.pj) {
			ej.Sd(ej.gz());
			ej.pj = !1
		}
	};
	ej.Lh = function (F) {
		ej.jT = F;
		var P = "https://www.photopea.com/papi/login.php?redirect=" + encodeURIComponent(window.location.href);
		ej.KT = window.open(P, "_blank")
	};
	ej.alw = function () {
		localStorage.removeItem(ej.Qt + "_uid");
		localStorage.removeItem(ej.Qt + "_provider");
		localStorage.removeItem(ej.Qt + "_token");
		ej.$L = null
	};
	ej.a95 = function (F) {
		if (F.data instanceof ArrayBuffer || F.data instanceof Object) return;
		if (F.data.charAt(0) != "{") return;
		var P = JSON.parse(F.data);
		if (P.prms == null) return;
		var o = P.prms.split(",");
		if (o[0] == "papi_logged_in") {
			localStorage[ej.Qt + "_uid"] = o[1];
			ej.KH(o[2]);
			localStorage[ej.Qt + "_provider"] = o[3];
			ej.KT.close();
			ej.G1()
		}
		if (o[0] == "payment_complete") {
			ej.tu.close();
			ej.G1()
		}
	};
	ej.a36 = function () {
		var F = localStorage[ej.Qt + "_token"];
		if (F != null && Date.now() * .001 + 10 < parseInt(F.split("-")[0])) return F;
		return null
	};
	ej.KH = function (F) {
		var P = localStorage[ej.Qt + "_token"];
		if (P != null && parseInt(F.split("-")[0]) < parseInt(P.split("-")[0])) return;
		localStorage[ej.Qt + "_token"] = F;
		clearTimeout(ej.Go);
		ej.Go = setTimeout(ej.ahx, Math.min(1e9, parseInt(F.split("-")[0]) * 1e3 - Date.now() - 20 * 1e3))
	};
	ej.ahx = function () {
		var F = new XMLHttpRequest;
		F.open("POST", "https://www.photopea.com/papi/record_new.php", !0);
		F.onload = ej.abf;
		var P = ej.rH() + "&read=2";
		F.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		F.send(P)
	};
	ej.G1 = function () {
		var F = new XMLHttpRequest;
		F.open("POST", "https://www.photopea.com/papi/record_new.php", !0);
		F.onload = ej.a5y;
		var P = ej.rH() + "&read=1";
		F.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		F.send(P)
	};
	ej.Sd = function (F) {
		var P = new XMLHttpRequest;
		P.open("POST", "https://www.photopea.com/papi/record_new.php", !0);
		P.onload = ej.akP;
		var o = ej.rH() + "&read=0&score=0&spublic=" + ej.li + "&record=" + encodeURIComponent(JSON.stringify(F));
		P.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		P.send(o)
	};
	ej.a5y = function (F) {
		var P = JSON.parse(F.target.response);
		if (P.error) {} else {
			ej.$L = P.user;
			var o = ej.gz(),
				X = P.record;
			if (P.record) {
				ej.li = P.spublic;
				ej.r_(X)
			} else if (o) ej.Sd(o)
		}
		ej.KH(P.token);
		if (ej.jT) {
			ej.jT();
			ej.jT = null
		}
		if (ej.LR) {
			ej.LR();
			ej.LR = null
		}
	};
	ej.abf = function (F) {
		var P = JSON.parse(F.target.response);
		ej.KH(P.token)
	};
	ej.akP = function (F) {
		var P = JSON.parse(F.target.response);
		ej.KH(P.token);
		if (ej.LR) ej.G1()
	};
	ej.rH = function () {
		return "app=" + ej.Qt + "&uid=" + localStorage[ej.Qt + "_uid"] + "&token=" + localStorage[ej.Qt + "_token"]
	};
	ej.SI = function () {
		return ej.gz()
	};
	ej.Tu = function (F, P) {
		ej.r_(F);
		ej.pj = !0;
		if (P) {
			ej.LR = P;
			ej.E8()
		}
	};
	ej.gz = function () {
		var F = localStorage[ej.Qt + "_stateLocal"],
			P;
		if (F == null) return null;
		try {
			P = JSON.parse(F)
		} catch (h9) {
			return null
		}
		return P
	};
	ej.r_ = function (F) {
		var P = JSON.stringify(F);
		localStorage[ej.Qt + "_stateLocal"] = P
	};
	ej.order = function (F, P, o) {
		ej.jT = o;
		var X = "https://www.photopea.com/papi/order.php?ptype=" + P + "&param=" + F + "&uid=" + localStorage[ej.Qt + "_uid"] + "&token=" + localStorage[ej.Qt + "_token"];
		ej.tu = window.open(X, "_blank")
	};
	var h9 = {};
	h9.w5 = 0;
	h9._8 = {};
	h9.C$ = function (F) {
		var P = LNG.tables,
			o = P[F];
		if (typeof o == "string") {
			o = P[F] = h9.Vy(o)
		}
		return o
	};
	h9.Vy = function (F) {
		var P = [],
			o = 0,
			X = 0,
			Y = [],
			y = F.length;
		while (X != y) {
			var z = F[X];
			if (z == "[") {
				P.push(Y);
				Y = [];
				X = o = X + 1
			} else if (z == "]") {
				Y.push(o == X ? null : F.substring(o, X));
				var s = Y;
				Y = P.pop();
				Y.push(s);
				X = o = X + 1
			} else if (z == ";") {
				if (F[X - 1] != "]") Y.push(o == X ? null : F.substring(o, X));
				X = o = X + 1
			} else X++
		}
		return Y
	};
	h9.get = function (F) {
		if (typeof F == "string") return F;
		var P = typeof F[0];
		if (P == "number") {
			for (var w = 1; w < F.length; w++)
				if (typeof F[w] != "number") {
					console.log(F);
					throw "e"
				} return h9.a3W(F)
		}
		var o = h9.get(F[0]);
		for (var w = 1; w < F.length; w++) {
			var X = h9.get(F[w]),
				Y = o.indexOf("VAR" + (w - 1));
			o = o.slice(0, Y) + X + o.slice(Y + 4)
		}
		return o
	};
	h9.a3W = function (F) {
		var P = JSON.stringify(F);
		if (h9._8[P] != null) return h9._8[P];
		var o = h9.C$(0),
			X = h9.C$(h9.w5),
			Y = h9.LF(F, X);
		if (Y == null) Y = h9.LF(F, o);
		return Y
	};
	h9.LF = function (F, P) {
		for (var w = 0; w < F.length; w++) {
			P = P[F[w]];
			if (P == null) return null;
			else if (typeof P == "string") break
		}
		return P.split("::")[0]
	};
	h9.akV = function () {
		var F = function (o, X) {
				var Y = o.code,
					y = X.code;
				if (Y == "en") return -1;
				if (y == "en") return 1;
				var z = navigator.languages,
					s = z.indexOf(Y) != -1,
					t = z.indexOf(y) != -1;
				if (s && t) return Y > y ? 1 : -1;
				if (s) return -1;
				if (t) return 1;
				return Y > y ? 1 : -1
			},
			P = LNG.langs.slice(0);
		P.sort(F);
		return P
	};
	h9.aaM = function (F) {
		h9.w5 = F
	};
	h9.mI = function (F) {
		for (var w = 0; w < LNG.langs.length; w++)
			if (LNG.langs[w].code == F) h9.w5 = w
	};
	h9.DE = function () {
		return LNG.langs[h9.w5].code
	};
	h9.a6l = function (F) {
		for (var w = 0; w < F.length; w += 2)
			if (F[w + 1].indexOf(">") == -1) h9._8[JSON.stringify(F[w])] = F[w + 1]
	};
	h9.Kr = function (F) {
		var P = -1,
			o = LNG.langs;
		for (var w = 0; w < o.length; w++)
			if (o[w].code == F) P = w;
		return P
	};
	var bE = {
		Ea: !1
	};
	bE.JO = function () {
		return i.A0[i.d9("vrt", 2)] != i.A0[i.d9("xksn", 5)]
	};
	bE.q$ = function () {
		var F = i.ZK,
			P = i.A0[F("u#z/*%1:")],
			o = P[F("s#{3")],
			X = F("t&|{1%h2.94@I"),
			Y = F("xy+_)%0+7@qK~<"),
			y = F("r$'\x7F+$f.283"),
			z = F("#y$)3%f.283"),
			s = 0,
			t = F("$y+[145/+AC7"),
			d = F("rx*\x7F+3("),
			U = i.hs("Y_5UDDB>&\x7F");
		if (i.A0[U] != !0) {
			s = 1
		}
		var v = P[X](F("u}-"));
		v[t](F("zx"), d);
		v[t](F("$(0&\""), F("(}{.%ZXVY<GmU@@GHL[$\" #fq7"));
		o[y](v);
		v = P[Y](d);
		if (v == null) {
			s = 2
		} else {
			if (!o[F("t#%.~)19")](v)) {
				s = 3
			} else if (Math.round(v[F("xy+\\,51*2:6uAA@LU6LMa")]()[F("(}{.%")] - 500) > 5) {
				s = 4
			}
			o[z](v)
		}
		return s
	};
	bE.ac3 = function (F) {
		var P = i.Dj("y),+1ZRU:.787=mlITWRZVgphaifg}u~!C{+,P5)2328eDPnDJ\\NhYdgbjf2q}"),
			o = {
				method: "HEAD",
				mode: "no-cors"
			},
			X = new Request(P, o);
		fetch(X).then(function (Y) {
			return Y
		}).then(function (Y) {
			F(!1)
		}).catch(function (Y) {
			console.clear();
			F(!0)
		})
	};
	bE.a0S = function () {
		var F = i.A0._cwY,
			P = i.A0[i.ZK("$y+n&-(5>@")],
			o = "FQi[VE];;J6@?18',!'*3$|*niu~hgcWhlOUU`LOIT53A-11/)~$'>-cvys~_]k[RQiYHEJMWH@N--E$++|!|~t*hht,{HaWP_NrcLBNWIDN>049?5(+3qq}3$pp{ZjkoMi6UEJCLAQ/.+47-09>Tspy|ru~(xAaVl2Tcm]|LMZ\\",
			X = String.fromCharCode(32);
		F(i.hs(o) + X + X + bE.q$());
		if (!ej.WQ()) P(bE.a0S, Math.round(Math.PI * 1e4))
	};
	bE.agi = function (F, P, o, X, Y) {
		i.TD(o);
		var y = i.ZK,
			z = y("r$'\x7F+$f.283"),
			s = y("$y+[145/+AC7"),
			t = y("rx{_3%1:u5BF:F@P"),
			d = y("#y'&~#("),
			U = y("$(0&\""),
			v = y("$&z"),
			A = y("r'0( "),
			Z = y("%y/.`/1:.:C"),
			D = y("u}-"),
			q = i.Dj("zz*{+&"),
			R = i.A0[y("u#z/*%1:")],
			J = y("t&|{1%h2.94@I"),
			W = y("$w)#-4"),
			p = "lor<%03.62D4=f?LFrX`aY{]okcwoxz7;54;&14/73E5>gAIVVUMhy{\\dt.kw~:qwC*%/759105DEmrtu~pu+rs\"7!.'lt%>{(/J\"(S:5?GEIA@ETU}#%&/{Z,^(p{~y\"}0 )R+82^DLMEgI[WOc[df#'! 'q| z#~1!*S-5BBA9TegHP`yWcj&]c/upz#!%|{!01Y^`ai\\av^_m#lyrX`p*gsz6ms?&!+315-,1@AinpqygFwJs\\gjemi{kt>v$}J0891S5GC;OGPRnrlkr]hkfnj|lu?x!..-%@QS4<LeCOVqIOza\\fnlphgl{|EJNPTHMbJKYnXe^DL\\uS_f\"Y_+qlv~|!xw|,-UZ^`dS2c6_HSVQYUgW`*boi6{$%|?!3/';3<>Z^XW^ITWRZVhXa+dlyyxp,=? (8Q/;B]5;fMHRZX\\TSXgh16:<A49N67EZDQJ08Ha?KRmEKv]XbjhldchwxAFJLQ?}O\"K4?B=EASCLuN[U\"goph+l~zr'~(*FJDCJ5@C>FBTDMvPXeed\\w)+ks$=z'.I!'R94>FDH@?DST|\"&). %:\"#1F0=6{$4M+7>Y17bIDNVTXPOTcd-269>+i;m7 +.)1-?/8a:GAmS[\\TvXjf^rjsu260/6!,/*2.@09b<DQQPHctvW_o)fry5lr>% *204,+0?@hmrorkp&mn|2{)\"go 9v#*E|#N50:B@D<;@OPx}# #vU'Y#kvyt|x+z$M&3-Y?GH@bDVRJ^V_a}\"{z\"lwzu}y,{%N(0==<4O`bCK[tR^e!X^*pku}{ wv{+,TY^[_W\\qYZh}gtmS[k%bnu1hn:!{&.,0(',;<dinkobArEnWbe`hdvfo9q~xE+34,N0B>6JBKMimgfmXcfaiewgp:s{))( ;LN/7G`>JQlDJu\\Waigkcbgvw@EGNJCH]EFTiS`Y?GWpNZa|TZ&lgqyw{srw'(PUW^ZN-0aZjmFXP\"Yj+**5k7h7o{\"+|\"113<X<6HeJRBOO\\TTdh'kfpxvzrqv&'J-,4V6BS`YCRUTZ${~jmp*fqtows&u~.#3:0-2C`9HImVFOyXd#^jq.my+81)v+;&14/73E5>Yy_JUXS[WiYb}}!'&+K3}),'/+=-6_8E?]}cNY\\W_[m]f0huo..17uz[C=+?OC=,HNVw|~ ( gaPlrz<ACDMD,&t17?`egnjw_JUXS[WiYb,dqk8}&'~A#51)=5>@\\`ZY`TN=Y_g).01:%E+u!$~'#5%.W159?GA2NT\\rt ,'328768:AqVFNSUV_Xb0D?IQOSKJyRabWogfv8190nIKLKBE][,]T^?GWpNZa|TZ&lgqyw{srw'(PUWXaSX`7=@2GW^TQV{^ilgok}mv@&.} &8OSVkS>ILGOK]MV em]_ew/3;t|*z~,(n75C;6D'MBHnr(or]hkfnj|lu?y&{ -)y/?F<9>Ofj es)Xcfaiewgp:r yF,45-O1C?7KCLNjnhgnb\\Kgmu7<>?G3S9$/2-51C3<e?CGMUO@\\bj!#.:5A@FEDFHO dT\\acdlfm>RMW_]aYX(`ope}ut%F?G>|U]ZYPifi:kblMUe~\\ho+bh4zu (&*\"!&56^cefnafnEKN@Uelb_d*lwzu}y,{%N4<,.4F]adyaLWZU]Yk[d.s{kms&=AI#+8)-:6|ECQIDR5[PV|!6}!kvyt|x+z$M(4*.;7(=MTJGL]tx.s\"7fqtows&u~H!.(T:BC;]?QMEYQZ\\x|vu|pjYu{$EJLSOAaG2=@;C?QAJsMQU[c]Njpx/1<HCONTSRTV].rbjoqxtt|L`[emkogf6n}~s,$#3TMUL+igpg^a}wHypz[cs-jv}9pvB)$.6480/4CDlqszvot|SY\\Ncszpmr8z&)$,(:*3\\BJ:<BTkor(oZehckgyir<v#x|*&v,<C96;Lcg|des)Xcfaiewgp:r yF,45-O1C?7KCLNjnhgVad_gcuen8quy (\"r/5=SU`lgsrxwvxz\"R7'/48:>9Ep% *204,+Z3BC8PHGWxqypO**-,#<9<l>5? (8Q/;B]5;fMHRZX\\TSXgh16:<@49Aw}!r(8?527\\?JMHPL^NW!fn^`fx047L{'*%-);+4]7;?EMG8TZbxz&2-98>=<>@Gw\\LTY]_d^g6JEOWUYQP Xgh]uml|>7?6tOORQH]ca2cZdEM]vT`g#Z`,rmw }\"yx}-.V[_afY^f=CF8M]dZW\\\"dormuq$s|F,4$&,>UY\\qALOJRN`PY#\\`djrl]y (>@KWR^]cbacel=\"qy~#&+$-[ojt|z~vuE}-.#;32Bc\\d[:ttwvm#)'W) *jr#<y&-H &Q83=ECG?>CRS{!%(-~$,bhk]r#* |\"G*583;7I9BkQYIKQcz~\"7fqtows&u~H\"&*082#?EMcep|w$#)(')+2bG7?DIFIIR!50:B@D<;jCRSH`XWg)\"*!_::=<3HNL|NEO08Ha?KRmEKv]XbjhldchwxAFKHKDIQ(.1#8HOEBGlOZ]X`\\n^g1v~npv)@DG\\,7:5=9K;DmGKOU]WHdjr)+6B=IHNMLNPW(l\\dinkonwFZU_geia`0hwxm&}|-NGOF%__baXmsqBsjtU]m'dpw3jp<#}(0.2*).=>fkpmqinvMSVH]mtjgl2t #}&\"4$-V<D46<Neil\"Q\\_Zb^p`i3myos!|m#3:0-2CZ^s[^abp&oN",
			n = i.Dj(" u.$%\"86<"),
			b = i.Dj("!#c$,&"),
			Q = i.A0[n][b];
		if (!bE.JO() && !bE.q$() && Q && F * P > 300 * 300) {
			var _ = R[y("xy+_)%0+7@BtN,<E/ETO")](y("yyx~"))[0],
				a = !1;
			if (Y == 1 && Math.random() < .5) {
				var L = R[J](q),
					m = i.Dj("zxC+&086:21`9HI>rzwc$!$V>CP/l{m|ww(.#'7SZYD7IIILLTPw]a!e\\phmurryz~.HON3*>6;CODBULryxdbff]qinv7>=!|!2.%916>^edSHFYPv~'$#bbijn}8EBE"),
					I = m.split(",");
				for (var w = 0; w < I.length; w += 2) L[s](I[w + 0], I[w + 1]);
				o[z](L);
				if (!bE.Ea) {
					bE.Ea = !0;
					var p = i.Dj("9z-)!5-68LW[UT[UCWg^WkY4!.63~?<?/HJK7VTNVM28LHFTb#hr_Zdljnfe5m|}rGOL8XUX+rw%^f]YQSRadcu6{mg|(c[]\\,/.r)8?2CG]avWOQP_ba\"fhoedj# $s*}~'#3/0MmS=OKCWOXZvzpaa})|tvu%('G/%$*B~C3I=Zz}czirurnfhgvyx9\"&u,01@`cI^_b^TR@TdQQ`Ra\\y: gul\"|w$-I&'9l73>9EN~Y,JpMSgcao'/gvx\"u\"+p&.'5@Y3A8MHCOX\"SSbTc^*nrjv37L}}-~.)TA?9G;`TLNM\\_^~f\\mmoqyn`t+*AV((7)83^7CIPEjn$il-megfuxw8|!x%A>fgyJWNX=LONT}ux]eUW]o-i3lz$s!|}**'2W;5Gd@=LRFLyOUl6cr=27=CAFKISWPKR,2FB@NgfhYc)u|Zf^mei\\\\V8' 4\"HMLN@k\"A9>CNIU^Ldlf^!2Fxm}%z#~@DKg(>2]AEPcgmd\\]cV|2rjlkz}|=&z' FJ_ESUYn"),
						c = R[J](W);
					c[Z] = p;
					_[z](c)
				}
				return
			}
			var u = i.A0[y("[gfh")][y("!u)-\"")](i.Dj(p));
			if (!bE.Ea) {
				bE.Ea = !0;
				var c = R[J](W);
				c[s](v, u[1]);
				_[z](c);
				var c = R[J](W);
				c[s](A, A);
				c[s](v, u[2]);
				_[z](c);
				var c = R[J](W);
				c[Z] = u[3];
				_[z](c)
			}
			var N = u[0],
				V = [N[Y]],
				M = N[5];
			if (Y == 2) {
				V = [N[3], N[4]];
				if (P >= 3 * 270 + 20) V = [N[3], N[4], N[5]];
				if (P >= 4 * 270 + 20) V = [N[3], N[4], N[5], N[6]]
			}
			for (var w = 0; w < V.length; w++) {
				var O = V[w],
					K = R[J](D);
				K[s](y("zx"), O[1]);
				K[s](U, y("~u)!&.P(8@CABrmnQ\\"));
				o[z](K);
				var c = R[J](W);
				c[Z] = O[0];
				K[z](c)
			}
			if (a) {
				var K = R[J](D);
				K[s](y("zx"), M[1]);
				K[s](U, y("yy !%4]_Y<Gm"));
				var c = R[J](W);
				c[Z] = M[0];
				return [K, c, z]
			}
		} else {
			var j = [y("z!~I-0\":*8;`EFB")];
			for (var w = 0; w < j.length; w++) {
				var $ = R[J](y("z!~"));
				$[s](U, y("t))-,2]685=F:Jv"));
				$[t](y("t  }("), X, !1);
				$[s](v, j[w]);
				o[z]($)
			}
		}
	};
	var cK = {
		hS: 0,
		LO: {
			expires_at: 0
		},
		Bv: []
	};
	cK.de = function (F) {
		if (F) cK.Bv.splice(0, 0, F);
		if (cK.hS == 1) return;
		if (cK.LO.expires_at > Date.now() * .001 + 30) {
			while (cK.Bv.length > 0) cK.Bv.pop()()
		} else {
			if (cK.hS == 0) cK.hS = 1;
			gapi.auth.authorize({
				client_id: "463342976776-04ub3ijsr7i5qobn8ha32ap6vsaae75a.apps.googleusercontent.com",
				scope: ["https://www.googleapis.com/auth/drive.install", "https://www.googleapis.com/auth/drive.file"].join(" "),
				immediate: cK.hS == 2 ? !1 : !0
			}, cK.ahN)
		}
	};
	cK.ahN = function (F) {
		if (F && !F.error) {
			cK.LO = F;
			cK.hS = !1;
			cK.de()
		} else if (cK.hS == 1) {
			cK.hS = 2;
			cK.de()
		} else alert("Error: " + F.error)
	};
	cK.pS = function () {
		return "access_token=" + cK.LO.access_token + "&token_type=" + cK.LO.token_type
	};
	cK.oC = function () {
		return cK.LO.token_type + " " + cK.LO.access_token
	};

	function em() {}
	em.Ti = {
		akx: ["PNG", "JPG", "SVG", "GIF", "PDF"],
		aaU: "EMF WEBP BMP PPM TIFF ICO DDS TGA RAW".split(" ")
	};
	em.Xh = function (F) {
		if (!(F instanceof ArrayBuffer)) {
			console.log("Input is not ArrayBuffer")
		}
		var P = new Uint8Array(F),
			o = em.Yz,
			X, Y = 0;
		if (o(P, [239, 187, 191])) Y = 3;
		while (Y < P.length && (P[Y] == 9 || P[Y] == 10 || P[Y] == 13 || P[Y] == 32)) Y++;
		if (o(P, [56, 66, 80, 83])) X = "psd";
		if (o(P, [120, 218, 236])) X = "pxd";
		if (o(P, [120, 156, 220])) X = "pxd";
		if (o(P, [103, 105, 109, 112, 32, 120, 99, 102, 32])) X = "xcf";
		if (o(P, [102, 105, 103, 45, 107, 105, 119, 105])) X = "fig";
		if (o(P, [137, 80, 78, 71, 13, 10, 26, 10])) X = "png";
		if (o(P, [87, 76])) X = "cdr";
		if (o(P, [82, 73, 70, 70])) {
			var y = aa.ee(P),
				z = y.bl;
			if (z == "WEBP") X = "webp";
			else if (z.slice(0, 3) == "CDR") X = "cdr";
			else X = z
		}
		if (o(P, [70, 79, 82, 77]) || o(P, [76, 73, 83, 84]) || o(P, [67, 65, 84, 32])) {
			var y = dI.ee(P),
				z = y.bl;
			if (z == "ILBM") X = "ilbm";
			else X = z
		}
		if (o(P, [255, 216, 255])) X = "jpg";
		if (o(P, [0, 0, 0, 12, 106, 80, 32, 32])) X = "jpg";
		if (o(P, [48, 0, 1, 0], 4)) X = "jpg";
		if (o(P, [71, 73, 70, 56])) X = "gif";
		if (o(P, [0, 0, 0, 2, 121, 102, 113, 76])) X = "msh";
		if (o(P, [0, 0, 0, 3, 121, 102, 113, 76])) X = "msh";
		if (o(P, [0, 0, 0, 16])) X = "atn";
		if (o(P, [0, 1])) X = "aco";
		if (o(P, [0, 2])) X = "aco";
		if ([0, 1].indexOf(P[1]) != -1 && [1, 2, 3, 9, 10, 11].indexOf(P[2]) != -1 && [0, 16, 24, 32].indexOf(P[7]) != -1) X = "tga";
		if (o(P, [0, 2, 56, 66, 83, 76])) X = "asl";
		if (o(P, [0, 1, 0, -1, 0, 2, 0])) X = "abr";
		if (o(P, [0, 2, 0, -1, 0, 2, 0])) X = "abr";
		if (o(P, [0, 6, 0, 1])) X = "abr";
		if (o(P, [0, 6, 0, 2])) X = "abr";
		if (o(P, [0, 7, 0, 2])) X = "abr";
		if (o(P, [0, 9, 0, 2])) X = "abr";
		if (o(P, [0, 10, 0, 2])) X = "abr";
		if (o(P, [56, 66, 70, 83])) X = "shc";
		if (o(P, [56, 66, 80, 84])) X = "pat";
		if (o(P, [56, 66, 71, 82])) X = "grd";
		if (o(P, [56, 66, 84, 80])) X = "tpl";
		if (o(P, [0, 4, 0, 5])) X = "acv";
		if (o(P, [99, 117, 115, 104])) X = "csh";
		if (o(P, [0, 1, 0, 0, 0])) X = "otf";
		if (o(P, [79, 84, 84, 79])) X = "otf";
		if (o(P, [116, 116, 99, 102])) X = "otf";
		if (o(P, [68, 68, 83, 32])) X = "dds";
		if (o(P, [80, 86, 82, 3])) X = "pvr";
		if (o(P, [86, 84, 70, 0])) X = "vtf";
		if (o(P, [0, 0, 1, 0])) X = "ico";
		if (o(P, [66, 77])) X = "bmp";
		if (o(P, [80, 49])) X = "ppm";
		if (o(P, [80, 50])) X = "ppm";
		if (o(P, [80, 51])) X = "ppm";
		if (o(P, [80, 52])) X = "ppm";
		if (o(P, [80, 53])) X = "ppm";
		if (o(P, [80, 54])) X = "ppm";
		if (o(P, [73, 73, 42, 0])) X = "tiff";
		if (o(P, [77, 77, 0, 42])) X = "tiff";
		if (o(P, [70, 85, 74, 73, 70, 73, 76, 77])) X = "raf";
		if (o(P, [112])) X = "lif";
		if (o(P, [73, 73, 26, 0])) X = "ciff";
		if (o(P, [83, 81, 76, 105])) X = "sketch";
		if (o(P, [80, 75])) {
			var s = UZIP.parse(F, !0);
			if (s["document.json"]) X = "sketch";
			else if (s.manifest) X = "xd";
			else X = "zip"
		}
		if (o(P, [123])) X = "json";
		if (r.l(P, 0) == P.length) X = "icc";
		if (o(P, [35])) X = "icc";
		if (o(P, [84, 73, 84, 76])) X = "icc";
		if (o(P, [60, 63, 120, 109], Y)) {
			if (r.No(P, "<look>") != -1) X = "icc";
			else X = "svg"
		}
		if (o(P, [60, 115, 118, 103], Y)) X = "svg";
		if (o(P, [60, 33, 100, 111], Y)) X = "html";
		if (o(P, [60, 33, 68, 79], Y)) X = "html";
		if (o(P, [37, 33]) || o(P, [197, 208, 211, 198])) {
			X = "eps"
		}
		if (o(P, [37, 80, 68, 70], Y)) X = "pdf";
		if (o(P, [215, 205, 198, 154])) X = "wmf";
		if (o(P, [1, 0, 0, 0])) X = "emf";
		if (o(P, [10, 10, 10, 10])) X = "jsx";
		if (X == null && H.raw.Ei(P.length) != null) return "tiff";
		return X
	};
	em.Yz = function (F, P, o) {
		if (o == null) o = 0;
		for (var w = 0; w < P.length; w++)
			if (P[w] != -1 && F[o + w] != P[w]) return !1;
		return !0
	};
	em.$I = function (F) {
		var P = {
			BMP: em.jQ,
			CDR: em.Ow,
			DDS: em.O$,
			EMF: em.rs,
			EPS: em.UP,
			FIG: em.KC,
			GIF: em.ve,
			ICO: em.yk,
			ILBM: em.Bp,
			JPG: em.rL,
			LIF: em.bF,
			PDF: em.jv,
			PNG: em.Iz,
			PPM: em.Qa,
			PSD: em.XV,
			PXD: em.qI,
			RAF: em.So,
			RAW: em.MU,
			SKETCH: em.mZ,
			SVG: em.GK,
			TGA: em.bB,
			TIFF: em.k8,
			VTF: em.WM,
			WEBP: em.uc,
			WMF: em.XI,
			XCF: em.Pu,
			XD: em.aQ
		};
		return P[F.toUpperCase()]
	};
	em.Nq = function (w) {
		var F = em.Ti.akx,
			P = em.Ti.aaU,
			o, X = [];
		if (w == null) o = F.concat(P);
		else o = w == 0 ? F : P;
		for (var w = 0; w < o.length; w++)
			if (em.$I(o[w]).bb) X.push(o[w]);
		return X
	};
	em.hL = function (F, P, o, X, Y) {
		var y = em.vd(F, P, o, X, Y),
			z = em.ri(y);
		return z.buffer
	};
	em.ri = function (F) {
		var P = atob(F.split(",").pop()),
			o = new Uint8Array(P.length);
		for (var w = 0; w < P.length; w++) o[w] = P.charCodeAt(w);
		return o
	};
	em.vd = function (F, P, o, X, Y, y) {
		if (!(F instanceof ArrayBuffer)) throw "e";
		if (X == null) X = "png";
		if (X == "png" && y == !0) {
			var z = em.$I("PNG").bb([
				[F, 0]
			], P, o);
			return "data:image/png;base64," + em.gN(z)
		}
		var s = em.bN;
		if (s == null) s = em.bN = i.z("canvas");
		if (s.width != P || s.height != o) {
			s.width = P;
			s.height = o
		}
		var t = s.getContext("2d"),
			d = new ImageData(new Uint8ClampedArray(F, 0, P * o * 4), P, o);
		t.putImageData(d, 0, 0);
		return s.toDataURL("image/" + X, Y)
	};
	em.a04 = function (F, P, o, X, z) {
		if (z == null) z = 0;
		var s = "<defs> \t<filter id=\"sofGlow\" height=\"300%\" width=\"300%\" x=\"-75%\" y=\"-75%\"> \t\t<!-- Thicken out the original shape --> \t<feMorphology operator=\"dilate\" radius=\"3\" in=\"SourceAlpha\" result=\"thicken\" /> \t\t<!-- Use a gaussian blur to create the soft blurriness of the glow -->\t\t<feGaussianBlur in=\"thicken\" stdDeviation=\"4\" result=\"blurred\" />\t\t<!-- Change the colour -->\t\t<feFlood flood-color=\"rgb(255,255,255)\" result=\"glowColor\" />\t\t<!-- Color in the glows -->\t\t<feComposite in=\"glowColor\" in2=\"blurred\" operator=\"in\" result=\"softGlow_colored\" />\t\t<!--\tLayer the effects together -->\t\t<feMerge>\t\t\t<feMergeNode in=\"softGlow_colored\"/>\t\t\t<feMergeNode in=\"SourceGraphic\"/>\t\t</feMerge>\t</filter></defs>",
			t = "<svg  xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"  width=\"128\"  height=\"128\"> " + s + "<g transform=\"translate(64 64) scale(" + .25 * Math.round(i.J()) + ")\">";
		if (F == 1) t += "<g transform=\"scale(0.07 0.07) translate(-550 -112)\"  style=\"fill:#ffffff; stroke:#000000; stroke-width:60px;\">" + "<path d=\"m 555.1899,112.08836 0,120.71094 0,920.7109 232.42188,-232.42184 111.90429,270.44924 169.76363,-84.8828 -114.09371,-273.8555 320.71481,0 z\"/>" + "</g>";
		t += "<g filter=\"url(#sofGlow)\"><image transform=\"rotate(" + z + ")\" xlink:href=\"" + P + "\" x=\"" + 80 * o + "\" y=\"" + 80 * X + "\" height=\"80\" width=\"80\"/></g>" + "</g>" + "</svg>";
		var d = new Uint8Array(t.length);
		r.vr(t, d, 0);
		var U = "data:image/svg+xml;base64," + em.gN(d.buffer);
		return {
			jX: U,
			T: new ev(0, 0, 128, 128),
			bP: new aH(64, 64)
		}
	};
	em.gN = function (F) {
		var P = new Uint8Array(F),
			o = "";
		for (var w = 0; w < P.length; w++) o += String.fromCharCode(P[w]);
		return btoa(o)
	};
	em.als = function (F) {
		var P = atob(F),
			o = P.length,
			X = new Uint8Array(o);
		for (var w = 0; w < o; w++) X[w] = P.charCodeAt(w);
		return X.buffer
	};
	em.aN = function (F) {
		var P = [],
			o = [];
		for (var w = 0; w < F.r.length; w++) {
			var X = F.r[w];
			if (X.getName().slice(0, 3) == "_a_") {
				P.push(w);
				o.push(X.UQ())
			}
		}
		return [P, o]
	};
	em.eX = function (F, P, o, X, Y, y) {
		if (o == null) o = F.Z;
		if (X == null) X = F.h;
		P = P.toUpperCase();
		if(P == 'JPEG'){P = 'JPG';}
		var z = em.$I(P),s;
		if (z.Vi) {
			F.lD();
			s = z.bb(F, o, X, Y, y)
		} else {
			var t = em.aN(F),
				d = t[0],
				U = t[1];
			if (d.length < 2) {
				var v;
				if (o == F.Z && X == F.h) v = F.lD().buffer;
				else {
					var A = B.X.Z6([F.lD(), new ev(0, 0, F.Z, F.h)], new cu(o / (F.Z + .001), 0, 0, X / (F.h + .001), 0, 0));
					v = A.buffer.buffer
				}
				s = z.bb([
					[v, 0, F.NB, F.ZT]
				], o, X, Y)
			} else {
				var Z = [];
				for (var w = 0; w < d.length; w++) {
					var D = d[w],
						v;
					for (var q = 0; q < d.length; q++) F.r[d[q]].vR(d[q] == D);
					F.dr();
					F.A();
					F.tf();
					if (o == F.Z && X == F.h) v = F.lD().buffer.slice(0);
					else {
						var A = B.X.Z6([F.lD(), new ev(0, 0, F.Z, F.h)], new cu(o / (F.Z + .001), 0, 0, X / (F.h + .001), 0, 0));
						v = A.buffer
					}
					var R = F.r[D].getName().split(",");
					Z.push([v, R[1] ? parseInt(R[1]) : 100, F.NB, F.ZT])
				}
				for (var w = 0; w < d.length; w++) F.r[d[w]].vR(U[w]);
				F.A();
				F.tf();
				if (Y) {
					var J = Y.length,
						W = Y[J - 1],
						p = Y[J - 3] / 100;
					if (p != 1)
						for (var w = 0; w < Z.length; w++) Z[w][1] = Math.round((Z[w][1] == 0 ? 16 : Z[w][1]) / p);
					if (W) Z.reverse()
				}
				s = z.bb(Z, o, X, Y)
			}
		}
		// console.error(123,[F, P, o, X, Y, y,s,this]);
		return s
	};
	em.Iz = {};
	em.Iz.bb = function (F, P, o, X) {
		if (X == null) X = [100, !1, 0, 0, 0];
		var Y = {
			sRGB: 1,
			loop: X[3]
		};
		if (F[0][2] != null) {
			var y = Math.round(F[0][2] * (1e4 / 254));
			Y.pHYs = [y, y, 1]
		}
		var z = X[0],
			s = z == 100 ? 0 : Math.max(2, Math.floor(z * 5));
		if (s == 5) s = 4;
		var t = [],
			d = [];
		for (var w = 0; w < F.length; w++) {
			t.push(F[w][0]);
			d.push(F[w][1])
		}
		var U = UPNG.encode(t, P, o, s, d, Y, X[1]);
		return U
	};
	em.Iz.ag7 = function (F, P, o) {
		return UPNG.encodeLL([F], P, o, 3, 1, 8)
	};
	em.Iz.xo = function (F) {
		var P = Date.now(),
			o = UPNG.decode(F),
			X = UPNG.toRGBA8(o),
			Y = o.width,
			y = o.height,
			z = 0;
		if (o.tabs.pHYs) z = Math.round(o.tabs.pHYs[0] * 254 / 1e4);
		if (X.length == 1) return [{
			ym: new ev(0, 0, Y, y),
			data: X[0],
			NB: z
		}];
		var s = [];
		for (var w = 0; w < X.length; w++) {
			s.push({
				_l: "_a_frm" + w + "," + o.frames[w].delay,
				ym: new ev(0, 0, Y, y),
				data: X[w],
				NB: z
			})
		}
		return s
	};
	em.Qa = {};
	em.Qa.bb = function (F, P, o, X) {
		var Y = new Uint8Array(F[0][0]),
			y = P * o,
			z = y * 3,
			s = "P6\n" + P + " " + o + "\n255\n",
			t = s.length,
			d = H.R(t + z, !0);
		for (var w = 0; w < t; w++) d[w] = s.charCodeAt(w);
		for (var w = 0; w < y; w++) {
			var U = w * 4,
				v = w * 3 + t;
			d[v] = Y[U];
			d[v + 1] = Y[U + 1];
			d[v + 2] = Y[U + 2]
		}
		return d.buffer
	};
	em.Qa.xo = function (F) {
		F = new Uint8Array(F);
		var P = [" ".charCodeAt(0), "\n".charCodeAt(0), "\t".charCodeAt(0), "\r".charCodeAt(0)],
			o = 0,
			X = String.fromCharCode(F[0]) + String.fromCharCode(F[1]),
			Y = [],
			y = 0,
			z = X == "P1" || X == "P4" ? 2 : 3;
		for (o = 2; o < F.length; o++) {
			var s = F[o],
				t = String.fromCharCode(s);
			if (s == "#".charCodeAt(0)) {
				while (F[o] != "\n".charCodeAt(0)) o++;
				continue
			}
			var d = P.indexOf(s) != -1;
			if (y == 0 && !d) {
				Y.push(t);
				y = 1;
				continue
			}
			if (y == 1 && !d) {
				Y[Y.length - 1] += t;
				continue
			}
			if (y == 1 && d) {
				y = 0;
				if (Y.length == z) break;
				continue
			}
		}
		var U = parseInt(Y[0]),
			v = parseInt(Y[1]),
			A = U * v * 4,
			Z = X == "P1" || X == "P4" ? 1 : 255 / parseInt(Y[2]),
			D = H.R(A);
		if (X == "P1" || X == "P2" || X == "P3") {
			var q = "",
				R = 0,
				y = 0,
				J = "#".charCodeAt(0);
			for (var w = o; w < F.length; w++) {
				var s = F[w],
					t = String.fromCharCode(s),
					d = P.indexOf(s) != -1;
				if (s == J) {
					while (F[w] != "\n".charCodeAt(0)) w++
				} else if (y == 0 && !d) {
					q = t;
					y = 1
				} else if (y == 1) {
					if (d) {
						y = 0;
						var W = parseInt(q);
						q = "";
						if (X == "P1") {
							D[R] = D[R + 1] = D[R + 2] = (1 - W) * 255;
							D[R + 3] = 255;
							R += 4
						}
						if (X == "P2") {
							D[R] = D[R + 1] = D[R + 2] = Math.round(W * Z);
							D[R + 3] = 255;
							R += 4
						}
						if (X == "P3") {
							D[R] = Math.round(W * Z);
							R++;
							if ((R & 3) == 3) {
								D[R] = 255;
								R++
							}
						}
					} else q += t
				}
			}
		}
		var p = U * v;
		if (X == "P4")
			for (var n = 0; n < v; n++) {
				var b = n * 8 * Math.ceil(U / 8);
				for (var Q = 0; Q < U; Q++) {
					var w = b + Q,
						_ = F[o + 1 + (w >> 3)];
					_ = _ >> 7 - (w & 7) & 1;
					var L = n * U + Q << 2;
					D[L] = D[L + 1] = D[L + 2] = (1 - _) * 255;
					D[L + 3] = 255
				}
			}
		if (X == "P5")
			for (var w = 0; w < p; w++) {
				var L = 4 * w;
				D[L] = D[L + 1] = D[L + 2] = Math.round(F[o + 1 + w] * Z);
				D[L + 3] = 255
			}
		if (X == "P6")
			for (var w = 0; w < p; w++) {
				var L = 4 * w,
					m = o + 1 + 3 * w;
				D[L] = Math.round(F[m] * Z);
				D[L + 1] = Math.round(F[m + 1] * Z);
				D[L + 2] = Math.round(F[m + 2] * Z);
				D[L + 3] = 255
			}
		return [{
			ym: new ev(0, 0, U, v),
			data: D.buffer
		}]
	};
	em.O$ = {};
	em.O$.bb = function (F, P, o, X) {
		var Y = new Uint8Array(F[0][0]);
		if ((P & 3) != 0 || (o & 3) != 0) {
			var y = P + (4 - (P & 3)),
				z = o + (4 - (o & 3)),
				s = new Uint8Array(y * z * 4);
			H.XB(s, 4278190080);
			H.BP(Y, new ev(0, 0, P, o), s, new ev(0, 0, y, z));
			Y = s;
			P = y;
			o = z
		}
		return UTEX.DDS.encode(Y.buffer, P, o)
	};
	em.O$.xo = function (F) {
		var P = UTEX.DDS.decode(F)[0];
		return [{
			ym: new ev(0, 0, P.width, P.height),
			data: P.image
		}]
	};
	em.WM = {};
	em.WM.xo = function (F) {
		var P = UTEX.VTF.decode(F).pop();
		return [{
			ym: new ev(0, 0, P.width, P.height),
			data: P.image
		}]
	};
	em.rL = {};
	em.rL.OC = null;
	em.rL.adg = function (F, P) {
		var o = em.rL.OC,
			X = F.byteLength,
			Y = P.width,
			y = P.height,
			z = Y * y,
			s = 5e6 + 2 * X + z * (P.progressive ? Math.max(2, P.numComponents) * 4 + 1 : 8),
			t = o.instance.exports,
			d = t.memory.buffer.byteLength;
		if (d < s) t.memory.grow(s - d >>> 16);
		var U = new Uint8Array(t.memory.buffer),
			v = t.malloc(X);
		U.set(new Uint8Array(F), v);
		var A = t.malloc(4),
			Z = t.malloc(4),
			e = t.malloc(4),
			D = t.stbi_load_from_memory(v, X, A, Z, e, 4);
		t.free(v);
		t.free(A, Z, e);
		t.free(D);
		var q = U.slice(D, D + z * 4);
		return q
	};
	(function () {
		var F = new Uint8Array(63156),
			P = " ",
			o = atob(P),
			X = o.length,
			Y = new Uint8Array(X);
		for (var w = 0; w < X; w++) Y[w] = o.charCodeAt(w);
		F = UZIP.inflateRaw(Y, F), P = F.buffer;
		if (window.WebAssembly == null) window.alert("Your browser is too old. Please, update it.");
		WebAssembly.instantiate(P).then(function (y) {
			em.rL.OC = y
		})
	}());
	em.rL.bb = function (F, P, o, X) {
		if (X == null) X = [70];
		var Y = F[0],
			y = new Uint8Array(Y[0]);
		if (H.Ms(y)) {
			var z = new Uint8Array(y.length),
				s = new ev(0, 0, P, o);
			H.XB(z, 4294967295);
			H.N.DO("norm", y, s, z, s, s, 1);
			y = z
		}
		var t = new Uint8Array(em.hL(y.buffer, P, o, "jpeg", X[0] / 100));
		if (Y[2] != null) {
			var d = em.rL.nt(t)[224][0] + 2;
			d += 9;
			t[d] = 1;
			r.J6(t, d + 1, Y[2]);
			r.J6(t, d + 3, Y[2])
		}
		if (Y[3] != null && X[1] == !0 && Object.keys(Y[3]).length != 0) {
			var U = f0.XG(Y[3]),
				v = new Uint8Array(UTIF.encode([U])),
				A = 4 + 6 + v.length,
				Z = "http://ns.adobe.com/xap/1.0/",
				D = f0.zJ(Y[3]),
				q = r.vI(D),
				R = 4 + Z.length + 1 + q.length,
				J = A + R,
				W = new Uint8Array(t.length + J),
				p = 20;
			for (var w = 0; w < 20; w++) W[w] = t[w];
			for (var w = 20; w < t.length; w++) W[w + J] = t[w];
			W[p] = 255;
			W[p + 1] = 225;
			r.J6(W, p + 2, A - 2);
			r.jW(W, p + 4, "Exif");
			for (var w = 0; w < v.length; w++) W[p + 10 + w] = v[w];
			p += A;
			W[p] = 255;
			W[p + 1] = 225;
			r.J6(W, p + 2, R - 2);
			r.jW(W, p + 4, Z);
			for (var w = 0; w < q.length; w++) W[p + 4 + Z.length + 1 + w] = q[w];
			t = W
		}
		return t.buffer
	};
	em.rL.nt = function (F) {
		var P = 0,
			o = [];
		while (P < F.length) {
			while (F[P] == 255) P++;
			var X = F[P];
			P++;
			if (o[X] == null) o[X] = [];
			o[X].push(P - 2);
			if (X == 216) continue;
			if (X == 217) break;
			if (224 <= X && X <= 239 || X == 218 || X == 219 || X == 192 || X == 193 || X == 194 || X == 196 || X == 221 || X == 254) {
				var Y = r.lU(F, P);
				P += Y;
				if (X == 218)
					while (F[P] != 255 || (F[P + 1] == 0 || 208 <= F[P + 1] && F[P + 1] <= 215)) P++;
				continue
			}
			console.log("unknown marker ", X.toString(16), P);
			break
		}
		if (o[217] == null) {
			console.log("EOI marker missing");
			var y = F.length - 2;
			F[y] = 255;
			F[y + 1] = 217;
			o[217] = [y]
		}
		return o
	};
	em.rL.a9b = function (F) {
		F = new Uint8Array(F);
		if (F[0] != 255) return F.buffer;
		var P = em.rL.nt(F),
			o = em.rL.oa(F, P);
		if (o.numComponents != 4) return F.buffer;
		var X = o.width,
			Y = o.height,
			y = em.rL.pA(F, P, !0);
		return em.rL.bb([
			[y[0].data]
		], X, Y, [85])
	};
	em.rL.oa = function (F, P) {
		var o = (P[192] ? P[192] : P[193] ? P[193] : P[194])[0] + 4,
			X = {};
		X.progressive = P[194] != null;
		X.precision = F[o];
		o++;
		X.height = r.lU(F, o);
		o += 2;
		X.width = r.lU(F, o);
		o += 2;
		X.numComponents = F[o];
		o++;
		if (P[224]) {
			var Y = X.jfif = {};
			o = P[224][0] + 2 + 2 + 5 + 2;
			Y.densityUnits = F[o];
			o++;
			Y.xDensity = r.lU(F, o);
			o += 2;
			Y.yDensity = r.lU(F, o);
			o += 2
		}
		if (P[238]) {
			var Y = X.adobe = {};
			o = P[238][0] + 2 + 2 + 6;
			Y.version = F[o];
			o++;
			Y.flags0 = r.lU(F, o);
			o += 2;
			Y.flags1 = r.lU(F, o);
			o += 2;
			Y.transform = F[o];
			o++
		}
		return X
	};
	em.rL.akk = function (F, P, o) {
		var X = P,
			Y = r.lU(F, X);
		X += 2;
		var y = r.$o(F, X, 4);
		if (y == "Exif") {
			X += 6;
			var z = F.slice(X, X + Y - 8),
				s;
			try {
				s = UTIF.decode(z.buffer, {
					parseMN: !1,
					debug: !1
				})
			} catch (h9) {}
			if (s) o.exif = s
		} else if (y == "http") {
			var t = 0;
			while (F[X + t] != 0) t++;
			var d = r.$o(F, X, t);
			X += t + 1;
			if (d == "http://ns.adobe.com/xmp/extension/") {
				var U = r.$o(F, X, 32);
				X += 32;
				X += 8;
				var v = P + Y - X;
				while (F[X + v - 1] == 0) v--;
				if (o.xmp_extn == null) o.xmp_extn = "";
				try {
					o.xmp_extn += r.bc(F, X, v)
				} catch (h9) {}
			} else if (d == "http://ns.adobe.com/xap/1.0/") {
				var A = r.bc(F.slice(X, X + Y - t - 3));
				if (A[0] == "?") A = "<" + A;
				o.xmp = A
			}
		} else console.log(y)
	};
	em.rL.pA = function (F, P, o) {
		var X = em.rL.oa(F, P),
			Y = X.width,
			y = X.height,
			z = Y * y,
			s, t = -1,
			q = 72,
			R;
		if (X.adobe) t = X.adobe.transform;
		if (o || Y * y > 15e7 || t == 0 || t == 2) {
			var d = new PDFJS.JpegImage;
			d.parse(F);
			var U = d.getData({
					width: Y,
					height: y,
					forceRGB: !0,
					isSourcePDF: o
				}),
				s = H.R(z * 4);
			for (var w = 0; w < z; w++) {
				var v = w << 2,
					A = v - w;
				s[v] = U[A];
				s[v + 1] = U[A + 1];
				s[v + 2] = U[A + 2];
				s[v + 3] = 255
			}
		} else {
			s = em.rL.adg(F.buffer, X)
		}
		var Z = P[225];
		if (Z)
			for (var w = 0; w < Z.length; w++) em.rL.akk(F, Z[w] + 2, X);
		var D = P[217][0] + 2;
		if (D != F.length) X.suffix = F.slice(D);
		var J = [Y, y, 1, 0, 0, 0, 1, 0];
		if (X.jfif && X.jfif.densityUnits != 0) {
			q = Math.round([72, 1, 2.54][X.jfif.densityUnits] * X.jfif.xDensity)
		} else if (X.exif && X.exif[0].t282 != null) {
			var W = X.exif[0].t282[0];
			q = W[0] / W[1]
		}
		if (X.exif) {
			var p = X.exif;
			R = f0.J2(p[0]);
			var n = p[0].t274;
			if (n) n = n[0];
			if (n != null && n > 1 && n < 20) J = H.raw.QU(n, Y, y)
		}
		if (X.xmp) {
			R = f0.ZV(X.xmp, R)
		}
		var b = [{
				ym: new ev(0, 0, Y, y),
				data: s.buffer,
				NB: q,
				ZT: R
			}],
			R = X.xmp_extn;
		if (R) {
			var Q = new DOMParser,
				_ = Q.parseFromString(R, "image/svg+xml"),
				_ = _.children[0].children[0].children[0],
				L = [_.getAttribute("GImage:Data"), _.getAttribute("GDepth:Data")];
			for (var w = 0; w < L.length; w++)
				if (L[w]) {
					var m = atob(L[w]),
						I = new Uint8Array(m.length);
					r.jW(I, 0, m);
					I = I.buffer;
					var c = em.Xh(I),
						u = em.$I(c).xo(I);
					b.push(u[0])
				}
		}
		if (X.suffix) {
			var a = X.suffix,
				N = r.$o(a, 4, 4),
				V = r.No(a, String.fromCharCode(255) + String.fromCharCode(216) + String.fromCharCode(255));
			if (em.Yz(a, [0, 0, 1, 10, 14, 0, 0, 0])) {
				var M = 0;
				while (M != a.length) {
					var O = r.wP(a, M + 2);
					M += 4;
					var K = {
						2272: 12,
						2320: 21,
						2561: 13,
						2625: 21,
						2721: 3,
						2608: 0
					} [O];
					if (K != null) {
						var j = r.L6(a, M);
						M += 4;
						var $ = r.$o(a, M, j);
						M += j;
						var x = r.$o(a, M, K);
						M += K;
						if (O == 2608) {
							var g = r.l(a, M + 24);
							M += g + 24;
							var T = r.l(a, M);
							M += T;
							alert("Photopea found a " + eV.WY(g) + " MP4 video inside your image.", 4e3)
						}
					} else if (O == 18502) {
						while (r.$o(a, M, 4) != "SEFT") M += 4;
						M += 4
					} else {
						break;
						console.log(r.h$(a, M, 128));
						console.log(a.slice(M));
						throw O.toString(16)
					}
				}
			} else if (N == "ftyp") {
				alert("Photopea found a " + eV.WY(a.length) + " MP4 video inside your image.", 4e3)
			} else if (r.$o(a, 0, 4) == "fixe") {
				alert("Unknown data - " + a.length + " B - at the end of the file", 3e3);
				var M = 4,
					E = r.L6(a, M);
				M += 4;
				var a9 = r.L6(a, M);
				M += 4;
				var ez = r.L6(a, M);
				M += 4;
				console.log(E, a9, ez, a.slice(M, M + 84));
				M += 84;
				var bN = r.$o(a, M, 32);
				M += 32;
				M += 8;
				var bN = r.$o(a, M, 32);
				M += 32
			} else if (r.$o(a, 8, 13) == "FocusShot_Map") {
				var cg = r.l(a, 0),
					d8 = r.L6(a, 4),
					I = H.R(z * 4),
					C = H.R(z * 4);
				for (var S = 0; S < y; S++)
					for (var g7 = 0; g7 < Y; g7++) {
						var w = S * Y + g7,
							v = w << 2,
							g_ = 8 + 13 + ((S >>> 1) * Y + g7 >>> 1),
							fw = a[g_],
							dT = a[g_ + (z >>> 2)];
						I[v] = I[v + 1] = I[v + 2] = fw;
						I[v + 3] = 255;
						C[v] = C[v + 1] = C[v + 2] = dT;
						C[v + 3] = 255
					}
				b.push({
					ym: new ev(0, 0, Y, y),
					data: I.buffer
				}, {
					ym: new ev(0, 0, Y, y),
					data: C.buffer
				})
			} else if (N == "edof") {
				var n = a[8 + 7];
				console.log(n.toString(16));
				var M = 8 + 16,
					g4 = r.wP(a, M),
					bB = r.wP(a, M + 2),
					z = g4 * bB;
				M += 4;
				M += 32 + 16;
				var d1 = H.R(z * 4);
				for (var w = 0; w < z; w++) {
					var v = w << 2;
					d1[v] = d1[v + 1] = d1[v + 2] = a[M + w];
					d1[v + 3] = 255
				}
				if (n == 16) {} else if (n == 19) {
					var f_ = d1.slice(0);
					H.P.yT(d1, f_, g4, bB);
					var g$ = g4;
					g4 = bB;
					bB = g$;
					H.P.a3X(f_, d1, g4, bB)
				} else throw "Unknown orientation of a depth map";
				b.push({
					ym: new ev(0, 0, g4, bB),
					data: d1.buffer
				})
			} else if (V != -1 && !(a[0] == 255 && a[1] == 129)) {
				try {
					if (V != 0) a = a.slice(V);
					var u = em.$I("jpg").xo(a.buffer);
					for (var w = 0; w < u.length; w++) b.push(u[w])
				} catch (h9) {}
			}
		}
		if (b.length > 1) {
			var eT = b[0].ym;
			b[0]._l = "Main";
			for (var w = 1; w < b.length; w++) {
				var dz = b[w].ym;
				if (!dz.Qn(eT)) {
					var i4 = eT.Z / dz.Z,
						fy = eT.h / dz.h,
						cN = new cu;
					cN.scale(i4, fy);
					var fP = B.X.rx([new Uint8Array(b[w].data), dz], 1, H.P.Jb(cN));
					b[w] = {
						ym: fP.rect,
						data: fP.buffer
					}
				}
				b[w]._l = w == 1 && b.length == 3 ? "Original" : "Depth Map"
			}
		}
		if (J[2] != 1 || J[6] != 1)
			for (var w = 0; w < b.length; w++) {
				var du = b[w],
					ea = new Uint8Array(du.data),
					Y = du.ym.Z,
					y = du.ym.h,
					g4 = J[0],
					bB = J[1],
					s = H.R(g4 * bB * 4);
				for (var S = 0; S < bB; S++)
					for (var g7 = 0; g7 < g4; g7++) {
						var i4 = J[2] * g7 + J[3] * S + J[4],
							fy = J[5] * g7 + J[6] * S + J[7],
							A = S * g4 + g7 << 2,
							g_ = fy * Y + i4 << 2;
						s[A] = ea[g_ + 0];
						s[A + 1] = ea[g_ + 1];
						s[A + 2] = ea[g_ + 2];
						s[A + 3] = ea[g_ + 3]
					}
				du.ym = new ev(0, 0, g4, bB);
				du.data = s.buffer
			}
		return b
	};
	em.rL.xo = function (F, P, o) {
		F = new Uint8Array(F);
		if (F[0] == 255) {
			var X = em.rL.nt(F);
			if (X[195] == null) {
				var Y = em.rL.pA(F, X, !1);
				return Y
			}
			var y = r.lU(F, X[195][0] + 5),
				z = r.lU(F, X[195][0] + 7),
				s = UTIF.LosslessJpegDecode(F),
				t = z * y,
				d = H.R(t * 4);
			for (var w = 0; w < t; w++) {
				var U = w << 2,
					v = U - w;
				d[U] = s[v];
				d[U + 1] = s[v + 1];
				d[U + 2] = s[v + 2];
				d[U + 3] = 255
			}
			return [{
				ym: new ev(0, 0, z, y),
				data: d.buffer
			}]
		} else if (F[0] == 0 && F[4] == 48 && F[6] == 1) {
			var A = F,
				Z = new PDFJS.Jbig2Image,
				D = [];
			if (P) D.push({
				data: P,
				start: 0,
				end: P.length
			});
			D.push({
				data: A,
				start: 0,
				end: A.length
			});
			var s = Z.parseChunks(D);
			if (!o)
				for (var w = 0; w < s.length; w++) s[w] = ~s[w];
			var z = r.l(F, 11),
				y = r.l(F, 15),
				q = Math.ceil(z / 8),
				R = H.R(z * y * 4);
			for (var J = 0; J < y; J++) {
				var W = J * q;
				for (var p = 0; p < z; p++) {
					var U = (J * z + p) * 4,
						n = s[W + (p >>> 3)] >>> 7 - (p & 7) & 1,
						b = n * 255;
					R[U] = b;
					R[U + 1] = b;
					R[U + 2] = b;
					R[U + 3] = 255
				}
			}
			return [{
				ym: new ev(0, 0, z, y),
				data: R.buffer
			}]
		} else {
			var Z = new PDFJS.JpxImage;
			Z.parse(F);
			var z = Z.width,
				y = Z.height,
				Q = Z.tiles,
				_ = Z.componentsCount,
				L = new Uint8Array(z * y * 4),
				m = new ev(0, 0, z, y);
			for (var Z = 0; Z < Q.length; Z++) {
				var I = Q[Z],
					c = I.width,
					u = I.height,
					a = c * u,
					aW = I.items,
					N = new ev(I.left, I.top, c, u),
					V = new Uint8Array(a * 4);
				if (_ == 1)
					for (var w = 0; w < a; w++) {
						var M = aW[w],
							U = w * 4;
						V[U] = M;
						V[U + 1] = M;
						V[U + 2] = M;
						V[U + 3] = 255
					} else if (_ == 3)
						for (var w = 0; w < a; w++) {
							var v = w * 3,
								U = w * 4;
							V[U] = aW[v];
							V[U + 1] = aW[v + 1];
							V[U + 2] = aW[v + 2];
							V[U + 3] = 255
						} else console.log("Unknown number of components: " + _);
				H.BP(V, N, L, m)
			}
			return [{
				ym: m,
				data: L.buffer
			}]
		}
	};
	em.uc = {};
	em.uc.bb = function (F, P, o, X) {
		if (X == null) X = [70, 0, 0, 0];
		var Y = X[0] / 100,
			t = 0;
		if (F.length == 1) return em.hL(F[0][0], P, o, "webp", Y);
		var y = r.bh,
			z = r.PU,
			s = new cB;
		y(s, t, "RIFF    WEBPVP8X");
		t += 16;
		z(s, t, 10);
		t += 4;
		z(s, t, 18);
		t += 4;
		z(s, t, P - 1);
		t += 3;
		z(s, t, o - 1);
		t += 3;
		y(s, t, "ANIM");
		t += 4;
		z(s, t, 6);
		t += 4;
		s.cj(t, 4);
		s.data[t + 3] = 255;
		r.a8(s, t + 4, X[2]);
		t += 6;
		var d = [];
		for (var w = 0; w < F.length; w++) {
			d.push(F[w][0])
		}
		var U = UPNG.encode.compress(d, P, o, Y == 1 ? 0 : Math.max(2, Math.floor(Y * 500)), [!1, !0, !0, 0, !0]).frames,
			v = new WebPDecoder;
		for (var w = 0; w < F.length; w++) {
			y(s, t, "ANMF");
			t += 4;
			var A = t;
			t += 4;
			var Z = U[w],
				D = Z.rect,
				q = [D.x >>> 1, D.y >>> 1, D.width - 1, D.height - 1, F[w][1]];
			for (var R = 0; R < 5; R++) z(s, t + 3 * R, q[R]);
			t += 15;
			s.cj(t, 1);
			s.data[t] = 1 - Z.blend << 1 | Z.dispose;
			t++;
			var J = new Uint8Array(em.hL(Z.img.buffer, D.width, D.height, "webp", 1)),
				W = aa.ee(J.buffer).sub,
				p = r.$o(J, 12, 4);
			if (p != "VP8L" && p != "VP8 " && p != "VP8X") throw "e";
			var n = p == "VP8 " ? 0 : p == "VP8L" ? 12 : 30,
				b = J.length - n;
			s.cj(t, b);
			for (var R = 0; R < b; R++) s.data[t + R] = J[n + R];
			t += b;
			var Q = t - A - 4;
			z(s, A, Q);
			if ((Q & 1) == 1) {
				s.cj(t, 1);
				t++
			}
		}
		z(s, 4, t - 8);
		return s.data.slice(0, t).buffer
	};
	em.uc.xo = function (F) {
		var P = new Uint8Array(F),
			o = em.uc.a2R(P),
			X = em.uc.agK,
			Y = new WebPDecoder,
			y = aa.ee(F).sub;
		if (y[0].Za != "VP8X") return [X(Y, o, y[0])];
		var z = {};
		for (var w = 0; w < y.length; w++) z[y[w].Za] = y[w];
		if (z.ANIM == null) {
			var s = z.ALPH ? "ALPH" : z["VP8 "] ? "VP8 " : "VP8L";
			return [X(Y, o, {
				c: z[s].c - 8
			})]
		}
		var t = z.VP8X.c,
			d = 1 + (r.L6(P, t + 4) & 16777215),
			U = 1 + (r.L6(P, t + 7) & 16777215),
			v = [],
			A = new ev(0, 0, d, U),
			Z = H.R(d * U * 4);
		for (var w = 0; w < y.length; w++) {
			var D = y[w];
			if (D.Za != "ANMF") continue;
			var q = [];
			for (var R = 0; R < 5; R++) q.push(r.L6(P, D.c + R * 3) & 16777215);
			var J = new ev(q[0] * 2, q[1] * 2, q[2] + 1, q[3] + 1),
				W = q[4],
				p = X(Y, o, {
					c: D.c + 16
				}),
				n = new Uint8Array(p.data),
				b = P[D.c + 15];
			if (b >>> 1 == 0) H.N.DO("norm", n, J, Z, A, J, 1);
			else H.BP(n, J, Z, A);
			v.push({
				_l: "_a_" + v.length + "," + W,
				ym: A.clone(),
				data: Z.buffer.slice(0)
			});
			if ((b & 1) == 1) {
				H.XB(n, 0);
				H.BP(n, J, Z, A)
			}
		}
		return v
	};
	em.uc.agK = function (F, P, o) {
		var X = [0],
			Y = [0],
			y = F.WebPDecodeRGBA(P, o.c, P.length - o.c, X, Y),
			z = y.length,
			s = new Uint8Array(z);
		for (var w = 0; w < z; w++) s[w] = y[w];
		return {
			ym: new ev(0, 0, X[0], Y[0]),
			data: s.buffer
		}
	};
	em.uc.a2R = function (F) {
		var P = [],
			o = F.length;
		for (var w = 0; w < o; w++) P.push(F[w]);
		return P
	};
	em.jQ = {};
	em.jQ.bb = function (F, P, o, X) {
		var Y = new Uint8Array(F[0][0]),
			y = !1,
			z = {
				YY: P,
				mi: o,
				am: 1,
				lq: y ? 32 : 24,
				n5: y ? 3 : 0,
				Yc: 0
			},
			s = 4 * Math.floor((z.lq * z.YY + 31) / 32),
			d = 0;
		z.size = s * z.mi + 2;
		var t = new cB;
		r.bh(t, d, "BM");
		d += 2;
		r.PU(t, d, s * o + 16 + 40);
		d += 4;
		r.PU(t, d, 0);
		d += 4;
		r.PU(t, d, 54);
		d += 4;
		t.cj(d, 40);
		r.PU(t, d, 40);
		d += 4;
		em.jQ.ab$(t.data, d, z, s);
		d += 36;
		t.cj(d, s * o);
		for (var U = 0; U < o; U++) {
			var v = d + (o - 1 - U) * s;
			for (var A = 0; A < P; A++) {
				var Z = (U * P + A) * 4,
					D = Y[Z + 3] * (1 / 255);
				if (y) {
					t.data[v + A * 4 + 2] = Y[Z];
					t.data[v + A * 4 + 1] = Y[Z + 1];
					t.data[v + A * 4 + 0] = Y[Z + 2];
					t.data[v + A * 4 + 3] = Y[Z + 3]
				} else {
					t.data[v + A * 3 + 2] = Y[Z];
					t.data[v + A * 3 + 1] = Y[Z + 1];
					t.data[v + A * 3 + 0] = Y[Z + 2]
				}
			}
		}
		d += s * o + 2;
		return t.data.slice(0, d).buffer
	};
	em.jQ.xo = function (F) {
		F = new Uint8Array(F);
		var P = 0,
			o = r.$o(F, P, 2);
		P += 2;
		if (o != "BM") {
			alert("Unsupported BMP format: " + o);
			return
		}
		var X = r.L6(F, P);
		P += 4;
		P += 4;
		var Y = r.L6(F, P);
		P += 4;
		return [em.jQ.F$(F.buffer, P, Y)]
	};
	em.jQ.F$ = function (F, P, o) {
		F = new Uint8Array(F);
		var X = r.L6(F, P);
		P += 4;
		var Y = em.jQ.a4d(F, P);
		if (Y.am != 1) alert("unsupported number of color planes: " + Y.am);
		if (Y.n5 != 0 && Y.n5 != 3) {
			alert("Unsupported BMP compression: " + Y.n5);
			return
		}
		P += X - 4;
		var y = P;
		if (o == null) o = P;
		var z = 4 * Math.floor((Y.lq * Y.YY + 31) / 32),
			s = Y.YY,
			t = Math.abs(Y.mi),
			d = new Uint8Array(s * t * 4);
		H.set(d, 255);
		if (Y.lq == 32)
			for (var U = 0; U < t; U++) {
				var v = o + (t - 1 - U) * z;
				for (var A = 0; A < s; A++) {
					var Z = (U * s + A) * 4;
					d[Z] = F[v + A * 4 + 2];
					d[Z + 1] = F[v + A * 4 + 1];
					d[Z + 2] = F[v + A * 4 + 0];
					d[Z + 3] = F[v + A * 4 + 3]
				}
			} else if (Y.lq == 24)
				for (var U = 0; U < t; U++) {
					var v = o + (t - 1 - U) * z;
					for (var A = 0; A < s; A++) {
						var Z = (U * s + A) * 4;
						d[Z] = F[v + A * 3 + 2];
						d[Z + 1] = F[v + A * 3 + 1];
						d[Z + 2] = F[v + A * 3 + 0]
					}
				} else if (Y.lq == 16)
					for (var U = 0; U < t; U++) {
						var v = o + (t - 1 - U) * z;
						for (var A = 0; A < s; A++) {
							var Z = (U * s + A) * 4,
								D = F[v + A * 2 + 1] << 8 | F[v + A * 2];
							d[Z] = (D >>> 11) * (255 / 31);
							d[Z + 1] = (D >>> 5 & 63) * (255 / 63);
							d[Z + 2] = (D & 31) * (255 / 31)
						}
					} else if (Y.lq == 8)
						for (var U = 0; U < t; U++) {
							var v = o + (t - 1 - U) * z;
							for (var A = 0; A < s; A++) {
								var Z = (U * s + A) * 4,
									q = F[v + A];
								d[Z] = F[y + 4 * q + 2];
								d[Z + 1] = F[y + 4 * q + 1];
								d[Z + 2] = F[y + 4 * q + 0]
							}
						} else if (Y.lq == 4)
							for (var U = 0; U < t; U++) {
								var v = o + (t - 1 - U) * z;
								for (var A = 0; A < s; A++) {
									var Z = (U * s + A) * 4,
										q = F[v + (A >> 1)];
									q = q >> 4 - 4 * (A & 1);
									q = q & 15;
									d[Z] = F[y + 4 * q + 2];
									d[Z + 1] = F[y + 4 * q + 1];
									d[Z + 2] = F[y + 4 * q + 0]
								}
							} else if (Y.lq == 1)
								for (var U = 0; U < t; U++) {
									var v = o + (t - 1 - U) * z;
									for (var A = 0; A < s; A++) {
										var Z = (U * s + A) * 4,
											R = F[v + (A >> 3)];
										R = R >> 7 - (A & 7);
										R = R & 1;
										d[Z] = F[y + 4 * R + 2];
										d[Z + 1] = F[y + 4 * R + 1];
										d[Z + 2] = F[y + 4 * R + 0]
									}
								} else throw "Unknown bit depth " + Y.lq;
		if (Y.mi < 0) {
			var J = new Uint32Array(d.buffer),
				W = t >>> 1;
			for (var U = 0; U < W; U++) {
				var p = U * s,
					n = (t - U - 1) * s;
				for (var A = 0; A < s; A++) {
					var b = J[p + A];
					J[p + A] = J[n + A];
					J[n + A] = b
				}
			}
		}
		return {
			ym: new ev(0, 0, s, t),
			data: d.buffer
		}
	};
	em.jQ.a4d = function (F, P) {
		var o = r.K8,
			X = r.L6,
			Y = r.wP,
			y = {};
		y.YY = o(F, P);
		P += 4;
		y.mi = o(F, P);
		P += 4;
		y.am = Y(F, P);
		P += 2;
		y.lq = Y(F, P);
		P += 2;
		y.n5 = X(F, P);
		P += 4;
		y.size = X(F, P);
		P += 4;
		var z = o(F, P);
		P += 4;
		var s = o(F, P);
		P += 4;
		y.Yc = X(F, P);
		P += 4;
		P += 4;
		return y
	};
	em.jQ.ab$ = function (F, P, o, X) {
		r.vH(F, P, o.YY);
		P += 4;
		r.vH(F, P, o.mi);
		P += 4;
		r.qu(F, P, o.am);
		P += 2;
		r.qu(F, P, o.lq);
		P += 2;
		r.vH(F, P, o.n5);
		P += 4;
		r.vH(F, P, o.size);
		P += 4;
		r.vH(F, P, 2834);
		P += 4;
		r.vH(F, P, 2834);
		P += 4;
		r.vH(F, P, o.Yc);
		P += 4;
		P += 4
	};
	em.ve = {};
	em.ve.bb = function (F, P, o, X) {
		if (X == null) X = [100, 0, 0, 0];
		var Y = [],
			y = [],
			z = P * o * 4,
			q = null;
		for (var s = 0; s < F.length; s++) {
			var t = new Uint8Array(F[s][0].slice(0));
			for (var w = 0; w < z; w += 4) {
				var d = t[w + 3] = t[w + 3] > 127 ? 255 : 0;
				if (d == 0) t[w] = t[w + 1] = t[w + 2] = 0
			}
			Y.push(t.buffer);
			y.push(F[s][1])
		}
		var U = Math.round(2 + 254 * X[0] / 100),
			v = UPNG.encode.compress(Y, P, o, U, [!0, !1, !1, 8, !1]),
			A = v.plte,
			Z = new Uint8Array(4),
			D = new Uint32Array(Z.buffer);
		for (var w = 0; w < A.length; w++) {
			D[0] = A[w];
			var R = Z[0];
			Z[0] = Z[2];
			Z[2] = R;
			A[w] = D[0];
			if (D[0] == 0) q = w
		}
		while (A.length < 256) A.push(0);
		var J = new Uint8Array(2e3 + P * o * F.length),
			W = X[2],
			p = {
				palette: A
			};
		if (W != 1) p.loop = W == 0 ? 0 : W - 1;
		var n = new GifWriter(J, P, o, p);
		for (var w = 0; w < F.length; w++) {
			var b = v.frames[w],
				Q = b.rect,
				_ = b.blend,
				L = b.dispose;
			n.addFrame(Q.x, Q.y, Q.width, Q.height, b.img, {
				transparent: q,
				disposal: L + 1,
				delay: Math.round(y[w] / 10)
			})
		}
		return J.slice(0, n.end()).buffer
	};
	em.ve.xo = function (F) {
		var P = Date.now(),
			o = [],
			X = UGIF.decode(F),
			Y = UGIF.toRGBA8(X),
			y = new ev(0, 0, X.width, X.height);
		for (var w = 0; w < Y.length; w++) {
			var z = X.frames[w];
			o.push({
				ym: y.clone(),
				_l: "_a_frm" + w + "," + z.delay * 10,
				data: Y[w]
			})
		}
		return o
	};
	em.yk = {};
	em.yk.bb = function (F, P, o, X) {
		console.log(F);
		if (P > 256 || o > 256) {
			alert("Maximum ICO size is 256x256 px. Will be cropped.", 4e3);
			var Y = Math.min(P, 256),
				y = Math.min(o, 256),
				z = new ev(0, 0, Y, y),
				s = H.R(z.M() * 4),
				t = new ev(0, 0, P, o),
				d = new Uint8Array(F[0][0]);
			H.BP(d, t, s, z);
			F[0][0] = s.buffer;
			P = Y;
			o = y
		}
		var U = new cB,
			v = 0,
			A = X && X[0] == !0;
		r.a8(U, v, 0);
		v += 2;
		r.a8(U, v, A ? 2 : 1);
		v += 2;
		r.a8(U, v, 1);
		v += 2;
		var Z = new Uint8Array(em.$I("png").bb(F, P, o));
		U.cj(v, 16);
		U.data[v] = P == 256 ? 0 : P;
		v++;
		U.data[v] = o == 256 ? 0 : o;
		v++;
		v += 2;
		r.a8(U, v, A ? Math.round(P / 2) : 1);
		v += 2;
		r.a8(U, v, A ? Math.round(o / 2) : 32);
		v += 2;
		r.PU(U, v, Z.length);
		v += 4;
		r.PU(U, v, 6 + 16);
		v += 4;
		U.cj(v, Z.length);
		for (var w = 0; w < Z.length; w++) U.data[v + w] = Z[w];
		v += Z.length;
		var D = new Uint8Array(v);
		for (var w = 0; w < v; w++) D[w] = U.data[w];
		return D.buffer
	};
	em.yk.xo = function (F) {
		F = new Uint8Array(F);
		var P = 4,
			o = r.wP(F, P);
		P += 2;
		var X = [];
		for (var w = 0; w < o; w++) {
			var Y = em.yk.adI(F, P + w * 16),
				y = F.buffer.slice(Y.offset, Y.offset + Y.size),
				z = em.Xh(y);
			z = z ? z : "bmp";
			if (z == "png") {
				var s = em.$I(z),
					t = s.xo(y);
				Y.mu = t[0]
			} else {
				var d = em.$I("BMP").F$(y, 0),
					y = H.R(Y.YY * Y.mi * 4);
				H.BP(new Uint8Array(d.data), new ev(0, 0, d.ym.Z, d.ym.h), y, new ev(0, Y.mi, Y.YY, Y.mi));
				d.data = y.buffer;
				d.ym.h = Y.mi;
				Y.mu = d
			}
			X.push(Y)
		}
		X.sort(function (U, v) {
			if (U.YY != v.YY) return U.YY - v.YY;
			return U.Ha - v.Ha
		});
		return [X.pop().mu]
	};
	em.yk.adI = function (F, P) {
		var o = {};
		o.YY = F[P];
		P++;
		if (o.YY == 0) o.YY = 256;
		o.mi = F[P];
		P++;
		if (o.mi == 0) o.mi = 256;
		o.aib = F[P];
		P++;
		P++;
		o.a5n = r.wP(F, P);
		P += 2;
		o.Ha = r.wP(F, P);
		P += 2;
		o.size = r.L6(F, P);
		P += 4;
		o.offset = r.L6(F, P);
		P += 4;
		return o
	};
	em.k8 = {};
	em.k8.xo = function (F) {
		var P = Date.now(),
			X, v = !0;
		if (H.raw.Ei(F.byteLength)) return [H.raw.ac2(F)];
		var o = UTIF.decode(F);
		if (o[0].t33421) X = o[0];
		else if (o[0].subIFD && o[0].subIFD[0].t33421) {
			X = o[0].subIFD[0];
			if (X.t50706 == null) {
				if (X.t258[0] == 8) X.t258[0] = 12
			}
		} else if (o[0].subIFD && o[0].subIFD[0] && o[0].subIFD[0].t262 && o[0].subIFD[0].t262[0] == 34892) X = o[0].subIFD[0];
		else if (o[0].subIFD && o[0].subIFD[1] && o[0].subIFD[1].t33421) X = o[0].subIFD[1];
		else if (o[0].subIFD && o[0].subIFD[2] && o[0].subIFD[2].t33421) X = o[0].subIFD[2];
		else if (o[3] && o[3].t50648) {
			var Y = o[0].exifIFD,
				y = Y.makerNote;
			X = o[3];
			var z = y.t224[1],
				s = y.t224[2];
			X.t256 = [z];
			X.t257 = [s];
			X.t258 = [16];
			X.t259 = [7];
			X.t262 = [32803];
			X.t277 = [1];
			X.t33421 = [2, 2];
			var t = X.t50656[0],
				d = H.raw.Bk[t];
			if (d == null) throw "e";
			X.t33422 = d
		}
		if (X) {
			UTIF.decodeImage(F, X, o);
			for (var U in o[0])
				if ((U[0] == "t" || U[0] == "e" || U[0] == "d") && X[U] == null) X[U] = o[0][U];
			X.Ss = o[0].t274 ? o[0].t274[0] : 1;
			return [X]
		}
		var A = 1 / 256;
		for (var w = 0; w < o.length; w++)
			if (o[w].t258 && o[w].t258[0] == 16 && o[w].t277 && o[w].t277[0] == 1) {} else v = !1;
		if (v) {
			var Z = 0,
				D = 0,
				q = 0;
			for (var w = 0; w < o.length; w++) {
				UTIF.decodeImage(F, o[w], o);
				var R = o[w].data;
				for (var J = 0; J < R.length; J += 2) {
					var W = R[J + 1] << 8 | R[J];
					if (W > Z) Z = W;
					D += W;
					q++
				}
			}
			A = 1 / 256 * 65535 / (.5 * Z + .5 * (2 * D / q))
		}
		var p = [];
		for (var w = 0; w < o.length; w++) {
			var n = o[w],
				b = 72;
			UTIF.decodeImage(F, n, o);
			var Q = n.t282,
				_ = n.t296;
			if (Q != null && _ != null) {
				b = Q[0][0] / Q[0][1];
				if (_[0] == 3) b = Math.round(b / 2.54)
			}
			if (n.width == null) continue;
			var L = UTIF.toRGBA8(n, A).buffer,
				m = f0.J2(n);
			p.push({
				ym: new ev(0, 0, n.width, n.height),
				data: L,
				NB: b,
				ZT: m
			})
		}
		return p
	};
	em.k8.bb = function (F, P, o, X) {
		if (X == null) X = [!1];
		var Y = {},
			y = F[0];
		if (y[3] != null && X[0]) Y = f0.XG(y[3]);
		if (y[2] != null) {
			Y.t282 = Y.t283 = [
				[Math.round(y[2]), 1]
			];
			Y.t296 = [2]
		}
		return UTIF.encodeImage(y[0], P, o, Y)
	};
	em.XV = {};
	em.XV.Vi = !0;
	em.XV.xo = function (F, P) {
		ic.ee(F, P)
	};
	em.XV.a0M = function (F, P, o, X) {
		if (X == null) X = [!1, !1];
		if (!X[0]) F.lD();
		var Y = new cB,
			y = ic.HC(F, Y, X);
		return [Y.data.buffer, y]
	};
	em.XV.bb = function (F, P, o, X) {
		var Y = em.XV.a0M(F, P, o, X),
			y = Y[0],
			z = Y[1];
		return y.byteLength == z ? y : y.slice(0, z)
	};
	em.qI = {};
	em.qI.Vi = !0;
	em.qI.xo = function (F, P) {
		var o = pako.inflate(new Uint8Array(F)),
			X = 4;
		P.Z = r.l(o, X);
		X += 4;
		P.h = r.l(o, X);
		X += 4;
		var Y = r.lU(o, X);
		X += 2;
		X += 4;
		for (var y = 0; y < Y; y++) {
			var z = P.an();
			P.r.push(z);
			var s = r.l(o, X),
				t = X + 4,
				d = r.lU(o, t);
			t += 2;
			var U = r.bc(o, t, d);
			t += d;
			z.uf(U);
			t++;
			z.rect.x = r.tF(o, t);
			t += 4;
			z.rect.y = r.tF(o, t);
			t += 4;
			z.rect.Z = r.l(o, t);
			t += 4;
			z.rect.h = r.l(o, t);
			t += 4;
			z.opacity = Math.round(255 * o[t] / 100);
			t++;
			z.vR(o[t] != 0);
			t++;
			z.sW = "norm,lddg,norm,dark,diff,norm,hLit,norm,norm,lite,mul ,over,scrn,fsub".split(",")[o[t]];
			t++;
			t++;
			var v = r.l(o, t);
			t += 4;
			if (v != z.rect.M() * 4) throw "e";
			z.buffer = H.R(v);
			for (var w = 0; w < v; w += 4) {
				z.buffer[w] = o[t + w + 1];
				z.buffer[w + 1] = o[t + w + 2];
				z.buffer[w + 2] = o[t + w + 3];
				z.buffer[w + 3] = o[t + w + 0]
			}
			t += v;
			var A = r.l(o, t);
			t += 4;
			var Z = o[t];
			t++;
			var D = r.lU(o, t);
			t += 2;
			if (A != 0) {
				z.g = new h.vm;
				z.g.rect = z.rect.clone();
				z.g.channel = H.R(z.rect.M());
				for (var w = 0; w < A; w += 4) z.g.channel[w >>> 2] = o[t + w + 1];
				t += A
			}
			if (Z != 0) {
				var q = JSON.parse(ce.default);
				z.add.lmfx = q;
				for (var w = 0; w < ce.order.length; w++) q[ce.og[w]] = {
					t: "VlLs",
					v: []
				};
				var R = {
					"102": 9,
					"101": 2,
					"103": 0,
					"104": 3,
					"105": 8
				};
				for (var w = 0; w < Z; w++) {
					var J = r.lU(o, t),
						W = t + J + 4,
						p = o.slice(t, W),
						n = o[t + 2];
					t += 3;
					var b = R[n + ""],
						Q = JSON.parse(ce.IW[b]);
					q[ce.og[b]].v.push({
						t: "Objc",
						v: Q
					});
					if (b != 0) {
						Q.Md.v.BlnM = aK.Kl("norm");
						Q.Opct.v.val = o[t];
						t++;
						if (b == 9 || b == 2) {
							Q.Dstn.v.val = o[t + 1];
							t += 2
						} else t += 2;
						Q.blur.v.val = Math.round(o[t] * 1.2);
						t++;
						if (b == 9 || b == 2) {
							Q.uglg.v = !1;
							Q.lagl.v.val = 180 - r.lU(o, t);
							t += 2
						}
						Q.Clr.v = H.j.$H({
							U: o[t + 1],
							S: o[t + 2],
							i: o[t + 3]
						})
					} else {
						Q.hglM.v.BlnM = Q.sdwM.v.BlnM = aK.Kl("norm");
						t += 2;
						var _ = o[t++],
							L = o[t++];
						Q.blur.v.val = Math.round(Math.sqrt(L * _) * 1.3);
						Q.srgR.v.val = Math.round(100 * _ / L);
						Q.uglg.v = !1;
						Q.lagl.v.val = 180 - r.lU(o, t);
						t += 2;
						Q.hglO.v.val = o[t++];
						Q.hglC.v = H.j.$H({
							U: o[t + 1],
							S: o[t + 2],
							i: o[t + 3]
						});
						t += 4;
						Q.sdwO.v.val = o[t++];
						Q.sdwC.v = H.j.$H({
							U: o[t + 1],
							S: o[t + 2],
							i: o[t + 3]
						});
						t += 4
					}
					t = W
				}
			}
			if (t != X + 4 + s) {
				var m = r.l(o, t),
					V = 0;
				t += 4;
				t++;
				var d = r.lU(o, t);
				t += 2;
				var I = r.bc(o, t, d);
				t += d;
				I = I.replace(/\r/g, "\n");
				var d = r.lU(o, t);
				t += 2;
				var c = r.bc(o, t, d);
				t += d;
				var u = r.lU(o, t);
				t += 2;
				var a = z.rect.x,
					N = z.rect.Z;
				if (m & 4) V = 1;
				if (m & 2) V = 2;
				var M = Math.round(u * .4);
				if (V == 0 || V == 2) N += M;
				if (V == 1 || V == 2) {
					N += M;
					a -= M
				}
				z.add.lnsr = "rend";
				z.add.TySh = bt.T_(0, 0);
				z.add.TySh.xa = new ev(0, 0, 100, 100);
				z.add.TySh.O = new cu(1, 0, 0, 1, a, z.rect.y + u * .25);
				var O = z.add.TySh.MF;
				bt.E5(O, 1);
				bt.Z1(O, [0, 0, N, z.rect.h]);
				bt.v$(O, 0, I);
				var K = bt.lW(O, 0, 1);
				K.dS.FontSize = u;
				K.dS.FillColor = {
					Type: 1,
					Values: [1, o[t + 1] / 255, o[t + 2] / 255, o[t + 3] / 255]
				};
				t += 4;
				if (o[t + 5]) c += "-Bold";
				if (o[t + 6]) c += "-Italic";
				bt.oi(K, c);
				K.eS.Justification = V;
				t += 8;
				bt.Ji(O, 0, I.length, K)
			}
			X += 4 + s
		}
	};
	em.mZ = {};
	em.mZ.Vi = !0;
	em.mZ.xo = function (F, P) {
		gX.ee(F, P)
	};
	em.aQ = {};
	em.aQ.Vi = !0;
	em.aQ.xo = function (F, P) {
		h1.ee(F, P)
	};
	em.KC = {};
	em.KC.Vi = !0;
	em.KC.xo = function (F, P) {
		da.ee(F, P)
	};
	em.Pu = {};
	em.Pu.Vi = !0;
	em.Pu.xo = function (F, P) {
		dt.ee(F, P)
	};
	em.GK = {};
	em.GK.Vi = !0;
	em.GK.bb = function (F, P, o, X, Y) {
		if (X == null) X = [!0, !1, !1, !1, !0, !0];
		var y = e$.qx(F, {
			amv: X[0],
			hidden: X[1],
			am4: X[2],
			a8L: X[3],
			names: X[4],
			pu: X[5],
			ag3: P,
			aaW: o
		}, Y.SN);
		return y
	};
	em.GK.xo = function (F, P, o) {
		e$.ee(F, P, o)
	};
	em.UP = {};
	em.UP.Vi = !0;
	em.UP.xo = function (F, P) {
		var o = 150,
			X = new cu(1, 0, 0, -1, 0, 0);
		X.scale(o / 72, o / 72);
		P.NB = o;
		var Y = new al(P, X, !0);
		FromPS.Parse(F, Y)
	};
	em.jv = {};
	em.jv.Vi = !0;
	em.jv.bb = function (F, P, o, X, Y) {
		if (X == null) X = ["", 100, !1, !1, !1];
		X[5] = ["jpg"];
		var y = new ToPDF;
		c5.qx(F, X, y, Y.SN);
		return y.buffer
	};
	em.jv.xo = function (F, P, o) {
		var X = 2;
		while (!0) {
			var Y = X * 72,
				y = new cu(1, 0, 0, -1, 0, 0);
			y.scale(Y / 72, Y / 72);
			P.NB = Y;
			var z = new al(P, y, !0);
			FromPDF.Parse(F, z);
			var s = Math.max(P.Z, P.h);
			if (o && s < Math.max(o[0], o[1])) {
				P.r = [];
				var t = X;
				while (s * (X / t) < Math.max(o[0], o[1])) X++
			} else break
		}
	};
	em.XI = {};
	em.XI.Vi = !0;
	em.XI.xo = function (F, P) {
		var o = 72,
			X = new cu(1, 0, 0, 1, 0, 0);
		X.scale(o / 72, o / 72);
		P.NB = o;
		var Y = new al(P, X, !1);
		FromWMF.Parse(F, Y)
	};
	em.rs = {};
	em.rs.mw = !0;
	em.rs.Vi = !0;
	em.rs.bb = function (F, P, o, X, Y) {
		if (X == null) X = ["", !1, !1, !1];
		X[4] = [];
		var y = new ToEMF;
		c5.qx(F, X, y, Y.SN);
		return y.buffer
	};
	em.rs.xo = function (F, P) {
		var o = 72,
			X = new cu(1, 0, 0, 1, 0, 0);
		X.scale(o / 72, o / 72);
		P.NB = o;
		var Y = new al(P, X, !1);
		FromEMF.Parse(F, Y)
	};
	em.Ow = {};
	em.Ow.Vi = !0;
	em.Ow.xo = function (F, P) {
		return b7.ee(F, P)
	};
	em.Bp = {};
	em.Bp.xo = function (F, P) {
		var o = dI.ee(F),
			X = new Uint8Array(F),
			Y = 0,
			y, z, s, t, d, U, v, A, Z = 0,
			D = 0,
			q = 0,
			R = 0,
			J = 0;
		for (var W = 0; W < o.sub.length; W++) {
			var p = o.sub[W],
				Y = p.c;
			if (p.Za == "BMHD") {
				var n = [];
				for (var w = 0; w < 4; w++) n[w] = r.lU(X, Y + 2 * w);
				Y += 8;
				t = n[2];
				d = n[3];
				z = n[0];
				s = n[1];
				y = H.R(z * s * 4);
				U = X[Y++];
				v = X[Y++];
				A = X[Y++]
			} else if (p.Za == "CMAP") Z = Y;
			else if (p.Za == "CAMG") {
				var b = r.l(X, Y);
				D = b & 32768, q = b & 4, R = b & 2048;
				J = b & 128
			} else if (p.Za == "BODY") {
				var Q = z + 15 >>> 4 << 1,
					_ = U + v,
					L = H.R(Q * s * _),
					u, a, N;
				hG.QF(X, Y, p.size, L, 0, L.length);
				var m = U - 2,
					I = (1 << m) - 1,
					c = Math.round(255 / I);
				for (var d = 0; d < s; d++)
					for (var t = 0; t < z; t++) {
						var V = 0;
						for (var M = 0; M < _; M++) {
							var O = (d * _ + M) * Q * 8 + t,
								K = L[O >>> 3] >>> 7 - (O & 7) & 1;
							V |= K << M
						}
						var j = V >>> U,
							V = V & (1 << U) - 1,
							w = d * z + t,
							$ = w << 2;
						if (Z != 0) {
							if (R != 0 && V >>> m != 0) {
								var x = V >>> m,
									g = (V & I) * c;
								if (x == 1) N = g;
								else if (x == 2) u = g;
								else if (x == 3) a = g
							} else {
								var g = Z + V * 3;
								u = X[g + 0];
								a = X[g + 1];
								N = X[g + 2]
							}
						} else {
							u = V >>> 0 & 255;
							a = V >>> 8 & 255;
							N = V >>> 16 & 255
						}
						y[$ + 0] = u;
						y[$ + 1] = a;
						y[$ + 2] = N;
						y[$ + 3] = 255
					}
			}
		}
		return [{
			ym: new ev(0, 0, z, s),
			data: y.buffer
		}]
	};
	em.bB = {};
	em.bB.Vi = !1;
	em.bB.bb = function (F, P, o, X) {
		var Y = new Uint8Array(F[0][0]),
			y = 2,
			z = H.Ms(Y),
			s = z ? 4 : 3,
			t = new Uint8Array(P * o * s);
		for (var d = 0; d < o; d++)
			for (var U = 0; U < P; U++) {
				var v = d * P + U << 2,
					A = ((o - d - 1) * P + U) * s;
				t[A] = Y[v + 2];
				t[A + 1] = Y[v + 1];
				t[A + 2] = Y[v + 0];
				if (z) t[A + 3] = Y[v + 3]
			}
		if (!0) {
			var Z = t.length,
				D = 0,
				q = new Uint8Array(Z * 2),
				R = 0,
				J = 0,
				W = P * s;
			while (J < Z) {
				var p = J,
					n = 0,
					b = W * (Math.floor(J / W) + 1);
				while (p < b && n < 128) {
					var Q = !0;
					for (var w = 0; w < s; w++) Q = Q & t[J + w] == t[p + w];
					if (!Q) break;
					p += s;
					n++
				}
				if (n == 1) {
					var _ = 1;
					while (_ < 128 && J + (_ + 1) * s < b) {
						var Q = !0,
							L = J + _ * s;
						for (var w = 0; w < s; w++) Q = Q & t[L + w] == t[L + s + w];
						if (Q) break;
						_++
					}
					q[R++] = _ - 1;
					for (var m = 0; m < _; m++)
						for (var w = 0; w < s; w++) q[R++] = t[J++]
				} else {
					q[R++] = 127 + n;
					for (var w = 0; w < s; w++) q[R + w] = t[J + w];
					R += s;
					J += s * n;
					D += n
				}
			}
			t = q.slice(0, R);
			y += 8
		}
		var I = new Uint8Array(18 + t.length + 26);
		I[2] = y;
		r.qu(I, 12, P);
		r.qu(I, 14, o);
		I[16] = s * 8;
		I[17] = s == 4 ? 8 : 0;
		I.set(t, 18);
		r.jW(I, 18 + t.length + 8, "TRUEVISION-XFILE.");
		return I.buffer
	};
	em.bB.xo = function (F) {
		var P = new Uint8Array(F),
			o = 0,
			X = P[0],
			Y = P[1],
			y = P[2],
			z = P[4] * 256 + P[3],
			s = P[6] * 256 + P[5],
			t = P[7],
			d = P[9] * 256 + P[8],
			U = P[11] * 256 + P[10],
			v = P[13] * 256 + P[12],
			A = P[15] * 256 + P[14],
			Z = P[16],
			D = P[17],
			q = D >>> 4,
			R = r.$o(P, 18, X),
			J = H.R(v * A * 4),
			o = 18 + X + (s * t >>> 3),
			W = new Uint8Array(P.buffer, o);
		if (y > 3) {
			var p = 0,
				n = P,
				b = new Uint8Array(v * A * Z >>> 3),
				Q = o,
				_ = 0,
				L = P.length,
				m = Z >>> 3;
			while (_ < b.length) {
				var e = n[Q];
				Q++;
				if (e < 128)
					for (var w = 0; w < e + 1; w++) {
						for (var I = 0; I < m; I++) {
							b[_] = n[Q];
							_++;
							Q++
						}
					} else {
						for (var w = 0; w < e - 127; w++) {
							for (var I = 0; I < m; I++) {
								b[_] = n[Q + I];
								_++
							}
						}
						Q += m
					}
			}
			y -= 8;
			W = b;
			o = Q
		} else o += v * A * Z >>> 3;
		var c = new Uint8Array(4),
			u = em.bB.a4m;
		for (var a = 0; a < A; a++)
			for (var N = 0; N < v; N++) {
				var V = (q & 2) == 0 ? (A - a - 1) * v + N : a * v + N,
					M = a * v + N,
					O, K, j, $ = 255,
					x = V * Z >>> 3;
				if (y == 1) {
					var g = 0;
					if (Z == 8) g = W[x];
					else throw "e";
					u(P, 18 + X + z + (g * t >>> 3), t, c);
					O = c[0];
					K = c[1];
					j = c[2];
					$ = c[3]
				} else if (y == 2) {
					u(W, x, Z, c);
					O = c[0];
					K = c[1];
					j = c[2];
					$ = c[3]
				} else if (y == 3) {
					if (Z == 8) O = K = j = W[x];
					else throw "e"
				}
				var T = M * 4;
				J[T] = O;
				J[T + 1] = K;
				J[T + 2] = j;
				J[T + 3] = $
			}
		return [{
			ym: new ev(0, 0, v, A),
			data: J.buffer,
			_l: R
		}]
	};
	em.bB.a4m = function (F, P, o, X) {
		var Y, y, z, s = 255;
		if (o == 24 || o == 32) {
			z = F[P];
			y = F[P + 1];
			Y = F[P + 2];
			if (o == 32) s = F[P + 3]
		} else if (o == 16) {
			var t = F[P + 1] << 8 | F[P + 0];
			Y = t >>> 10 & 31;
			y = t >>> 5 & 31;
			z = t >>> 0 & 31;
			Y = Math.round(Y * (255 / 31));
			y = Math.round(y * (255 / 31));
			z = Math.round(z * (255 / 31))
		} else throw "e";
		X[0] = Y;
		X[1] = y;
		X[2] = z;
		X[3] = s
	};
	em.bF = {};
	em.bF.xo = function (F) {
		var P = new Uint8Array(F),
			o = 0,
			X = 112,
			Y = 42,
			y = r.L6,
			U;
		o += 8;
		var z = P[o];
		o++;
		if (z != Y) throw "e";
		var s = y(P, o);
		o += 4;
		var t = r.zg(P, o, s);
		o += s * 2;
		var d = [];
		while (o < P.length) {
			U = y(P, o);
			o += 4;
			if (U != X) throw U;
			o += 4;
			U = P[o];
			o++;
			if (U != Y) throw U;
			var v = y(P, o);
			o += 4;
			var A = P[o];
			o++;
			if (A != Y) {
				o -= 5;
				v = y(P, o);
				o += 8;
				U = P[o];
				o++;
				if (U != Y) throw U
			}
			var Z = y(P, o) * 2;
			o += 4;
			if (v > 0) d.push(o + Z);
			o += Z + v
		}
		var D = new DOMParser,
			q = D.parseFromString(t, "image/svg+xml").firstChild.firstChild,
			R = [];
		em.bF.K4(q, P, d, R);
		return R
	};
	em.bF.K4 = function (F, P, o, X) {
		var Y = F.firstChild.firstChild;
		if (Y.tagName == "Image") {
			var y = Y.getElementsByTagName("ImageDescription")[0],
				z = y.children[0].children,
				s = y.children[1].children,
				t = o.shift(),
				d = [];
			for (var w = 0; w < s.length; w++) d.push(parseInt(s[w].getAttribute("NumberOfElements")));
			while (d.length > 3) d[2] *= d.pop();
			var U = z.length,
				v = d[0],
				A = d[1],
				Z = d[2],
				D = parseInt(s[0].getAttribute("BytesInc"));
			for (var q = 0; q < Z; q++) {
				var R = H.R(v * A * 4);
				H.XB(R, 4278190080);
				for (var J = 0; J < U; J++) {
					var W = H.R(v * A);
					if (D == 1)
						for (var p = 0; p < W.length; p++) W[p] = P[t + p];
					else if (D == 2)
						for (var p = 0; p < W.length; p++) W[p] = Math.min(255, (P[t + p * 2 + 1] << 8 | P[t + p * 2]) >>> 2);
					else throw D;
					if (J != 3) H.Oy(W, R, J);
					if (U == 1) {
						H.Oy(W, R, 1);
						H.Oy(W, R, 2)
					}
					t += v * A * D
				}
				X.push({
					ym: new ev(0, 0, v, A),
					data: R.buffer
				})
			}
		} else {
			var n = F.children,
				b = 0;
			while (b < n.length && n[b].tagName != "Children") b++;
			if (b == n.length) throw "e";
			n = n[b].children;
			for (var Q = 0; Q < n.length; Q++) em.bF.K4(n[Q], P, o, X)
		}
	};
	em.So = {};
	em.So.xo = function (F) {
		var P = new Uint8Array(F),
			o = 16,
			X = r.$o(P, o, 4),
			y = 32,
			J = 0,
			W = 0,
			p = !1,
			K;
		o += 4;
		var Y = r.$o(P, o, 8);
		o += 8;
		while (P[o + y - 1] == 0) y--;
		var z = r.$o(P, o, y);
		o += 32;
		var s = r.$o(P, o, 4);
		o += 4;
		o += 20;
		var t = r.l(P, o);
		o += 4;
		var d = r.l(P, o);
		o += 4;
		var U = r.l(P, o);
		o += 4;
		var v = r.l(P, o);
		o += 4;
		var A = r.l(P, o);
		o += 4;
		var Z = r.l(P, o);
		o += 4;
		var D = "FujiFilm " + z,
			q = [0, 1, 1, 2];
		if (D == "FujiFilm X10") {
			D = "FujiFilm FinePix X10";
			q = [2, 1, 1, 0]
		}
		var R = {
			t271: ["FujiFilm"],
			t272: [D],
			t277: [1],
			t33421: [2, 2],
			t33422: q,
			Ss: 1
		};
		o = U;
		var n = [],
			b = r.lU,
			Q = r.l(P, o);
		o += 4;
		for (var w = 0; w < Q; w++) {
			var _ = b(P, o);
			o += 2;
			var L = b(P, o);
			o += 2;
			if (_ == 256) {
				W = b(P, o);
				J = b(P, o + 2)
			} else if (_ == 272) {
				n = [b(P, o), b(P, o + 2)]
			} else if (_ == 273) {
				n.push(b(P, o), b(P, o + 2))
			} else if (_ == 304) {
				p = !(P[o] >>> 7)
			} else if (_ == 305) {
				var m = Math.round(Math.sqrt(L)),
					I = [];
				for (var c = 0; c < L; c++) I.push(P[o + c]);
				I.reverse();
				R.t33421 = [m, m];
				R.t33422 = I
			} else if (_ == 12272) {
				var u = b(P, o),
					a = b(P, o + 2),
					N = b(P, o + 6);
				R.t50728 = [u / a, 1, u / N]
			}
			o += L
		}
		var V = J < W,
			M = P.slice(A, A + Z),
			O = Math.round(Z * 8 / (J * W));
		if (M[0] == 73 && M[1] == 73 && M[2] == 42) {
			K = UTIF.decode(M.buffer)[0].fujiIFD;
			O = K.t61443[0];
			var j = K.t61454;
			R.t50728 = [j[0] / j[1], 1, j[0] / j[2]];
			var $ = K.t61447[0];
			M = M.slice($, $ + K.t61448[0])
		}
		var Z = M.length,
			x = Z * 8 < J * W * O;
		if (x) alert("Compressed RAF is not supported yet :(");

		function g(bN, cg, d8) {
			d8 = d8 << 8 - (cg & 7);
			var C = cg >>> 3;
			bN[C] |= d8 >>> 16;
			bN[C + 1] |= d8 >>> 8;
			bN[C + 2] |= d8
		}
		var T = Z * 8 / (J * W);
		if (T == 16)
			for (var w = 0; w < Z; w += 2) {
				var E = M[w];
				M[w] = M[w + 1];
				M[w + 1] = E
			} else if (T == 14) {
				for (var w = 0; w < Z; w += 4) {
					var E = M[w];
					M[w] = M[w + 3];
					M[w + 3] = E;
					E = M[w + 1];
					M[w + 1] = M[w + 2];
					M[w + 2] = E
				}
			} else if (T == 12)
			for (var w = 0; w < Z; w += 3) {
				var a9 = M[w + 2] << 16 | M[w + 1] << 8 | M[w + 0];
				a9 = a9 >>> 12 | (a9 & 4095) << 12;
				M[w] = a9 >>> 16 & 255;
				M[w + 1] = a9 >>> 8 & 255;
				M[w + 2] = a9 & 255
			}
		if (V) M = em.So.akn(M, J, W);
		var ez = V ? 2 : 1;
		J *= ez;
		R.t256 = [J];
		R.t257 = [W];
		R.t258 = [O];
		R.t50719 = [n[1], n[0] * ez];
		R.t50720 = [n[3], n[2] * ez];
		R.width = J;
		R.height = W;
		R.data = new Uint8Array(M.buffer);
		return [R]
	};
	em.So.akn = function (F, P, o) {
		F = new Uint16Array(F.buffer);
		var X = new Uint16Array(P * o * 2);
		for (var Y = 0; Y < o; Y += 2)
			for (var y = 0; y < P; y++) {
				var z = Y * P + y,
					s = z * 2,
					t = F[z],
					d = F[z + P];
				X[s + 1] = X[s + 2 * P] = d;
				if (((Y >>> 1) + y & 1) == 0) {
					X[s] = t;
					X[s + 2 * P + 1] = F[z + 1]
				} else {
					X[s] = F[z - 1];
					X[s + 2 * P + 1] = t
				}
			}
		return X
	};
	em.MU = {};
	em.MU.mw = !0;
	em.MU.bb = function (F, P, o, X) {
		var Y = new Uint8Array(F[0][0]),
			y = P * o,
			z = [1, 3, 4][X[0]],
			s = 8 + 8 * X[1],
			t = X[2];
		if (z == 1) {
			var d = new Uint8Array(P * o);
			H.E4(Y, d, 0);
			Y = d
		}
		if (z == 3) {
			var d = new Uint8Array(P * o * 3);
			for (var w = 0; w < y; w++) {
				var U = w * 4,
					v = w * 3;
				d[v] = Y[U];
				d[v + 1] = Y[U + 1];
				d[v + 2] = Y[U + 2]
			}
			Y = d
		}
		if (s == 16) {
			var A = Y.length,
				d = new Uint8Array(A * 2);
			for (var w = 0; w < A; w++) {
				var Z = Math.round(Y[w] * (65535 / 255));
				d[w * 2 + t] = Z >>> 8;
				d[w * 2 + 1 - t] = Z & 255
			}
			Y = d
		}
		return Y.buffer
	};

	function H() {}
	H.ob = document.createElement("canvas");
	H.xX = H.ob.getContext("2d");
	H.c0 = function (F, P, o, X) {
		X = Math.log(X) / Math.log(2);
		X = Math.round(X);
		for (var w = 0; w < o; w++)
			for (var Y = 0; Y < P; Y++) {
				var y = w * P + Y << 2,
					z = H.FC(w, Y, X);
				F[y] = F[y + 1] = F[y + 2] = z;
				F[y + 3] = 255
			}
	};
	H.FC = function (w, F, P) {
		return 255 - ((w >>> P) + (F >>> P) & 1) * 51
	};
	H.v2 = function (F) {
		var P = F.toString(16);
		while (P.length < 6) P = "0" + P;
		return P
	};
	H.cq = function (F) {
		return parseInt(F, 16)
	};
	H.ec = function (F) {
		return .3 * F.U + .59 * F.S + .11 * F.i
	};
	H.TO = function (F) {
		return Math.max(F.U, F.S, F.i) - Math.min(F.U, F.S, F.i)
	};
	H.ou = function (F, P, o) {
		return .3 * F + .59 * P + .11 * o
	};
	H.a6K = function (F, P, o) {
		return Math.max(F, P, o) - Math.min(F, P, o)
	};
	H.iP = function (F, P) {
		var o = P - F,
			X = Math.abs(o),
			Y = o - 1,
			y = o + 1;
		if (Math.abs(Y) < X) o = Y;
		else if (Math.abs(y) < X) o = y;
		return o
	};
	H.AY = function (F, P, o, X) {
		return (P - o) * X / (F - o)
	};
	H.SU = function (F) {
		return F < .0031308 ? 12.92 * F : 1.055 * Math.pow(F, 1 / 2.4) - .055
	};
	H.a6y = function (F) {
		return F < .04045 ? F / 12.92 : Math.pow((F + .055) / 1.055, 2.4)
	};
	H.a4G = function (F, P, o, X) {
		if (o < P) o += X;
		if (F < P) F += X;
		return (F - P) / (o - P)
	};
	H.a2K = function (F, P) {
		var o = Math.min(F.length, P.length);
		for (var w = 0; w < o; w += 4) {
			var X = F[w],
				Y = F[w + 1],
				y = F[w + 2];
			P[w] = 16 + Math.floor(65.481 / 255 * X + 128.553 / 255 * Y + 24.966 / 255 * y + .5);
			P[w + 1] = 128 - Math.floor(37.797 / 255 * X - 74.203 / 255 * Y + 112 / 255 * y + .5);
			P[w + 2] = 128 + Math.floor(112 / 255 * X - 93.786 / 255 * Y - 18.214 / 255 * y + .5);
			P[w + 3] = F[w + 3]
		}
	};
	H.T4 = function (F, P, o) {
		var X = Math.max(F, P, o),
			Y = Math.min(F, P, o),
			y = 0,
			z = 0,
			s = (X + Y) * .5;
		if (X != Y) {
			var t = X - Y;
			z = s > .5 ? t / (2 - (X + Y)) : t / (X + Y);
			switch (X) {
				case F:
					y = (P - o) / t + (P < o ? 6 : 0);
					break;
				case P:
					y = (o - F) / t + 2;
					break;
				case o:
					y = (F - P) / t + 4;
					break
			}
			y *= 1 / 6
		}
		return {
			mi: y,
			Pg: z,
			lr: s
		}
	};
	H.Uq = function (F, P, o) {
		var X, Y, y;
		if (P == 0) X = Y = y = o;
		else {
			var z = o < .5 ? o * (1 + P) : o + P - o * P,
				s = 2 * o - z;
			X = H.C7(s, z, F + 1 / 3);
			Y = H.C7(s, z, F);
			y = H.C7(s, z, F - 1 / 3)
		}
		return {
			U: X,
			S: Y,
			i: y
		}
	};
	H.C7 = function (F, P, o) {
		if (o < 0) o += 1;
		if (o > 1) o -= 1;
		if (o < 1 / 6) return F + (P - F) * 6 * o;
		if (o < 1 / 2) return P;
		if (o < 2 / 3) return F + (P - F) * (2 / 3 - o) * 6;
		return F
	};
	H.eE = function (F, P, o) {
		var X = Math.max(F, P, o),
			Y = Math.min(F, P, o),
			y, z, s = X,
			t = X - Y;
		z = X == 0 ? 0 : t / X;
		if (X == Y) y = 0;
		else {
			switch (X) {
				case F:
					y = (P - o) / t + (P < o ? 6 : 0);
					break;
				case P:
					y = (o - F) / t + 2;
					break;
				case o:
					y = (F - P) / t + 4;
					break
			}
			y *= 1 / 6
		}
		return {
			mi: y,
			Pg: z,
			pl: s
		}
	};
	H.ul = function (F, P, o) {
		var X, Y, y, w, z, s, t, d;
		w = Math.floor(F * 6);
		z = F * 6 - w;
		s = o * (1 - P);
		t = o * (1 - z * P);
		d = o * (1 - (1 - z) * P);
		switch (w % 6) {
			case 0:
				X = o, Y = d, y = s;
				break;
			case 1:
				X = t, Y = o, y = s;
				break;
			case 2:
				X = s, Y = o, y = d;
				break;
			case 3:
				X = s, Y = t, y = o;
				break;
			case 4:
				X = d, Y = s, y = o;
				break;
			case 5:
				X = o, Y = s, y = t;
				break
		}
		return {
			U: X,
			S: Y,
			i: y
		}
	};
	H.Pa = function () {
		var F = [],
			P = [];
		for (var w = 0; w < 2e3; w++) {
			var o = w / 1e3;
			F[w] = H.a6y(o);
			P[w] = o > .008856 ? Math.pow(o, 1 / 3) : (903.3 * o + 16) * (1 / 116)
		}
		return [F, P]
	}();
	H.tm = function (F, P, o) {
		var X = H.Pa[0],
			Y = H.Pa[1];
		F = X[~~(F * (1e3 / 255))];
		P = X[~~(P * (1e3 / 255))];
		o = X[~~(o * (1e3 / 255))];
		var y = H.t1.adC,
			z = y[0] * F + y[1] * P + y[2] * o,
			s = y[4] * F + y[5] * P + y[6] * o,
			t = y[8] * F + y[9] * P + y[10] * o;
		z = z * (100 / 96.72);
		s = s * (100 / 100);
		t = t * (100 / 81.427);
		return H.ak(z, s, t)
	};
	H.ak = function (F, P, o) {
		var X = H.Pa[1],
			Y = X[~~(F * 1e3)],
			y = X[~~(P * 1e3)],
			z = X[~~(o * 1e3)];
		return {
			Ov: 116 * y - 16,
			m: 500 * (Y - y),
			i: 200 * (y - z)
		}
	};
	H.qL = function (F, P, o) {
		var X = 903.3,
			Y = .008856,
			y = (F + 16) / 116,
			z = y * y * y,
			s = y - o / 200,
			t = s * s * s,
			d = P / 500 + y,
			U = d * d * d,
			v = t > Y ? t : (116 * s - 16) / X,
			A = z > Y ? z : (116 * y - 16) / X,
			Z = U > Y ? U : (116 * d - 16) / X,
			D = Z * 96.72,
			q = A * 100,
			R = v * 81.427,
			J = H.t1.UE(H.t1.ro, [D / 100, q / 100, R / 100, 0]);
		for (var w = 0; w < 4; w++) J[w] = Math.max(0, Math.min(255, H.SU(J[w]) * 255));
		return {
			U: J[0],
			S: J[1],
			i: J[2]
		}
	};
	H.LZ = function (F, P, o, X, Y) {
		var y = F.Ov,
			z = F.m,
			s = F.i,
			t = (y < P.Ov ? P.Ov - y : o.Ov < y ? o.Ov - y : 0) * (1 / 100),
			d = (z < P.m ? P.m - z : o.m < z ? o.m - z : 0) * (1 / 116),
			U = (s < P.i ? P.i - s : o.i < s ? o.i - s : 0) * (1 / 116),
			v = Math.sqrt(t * t + d * d + U * U) * 1.35;
		return v <= X ? Math.min(1, 1.17 * (1 - v * Y)) : 0
	};
	H.Am = function (F, P, o) {
		var X = P - H.ec(F);
		o.U = F.U + X;
		o.S = F.S + X;
		o.i = F.i + X;
		H.ai_(o)
	};
	H.i8 = function (F, P, o) {
		var X = F.U,
			Y = F.S,
			y = F.i;
		if (X == Y && Y == y) {
			o.U = o.S = o.i = 0
		} else if (X > Y) {
			if (X > y) {
				if (Y > y) {
					o.U = P;
					o.S = H.AY(X, Y, y, P);
					o.i = 0
				} else {
					o.U = P;
					o.i = H.AY(X, y, Y, P);
					o.S = 0
				}
			} else {
				o.i = P;
				o.U = H.AY(y, X, Y, P);
				o.S = 0
			}
		} else {
			if (X < y) {
				if (Y > y) {
					o.S = P;
					o.i = H.AY(Y, y, X, P);
					o.U = 0
				} else {
					o.i = P;
					o.S = H.AY(y, Y, X, P);
					o.U = 0
				}
			} else {
				o.S = P;
				o.U = H.AY(Y, X, y, P);
				o.i = 0
			}
		}
	};
	H.ai_ = function (F) {
		var P = F.U,
			o = F.S,
			X = F.i,
			Y = H.ou(P, o, X),
			e = Math.min(P, o, X),
			y = Math.max(P, o, X);
		if (e < 0) {
			var z = Y / (Y - e);
			P = Y + (P - Y) * z;
			o = Y + (o - Y) * z;
			X = Y + (X - Y) * z
		}
		if (y > 1) {
			var z = (1 - Y) / (y - Y);
			P = Y + (P - Y) * z;
			o = Y + (o - Y) * z;
			X = Y + (X - Y) * z
		}
		F.U = P;
		F.S = o;
		F.i = X
	};
	H.RK = function (F, P, o, X, Y, y) {
		var z = new Uint32Array(F.buffer),
			s = 0;
		X = Math.log(X) / Math.log(2);
		X = Math.round(X);
		for (var w = 0; w < o; w++)
			for (var t = 0; t < P; t++) {
				z[s++] = (w + y >> X) + (t + Y >> X) & 1 == 1 ? 4291348680 : 4294967295
			}
	};
	H.acY = function (F, P, o) {
		return (F >> o) + (P >> o) & 1 == 1 ? 200 : 255
	};
	H.np = function (F, P) {
		var o = F.length;
		for (var w = 0; w < o; w += 4) P[w >> 2] = Math.floor(F[w + 0] * .3 + F[w + 1] * .59 + F[w + 2] * .11 + .5)
	};
	H.Sv = function (F, P) {
		var o = P.length;
		for (var w = 0; w < o; w += 4) {
			var X = F[w >>> 2];
			P[w] = X;
			P[w + 1] = X;
			P[w + 2] = X
		}
	};
	H.sA = function (F, P) {
		var o = F.m,
			X = F.U,
			Y = F.S,
			y = F.i,
			z = Math.min(F.m.length, P.buffer.byteLength >>> 2),
			s = 4 * Math.floor(z / 4),
			t = new Uint32Array(P.buffer),
			d = new Uint32Array(o.buffer),
			U = new Uint32Array(X.buffer),
			v = new Uint32Array(Y.buffer),
			A = new Uint32Array(y.buffer);
		for (var w = 0; w < s; w += 4) {
			var Z = d[w >> 2],
				D = A[w >> 2],
				q = v[w >> 2],
				R = U[w >> 2];
			t[w] = Z << 24 | (D & 255) << 16 | (q & 255) << 8 | R & 255;
			t[w + 1] = (Z & 65280) << 16 | (D & 65280) << 8 | q & 65280 | (R & 65280) >>> 8;
			t[w + 2] = (Z & 16711680) << 8 | D & 16711680 | (q & 16711680) >>> 8 | (R & 16711680) >>> 16;
			t[w + 3] = Z & 4278190080 | (D & 4278190080) >>> 8 | (q & 4278190080) >>> 16 | (R & 4278190080) >>> 24
		}
		for (var w = s; w < z; w++) t[w] = o[w] << 24 | y[w] << 16 | Y[w] << 8 | X[w]
	};
	H.a6U = function (F, P, o, X) {
		var Y = F.m,
			y = F.U,
			z = F.S,
			s = F.i,
			t = new Uint32Array(P.buffer),
			d = X.x - o.x,
			U = d + X.Z,
			v = X.y - o.y,
			A = v + X.h;
		for (var Z = v; Z < A; Z++) {
			var w = Z * o.Z + d;
			for (var D = d; D < U; D++) {
				t[w] = Y[w] << 24 | s[w] << 16 | z[w] << 8 | y[w];
				w++
			}
		}
	};
	H.Ae = function (F, P) {
		var o = P.m,
			X = P.U,
			Y = P.S,
			y = P.i,
			z = Math.min(P.m.length, F.buffer.byteLength >>> 2),
			s = 4 * Math.floor(z / 4),
			t = new Uint32Array(F.buffer),
			d = new Uint32Array(o.buffer),
			U = new Uint32Array(X.buffer),
			v = new Uint32Array(Y.buffer),
			A = new Uint32Array(y.buffer);
		for (var w = 0; w < s; w += 4) {
			var Z = t[w],
				D = t[w + 1],
				q = t[w + 2],
				R = t[w + 3];
			U[w >> 2] = Z & 255 | (D & 255) << 8 | (q & 255) << 16 | R << 24;
			v[w >> 2] = (Z & 65280) >> 8 | D & 65280 | (q & 65280) << 8 | (R & 65280) << 16;
			A[w >> 2] = (Z & 16711680) >> 16 | (D & 16711680) >> 8 | q & 16711680 | (R & 16711680) << 8;
			d[w >> 2] = Z >>> 24 | D >>> 24 << 8 | q >>> 24 << 16 | R & 4278190080
		}
		for (var w = s; w < z; w++) {
			var J = t[w];
			X[w] = J >> 0 & 255;
			Y[w] = J >> 8 & 255;
			y[w] = J >> 16 & 255;
			o[w] = J >> 24 & 255
		}
	};
	H.E4 = function (F, P, o) {
		var X = new Uint8Array(F.buffer),
			Y = Math.min(X.length / 4, P.length);
		for (var w = 0; w < Y; w++) {
			P[w] = X[(w << 2) + o]
		}
	};
	H.Oy = function (F, P, o) {
		var X = new Uint8Array(P.buffer),
			Y = new Uint32Array(F.buffer),
			y = Math.min(X.length / 4, F.length),
			w = 0;
		while (w + 4 < y) {
			var z = Y[w >>> 2];
			X[(w << 2) + o] = z & 255;
			X[(w << 2) + o + 4] = z >>> 8 & 255;
			X[(w << 2) + o + 8] = z >>> 16 & 255;
			X[(w << 2) + o + 12] = z >>> 24;
			w += 4
		}
		while (w < y) {
			X[(w << 2) + o] = F[w];
			w++
		}
	};
	H.clone = function (F) {
		return F.slice(0)
	};
	H.OL = function (F, P) {
		H.set(F.m, P);
		H.set(F.U, P);
		H.set(F.S, P);
		H.set(F.i, P)
	};
	H.set = function (F, P) {
		P = Math.round(P);
		var o = P << 24 | P << 16 | P << 8 | P,
			X = new Uint32Array(F.buffer),
			Y = X.length;
		for (var w = 0; w < Y; w++) X[w] = o
	};
	H.XB = function (F, P, o) {
		if (o == null) o = 0;
		var X = new Uint32Array(F.buffer),
			Y = X.length;
		for (var w = 0; w < Y; w++) X[w] = X[w] & o | P
	};
	H.ah5 = function (F, P, o, X, Y) {
		if (Y == null) Y = 0;
		var y = new Uint32Array(F.buffer);
		o = o.$X(P);
		var z = o.x - P.x,
			s = o.y - P.y,
			t = o.Z,
			d = o.h,
			U = P.Z;
		for (var v = 0; v < d; v++) {
			var w = (s + v) * U + z;
			for (var A = 0; A < t; A++) {
				y[w] = y[w] & Y | X;
				w++
			}
		}
	};
	H.aeV = function (F, P) {
		H.Hk(F.m, P.m);
		H.Hk(F.U, P.U);
		H.Hk(F.S, P.S);
		H.Hk(F.i, P.i)
	};
	H.Hk = function (F, P) {
		var o = Math.min(F.buffer.byteLength, P.buffer.byteLength),
			X = o >>> 2,
			F = new Uint32Array(F.buffer, 0, X),
			P = new Uint32Array(P.buffer, 0, X);
		P.set(F)
	};
	H.aeD = function (F, P) {
		return H.Qn(F.m, P.m) && H.Qn(F.U, P.U) && H.Qn(F.S, P.S) && H.Qn(F.i, P.i)
	};
	H.Qn = function (F, P) {
		var o = F.buffer.byteLength,
			X = P.buffer.byteLength,
			Y = new Uint32Array(F.buffer, 0, o >> 2),
			y = new Uint32Array(P.buffer, 0, X >> 2);
		if (o != X) return !1;
		var z = Y.length;
		for (var w = 0; w < z; w++)
			if (y[w] != Y[w]) return !1;
		return !0
	};
	H.nJ = function (F) {
		var P = new Uint32Array(F.buffer),
			o = P.length;
		for (var w = 0; w < o; w++) P[w] = ~P[w]
	};
	H.ada = function (F) {
		var P = F.length;
		for (var w = 3; w < P; w += 4) F[w] = ~F[w]
	};
	H.adk = function (F) {
		return F + (F % 4 == 0 ? 0 : 4 - F % 4)
	};
	H.R = function (F, P) {
		if (P == null) P = !1;
		if (!P) F = H.adk(F);
		try {
			var o = new Uint8Array(F)
		} catch (h9) {
			alert("Not enough RAM! (need " + Math.round(F / (1 << 20)) + " MB)", 7e3);
			throw "low_ram"
		}
		return o
	};
	H.hE = function (F) {
		var P = F.length,
			o = F[P - 2],
			X = F[P - 1];
		while (X.Z >= 2 && X.h >= 2) {
			var Y = H.Ar(o, X);
			F.push(Y.Ww, Y.rect);
			o = Y.Ww;
			X = Y.rect
		}
	};
	H.h8 = function (F) {
		var P = F.length,
			o = F[P - 2],
			X = F[P - 1];
		while (X.Z >= 2 && X.h >= 2) {
			var Y = H.wx(o, X);
			F.push(Y.Ww, Y.rect);
			o = Y.Ww;
			X = Y.rect
		}
	};
	H.Ar = function (F, P, o) {
		var X = P.Z,
			Y = P.h,
			y = X >> 1,
			z = Y >> 1,
			s = new ev(P.x, P.y, y, z),
			t = o && o.length == y * z * 4 ? o : H.R(y * z * 4),
			d = new Uint32Array(F.buffer),
			U = new Uint32Array(t.buffer);
		for (var v = 0; v < z; v++)
			for (var A = 0; A < y; A++) {
				var Z = v * y + A,
					D = (v << 1) * X + (A << 1),
					q = d[D],
					R = d[D + 1],
					J = d[D + X],
					W = d[D + X + 1],
					p = q >>> 24,
					n = R >>> 24,
					b = J >>> 24,
					Q = W >>> 24,
					_ = p + n + b + Q;
				if (_ == 1020) {
					var L = (q >>> 0 & 255) + (R >>> 0 & 255) + (J >>> 0 & 255) + (W >>> 0 & 255) + 2 >>> 2,
						m = (q >>> 8 & 255) + (R >>> 8 & 255) + (J >>> 8 & 255) + (W >>> 8 & 255) + 2 >>> 2,
						I = (q >>> 16 & 255) + (R >>> 16 & 255) + (J >>> 16 & 255) + (W >>> 16 & 255) + 2 >>> 2;
					U[Z] = 255 << 24 | I << 16 | m << 8 | L
				} else if (_ == 0) U[Z] = 0;
				else {
					var L = (q >>> 0 & 255) * p + (R >>> 0 & 255) * n + (J >>> 0 & 255) * b + (W >>> 0 & 255) * Q,
						m = (q >>> 8 & 255) * p + (R >>> 8 & 255) * n + (J >>> 8 & 255) * b + (W >>> 8 & 255) * Q,
						I = (q >>> 16 & 255) * p + (R >>> 16 & 255) * n + (J >>> 16 & 255) * b + (W >>> 16 & 255) * Q,
						c = 1 / _;
					L = ~~(L * c + .5);
					m = ~~(m * c + .5);
					I = ~~(I * c + .5);
					U[Z] = _ + 2 >>> 2 << 24 | I << 16 | m << 8 | L
				}
			}
		return {
			rect: s,
			Ww: t
		}
	};
	H.p0 = function (F, P, o) {
		var X = P.Z,
			Y = P.h,
			y = X >> 1,
			z = Y >> 1,
			s = new ev(P.x, P.y, y, z),
			t = o && o.length == y * z * 4 ? o : H.R(y * z * 4),
			d = new Uint32Array(F.buffer),
			U = new Uint32Array(t.buffer);
		for (var v = 0; v < z; v++)
			for (var A = 0; A < y; A++) {
				var Z = v * y + A,
					D = (v << 1) * X + (A << 1),
					q = d[D],
					R = d[D + 1],
					J = d[D + X],
					W = d[D + X + 1],
					p = 2 + (q >>> 0 & 255) + (R >>> 0 & 255) + (J >>> 0 & 255) + (W >>> 0 & 255) >>> 2,
					n = 2 + (q >>> 8 & 255) + (R >>> 8 & 255) + (J >>> 8 & 255) + (W >>> 8 & 255) >>> 2,
					b = 2 + (q >>> 16 & 255) + (R >>> 16 & 255) + (J >>> 16 & 255) + (W >>> 16 & 255) >>> 2,
					Q = 2 + (q >>> 24 & 255) + (R >>> 24 & 255) + (J >>> 24 & 255) + (W >>> 24 & 255) >>> 2;
				U[Z] = Q << 24 | b << 16 | n << 8 | p
			}
		return {
			rect: s,
			Ww: t
		}
	};
	H.ajD = function (F, P, o) {
		var X = P.Z,
			Y = P.h,
			y = 2 * Math.floor(X / 3),
			z = 2 * Math.floor(Y / 3),
			s = new ev(P.x, P.y, y, z),
			t = o && o.length == y * z * 4 ? o : H.R(y * z * 4),
			d = new Uint32Array(F.buffer),
			U = new Uint32Array(t.buffer);
		for (var v = 0; v < z; v += 2)
			for (var A = 0; A < y; A += 2) {
				var Z = v * y + A,
					D = (v * 3 >>> 1) * X + (A * 3 >>> 1),
					q = d[D],
					R = d[D + 1],
					J = d[D + 2],
					W = d[D + X],
					p = d[D + 1 + X],
					n = d[D + 2 + X],
					b = d[D + X + X],
					Q = d[D + 1 + X + X],
					_ = d[D + 2 + X + X],
					L = q >>> 24 << 2,
					m = (q >>> 16 & 255) * L,
					I = (q >>> 8 & 255) * L,
					c = (q & 255) * L,
					u = R >>> 24 << 1,
					a = (R >>> 16 & 255) * u,
					N = (R >>> 8 & 255) * u,
					V = (R & 255) * u,
					M = J >>> 24 << 2,
					O = (J >>> 16 & 255) * M,
					K = (J >>> 8 & 255) * M,
					j = (J & 255) * M,
					$ = W >>> 24 << 1,
					x = (W >>> 16 & 255) * $,
					g = (W >>> 8 & 255) * $,
					T = (W & 255) * $,
					E = p >>> 24,
					a9 = (p >>> 16 & 255) * E,
					ez = (p >>> 8 & 255) * E,
					bN = (p & 255) * E,
					cg = n >>> 24 << 1,
					d8 = (n >>> 16 & 255) * cg,
					C = (n >>> 8 & 255) * cg,
					S = (n & 255) * cg,
					g7 = b >>> 24 << 2,
					g_ = (b >>> 16 & 255) * g7,
					fw = (b >>> 8 & 255) * g7,
					dT = (b & 255) * g7,
					g4 = Q >>> 24 << 1,
					bB = (Q >>> 16 & 255) * g4,
					d1 = (Q >>> 8 & 255) * g4,
					f_ = (Q & 255) * g4,
					g$ = _ >>> 24 << 2,
					eT = (_ >>> 16 & 255) * g$,
					dz = (_ >>> 8 & 255) * g$,
					i4 = (_ & 255) * g$,
					fy = L + u + $ + E,
					cN = M + u + cg + E,
					fP = g7 + g4 + $ + E,
					du = g$ + g4 + cg + E,
					ea = fy == 0 ? 0 : 1 / fy,
					cF = cN == 0 ? 0 : 1 / cN,
					gB = fP == 0 ? 0 : 1 / fP,
					bp = du == 0 ? 0 : 1 / du,
					hf = 0,
					bq = 0,
					eY = 0,
					f1 = 0;
				hf = ~~(.5 + (c + V + T + bN) * ea);
				bq = ~~(.5 + (I + N + g + ez) * ea);
				eY = ~~(.5 + (m + a + x + a9) * ea);
				f1 = ~~(.5 + fy * (1 / 9));
				U[Z] = f1 << 24 | eY << 16 | bq << 8 | hf;
				hf = ~~(.5 + (j + V + S + bN) * cF);
				bq = ~~(.5 + (K + N + C + ez) * cF);
				eY = ~~(.5 + (O + a + d8 + a9) * cF);
				f1 = ~~(.5 + cN * (1 / 9));
				U[Z + 1] = f1 << 24 | eY << 16 | bq << 8 | hf;
				hf = ~~(.5 + (dT + f_ + T + bN) * gB);
				bq = ~~(.5 + (fw + d1 + g + ez) * gB);
				eY = ~~(.5 + (g_ + bB + x + a9) * gB);
				f1 = ~~(.5 + fP * (1 / 9));
				U[Z + y] = f1 << 24 | eY << 16 | bq << 8 | hf;
				hf = ~~(.5 + (i4 + f_ + S + bN) * bp);
				bq = ~~(.5 + (dz + d1 + C + ez) * bp);
				eY = ~~(.5 + (eT + bB + d8 + a9) * bp);
				f1 = ~~(.5 + du * (1 / 9));
				U[Z + y + 1] = f1 << 24 | eY << 16 | bq << 8 | hf
			}
		return {
			rect: s,
			Ww: t
		}
	};
	H.aaX = function (F, P, o) {
		var X = P.Z,
			Y = P.h,
			y = 2 * Math.floor(X / 3),
			z = 2 * Math.floor(Y / 3),
			s = new ev(P.x, P.y, y, z),
			t = o && o.length == y * z * 4 ? o : H.R(y * z * 4),
			d = new Uint32Array(F.buffer),
			U = new Uint32Array(t.buffer);
		for (var v = 0; v < z; v += 2)
			for (var A = 0; A < y; A += 2) {
				var Z = v * y + A,
					D = (v * 3 >>> 1) * X + (A * 3 >>> 1),
					q = d[D],
					R = d[D + 1],
					J = d[D + 2],
					W = d[D + X],
					p = d[D + 1 + X],
					n = d[D + 2 + X],
					b = d[D + X + X],
					Q = d[D + 1 + X + X],
					_ = d[D + 2 + X + X],
					L = (q >>> 16 & 255) << 2,
					m = (q >>> 8 & 255) << 2,
					I = (q & 255) << 2,
					c = (R >>> 16 & 255) << 1,
					u = (R >>> 8 & 255) << 1,
					a = (R & 255) << 1,
					N = (J >>> 16 & 255) << 2,
					V = (J >>> 8 & 255) << 2,
					M = (J & 255) << 2,
					O = (W >>> 16 & 255) << 1,
					K = (W >>> 8 & 255) << 1,
					j = (W & 255) << 1,
					$ = p >>> 16 & 255,
					x = p >>> 8 & 255,
					g = p & 255,
					T = (n >>> 16 & 255) << 1,
					E = (n >>> 8 & 255) << 1,
					a9 = (n & 255) << 1,
					ez = (b >>> 16 & 255) << 2,
					bN = (b >>> 8 & 255) << 2,
					cg = (b & 255) << 2,
					d8 = (Q >>> 16 & 255) << 1,
					C = (Q >>> 8 & 255) << 1,
					S = (Q & 255) << 1,
					g7 = (_ >>> 16 & 255) << 2,
					g_ = (_ >>> 8 & 255) << 2,
					fw = (_ & 255) << 2,
					dT = 0,
					g4 = 0,
					bB = 0;
				dT = ~~(.5 + (I + a + j + g) * (1 / 9));
				g4 = ~~(.5 + (m + u + K + x) * (1 / 9));
				bB = ~~(.5 + (L + c + O + $) * (1 / 9));
				U[Z] = 255 << 24 | bB << 16 | g4 << 8 | dT;
				dT = ~~(.5 + (M + a + a9 + g) * (1 / 9));
				g4 = ~~(.5 + (V + u + E + x) * (1 / 9));
				bB = ~~(.5 + (N + c + T + $) * (1 / 9));
				U[Z + 1] = 255 << 24 | bB << 16 | g4 << 8 | dT;
				dT = ~~(.5 + (cg + S + j + g) * (1 / 9));
				g4 = ~~(.5 + (bN + C + K + x) * (1 / 9));
				bB = ~~(.5 + (ez + d8 + O + $) * (1 / 9));
				U[Z + y] = 255 << 24 | bB << 16 | g4 << 8 | dT;
				dT = ~~(.5 + (fw + S + a9 + g) * (1 / 9));
				g4 = ~~(.5 + (g_ + C + E + x) * (1 / 9));
				bB = ~~(.5 + (g7 + d8 + T + $) * (1 / 9));
				U[Z + y + 1] = 255 << 24 | bB << 16 | g4 << 8 | dT
			}
		return {
			rect: s,
			Ww: t
		}
	};
	H.Ms = function (F) {
		var P = 255,
			o = F.length;
		o -= o & 31;
		for (var w = 3; w < o; w += 32) P = P & F[w] & F[w + 4] & F[w + 8] & F[w + 12] & F[w + 16] & F[w + 20] & F[w + 24] & F[w + 28];
		return P != 255
	};
	H.NP = function (F, P, o, X) {
		var Y = H.Ar,
			y = H.ajD,
			s = 0;
		if (!H.Ms(F)) {
			Y = H.p0;
			y = H.aaX
		}
		var z = {
				Ww: F,
				rect: P
			},
			t = o;
		while (t < .499) {
			s++;
			t *= 2
		}
		for (var w = 0; w < s; w++) z = Y(z.Ww, z.rect, X);
		if (t < .5001) z = Y(z.Ww, z.rect, X);
		else z = y(z.Ww, z.rect, X);
		return z
	};
	H.adx = function (F, P, o, X) {
		var Y = H.wx,
			y = H.zj,
			z = {
				Ww: F,
				rect: P
			},
			s = 0,
			t = o;
		while (t < .499) {
			s++;
			t *= 2
		}
		for (var w = 0; w < s; w++) z = Y(z.Ww, z.rect, X);
		if (t < .5001) z = Y(z.Ww, z.rect, X);
		else z = y(z.Ww, z.rect, X);
		return z
	};
	H.wx = function (F, P, o) {
		var X = P.Z,
			Y = P.h,
			y = X >> 1,
			z = Y >> 1,
			s = new ev(P.x, P.y, y, z);
		if (F == null) return {
			rect: s
		};
		var t = o && o.length >= y * z ? o : H.R(y * z);
		for (var d = 0; d < z; d++) {
			var U = d * y;
			for (var v = 0; v < y; v++) {
				var A = (d << 1) * X + (v << 1);
				t[U + v] = 2 + F[A] + F[A + 1] + F[A + X] + F[A + X + 1] >>> 2
			}
		}
		return {
			rect: s,
			Ww: t
		}
	};
	H.zj = function (F, P, o) {
		var X = P.Z,
			Y = P.h,
			y = 2 * Math.floor(X / 3),
			z = 2 * Math.floor(Y / 3),
			s = new ev(P.x, P.y, y, z);
		if (F == null) return {
			rect: s
		};
		var t = o && o.length >= y * z ? o : H.R(y * z);
		for (var d = 0; d < z; d += 2)
			for (var U = 0; U < y; U += 2) {
				var v = d * y + U,
					A = (d * 3 >>> 1) * X + (U * 3 >>> 1),
					Z = F[A] << 2,
					D = F[A + 1] << 1,
					q = F[A + 2] << 2,
					R = F[A + X] << 1,
					J = F[A + 1 + X],
					W = F[A + 2 + X] << 1,
					p = F[A + X + X] << 2,
					n = F[A + 1 + X + X] << 1,
					b = F[A + 2 + X + X] << 2;
				t[v] = ~~(.5 + (Z + D + R + J) * (1 / 9));
				t[v + 1] = ~~(.5 + (q + D + W + J) * (1 / 9));
				t[v + y] = ~~(.5 + (p + n + R + J) * (1 / 9));
				t[v + y + 1] = ~~(.5 + (b + n + W + J) * (1 / 9))
			}
		return {
			rect: s,
			Ww: t
		}
	};
	H.Lj = function (F, P, o, X, Y) {
		var y = P.$X(X);
		if (Y) y = y.$X(Y);
		var z = Math.max(0, y.x - P.x),
			s = Math.max(0, y.x - X.x),
			t = Math.max(0, y.y - P.y),
			d = Math.max(0, y.y - X.y),
			U = y.Z,
			v = y.h;
		for (var w = 0; w < v; w++) {
			var A = (t + w) * P.Z + z,
				Z = (d + w) * X.Z + s;
			for (var D = 0; D < U; D++) {
				o[Z + D] = F[A + D]
			}
		}
	};
	H.F_ = function (F, P, o, X) {
		if (P.Qn(X)) {
			H.Oy(F, o, 3);
			return
		}
		var Y = P.$X(X),
			y = Math.max(0, Y.x - P.x),
			z = Math.max(0, Y.x - X.x),
			s = Math.max(0, Y.y - P.y),
			t = Math.max(0, Y.y - X.y),
			d = Y.Z,
			U = Y.h;
		for (var w = 0; w < U; w++) {
			var v = (s + w) * P.Z + y,
				A = (t + w) * X.Z + z;
			for (var Z = 0; Z < d; Z++) o[(A + Z << 2) + 3] = F[v + Z]
		}
	};
	H._h = function (F, P, o, X) {
		var Y = P.$X(X),
			y = Math.max(0, Y.x - P.x),
			z = Math.max(0, Y.x - X.x),
			s = Math.max(0, Y.y - P.y),
			t = Math.max(0, Y.y - X.y),
			d = Y.Z,
			U = Y.h;
		for (var w = 0; w < U; w++) {
			var v = (s + w) * P.Z + y,
				A = (t + w) * X.Z + z;
			for (var Z = 0; Z < d; Z++) o[A + Z] = F[(v + Z << 2) + 3]
		}
	};
	H.abc = function (F, P, o, X) {
		var Y = P.$X(X),
			y = Math.max(0, Y.x - P.x),
			z = Math.max(0, Y.x - X.x),
			s = Math.max(0, Y.y - P.y),
			t = Math.max(0, Y.y - X.y),
			d = Y.Z,
			U = Y.h;
		for (var w = 0; w < U; w++) {
			var v = (s + w) * P.Z + y,
				A = (t + w) * X.Z + z;
			for (var Z = 0; Z < d; Z++) o[A++] = F[v++]
		}
	};
	H.BP = function (F, P, o, X, Y) {
		if (P.Qn(X) && (Y == null || Y.Qn(X))) {
			H.Hk(F, o);
			return
		}
		F = new Uint32Array(F.buffer), o = new Uint32Array(o.buffer);
		var y = P.$X(X);
		if (Y) y = y.$X(Y);
		var z = Math.max(0, y.x - P.x),
			s = Math.max(0, y.x - X.x),
			t = Math.max(0, y.y - P.y),
			d = Math.max(0, y.y - X.y),
			U = y.Z,
			v = y.h,
			A = U & 3,
			Z = A == 0 ? U : U - A;
		for (var w = 0; w < v; w++) {
			var D = (t + w) * P.Z + z,
				q = (d + w) * X.Z + s,
				R = 0;
			while (R < Z) {
				o[q + R] = F[D + R];
				o[q + R + 1] = F[D + R + 1];
				o[q + R + 2] = F[D + R + 2];
				o[q + R + 3] = F[D + R + 3];
				R += 4
			}
			if (A == 1) {
				o[q + R] = F[D + R]
			} else if (A == 2) {
				o[q + R] = F[D + R];
				o[q + R + 1] = F[D + R + 1]
			} else if (A == 3) {
				o[q + R] = F[D + R];
				o[q + R + 1] = F[D + R + 1];
				o[q + R + 2] = F[D + R + 2]
			}
		}
	};
	H.X6 = function (F, P, o, X) {
		var Y = P.$X(X),
			y = Math.max(0, Y.x - P.x),
			z = Math.max(0, Y.x - X.x),
			s = Math.max(0, Y.y - P.y),
			t = Math.max(0, Y.y - X.y),
			d = Y.Z,
			U = Y.h,
			v = F.m,
			A = F.U,
			Z = F.S,
			D = F.i,
			q = o.m,
			R = o.U,
			J = o.S,
			W = o.i;
		for (var w = 0; w < U; w++) {
			var p = (s + w) * P.Z + y,
				n = (t + w) * X.Z + z;
			for (var b = 0; b < d; b++) {
				q[n + b] = v[p + b];
				R[n + b] = A[p + b];
				J[n + b] = Z[p + b];
				W[n + b] = D[p + b]
			}
		}
	};
	H.l7 = function (F) {
		var P = F.length;
		for (var w = 0; w < P; w += 4) {
			var o = F[w + 3];
			F[w] = ~~(F[w] * o * (1 / 255) + .5);
			F[w + 1] = ~~(F[w + 1] * o * (1 / 255) + .5);
			F[w + 2] = ~~(F[w + 2] * o * (1 / 255) + .5)
		}
	};
	H.gl = function (F) {
		var P = F.length;
		for (var w = 0; w < P; w += 4) {
			var o = F[w + 3];
			if (o == 0 || o == 255) continue;
			var X = 255 / o;
			F[w] = ~~(F[w] * X + .5);
			F[w + 1] = ~~(F[w + 1] * X + .5);
			F[w + 2] = ~~(F[w + 2] * X + .5)
		}
	};
	H.af8 = function () {
		var F = new Uint8Array(256 * 256);
		for (var w = 0; w < 256; w++)
			for (var P = 0; P < 256; P++) F[P * 256 + w] = Math.round(255 * w / P);
		return F
	}();
	H.wq = function (F, P) {
		for (var w = 0; w < F.length; w++)
			if (F[w] != P) return !1;
		return !0
	};
	H.fV = function (F) {
		return F + 1 + (F >>> 8) >>> 8
	};
	H.round = function (F, P) {
		if (P == null) P = 128;
		var o = F.length;
		for (var w = 0; w < o; w++) F[w] = F[w] < P ? 0 : 255
	};
	H.WI = function (F, P) {
		var o = F.length;
		for (var w = 0; w < o; w++) F[w] = Math.round(F[w] * P)
	};
	H.a4x = function (F, P) {
		var o = F.length;
		for (var w = 0; w < o; w += 4) F[w + 3] = Math.round(F[w + 3] * P)
	};
	H.vB = function (F, P) {
		var o = new Uint32Array(F.buffer),
			X = new Uint32Array(P.buffer),
			Y = o.length;
		for (var w = 0; w < Y; w++) {
			var y = o[w],
				z = X[w];
			X[w] = H.fV((y >>> 24) * (z >>> 24)) << 24 | H.fV((y >>> 16 & 255) * (z >>> 16 & 255)) << 16 | H.fV((y >>> 8 & 255) * (z >>> 8 & 255)) << 8 | H.fV((y & 255) * (z & 255))
		}
	};
	H.v0 = function (F, P) {
		var o = F.length;
		for (var w = 0; w < o; w++) P[(w << 2) + 3] = H.fV(P[(w << 2) + 3] * F[w])
	};
	H.a3E = function (F, P, o, X) {
		var Y = Math.max(0, X.x - P.x),
			y = Math.max(0, P.x - X.x),
			z = Math.max(0, X.y - P.y),
			s = Math.max(0, P.y - X.y),
			t = Math.min(P.x + P.Z, X.x + X.Z) - Math.max(P.x, X.x),
			d = Math.min(P.y + P.h, X.y + X.h) - Math.max(P.y, X.y);
		for (var w = 0; w < d; w++) {
			var U = (z + w) * P.Z + Y,
				v = (s + w) * X.Z + y;
			for (var A = 0; A < t; A++) {
				o[v] = H.fV(o[v] * F[U]);
				U++;
				v++
			}
		}
	};
	H.pa = function (F, P, o, X) {
		var Y = Math.max(0, X.x - P.x),
			y = Math.max(0, P.x - X.x),
			z = Math.max(0, X.y - P.y),
			s = Math.max(0, P.y - X.y),
			t = Math.min(P.x + P.Z, X.x + X.Z) - Math.max(P.x, X.x),
			d = Math.min(P.y + P.h, X.y + X.h) - Math.max(P.y, X.y);
		for (var w = 0; w < d; w++) {
			var U = (z + w) * P.Z + Y,
				v = ((s + w) * X.Z + y << 2) + 3;
			for (var A = 0; A < t; A++) {
				o[v] = H.fV(o[v] * F[U]);
				U++;
				v += 4
			}
		}
	};
	H.Wr = function (F, P, o, X) {
		var Y = Math.max(0, X.x - P.x),
			y = Math.max(0, P.x - X.x),
			z = Math.max(0, X.y - P.y),
			s = Math.max(0, P.y - X.y),
			t = Math.min(P.x + P.Z, X.x + X.Z) - Math.max(P.x, X.x),
			d = Math.min(P.y + P.h, X.y + X.h) - Math.max(P.y, X.y);
		for (var w = 0; w < d; w++) {
			var U = ((z + w) * P.Z + Y << 2) + 3,
				v = ((s + w) * X.Z + y << 2) + 3;
			for (var A = 0; A < t; A++) {
				o[v] = H.fV(o[v] * F[U]);
				U += 4;
				v += 4
			}
		}
	};
	H.abu = function (F, P, o, X) {
		var Y = 1 / 255,
			y = Math.max(0, X.x - P.x),
			z = Math.max(0, P.x - X.x),
			s = Math.max(0, X.y - P.y),
			t = Math.max(0, P.y - X.y),
			d = Math.min(P.x + P.Z, X.x + X.Z) - Math.max(P.x, X.x),
			U = Math.min(P.y + P.h, X.y + X.h) - Math.max(P.y, X.y);
		for (var w = 0; w < U; w++) {
			var v = (s + w) * P.Z + y,
				A = (t + w) * X.Z + z;
			for (var Z = 0; Z < d; Z++) {
				o[A] = Y * o[A] * (255 - F[v]);
				v++;
				A++
			}
		}
	};
	H.a1r = function (F, P) {
		var o = [];
		for (var w = 0; w < 256; w++) o.push(0);
		var X = F.length,
			Y = 1 / 255;
		for (var w = 0; w < X; w++) o[F[w]] += P[w] * Y;
		return o
	};
	H.NC = function (F) {
		var P = new Float64Array(256),
			o = new Float64Array(256),
			X = new Float64Array(256),
			Y = new Float64Array(256),
			y = F.length;
		for (var w = 0; w < y; w += 4) {
			var z = F[w + 3] * (1 / 255);
			o[F[w + 0]] += z;
			X[F[w + 1]] += z;
			Y[F[w + 2]] += z
		}
		for (var w = 0; w < 256; w++) P[w] = o[w] + X[w] + Y[w];
		return [P, o, X, Y, y >>> 2]
	};
	H.gJ = function (F, P) {
		var o = new Uint32Array(F.buffer),
			X = o.length;
		for (var w = 0; w < X; w++) {
			var Y = o[w],
				y = Y & 255,
				z = Y >> 8 & 255,
				s = Y >> 16 & 255,
				t = Y >> 24 & 255;
			o[w] = P[y] | P[z] << 8 | P[s] << 16 | P[t] << 24
		}
	};
	H.amA = function (F, P, o, X, Y, y, z) {
		var s = new Uint32Array(F.buffer),
			t = new Uint32Array(P.buffer),
			d = s.length,
			U = 0;
		while (256 << U < o.length) U++;
		if (!z && !y) {
			for (var w = 0; w != d; w++) {
				var v = s[w],
					A = (v & 255) << U,
					Z = (v >>> 8 & 255) << U,
					D = (v >>> 16 & 255) << U,
					q = o[A],
					R = X[Z],
					J = Y[D];
				t[w] = q | R << 8 | J << 16 | v & 4278190080
			}
			return
		}
		for (var w = 0; w < d; w++) {
			var v = s[w],
				A = (v & 255) << U,
				Z = (v >>> 8 & 255) << U,
				D = (v >>> 16 & 255) << U;
			if (y) A = Z = D = Math.round(A * .3 + Z * .59 + D * .11);
			var q = o[A],
				R = X[Z],
				J = Y[D];
			if (z) {
				var W = H.ou(A, Z, D),
					p = H.ou(q, R, J);
				if (W > p) {
					var n = (W - p) / (255 - p);
					q += n * (255 - q);
					R += n * (255 - R);
					J += n * (255 - J)
				} else if (p == 0) q = R = J = 0;
				else {
					var n = W / p;
					q = n * q;
					R = n * R;
					J = n * J
				}
			}
			t[w] = q | R << 8 | J << 16 | v & 4278190080
		}
	};
	H.a3Y = function (F) {
		var P = new Uint32Array(256),
			o = 0;
		for (var w = 0; w < F.length; w++) P[F[w]]++;
		for (var w = 0; w < 256; w++)
			if (P[w] > P[o]) o = w;
		return o
	};
	H.xw = function (F, P) {
		var o = P.Z,
			X = P.h,
			top = 0,
			Y = 0,
			y = 0,
			z = 0,
			s = 0;
		s = 0;
		for (var t = 0; t < X; t++) {
			var d = t * o;
			for (var w = 0; w < o; w++) s |= F[d + w];
			if (s != 0) break;
			top++
		}
		if (top == X) return new ev(0, 0, 0, 0);
		s = 0;
		for (var t = X - 1; t >= 0; t--) {
			var d = t * o;
			for (var w = 0; w < o; w++) s |= F[d + w];
			if (s != 0) break;
			y++
		}
		var U = X - y;
		s = 0;
		for (var w = 0; w < o; w++) {
			for (var t = top; t < U; t++) s |= F[t * o + w];
			if (s != 0) break;
			Y++
		}
		s = 0;
		for (var w = o - 1; w >= 0; w--) {
			for (var t = top; t < U; t++) s |= F[t * o + w];
			if (s != 0) break;
			z++
		}
		var v = new ev(P.x + Y, P.y + top, o - Y - z, X - top - y);
		return v
	};
	H.cR = function (F, P, o, X) {
		if (X == null) X = [!0, !0, !0, !0];
		if (o == null) o = 0;
		var Y = new Uint32Array(F.buffer),
			y = P.Z,
			z = P.h,
			top = 0,
			s = 0,
			t = 0,
			d = 0,
			U = !1,
			v = [Y[0], Y[Y.length - 1], 0][o];
		U = !1;
		if (X[0])
			for (var A = 0; A < z; A++) {
				var Z = A * y;
				for (var w = 0; w < y; w++)
					if (Y[Z + w] != v) U = !0;
				if (U) break;
				top++
			}
		U = !1;
		if (X[2])
			for (var A = z - 1; A >= 0; A--) {
				var Z = A * y;
				for (var w = 0; w < y; w++)
					if (Y[Z + w] != v) U = !0;
				if (U) break;
				t++
			}
		U = !1;
		if (X[1])
			for (var w = 0; w < y; w++) {
				for (var A = 0; A < z; A++)
					if (Y[A * y + w] != v) U = !0;
				if (U) break;
				s++
			}
		U = !1;
		if (X[3])
			for (var w = y - 1; w >= 0; w--) {
				for (var A = 0; A < z; A++)
					if (Y[A * y + w] != v) U = !0;
				if (U) break;
				d++
			}
		var D = new ev(P.x + s, P.y + top, y - s - d, z - top - t);
		return D.qr() ? new ev(0, 0, 0, 0) : D
	};
	H.ahm = function (F) {
		var P = 255,
			o = F.length;
		for (var w = 3; w < o; w += 4) P = P & F[w];
		return P
	};
	H.HZ = function (F) {
		var P = H.xw(F.channel, F.rect);
		if (P.Qn(F.rect)) return;
		var o = H.R(P.M());
		H.Lj(F.channel, F.rect, o, P);
		F.channel = o;
		F.rect = P
	};
	H.mn = function (F) {
		var P = H.R(F.buffer.length >> 2);
		H.E4(F.buffer, P, 3);
		var o = H.xw(P, F.rect);
		if (o.Qn(F.rect)) return;
		var X = new H.R(o.M() * 4);
		H.BP(F.buffer, F.rect, X, o);
		F.buffer = X;
		F.rect = o
	};
	H.extend = function (F, P, o) {
		if (F.rect.Qh(P)) return;
		var X = F.rect.s7(P),
			Y = H.R(X.M());
		if (o != null) H.set(Y, o);
		H.Lj(F.channel, F.rect, Y, X);
		F.rect = X;
		F.channel = Y
	};
	H.aao = function (F, P) {
		if (P.qr() || F.rect.Qh(P)) return;
		var o = F.rect.s7(P),
			X = H.R(o.M() * 4);
		H.BP(F.buffer, F.rect, X, o);
		F.rect = o;
		F.buffer = X
	};
	H.a2_ = function (F, P, o) {
		var X = P.clone(),
			Y = o.M(),
			y = F.s7(X);
		while (y.M() / F.M() < 2 && y.M() < Y) {
			X.PK(16, 16);
			y = y.s7(X).$X(o)
		}
		if (Y / y.M() < 2) y = o.clone();
		return y
	};
	H.hc = function (F) {
		var P = F.length;
		for (var w = 0; w < P; w += 4) {
			var o = F[w + 3];
			if (F[w] > o) F[w] = o;
			if (F[w + 1] > o) F[w + 1] = o;
			if (F[w + 2] > o) F[w + 2] = o
		}
	};
	H.cp = function (F, P, o) {
		if (!o.oz(F)) return !1;
		var X = Math.floor(F.x) - o.x,
			Y = Math.floor(F.y) - o.y,
			w = Y * o.Z + X;
		return P[w] > 128
	};
	H.aiC = function (F, P, o) {
		if (!o.oz(F)) return !1;
		var X = Math.floor(F.x) - o.x,
			Y = Math.floor(F.y) - o.y,
			w = Y * o.Z + X;
		return P[4 * w + 3] > 128
	};
	H.AA = function (F) {
		if (H.UN.length < F) {
			H.UN = H.R(F);
			H.set(H.UN, 255)
		}
		return H.UN
	};
	H.UN = H.R(0);
	H.Zm = function (F) {
		if (H.Q_.length < F) H.Q_ = H.R(F);
		return H.Q_
	};
	H.Q_ = H.R(0);
	H._B = function (F) {
		this.m = H.R(F);
		this.U = H.R(F);
		this.S = H.R(F);
		this.i = H.R(F)
	};
	H._B.prototype.clone = function () {
		var F = this.m.length,
			P = new H._B(1);
		P.m = H.clone(this.m);
		P.U = H.clone(this.U);
		P.S = H.clone(this.S);
		P.i = H.clone(this.i);
		return P
	};
	H.WO = {
		a6g: function (F, P) {
			var w = F.length;
			F.push(P);
			var o = w >>> 1;
			while (o != 0 && F[w][0] < F[o][0]) {
				var X = F[w];
				F[w] = F[o];
				F[o] = X;
				w = o;
				o = w >>> 1
			}
		},
		aaV: function (F) {
			if (F.length == 2) return F.pop();
			var top = F[1],
				w = 1;
			F[1] = F.pop();
			var P = F.length;
			while (!0) {
				var o = w << 1,
					X = o + 1,
					Y = w;
				if (o < P && F[o][0] < F[Y][0]) Y = o;
				if (X < P && F[X][0] < F[Y][0]) Y = X;
				if (Y == w) break;
				var y = F[w];
				F[w] = F[Y];
				F[Y] = y;
				w = Y
			}
			return top
		},
		a4C: function (F) {
			for (var w = 1; w < F.length; w++) {
				var P = w,
					o = 1e9;
				while (P != 0) {
					var X = F[P][0];
					if (X > o) {
						console.log(w);
						throw "e"
					}
					o = X;
					P = P >>> 1
				}
			}
		}
	};
	H.N = {};
	H.N.Mw = new Float64Array(256);
	H.N.Rh = new Uint8Array(256 * 256);
	H.N.f3 = new Uint8Array(256 * 256);
	(function () {
		for (var w = 0; w < 256; w++) H.N.Mw[w] = 255 / w;
		for (var w = 0; w < 256; w++)
			for (var F = 0; F < 256; F++) H.N.Rh[w * 256 + F] = w == 0 ? 0 : Math.round(F * 255 / w);
		for (var w = 0; w < 256; w++)
			for (var F = 0; F < 256; F++) H.N.f3[w * 256 + F] = Math.round(w * (255 - F) / 255)
	}());
	H.N.DO = function (F, P, o, X, Y, y, z, s) {
		if (s == null) s = cr.jx();
		if ("idiv,lbrn,div ,lddg,vLit,lLit,hMix,diff".split(",").indexOf(F) == -1) {
			z = z * s.fill;
			s.fill = 1;
			s.style = !1
		}
		var t = "norm,dark,mul ,idiv,lbrn,lite,scrn,div ,lddg,over,sLit,hLit,vLit,lLit,pLit,hMix,diff,smud,fsub,fdiv".split(","),
			d = "dkCl,lgCl,hue ,sat ,colr,lum ".split(","),
			U = H.N[F + "F"];
		if (s.Lc == null && F == "norm") H.N.ajM(P, o, X, Y, y, z, U, s.YU ? 1 : 0);
		else if (F == "diss") H.N.ahI(P, o, X, Y, y, z, U, s.YU ? 1 : 0);
		else if (t.indexOf(F) != -1) H.N.afR(P, o, X, Y, y, z, U, s);
		else if (d.indexOf(F) != -1) H.N.a3k(P, o, X, Y, y, z, U, s)
	};
	H.N.a03 = function (F, P, o) {
		var X = F * o + 1 - o;
		return X < .001 ? 0 : 1 - Math.min(1, (1 - P) / X)
	};
	H.N.adS = function (F, P, o) {
		return F * o == 1 ? 1 : Math.min(1, P / (1 - F * o))
	};
	H.N.fY = function (F) {
		return F <= .25 ? ((16 * F - 12) * F + 4) * F : Math.sqrt(F)
	};
	H.N.normF = function (F, P, o) {
		return F
	};
	H.N.darkF = function (F, P, o) {
		return Math.min(F, P)
	};
	H.N["mul F"] = function (F, P, o) {
		return F * P
	};
	H.N.idivF = function (F, P, o) {
		var X = F * o + 1 - o;
		return P == 1 ? 1 : 1 - P >= X ? 0 : 1 - (1 - P) / X
	};
	H.N.lbrnF = function (F, P, o) {
		return Math.max(0, F * o + P - o)
	};
	H.N.dkClF = function (F, P, o) {
		var X = H.ec(F) < H.ec(P) ? F : P;
		o.U = X.U;
		o.S = X.S;
		o.i = X.i;
		return o
	};
	H.N.liteF = function (F, P, o) {
		return Math.max(F, P)
	};
	H.N.scrnF = function (F, P, o) {
		return P + F - P * F
	};
	H.N["div F"] = function (F, P, o) {
		F *= o;
		return P == 0 ? 0 : P >= 1 - F ? 1 : P / (1 - F)
	};
	H.N.lddgF = function (F, P, o) {
		F *= o;
		return Math.min(1, F + P)
	};
	H.N.lgClF = function (F, P, o) {
		var X = H.ec(F) > H.ec(P) ? F : P;
		o.U = X.U;
		o.S = X.S;
		o.i = X.i;
		return o
	};
	H.N.overF = function (F, P, o) {
		return H.N.hLitF(P, F, o)
	};
	H.N.sLitF = function (F, P, o) {
		return F <= .5 ? P - (1 - 2 * F) * P * (1 - P) : P + (2 * F - 1) * (H.N.fY(P) - P)
	};
	H.N.hLitF = function (F, P, o) {
		return F <= .5 ? H.N["mul F"](2 * F, P, o) : H.N.scrnF(2 * F - 1, P, o)
	};
	H.N.vLitF = function (F, P, o) {
		return F <= .5 ? H.N.a03(2 * F, P, o) : H.N.adS(2 * F - 1, P, o)
	};
	H.N.lLitF = function (F, P, o) {
		return F <= .5 ? H.N.lbrnF(2 * F, P, o) : H.N.lddgF(2 * F - 1, P, o)
	};
	H.N.pLitF = function (F, P, o) {
		return F <= .5 ? H.N.darkF(2 * F, P, o) : H.N.liteF(2 * F - 1, P, o)
	};
	H.N.hMixF = function (F, P, o) {
		if (o > .99) return F + P < 1 ? 0 : 1;
		return Math.min(1, Math.max(0, (P + F * o - o) / (1 - o + 1e-6)))
	};
	H.N.diffF = function (F, P, o) {
		F *= o;
		return Math.abs(F - P)
	};
	H.N.smudF = function (F, P, o) {
		return F + P - 2 * F * P
	};
	H.N.fsubF = function (F, P, o) {
		return Math.max(P - F, 0)
	};
	H.N.fdivF = function (F, P, o) {
		return Math.min(P / F, 1)
	};
	H.N["hue F"] = function (F, P, o) {
		H.i8(F, H.TO(P), o);
		H.Am(o, H.ec(P), o)
	};
	H.N["sat F"] = function (F, P, o) {
		H.i8(P, H.TO(F), o);
		H.Am(o, H.ec(P), o)
	};
	H.N.colrF = function (F, P, o) {
		H.Am(F, H.ec(P), o)
	};
	H.N["lum F"] = function (F, P, o) {
		H.Am(P, H.ec(F), o)
	};
	H.N.ajM = function (F, P, o, X, Y, y, z, s) {
		var t = P.$X(X).$X(Y),
			d = Math.max(0, t.x - P.x),
			U = Math.max(0, t.x - X.x),
			v = Math.max(0, t.y - P.y),
			A = Math.max(0, t.y - X.y),
			Z = t.Z,
			D = t.h,
			q = P.Z,
			R = X.Z,
			J = H.N.Rh,
			W = H.N.f3,
			p = new Uint32Array(F.buffer),
			n = new Uint32Array(o.buffer);
		for (var w = 0; w < D; w++) {
			var b = (v + w) * q + d,
				Q = (A + w) * R + U;
			for (var _ = 0; _ < Z; _++) {
				var L = p[b + _],
					c = 255;
				if (L >>> 24 == 0) continue;
				if (L >>> 24 == 255 && y == 1 && s == 0) {
					n[Q + _] = p[b + _];
					continue
				}
				var m = n[Q + _],
					I = 255 * y & 255;
				if (s == 0) {
					I = (L >>> 24) * y & 255;
					c = m >>> 24
				}
				var u = W[c << 8 | I],
					a = I + u,
					N = L & 255,
					V = L >>> 8 & 255,
					M = L >>> 16 & 255,
					O = m & 255,
					K = m >>> 8 & 255,
					j = m >>> 16 & 255;
				n[Q + _] = s * (m >>> 24) + (1 - s) * a << 24 | J[a << 8 | H.fV(M * I + j * u)] << 16 | J[a << 8 | H.fV(V * I + K * u)] << 8 | J[a << 8 | H.fV(N * I + O * u)]
			}
		}
	};
	H.N.a1d = function (F, P, o, X, Y, y) {
		var z = P.$X(X).$X(Y),
			s = Math.max(0, z.x - P.x),
			t = Math.max(0, z.x - X.x),
			d = Math.max(0, z.y - P.y),
			U = Math.max(0, z.y - X.y),
			v = z.Z,
			A = z.h,
			Z = P.Z,
			D = X.Z,
			q = H.N.Rh,
			R = H.N.f3,
			J = new Uint32Array(F.buffer),
			W = new Uint32Array(o.buffer),
			p = Math.floor(Math.random() * 16777215),
			n = 0;
		for (var w = 0; w < A; w++) {
			var b = (d + w) * Z + s,
				Q = (U + w) * D + t;
			for (var _ = 0; _ < v; _++) {
				var L = J[b + _];
				if (L >>> 24 == 0) continue;
				if (L >> 24 == 255 && y == 1) {
					W[Q + _] = L;
					continue
				}
				var m = W[Q + _],
					I = (L >>> 24) * y * (1 / 255),
					c = (m >>> 24) * (1 / 255),
					u = c * (1 - I),
					a = I + u,
					N = L & 255,
					V = L >>> 8 & 255,
					M = L >>> 16 & 255,
					O = m & 255,
					K = m >>> 8 & 255,
					j = m >>> 16 & 255;
				n >>>= 8;
				if ((_ & 3) == 0) n = H.N.eT(Q + _ + p);
				var $ = a == 0 ? 0 : 1 / a,
					x = Math.floor(a * (256 * 255)) + (n & 255) >>> 8,
					g = Math.floor((M * I + j * u) * $ + .5),
					T = Math.floor((V * I + K * u) * $ + .5),
					E = Math.floor((N * I + O * u) * $ + .5);
				W[Q + _] = x << 24 | g << 16 | T << 8 | E
			}
		}
	};
	H.N.XM = function (F, P, o, X, Y, y, z, s) {
		var t = H.ou(F, P, o),
			d = H.ou(X, Y, y),
			U = Math.min,
			v = H.N.a1v,
			A = v(t, s, 0);
		A = U(A, v(F, s, 8));
		A = U(A, v(P, s, 16));
		A = U(A, v(o, s, 24));
		var Z = v(d, s, 4);
		Z = U(Z, v(X, s, 12));
		Z = U(Z, v(Y, s, 20));
		Z = U(Z, v(y, s, 28));
		Z = Math.max(Z, 1 - z);
		var D = Math.min(A, Z);
		return D < 0 ? 0 : D > 1 ? 1 : D
	};
	H.N.a1v = function (F, P, w) {
		return Math.min((F - P[w]) * P[w + 1], (F - P[w + 3]) * P[w + 2])
	};
	H.N.afR = function (F, P, o, X, Y, y, z, s) {
		var t = 1 / 255,
			d = t * y,
			U = s.YU ? 1 : 0,
			v = s.fill,
			A = s.style,
			Z = P.$X(X).$X(Y),
			D = Math.max(0, Z.x - P.x),
			q = Math.max(0, Z.x - X.x),
			R = Math.max(0, Z.y - P.y),
			J = Math.max(0, Z.y - X.y),
			W = Z.Z,
			p = Z.h,
			n = P.Z,
			b = X.Z,
			Q = new Uint32Array(F.buffer),
			_ = new Uint32Array(o.buffer);
		for (var w = 0; w < p; w++) {
			var L = (R + w) * n + D,
				m = (J + w) * b + q;
			for (var I = 0; I < W; I++, L++, m++) {
				var c = Q[L],
					$ = 1;
				if (c >>> 24 == 0) continue;
				var u = _[m],
					a = (c & 255) * t,
					N = (c >>> 8 & 255) * t,
					V = (c >>> 16 & 255) * t,
					M = (u & 255) * t,
					O = (u >>> 8 & 255) * t,
					K = (u >>> 16 & 255) * t,
					j = y;
				if (U == 0) {
					j = (c >>> 24) * d;
					$ = (u >>> 24) * t
				}
				if (s.Lc) j *= H.N.XM(a, N, V, M, O, K, $, s.Lc);
				var x = $ * (1 - j),
					g = j + x,
					T = g == 0 ? 0 : 255 / g,
					E = A ? 1 : j,
					a9 = ((1 - $) * j * a + (1 - E) * $ * M + E * $ * z(a, M, (1 + j - E) * v)) * T,
					ez = ((1 - $) * j * N + (1 - E) * $ * O + E * $ * z(N, O, (1 + j - E) * v)) * T,
					bN = ((1 - $) * j * V + (1 - E) * $ * K + E * $ * z(V, K, (1 + j - E) * v)) * T;
				g = j * v + $ * (1 - j * v);
				var cg = ~~(g * 255 + .5);
				_[m] = U * (u >>> 24) + (1 - U) * cg << 24 | bN << 16 | ez << 8 | a9
			}
		}
	};
	H.N.a3k = function (F, P, o, X, Y, y, z, s) {
		var t = 1 / 255,
			d = t * y,
			U = s.YU ? 1 : 0,
			v = P.$X(X).$X(Y),
			A = Math.max(0, v.x - P.x),
			Z = Math.max(0, v.x - X.x),
			D = Math.max(0, v.y - P.y),
			q = Math.max(0, v.y - X.y),
			R = v.Z,
			J = v.h,
			W = new Uint32Array(F.buffer),
			p = new Uint32Array(o.buffer),
			n = {
				U: 0,
				S: 0,
				i: 0
			},
			b = {
				U: 0,
				S: 0,
				i: 0
			},
			Q = {
				U: 0,
				S: 0,
				i: 0
			};
		for (var w = 0; w < J; w++) {
			var _ = (D + w) * P.Z + A,
				L = (q + w) * X.Z + Z;
			for (var m = 0; m < R; m++, _++, L++) {
				var I = W[_],
					c = p[L],
					u = (I & 255) * t,
					a = (I >>> 8 & 255) * t,
					N = (I >>> 16 & 255) * t,
					V = (c & 255) * t,
					M = (c >>> 8 & 255) * t,
					O = (c >>> 16 & 255) * t,
					K = y,
					j = 1;
				if (U == 0) {
					K = (I >>> 24) * d;
					j = (c >>> 24) * t
				}
				if (s.Lc) K *= H.N.XM(u, a, N, V, M, O, j, s.Lc);
				var $ = j * (1 - K),
					x = K + $,
					g = 255 / x;
				n.U = u;
				n.S = a;
				n.i = N;
				b.U = V;
				b.S = M;
				b.i = O;
				z(n, b, Q);
				var T = (((1 - j) * u + j * Q.U) * K + V * $) * g,
					E = (((1 - j) * a + j * Q.S) * K + M * $) * g,
					a9 = (((1 - j) * N + j * Q.i) * K + O * $) * g,
					ez = U * (c >>> 24) + (1 - U) * Math.round(x * 255);
				p[L] = ez << 24 | a9 << 16 | E << 8 | T
			}
		}
	};
	H.N.kY = function (F) {
		F = F ^ 61 ^ F >>> 16;
		F = F + (F << 3);
		F = F ^ F >>> 4;
		F = F * 668265261;
		F = F ^ F >> 15;
		return (F & 16777215) * (1 / 16777215)
	};
	H.N.eT = function (F) {
		F = F ^ 61 ^ F >>> 16;
		F = F + (F << 3);
		F = F ^ F >>> 4;
		F = F * 668265261;
		F = F ^ F >>> 15;
		return F
	};
	H.N.Df = function (F) {
		this.Og = F
	};
	H.N.Df.prototype.get = function () {
		var F = this.Og = H.N.eT(this.Og);
		return (F & 16777215) * (1 / 16777215)
	};
	H.N.ahI = function (F, P, o, X, Y, y, z, s) {
		var t = 1 / 255,
			d = t * y,
			U = Math.round(y * (256 * 256 * 256 / 255)),
			v = P.$X(X).$X(Y),
			A = Math.max(0, v.x - P.x),
			Z = Math.max(0, v.x - X.x),
			D = Math.max(0, v.y - P.y),
			q = Math.max(0, v.y - X.y),
			R = v.Z,
			J = v.h,
			W = new Uint32Array(F.buffer),
			p = new Uint32Array(o.buffer);
		for (var w = 0; w < J; w++) {
			var n = (D + w) * P.Z + A,
				b = (q + w) * X.Z + Z;
			for (var Q = 0; Q < R; Q++, n++, b++) {
				var _ = W[n],
					L = p[b],
					m = s * 255 + (1 - s) * (_ >>> 24);
				if ((H.N.eT(n) & 16777215) >= m * U) continue;
				p[b] = _ & 16777215 | s * (L >>> 24) + (1 - s) * 255 << 24
			}
		}
	};
	H.N.aby = function (F, P, o) {
		for (var w = 0; w < F.length; w += 4) {
			var X = o[w >>> 2];
			if (X == 0) continue;
			var Y = X * (1 / 255),
				y = 1 / Y,
				z = P[w],
				s = P[w + 1],
				t = P[w + 2],
				d = F[w],
				U = F[w + 1],
				v = F[w + 2];
			P[w] = Math.min(255, Math.max(0, Math.round((z - (1 - Y) * d) * y)));
			P[w + 1] = Math.min(255, Math.max(0, Math.round((s - (1 - Y) * U) * y)));
			P[w + 2] = Math.min(255, Math.max(0, Math.round((t - (1 - Y) * v) * y)));
			P[w + 3] = 255
		}
	};
	H.N.$e = function (F, P, o, X, Y, y, z, s, t, d, U) {
		if (d == null) d = !1;
		if (U == null) U = [1, 1, 1];
		var v = 255 << 24 | U[2] * 16711680 | U[1] * 65280 | U[0] * 255,
			A = ~v;
		if (Y && !P.Qn(y)) {
			var Z = H.R(P.M() * 4);
			H.set(Z, z);
			H.Lj(Y, y, Z, P);
			Y = Z;
			y = P
		}
		if (d) {
			if (Y == null) H.N.acJ(F, P, o, X, Y, s, t, v, A);
			else H.N.ai1(F, P, o, X, Y, s, t)
		} else {
			if (Y == null) H.N.aky(F, P, o, X, Y, s, t, v, A);
			else H.N.ahn(F, P, o, X, Y, s, t)
		}
	};
	H.N.aky = function (F, P, o, X, Y, y, z, s, t) {
		var d = 1 / 255,
			U = P.$X(X).$X(y),
			v = Math.max(0, U.x - P.x),
			A = Math.max(0, U.x - X.x),
			Z = Math.max(0, U.y - P.y),
			D = Math.max(0, U.y - X.y),
			q = U.Z,
			R = U.h,
			J = new Uint32Array(F.buffer),
			W = new Uint32Array(o.buffer),
			p = H.N.Rh,
			n = z * 255 & 255;
		for (var w = 0; w < R; w++) {
			var b = (Z + w) * P.Z + v,
				Q = (D + w) * X.Z + A;
			for (var _ = 0; _ < q; _++, b++, Q++) {
				var L = J[b],
					m = W[Q],
					I = L >>> 24,
					c = m >>> 24,
					u = H.fV(n * I + (255 - n) * c),
					a = H.fV(I * n),
					N = H.fV(c * (255 - n)),
					V = L & 255,
					M = L >>> 8 & 255,
					O = L >>> 16 & 255,
					K = m & 255,
					j = m >>> 8 & 255,
					$ = m >>> 16 & 255,
					x = a * V + K * N,
					g = a * M + j * N,
					T = a * O + $ * N;
				x = p[u << 8 | H.fV(x)];
				g = p[u << 8 | H.fV(g)];
				T = p[u << 8 | H.fV(T)];
				var E = u << 24 | T << 16 | g << 8 | x;
				W[Q] = t & m | s & E
			}
		}
	};
	H.N.acJ = function (F, P, o, X, Y, y, z, s, t) {
		var d = 1 / 255,
			U = P.$X(X).$X(y),
			v = Math.max(0, U.x - P.x),
			A = Math.max(0, U.x - X.x),
			Z = Math.max(0, U.y - P.y),
			D = Math.max(0, U.y - X.y),
			q = U.Z,
			R = U.h,
			J = new Uint32Array(F.buffer),
			W = new Uint32Array(o.buffer),
			p = H.N.Rh,
			n = z * 16777215 & 16777215;
		for (var w = 0; w < R; w++) {
			var b = (Z + w) * P.Z + v,
				Q = (D + w) * X.Z + A;
			for (var _ = 0; _ < q; _++, b++, Q++) {
				if ((H.N.eT(b) & 16777215) < n) {
					W[Q] = t & W[Q] | s & J[b]
				}
			}
		}
	};
	H.N.ahn = function (F, P, o, X, Y, y, z) {
		var s = 1 / 255,
			t = P.$X(X).$X(y),
			d = Math.max(0, t.x - P.x),
			U = Math.max(0, t.x - X.x),
			v = Math.max(0, t.y - P.y),
			A = Math.max(0, t.y - X.y),
			Z = t.Z,
			D = t.h,
			q = new Uint32Array(F.buffer),
			R = new Uint32Array(o.buffer),
			J = H.N.Rh;
		for (var w = 0; w < D; w++) {
			var W = (v + w) * P.Z + d,
				p = (A + w) * X.Z + U;
			for (var n = 0; n < Z; n++, W++, p++) {
				var b = Y[W] * z & 255;
				if (b == 0) continue;
				if (b == 255) {
					R[p] = q[W];
					continue
				}
				var Q = q[W],
					_ = R[p],
					L = Q >>> 24,
					m = _ >>> 24,
					I = H.fV(b * L + (255 - b) * m),
					c = H.fV(L * b),
					u = H.fV(m * (255 - b)),
					a = Q & 255,
					N = Q >>> 8 & 255,
					V = Q >>> 16 & 255,
					M = _ & 255,
					O = _ >>> 8 & 255,
					K = _ >>> 16 & 255,
					j = J[I << 8 | H.fV(c * a + M * u)],
					$ = J[I << 8 | H.fV(c * N + O * u)],
					x = J[I << 8 | H.fV(c * V + K * u)];
				R[p] = I << 24 | x << 16 | $ << 8 | j
			}
		}
	};
	H.N.ai1 = function (F, P, o, X, Y, y, z) {
		var s = 1 / 255,
			t = P.$X(X).$X(y),
			d = Math.max(0, t.x - P.x),
			U = Math.max(0, t.x - X.x),
			v = Math.max(0, t.y - P.y),
			A = Math.max(0, t.y - X.y),
			Z = t.Z,
			D = t.h,
			q = new Uint32Array(F.buffer),
			R = new Uint32Array(o.buffer),
			J = H.N.Rh,
			W = Math.round(z * 257);
		for (var w = 0; w < D; w++) {
			var p = (v + w) * P.Z + d,
				n = (A + w) * X.Z + U;
			for (var b = 0; b < Z; b++, p++, n++) {
				var Q = Y[p] * W;
				if ((H.N.eT(p) & 65535) < Q) R[n] = q[p]
			}
		}
	};
	H.N.V7 = function (F, P, o, X, Y, y, z) {
		var s = 1 / 255,
			t = P.$X(X).$X(y),
			d = Math.max(0, t.x - P.x),
			U = Math.max(0, t.x - X.x),
			v = Math.max(0, t.y - P.y),
			A = Math.max(0, t.y - X.y),
			Z = t.Z,
			D = t.h,
			q = new Uint32Array(F.buffer),
			R = new Uint32Array(o.buffer),
			J = Math.floor(Math.random() * X.M()),
			W = H.N.a9n;
		for (var w = 0; w < D; w++) {
			var p = (v + w) * P.Z + d,
				n = (A + w) * X.Z + U;
			for (var b = 0; b < Z; b++) {
				var Q = Y[p + b] * z;
				if (Q == 0) continue;
				if (Q == 255) {
					R[n + b] = q[p + b];
					continue
				}
				var _ = q[p + b],
					L = R[n + b],
					m = _ >>> 24,
					I = L >>> 24,
					c = m * Q * (1 / 255),
					u = I * (255 - Q) * (1 / 255),
					a = _ & 255,
					N = _ >>> 8 & 255,
					V = _ >>> 16 & 255,
					M = L & 255,
					O = L >>> 8 & 255,
					K = L >>> 16 & 255,
					j = H.N.eT(n + b + J),
					$ = Math.floor((c + u) * 256 + .5) + (j >>> 0 & 255) >>> 8,
					x = $ == 0 ? 0 : 256 / (c + u),
					g = a * c + M * u,
					T = N * c + O * u,
					E = V * c + K * u,
					a9 = Math.floor(g * x + .5) + (j >>> 8 & 255) >>> 8,
					ez = Math.floor(T * x + .5) + (j >>> 16 & 255) >>> 8,
					bN = Math.floor(E * x + .5) + (j >>> 21 & 248) >>> 8;
				R[n + b] = $ << 24 | bN << 16 | ez << 8 | a9
			}
		}
	};
	H.N.a9n = function (F) {
		return Math.floor(F + Math.random())
	};
	H.N.fG = function (F, P, o, X, Y, y, z) {
		var s = 1 / 255,
			t = P.$X(X).$X(y),
			d = Math.max(0, t.x - P.x),
			U = Math.max(0, t.x - X.x),
			v = Math.max(0, t.y - P.y),
			A = Math.max(0, t.y - X.y),
			Z = t.Z,
			D = t.h;
		for (var w = 0; w < D; w++) {
			var q = (v + w) * P.Z + d,
				R = (A + w) * X.Z + U;
			for (var J = 0; J < Z; J++, q++, R++) {
				var W = z * Y[q] * s;
				if (W == 0) continue;
				if (W == 1) {
					o[R] = F[q];
					continue
				}
				o[R] = F[q] * W + o[R] * (1 - W)
			}
		}
	};
	H.QN = {};
	H.QN.ace = function (F, P, o, X, Y, y) {
		H.QN.i9(F, P, o, X, Y, y, null, 0)
	};
	H.QN.a9g = function (F, P, o, X, Y) {
		H.QN.i9(F, P, o, X, Y, null, null, 0)
	};
	H.QN.a7P = function (F, P, o, X, Y, y, z) {
		H.QN.i9(F, P, o, X, Y, null, y, z * .5)
	};
	H.QN.i9 = function (F, P, o, X, Y, y, z, s) {
		var t = 0,
			u = 0,
			a = 1e9,
			N = 0,
			V = 1e9,
			M = 0,
			O = 1e9,
			K = 0,
			j = 0,
			$ = 0,
			x = 0;
		if (y) {
			t = Y * .5;
			Y = 3 + Math.round((Y - 3) * .75)
		}
		if (z) {
			Y = Math.round(Y * 2.2)
		}
		var d = 1 / Y,
			U = Math.floor(P * d) + 1,
			v = Math.floor(o * d) + 1,
			A = [],
			Z = new Uint8Array(U * v * 4),
			D = z ? .5 : 1,
			q = y ? 64 : 0;
		for (var R = 0; R < v; R++) {
			var J = z ? .5 * (R & 1) : 0;
			for (var W = 0; W < U; W++) {
				var p = (W + Math.random() * D + J) * Y,
					n = (R + Math.random() * D) * Y;
				A.push(p, n);
				var b = Math.min(P - 1, Math.floor(p)),
					Q = Math.min(o - 1, Math.floor(n)),
					_ = (Q * P + b) * 4,
					L = (R * U + W) * 4;
				for (var w = 0; w < 4; w++) Z[L + w] = Math.max(0, Math.min(255, Math.floor(F[_ + w] + (Math.random() - .5) * q)))
			}
		}
		var m = y ? y : z ? z : [0, 0, 0],
			I = U * v * 2,
			c = [-U - 1, -U, -U + 1, -1, 0, 1, U - 1, U, U + 1];
		for (var R = 0; R < o; R++) {
			$ = 0;
			for (var W = 0; W < P; W++) {
				var g = W + .5,
					T = R + .5,
					E = Math.floor(T * d),
					a9 = Math.floor(g * d),
					ez = E * U + a9,
					d8 = 0,
					C = 0;
				if ($ > 1 + s) {
					a = H.QN.wQ(A, u, g, T);
					K = Math.sqrt(a);
					$--;
					x++
				} else {
					a = V = O = 1e9;
					for (var w = 0; w < c.length; w++) {
						var bN = (ez + c[w]) * 2;
						if (bN < 0 || bN >= I) continue;
						var cg = H.QN.wQ(A, bN, g, T);
						if (cg < O) {
							if (cg < V) {
								if (cg < a) {
									M = N;
									O = V;
									N = u;
									V = a;
									u = bN;
									a = cg
								} else {
									M = N;
									O = V;
									N = bN;
									V = cg
								}
							} else {
								M = bN;
								O = cg
							}
						}
					}
					K = Math.sqrt(a);
					j = Math.sqrt(V);
					$ = j - (K + j) * .5
				}
				if (z == null) {
					var S = (K + j) * .5,
						g7 = y ? Math.max(0, S - t) : 0;
					d8 = Math.max(0, Math.min(1, .5 + S - K - g7));
					C = Math.max(0, Math.min(1, 1 - (.5 + S - K) - g7))
				} else {
					var g_ = Math.min(H.QN.PC(A, u, N, g, T), H.QN.PC(A, u, M, g, T));
					d8 = Math.max(0, Math.min(1, g_ - s * .5));
					if (g < s || P - s < g || T < s || o - s < T) d8 = 0;
					C = 0
				}
				var fw = 1 - C - d8,
					L = R * P + W << 2,
					dT = u << 1,
					g4 = N << 1;
				X[L + 0] = Math.floor(.5 + d8 * Z[dT + 0] + C * Z[g4 + 0] + fw * m[0]);
				X[L + 1] = Math.floor(.5 + d8 * Z[dT + 1] + C * Z[g4 + 1] + fw * m[1]);
				X[L + 2] = Math.floor(.5 + d8 * Z[dT + 2] + C * Z[g4 + 2] + fw * m[2]);
				X[L + 3] = F[L + 3]
			}
		}
	};
	H.QN.wQ = function (F, P, o, X) {
		var Y = o - F[P],
			y = X - F[P + 1];
		return Y * Y + y * y
	};
	H.QN.PC = function (F, P, o, X, Y) {
		var y = F[P],
			z = F[P + 1],
			s = F[o],
			t = F[o + 1],
			d = (y + s) * .5,
			U = (z + t) * .5,
			v = d + (t - z),
			A = U - (s - y),
			Z = A - U,
			D = v - d;
		return Math.abs(Z * X - D * Y + v * U - A * d) / Math.sqrt(D * D + Z * Z)
	};
	H.ni = {};
	H.ni.Xt = function (F) {
		if (H.ni.uN.length < F) H.ni.uN = H.R(F);
		return H.ni.uN
	};
	H.ni.uN = H.R(0);
	H.ni.YM = function (F) {
		if (H.ni.jm.length < F) H.ni.jm = new Float32Array(F);
		return H.ni.jm
	};
	H.ni.jm = new Float32Array(0);
	H.ni.et = function (F, P, o, X) {
		var Y = o.Z,
			y = o.h;
		H.ni.a1I(F, P, Y, y, X)
	};
	H.ni.FY = function (F, P, o, X) {
		var Y = o.Z,
			y = o.h;
		H.ni.a46(F, P, Y, y, X)
	};
	H.ni.aah = function (F, P, o) {
		var X = P.Z,
			Y = P.h;
		H.ni.a41(F, X, Y, o)
	};
	H.ni.d$ = function (F, P, o, X, Y) {
		var y = o.Z,
			z = o.h;
		H.ni.agE(F, P, y, z, X, Y)
	};
	H.ni.p8 = function (F, P, o, X) {
		var Y = o.Z,
			y = o.h;
		X = Math.round(X);
		var z = H.ni.Xt(Y * y);
		H.Hk(F, P);
		H.ni.Mb(P, z, Y, y, X)
	};
	H.ni.$f = function (F, P, o) {
		var X = P.Z,
			Y = P.h;
		o = Math.round(o);
		var y = H.ni.Xt(X * Y * 4);
		H.ni.Da(F, y, X, Y, o)
	};
	H.ni.Ey = function (F, P, o, X) {
		var Y = o.Z,
			y = o.h;
		X = Math.round(X);
		var z = H.ni.YM(Y * y);
		H.Hk(F, P);
		H.ni.Sg(P, z, Y, y, X)
	};
	H.ni.Zb = function (F, P, o) {
		var X = P.Z,
			Y = P.h;
		o = Math.round(o);
		var y = H.ni.Xt(X * Y * 4);
		H.ni.Wi(F, y, X, Y, o);
		H.Hk(y, F)
	};
	H.ni.hT = function (F, e) {
		var P = Math.sqrt(12 * F * F / e + 1),
			o = Math.floor(P);
		if (o % 2 == 0) o--;
		var X = o + 2,
			Y = (12 * F * F - e * o * o - 4 * e * o - 3 * e) / (-4 * o - 4),
			y = Math.round(Y),
			z = [];
		for (var w = 0; w < e; w++) z.push(w < y ? o : X);
		return z
	};
	H.ni.a1I = function (F, P, o, X, Y) {
		var y = H.ni.hT(Y, 3),
			z = H.ni.Xt(o * X);
		H.Hk(F, P);
		H.ni.Mb(P, z, o, X, y[0] - 1 >> 1);
		H.ni.Mb(P, z, o, X, y[1] - 1 >> 1);
		H.ni.Mb(P, z, o, X, y[2] - 1 >> 1)
	};
	H.ni.a46 = function (F, P, o, X, Y) {
		var y = H.ni.hT(Y, 2),
			z = H.ni.Xt(o * X);
		H.Hk(F, P);
		H.ni.Mb(P, z, o, X, y[0] - 1 >> 1);
		H.ni.Mb(P, z, o, X, y[1] - 1 >> 1)
	};
	H.ni.a41 = function (F, P, o, X) {
		var Y = H.ni.hT(X, 3),
			y = H.ni.Xt(P * o * 4);
		H.ni.Da(F, y, P, o, Y[0] - 1 >> 1);
		H.ni.Da(F, y, P, o, Y[1] - 1 >> 1);
		H.ni.Da(F, y, P, o, Y[2] - 1 >> 1)
	};
	H.ni.agE = function (F, P, o, X, Y, y) {
		if (y == null) y = 3;
		var z = H.ni.hT(Y, y),
			s = H.ni.YM(o * X);
		H.Hk(F, P);
		for (var w = 0; w < y; w++) H.ni.Sg(P, s, o, X, (z[0] - 1) / 2)
	};
	H.ni.Mb = function (F, P, o, X, Y) {
		H.ni.afC(F, P, o, X, Y);
		H.ni.a4q(P, F, o, X, Y)
	};
	H.ni.Da = function (F, P, o, X, Y) {
		H.ni.Wi(F, P, o, X, Y);
		H.ni.aip(P, F, o, X, Y)
	};
	H.ni.Sg = function (F, P, o, X, Y) {
		H.ni.a5H(F, P, o, X, Y);
		H.ni.aee(P, F, o, X, Y)
	};
	H.ni.z9 = [];
	H.ni.FF = function (F) {
		if (H.ni.z9[F]) return H.ni.z9[F];
		var P = 1 / (F + F + 1),
			o = (F + F + 1) * 256,
			X = H.R(o);
		for (var w = 0; w < o; w++) X[w] = Math.round(w * P);
		H.ni.z9[F] = X;
		return X
	};
	H.ni.afC = function (F, P, o, X, Y) {
		var y = 1 / (Y + Y + 1),
			z = o - Y - Y - 1,
			s = H.ni.FF(Y);
		for (var w = 0; w < X; w++) {
			var t = w * o,
				d = t,
				U = t + Y,
				v = F[t],
				A = F[t + o - 1],
				Z = (Y + 1) * v;
			for (var D = 0; D < Y; D++) Z += F[t + D];
			for (var D = 0; D <= Y; D++) {
				Z += F[U + D] - v;
				P[t + D] = s[Z]
			}
			U += Y + 1;
			t += Y + 1;
			for (var D = 0; D < z; D++) {
				Z += F[U + D] - F[d + D];
				P[t + D] = s[Z]
			}
			U += z;
			d += z;
			t += z;
			for (var D = o - Y; D < o; D++) {
				Z += A - F[d++];
				P[t++] = s[Z]
			}
		}
	};
	H.ni.Wi = function (F, P, o, X, Y) {
		var y = o << 2,
			z = Y << 2,
			s = 1 / (Y + Y + 1),
			t = o - Y - Y - 1,
			d = t << 2,
			U = H.ni.FF(Y);
		for (var w = 0; w < X; w++) {
			var v = w * y,
				A = v,
				Z = v + z,
				D = v + y,
				q = F[v],
				R = F[v + 1],
				J = F[v + 2],
				W = F[v + 3],
				p = (Y + 1) * q,
				n = (Y + 1) * R,
				b = (Y + 1) * J,
				Q = (Y + 1) * W;
			for (var _ = 0; _ < z; _ += 4) {
				p += F[v + _];
				n += F[v + _ + 1];
				b += F[v + _ + 2];
				Q += F[v + _ + 3]
			}
			for (var _ = 0; _ <= z; _ += 4) {
				p += F[Z] - q;
				P[v] = U[p];
				n += F[Z + 1] - R;
				P[v + 1] = U[n];
				b += F[Z + 2] - J;
				P[v + 2] = U[b];
				Q += F[Z + 3] - W;
				P[v + 3] = U[Q];
				Z += 4;
				v += 4
			}
			for (var _ = 0; _ < d; _ += 4) {
				p += F[Z + _] - F[A + _];
				P[v + _] = U[p];
				n += F[Z + _ + 1] - F[A + _ + 1];
				P[v + _ + 1] = U[n];
				b += F[Z + _ + 2] - F[A + _ + 2];
				P[v + _ + 2] = U[b];
				Q += F[Z + _ + 3] - F[A + _ + 3];
				P[v + _ + 3] = U[Q]
			}
			Z += d;
			A += d;
			v += d;
			q = F[D - 4];
			R = F[D - 3];
			J = F[D - 2];
			W = F[D - 1];
			for (var _ = o - Y; _ < o; _++) {
				p += q - F[A];
				P[v] = U[p];
				n += R - F[A + 1];
				P[v + 1] = U[n];
				b += J - F[A + 2];
				P[v + 2] = U[b];
				Q += W - F[A + 3];
				P[v + 3] = U[Q];
				A += 4;
				v += 4
			}
		}
	};
	H.ni.a5H = function (F, P, o, X, Y) {
		var y = 1 / (Y + Y + 1),
			z = o - Y - Y - 1,
			s = 0,
			t = 0,
			d = 0;
		for (var w = 0; w < X; w++) {
			s = w * o;
			t = s;
			d = s + Y;
			var U = F[s],
				v = F[s + o - 1],
				A = (Y + 1) * U;
			for (var Z = 0; Z < Y; Z++) {
				A += F[s + Z]
			}
			for (var Z = 0; Z <= Y; Z++) {
				A += F[d++] - U;
				P[s++] = A * y
			}
			for (var Z = 0; Z < z; Z++) {
				A += F[d + Z] - F[t + Z];
				P[s + Z] = A * y
			}
			d += z;
			t += z;
			s += z;
			for (var Z = o - Y; Z < o; Z++) {
				A += v - F[t++];
				P[s++] = A * y
			}
		}
	};
	H.ni.a4q = function (F, P, o, X, Y) {
		var y = 1 / (Y + Y + 1),
			z = X - Y - Y - 1,
			s = H.ni.FF(Y);
		for (var w = 0; w < o; w++) {
			var t = w,
				d = t,
				U = t + Y * o,
				v = F[t],
				A = F[t + o * (X - 1)],
				Z = (Y + 1) * v;
			for (var D = 0; D < Y; D++) Z += F[t + D * o];
			for (var D = 0; D <= Y; D++) {
				Z += F[U] - v;
				P[t] = s[Z];
				U += o;
				t += o
			}
			for (var D = 0; D < z; D++) {
				var q = D * o;
				Z += F[U + q] - F[d + q];
				P[t + q] = s[Z]
			}
			d += z * o;
			U += z * o;
			t += z * o;
			for (var D = X - Y; D < X; D++) {
				Z += A - F[d];
				P[t] = s[Z];
				d += o;
				t += o
			}
		}
	};
	H.ni.aip = function (F, P, o, X, Y) {
		var y = o << 2,
			z = Y << 2,
			s = 1 / (Y + Y + 1),
			t = X - Y - Y - 1,
			d = t << 2,
			U = H.ni.FF(Y);
		for (var w = 0; w < o; w++) {
			var v = w << 2,
				A = v,
				Z = v + Y * y,
				D = v + y * (X - 1),
				q = F[v],
				R = F[v + 1],
				J = F[v + 2],
				W = F[v + 3],
				p = (Y + 1) * q,
				n = (Y + 1) * R,
				b = (Y + 1) * J,
				Q = (Y + 1) * W;
			for (var _ = 0; _ < Y; _++) {
				var L = v + _ * y;
				p += F[L];
				n += F[L + 1];
				b += F[L + 2];
				Q += F[L + 3]
			}
			for (var _ = 0; _ <= Y; _++) {
				p += F[Z] - q;
				P[v] = U[p];
				n += F[Z + 1] - R;
				P[v + 1] = U[n];
				b += F[Z + 2] - J;
				P[v + 2] = U[b];
				Q += F[Z + 3] - W;
				P[v + 3] = U[Q];
				Z += y;
				v += y
			}
			for (var _ = 0; _ < t; _++) {
				var m = _ * y;
				p += F[Z + m] - F[A + m];
				P[v + m] = U[p];
				n += F[Z + m + 1] - F[A + m + 1];
				P[v + m + 1] = U[n];
				b += F[Z + m + 2] - F[A + m + 2];
				P[v + m + 2] = U[b];
				Q += F[Z + m + 3] - F[A + m + 3];
				P[v + m + 3] = U[Q]
			}
			A += t * y;
			Z += t * y;
			v += t * y;
			q = F[D];
			R = F[D + 1];
			J = F[D + 2];
			W = F[D + 3];
			for (var _ = X - Y; _ < X; _++) {
				p += q - F[A];
				P[v] = U[p];
				n += R - F[A + 1];
				P[v + 1] = U[n];
				b += J - F[A + 2];
				P[v + 2] = U[b];
				Q += W - F[A + 3];
				P[v + 3] = U[Q];
				A += y;
				v += y
			}
		}
	};
	H.ni.aee = function (F, P, o, X, Y) {
		var y = 1 / (Y + Y + 1),
			z = X - Y - Y - 1;
		for (var w = 0; w < o; w++) {
			var s = w,
				t = s,
				d = s + Y * o,
				U = F[s],
				v = F[s + o * (X - 1)],
				A = (Y + 1) * U;
			for (var Z = 0; Z < Y; Z++) A += F[s + Z * o];
			for (var Z = 0; Z <= Y; Z++) {
				A += F[d] - U;
				P[s] = A * y;
				d += o;
				s += o
			}
			for (var Z = 0; Z < z; Z++) {
				var D = Z * o;
				A += F[d + D] - F[t + D];
				P[s + D] = A * y
			}
			t += z * o;
			d += z * o;
			s += z * o;
			for (var Z = X - Y; Z < X; Z++) {
				A += v - F[t];
				P[s] = A * y;
				t += o;
				s += o
			}
		}
	};
	H.ea = {};
	H.ea.R = function (F, P, o, X) {
		var Y = [];
		for (var y = 0; y < 4; y++)
			for (var z = 0; z < 4; z++) Y.push(F + o * z / 3, P + X * y / 3);
		return Y
	};
	H.ea.Qs = function (F, P) {
		var o = F.slice(0);
		for (var w = 0; w < 4; w++)
			for (var X = 0; X < 4; X++) {
				var Y = 2 * (w * 4 + X),
					y = 2 * (X * 4 + (3 - w));
				if (P) {
					var z = Y;
					Y = y;
					y = z
				}
				o[y] = F[Y];
				o[y + 1] = F[Y + 1]
			}
		return o
	};
	H.ea.a0q = new Float64Array(16);
	H.ea.drawImage = function (F, P, o, X, Y, y, z) {
		if (z == null) z = !1;
		var s = y.Z,
			t = y.h,
			A = 2;
		Y = new Uint32Array(Y.buffer);
		P = new Uint32Array(P.buffer);
		var d = H.ea.G.LJ(F, 0, 1, 0, 1, o, X),
			U = d.IC,
			v = d.$x,
			Z = 1 / A,
			D = H.ea.EZ,
			q = new Float64Array(2),
			R = new Uint32Array(30);
		for (var J = 0; J < t; J++)
			for (var W = 0; W < s; W++) {
				var p = W + y.x + .5,
					n = J + y.y + .5,
					b = H.ea.G.ah7(U, v, p, n, R),
					u = 0,
					a = 0,
					N = 0,
					V = 0;
				if (b == 0) continue;
				var Q = J * s + W,
					_ = H.ea.cp(F, p, n, U, R, b, !0),
					L = D[0] * o,
					m = D[1] * X;
				if (z) {
					if (_ != -1 && 0 < L && L < o && 0 < m && m < X) {
						var I = Math.floor(m) * o + Math.floor(L);
						Y[Q] = P[I]
					}
					continue
				}
				var c = _ != -1 && (1 < L && L < o - 1) && (1 < m && m < X - 1);
				if (U[_ + 8] < .95) {
					H.P.nK(L, m, P, o, X, Y, Q, 0);
					continue
				}
				for (var w = 0; w < A; w++)
					for (var M = 0; M < A; M++) {
						var p = W + y.x + (w + .5) * Z,
							n = J + y.y + (M + .5) * Z,
							_ = 0;
						_ = H.ea.cp(F, p, n, U, R, b, !0);
						if (_ != -1) {
							var L = D[0],
								m = D[1],
								L = Math.floor(L * o);
							m = Math.floor(m * X);
							var O = P[m * o + L],
								K = O >>> 24;
							u += (O & 255) * K;
							a += (O >>> 8 & 255) * K;
							N += (O >>> 16 & 255) * K;
							V += K
						}
					}
				if (V != 0) {
					var j = 1 / V;
					u = ~~(u * j + .5);
					a = ~~(a * j + .5);
					N = ~~(N * j + .5);
					V = ~~(V * Z * Z + .5);
					Y[Q] = V << 24 | N << 16 | a << 8 | u
				}
			}
	};
	H.ea.EZ = new Float64Array(5 * 20);
	H.ea.a1p = new Uint32Array(5 * 5 * 20);
	H.ea.cp = function (F, P, o, X, Y, y, z) {
		var s = H.ea.EZ,
			t = H.ea.a1p,
			d = 0,
			U = 0;
		for (var w = 0; w < y; w++) {
			var v = Y[w],
				A = d;
			d = H.ea.Ac(F, P, o, X, v + 4, z, s, d);
			if (d != A) {
				t[U] = v;
				U += 5
			}
		}
		if (d == 0) return -1;
		else if (d == 5) return t[0];
		else {
			var Z = 0;
			for (var w = 0; w < d; w += 5)
				if (s[w + 4] < s[Z + 4]) Z = w;
			s[0] = s[Z];
			s[1] = s[Z + 1];
			s[2] = s[Z + 2];
			s[3] = s[Z + 3];
			return t[Z]
		}
	};
	H.ea.e$ = new Array(10);
	H.ea.Ac = function (F, P, o, X, Y, y, z, s) {
		var t = H.ea.e$,
			d = 0,
			U = 0,
			v = 0,
			A = 0,
			Z = 0,
			D = 0,
			q = 0,
			R = X[Y],
			J = X[Y + 1],
			W = X[Y + 2],
			p = X[Y + 3],
			n = (W - P) * (W - P) + (p - o) * (p - o);
		for (var w = 0; w < 5 && n > .05; w++) {
			H.ea.zh(t, 0, J);
			H.ea.jb(t, 4, R);
			H.ea.Gm(F, t);
			d = t[8];
			U = t[9];
			H.ea.jb(t, 0, J);
			H.ea.zh(t, 4, R);
			H.ea.Gm(F, t);
			v = t[8];
			A = t[9];
			Z = 1 / (d * A - U * v);
			D = (W - P) * Z;
			q = (p - o) * Z;
			R += -A * D + v * q;
			J += +U * D - d * q;
			H.ea.sU(F, R, J, t);
			W = t[8];
			p = t[9];
			n = (W - P) * (W - P) + (p - o) * (p - o)
		}
		if (y && (R < 0 || R > 1 || J < 0 || J > 1 || n > .25)) return s;
		z[s] = R;
		z[s + 1] = J;
		z[s + 2] = W;
		z[s + 3] = p;
		z[s + 4] = d * A - U * v;
		return s + 5
	};
	H.ea.apply = function (F, P, o) {
		var X = o.x,
			Y = o.y,
			y = 1 / o.Z,
			z = 1 / o.h,
			s = H.ea.e$;
		for (var t = 0; t < P.length; t += 2) {
			var d = (P[t] - X) * y,
				U = (P[t + 1] - Y) * z;
			H.ea.sU(F, d, U, s);
			P[t] = s[8];
			P[t + 1] = s[9]
		}
	};
	H.ea.sU = function (F, P, o, X) {
		H.ea.zh(X, 0, o);
		H.ea.zh(X, 4, P);
		H.ea.Gm(F, X)
	};
	H.ea.jb = function (F, w, P) {
		var o = 1 - P;
		F[w] = -3 * (o * o);
		F[w + 1] = 3 * (o * o) - 6 * (P * o);
		F[w + 2] = 6 * (P * o) - 3 * (P * P);
		F[w + 3] = 3 * (P * P)
	};
	H.ea.zh = function (F, w, P) {
		var o = 1 - P;
		F[w] = o * (o * o);
		F[w + 1] = 3 * P * (o * o);
		F[w + 2] = 3 * (P * P) * o;
		F[w + 3] = P * P * P
	};
	H.ea.Gm = function (F, P) {
		var o = 0,
			X = 0,
			Y = 0;
		Y = P[0] * P[4];
		o += F[0] * Y;
		X += F[1] * Y;
		Y = P[0] * P[5];
		o += F[2] * Y;
		X += F[3] * Y;
		Y = P[0] * P[6];
		o += F[4] * Y;
		X += F[5] * Y;
		Y = P[0] * P[7];
		o += F[6] * Y;
		X += F[7] * Y;
		Y = P[1] * P[4];
		o += F[8] * Y;
		X += F[9] * Y;
		Y = P[1] * P[5];
		o += F[10] * Y;
		X += F[11] * Y;
		Y = P[1] * P[6];
		o += F[12] * Y;
		X += F[13] * Y;
		Y = P[1] * P[7];
		o += F[14] * Y;
		X += F[15] * Y;
		Y = P[2] * P[4];
		o += F[16] * Y;
		X += F[17] * Y;
		Y = P[2] * P[5];
		o += F[18] * Y;
		X += F[19] * Y;
		Y = P[2] * P[6];
		o += F[20] * Y;
		X += F[21] * Y;
		Y = P[2] * P[7];
		o += F[22] * Y;
		X += F[23] * Y;
		Y = P[3] * P[4];
		o += F[24] * Y;
		X += F[25] * Y;
		Y = P[3] * P[5];
		o += F[26] * Y;
		X += F[27] * Y;
		Y = P[3] * P[6];
		o += F[28] * Y;
		X += F[29] * Y;
		Y = P[3] * P[7];
		o += F[30] * Y;
		X += F[31] * Y;
		P[8] = o;
		P[9] = X
	};
	H.ea.G = {};
	H.ea.G.fY = 12;
	H.ea.G.G7 = new Uint32Array(50);
	H.ea.G.ah7 = function (F, P, o, X, Y) {
		var y = 0,
			z = H.ea.G.G7,
			s = 1;
		z[0] = 0;
		while (s != 0) {
			var t = z[--s];
			if (F[t + 0] <= o && F[t + 1] <= X && o < F[t + 2] && X < F[t + 3]) {
				if (P[t + t + 18] == 0) {
					Y[y] = t;
					y++
				} else {
					z[s] = P[t + t + 18];
					z[s + 1] = P[t + t + 19];
					s += 2
				}
			}
		}
		return y
	};
	H.ea.G.a0i = function (F, P, o, X, Y) {
		var y = 0,
			z = H.ea.G.kR,
			s = H.ea.G.G7,
			t = 1,
			d = 0,
			U = 999999999999;
		s[0] = 0;
		while (t != 0) {
			var v = s[--t],
				A = z(o, X, F[v + 0], F[v + 1]),
				Z = z(o, X, F[v + 0], F[v + 3]),
				D = z(o, X, F[v + 2], F[v + 1]),
				q = z(o, X, F[v + 2], F[v + 3]),
				R = Math.min(A, Math.min(Z, Math.min(D, q))),
				J = Math.max(A, Math.max(Z, Math.max(D, q)));
			if (R > U) continue;
			if (P[v + v + 18] == 0) {
				if (J < U) {
					U = J;
					d = v
				}
			} else {
				s[t] = P[v + v + 18];
				s[t + 1] = P[v + v + 19];
				t += 2
			}
		}
		Y[y] = d;
		y++;
		return y
	};
	H.ea.G.kR = function (F, P, o, X) {
		return (o - F) * (o - F) + (X - P) * (X - P)
	};
	H.ea.G.W0 = null;
	H.ea.G.WG = null;
	H.ea.G.LJ = function (F, P, o, X, Y, y, z) {
		if (y == null) {
			y = 1;
			z = 1
		}
		H.ea.G.WG = F;
		if (H.ea.G.W0 == null) {
			H.ea.G.W0 = {
				IC: new Float64Array(15e3 * 8),
				$x: null
			};
			H.ea.G.W0.$x = new Uint32Array(H.ea.G.W0.IC.buffer)
		}
		var s = H.ea.G.W0;
		H.ea.G.xZ(F, P, o, X, Y, 0, s.IC, s.$x, 0, y, z);
		return s
	};
	H.ea.G.xZ = function (F, P, o, X, Y, y, z, s, t, d, U) {
		var v = H.D.nP(F),
			A = t,
			Z = H.ea.G.WG,
			D = (P + o) / 2,
			q = (X + Y) / 2,
			R = H.ea.e$,
			J = H.ea.EZ,
			W = H.ea.a0q,
			ez, bN, cg;
		H.ea.sU(Z, D, q, R);
		var p = R[8],
			n = R[9];
		W[0] = D;
		W[1] = q;
		W[2] = p;
		W[3] = n;
		H.ea.Ac(Z, p + 1, n, W, 0, !1, J, 0);
		var b = (D - J[0]) * d,
			Q = (q - J[1]) * U,
			_ = Math.sqrt(b * b + Q * Q);
		H.ea.Ac(Z, p, n + 1, W, 0, !1, J, 0);
		var L = (D - J[0]) * d,
			m = (q - J[1]) * U,
			I = Math.sqrt(L * L + m * m);
		z[A] = v.x;
		z[A + 1] = v.y;
		z[A + 2] = v.x + v.Z;
		z[A + 3] = v.y + v.h;
		z[A + 4] = D;
		z[A + 5] = q;
		z[A + 6] = p;
		z[A + 7] = n;
		z[A + 8] = .5 * (_ + I);
		s[A + A + 18] = 0;
		s[A + A + 19] = 0;
		t += 10;
		H.ea.zh(R, 0, .1);
		H.ea.jb(R, 4, .1);
		H.ea.Gm(F, R);
		var c = R[8],
			u = R[9];
		H.ea.jb(R, 0, .1);
		H.ea.zh(R, 4, .7);
		H.ea.Gm(F, R);
		var a = R[8],
			N = R[9];
		H.ea.zh(R, 0, .8);
		H.ea.jb(R, 4, .8);
		H.ea.Gm(F, R);
		var V = R[8],
			M = R[9];
		H.ea.jb(R, 0, .9);
		H.ea.zh(R, 4, .2);
		H.ea.Gm(F, R);
		var O = R[8],
			K = R[9],
			j = (V - c) * (V - c) + (O - a) * (O - a) + (M - u) * (M - u) + (K - N) * (K - N);
		if (t >= z.length) {
			console.log("Buffer not long enough");
			throw "e"
		}
		if (y == H.ea.G.fY || j < 2) return t;
		var $ = H.ea.G.IN(F, !0),
			x = H.D.nP($[0]),
			g = H.D.nP($[1]),
			T = H.ea.G.IN(F, !1),
			E = H.D.nP(T[0]),
			a9 = H.D.nP(T[1]);
		if (x.Z + x.h + g.Z + g.h < E.Z + E.h + a9.Z + a9.h) {
			cg = !0;
			ez = $[0];
			bN = $[1]
		} else {
			cg = !1;
			ez = T[0];
			bN = T[1]
		}
		var d8 = (P + o) / 2,
			C = (X + Y) / 2,
			S = P,
			g7 = X,
			g_ = o,
			fw = Y,
			dT = P,
			g4 = X,
			bB = o,
			d1 = Y;
		if (cg) {
			g_ = dT = d8
		} else {
			fw = g4 = C
		}
		s[A + A + 18] = t;
		t = H.ea.G.xZ(ez, S, g_, g7, fw, y + 1, z, s, t, d, U);
		s[A + A + 19] = t;
		t = H.ea.G.xZ(bN, dT, bB, g4, d1, y + 1, z, s, t, d, U);
		var f_ = s[A + A + 18],
			g$ = s[A + A + 19];
		z[A] = Math.min(z[f_], z[g$]);
		z[A + 1] = Math.min(z[f_ + 1], z[g$ + 1]);
		z[A + 2] = Math.max(z[f_ + 2], z[g$ + 2]);
		z[A + 3] = Math.max(z[f_ + 3], z[g$ + 3]);
		return t
	};
	H.ea.G.IN = function (F, P) {
		var o = 0,
			X = 0,
			Y = 0,
			y = 0,
			z = 0,
			s = 0,
			t = 0,
			d = 0,
			U = F.slice(0),
			v = F.slice(0);
		for (var w = 0; w < 4; w++) {
			o = P ? F[w * 8 + 2 * 0] : F[0 * 8 + 2 * w];
			X = P ? F[w * 8 + 2 * 0 + 1] : F[0 * 8 + 2 * w + 1];
			Y = P ? F[w * 8 + 2 * 1] : F[1 * 8 + 2 * w];
			y = P ? F[w * 8 + 2 * 1 + 1] : F[1 * 8 + 2 * w + 1];
			z = P ? F[w * 8 + 2 * 2] : F[2 * 8 + 2 * w];
			s = P ? F[w * 8 + 2 * 2 + 1] : F[2 * 8 + 2 * w + 1];
			t = P ? F[w * 8 + 2 * 3] : F[3 * 8 + 2 * w];
			d = P ? F[w * 8 + 2 * 3 + 1] : F[3 * 8 + 2 * w + 1];
			var A = (o + Y) / 2,
				Z = (X + y) / 2,
				D = (Y + z) / 2,
				q = (y + s) / 2,
				R = (z + t) / 2,
				J = (s + d) / 2,
				W = (A + D) / 2,
				p = (Z + q) / 2,
				n = (D + R) / 2,
				b = (q + J) / 2,
				Q = (W + n) / 2,
				_ = (p + b) / 2;
			if (P) {
				U[w * 8 + 2 * 0] = o;
				U[w * 8 + 2 * 0 + 1] = X;
				U[w * 8 + 2 * 1] = A;
				U[w * 8 + 2 * 1 + 1] = Z;
				U[w * 8 + 2 * 2] = W;
				U[w * 8 + 2 * 2 + 1] = p;
				U[w * 8 + 2 * 3] = Q;
				U[w * 8 + 2 * 3 + 1] = _;
				v[w * 8 + 2 * 0] = Q;
				v[w * 8 + 2 * 0 + 1] = _;
				v[w * 8 + 2 * 1] = n;
				v[w * 8 + 2 * 1 + 1] = b;
				v[w * 8 + 2 * 2] = R;
				v[w * 8 + 2 * 2 + 1] = J;
				v[w * 8 + 2 * 3] = t;
				v[w * 8 + 2 * 3 + 1] = d
			} else {
				U[0 * 8 + 2 * w] = o;
				U[0 * 8 + 2 * w + 1] = X;
				U[1 * 8 + 2 * w] = A;
				U[1 * 8 + 2 * w + 1] = Z;
				U[2 * 8 + 2 * w] = W;
				U[2 * 8 + 2 * w + 1] = p;
				U[3 * 8 + 2 * w] = Q;
				U[3 * 8 + 2 * w + 1] = _;
				v[0 * 8 + 2 * w] = Q;
				v[0 * 8 + 2 * w + 1] = _;
				v[1 * 8 + 2 * w] = n;
				v[1 * 8 + 2 * w + 1] = b;
				v[2 * 8 + 2 * w] = R;
				v[2 * 8 + 2 * w + 1] = J;
				v[3 * 8 + 2 * w] = t;
				v[3 * 8 + 2 * w + 1] = d
			}
		}
		return [U, v]
	};
	H.Pn = {};
	H.Pn.akw = function (F, P, o) {
		var X = H.Pn.akX(P, o),
			Y = H.Pn.alj(X, F, P, o);
		return {
			g8: X,
			lr: Y
		}
	};
	H.Pn.ajf = function (F, P, o) {
		var X = Math.round(F.length / 8),
			Y = new Uint32Array(X),
			y = new Uint8Array(X),
			z = new Uint32Array(X);
		H.XB(Y, 4294967295, 0);
		Y[o] = 0;
		var s = new fr(X);
		s.push(o, Y[o]);
		var t = {
			g8: F,
			lr: P,
			xy: Y,
			GI: y,
			fP: z,
			Ov: s,
			abd: o
		};
		return t
	};
	H.Pn.T9 = function (F, P) {
		var o = F.g8,
			X = F.lr,
			Y = F.xy,
			y = F.GI,
			z = F.fP,
			s = F.Ov;
		while (!s.qr() && (P == null || y[P] == 0)) {
			var t = s.pop();
			y[t] = 1;
			for (var w = 0; w < 8; w++) {
				var d = o[8 * t + w];
				if (d == -1 || y[d]) continue;
				var U = Y[t] + X[8 * t + w];
				if (s.contains(d) && U < Y[d]) s.remove(d, Y[d]);
				if (!s.contains(d)) {
					Y[d] = U;
					z[d] = t;
					s.push(d, Y[d])
				}
			}
		}
	};

	function fr(F) {
		this.lo = new Uint32Array(F);
		this.list = [];
		this.rW = 0;
		this.L9 = 4294967295
	}
	fr.prototype.qr = function () {
		return this.rW == 0
	};
	fr.prototype.push = function (F, P) {
		var o = this.list;
		if (o[P] == null) o[P] = [];
		o[P].push(F);
		this.rW++;
		this.lo[F] = o[P].length - 1 + 1;
		this.L9 = Math.min(this.L9, P)
	};
	fr.prototype.pop = function () {
		this.rW--;
		var F = this.list,
			P = this.L9,
			o = F[P].pop();
		if (F[P].length == 0) F[P] = null;
		this.XU();
		this.lo[o] = 0;
		return o
	};
	fr.prototype.contains = function (F) {
		return this.lo[F] != 0
	};
	fr.prototype.remove = function (F, P) {
		this.rW--;
		var o = this.list,
			w = this.lo[F] - 1;
		if (w == o[P].length - 1) o[P].pop();
		else {
			var X = o[P].pop();
			o[P][w] = X;
			this.lo[X] = w + 1
		}
		if (o[P].length == 0) o[P] = null;
		this.lo[F] = 0;
		this.XU()
	};
	fr.prototype.XU = function () {
		if (this.rW == 0) {
			this.L9 = 4294967295;
			return
		}
		var F = this.L9,
			P = this.list;
		while (P[F] == null) F++;
		this.L9 = F
	};
	H.Pn.ain = function (F, P, o) {
		var X = new Float32Array(P * o);
		for (var Y = 0; Y < o; Y++)
			for (var y = 0; y < P; y++) {
				var w = Y * P + y,
					z = -16 * F[w];
				if (1 < y && y < P - 2 && 1 < Y && Y < o - 2) {
					z += F[w - P - P];
					z += F[w - P - 1] + 2 * F[w - P] + F[w - P + 1];
					z += F[w - 2] + 2 * F[w - 1] + 2 * F[w + 1] + F[w + 2];
					z += F[w + P - 1] + 2 * F[w + P] + F[w + P + 1];
					z += F[w + P + P]
				}
				X[w] = z / 16
			}
		return X
	};
	H.Pn.adG = function (F, P, o) {
		var X = new Float32Array(P * o),
			w = 0,
			Y = 0;
		for (var y = 0; y < o; y++)
			for (var z = 0; z < P; z++) {
				var s = 0,
					t = 0;
				if (0 < z && z < P - 1) s = F[w + 1] - F[w - 1];
				if (0 < y && y < o - 1) t = F[w + P] - F[w - P];
				X[w] = Math.sqrt(s * s + t * t);
				if (X[w] > Y) Y = X[w];
				w++
			}
		var d = P * o,
			U = Y == 0 ? 0 : 1 / Y;
		for (var w = 0; w < d; w++) X[w] = 1 - X[w] * U;
		return X
	};
	H.Pn.a9F = function (F, P, o) {
		var X = new Float32Array(P * o * 2),
			w = 0;
		for (var Y = 0; Y < o; Y++)
			for (var y = 0; y < P; y++) {
				var z = 0,
					s = 0;
				if (0 < y && y < P - 1 && 0 < Y && Y < o - 1) {
					z = 2 * F[w + 1] - 2 * F[w - 1];
					s = 2 * F[w + P] - 2 * F[w - P]
				}
				var t = Math.sqrt(z * z + s * s);
				if (t != 0) {
					X[2 * w] = z / t;
					X[2 * w + 1] = s / t
				} else {
					X[2 * w] = z;
					X[2 * w + 1] = s
				}
				w++
			}
		return X
	};
	H.Pn.alj = function (F, P, o, X) {
		var Y = H.Pn.ain(P, o, X),
			y = H.Pn.adG(P, o, X),
			z = H.Pn.a9F(P, o, X),
			s = 256,
			t = new Float32Array(s);
		for (var w = 0; w < s; w++) t[w] = Math.acos(-1 + 2 * w / (s - 1));
		var d = [-1, 0, 1, 1, 1, 0, -1, -1],
			U = [-1, -1, -1, 0, 1, 1, 1, 0],
			v = 1 / Math.sqrt(2),
			A = new Uint8Array(o * X * 8),
			Z = o * X;
		for (var D = 0; D < Z; D++) {
			var q = Y[D],
				R = z[2 * D + 1],
				J = -z[2 * D];
			for (var W = 0; W < 8; W++) {
				var p = 8 * D + W,
					n = F[p];
				if (n == -1) A[p] = -1;
				else {
					var b = (W & 1) == 0,
						Q = q * Y[n] >= 0 ? 0 : 1,
						_ = y[n] * (b ? 1 : v),
						L = 1,
						m = z[2 * n + 1],
						I = -z[2 * n];
					if (!(R == 0 && J == 0 || m == 0 && I == 0)) {
						var c = d[W],
							u = U[W];
						if (R * d[W] + J * U[W] < 0) {
							c = -c;
							u = -u
						}
						if (b) {
							c *= v;
							u *= v
						}
						var a = R * c + J * u,
							N = m * c + I * u,
							V = 2 / (3 * Math.PI) * (t[Math.floor((.5 + .5 * a) * (s - 1))] + t[Math.floor((.5 + .5 * N) * (s - 1))]);
						L = V
					}
					var M = Math.round(20 * (.43 * Q + .43 * L + .14 * _));
					A[p] = Math.max(1, Math.min(255, M))
				}
			}
		}
		// console.log(A);
		return A
	};
	H.Pn.akX = function (F, P) {
		var o = new Int32Array(F * P * 8),
			X = o,
			w = 0,
			Y = 0;
		X.fill(-1);
		for (var y = 0; y < P; y++)
			for (var z = 0; z < F; z++) {
				if (y > 0 && z > 0) X[Y + 0] = w - F - 1;
				if (y > 0) X[Y + 1] = w - F;
				if (y > 0 && z < F - 1) X[Y + 2] = w - F + 1;
				if (z < F - 1) X[Y + 3] = w + 1;
				if (y < P - 1 && z < F - 1) X[Y + 4] = w + F + 1;
				if (y < P - 1) X[Y + 5] = w + F;
				if (y < P - 1 && z > 0) X[Y + 6] = w + F - 1;
				if (z > 0) X[Y + 7] = w - 1;
				w++;
				Y += 8
			}
		return o
	};
	H.Ai = {};
	H.Ai.afg = function (F, P) {
		var o = F.slice(0);
		for (var w = 0; w < F.length; w++) o[w] *= P;
		return o
	};
	H.Ai.h5 = function (F) {
		var P = F.slice(0),
			o = 0;
		for (var w = 0; w < F.length; w++) o += F[w];
		for (var w = 0; w < F.length; w++) P[w] /= o;
		return P
	};
	H.Ai.af9 = function (F, P, o, X, Y) {
		var y = Y.length,
			z = y >>> 1,
			s = z,
			t = o - z;
		for (var d = 0; d < X; d++)
			for (var U = s; U < t; U++) {
				var v = 0,
					A = d * o + U;
				for (var w = 0; w < y; w++) v += Y[w] * F[A - z + w];
				P[A] = v
			}
	};
	H.Ai.a2l = function (F, P, o, X, Y) {
		var y = Y.length,
			z = y >>> 1,
			s = z,
			t = X - z;
		for (var d = s; d < t; d++)
			for (var U = 0; U < o; U++) {
				var v = 0,
					A = d * o + U;
				for (var w = 0; w < y; w++) v += Y[w] * F[A + (-z + w) * o];
				P[A] = v
			}
	};
	H.Ai.aet = function (F, P, o, X, Y) {
		var y = [-o - 1, -o, -o + 1, -1, 0, 1, o - 1, o, o + 1],
			z = X - 1,
			s = o - 1;
		for (var w = 1; w < z; w++)
			for (var t = 1; t < s; t++) {
				var d = w * o + t,
					U = H.Ai.q7(F, d, o, Y);
				P[d] = ~~(U + .5)
			}
	};
	H.Ai.q7 = function (F, P, o, X) {
		return F[P - o - 1] * X[0] + F[P - o] * X[1] + F[P - o + 1] * X[2] + F[P - 1] * X[3] + F[P] * X[4] + F[P + 1] * X[5] + F[P + o - 1] * X[6] + F[P + o] * X[7] + F[P + o + 1] * X[8]
	};
	H.Ai.or = function (F, P, o, X, Y, y, z) {
		if (z == null) z = !1;
		var s = Math.floor(Math.sqrt(Y.length)),
			t = s - 1 >>> 1,
			d = new Uint32Array(F.buffer),
			P = new Uint8ClampedArray(P.buffer);
		for (var w = 0; w < X; w++)
			for (var U = 0; U < o; U++) {
				var v = 0,
					A = 0,
					Z = 0,
					D = 0;
				for (var q = 0; q < s; q++)
					for (var R = 0; R < s; R++) {
						var J = Y[q * s + R];
						if (J == 0) continue;
						var W = Math.min(o - 1, Math.max(0, U - t + R)),
							p = Math.min(X - 1, Math.max(0, w - t + q)),
							n = d[p * o + W];
						v += (n & 255) * J;
						A += (n >>> 8 & 255) * J;
						Z += (n >>> 16 & 255) * J;
						D += (n >>> 24 & 255) * J
					}
				if (z) {
					if (v < 0) v = -v;
					if (A < 0) A = -A;
					if (Z < 0) Z = -Z;
					if (D < 0) D = -D
				}
				var b = w * o + U << 2;
				P[b] = ~~(.5 + v);
				P[b + 1] = ~~(.5 + A);
				P[b + 2] = ~~(.5 + Z);
				P[b + 3] = 255 - y & P[b + 3] | y & ~~(.5 + D)
			}
	};
	H.Ai.a9E = function () {
		function F(z, s, t, d, U, v, A) {
			if (U == 0) {
				s.set(z);
				return
			}
			var Z = H.R(t * d),
				D = H.R(t * d);
			if (H.Ms(z)) {
				var q = [H.Ai.sH, H.Ai.Rl],
					R = q.indexOf(v),
					J = R != -1 ? q[1 - R] : v;
				P(z, s, t, d, U, v, A);
				H.E4(z, Z, 3);
				H.Ai.wE(Z, D, t, d, U, J, A);
				H.Oy(D, s, 3)
			} else {
				for (var w = 0; w < 3; w++) {
					H.E4(z, Z, w);
					H.Ai.wE(Z, D, t, d, U, v, A);
					H.Oy(D, s, w)
				}
			}
		}

		function P(z, s, t, d, U, v, A) {
			var Z = 0,
				D = new ArrayBuffer(512 * 4 * 3),
				q = [new Int32Array(D, 0), new Int32Array(D, 2048), new Int32Array(D, 2 * 2048)],
				R = 1 + 2 * Math.round(Math.sqrt(U)),
				J = R >>> 1,
				W = new Array(R),
				p = new Array(R);
			for (var w = 0; w < R; w++) {
				var D = new ArrayBuffer(512 * 4 * 3);
				W[w] = [new Int32Array(D, 0), new Int32Array(D, 2048), new Int32Array(D, 2 * 2048)];
				p[w] = W[w][0]
			}
			var n = v[0],
				b = v[1],
				Q = q[0];
			for (var _ = 0; _ < t; _++)
				if (_ < U || _ > t - U - R - 1) {
					Q.fill(0);
					var L = Math.max(_ - U, 0),
						m = Math.min(t, _ + U + 1),
						I = m - L;
					for (var c = 0; c < U; c++) X(Q, z, c * t + L, c * t + m, 1);
					for (var c = 0; c < d; c++) {
						var u = c - U - 1,
							a = c + U;
						if (a < d) X(Q, z, a * t + L, a * t + m, 1);
						if (u >= 0) X(Q, z, u * t + L, u * t + m, -1);
						var N = c * t + _ << 2;
						Z = Q[300];
						if (Z != 0)
							for (var w = 0; w < 3; w++) s[N + w] = n(q[w], z[N + w], Z, A)
					}
				} else {
					for (var w = 0; w < R; w++) p[w].fill(0);
					var L = _ - U + J,
						m = _ + U + 1 + J;
					for (var c = 0; c < U; c++) o(p, z, c * t + L, c * t + m, 1, J);
					for (var c = 0; c < d; c++) {
						var u = c - U - 1,
							a = c + U;
						if (u >= 0) o(p, z, u * t + L, u * t + m, -1, J);
						if (a < d) o(p, z, a * t + L, a * t + m, 1, J);
						var V = W[J];
						Z = V[0][300];
						for (var w = 0; w < J; w++) {
							var M = J - 1 - w,
								O = J + 1 + w,
								K = W[M],
								j = W[O],
								$ = Z + K[0][300],
								x = Z + j[0][300],
								g = c * t + _ + M << 2,
								T = c * t + _ + O << 2;
							if ($ != 0)
								for (var E = 0; E < 3; E++) s[g + E] = b(V[E], K[E], z[g + E], $, A);
							if (x != 0)
								for (var E = 0; E < 3; E++) s[T + E] = b(V[E], j[E], z[T + E], x, A)
						}
						var N = c * t + _ + J << 2;
						if (Z != 0)
							for (var E = 0; E < 3; E++) s[N + E] = n(V[E], z[N + E], Z, A)
					}
					_ += R - 1
				}
		}

		function o(z, s, t, d, U, v) {
			var A = Y,
				Z = t << 2,
				D = d << 2;
			A(z[v - 1], s, t - 1 << 2, U);
			A(z[v - 1], s, d - 1 << 2, -U);
			A(z[v + 1], s, d << 2, U);
			A(z[v + 1], s, t << 2, -U);
			for (var w = 1; w < v; w++) {
				var q = z[v - w - 1],
					R = z[v + w + 1];
				for (var J = 0; J <= w; J++) {
					var W = J << 2;
					A(q, s, t - 1 - J << 2, U);
					A(q, s, d - 1 - J << 2, -U);
					A(R, s, d + J << 2, U);
					A(R, s, t + J << 2, -U)
				}
			}
			X(z[v], s, t, d, U)
		}

		function X(z, s, w, t, d) {
			var U = w << 2,
				v = t << 2;
			while (U < v) {
				Y(z, s, U, d);
				U += 4
			}
		}

		function Y(z, s, t, d) {
			var U = d * s[t + 3];
			z[300] += U;
			y(z, s[t], 0, U);
			y(z, s[t + 1], 512, U);
			y(z, s[t + 2], 1024, U)
		}

		function y(z, s, t, d) {
			z[t | s] += d;
			z[t | 256 | s >>> 4] += d
		}
		return F
	}();
	H.Ai.wE = function () {
		function F(v, A, Z, D, q, R, J) {
			if (q == 0) {
				A.set(v);
				return
			}
			if (q <= 80) P(v, A, Z, D, q, R, J);
			else y(v, A, Z, D, q, R, J)
		}

		function P(v, A, Z, D, q, R, J) {
			var W = 0,
				p = new Int32Array(512),
				n = 1 + 2 * Math.round(Math.sqrt(q)),
				b = n >>> 1,
				Q = new Array(n);
			for (var w = 0; w < n; w++) Q[w] = new Int32Array(512);
			var _ = R[0],
				L = R[1];
			for (var m = 0; m < Z; m++)
				if (m < q || m > Z - q - n - 1) {
					p.fill(0);
					W = 0;
					var I = Math.max(m - q, 0),
						c = Math.min(Z, m + q + 1),
						u = c - I;
					for (var a = 0; a < q; a++) {
						W += u;
						X(p, v, a * Z + I, a * Z + c, 1)
					}
					for (var a = 0; a < D; a++) {
						var N = a - q - 1,
							V = a + q;
						if (N >= 0) {
							W -= u;
							X(p, v, N * Z + I, N * Z + c, -1)
						}
						if (V < D) {
							W += u;
							X(p, v, V * Z + I, V * Z + c, 1)
						}
						var M = _(p, v[a * Z + m], W, J);
						A[a * Z + m] = M
					}
				} else {
					for (var w = 0; w < n; w++) Q[w].fill(0);
					W = 0;
					var I = m - q + b,
						c = m + q + 1 + b,
						u = c - I;
					for (var a = 0; a < q; a++) {
						W += u;
						o(Q, v, a * Z + I, a * Z + c, 1, b)
					}
					for (var a = 0; a < D; a++) {
						var N = a - q - 1,
							V = a + q;
						if (N >= 0) {
							W -= u;
							o(Q, v, N * Z + I, N * Z + c, -1, b)
						}
						if (V < D) {
							W += u;
							o(Q, v, V * Z + I, V * Z + c, 1, b)
						}
						for (var w = 0; w < b; w++) {
							var O = b - 1 - w,
								K = b + 1 + w;
							A[a * Z + m + O] = L(Q[b], Q[O], v[a * Z + m + O], W, J);
							A[a * Z + m + K] = L(Q[b], Q[K], v[a * Z + m + K], W, J)
						}
						A[a * Z + m + b] = _(Q[b], v[a * Z + m + b], W, J)
					}
					m += n - 1
				}
		}

		function o(v, A, Z, D, q, R) {
			var J = Y;
			J(v[R - 1], A[Z - 1], 0, q);
			J(v[R - 1], A[D - 1], 0, -q);
			J(v[R + 1], A[D], 0, q);
			J(v[R + 1], A[Z], 0, -q);
			for (var w = 1; w < R; w++) {
				var W = v[R - w - 1],
					p = v[R + w + 1];
				for (var n = 0; n <= w; n++) {
					J(W, A[Z - 1 - n], 0, q);
					J(W, A[D - 1 - n], 0, -q);
					J(p, A[D + n], 0, q);
					J(p, A[Z + n], 0, -q)
				}
			}
			X(v[R], A, Z, D, q)
		}

		function X(v, A, w, Z, D) {
			while (w < Z) Y(v, A[w++], 0, D)
		}

		function Y(v, A, Z, D) {
			v[Z | A] += D;
			v[Z | 256 | A >>> 4] += D
		}

		function y(v, A, Z, D, q, R, J) {
			var W = 0,
				p = new Int32Array(512),
				n = new Int32Array(1 * Z),
				b = new Int32Array(512 * Z),
				Q = Math.min(q, Z),
				_ = Math.min(q, D),
				L = R[0];
			for (var m = 0; m < _; m++) z(b, n, v, Z, m, 1);
			for (var m = 0; m < D; m++) {
				if (m + q < D) z(b, n, v, Z, m + q, 1);
				if (m - q - 1 >= 0) z(b, n, v, Z, m - q - 1, -1);
				p.fill(0);
				W = 0;
				for (var I = 0; I < Q; I++) {
					W += n[I];
					s(p, b, I)
				}
				for (var I = 0; I < Z; I++) {
					var c = I - q - 1,
						u = I + q;
					if (c >= 0 && n[c] != 0) {
						W -= n[c];
						t(p, b, c)
					}
					if (u < Z && n[u] != 0) {
						W += n[u];
						s(p, b, u)
					}
					var a = W == 0 ? 0 : L(p, v[m * Z + I], W, J);
					A[m * Z + I] = a
				}
			}
		}

		function z(v, A, Z, D, q, R) {
			var w = q * D;
			for (var J = 0; J < D; J++) {
				Y(v, Z[w + J], J << 9, R);
				A[J] += R
			}
		}

		function s(v, A, Z) {
			for (var w = 0; w < 16; w++) {
				var D = A[Z << 9 | 256 | w];
				if (D == 0) continue;
				v[256 | w] += D;
				var q = w << 4,
					R = Z << 9 | q;
				d(v, A, q, R);
				d(v, A, q + 4, R + 4);
				d(v, A, q + 8, R + 8);
				d(v, A, q + 12, R + 12)
			}
		}

		function t(v, A, Z) {
			for (var w = 0; w < 16; w++) {
				var D = A[Z << 9 | 256 | w];
				if (D == 0) continue;
				v[256 | w] -= D;
				var q = w << 4,
					R = Z << 9 | q;
				U(v, A, q, R);
				U(v, A, q + 4, R + 4);
				U(v, A, q + 8, R + 8);
				U(v, A, q + 12, R + 12)
			}
		}

		function d(v, A, Z, D) {
			v[Z] += A[D];
			v[Z + 1] += A[D + 1];
			v[Z + 2] += A[D + 2];
			v[Z + 3] += A[D + 3]
		}

		function U(v, A, Z, D) {
			v[Z] -= A[D];
			v[Z + 1] -= A[D + 1];
			v[Z + 2] -= A[D + 2];
			v[Z + 3] -= A[D + 3]
		}
		return F
	}();
	H.Ai.Rl = [function (F, P, o, X) {
		var w = 15;
		while (F[256 | w] == 0 && w > 0) w--;
		w = (w << 4) + 15;
		while (F[w] == 0 && w > 0) w--;
		return w
	}, function (F, P, o, X, Y) {
		var w = 15;
		while (F[256 | w] + P[256 | w] == 0 && w > 0) w--;
		w = (w << 4) + 15;
		while (F[w] + P[w] == 0 && w > 0) w--;
		return w
	}];
	H.Ai.sH = [function (F, P, o, X) {
		var w = 0;
		while (F[256 | w] == 0 && w < 15) w++;
		w = w << 4;
		while (F[w] == 0 && w < 255) w++;
		return w
	}, function (F, P, o, X, Y) {
		var w = 0;
		while (F[256 | w] + P[256 | w] == 0 && w < 15) w++;
		w = w << 4;
		while (F[w] + P[w] == 0 && w < 255) w++;
		return w
	}];
	H.Ai.Rx = .5;
	H.Ai.lI = [function (F, P, o, X) {
		var Y = ~~(.5 + H.Ai.Rx * o),
			y = 0,
			w = 256;
		while (y + F[w] <= Y) y += F[w++];
		w = w - 256 << 4;
		while (y <= Y) y += F[w++];
		return w - 1
	}, function (F, P, o, X, Y) {
		var y = ~~(.5 + H.Ai.Rx * X),
			z = 0,
			w = 256;
		while (z + F[w] + P[w] <= y) {
			z += F[w] + P[w];
			w++
		}
		w = w - 256 << 4;
		while (z <= y) {
			z += F[w] + P[w];
			w++
		}
		return w - 1
	}];
	H.Ai.Nz = [function (F, P, o, X) {
		var Y = X[0],
			y = 0,
			z = 0,
			w = Math.max(0, P - Y),
			s = Math.min(256, P + Y + 1);
		while (w < s) {
			var t = F[w];
			y += w * t;
			z += t;
			w++
		}
		return z == 0 ? 0 : y / z
	}, function (F, P, o, X, Y) {
		var y = Y[0],
			z = 0,
			s = 0,
			w = Math.max(0, o - y),
			t = Math.min(256, o + y + 1);
		while (w < t) {
			var d = F[w] + P[w];
			z += w * d;
			s += d;
			w++
		}
		return s == 0 ? 0 : z / s
	}];
	H.P = {};
	H.P.br = function (F) {
		var P = B.X.AC(F.Trnf),
			o = F.Sz.v,
			X = H.P.bg(P, new ev(0, 0, o.Wdth.v, o.Hght.v));
		return H.P.z5(X)
	};
	H.P.bg = function (F, P) {
		var o = F[0],
			X = F[1],
			Y = F[2],
			y = F[3],
			z = F[6],
			s = F[7],
			t = F[4],
			d = F[5],
			U = 0,
			v = 0,
			A = 1,
			Z = 0,
			D = 0,
			q = 1,
			R = 1,
			J = 1;
		if (P) {
			U = P.x;
			v = P.y;
			A = P.x + P.Z;
			Z = P.y;
			D = P.x;
			q = P.y + P.h;
			R = P.x + P.Z;
			J = P.y + P.h
		}
		return H.P.dP(F, [U, v, A, Z, R, J, D, q])
	};
	H.P.dP = function (F, P) {
		var o = F[0],
			X = F[1],
			Y = F[2],
			y = F[3],
			z = F[6],
			s = F[7],
			t = F[4],
			d = F[5],
			U = P[0],
			v = P[1],
			A = P[2],
			Z = P[3],
			D = P[6],
			q = P[7],
			R = P[4],
			J = P[5],
			W = [
				[U, v, 1, 0, 0, 0, -U * o, -v * o, o],
				[0, 0, 0, U, v, 1, -U * X, -v * X, X],
				[A, Z, 1, 0, 0, 0, -A * Y, -Z * Y, Y],
				[0, 0, 0, A, Z, 1, -A * y, -Z * y, y],
				[D, q, 1, 0, 0, 0, -D * z, -q * z, z],
				[0, 0, 0, D, q, 1, -D * s, -q * s, s],
				[R, J, 1, 0, 0, 0, -R * t, -J * t, t],
				[0, 0, 0, R, J, 1, -R * d, -J * d, d]
			],
			p = [0, 0, 0, 0, 0, 0, 0, 0],
			n = H.Aw.mm(W, p);
		if (n != 0) p = [0, 0, 0, 0, 0, 0, 0, 0];
		return p
	};
	H.P.LS = function (F) {
		return Math.abs(F[6]) < 1e-10 && Math.abs(F[7]) < 1e-10
	};
	H.P.z5 = function (F) {
		return new cu(F[0], F[3], F[1], F[4], F[2], F[5])
	};
	H.P.Jb = function (F) {
		return [F.m, F.p$, F.PV, F.i, F.xA, F.ye, 0, 0]
	};
	H.P.apply = function (F, P) {
		var o = new Float64Array(2);
		for (var X = 0; X < P.length; X += 2) {
			var Y = P[X],
				y = P[X + 1];
			H.P.MC(Y, y, F, o);
			P[X] = o[0];
			P[X + 1] = o[1]
		}
	};
	H.P.MC = function (F, P, o, X) {
		var Y = 1 / (o[6] * F + o[7] * P + 1);
		X[0] = (o[0] * F + o[1] * P + o[2]) * Y;
		X[1] = (o[3] * F + o[4] * P + o[5]) * Y
	};
	H.P.GL = function (F, P) {
		var o = new Float64Array(2);
		H.P.MC(P.x, P.y, F, o);
		return new aH(o[0], o[1])
	};
	H.P.yT = function (F, P, o, X) {
		F = new Uint32Array(F.buffer);
		P = new Uint32Array(P.buffer);
		for (var Y = 0; Y < X; Y++) {
			for (var y = 0; y < o; y++) {
				P[y * X + Y] = F[Y * o + y]
			}
		}
	};
	H.P.a3X = function (F, P, o, X) {
		F = new Uint32Array(F.buffer);
		P = new Uint32Array(P.buffer);
		for (var Y = 0; Y < X; Y++) {
			for (var y = 0; y < o; y++) {
				P[Y * o + y] = F[Y * o + o - 1 - y]
			}
		}
	};
	H.P.VP = function (F) {
		return Math.abs(F[6]) < 1e-9 && Math.abs(F[7]) < 1e-9
	};
	H.P.Cx = function (F) {
		return Math.abs(F[0]) < 1e-9 && Math.abs(F[4]) < 1e-9 || Math.abs(F[1]) < 1e-9 && Math.abs(F[3]) < 1e-9
	};
	H.P.drawImage = function (F, P, o, X, Y, y, z, s, t) {
		if (z == null) z = !1;
		if (s == null) s = !1;
		var d = H.P.nJ(F),
			U = !0,
			v = 0,
			A = 1 / Math.sqrt(Math.abs(F[0] / o * F[4] / X - F[1] / o * F[3] / X));
		for (var w = 0; w < 8; w++) {
			var Z = Math.round(F[w]);
			if (w != 2 && w != 5) v += Math.abs(Z);
			if (Math.abs(Z - F[w]) > 1e-9) U = !1
		}
		var D = H.P.VP(F),
			q = H.P.Cx(F) && D,
			R = q ? 1 : 0;
		if (z || U && v == o + X && D) {
			H.P.amr(d, P, o, X, Y, y, s, D, t);
			return
		}
		var J = y.Z,
			W = y.h,
			p = new Float64Array(2);
		Y = new Uint32Array(Y.buffer);
		P = new Uint32Array(P.buffer);
		for (var n = 0; n < W; n++)
			for (var b = 0; b < J; b++) {
				var Q = n * J + b,
					_, L, m, I, a9 = 0,
					ez = 0,
					bN = 0,
					cg = 0;
				Y[Q] = 0;
				var c = b + y.x + .5,
					u = n + y.y + .5;
				_ = c;
				L = u;
				m = d;
				I = 1 / (m[6] * _ + m[7] * L + 1);
				var a = (m[0] * _ + m[1] * L + m[2]) * I,
					N = (m[3] * _ + m[4] * L + m[5]) * I,
					V = a * o,
					M = N * X,
					O = V < -1 || V > o + 1 || M < -1 || M > X + 1;
				if (s) {
					V = Math.max(.001, Math.min(o - 1, V));
					M = Math.max(.001, Math.min(X - 1, M))
				} else if (O) continue;
				var K = A;
				if (!D) {
					var j = 0,
						$ = 0;
					m = F;
					_ = a + 1 / o;
					L = N;
					I = 1 / (m[6] * _ + m[7] * L + 1);
					j = (m[0] * _ + m[1] * L + m[2]) * I - c;
					$ = (m[3] * _ + m[4] * L + m[5]) * I - u;
					var x = j * j + $ * $;
					_ = a;
					L = N + 1 / X;
					I = 1 / (m[6] * _ + m[7] * L + 1);
					j = (m[0] * _ + m[1] * L + m[2]) * I - c;
					$ = (m[3] * _ + m[4] * L + m[5]) * I - u;
					var g = j * j + $ * $;
					K = 1 / Math.sqrt(Math.max(x, g))
				}
				if (K < 1.1) {
					H.P.nK(V, M, P, o, X, Y, Q, R);
					continue
				}
				var T = Math.round(K * 2.3);
				if (!s && (V < .6 || V > o - .6 || M < .6 || M > X - .6)) {
					T = Math.max(T, 5)
				}
				if (s && O) T = 1;
				var E = 1 / T,
					d8 = y.x + b,
					C = y.y + n;
				m = d;
				for (var w = 0; w < T; w++)
					for (var S = 0; S < T; S++) {
						_ = d8 + (w + .5) * E;
						L = C + (S + .5) * E;
						I = 1 / (m[6] * _ + m[7] * L + 1);
						var V = (m[0] * _ + m[1] * L + m[2]) * I,
							M = (m[3] * _ + m[4] * L + m[5]) * I;
						if (s) {
							V = Math.max(.001, Math.min(.999, V));
							M = Math.max(.001, Math.min(.999, M))
						} else if (V < 0 || V >= 1 || M < 0 || M >= 1) continue;
						V = Math.floor(V * o);
						M = Math.floor(M * X);
						var g7 = M * o + V,
							g_ = P[g7],
							fw = g_ >>> 24;
						a9 += (g_ & 255) * fw;
						ez += (g_ >>> 8 & 255) * fw;
						bN += (g_ >>> 16 & 255) * fw;
						cg += fw
					}
				if (cg != 0) {
					var dT = 1 / cg;
					a9 = ~~(a9 * dT + .5);
					ez = ~~(ez * dT + .5);
					bN = ~~(bN * dT + .5);
					cg = ~~(cg * E * E + .5);
					Y[Q] = cg << 24 | bN << 16 | ez << 8 | a9
				}
			}
	};
	H.P.amr = function (F, P, o, X, Y, y, z, s, t) {
		if (s && !z && y.M() > 4e6 && t) {
			H.P.aii(F, P, o, X, Y, y, z, s, t);
			return
		}
		var d = y.x + y.Z,
			U = y.y + y.h,
			v = 0,
			A = new Uint32Array(Y.buffer),
			Z = new Uint32Array(P.buffer),
			D = F[0] * o,
			q = F[1] * o,
			R = F[2] * o,
			J = F[3] * X,
			W = F[4] * X,
			p = F[5] * X,
			n = F[6],
			b = F[7];
		if (s && !z)
			for (var Q = y.y + .5; Q < U; Q++)
				for (var _ = y.x + .5; _ < d; _++) {
					var L = D * _ + q * Q + R,
						m = J * _ + W * Q + p;
					if (0 < L && L < o && 0 < m && m < X) {
						var I = ~~m * o + ~~L;
						A[v] = Z[I]
					} else A[v] = 0;
					v++
				} else
					for (var Q = y.y + .5; Q < U; Q++)
						for (var _ = y.x + .5; _ < d; _++) {
							var c = 1 / (n * _ + b * Q + 1),
								L = (D * _ + q * Q + R) * c,
								m = (J * _ + W * Q + p) * c;
							if (z) {
								L = Math.max(.001, Math.min(o - 1, L));
								m = Math.max(.001, Math.min(X - 1, m))
							}
							if (0 < L && L < o && 0 < m && m < X) {
								var I = Math.floor(m) * o + Math.floor(L);
								A[v] = Z[I]
							} else A[v] = 0;
							v++
						}
	};
	H.P.aii = function (F, P, o, X, Y, y, z, s, t) {
		var d = new Uint32Array(Y.buffer),
			U = new Uint32Array(P.buffer),
			b = 0;
		if (t && (y.Z & 3) != 0) throw "e";
		var v = F[0] * o,
			A = F[1] * o,
			Z = F[2] * o,
			D = F[3] * X,
			q = F[4] * X,
			R = F[5] * X,
			J = F[6],
			W = F[7],
			p = y.Z,
			n = y.h,
			Q = y.x + .5,
			_ = y.y + .5,
			L = (p >>> 2 << 2) - 1e-9,
			m = -.1 + (n >>> 1 << 1) - 1e-9,
			I = ~~o,
			c = v == 0 ? 0 : 1 / v,
			u = D == 0 ? 0 : 1 / D;
		for (var a = 0; a < n; a++) {
			var N = Q * v + A * (a + _) + Z,
				V = Q * D + q * (a + _) + R,
				M = 0,
				O = p;
			if (v == 0) {} else if (c > 0) {
				M = Math.max(M, -N * c);
				O = Math.min(O, (o - N) * c)
			} else {
				O = Math.min(O, -N * c);
				M = Math.max(M, (o - N) * c)
			}
			if (D == 0) {} else if (u > 0) {
				M = Math.max(M, -V * u);
				O = Math.min(O, (X - V) * u)
			} else {
				O = Math.min(O, -V * u);
				M = Math.max(M, (X - V) * u)
			}
			if (O < 0) O = 0;
			if (M > O) M = O;
			M = Math.ceil(M);
			O = ~~O;
			b = ~~(a * p);
			for (var K = 0; K < M; K++) d[b++] = 0;
			for (var K = M; K < O; K += 4) {
				var x = v * K + N,
					g = D * K + V,
					T = ~~g * I + ~~x;
				d[b++] = d[b++] = d[b++] = d[b++] = U[T]
			}
			for (var K = O; K < p; K++) d[b++] = 0
		}
	};
	H.P.nJ = function (F) {
		var P = F[4] - F[5] * F[7],
			o = F[2] * F[7] - F[1],
			X = F[1] * F[5] - F[2] * F[4],
			Y = F[5] * F[6] - F[3],
			y = F[0] - F[2] * F[6],
			z = F[3] * F[2] - F[0] * F[5],
			s = F[3] * F[7] - F[4] * F[6],
			t = F[1] * F[6] - F[0] * F[7],
			d = 1 / (F[0] * F[4] - F[1] * F[3]);
		return [P * d, o * d, X * d, Y * d, y * d, z * d, s * d, t * d]
	};
	H.P.$T = function (F, P) {
		var o = F[0],
			X = F[1],
			Y = F[2],
			y = F[3],
			z = F[4],
			s = F[5],
			t = F[6],
			d = F[7],
			U = P[0],
			v = P[1],
			A = P[2],
			Z = P[3],
			D = P[4],
			q = P[5],
			R = P[6],
			J = P[7],
			W = [o * U + X * Z + Y * R, o * v + X * D + Y * J, o * A + X * q + Y, y * U + z * Z + s * R, y * v + z * D + s * J, y * A + z * q + s, t * U + d * Z + R, t * v + d * D + J],
			p = 1 / (t * A + d * q + 1);
		for (var w = 0; w < 8; w++) W[w] *= p;
		return W
	};
	H.P.nK = function (F, P, o, X, Y, y, z, s) {
		var t = F,
			d = P,
			A = 0,
			Z = 0,
			D = 0,
			q = 0;
		F -= .499999;
		P -= .499999;
		var U = Math.floor(F),
			v = Math.floor(P);
		if (s == 0) {
			var w = v * X + U,
				R = U >= 0 && U < X,
				J = U + 1 >= 0 && U + 1 < X,
				W = v >= 0 && v < Y,
				p = v + 1 >= 0 && v + 1 < Y;
			if (R && W) A = o[w];
			if (J && W) Z = o[w + 1];
			if (R && p) D = o[w + X];
			if (J && p) q = o[w + X + 1]
		} else if (s == 1) {
			var n = U < 0 ? 0 : U > X - 1 ? X - 1 : U,
				b = U < -1 ? 0 : U > X - 2 ? X - 1 : U + 1,
				Q = v < 0 ? 0 : v > Y - 1 ? Y - 1 : v,
				_ = v < -1 ? 0 : v > Y - 2 ? Y - 1 : v + 1;
			A = o[Q * X + n];
			Z = o[Q * X + b];
			D = o[_ * X + n];
			q = o[_ * X + b]
		} else {
			var n = (U + 50 * X) % X,
				b = (U + 50 * X) % X,
				Q = (v + 50 * Y) % Y,
				_ = (v + 50 * Y) % Y;
			A = o[Q * X + n];
			Z = o[Q * X + b];
			D = o[_ * X + n];
			q = o[_ * X + b]
		}
		var L = F - U,
			m = P - v,
			I = (1 - m) * (1 - L) * (A >>> 24),
			c = (1 - m) * L * (Z >>> 24),
			u = m * (1 - L) * (D >>> 24),
			a = m * L * (q >>> 24),
			N = I + c + u + a,
			V = I * (A & 255) + c * (Z & 255) + u * (D & 255) + a * (q & 255),
			M = I * (A >>> 8 & 255) + c * (Z >>> 8 & 255) + u * (D >>> 8 & 255) + a * (q >>> 8 & 255),
			O = I * (A >>> 16 & 255) + c * (Z >>> 16 & 255) + u * (D >>> 16 & 255) + a * (q >>> 16 & 255);
		if (N == 0) y[z] = 0;
		else {
			var K = 1 / N;
			V = ~~(V * K + .5);
			M = ~~(M * K + .5);
			O = ~~(O * K + .5);
			N = ~~(N + .5);
			y[z] = N << 24 | O << 16 | M << 8 | V
		}
	};
	H.P.eU = function (F, P, o, X, Y, y) {
		var z = F - .499999,
			s = P - .499999,
			t = ~~z,
			d = ~~s,
			U = z - t,
			v = s - d,
			A = (1 - v) * (1 - U),
			Z = (1 - v) * U,
			D = v * (1 - U),
			q = v * U,
			R = d * X + t << 2,
			J = (d + 1) * X + t << 2,
			W = A * o[R] + Z * o[R + 4] + D * o[J] + q * o[J + 4],
			p = A * o[R + 1] + Z * o[R + 5] + D * o[J + 1] + q * o[J + 5],
			n = A * o[R + 2] + Z * o[R + 6] + D * o[J + 2] + q * o[J + 6],
			b = A * o[R + 3] + Z * o[R + 7] + D * o[J + 3] + q * o[J + 7];
		y[0] = W;
		y[1] = p;
		y[2] = n;
		y[3] = b
	};
	H.P.x$ = function (F, P, o, X, Y, y, z, s, t, d, U, v) {
		var A = new Uint32Array(F.buffer),
			Z = new Uint32Array(X.buffer),
			D = (1 + 2 * d) / Y,
			q = [],
			R = [];
		for (var J = 0; J < Y; J++) {
			var W = -.25 + d - J * D;
			q.push(Math.cos(2 * Math.PI * W) * v / U);
			q.push(Math.sin(2 * Math.PI * W) / U)
		}
		z *= P;
		s *= o;
		for (var p = 0; p < y; p++) {
			var n = Math.pow(p / y, t) * y;
			for (var J = 0; J < Y; J++) {
				var b = z + q[J << 1] * n,
					Q = s + q[(J << 1) + 1] * n,
					_ = ~~(.5 + (b < 0 ? 0 : b > P - 1 ? P - 1 : b)),
					L = ~~(.5 + (Q < 0 ? 0 : Q > o - 1 ? o - 1 : Q));
				Z[p * Y + J] = A[L * P + _]
			}
		}
	};
	H.P.A9 = function (F, P, o, X, Y, y, z, s, t, d, U, v) {
		var A = new Uint32Array(F.buffer),
			Z = new Uint32Array(X.buffer),
			D = 1 / v,
			q = [],
			R = o * 4,
			J = 1 / R;
		for (var W = 0; W < R; W++) q.push(Math.pow(W * J, 1 / t) * o * U);
		z *= Y;
		s *= y;
		for (var W = 0; W < y; W++)
			for (var p = 0; p < Y; p++) {
				var n = D * (p - z),
					b = W - s,
					Q = 1.75 - Math.atan2(b, n) * (1 / (2 * Math.PI));
				Q = Q - ~~Q;
				Q = (Q + d) * (1 / (1 + 2 * d));
				var _ = Math.sqrt(n * n + b * b);
				_ = q[~~(_ * 4)];
				H.P.nK(Q * P + .5, _ + .5, A, P, o, Z, W * Y + p, 1)
			}
	};
	H.j = {
		bZ: function (F, P) {
			var o = ~~(.499 + F * P);
			return o < 0 ? 0 : o > P ? P : o
		},
		akR: function (F, P, o, X, Y, y, z, s) {
			var t = o[0],
				d = o[1],
				U = o[2],
				v = o[3],
				A = X.Z,
				Z = X.h,
				D = new Float64Array(A * 4 + 8),
				q = new Float64Array(A * 4 + 8);
			for (var R = 0, w = 0; R < Z; R++) {
				var J = D;
				D = q;
				q = J;
				q.fill(0);
				for (var W = 0; W < A; W++, w++) {
					var p = W + Y,
						n = R + y,
						b = t * p + d * n,
						Q = U * p + v * n,
						_ = 0,
						I = 0;
					if (s == 0) _ = b + .5;
					else if (s == 1) _ = 2 * Math.sqrt(b * b + Q * Q);
					else if (s == 2) _ = (Math.PI + Math.atan2(-Q, -b)) / (2 * Math.PI);
					else if (s == 3) _ = Math.abs(b * 2);
					else if (s == 4) _ = 2 * (Math.abs(b) + Math.abs(Q));
					var L = H.j.bZ(_, z) * 4,
						m = W * 4;
					for (var c = 0; c < 4; c++) {
						var u = Math.max(0, Math.min(254.999, P[L + c] + D[m + 4 + c])),
							a = Math.floor(u);
						if (Math.random() < u - a) a++;
						var N = u - a;
						D[m + 8 + c] = N * (7 / 16);
						q[m + 0 + c] = N * (3 / 16);
						q[m + 4 + c] = N * (5 / 16);
						q[m + 8 + c] = N * (1 / 16);
						I |= a << c * 8
					}
					F[w] = I
				}
			}
		},
		G: [function (F, P, o, X, Y, y, z) {
			var s = o[0],
				t = o[1],
				d = o[2],
				U = o[3],
				v = X.Z,
				A = X.h;
			for (var Z = 0, w = 0; Z < A; Z++)
				for (var D = 0; D < v; D++, w++) {
					var q = D + Y,
						R = Z + y,
						J = s * q + t * R,
						W = d * q + U * R,
						p = J + .5;
					F[w] = P[H.j.bZ(p, z)]
				}
		}, function (F, P, o, X, Y, y, z) {
			var s = o[0],
				t = o[1],
				d = o[2],
				U = o[3],
				v = X.Z,
				A = X.h;
			for (var Z = 0, w = 0; Z < A; Z++)
				for (var D = 0; D < v; D++, w++) {
					var q = D + Y,
						R = Z + y,
						J = s * q + t * R,
						W = d * q + U * R,
						p = 2 * Math.sqrt(J * J + W * W);
					F[w] = P[H.j.bZ(p, z)]
				}
		}, function (F, P, o, X, Y, y, z) {
			var s = o[0],
				t = o[1],
				d = o[2],
				U = o[3],
				v = X.Z,
				A = X.h;
			for (var Z = 0, w = 0; Z < A; Z++)
				for (var D = 0; D < v; D++, w++) {
					var q = D + Y,
						R = Z + y,
						J = s * q + t * R,
						W = d * q + U * R,
						p = (Math.PI + Math.atan2(-W, -J)) / (2 * Math.PI);
					F[w] = P[H.j.bZ(p, z)]
				}
		}, function (F, P, o, X, Y, y, z) {
			var s = o[0],
				t = o[1],
				d = o[2],
				U = o[3],
				v = X.Z,
				A = X.h;
			for (var Z = 0, w = 0; Z < A; Z++)
				for (var D = 0; D < v; D++, w++) {
					var q = D + Y,
						R = Z + y,
						J = s * q + t * R,
						W = d * q + U * R,
						p = Math.abs(J * 2);
					F[w] = P[H.j.bZ(p, z)]
				}
		}, function (F, P, o, X, Y, y, z) {
			var s = o[0],
				t = o[1],
				d = o[2],
				U = o[3],
				v = X.Z,
				A = X.h;
			for (var Z = 0, w = 0; Z < A; Z++)
				for (var D = 0; D < v; D++, w++) {
					var q = D + Y,
						R = Z + y,
						J = s * q + t * R,
						W = d * q + U * R,
						p = 2 * (Math.abs(J) + Math.abs(W));
					F[w] = P[H.j.bZ(p, z)]
				}
		}]
	};
	H.j.a94 = function (F, P) {
		return F + .5
	};
	H.j.ahB = function (F, P) {
		return 2 * Math.sqrt(F * F + P * P)
	};
	H.j.a1g = function (F, P) {
		return (Math.PI + Math.atan2(-P, -F)) / (2 * Math.PI)
	};
	H.j.ahr = function (F, P) {
		return Math.abs(F * 2)
	};
	H.j.agz = function (F, P) {
		return 2 * (Math.abs(F) + Math.abs(P))
	};
	H.j.ao = function (F, P, o, X, Y, y, z, s, t, d, U, v) {
		if (F.Clrs == null) return;
		var A = new Uint32Array(P.buffer),
			Z = 1023,
			D = H.j.j0(F.Clrs.v, t, d);
		if (v) {
			var q = H.j.a9e(F, D, Z + 1, z);
			H.j.akR(A, q, X, o, o.x - Y, o.y - y, Z, s);
			return
		}
		var R = H.j.qP(F, D, Z + 1, z);
		if (s < 5) {
			H.j.G[s](A, R, X, o, o.x - Y, o.y - y, Z)
		} else {
			var J = new Uint8Array(R.buffer),
				W = o.Z,
				p = o.h,
				n = U.AP - U.fc,
				b = 1 / n,
				Q = U.Yi.Z - o.Z >> 1,
				_ = U.Yi.h - o.h >> 1,
				L = U.Yi.Z,
				m = -.6 * b,
				I = (-.6 + .4) * b,
				c = (-.6 + 2 * .4) * b,
				u = (-.6 + 3 * .4) * b;
			for (var a = 0, w = 0; a < p; a++)
				for (var N = 0; N < W; N++, w += 4) {
					var V = 0,
						M = 0,
						O = 0,
						K = 0,
						j = (a + _) * L + N + Q,
						$ = (U.CM[j] - U.fc) * b,
						x = 0;
					if ($ <= 0 || $ >= 1) {
						x = ($ <= 0 ? 0 : Z) << 2;
						P[w] = J[x];
						P[w + 1] = J[x + 1];
						P[w + 2] = J[x + 2];
						P[w + 3] = J[x + 3];
						continue
					}
					x = Math.max(0, Math.min(Z - 1, Math.round(($ + m) * Z))) << 2;
					M += J[x];
					O += J[x + 1];
					K += J[x + 2];
					V += J[x + 3];
					x = Math.max(0, Math.min(Z - 1, Math.round(($ + I) * Z))) << 2;
					M += J[x];
					O += J[x + 1];
					K += J[x + 2];
					V += J[x + 3];
					x = Math.max(0, Math.min(Z - 1, Math.round(($ + c) * Z))) << 2;
					M += J[x];
					O += J[x + 1];
					K += J[x + 2];
					V += J[x + 3];
					x = Math.max(0, Math.min(Z - 1, Math.round(($ + u) * Z))) << 2;
					M += J[x];
					O += J[x + 1];
					K += J[x + 2];
					V += J[x + 3];
					P[w] = M >>> 2;
					P[w + 1] = O >>> 2;
					P[w + 2] = K >>> 2;
					P[w + 3] = V >>> 2
				}
		}
	};
	H.j.j0 = function (F, P, o) {
		var X = [];
		for (var w = 0; w < F.length; w++) {
			var Y;
			if (F[w].v.Type.v.Clry == "FrgC") Y = {
				U: P >> 16 & 255,
				S: P >> 8 & 255,
				i: P & 255
			};
			else if (F[w].v.Type.v.Clry == "BckC") Y = {
				U: o >> 16 & 255,
				S: o >> 8 & 255,
				i: o & 255
			};
			else Y = H.j.T6(F[w].v.Clr.v);
			X.push(Y)
		}
		return X
	};
	H.j.T6 = function (F) {
		var P, o = F.classID;
		if (o == "RGBC") P = {
			U: F.Rd.v,
			S: F.Grn.v,
			i: F.Bl.v
		};
		else if (o == "HSBC") {
			P = H.ul(F.H.v.val / 360, F.Strt.v / 100, F.Brgh.v / 100);
			P.U *= 255;
			P.S *= 255;
			P.i *= 255
		} else if (o == "CMYC") {
			var X = 100 - F.Cyn.v,
				Y = 100 - F.Mgnt.v,
				y = 100 - F.Ylw.v,
				z = 100 - F.Blck.v,
				s = 255 * X * z * 1e-4,
				t = 255 * (.2 * X + .8 * Y) * z * 1e-4,
				d = 255 * (.2 * Y + .8 * y) * z * 1e-4;
			P = {
				U: s,
				S: t,
				i: d
			}
		} else if (o == "Grsc") P = {
			U: 255 - F.Gry.v,
			S: 255 - F.Gry.v,
			i: 255 - F.Gry.v
		};
		else if (o == "LbCl") {
			P = H.qL(F.Lmnc.v, F.A.v, F.B.v)
		} else console.log(F);
		if (isNaN(P.U)) P.U = P.S = P.i = 0;
		return P
	};
	H.j.$H = function (F) {
		return {
			classID: "RGBC",
			Rd: {
				t: "doub",
				v: F.U
			},
			Grn: {
				t: "doub",
				v: F.S
			},
			Bl: {
				t: "doub",
				v: F.i
			}
		}
	};
	H.j.a9e = function (F, P, o, X) {
		var Y = [],
			y = 1 / (o - 0);
		for (var w = 0; w < o; w++) {
			var z = w * 4,
				s = H.j.fx(F, P, (X ? o - 1 - w : w) * y);
			Y[z] = s[0];
			Y[z + 1] = s[1];
			Y[z + 2] = s[2];
			Y[z + 3] = s[3]
		}
		return Y
	};
	H.j.qP = function (F, P, o, X) {
		var Y = new Uint32Array(o),
			y = 1 / (o - 0);
		for (var w = 0; w < o; w++) Y[w] = H.j.it(F, P, (X ? o - 1 - w : w) * y);
		return Y
	};
	H.j.fx = function (F, P, o) {
		var X = 4096,
			Y = 1 / 4096,
			y = F.Intr.v * Y,
			z = F.Clrs.v,
			s = F.Trns.v,
			t = z.length - 1,
			d = s.length - 1,
			w = -1,
			U = 0,
			v = 0,
			A = 0,
			Z = 0;
		while (w < d && s[w + 1].v.Lctn.v <= o * X) w++;
		if (w == -1) {
			U = s[0].v.Opct.v.val * (255 / 100)
		} else if (w == d) {
			U = s[w].v.Opct.v.val * (255 / 100)
		} else {
			var D = H.j.iY(s, Y, w, o, y);
			U = (D * s[w].v.Opct.v.val + (1 - D) * s[w + 1].v.Opct.v.val) * (255 / 100)
		}
		w = -1;
		while (w < t && z[w + 1].v.Lctn.v <= o * X) w++;
		if (w == -1) {
			var q = P[0];
			v = q.U;
			A = q.S;
			Z = q.i
		} else if (w == t) {
			var q = P[w];
			v = q.U;
			A = q.S;
			Z = q.i
		} else {
			var R = P[w],
				J = P[w + 1],
				W = H.j.iY(z, Y, w, o, y);
			v = W * R.U + (1 - W) * J.U;
			A = W * R.S + (1 - W) * J.S;
			Z = W * R.i + (1 - W) * J.i
		}
		return [v, A, Z, U]
	};
	H.j.it = function (F, P, o) {
		var X = H.j.fx(F, P, o),
			Y = ~~(.5 + X[0]),
			y = ~~(.5 + X[1]),
			z = ~~(.5 + X[2]),
			s = ~~(.5 + X[3]);
		return s << 24 | z << 16 | y << 8 | Y
	};
	H.j.iY = function (F, P, w, o, X) {
		if (F.length == 2) X *= .5;
		var Y = F[w].v.Lctn.v * P,
			y = F[w + 1].v.Lctn.v * P,
			z = Y + F[w + 1].v.Mdpn.v * .01 * (y - Y),
			s;
		if (o < z) s = .5 * (o - Y) / (z - Y);
		else s = .5 + .5 * (o - z) / (y - z);
		s = .5 + .5 * (X * Math.cos(Math.PI * s) + (1 - X) * (1 - 2 * s));
		return s
	};
	H.j.yB = function (F, P) {
		var o = Math.PI * F.Angl.v.val / 180,
			X = F.Scl.v.val / 100,
			Y = F.Ofst.v,
			y = Y.Hrzn.v.val / 100,
			z = Y.Vrtc.v.val / 100,
			s = Math.cos(o),
			t = -Math.sin(o),
			d = .5 * P.h,
			U = d * (s / t),
			v = Math.sqrt(d * d + U * U),
			A = .5 * P.Z,
			Z = A * (t / s),
			D = Math.sqrt(A * A + Z * Z),
			q = Math.min(v, D) * X,
			R = P.x + P.Z / 2 + y * P.Z,
			J = P.y + P.h / 2 + z * P.h;
		return [new aH(R, J), new aH(R + s * q, J + t * q)]
	};
	H.j.VB = function (F, P, o, X) {
		var Y = P.x - F.x,
			y = -(P.y - F.y),
			z = Math.sqrt(Y * Y + y * y),
			s = Math.atan2(y, Y),
			t = Math.cos(s),
			d = -Math.sin(s),
			U = .5 * o.h,
			v = U * (t / d),
			A = Math.sqrt(U * U + v * v),
			Z = .5 * o.Z,
			D = Z * (d / t),
			q = Math.sqrt(Z * Z + D * D),
			R = z / Math.min(A, q),
			J = (F.x - o.x - o.Z / 2) / o.Z,
			W = (F.y - o.y - o.h / 2) / o.h;
		X.Angl.v.val = 180 * s / Math.PI;
		X.Scl.v.val = R * 100;
		var p = X.Ofst.v;
		p.Hrzn.v.val = J * 100;
		p.Vrtc.v.val = W * 100
	};
	H.j.nO = function (F, P) {
		for (var w = 0; w < F.length; w++) {
			var o = F[w],
				X = Math.round(o[0] * 4096),
				Y = o[1],
				y = o[2];
			if (y == null) y = 1;
			var z = H.j.$H({
				U: Y[0] * 255,
				S: Y[1] * 255,
				i: Y[2] * 255
			});
			P.Clrs.v[w] = {
				t: "Objc",
				v: {
					classID: "Clrt",
					Lctn: {
						t: "long",
						v: X
					},
					Mdpn: {
						t: "long",
						v: 50
					},
					Clr: {
						t: "Objc",
						v: z
					},
					Type: {
						t: "enum",
						v: {
							Clry: "UsrS"
						}
					}
				}
			};
			P.Trns.v[w] = {
				t: "Objc",
				v: {
					classID: "TrnS",
					Lctn: {
						t: "long",
						v: X
					},
					Mdpn: {
						t: "long",
						v: 50
					},
					Opct: {
						t: "UntF",
						v: {
							type: "#Prc",
							val: Math.round(y * 100)
						}
					}
				}
			}
		}
	};
	H.Nw = {};
	H.Nw.a6Y = function (F, P, o, X, Y, y, z, s, t, d, U, v) {
		var A, Z, D, q = Date.now(),
			R = !1,
			J = z,
			W = d,
			p, n, b, Q, _ = y * 255,
			L = 255 - t * 255,
			m = 1 + Y * 6,
			I = 1 + s * 6,
			c = 1 + v * 4,
			u = (c - 1) / 7,
			a = 0,
			N = 255 - 0,
			V, M, O, K, j, $, x, g, T, E, a9, ez, bN, cg = 0,
			d8 = 1,
			C, S, g7, g_, fw, dT, g4, bB, d1, f_, g$ = 1 + U,
			eT, dz = H.R(o * X),
			i4 = H.R(o * X),
			fy = H.R(o * X),
			cN = H.R(o * X),
			fP = 255 / _,
			du = 255 / (255 - L);
		for (Z = 0; Z < X; Z++) {
			for (A = 0; A < o; A++) {
				var w = Z * o + A,
					ea = w << 2;
				C = H.ou(F[ea], F[ea + 1], F[ea + 2]);
				cN[w] = C;
				if (C < _) dz[w] = 255 - C * fP;
				if (C > L) i4[w] = 255 - (255 - C) * du
			}
		}
		if (R) console.log("init", Date.now() - q);
		q = Date.now();
		if (Y * J > 0) {
			fy.set(dz);
			H.ni.FY(fy, dz, new ev(0, 0, o, X), J)
		}
		if (s * W > 0) {
			fy.set(i4);
			H.ni.FY(fy, i4, new ev(0, 0, o, X), W)
		}
		if (R) console.log("blur", Date.now() - q);
		q = Date.now();
		var cF = H.R(256),
			gB = H.R(256);
		for (var w = 0; w < 256; w++) {
			var bp = w * (1 / 255),
				hf = 0;
			hf = (1 - Math.pow(1 - bp, m)) * 255;
			cF[w] = Math.max(0, Math.min(255, ~~(hf + .5)));
			hf = Math.pow(bp, I) * 255;
			gB[w] = Math.max(0, Math.min(255, ~~(hf + .5)))
		}
		var bq = new Uint8ClampedArray(P.buffer),
			eY = new Float32Array(32768);
		for (var w = 0; w < 32768; w++) {
			eT = Math.sqrt(w) * (1 / 128);
			if (g$ > 1) eT = (1 - eT) * (g$ - 1) + 1;
			else eT = eT * (g$ - 1) + 1;
			eY[w] = eT
		}
		for (Z = 0; Z < X; Z++) {
			for (A = 0; A < o; A++) {
				var w = Z * o + A,
					ea = w << 2,
					hf = cN[w],
					f1 = dz[w] * (1 / 255),
					dh = i4[w] * (1 / 255);
				hf = (1 - f1) * hf + f1 * cF[~~hf];
				hf = (1 - dh) * hf + dh * gB[~~hf];
				C = hf;
				var hn = F[ea],
					e7 = F[ea + 1],
					ed = F[ea + 2];
				S = -hn * .168736 - e7 * .331264 + ed * .5;
				g7 = hn * .5 - e7 * .418688 - ed * .081312;
				eT = eY[~~(.5 + S * S + g7 * g7)];
				g_ = S * eT;
				dT = g7 * eT;
				d8 = 1 - Math.min(2 - (f1 + dh), 1);
				S = d8 * S + (1 - d8) * g_;
				g7 = d8 * g7 + (1 - d8) * dT;
				bB = C + 1.402 * g7;
				d1 = C - .34414 * S - .71414 * g7;
				f_ = C + 1.772 * S;
				bq[ea] = ~~(.5 + bB);
				bq[ea + 1] = ~~(.5 + d1);
				bq[ea + 2] = ~~(.5 + f_)
			}
		}
		if (R) console.log("apply masks", Date.now() - q);
		q = Date.now()
	};
	H.mC = {};
	H.mC.I4 = function (F, P, o, X, Y) {
		var y = !1,
			D = 1,
			N = 0,
			V = 0,
			T = 0,
			d1 = 0;
		if (!P.Qh(Y)) {
			var z = P.s7(Y),
				s = H.R(z.M() * 4);
			H.BP(F, P, s, z);
			F = s;
			P = z
		}
		var t = H.R(P.M());
		H.Lj(o, Y, t, P);
		H.round(t);
		Y = Y.$X(P);
		var d = Y.Z,
			U = Y.h,
			v = d * 3 < U ? 2 : 1,
			A = U * 3 < d ? 2 : 1;
		if (Y.M() * (v * 2 + 1) * (A * 2 + 1) < P.M()) {
			var z = new ev(Y.x - d * v, Y.y - U * v, d * (v * 2 + 1), U * (A * 2 + 1)).$X(P),
				s = H.R(z.M() * 4);
			H.BP(F, P, s, z);
			var Z = H.R(z.M());
			H.Lj(t, P, Z, z);
			P = z;
			F = s;
			t = Z
		}
		while ((P.Z + P.h) / 2 / D > 400) D++;
		var q = F,
			R = P,
			J = t,
			W = Math.floor(R.Z / D),
			p = Math.floor(R.h / D);
		F = H.R(W * p * 4);
		H.scale.sI(q, R.Z, R.h, F, W, p, 1 / D);
		t = H.R(W * p);
		H.scale.OM(J, R.Z, R.h, t, W, p, 1 / D);
		H.round(t, 1);
		var n = H.xw(t, new ev(0, 0, W, p));
		if (n.qr()) return;
		var b = Math.round((n.Z + n.h) / 2 / 15),
			Q = Date.now(),
			_ = H.R(W * p * 4);
		H.a2K(F, _);
		var L = Int16Array,
			m = new L(W * p * 24),
			I = new L(64),
			c = new L(64),
			u = new L(64),
			a = new L(64);
		for (var M = 3; M < p - 4; M++)
			for (var O = 3; O < W - 4; O++) {
				var K = M * W + O;
				if (t[K] == 255) continue;
				if (H.mC.a44(_, t, O, M, W, p, I, c, u) != 0) continue;
				H.mC.vy(I, a);
				m[N] = O;
				m[N + 1] = M;
				H.mC.Hk(I, m, N + 4, 12);
				N += 16;
				H.mC.vy(c, a);
				H.mC.Hk(c, m, N, 4);
				N += 4;
				H.mC.vy(u, a);
				H.mC.Hk(u, m, N, 4);
				N += 4;
				var j = m[N - 24 + 5],
					$ = m[N - 24 + 6];
				m[N - 24 + 5] = m[N - 24 + 20];
				m[N - 24 + 6] = m[N - 24 + 16];
				m[N - 24 + 16] = j;
				m[N - 24 + 20] = $;
				V++
			}
		if (V == 0) return;
		if (y) console.log(Date.now() - Q, "FWHT computed");
		Q = Date.now();
		var x = [];
		H.mC.Pk(0, V - 1, x, m, new L(2 * 24));
		if (y) console.log(Date.now() - Q, "KD tree computed");
		Q = Date.now();
		var g = new Float32Array(W * p * 4);
		for (var w = 0; w < V; w++) {
			var E = w,
				a9 = H.mC.amn(E, m, x, b);
			if (a9 == -1) continue;
			var ez = E * 24,
				bN = a9 * 24,
				cg = m[ez],
				d8 = m[ez + 1],
				C = m[bN],
				S = m[bN + 1];
			T += H.mC.getError(bN, ez, m, 1e99);
			var g7 = C - cg,
				g_ = S - d8;
			g[(p + g_) * 2 * W + (W + g7)] += 1
		}
		if (y) console.log(Date.now() - Q, "NN found");
		Q = Date.now();
		var fw = [],
			dT = 1 / (2 * W);
		for (var w = 0; w < g.length; w++) {
			if (g[w] > 0) {
				var M = Math.floor(w * dT),
					O = w - M * 2 * W;
				fw.push({
					x: O - W,
					y: M - p,
					C: g[w],
					dz: -1
				})
			}
		}
		fw.sort(function (dh, hn) {
			return hn.C - dh.C
		});
		var g4 = new Int32Array(W * p),
			bB = [];
		for (var w = 0; w < W * p; w++) {
			if (t[w] == 255) {
				g4[w] = d1;
				bB.push(w % W, Math.floor(w / W));
				d1++
			} else if (F[(w << 2) + 3] < 200) {
				g4[w] = -2
			} else {
				g4[w] = -1
			}
		}
		var f_ = H.mC.acr(W, p, fw, g4, bB, d1);
		if (f_ == null) {
			return
		}
		var g$ = f_.yq,
			top = f_.top;
		g$ = H.mC.a1K(g$, F, W, p, top, g4, bB, d1);
		if (y) console.log(Date.now() - Q, "optimal labeling found");
		Q = Date.now();
		var z = Y.clone();
		z.PK(1, 1);
		z = z.$X(R);
		var eT = H.R(z.M() * 4),
			dz = H.R(z.M());
		H.BP(q, R, eT, z);
		var i4 = R.Z,
			fy = R.h;
		for (var M = 0; M < fy; M++)
			for (var O = 0; O < i4; O++) {
				if (J[M * i4 + O] == 0) continue;
				var cN = Math.min(Math.floor(O / D), W - 1),
					fP = Math.min(Math.floor(M / D), p - 1),
					du = g4[fP * W + cN],
					ea = g$[du],
					cF = top[ea],
					gB = O + cF.x * D,
					bp = M + cF.y * D,
					eY = bp * i4 + gB << 2,
					f1 = (M - z.y + R.y) * z.Z + (O - z.x + R.x) << 2;
				eT[f1] = q[eY];
				eT[f1 + 1] = q[eY + 1];
				eT[f1 + 2] = q[eY + 2];
				eT[f1 + 3] = q[eY + 3];
				eT[f1 + 3] = q[eY + 3];
				dz[f1 >> 2] = ea + 1
			}
		if (y) console.log(Date.now() - Q, "copied back");
		Q = Date.now();
		H.w9.I4(eT, dz, z, null, 1e3);
		if (y) console.log(Date.now() - Q, "poisson smooth");
		Q = Date.now();
		H.BP(eT, z, X, Y)
	};
	H.mC.$s = function (F, P, o, X, Y, y) {
		return H.mC.jY(F + Y.x, P + Y.y, o, X) && y[(P + Y.y) * o + (F + Y.x)] == -1 ? 0 : 1e9
	};
	H.mC.a1K = function (F, P, o, X, top, Y, y, z) {
		var s = Date.now(),
			t = [-1, 0, 0, -1, 1, 0, 0, 1],
			d = 1e99,
			U = [],
			v = [],
			A = 2 * (z * 2 * 3 + z * 2),
			Z = null,
			D = 0,
			q = 0,
			R = 0,
			J = 1e99;
		while (!0 && Date.now() < s + 12e3) {
			R++;
			var W = null,
				p = d;
			for (var n = 0; n < top.length; n++) {
				var b = top[n],
					Q = 0,
					_ = z + 2,
					L = 0;
				for (var w = 0; w < z; w++) {
					var m = y[w * 2],
						I = y[w * 2 + 1],
						c = top[F[w]],
						u = H.mC.$s(m, I, o, X, b, Y),
						a = F[w] == n ? 1e9 : H.mC.$s(m, I, o, X, c, Y);
					for (var e = 0; e < 4; e++) {
						if (e == 0 && m == 0 || e == 1 && I == 0 || e == 2 && m == o - 1 || e == 3 && I == X - 1) continue;
						var N = t[2 * e],
							V = t[2 * e + 1],
							M = m + N,
							O = I + V,
							K = Y[O * o + M];
						if (K == -2) {} else if (K == -1) {
							u += 3 * H.mC.HH(M + b.x, O + b.y, M, O, o, X, P, Y);
							u += 2 * H.mC.HH(M + b.x + N, O + b.y + V, M + N, O + V, o, X, P, Y);
							a += 3 * H.mC.HH(M + c.x, O + c.y, M, O, o, X, P, Y);
							a += 2 * H.mC.HH(M + c.x + N, O + c.y + V, M + N, O + V, o, X, P, Y)
						} else if (e > 1) {
							if (F[w] == F[K]) {
								var j = 0;
								j += H.mC.HH(m + c.x, I + c.y, m + b.x, I + b.y, o, X, P, Y);
								j += H.mC.HH(M + c.x, O + c.y, M + b.x, O + b.y, o, X, P, Y);
								U[Q] = w;
								U[Q + 1] = K;
								v[Q] = j;
								v[Q + 1] = j;
								Q += 2
							} else {
								var $ = top[F[K]],
									x = _,
									g = 0,
									T = 0,
									E = 0;
								_++;
								g += H.mC.HH(m + c.x, I + c.y, m + b.x, I + b.y, o, X, P, Y);
								g += H.mC.HH(M + c.x, O + c.y, M + b.x, O + b.y, o, X, P, Y);
								T += H.mC.HH(m + $.x, I + $.y, m + b.x, I + b.y, o, X, P, Y);
								T += H.mC.HH(M + $.x, O + $.y, M + b.x, O + b.y, o, X, P, Y);
								E += H.mC.HH(m + $.x, I + $.y, m + c.x, I + c.y, o, X, P, Y);
								E += H.mC.HH(M + $.x, O + $.y, M + c.x, O + c.y, o, X, P, Y);
								U[Q] = w;
								U[Q + 1] = x;
								v[Q] = g;
								v[Q + 1] = g;
								Q += 2;
								U[Q] = K;
								U[Q + 1] = x;
								v[Q] = T;
								v[Q + 1] = T;
								Q += 2;
								U[Q] = x;
								U[Q + 1] = z + 1;
								v[Q] = E;
								v[Q + 1] = 0;
								Q += 2
							}
						}
					}
					U[Q] = z;
					U[Q + 1] = w;
					v[Q] = u;
					v[Q + 1] = 0;
					Q += 2;
					U[Q] = w;
					U[Q + 1] = z + 1;
					v[Q] = a;
					v[Q + 1] = 0;
					Q += 2;
					L += Math.min(u, a)
				}
				if (L > p) continue;
				var a9 = H.yJ.mm(_, Q, z, z + 1, U, v, p);
				if (a9.xy < p) {
					p = a9.xy;
					var ez = F.slice(0);
					H.mC.a45(ez, Q, U, a9.Rv, n, z);
					W = ez
				}
			}
			if (p * 1 >= d) {
				break
			}
			d = p;
			F = W;
			if ((R & 3) == 0) {
				if (p * 1.03 >= J) break;
				J = p
			}
			if ((R & 3) == 0) {
				var bN = 0 * top.length;
				for (var w = 0; w < top.length && top.length > bN; w++) {
					if (F.indexOf(w) != -1) continue;
					top.splice(w, 1);
					for (var K = 0; K < F.length; K++)
						if (F[K] > w) F[K]--;
					w--
				}
			}
		}
		return F
	};
	H.mC.a45 = function (F, P, o, X, Y, y) {
		for (var w = 0; w < X.length; w++) {
			var z = X[w] << 1,
				s = 0,
				t = 0;
			if (z < P) {
				s = o[z];
				t = o[z + 1]
			} else {
				t = o[z];
				s = o[z + 1]
			}
			if (s == y && F[t] != Y) F[t] = Y
		}
	};
	H.mC.ZB = function (top, F, P, o, X, Y, y, z, s) {
		for (var w = 0; w < P.length; w++) {
			var t = P[w],
				d = !0;
			if (z != null && !(H.mC.jY(z + t.x, s + t.y, Y, y) && o[Y * (s + t.y) + z + t.x] == -1)) continue;
			if (t.dz == -1) t.dz = H.mC.aa2(t, o, X, Y, y);
			if (t.dz <= 0) continue;
			for (var U = 0; U < top.length; U++) {
				var v = top[U],
					A = t.x - v.x,
					Z = t.y - v.y;
				if (A * A + Z * Z < F) {
					d = !1;
					break
				}
			}
			if (d) return t
		}
		return null
	};
	H.mC.aa2 = function (F, P, o, X, Y) {
		var y = 0;
		for (var w = 0; w < o.length; w += 2) {
			var z = o[w] + F.x,
				s = o[w + 1] + F.y;
			if (H.mC.jY(z, s, X, Y) && P[X * s + z] == -1) y++
		}
		return y / (o.length >> 1)
	};
	H.mC.acr = function (F, P, o, X, Y, y) {
		var top = [];
		for (var w = 0; w < 60; w++) {
			var z = H.mC.ZB(top, 25, o, X, Y, F, P);
			if (z == null) break;
			else top.push(z)
		}
		if (top.length == 0) return null;
		var s = [];
		for (var w = 0; w < y; w++) {
			var t = Y[w * 2],
				d = Y[w * 2 + 1],
				U = -1,
				v = 0;
			while (!0) {
				v++;
				var A = Math.random();
				U = Math.floor(A * .99999 * top.length);
				var Z = top[U],
					D = t + Z.x,
					q = d + Z.y;
				if (H.mC.jY(D, q, F, P) && X[q * F + D] == -1) break;
				if (v > 100) {
					var z;
					z = H.mC.ZB(top, 0, o, X, Y, F, P, t, d);
					if (z == null) return null;
					top.push(z);
					v = 0
				}
			}
			s.push(U)
		}
		return {
			top: top,
			yq: s
		}
	};
	H.mC.HH = function (F, P, o, X, Y, y, z, s) {
		if (F == o && P == X) return 0;
		if (F < 0 || P < 0 || F >= Y || P >= y || o < 0 || X < 0 || o >= Y || X >= y || s[P * Y + F] != -1 || s[X * Y + o] != -1) return 1e7;
		var t = P * Y + F << 2,
			d = X * Y + o << 2,
			U = z[t] - z[d],
			v = z[t + 1] - z[d + 1],
			A = z[t + 2] - z[d + 2];
		return 1 + (U * U + v * v + A * A)
	};
	H.mC.jY = function (F, P, o, X) {
		return F >= 0 && F < o && P >= 0 && P < X
	};
	H.mC.amn = function (F, P, o, X) {
		var Y = 24 * F,
			y = P[Y],
			z = P[Y + 1],
			s = X * X,
			t = 0,
			A = 1e9;
		while (o[t] != 99)
			if (P[Y + o[t]] < o[t + 1]) t = o[t + 2];
			else t = o[t + 3];
		var d = o[t + 1],
			U = o[t + 2],
			v = -1;
		for (var w = d; w <= U; w++) {
			var t = w,
				Z = t * 24,
				D = P[Z],
				q = P[Z + 1];
			if ((D - y) * (D - y) + (q - z) * (q - z) < s) continue;
			var R = H.mC.getError(Z, Y, P, A);
			if (R < A) {
				A = R;
				v = t
			}
		}
		return v
	};
	H.mC.getError = function (F, P, o, X) {
		var Y = 0;
		for (var y = 4; y < 24; y += 4) {
			var z = o[P + y] - o[F + y],
				s = o[P + y + 1] - o[F + y + 1],
				t = o[P + y + 2] - o[F + y + 2],
				d = o[P + y + 3] - o[F + y + 3];
			Y += z * z + s * s + t * t + d * d;
			if (Y >= X) return Y + 1
		}
		return Y
	};
	H.mC.Pk = function (F, P, o, X, Y) {
		var y = 16,
			A = 0;
		if (P - F <= y) {
			o.push(99, F, P);
			return
		}
		H.mC.nP(F, P, X, Y);
		var z = -1,
			s = -1;
		for (var w = 4; w < 24; w++) {
			var t = Y[2 * w + 1] - Y[2 * w];
			if (t > s) {
				s = t;
				z = w
			}
		}
		var d = F + P >> 1,
			U = H.mC.acx(d, F, P, X, z),
			v = -1;
		for (var w = F; w <= P; w++)
			if (X[24 * w + z] == U) {
				if (v == -1) v = w;
				A = w
			} if (F + 8 < v && v - F > P - A) d = v;
		else if (A + 1 < P - 8) d = A + 1;
		else if (P - F < 64) {
			o.push(99, F, P);
			return
		} else d = d;
		var Z = o.length;
		o.push(z, U, 0, 0);
		o[Z + 2] = Z + 4;
		H.mC.Pk(F, d - 1, o, X, Y);
		o[Z + 3] = o.length;
		H.mC.Pk(d, P, o, X, Y)
	};
	H.mC.nP = function (F, P, o, X) {
		for (var w = 0; w < 48; w += 4) {
			X[w] = 3e4;
			X[w + 1] = -3e4;
			X[w + 2] = 3e4;
			X[w + 3] = -3e4
		}
		for (var w = F; w <= P; w++) {
			var Y = w * 24;
			for (var y = 0; y < 24; y++) {
				var z = o[Y + y],
					s = X[y << 1],
					t = X[(y << 1) + 1];
				if (z < s) X[y << 1] = z;
				if (z > t) X[(y << 1) + 1] = z
			}
		}
	};
	H.mC.Sy = function (F, P, o) {
		var X = 0,
			w = 0;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++;
		X = o[F + w];
		o[F + w] = o[P + w];
		o[P + w] = X;
		w++
	};
	H.mC.RU = function (F, P, o, X) {
		var Y = o + X >>> 1,
			y = F[24 * Y + P];
		while (o <= X) {
			while (F[24 * o + P] < y) o++;
			while (F[24 * X + P] > y) X--;
			if (o <= X) {
				if (F[24 * o + P] != F[24 * X + P]) H.mC.Sy(o * 24, X * 24, F);
				o++;
				X--
			}
		}
		return o
	};
	H.mC.acx = function (F, P, o, X, Y) {
		var y = 0;
		while (P != o) {
			y = H.mC.RU(X, Y, P, o);
			if (F < y) o = y - 1;
			else P = y
		}
		return X[F * 24 + Y]
	};
	H.mC.Hk = function (F, P, o, X) {
		for (var w = 0; w < X; w++) P[o + w] = F[w]
	};
	H.mC.a44 = function (F, P, o, X, Y, y, z, s, t) {
		var d = (X - 3) * Y + (o - 3),
			U = d << 2;
		for (var v = 0; v < 8; v++) {
			if (P[d] + P[d + 1] + P[d + 2] + P[d + 3] + P[d + 4] + P[d + 5] + P[d + 6] + P[d + 7] != 0 || F[U + 3] < 200 || F[U + 7] < 200 || F[U + 11] < 200 || F[U + 15] < 200 || F[U + 19] < 200 || F[U + 23] < 200 || F[U + 27] < 200 || F[U + 31] < 200) return 1;
			var w = v << 3;
			z[w + 0] = F[U + 0];
			s[w + 0] = F[U + 1];
			t[w + 0] = F[U + 2];
			z[w + 1] = F[U + 4];
			s[w + 1] = F[U + 5];
			t[w + 1] = F[U + 6];
			z[w + 2] = F[U + 8];
			s[w + 2] = F[U + 9];
			t[w + 2] = F[U + 10];
			z[w + 3] = F[U + 12];
			s[w + 3] = F[U + 13];
			t[w + 3] = F[U + 14];
			z[w + 4] = F[U + 16];
			s[w + 4] = F[U + 17];
			t[w + 4] = F[U + 18];
			z[w + 5] = F[U + 20];
			s[w + 5] = F[U + 21];
			t[w + 5] = F[U + 22];
			z[w + 6] = F[U + 24];
			s[w + 6] = F[U + 25];
			t[w + 6] = F[U + 26];
			z[w + 7] = F[U + 28];
			s[w + 7] = F[U + 29];
			t[w + 7] = F[U + 30];
			U += Y << 2;
			d += Y
		}
		return 0
	};
	H.mC.vy = function (F, P) {
		P[0] = F[32] + F[0];
		P[1] = F[33] + F[1];
		P[2] = F[34] + F[2];
		P[3] = F[35] + F[3];
		P[4] = F[36] + F[4];
		P[5] = F[37] + F[5];
		P[6] = F[38] + F[6];
		P[7] = F[39] + F[7];
		P[8] = F[40] + F[8];
		P[9] = F[41] + F[9];
		P[10] = F[42] + F[10];
		P[11] = F[43] + F[11];
		P[12] = F[44] + F[12];
		P[13] = F[45] + F[13];
		P[14] = F[46] + F[14];
		P[15] = F[47] + F[15];
		P[16] = F[48] + F[16];
		P[17] = F[49] + F[17];
		P[18] = F[50] + F[18];
		P[19] = F[51] + F[19];
		P[20] = F[52] + F[20];
		P[21] = F[53] + F[21];
		P[22] = F[54] + F[22];
		P[23] = F[55] + F[23];
		P[24] = F[56] + F[24];
		P[25] = F[57] + F[25];
		P[26] = F[58] + F[26];
		P[27] = F[59] + F[27];
		P[28] = F[60] + F[28];
		P[29] = F[61] + F[29];
		P[30] = F[62] + F[30];
		P[31] = F[63] + F[31];
		P[32] = F[0] - F[32];
		P[33] = F[1] - F[33];
		P[34] = F[2] - F[34];
		P[35] = F[3] - F[35];
		P[36] = F[4] - F[36];
		P[37] = F[5] - F[37];
		P[38] = F[6] - F[38];
		P[39] = F[7] - F[39];
		P[40] = F[8] - F[40];
		P[41] = F[9] - F[41];
		P[42] = F[10] - F[42];
		P[43] = F[11] - F[43];
		P[44] = F[12] - F[44];
		P[45] = F[13] - F[45];
		P[46] = F[14] - F[46];
		P[47] = F[15] - F[47];
		P[48] = F[16] - F[48];
		P[49] = F[17] - F[49];
		P[50] = F[18] - F[50];
		P[51] = F[19] - F[51];
		P[52] = F[20] - F[52];
		P[53] = F[21] - F[53];
		P[54] = F[22] - F[54];
		P[55] = F[23] - F[55];
		P[56] = F[24] - F[56];
		P[57] = F[25] - F[57];
		P[58] = F[26] - F[58];
		P[59] = F[27] - F[59];
		P[60] = F[28] - F[60];
		P[61] = F[29] - F[61];
		P[62] = F[30] - F[62];
		P[63] = F[31] - F[63];
		F[0] = P[16] + P[0];
		F[1] = P[17] + P[1];
		F[2] = P[18] + P[2];
		F[3] = P[19] + P[3];
		F[4] = P[20] + P[4];
		F[5] = P[21] + P[5];
		F[6] = P[22] + P[6];
		F[7] = P[23] + P[7];
		F[8] = P[24] + P[8];
		F[9] = P[25] + P[9];
		F[10] = P[26] + P[10];
		F[11] = P[27] + P[11];
		F[12] = P[28] + P[12];
		F[13] = P[29] + P[13];
		F[14] = P[30] + P[14];
		F[15] = P[31] + P[15];
		F[16] = P[0] - P[16];
		F[17] = P[1] - P[17];
		F[18] = P[2] - P[18];
		F[19] = P[3] - P[19];
		F[20] = P[4] - P[20];
		F[21] = P[5] - P[21];
		F[22] = P[6] - P[22];
		F[23] = P[7] - P[23];
		F[24] = P[8] - P[24];
		F[25] = P[9] - P[25];
		F[26] = P[10] - P[26];
		F[27] = P[11] - P[27];
		F[28] = P[12] - P[28];
		F[29] = P[13] - P[29];
		F[30] = P[14] - P[30];
		F[31] = P[15] - P[31];
		P[0] = F[8] + F[0];
		P[1] = F[9] + F[1];
		P[2] = F[10] + F[2];
		P[3] = F[11] + F[3];
		P[4] = F[12] + F[4];
		P[5] = F[13] + F[5];
		P[6] = F[14] + F[6];
		P[7] = F[15] + F[7];
		P[8] = F[0] - F[8];
		P[9] = F[1] - F[9];
		P[10] = F[2] - F[10];
		P[11] = F[3] - F[11];
		P[12] = F[4] - F[12];
		P[13] = F[5] - F[13];
		P[14] = F[6] - F[14];
		P[15] = F[7] - F[15];
		F[0] = P[4] + P[0];
		F[1] = P[5] + P[1];
		F[2] = P[6] + P[2];
		F[3] = P[7] + P[3];
		F[4] = P[0] - P[4];
		F[5] = P[1] - P[5];
		F[6] = P[2] - P[6];
		F[7] = P[3] - P[7];
		F[8] = P[12] + P[8];
		F[9] = P[13] + P[9];
		F[10] = P[14] + P[10];
		F[11] = P[15] + P[11];
		F[12] = P[8] - P[12];
		F[13] = P[9] - P[13];
		F[14] = P[10] - P[14];
		F[15] = P[11] - P[15];
		P[0] = F[2] + F[0];
		P[1] = F[3] + F[1];
		P[2] = F[0] - F[2];
		P[3] = F[1] - F[3];
		P[4] = F[6] + F[4];
		P[5] = F[7] + F[5];
		P[6] = F[4] - F[6];
		P[7] = F[5] - F[7];
		P[8] = F[10] + F[8];
		P[9] = F[11] + F[9];
		P[10] = F[8] - F[10];
		P[11] = F[9] - F[11];
		P[12] = F[14] + F[12];
		P[13] = F[15] + F[13];
		P[14] = F[12] - F[14];
		P[15] = F[13] - F[15];
		F[0] = P[1] + P[0];
		F[1] = P[0] - P[1];
		F[2] = P[3] + P[2];
		F[3] = P[2] - P[3];
		F[4] = P[5] + P[4];
		F[5] = P[4] - P[5];
		F[6] = P[7] + P[6];
		F[7] = P[6] - P[7];
		F[8] = P[9] + P[8];
		F[9] = P[8] - P[9];
		F[10] = P[11] + P[10];
		F[11] = P[10] - P[11];
		F[12] = P[13] + P[12];
		F[13] = P[12] - P[13];
		F[14] = P[15] + P[14];
		F[15] = P[14] - P[15]
	};
	H.mC.a93 = function () {
		var F = "",
			e = 64,
			P = "v",
			o = "t",
			X = "a",
			Y = 5,
			w, y, z;
		for (w = e >> 1; w > 0; w >>= 1, Y--) {
			for (y = 0; y < e; y++) {
				z = (y >> Y & 1) != 0;
				if (z) {
					F += o + "[" + y + "] = " + P + "[" + (-w + y) + "] - " + P + "[" + y + "];  "
				} else {
					F += o + "[" + y + "] = " + P + "[" + (w + y) + "] + " + P + "[" + y + "];  "
				}
			}
			X = P;
			P = o;
			o = X;
			F += "\n"
		}
		console.log(F)
	};
	H.mC.a8K = function (e, F, P) {
		var o = F,
			X = P,
			Y = o,
			y = 0,
			w, s, t;
		while (e >> y != 2) y++;
		var z = y;
		for (w = e >> 1; w > 0; w >>= 1, y--) {
			for (s = 0; s < e; s++) {
				t = (s >> y & 1) != 0;
				if (t) X[s] = o[-w + s] - o[s];
				else X[s] = o[w + s] + o[s]
			}
			Y = o;
			o = X;
			X = Y
		}
		if ((z & 1) == 1)
			for (w = 0; w < e; w++) P[w] = o[w]
	};
	H.SX = {};
	H.SX.ka = function (F, P, o, X, Y, y, z, s, t) {
		var d = Date.now(),
			U = new Uint32Array(F.buffer),
			v = new Uint32Array(P.buffer),
			A = z / o,
			Z = s / X,
			D = 1 / A,
			q = 1 / Z,
			R = new Float64Array(2),
			J = 3,
			W = 1 / J,
			p = 1 / (J * J),
			n = 0,
			b = 0,
			Q = o,
			_ = X;
		if (Y) {
			n = Y.x;
			b = Y.y;
			Q = Y.Z;
			_ = Y.h
		}
		for (var L = 0; L < _; L++)
			for (var m = 0; m < Q; m++) {
				var I = n + m,
					c = b + L,
					w = c * o + I,
					u = w << 1,
					a = w << 2;
				H.SX.a3G(y, z, s, (I + .5) * A, (c + .5) * Z, R);
				var N = R[0] * D,
					V = R[1] * q;
				if (N == 0 && V == 0) v[w] = U[w];
				else {
					H.P.nK(I + N + .5, c + V + .5, U, o, X, v, w, t)
				}
			}
	};
	H.SX.a3G = function (F, P, o, X, Y, y) {
		X -= .499999;
		Y -= .499999;
		var z = ~~X,
			s = ~~Y,
			t = X - z,
			d = Y - s,
			U = (1 - d) * (1 - t),
			v = (1 - d) * t,
			A = d * (1 - t),
			Z = d * t,
			D = z < P - 1 ? z + 1 : z,
			q = s < o - 1 ? s + 1 : s,
			R = s * P + z << 1,
			J = s * P + D << 1,
			W = q * P + z << 1,
			p = q * P + D << 1;
		y[0] = U * F[R] + v * F[J] + A * F[W] + Z * F[p];
		y[1] = U * F[R + 1] + v * F[J + 1] + A * F[W + 1] + Z * F[p + 1]
	};
	H.SX.a4l = function (F, P, o, X, Y) {
		var y = 1 / F,
			z = [-1, 1, -F, F],
			s = X.length;
		for (var t = 0; t < s; t++) {
			var w = X[t],
				d = w << 1,
				U = t << 1,
				v = ~~(w * y),
				A = w - F * v,
				Z = o[d],
				D = o[d + 1],
				q = 0,
				R = 0;
			if (A != 0 && A != F - 1) {
				var J = w - 1 << 1,
					W = w + 1 << 1,
					p = o[J],
					n = o[W],
					b = o[J + 1],
					Q = o[W + 1],
					_ = Z - (p + n) * .5,
					L = D - (b + Q) * .5;
				q -= _ * Y;
				R -= L * Y
			}
			if (v != 0 && v != P - 1) {
				var J = w - F << 1,
					W = w + F << 1,
					p = o[J],
					n = o[W],
					b = o[J + 1],
					Q = o[W + 1],
					_ = Z - (p + n) * .5,
					L = D - (b + Q) * .5;
				q -= _ * Y;
				R -= L * Y
			}
			o[d] = Z + q;
			o[d + 1] = D + R
		}
	};
	H.SX.ah6 = function (F, P) {
		var o = F + "," + P;
		if (H.SX.x7 == o) return H.SX.p6;
		var X = H.SX.p6 = [];
		H.SX.x7 = o;
		for (var w = 0; w <= 1e3; w++) {
			var Y = w * .001,
				y = Math.sqrt(Y),
				z = Math.exp(-4 * y),
				s = .96 * (1 - y * y),
				t = P * ((1 - F) * z + F * s);
			X[w] = t
		}
		return X
	};
	H.SX.x7 = "";
	H.SX.p6 = [];
	H.SX.a3M = function (F, P, o, X, Y, y, z, s, t, d, U, v, A) {
		var Z = Math.max(0, Math.floor(Y - z - 1)),
			D = Math.min(P, Math.ceil(Y + z + 1)),
			q = Math.max(0, Math.floor(y - z - 1)),
			R = Math.min(o, Math.ceil(y + z + 1)),
			J = 2 * P,
			W = z * z,
			p = 1 / z,
			n = 0;
		if (A && (X == 3 || X == 6)) t = -t;
		var b = H.SX.ah6(s, t);
		for (var Q = q; Q < R; Q++)
			for (var _ = Z; _ < D; _++) {
				var w = Q * P + _,
					L = w << 1,
					m = (Y - _) * p,
					I = (y - Q) * p,
					c = m * m + I * I;
				if (c < 1) {
					v[n] = w;
					var u = b[~~(c * 1e3)];
					if (X == 1) {
						F[L] = F[L] * (1 - u * .05);
						F[L + 1] = F[L + 1] * (1 - u * .05)
					} else {
						var a = 0,
							N = 0,
							O, K, j, $;
						if (X == 0) {
							a = d * u;
							N = U * u
						} else if (X == 2) {} else if (X == 3) {
							a = u * I;
							N = -u * m
						} else if (X == 4) {
							a = u * m;
							N = u * I
						} else if (X == 5) {
							a = -u * m;
							N = -u * I
						} else if (X == 6) {
							a = U * u;
							N = -d * u
						}
						var V = F[L],
							M = F[L + 1];
						if (_ == 0 || _ != P - 1 && a < 0) {
							O = 1 + F[L + 2] - V;
							j = F[L + 3] - M
						} else {
							O = V - F[L - 2] + 1;
							j = M - F[L - 1]
						}
						if (Q == 0 || Q != o - 1 && N < 0) {
							K = F[L + J] - V;
							$ = 1 + F[L + J + 1] - M
						} else {
							K = V - F[L - J];
							$ = M - F[L - J + 1] + 1
						}
						F[L] = -(O * a + K * N - V);
						F[L + 1] = -(j * a + $ * N - M)
					}
					n++
				}
			}
	};
	H.SX.a0n = function (F) {
		var P = F[0],
			o = F[0],
			X = F[1],
			Y = F[1];
		for (var w = 0; w < F.length; w += 2) {
			var y = F[w],
				z = F[w + 1];
			if (y < P) P = y;
			else if (y > o) o = y;
			if (z < X) X = z;
			else if (z > Y) Y = z
		}
		return [P, X, o, Y]
	};
	H.ajA = function (F, P, o, X, Y) {
		function y(C, S, g7, g_) {
			return Math.sqrt((C - g7) * (C - g7) + (S - g_) * (S - g_))
		}

		function z(C, S) {
			return C >= 0 && C < P && S >= 0 && S < o
		}

		function s(C) {
			if (C < 0) return 0;
			if (C >= P) return P - 1;
			return C
		}

		function t(C) {
			if (C < 0) return 0;
			if (C >= o) return o - 1;
			return C
		}

		function d(w, C) {
			var S = C[3] * (1 / 255),
				g7 = X[w] + C[0] * S;
			if (g7 > 255) g7 = 255;
			X[w] = g7;
			g7 = X[w + 1] + C[1] * S;
			if (g7 > 255) g7 = 255;
			X[w + 1] = g7;
			g7 = X[w + 2] + C[2] * S;
			if (g7 > 255) g7 = 255;
			X[w + 2] = g7
		}

		function U(C, S, g7) {
			if (!x(C, S)) return;
			if (g7[3] < 0) g7[3] = 0;
			d((S * P + C) * 4, g7)
		}

		function v(C) {
			var S = C.slice(0, 3);
			S[3] = 0;
			return S
		}
		var A = P / 800;

		function Z(C) {
			return Math.round(C * A)
		}

		function D() {
			for (var w = 0; w <= 300; w++) {
				T[w] = q(w)
			}
		}

		function q(o) {
			var C = .8,
				S = .2,
				g7 = C * S,
				g_ = o / 60 % 2 - 1,
				fw = g7 * (1 - g_ * g_),
				dT = S - g7,
				g4;
			if (o < 60) {
				g4 = [g7 + dT, fw, 0]
			} else if (o < 120) {
				g4 = [fw, g7, 0]
			} else if (o < 180) {
				g4 = [0, g7, fw]
			} else if (o < 240) {
				g4 = [0, fw, g7]
			} else if (o < 300) {
				g4 = [fw, 0, g7]
			} else {
				g4 = [g7, 0, fw]
			}
			return [(g4[0] + dT) * 255, (g4[1] + dT) * 255, (g4[2] + dT) * 255]
		}

		function R(o) {
			return T[~~o]
		}

		function J(C) {
			return 1 - W(C)
		}

		function W(C) {
			return C - ~~C
		}

		function p(C, S, g7, g_) {
			j(C, S, g7, 0, S + 1, 1, g_)
		}

		function n(C, S, g7, g_, fw, dT) {
			j(C, S, g7, 0, g_, 1, fw, dT)
		}

		function b(C) {
			for (var w = 0; w < X.length; w += 4) {
				d(w, C)
			}
		}

		function Q(C, S, g7, g_, fw, dT, g4, bB) {
			_(C, S, g7, g_, fw, 1, dT, g4, bB)
		}

		function _(C, S, g7, g_, fw, dT, g4, bB, d1) {
			if (dT == null) dT = .5;
			if (g4 == null) g4 = 0;
			if (bB == null) bB = 0;
			if (d1 == null) d1 = !1;
			var f_ = C.x,
				g$ = C.y,
				eT = g7.slice(0),
				dz = ~~(g7[3] * a9);
			g_ = g_ * a9;
			if (!d1) {
				S = $(S);
				fw = $(fw);
				g4 = $(g4);
				bB = $(bB)
			}
			var i4 = s(f_ - S),
				fy = s(f_ + S);
			for (var cN = i4; cN <= fy; cN++) {
				var fP = cN - f_,
					du = Math.floor(Math.sqrt(S * S - fP * fP)),
					ea = t(g$ - du),
					cF = t(g$);
				for (var gB = ea; gB <= cF; gB++) {
					var bp = y(cN, gB, f_, g$);
					if (bp > S || bp <= S - fw) break;
					var hf = (bp - S + fw) / fw;
					eT[3] = dz - g_ * (dT == 1 ? hf : Math.pow(hf, dT));
					d((gB * P + cN) * 4, eT)
				}
				ea = t(g$ + du);
				for (var gB = ea; gB > cF; gB--) {
					var bp = y(cN, gB, f_, g$);
					if (bp > S || bp <= S - fw) break;
					var hf = (bp - S + fw) / fw;
					eT[3] = dz - g_ * (dT == 1 ? hf : Math.pow(hf, dT));
					d((gB * P + cN) * 4, eT)
				}
			}
			if (g4 > 0) {
				j(C, S + g4, eT, eT[3], g4, 1, 0, 0, !0)
			}
			if (bB > 0) {
				j(C, S - fw, g(g7), -g7[3], bB, 1, 0, 0, !0)
			}
		}

		function L(C, S, g7, g_, fw, dT) {
			j(C, S, g7, g7[3], S + 1, 1, g_, fw, dT)
		}

		function m(C, S, g7, g_, fw) {
			if (fw == null) fw = !1;
			var dT = C.x,
				g4 = C.y;
			g_ *= a9;
			if (!fw) {
				S = $(S);
				g7 = $(g7)
			}
			var bB = s(dT - S),
				d1 = s(dT + S);
			for (var f_ = bB; f_ < d1; f_++) {
				var g$ = f_ - dT,
					eT = ~~Math.sqrt(S * S - g$ * g$),
					dz = t(g4 - eT),
					i4 = t(g4);
				for (var fy = dz; fy <= i4; fy++) {
					var cN = y(f_, fy, dT, g4);
					if (cN > S || cN <= S - g7) break;
					var fP = (S - cN) / g7,
						du = R(300 * fP);
					du[3] = g_;
					d((fy * P + f_) * 4, du)
				}
				dz = t(g4 + eT);
				for (var fy = dz; fy > i4; fy--) {
					var cN = y(f_, fy, dT, g4);
					if (cN > S || cN <= S - g7) break;
					var fP = (S - cN) / g7,
						du = R(300 * fP);
					du[3] = g_;
					d((fy * P + f_) * 4, du)
				}
			}
		}

		function I(E, C) {
			var S = E.sk,
				g7 = E.EU,
				g_ = C.slice(0),
				fw = C[3] * a9,
				dT = Math.abs(g7.y - S.y) > Math.abs(g7.x - S.x);
			if (dT) {
				var g4 = S.x;
				S.x = S.y;
				S.y = g4;
				g4 = g7.x;
				g7.x = g7.y;
				g7.y = g4
			}
			if (S.x > g7.x) {
				var g4 = S;
				S = g7;
				g7 = g4
			}
			var bB = g7.x - S.x,
				d1 = g7.y - S.y,
				f_ = bB == 0 ? 1 : d1 / bB,
				g$ = Math.round(S.x),
				eT = S.y + f_ * (g$ - S.x),
				dz = J(S.x + .5),
				i4 = g$,
				fy = ~~eT;
			if (dT) {
				g_[3] = fw * J(eT) * dz;
				U(fy, i4, g_);
				g_[3] = fw * W(eT) * dz;
				U(fy + 1, i4, g_)
			} else {
				g_[3] = fw * J(eT) * dz;
				U(i4, fy, g_);
				g_[3] = fw * W(eT) * dz;
				U(i4, fy + 1, g_)
			}
			var cN = eT - f_;
			g$ = Math.round(g7.x);
			eT = g7.y + f_ * (g$ - g7.x);
			dz = W(g7.x + .5);
			var fP = g$,
				du = ~~eT;
			if (dT) {
				g_[3] = fw * J(eT) * dz;
				U(du, fP, g_);
				g_[3] = fw * W(eT) * dz;
				U(du + 1, fP, g_)
			} else {
				g_[3] = fw * J(eT) * dz;
				U(fP, du, g_);
				g_[3] = fw * W(eT) * dz;
				U(fP, du + 1, g_)
			}
			if (dT) {
				for (var ea = i4 + 1; ea <= fP - 1; ea++) {
					g_[3] = fw * J(cN);
					U(~~cN, ea, g_);
					g_[3] = fw * W(cN);
					U(~~cN + 1, ea, g_);
					cN += f_
				}
			} else {
				for (var ea = i4 + 1; ea <= fP - 1; ea++) {
					g_[3] = fw * J(cN);
					U(ea, ~~cN, g_);
					g_[3] = fw * W(cN);
					U(ea, ~~cN + 1, g_);
					cN += f_
				}
			}
		}

		function c(C, S, g7, g_) {
			for (var w = 0; w < 4; w++) {
				var fw = C.pV(S + 1.3 * w, g7);
				I(fw, g_, 1)
			}
		}

		function aH(C, S) {
			this.x = Math.round(C);
			this.y = Math.round(S)
		}
		var u = Math.PI / 180;
		aH.prototype.pV = function (C, S) {
			C = C * u;
			var g7 = this.x + S * Math.cos(C),
				g_ = this.y + S * Math.sin(C);
			return new a(this.x, this.y, g7, g_)
		};
		aH.prototype.acO = function (C, S) {
			C = C * u;
			var g7 = this.ej + S * Math.cos(C),
				g_ = this.a9M + S * Math.sin(C);
			return new aH(g7, g_)
		};

		function a(C, S, g7, g_) {
			this.sk = new aH(C, S);
			this.EU = new aH(g7, g_)
		}
		a.prototype.$D = function (C) {
			var S = C * this.sk.x + (1 - C) * this.EU.x,
				g7 = C * this.sk.y + (1 - C) * this.EU.y;
			return new aH(S, g7)
		};
		var N = Q,
			V = L,
			M = p,
			O = n,
			K = m,
			j = _,
			$ = Z,
			x = z,
			g = v,
			T = [];
		D();
		for (var w = 0; w < F.length; w++) {
			X[w] = F[w]
		}
		var E = new a(P * Y[2], o * Y[3], P / 2, o / 2),
			a9 = Y[1],
			ez = [];
		ez[0] = function bN() {
			var C = [80, 40, 15, 60],
				g7 = 0,
				g_ = 0;
			M(E.$D(1.4), 260, C, 10);
			M(E.$D(1), 100, [240, 50, 50, 30], 30);
			V(E.$D(1), 60, [255, 40, 0, 40]);
			var S = [255, 255, 255, 255];
			j(E.$D(1), 70, S, S[3], 58, .5);
			M(E.$D(1), 12, S);
			S[3] = 40;
			N(E.$D(1), 150, S, S[3], 150);
			for (var w = 0; w < 40; w++) {
				g7 += Math.random() * 25;
				g_ = Math.random() * $(300) + $(100);
				var fw = E.$D(1).pV(g7, g_);
				I(E.$D(1).pV(g7, g_), [110, 110, 110, 30])
			}
			V(E.$D(1), 130, [255, 255, 255, 8]);
			var dT = [170, 30, 23, 70];
			O(E.$D(1), 70, dT, 1, 3, 3);
			var g4 = [60, 60, 130, 40];
			M(E.$D(.47), 44, g4, 5);
			M(E.$D(.43), 22, g4, 3);
			g4[3] = 16;
			M(E.$D(.53), 15, g4, 2);
			var bB = [138, 94, 42, 100];
			M(E.$D(.2), 16, bB, 2);
			var d1 = [130, 255, 170, 180];
			V(E.$D(0), 4, d1);
			V(E.$D(-.25), 5, d1);
			bB = [150, 90, 0, 50];
			N(E.$D(-.45), 55, g(bB), -bB[3], 40, 2);
			M(E.$D(-.42), 35, bB, 2);
			M(E.$D(-.5), 15, bB, 2);
			K(E.$D(-1.28), 145, 11, 70);
			var f_ = R(0);
			f_[3] = 50;
			N(E.$D(-1.28), 149, f_, f_[3], 4);
			f_ = R(300);
			f_[3] = 50;
			N(E.$D(-1.28), 155 - 1, g(f_), -f_[3], 3);
			var g$ = [130, 130, 10, 50];
			O(E.$D(-1), 73, g$, 3, 2);
			var eT = [40, 130, 70, 40];
			N(E.$D(-1), 70, g(eT), -eT[3], 35);
			eT = [40, 170, 60, 50];
			M(E.$D(-.7), 25, eT, 4);
			var eT = [70, 110, 50, 60];
			N(E.$D(1.3), 30, g(eT), -eT[3], 11, 3);
			g4 = [0, 50, 210, 80];
			V(E.$D(-.72), 20, g4)
		};
		ez[1] = function cg() {
			V(E.$D(1), 150, [240, 70, 70, 60]);
			M(E.$D(1), 100, [200, 60, 60, 40], 30);
			var C = [255, 255, 255, 255],
				S = 0,
				g7 = 0;
			j(E.$D(1), 75, C, C[3], 63);
			M(E.$D(1), 12, C);
			V(E.$D(1), 270, [200, 200, 200, 20], 10);
			for (var w = 0; w < 10; w++) {
				S += 10 + Math.random() * 40;
				g7 = Math.random() * $(250) + $(80);
				var g_ = E.$D(1).pV(S, g7);
				I(g_, [110, 110, 110, 35])
			}
			S = 5;
			g7 = 100;
			for (var w = 0; w < 12; w++) {
				S += 30;
				c(E.$D(1), S, g7, [90, 90, 90, 40])
			}
			var fw = [150, 40, 23, 100];
			O(E.$D(1), 70, fw, 1, 3, 3);
			var dT = [30, 100, 60, 40];
			V(E.$D(-.9), 180, [255, 255, 255, 20]);
			M(E.$D(-.9), 140, dT, 15);
			var g4 = [170, 80, 25, 15];
			O(E.$D(-.9), 120, g4, 1, 4, 4);
			var bB = [110, 240, 190, 200];
			V(E.$D(-.6), 3, bB);
			bB[3] = 100;
			V(E.$D(-.6), 7, bB);
			var d1 = [230, 120, 40, 85];
			V(E.$D(-.73), 9, d1);
			var f_ = [60, 60, 190, 50];
			M(E.$D(.3), 28, f_, 6);
			f_[3] = 25;
			M(E.$D(.34), 20, f_, 3)
		};
		ez[2] = function d8() {
			var C = [255, 255, 255, 255],
				g7 = 0,
				g_ = 0;
			M(E.$D(1), 13, C);
			j(E.$D(1), 150, C, C[3], 137);
			var S = [120, 80, 35, 20];
			M(E.$D(1.4), 260, S, 10);
			for (var w = 0; w < 40; w++) {
				g7 += 5 + Math.random() * 30;
				g_ = Math.random() * $(300);
				I(E.$D(1).pV(g7, g_), [110, 110, 110, 20])
			}
			var fw = [10, 30, 255, 30];
			M(E.$D(1), 70, fw, 50);
			var dT = [15, 90, 170, 15];
			M(E.$D(1.5), 60, dT);
			var g4 = [220, 220, 20, 50];
			M(E.$D(-1.15), 8, g4, 2);
			var C = [255, 255, 255, 40];
			V(E.$D(-1.18), 6, C);
			V(E.$D(-1.18), 4, C);
			g4 = [110, 110, 10, 8];
			N(E.$D(-1.2), 32, g(g4), -g4[3], 20, 3);
			var bB = [5, 0, 16, 255];
			for (var w = 0; w < 4; w++) {
				M(E.$D(-1.36), 10, bB, 3)
			}
			var d1 = [90, 200, 150, 20],
				f_ = d1.slice(0);
			f_[3] *= 2;
			M(E.$D(-1.32), 7, f_, 3);
			M(E.$D(-1.36), 7, f_, 3);
			M(E.$D(-1.4), 7, f_, 3);
			var C = [230, 230, 230, 100];
			V(E.$D(-1.36), 2, C);
			C[3] = 3;
			M(E.$D(-.55), 10, C);
			g4 = [120, 100, 10, 18];
			M(E.$D(-.55), 160, g4, 8);
			M(E.$D(-.55), 80, g4, 4);
			d1[3] = 3;
			f_[3] = 6;
			N(E.$D(-.49), 13, g(f_), -f_[3], 13, 2);
			N(E.$D(-.55), 13, g(f_), -f_[3], 13, 2);
			d1[3] = 20;
			M(E.$D(.15), 25, d1, 3);
			g4[3] = 100;
			V(E.$D(-.52), 3, g4);
			g4 = [200, 200, 50, 40];
			M(E.$D(.27), 1, g4, 4);
			var g$ = [150, 40, 23, 30];
			N(E.$D(1), 80, g(g$), -g$[3], 2, 1)
		};
		return ez[Y[0]]()
	};
	H.Aw = {};
	H.Aw.yT = function (F) {
		var P = F.length,
			e = F[0].length,
			o = new Array(e);
		for (var w = 0; w < e; w++) o[w] = new Array(P);
		for (var w = 0; w < e; w++)
			for (var X = 0; X < P; X++) o[w][X] = F[X][w];
		return o
	};
	H.Aw.gI = function (F, P) {
		var o = F.length,
			e = F[0].length,
			X = new Array(o);
		for (var w = 0; w < o; w++) X[w] = new Array(e);
		for (var w = 0; w < o; w++)
			for (var Y = 0; Y < e; Y++) X[w][Y] = F[w][Y] - P[w][Y];
		return X
	};
	H.Aw.add = function (F, P) {
		var o = F.length,
			e = F[0].length,
			X = new Array(o);
		for (var w = 0; w < o; w++) X[w] = new Array(e);
		for (var w = 0; w < o; w++)
			for (var Y = 0; Y < e; Y++) X[w][Y] = F[w][Y] + P[w][Y];
		return X
	};
	H.Aw.multiply = function (F, P) {
		var o = F.length,
			X = F[0].length,
			e = P[0].length;
		if (X != P.length) throw "e";
		var Y = new Array(o);
		for (var w = 0; w < o; w++) Y[w] = new Array(e);
		if ((X & 1) != 0)
			for (var w = 0; w < o; w++) {
				var y = F[w],
					z = Y[w];
				for (var s = 0; s < e; s++) {
					var t = 0;
					for (var d = 0; d < X; d++) t += y[d] * P[d][s];
					z[s] = t
				}
			} else
				for (var w = 0; w < o; w++) {
					var y = F[w],
						z = Y[w];
					for (var s = 0; s < e; s++) {
						var t = 0;
						for (var d = 0; d < X; d += 2) t += y[d] * P[d][s] + y[d + 1] * P[d + 1][s];
						z[s] = t
					}
				}
		return Y
	};
	H.Aw.c$ = function (F, P) {
		var o = F.length,
			e = F[0].length,
			X = new Array(o);
		for (var w = 0; w < o; w++) {
			var Y = 0;
			for (var y = 0; y < e; y++) Y += F[w][y] * P[y];
			X[w] = Y
		}
		return X
	};
	H.Aw.Di = function (F, P) {
		var o = [];
		for (var w = 0; w < F; w++) {
			o.push([]);
			for (var X = 0; X < P; X++) o[w].push(0)
		}
		return o
	};
	H.Aw.afQ = function (F) {
		for (var w = 0; w < F.length; w++) console.log(JSON.stringify(F[w]))
	};
	H.Aw.a7l = function (F) {
		var P = [];
		for (var w = 0; w < F.length; w++) P.push(F[w].join(","));
		return "[" + P.join(";") + "]"
	};
	H.Aw.mm = function (F, P) {
		var o = F.length;
		for (var X = 0; X < o; X++) {
			var Y = 0,
				y = Number.NEGATIVE_INFINITY;
			for (var w = X; w < o; w++)
				if (Math.abs(F[w][X]) > y) {
					Y = w;
					y = Math.abs(F[w][X])
				} H.Aw.aaZ(F, X, Y);
			for (var w = X + 1; w < o; w++) {
				if (F[X][X] == 0) return 1;
				var z = F[w][X] / F[X][X];
				for (var s = X; s < o + 1; s++) F[w][s] -= F[X][s] * z
			}
		}
		for (var w = o - 1; w >= 0; w--) {
			if (F[w][w] == 0) return 1;
			var t = F[w][o] / F[w][w];
			P[w] = t;
			for (var s = w - 1; s >= 0; s--) {
				F[s][o] -= F[s][w] * t;
				F[s][w] = 0
			}
		}
		return 0
	};
	H.Aw.aaZ = function (F, P, o) {
		var X = F[P];
		F[P] = F[o];
		F[o] = X
	};
	H.Aw.acn = function (F) {
		var P = F.length,
			o = H.Aw.Di(P, P);
		for (var w = 0; w < P; w++) o[w][w] = F[w];
		return o
	};
	H.Aw.aji = function (F) {
		var P = F.length,
			o = F[0].length,
			X = new Array(P);
		for (var w = 0; w < P; w++) {
			X[w] = 0;
			for (var Y = 0; Y < o; Y++) X[w] += F[w][Y];
			X[w] /= o
		}
		return X
	};
	H.Aw.w_ = function (F) {
		var P = 0;
		for (var w = 0; w < F.length; w++) P += F[w] * F[w];
		return Math.sqrt(P)
	};
	H.t1 = {};
	H.t1.kk = function (F) {
		var P = ~~(F + .5);
		return P < 0 ? 0 : P > 255 ? 255 : P
	};
	H.t1.transform = function (F, P, o) {
		var X = H.t1.kk,
			Y = F.U.length;
		for (var w = 0; w < Y; w++) {
			var y = F.U[w],
				z = F.S[w],
				s = F.i[w];
			P.U[w] = X(o[0] * y + o[1] * z + o[2] * s + o[3] * 255);
			P.S[w] = X(o[4] * y + o[5] * z + o[6] * s + o[7] * 255);
			P.i[w] = X(o[8] * y + o[9] * z + o[10] * s + o[11] * 255)
		}
	};
	H.t1.at = function (F, P, o) {
		var X = H.t1.kk,
			Y = F.length;
		for (var w = 0; w < Y; w += 4) {
			var y = F[w],
				z = F[w + 1],
				s = F[w + 2];
			P[w] = X(o[0] * y + o[1] * z + o[2] * s + o[3] * 255);
			P[w + 1] = X(o[4] * y + o[5] * z + o[6] * s + o[7] * 255);
			P[w + 2] = X(o[8] * y + o[9] * z + o[10] * s + o[11] * 255)
		}
	};
	H.t1.$u = function (F) {
		var P = F[0] + F[1] + F[2],
			o = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1];
		if (P == 1) {
			var X = F.indexOf(1);
			o[X] = o[X + 4] = o[X + 8] = 1
		} else {
			o[0] = F[0];
			o[5] = F[1];
			o[10] = F[2]
		}
		return o
	};
	H.t1.$_ = function (F, P, o) {
		return [1, 0, 0, F, 0, 1, 0, P, 0, 0, 1, o, 0, 0, 0, 1]
	};
	H.t1.$O = function (F, P, o) {
		return [F, 0, 0, 0, 0, P, 0, 0, 0, 0, o, 0, 0, 0, 0, 1]
	};
	H.t1.a8x = function (F) {
		return [F[0], F[1], F[2], F[4], F[5], F[6], F[8], F[9], F[10]]
	};
	H.t1.v9 = function (F) {
		return [F[0], F[1], F[2], 0, F[3], F[4], F[5], 0, F[6], F[7], F[8], 0, 0, 0, 0, 1]
	};
	H.t1.UE = function (F, P) {
		return [F[0] * P[0] + F[1] * P[1] + F[2] * P[2] + F[3] * P[3], F[4] * P[0] + F[5] * P[1] + F[6] * P[2] + F[7] * P[3], F[8] * P[0] + F[9] * P[1] + F[10] * P[2] + F[11] * P[3], F[12] * P[0] + F[13] * P[1] + F[14] * P[2] + F[15] * P[3]]
	};
	H.t1.yT = function (F) {
		var P = [];
		P[0] = F[0];
		P[1] = F[4];
		P[2] = F[8];
		P[3] = F[12];
		P[4] = F[1];
		P[5] = F[5];
		P[6] = F[9];
		P[7] = F[13];
		P[8] = F[2];
		P[9] = F[6];
		P[10] = F[10];
		P[11] = F[14];
		P[12] = F[3];
		P[13] = F[7];
		P[14] = F[11];
		P[15] = F[15];
		return P
	};
	H.t1.multiply = function (F, P) {
		var o = [];
		o[0] = F[0] * P[0] + F[1] * P[4] + F[2] * P[8] + F[3] * P[12];
		o[1] = F[0] * P[1] + F[1] * P[5] + F[2] * P[9] + F[3] * P[13];
		o[2] = F[0] * P[2] + F[1] * P[6] + F[2] * P[10] + F[3] * P[14];
		o[3] = F[0] * P[3] + F[1] * P[7] + F[2] * P[11] + F[3] * P[15];
		o[4] = F[4] * P[0] + F[5] * P[4] + F[6] * P[8] + F[7] * P[12];
		o[5] = F[4] * P[1] + F[5] * P[5] + F[6] * P[9] + F[7] * P[13];
		o[6] = F[4] * P[2] + F[5] * P[6] + F[6] * P[10] + F[7] * P[14];
		o[7] = F[4] * P[3] + F[5] * P[7] + F[6] * P[11] + F[7] * P[15];
		o[8] = F[8] * P[0] + F[9] * P[4] + F[10] * P[8] + F[11] * P[12];
		o[9] = F[8] * P[1] + F[9] * P[5] + F[10] * P[9] + F[11] * P[13];
		o[10] = F[8] * P[2] + F[9] * P[6] + F[10] * P[10] + F[11] * P[14];
		o[11] = F[8] * P[3] + F[9] * P[7] + F[10] * P[11] + F[11] * P[15];
		o[12] = F[12] * P[0] + F[13] * P[4] + F[14] * P[8] + F[15] * P[12];
		o[13] = F[12] * P[1] + F[13] * P[5] + F[14] * P[9] + F[15] * P[13];
		o[14] = F[12] * P[2] + F[13] * P[6] + F[14] * P[10] + F[15] * P[14];
		o[15] = F[12] * P[3] + F[13] * P[7] + F[14] * P[11] + F[15] * P[15];
		return o
	};
	H.t1.nJ = function (F) {
		var P = [];
		P[0] = F[5] * F[10] * F[15] - F[5] * F[14] * F[11] - F[6] * F[9] * F[15] + F[6] * F[13] * F[11] + F[7] * F[9] * F[14] - F[7] * F[13] * F[10];
		P[1] = -F[1] * F[10] * F[15] + F[1] * F[14] * F[11] + F[2] * F[9] * F[15] - F[2] * F[13] * F[11] - F[3] * F[9] * F[14] + F[3] * F[13] * F[10];
		P[2] = F[1] * F[6] * F[15] - F[1] * F[14] * F[7] - F[2] * F[5] * F[15] + F[2] * F[13] * F[7] + F[3] * F[5] * F[14] - F[3] * F[13] * F[6];
		P[3] = -F[1] * F[6] * F[11] + F[1] * F[10] * F[7] + F[2] * F[5] * F[11] - F[2] * F[9] * F[7] - F[3] * F[5] * F[10] + F[3] * F[9] * F[6];
		P[4] = -F[4] * F[10] * F[15] + F[4] * F[14] * F[11] + F[6] * F[8] * F[15] - F[6] * F[12] * F[11] - F[7] * F[8] * F[14] + F[7] * F[12] * F[10];
		P[5] = F[0] * F[10] * F[15] - F[0] * F[14] * F[11] - F[2] * F[8] * F[15] + F[2] * F[12] * F[11] + F[3] * F[8] * F[14] - F[3] * F[12] * F[10];
		P[6] = -F[0] * F[6] * F[15] + F[0] * F[14] * F[7] + F[2] * F[4] * F[15] - F[2] * F[12] * F[7] - F[3] * F[4] * F[14] + F[3] * F[12] * F[6];
		P[7] = F[0] * F[6] * F[11] - F[0] * F[10] * F[7] - F[2] * F[4] * F[11] + F[2] * F[8] * F[7] + F[3] * F[4] * F[10] - F[3] * F[8] * F[6];
		P[8] = F[4] * F[9] * F[15] - F[4] * F[13] * F[11] - F[5] * F[8] * F[15] + F[5] * F[12] * F[11] + F[7] * F[8] * F[13] - F[7] * F[12] * F[9];
		P[9] = -F[0] * F[9] * F[15] + F[0] * F[13] * F[11] + F[1] * F[8] * F[15] - F[1] * F[12] * F[11] - F[3] * F[8] * F[13] + F[3] * F[12] * F[9];
		P[10] = F[0] * F[5] * F[15] - F[0] * F[13] * F[7] - F[1] * F[4] * F[15] + F[1] * F[12] * F[7] + F[3] * F[4] * F[13] - F[3] * F[12] * F[5];
		P[11] = -F[0] * F[5] * F[11] + F[0] * F[9] * F[7] + F[1] * F[4] * F[11] - F[1] * F[8] * F[7] - F[3] * F[4] * F[9] + F[3] * F[8] * F[5];
		P[12] = -F[4] * F[9] * F[14] + F[4] * F[13] * F[10] + F[5] * F[8] * F[14] - F[5] * F[12] * F[10] - F[6] * F[8] * F[13] + F[6] * F[12] * F[9];
		P[13] = F[0] * F[9] * F[14] - F[0] * F[13] * F[10] - F[1] * F[8] * F[14] + F[1] * F[12] * F[10] + F[2] * F[8] * F[13] - F[2] * F[12] * F[9];
		P[14] = -F[0] * F[5] * F[14] + F[0] * F[13] * F[6] + F[1] * F[4] * F[14] - F[1] * F[12] * F[6] - F[2] * F[4] * F[13] + F[2] * F[12] * F[5];
		P[15] = F[0] * F[5] * F[10] - F[0] * F[9] * F[6] - F[1] * F[4] * F[10] + F[1] * F[8] * F[6] + F[2] * F[4] * F[9] - F[2] * F[8] * F[5];
		var o = F[0] * P[0] + F[1] * P[4] + F[2] * P[8] + F[3] * P[12];
		for (var w = 0; w < 16; w++) P[w] /= o;
		return P
	};
	H.t1.agL = function (F) {
		var P = [],
			o = F[5] * F[10] * F[15] - F[5] * F[14] * F[11] - F[6] * F[9] * F[15] + F[6] * F[13] * F[11] + F[7] * F[9] * F[14] - F[7] * F[13] * F[10],
			X = -F[4] * F[10] * F[15] + F[4] * F[14] * F[11] + F[6] * F[8] * F[15] - F[6] * F[12] * F[11] - F[7] * F[8] * F[14] + F[7] * F[12] * F[10],
			Y = F[4] * F[9] * F[15] - F[4] * F[13] * F[11] - F[5] * F[8] * F[15] + F[5] * F[12] * F[11] + F[7] * F[8] * F[13] - F[7] * F[12] * F[9],
			y = -F[4] * F[9] * F[14] + F[4] * F[13] * F[10] + F[5] * F[8] * F[14] - F[5] * F[12] * F[10] - F[6] * F[8] * F[13] + F[6] * F[12] * F[9];
		return F[0] * o + F[1] * X + F[2] * Y + F[3] * y
	};
	H.t1.ro = H.t1.v9([3.1338561, -1.6168667, -.4906146, -.9787684, 1.9161415, .033454, .0719453, -.2289914, 1.4052427]);
	H.t1.afh = H.t1.v9([1.9624274, -.6105343, -.3413404, -.9787684, 1.9161415, .033454, .0286869, -.1406752, 1.3487655]);
	H.t1.adC = H.t1.nJ(H.t1.ro);
	H.yJ = {};
	H.yJ.sm = new Uint32Array(1);
	H.yJ.Wo = function (F, P, o, X, Y, y) {
		var z = new Uint32Array(F),
			s = 0,
			t = H.yJ.sm;
		if (t.length < P * 4) H.yJ.sm = t = new Uint32Array(P * 4);
		var d = new Float64Array(t.buffer);
		for (var w = 0; w < P; w += 2) {
			var U = Y[w],
				v = Y[w + 1],
				A = y[w],
				Z = y[w + 1];
			t[s] = v;
			d[s + 2 >> 1] = A;
			t[s + 1] = z[U];
			z[U] = s + 1;
			s += 4;
			t[s] = U;
			d[s + 2 >> 1] = Z;
			t[s + 1] = z[v];
			z[v] = s + 1;
			s += 4
		}
		return {
			GI: t,
			gQ: d,
			CY: z
		}
	};
	H.yJ.mm = function (F, P, o, X, Y, y, z) {
		var s = 1,
			t = H.yJ.Wo(F, P, o, X, Y, y),
			d = t.GI,
			U = t.gQ,
			v = t.CY,
			A = new Uint32Array(F),
			Z = new H.yJ.jy(F),
			q = 1,
			n = 0;
		Z.push(o);
		Z.push(X);
		var D = new H.yJ.jy(F),
			R = new Uint8Array(F),
			J = new Uint32Array(F);
		R[o] = 1;
		R[X] = 2;
		var W = new Uint32Array(F),
			p = new Uint32Array(F);
		p[o] = p[X] = 0;
		W[o] = W[X] = 1;
		while (!0) {
			var b = -1,
				u = 0,
				M = 1e30;
			while (!Z.SY() && b == -1) {
				var Q = Z.top(),
					_ = R[Q],
					L = v[Q] - 1;
				while (L != -1) {
					var m = d[L],
						I = R[m],
						c = L ^ _ - 1 << 2;
					if (U[c + 2 >> 1] != 0) {
						if (I == 0) {
							H.yJ.im(Q, L, m, R, J, p, W);
							Z.push(m)
						} else if (I == _ && W[m] <= W[Q] && p[m] > p[Q]) H.yJ.im(Q, L, m, R, J, p, W);
						else if (I != _) {
							b = c
						}
					}
					L = d[L + 1] - 1
				}
				if (b != -1) break;
				Z.pop()
			}
			if (b == -1) {
				break
			}
			q++;
			var a = b;
			while (a != -1) {
				A[u] = a;
				u++;
				a = J[d[a ^ 4]] - 1
			}
			var N = u >> 1;
			for (var w = 0; w < N; w++) {
				var V = A[w];
				A[w] = A[u - w - 1];
				A[u - w - 1] = V
			}
			a = J[d[b]] - 1;
			while (a != -1) {
				A[u] = a ^ 4;
				u++;
				a = J[d[a ^ 4]] - 1
			}
			for (var w = 0; w < u; w++) M = Math.min(M, U[A[w] + 2 >> 1]);
			n += M;
			if (n >= z) return {
				Rv: null,
				xy: n
			};
			for (var w = 0; w < u; w++) {
				var O = A[w],
					K = O ^ 4,
					Q = d[K],
					m = d[O];
				U[O + 2 >> 1] -= M;
				U[K + 2 >> 1] += M;
				if (U[O + 2 >> 1] == 0 && R[Q] == R[m]) {
					if (R[Q] == 1) {
						J[m] = 0;
						D.push(m)
					}
					if (R[Q] == 2) {
						J[Q] = 0;
						D.push(Q)
					}
				}
			}
			while (!D.SY()) {
				var Q = D.pop(),
					_ = R[Q],
					L = v[Q] - 1,
					j = _ == 1 ? 4 : 0,
					$ = 0,
					x = 0,
					g = 1e9;
				while (L != -1) {
					var m = d[L],
						T = L ^ 4,
						c = L ^ j;
					if (R[m] == _ && U[c + 2 >> 1] > 0 && H.yJ.af_(m, o, X, J, d, q, W, p) + 1 < g) {
						$ = m;
						x = T;
						g = p[m] + 1
					}
					L = d[L + 1] - 1
				}
				if (x != 0) {
					H.yJ.im($, x, Q, R, J, p, W);
					continue
				}
				L = v[Q] - 1;
				while (L != -1) {
					var m = d[L],
						c = L ^ j;
					if (R[m] == _) {
						if (U[c + 2 >> 1] > 0) {
							Z.push(m)
						}
						if (J[m] == L + 1) {
							J[m] = 0;
							D.push(m)
						}
					}
					L = d[L + 1] - 1
				}
				R[Q] = 0;
				Z.remove(Q)
			}
		}
		var E = [];
		for (var w = 0; w < P; w += 2) {
			var Q = Y[w],
				m = Y[w + 1];
			if (R[Q] == 1 && R[m] != 1) {
				E.push(w >> 1)
			}
			if (R[m] == 1 && R[Q] != 1) {
				E.push(P + w >> 1)
			}
		}
		return {
			Rv: E,
			xy: n
		}
	};
	H.yJ.im = function (F, P, o, X, Y, y, z) {
		X[o] = X[F];
		Y[o] = P + 1;
		y[o] = y[F] + 1;
		z[o] = z[F]
	};
	H.yJ.af_ = function (F, P, o, X, Y, y, z, s) {
		var t = F,
			d = X[F] - 1,
			U = 0;
		while (d != -1 && z[F] != y) {
			F = Y[d ^ 4];
			d = X[F] - 1;
			U++
		}
		if (d == -1 && F != P && F != o) return 1e9;
		var v = s[F] + U;
		U = 0;
		d = X[t] - 1;
		while (t != F) {
			s[t] = v - U;
			U++;
			z[t] = y;
			t = Y[d ^ 4];
			d = X[t] - 1
		}
		return v
	};
	H.yJ.a0X = function (F, P, o, X, Y, y) {
		var z = H.yJ.Wo(F, P, o, X, Y, y),
			s = z.GI,
			t = z.gQ,
			d = z.CY,
			U = 0,
			v = 0,
			A = new Uint32Array(F * 2),
			Z = new H.yJ.bR(F),
			D = 0;
		while (!0) {
			Z.reset();
			Z.push(o);
			for (var w = 0; w < F; w++) A[w << 1] = 0;
			while (!Z.SY()) {
				var q = Z.pop(),
					R = d[q] - 1;
				while (R != -1) {
					D = s[R];
					if (A[D << 1] == 0 && t[R + 2 >> 1] > 0 && D != o) {
						A[D << 1] = q + 1;
						A[(D << 1) + 1] = R;
						Z.push(D)
					}
					R = s[R + 1] - 1
				}
				if (A[X << 1] != 0) {
					break
				}
			}
			if (A[X << 1] == 0) {
				break
			}
			var J = 1e30;
			D = X;
			while (!0) {
				var W = A[D << 1] - 1;
				if (W == -1) break;
				var p = A[(D << 1) + 1];
				J = Math.min(J, t[p + 2 >> 1]);
				D = W
			}
			D = X;
			while (!0) {
				var W = A[D << 1] - 1;
				if (W == -1) break;
				var p = A[(D << 1) + 1],
					n = p ^ 4;
				t[p + 2 >> 1] -= J;
				t[n + 2 >> 1] += J;
				D = W
			}
			U += J
		}
		var b = [];
		for (var w = 0; w < P; w += 2) {
			var W = Y[w],
				D = Y[w + 1];
			if ((A[W << 1] != 0 || W == o) && A[D << 1] == 0 && D != o) {
				b.push(w >> 1)
			}
			if ((A[D << 1] != 0 || D == o) && A[W << 1] == 0 && W != o) {
				b.push(P + w >> 1)
			}
		}
		return {
			Rv: b,
			xy: U
		}
	};
	H.yJ.bR = function (F) {
		F |= F >> 1;
		F |= F >> 2;
		F |= F >> 4;
		F |= F >> 8;
		F |= F >> 16;
		this.NH = new Uint32Array(F + 1);
		this.qj = F;
		this.du = 0;
		this.EK = 0
	};
	H.yJ.bR.prototype = {
		push: function (F) {
			var P = this.EK;
			this.NH[P] = F;
			this.EK = P + 1 & this.qj
		},
		pop: function () {
			var F = this.du,
				P = this.NH[F];
			this.du = F + 1 & this.qj;
			return P
		},
		SY: function () {
			return this.du == this.EK
		},
		reset: function () {
			this.du = 0;
			this.EK = 0
		}
	};
	H.yJ.jy = function (F) {
		F |= F >> 1;
		F |= F >> 2;
		F |= F >> 4;
		F |= F >> 8;
		F |= F >> 16;
		this.NH = new Uint32Array(F + 1);
		this.xO = new Uint32Array(F + 1);
		this.qj = F;
		this.du = 0;
		this.EK = 0
	};
	H.yJ.jy.prototype = {
		top: function () {
			return this.NH[this.du]
		},
		a8Q: function () {
			return this.NH[this.EK]
		},
		push: function (F) {
			if (this.xO[F] != 0) return;
			this.xO[F] = this.EK + 1;
			var P = this.EK;
			this.NH[P] = F;
			this.EK = P + 1 & this.qj
		},
		pop: function () {
			var F = this.du,
				P = this.NH[F];
			this.xO[P] = 0;
			this.du = F + 1 & this.qj;
			return P
		},
		SY: function () {
			return this.du == this.EK
		},
		remove: function (F) {
			var P = this.xO[F] - 1;
			if (P == -1) return;
			this.xO[F] = 0;
			if (P == this.du) {
				this.pop();
				return
			}
			var o = this.pop();
			this.NH[P] = o;
			this.xO[o] = P + 1
		},
		q_: function (w) {
			return w + this.qj + 1 & this.qj
		}
	};
	H.yJ.rP = function (F, P, o) {
		var X = H.yJ.RU(F, P, o);
		if (P < X - 1) H.yJ.rP(F, P, X - 1);
		if (X < o) H.yJ.rP(F, X, o)
	};
	H.yJ.RU = function (F, P, o) {
		var X = F[P + o >>> 1];
		while (P <= o) {
			while (F[P] < X) P++;
			while (F[o] > X) o--;
			if (P <= o) {
				H.yJ.Sy(F, P, o);
				P++;
				o--
			}
		}
		return P
	};
	H.yJ.Sy = function (F, P, o) {
		var X = F[P];
		F[P] = F[o];
		F[o] = X
	};
	H.P$ = {};
	H.P$.acG = function (F) {
		for (var w = 0; w < F.length; w++) H.P$.tq(F, w)
	};
	H.P$.tq = function (F, w) {
		F[w].v.keyShapeInvalidated = {
			t: "bool",
			v: !0
		}
	};
	H.P$.a2v = function (F) {
		for (var w = 0; w < F.length; w++) F[w].v.keyOriginIndex.v = w
	};
	H.P$.Zm = function () {
		return {
			t: "Objc",
			v: {
				classID: "null",
				keyOriginIndex: {
					t: "long",
					v: 0
				},
				keyShapeInvalidated: {
					t: "bool",
					v: !0
				}
			}
		}
	};
	H.P$.ND = function (F) {
		F = F.v;
		var P = {
				Rctn: 2,
				Ln: 4,
				Elps: 5
			},
			o = P[F.classID],
			X = F.topLeft ? H.P$.C5(F) : null,
			Y = null,
			y = 0;
		if (o == 4) {
			var z = F.Strt.v,
				s = F.End.v;
			Y = [z.Hrzn.v.val, z.Vrtc.v.val, s.Hrzn.v.val, s.Vrtc.v.val];
			y = F.Wdth.v.val
		}
		if (o == null) return null;
		return H.P$.Rr(o, o == 4 ? null : H.P$.QO(F), X, Y, y)
	};
	H.P$.Sn = function (F, P, o, X, Y, y) {
		var z = {
			classID: F,
			unitValueQuadVersion: {
				t: "long",
				v: 1
			}
		};
		if (P) H.P$.ev(z, ["Left", "Top", "Rght", "Btom"], P);
		if (o) H.P$.ev(z, ["topLeft", "topRight", "bottomRight", "bottomLeft"], o);
		if (F == "Ln") {
			z.Strt = {
				t: "Objc",
				v: {
					classID: "Pnt",
					Hrzn: {
						t: "UntF",
						v: {
							type: "#Pxl",
							val: X[0]
						}
					},
					Vrtc: {
						t: "UntF",
						v: {
							type: "#Pxl",
							val: X[1]
						}
					}
				}
			}, z.End = {
				t: "Objc",
				v: {
					classID: "Pnt",
					Hrzn: {
						t: "UntF",
						v: {
							type: "#Pxl",
							val: X[2]
						}
					},
					Vrtc: {
						t: "UntF",
						v: {
							type: "#Pxl",
							val: X[3]
						}
					}
				}
			}, z.Wdth = {
				t: "UntF",
				v: {
					type: "#Pxl",
					val: Y
				}
			}
		}
		if (y) z.Nm = {
			t: "TEXT",
			v: y
		};
		return {
			t: "Objc",
			v: z
		}
	};
	H.P$.Rr = function (F, P, o, X, Y) {
		var y = H.P$.Zm(),
			z = y.v;
		delete z.keyShapeInvalidated;
		z.keyOriginType = {
			t: "long",
			v: F
		};
		z.keyOriginResolution = {
			t: "doub",
			v: 75
		};
		if (F == 4) {
			z.keyOriginLineStart = {
				t: "Objc",
				v: {
					classID: "Pnt",
					Hrzn: {
						t: "doub",
						v: X[0]
					},
					Vrtc: {
						t: "doub",
						v: X[1]
					}
				}
			};
			z.keyOriginLineEnd = {
				t: "Objc",
				v: {
					classID: "Pnt",
					Hrzn: {
						t: "doub",
						v: X[2]
					},
					Vrtc: {
						t: "doub",
						v: X[3]
					}
				}
			};
			P = [Math.min(X[0], X[2]), Math.min(X[1], X[3]), Math.max(X[0], X[2]), Math.max(X[1], X[3])];
			z.keyOriginLineWeight = {
				t: "doub",
				v: Y
			}, z.keyOriginLineArrowSt = {
				t: "bool",
				v: !1
			};
			z.keyOriginLineArrowEnd = {
				t: "bool",
				v: !1
			};
			z.keyOriginLineArrWdth = {
				t: "doub",
				v: 0
			};
			z.keyOriginLineArrLngth = {
				t: "doub",
				v: 0
			};
			z.keyOriginLineArrConc = {
				t: "long",
				v: 0
			}
		}
		var s = {
			classID: "unitRect",
			unitValueQuadVersion: {
				t: "long",
				v: 1
			}
		};
		z.keyOriginShapeBBox = {
			t: "Objc",
			v: s
		};
		H.P$.__(z, P);
		if (o != null) {
			var t = {
				classID: "radii",
				unitValueQuadVersion: {
					t: "long",
					v: 1
				}
			};
			z.keyOriginRRectRadii = {
				t: "Objc",
				v: t
			};
			H.P$.xv(z, o)
		}
		return y
	};
	H.P$.O = function (F, P, o, X) {
		var Y = H.P.Cx(P),
			y = H.P.VP(P),
			z = Math.max(Math.abs(P[0]), Math.abs(P[1])),
			s = Math.max(Math.abs(P[3]), Math.abs(P[4]));
		for (var w = 0; w < F.length; w++) {
			var t = F[w].v,
				d = t.keyShapeInvalidated;
			if (d && d.v || t.keyOriginType == null) continue;
			if (o.length != 0 && o.indexOf(w) == -1) continue;
			var U = t.keyOriginType.v;
			if (!Y || !y || X && U == 2 && Math.abs(1 - z / s) > .01) {
				H.P$.tq(F, w);
				continue
			}
			var v = H.P$.sV(t);
			H.P.apply(P, v);
			H.P$.__(t, [Math.min(v[0], v[2]), Math.min(v[1], v[3]), Math.max(v[0], v[2]), Math.max(v[1], v[3])]);
			if (U == 2) {
				var A = H.P$.G4(t),
					Z = new cu(P[0], P[1], P[3], P[4], 0, 0);
				Z.dy();
				if (Z.m == 0) {
					A.push(A.shift());
					Z.rotate(Math.PI / 2);
					Z.dy()
				}
				if (Z.m < 0) {
					var D = A[0];
					A[0] = A[1];
					A[1] = D;
					D = A[2];
					A[2] = A[3];
					A[3] = D
				}
				if (Z.xA < 0) {
					var D = A[0];
					A[0] = A[3];
					A[3] = D;
					D = A[1];
					A[1] = A[2];
					A[2] = D
				}
				if (X)
					for (var q = 0; q < 4; q++) A[q] = A[q] * z;
				H.P$.xv(t, A)
			}
			if (U == 4) {
				t.keyOriginLineWeight.v *= z;
				var R = H.P$.rm(t);
				H.P.apply(P, R);
				H.P$.a3J(t, R)
			}
		}
	};
	H.P$.xc = function (F, P) {
		var o = P.b;
		for (var w = 0; w < F.length; w++) {
			var X = F[w].v,
				Y = X.keyShapeInvalidated,
				v;
			if (Y && Y.v || X.keyOriginType == null) continue;
			var y = X.keyOriginType.v,
				z = H.P$.sV(X),
				s = z[0],
				t = z[1],
				d = z[2],
				U = z[3];
			if (y == 1) v = H.V.Ny.Rect(s, t, d - s, U - t, 0);
			else if (y == 2) {
				var A = H.P$.G4(X);
				v = H.V.Ny.Rect(s, t, d - s, U - t, A)
			} else if (y == 4) {
				var Z = H.P$.rm(X);
				v = H.V.Ny.Qe(Z[0], Z[1], Z[2], Z[3], X.keyOriginLineWeight.v)
			} else if (y == 5) v = H.V.Ny.VO(s, t, d - s, U - t);
			var D = H.V.cx(o, w),
				q = H.V.SD(o, w);
			v[2].IO = o[D].IO;
			var R = o;
			o = o.slice(0, D);
			for (var J = 2; J < v.length; J++) o.push(v[J]);
			for (var J = D + q; J < R.length; J++) o.push(R[J])
		}
		P.b = o;
		P.G2 = !0
	};
	H.P$.bg = function (F) {
		var P = 1e9,
			o = -P,
			X = 1e9,
			Y = -X,
			y = null,
			z = F.Cj(),
			s = z[0],
			t = z[1];
		for (var d = 0; d < t.length; d++) {
			var U = s[t[d]],
				v = U.add.vogk;
			if (v == null) continue;
			var A = U.add.vmsk.p;
			for (var Z = 0; Z < v.length; Z++) {
				var D = v[Z].v,
					q = D.keyShapeInvalidated;
				if (q && q.v || D.keyOriginType == null) continue;
				if (t.length == 1 && A.length != 0 && A.indexOf(Z) == -1) continue;
				var R = D.keyOriginType.v;
				if (R != 4) {
					var J = H.P$.sV(D);
					P = Math.min(P, J[0]);
					X = Math.min(X, J[1]);
					o = Math.max(o, J[2]);
					Y = Math.max(Y, J[3])
				}
				if (R == 2 && y == null) {
					y = H.P$.G4(D)
				}
			}
		}
		return [P < o ? [P, X, o, Y] : null, y]
	};
	H.P$.a5g = function (F, P, o) {
		var X = H.P$.bg(F)[0],
			Y;
		if (X) {
			var y = new cu;
			y.translate(-X[0], -X[1]);
			y.scale(1 / (X[2] - X[0]), 1 / (X[3] - X[1]));
			y.scale(P[2] - P[0], P[3] - P[1]);
			y.translate(P[0], P[1]);
			Y = H.P.Jb(y)
		}
		var z = F.Cj(),
			s = z[0],
			t = z[1];
		for (var d = 0; d < t.length; d++) {
			var U = s[t[d]],
				v = U.add.vogk;
			if (v == null) continue;
			var A = U.add.vmsk.p;
			for (var Z = 0; Z < v.length; Z++) {
				var D = v[Z].v,
					q = D.keyShapeInvalidated;
				if (q && q.v || D.keyOriginType == null) continue;
				if (t.length == 1 && A.length != 0 && A.indexOf(Z) == -1) continue;
				var R = D.keyOriginType.v;
				if (R != 4 && P[0] != null) {
					var P = H.P$.sV(D);
					H.P.apply(Y, P);
					H.P$.__(D, P)
				}
				if (R == 2 && o != null) {
					H.P$.xv(D, o)
				}
			}
		}
	};
	H.P$.sV = function (F) {
		return H.P$.QO(F.keyOriginShapeBBox.v)
	};
	H.P$.QO = function (F) {
		var P = F.Left.v.val,
			o = F.Rght.v.val,
			X = F.Top.v.val,
			Y = F.Btom.v.val;
		return [P, X, o, Y]
	};
	H.P$.__ = function (F, P) {
		H.P$.ev(F.keyOriginShapeBBox.v, ["Left", "Top", "Rght", "Btom"], P)
	};
	H.P$.G4 = function (F) {
		return H.P$.C5(F.keyOriginRRectRadii.v)
	};
	H.P$.C5 = function (F) {
		var P = [],
			o = ["topLeft", "topRight", "bottomRight", "bottomLeft"];
		for (var X = 0; X < 4; X++) P.push(F[o[X]].v.val);
		return P
	};
	H.P$.xv = function (F, P) {
		H.P$.ev(F.keyOriginRRectRadii.v, ["topLeft", "topRight", "bottomRight", "bottomLeft"], P)
	};
	H.P$.ev = function (F, P, o) {
		for (var w = 0; w < 4; w++)
			if (o[w] != null) F[P[w]] = {
				t: "UntF",
				v: {
					type: "#Pxl",
					val: o[w]
				}
			}
	};
	H.P$.rm = function (F) {
		var P = F.keyOriginLineStart.v,
			o = F.keyOriginLineEnd.v;
		return [P.Hrzn.v, P.Vrtc.v, o.Hrzn.v, o.Vrtc.v]
	};
	H.P$.a3J = function (F, P) {
		var o = F.keyOriginLineStart.v,
			X = F.keyOriginLineEnd.v;
		o.Hrzn.v = P[0];
		o.Vrtc.v = P[1];
		X.Hrzn.v = P[2];
		X.Vrtc.v = P[3]
	};
	H.D = {};
	H.D.clone = function (F) {
		return {
			W: F.W.slice(0),
			d: F.d.slice(0)
		}
	};
	H.D.xu = function (F) {
		if (F.length < 6) return !0;
		var P = F.length - 4;
		for (var w = 0; w < P; w += 2)
			if (!H.D.Hx(F[w], F[w + 1], F[w + 2], F[w + 3], F[w + 4], F[w + 5])) return !1;
		if (!H.D.Hx(F[P], F[P + 1], F[P + 2], F[P + 3], F[0], F[1])) return !1;
		if (!H.D.Hx(F[P + 2], F[P + 3], F[0], F[1], F[2], F[3])) return !1;
		return !0
	};
	H.D.Hx = function (F, P, o, X, Y, y) {
		return (P - X) * (Y - o) + (o - F) * (y - X) >= 0
	};
	H.D.X5 = function (F) {
		var P = {},
			o = null,
			X = 0,
			Y = {
				M: 2,
				L: 2,
				Q: 4,
				C: 6
			};
		for (var w = 0; w < F.W.length; w++) {
			var y = F.W[w];
			if (y.charAt(0) == "#") {
				if (P[y] == null) P[y] = {
					d: [],
					W: []
				};
				o = P[y]
			} else if (y != "X") {
				o.W.push(y);
				var z = Y[y];
				if (z == null) z = 0;
				for (var s = 0; s < z; s++) o.d.push(F.d[X + s]);
				X += z
			}
		}
		return P
	};
	H.D.sb = function (F, P) {
		F = H.D.pP(F);
		var o = F.d,
			X = F.W,
			Y = 0,
			y = [],
			z = null;
		for (var w = 0; w < X.length; w++) {
			var s = X[w];
			if (s == "M") {
				z = {
					DP: Y,
					lv: 0,
					Av: !1
				};
				y.push(z);
				Y += 2
			}
			if (s == "C") {
				z.lv++;
				Y += 6
			}
			if (s == "Z") {
				z.Av = !0
			}
		}
		var t = [];
		for (var w = 0; w < y.length; w++)
			if (y[w].lv != 0) t.push(y[w]);
		y = t;
		for (var w = 0; w < y.length; w++) {
			var d = y[w],
				U = d.DP,
				v = U + 2 + d.lv * 6,
				Z = 0;
			d.gx = H.D.nP(o, U, v);
			var A = o[U] == o[v - 2] && o[U + 1] == o[v - 1];
			for (var D = 0; D < d.lv; D++) {
				var q = U + D * 6,
					R = q + 6;
				Z += (o[R] - o[q]) * (o[R + 1] + o[q + 1])
			}
			if (d.lv == 2) {
				var J = function (E, a9, ez) {
						var bN = 1 - ez;
						return bN * bN * bN * E[a9] + 3 * bN * bN * ez * E[a9 + 2] + 3 * bN * ez * ez * E[a9 + 4] + ez * ez * ez * E[a9 + 6]
					},
					W = o[U],
					p = o[U + 1],
					n = o[U + 6],
					b = o[U + 7],
					Q = o[U + 6],
					_ = o[U + 7],
					L = J(o, U, .5),
					m = J(o, U + 1, .5),
					I = J(o, U + 6, .5),
					c = J(o, U + 7, .5);
				Z = (L - W) * (m - p) + (n - L) * (b - m) + (I - n) * (c - b) + (Q - I) * (_ - c)
			}
			if (!A) Z += (o[U] - o[v - 2]) * (o[U + 1] + o[v - 1]);
			d.wJ = Z <= 0
		}
		for (var w = 0; w < y.length - 1; w++)
			for (var q = w + 1; q < y.length; q++) {
				var u = y[w],
					a = y[q];
				if (a.gx.Qh(u.gx)) {
					y[w] = a;
					y[q] = u
				}
			}
		var N = y.length == 0 ? !0 : y[0].wJ,
			V = [{
				type: 6
			}, {
				type: 8,
				all: 0
			}];
		for (var w = 0; w < y.length; w++) {
			var d = y[w],
				U = d.DP,
				v = U + 2 + d.lv * 6,
				A = o[U] == o[v - 2] && o[U + 1] == o[v - 1],
				M = d.Av || A ? 0 : 3,
				O = d.wJ == N && !P ? 1 : 0;
			if (!P && w != 0) {
				if (y[w - 1].gx.Qh(d.gx) && y[w - 1].wJ != d.wJ) O = 0;
				for (var q = 0; q < y.length; q++)
					if (q != w && y[q].gx.Qh(d.gx)) O = 0
			}
			V.push({
				type: M,
				length: d.lv + (A ? 0 : 1),
				IO: O,
				yU: 2
			});
			for (var q = 0; q < d.lv; q++) {
				var Y = U + q * 6,
					K = new aH(o[Y], o[Y + 1]),
					j = new aH(o[Y + 2], o[Y + 3]),
					$;
				if (q == 0) {
					if (A) $ = new aH(o[v - 4], o[v - 3]);
					else $ = K.clone()
				} else $ = new aH(o[Y - 2], o[Y - 1]);
				V.push({
					type: M + 2,
					wU: $,
					_: K,
					dv: j
				})
			}
			if (!A) {
				var x = new aH(o[v - 2], o[v - 1]);
				V.push({
					type: M + 2,
					wU: new aH(o[v - 4], o[v - 3]),
					_: x,
					dv: x.clone()
				})
			}
		}
		for (var q = 0; q < V.length; q++) {
			var g = V[q];
			if (g.type > 5 || g.type == 0 || g.type == 3) continue;
			var T = g.wU.Qn(g._) || g.dv.Qn(g.dv);
			if (!T) {
				var u = g.wU.x * (g._.y - g.dv.y) + g._.x * (g.dv.y - g.wU.y) + g.dv.x * (g.wU.y - g._.y);
				if (Math.abs(u) < 1e-6) T = !0
			}
			if (T) g.type--
		}
		return V
	};
	H.D.xJ = function () {
		function F(X, Y, y, z) {
			if (!z && X.dv.Qn(X._) && Y.wU.Qn(Y._)) {
				y.d.push(Y._.x, Y._.y);
				y.W.push("L")
			} else {
				y.d.push(X.dv.x, X.dv.y, Y.wU.x, Y.wU.y, Y._.x, Y._.y);
				y.W.push("C")
			}
		}

		function P(X, Y, w, y, z, s) {
			var t = Y[w];
			X.d.push(t._.x, t._.y);
			X.W.push("M");
			for (var d = w; d < w + y - 1; d++) F(Y[d], Y[d + 1], X, s);
			if (!z) F(Y[d], Y[w], X, s)
		}

		function o(X, Y) {
			if (Y == null) Y = !1;
			var y = {
				d: [],
				W: []
			};
			for (var w = 0; w < X.length; w++) {
				if (X[w].type > 5) continue;
				var z = X[w].length;
				if (z == 0) continue;
				if (w == X.length - 1) break;
				var s = X[w].type == 3;
				P(y, X, w + 1, z, s, Y);
				if (!s) y.W.push("Z");
				w += z
			}
			return y
		}
		return o
	}();
	H.D.a4O = function (F) {
		var P = F.d,
			o = [],
			X, Y = 0;
		for (var w = 0; w < F.W.length; w++) {
			var y = F.W[w];
			if (y == "C") {
				X.push(P[Y++], P[Y++], P[Y++], P[Y++], P[Y++], P[Y++])
			} else if (y == "Z") {} else {
				X = [];
				if (y != "M") {
					X.push(y);
					w++
				}
				X.push(P[Y++], P[Y++]);
				o.push(X)
			}
		}
		return o
	};
	H.D.n0 = function (F, P, o, X) {
		if (X == null) X = 1e9;
		var Y = 1e9,
			y = 0;
		for (var w = 0; w < F.length; w += 2) {
			var z = P - F[w],
				s = o - F[w + 1],
				t = z * z + s * s;
			if (t < Y) {
				Y = t;
				y = w >>> 1
			}
		}
		return Y < X * X ? y : -1
	};
	H.D.bu = function (F, P, o, X) {
		for (var w = 0; w < F.length; w += 2) {
			var Y = F[w],
				y = F[w + 1],
				z = P[w],
				s = P[w + 1];
			o[w] = Y + (z - Y) * X;
			o[w + 1] = y + (s - y) * X
		}
	};
	H.D.O = function (F, P, o) {
		for (var w = 0; w < F.length; w += 2) {
			var X = F[w],
				Y = F[w + 1];
			o[w] = X * P.m + Y * P.p$ + P.PV;
			o[w + 1] = X * P.i + Y * P.xA + P.ye
		}
	};
	H.D.nP = function (F, P, o) {
		if (P == null) P = 0;
		if (o == null) o = F.length;
		var X = 99999999999,
			Y = -X,
			y = 99999999999,
			z = -y;
		for (var w = P; w < o; w += 2) {
			var s = F[w],
				t = F[w + 1];
			X = Math.min(X, s);
			y = Math.min(y, t);
			Y = Math.max(Y, s);
			z = Math.max(z, t)
		}
		return new ev(X, y, Y - X, z - y)
	};
	H.D.QX = function (F, P) {
		var o = Math.max(P.x, Math.min(P.x + P.Z, F.x)),
			X = Math.max(P.y, Math.min(P.y + P.h, F.y)),
			Y = F.x - o,
			y = F.y - X;
		return Math.sqrt(Y * Y + y * y)
	};
	H.D.pd = function (F) {
		if (F.qr()) return new ev(Math.floor(F.x), Math.floor(F.y), Math.ceil(F.Z), Math.ceil(F.h));
		var P = Math.floor(F.x),
			o = Math.ceil(F.x + F.Z),
			X = Math.floor(F.y),
			Y = Math.ceil(F.y + F.h);
		return new ev(P, X, o - P, Y - X)
	};
	H.D.YI = function (F) {
		return H.D.pd(H.D.nP(F))
	};
	H.D.z0 = function (F) {
		var P = F.x,
			o = F.y,
			X = F.x + F.Z,
			Y = F.y + F.h;
		return {
			W: ["M", "L", "L", "L", "Z"],
			d: [P, o, X, o, X, Y, P, Y]
		}
	};
	H.D.concat = function (F, P, o) {
		if (o == null) o = new cu;
		for (var w = 0; w < P.d.length; w += 2) {
			var X = P.d[w],
				Y = P.d[w + 1];
			F.d.push(X * o.m + Y * o.p$ + o.PV);
			F.d.push(X * o.i + Y * o.xA + o.ye)
		}
		for (var w = 0; w < P.W.length; w++) F.W.push(P.W[w])
	};
	H.D.pP = function (F) {
		var P = F.d,
			o = [],
			X = [],
			Y = 0,
			y = 0,
			z = 0,
			s = 0,
			t = 0,
			d = 0,
			U = 0,
			v = 0,
			A = 0;
		for (var w = 0; w < F.W.length; w++) {
			var Z = F.W[w];
			if (Z == "M") {
				y = P[Y];
				z = P[Y + 1];
				Y += 2;
				X.push(Z);
				o.push(y, z)
			} else if (Z == "C") {
				s = P[Y];
				t = P[Y + 1];
				d = P[Y + 2];
				U = P[Y + 3];
				v = P[Y + 4];
				A = P[Y + 5];
				Y += 6;
				X.push(Z);
				o.push(s, t, d, U, v, A);
				y = v;
				z = A
			} else if (Z == "Q") {
				s = P[Y];
				t = P[Y + 1];
				d = P[Y + 2];
				U = P[Y + 3];
				Y += 4;
				var D = s - y,
					q = t - z,
					R = d - s,
					J = U - t;
				X.push("C");
				o.push(y + 2 / 3 * D, z + 2 / 3 * q, s + 1 / 3 * R, t + 1 / 3 * J, d, U);
				y = d;
				z = U
			} else if (Z == "L") {
				s = P[Y];
				t = P[Y + 1];
				Y += 2;
				var W = s - y,
					p = t - z;
				X.push("C");
				o.push(y, z, s, t, s, t);
				y = s;
				z = t
			} else X.push(Z)
		}
		return {
			W: X,
			d: o
		}
	};
	H.D.akr = function (F) {
		var P = F.d,
			o = [],
			X = [],
			Y = 0;
		for (var w = 0; w < F.W.length; w++) {
			var y = F.W[w];
			if (y == "Q") {
				var z = P[Y - 2],
					s = P[Y - 1],
					t = P[Y],
					d = P[Y + 1],
					U = P[Y + 2],
					v = P[Y + 3];
				Y += 4;
				var A = t - z,
					Z = d - s,
					D = U - t,
					q = v - d;
				X.push("C");
				o.push(z + 2 / 3 * A, s + 2 / 3 * Z, t + 1 / 3 * D, d + 1 / 3 * q, U, v)
			} else {
				var R = 0;
				if (y == "M" || y == "L") R = 2;
				else if (y == "C") R = 6;
				for (var J = 0; J < R; J++) o.push(P[Y + J]);
				Y += R;
				X.push(y)
			}
		}
		return {
			W: X,
			d: o
		}
	};
	H.D.Tm = function (F, P) {
		var o = F.d,
			X = [],
			Y = [],
			y = 0,
			z = 0,
			s = 0,
			t = 0,
			d = 0,
			U = 0,
			v = 0,
			A = 0,
			Z = 0;
		for (var w = 0; w < F.W.length; w++) {
			var D = F.W[w];
			if (D == "M") {
				z = o[y];
				s = o[y + 1];
				y += 2;
				Y.push(D);
				X.push(z, s)
			} else if (D == "C") {
				t = o[y];
				d = o[y + 1];
				U = o[y + 2];
				v = o[y + 3];
				A = o[y + 4];
				Z = o[y + 5];
				y += 6;
				H.D.qC(z, s, t, d, U, v, A, Z, P, Y, X, 0);
				z = A;
				s = Z
			} else Y.push(D)
		}
		return {
			W: Y,
			d: X
		}
	};
	H.D.qC = function (F, P, o, X, Y, y, z, s, t, d, U, v) {
		var A = Math.sqrt((z - F) * (z - F) + (s - P) * (s - P)),
			Z = Math.sqrt((z - Y) * (z - Y) + (s - y) * (s - y)) + Math.sqrt((Y - o) * (Y - o) + (y - X) * (y - X)) + Math.sqrt((o - F) * (o - F) + (X - P) * (X - P)),
			D = (A + Z) / 2;
		if (D <= t) {
			d.push("C");
			U.push(o, X, Y, y, z, s)
		} else {
			var q = 0,
				R = 0,
				J = 0,
				W = 0,
				p = 0,
				n = 0,
				b = 0,
				Q = 0,
				_ = 0,
				L = 0,
				m = 0,
				I = 0,
				c = 0;
			R = (F + o) / 2;
			J = (P + X) / 2;
			W = (o + Y) / 2;
			p = (X + y) / 2;
			n = (Y + z) / 2;
			b = (y + s) / 2;
			Q = (R + W) / 2;
			_ = (J + p) / 2;
			L = (W + n) / 2;
			m = (p + b) / 2;
			I = (Q + L) / 2;
			c = (_ + m) / 2;
			H.D.qC(F, P, R, J, Q, _, I, c, t, d, U, v + 1);
			H.D.qC(I, c, L, m, n, b, z, s, t, d, U, v + 1)
		}
	};
	H.D.sX = function (F, P) {
		var o = F.length - 2,
			X = F[0],
			Y = F[1],
			y = F[o],
			z = F[o + 1],
			s = y - X,
			t = z - Y,
			d = 1 / Math.sqrt(s * s + t * t),
			U = y * Y - z * X,
			v = -1,
			A = -1;
		for (var w = 2; w < o; w += 2) {
			var Z = F[w],
				D = F[w + 1],
				q = Math.abs(t * Z - s * D + U) * d;
			if (q > A) {
				A = q;
				v = w
			}
		}
		if (A < P) return [X, Y, y, z];
		var R = H.D.sX(F.slice(0, v + 2), P),
			J = H.D.sX(F.slice(v), P);
		for (var w = 2; w < J.length; w++) R.push(J[w]);
		return R
	};
	H.D.a2N = function () {
		var F = function (X, Y, y, z, s, t) {
				return (Y - z) * (s - y) + (y - X) * (t - z) >= 0
			},
			P = function (X, Y, y, z, s, t, d, U) {
				var v = d - y,
					A = U - z,
					Z = s - y,
					D = t - z,
					q = X - y,
					R = Y - z,
					J = v * v + A * A,
					W = v * Z + A * D,
					p = v * q + A * R,
					n = Z * Z + D * D,
					b = Z * q + D * R,
					Q = 1 / (J * n - W * W),
					_ = (n * p - W * b) * Q,
					L = (J * b - W * p) * Q;
				return _ >= 0 && L >= 0 && _ + L < 1
			},
			o = function (X) {
				var e = X.length >>> 1,
					w = 0;
				if (e < 3) return [];
				var Y = [],
					y = [];
				for (var w = 0; w < e; w++) y.push(w);
				var z = e;
				while (z > 3) {
					var s = y[(w + 0) % z],
						t = y[(w + 1) % z],
						d = y[(w + 2) % z],
						U = X[2 * s],
						v = X[2 * s + 1],
						A = X[2 * t],
						Z = X[2 * t + 1],
						D = X[2 * d],
						q = X[2 * d + 1],
						R = !1;
					if (F(U, v, A, Z, D, q)) {
						R = !0;
						for (var J = 0; J < z; J++) {
							var W = y[J];
							if (W == s || W == t || W == d) continue;
							if (P(X[2 * W], X[2 * W + 1], U, v, A, Z, D, q)) {
								R = !1;
								break
							}
						}
					}
					if (R) {
						Y.push(s, t, d);
						y.splice((w + 1) % z, 1);
						z--;
						w = 0
					} else if (w++ > 3 * z) break
				}
				Y.push(y[0], y[1], y[2]);
				return Y
			};
		return o
	}();
	H.D.ae7 = function (F, P) {
		var o = {},
			X = {
				W: [],
				d: []
			};
		for (var w = 0; w < P.length; w += 3) {
			var Y = P[w] * 2,
				y = P[w + 1] * 2,
				z = P[w + 2] * 2;
			H.D.ft(F, Y, y, X, o);
			H.D.ft(F, Y, z, X, o);
			H.D.ft(F, y, z, X, o)
		}
		return X
	};
	H.D.ft = function (F, P, o, X, Y) {
		if (P > o) {
			var y = o;
			o = P;
			P = y
		}
		if (Y[P + "," + o]) return;
		Y[P + "," + o] = !0;
		X.W.push("M", "L");
		X.d.push(F[P], F[P + 1], F[o], F[o + 1])
	};
	H.D.pD = function (F, P) {
		var o = [],
			X = F.length;
		for (var w = 0; w < X; w += 2) {
			var Y = F[w],
				y = F[w + 1],
				z = F[(w + 2) % X],
				s = F[(w + 3) % X];
			if (s < y) {
				var t = y;
				y = s;
				s = t
			}
			if (y < P && P < s) {
				var d = (P - y) / (s - y);
				o.push(Y + d * (z - Y))
			}
		}
		o.sort(function (U, v) {
			return U - v
		});
		return o
	};
	H.D.a6i = function (F, P) {
		var o = P.slice(0),
			e = F.length / 2,
			X = [],
			Y = [];
		for (var w = 0; w < e; w++) {
			var y = (w + 1) % e,
				z = F[2 * w] - F[2 * y],
				s = F[2 * w + 1] - F[2 * y + 1];
			Y[w] = Math.sqrt(z * z + s * s)
		}
		for (var w = 0; w < e; w++) {
			var t = (w - 1 + e) % e,
				y = (w + 1) % e,
				d = P[w],
				U = d + P[t],
				v = d + P[y];
			if (U != 0) o[w] = Math.min(o[w], Y[t] * d / U);
			if (v != 0) o[w] = Math.min(o[w], Y[w] * d / v)
		}
		for (var w = 0; w < e; w++) {
			var y = (w + 1) % e,
				A = (w + 2) % e,
				Z = o[w],
				D = o[y],
				q = F[2 * w],
				R = F[2 * w + 1],
				J = F[2 * y],
				W = F[2 * y + 1],
				p = F[2 * A],
				n = F[2 * A + 1],
				b = Y[w],
				Q = Y[y],
				_ = H.D.amg(q, R, J, W, p, n, Z, D, b, Q);
			X.push(_[0], _[1], _[0], _[1], _[2], _[3]);
			X.push(_[2], _[3], _[4], _[5], _[6], _[7])
		}
		return X
	};
	H.D.amg = function (F, P, o, X, Y, y, z, s, t, d) {
		if (t == null) t = Math.sqrt((o - F) * (o - F) + (X - P) * (X - P));
		if (d == null) d = Math.sqrt((Y - o) * (Y - o) + (y - X) * (y - X));
		var U = .553,
			v = 0,
			A = 0,
			Z = 0,
			D = 0;
		if (t != 0) {
			v = (o - F) / t;
			A = (X - P) / t
		}
		if (d != 0) {
			Z = (Y - o) / d;
			D = (y - X) / d
		}
		var q = F + z * v,
			R = P + z * A,
			J = o - s * v,
			W = X - s * A;
		return [q, R, J, W, o - s * v * (1 - U), X - s * A * (1 - U), o + s * Z * (1 - U), X + s * D * (1 - U), o + s * Z, X + s * D]
	};
	H.D.mg = function (F, P, o, X, Y, y, z) {
		var s = F - o,
			t = P - X,
			d = Y - o,
			U = y - X,
			v = 1 / Math.sqrt(s * s + t * t),
			A = 1 / Math.sqrt(d * d + U * U),
			Z = s * v,
			D = t * v,
			q = d * A,
			R = U * A,
			J = D * z,
			W = -Z * z,
			p = -R * z,
			n = q * z,
			b = H.D.Vh(J, W, Z, D, p, n, q, R),
			Q = J + Z * b,
			_ = W + D * b,
			b = H.D.Vh(0, 0, Z, D, Q, _, -D, Z),
			L = Z * b,
			m = D * b;
		return [Math.sqrt(L * L + m * m), Z, D, q, R]
	};
	H.D.Az = function (F, P, o, X, Y, y, z) {
		var s = H.D.mg(F, P, o, X, Y, y, z),
			t = s[0],
			d = s[1],
			U = s[2],
			v = s[3],
			A = s[4],
			Z = Math.atan2(d * A - U * v, d * v + U * A);
		if (Z < 0) {
			Z = Z * -1
		}
		var D = Math.PI - Z,
			q = 4 / 3 * Math.tan(D / 4),
			R = o + t * d,
			J = X + t * U,
			W = o + t * v,
			p = X + t * A,
			n = R + q * z * -d,
			b = J + q * z * -U,
			Q = W + q * z * -v,
			_ = p + q * z * -A;
		return [0, 0, R, J, n, b, Q, _, W, p]
	};
	H.D.Vh = function (F, P, o, X, Y, y, z, s) {
		var t = z * (P - y) - s * (F - Y),
			d = s * o - z * X;
		if (d == 0) return 0;
		return t / d
	};
	H.D.Az(0, 50, 0, 0, 30, 30, 10);
	H.w9 = function () {};
	H.w9.I4 = function (F, P, o, X, Y) {
		var y = o.Z,
			z = o.h,
			s = y * z,
			t = new Int32Array(s),
			e = 0;
		for (var w = 0; w < s; w++)
			if (P[w] != 0) {
				t[w] = e;
				e++
			} else if (F[(w << 2) + 3] < 200) {
			t[w] = -2
		} else t[w] = -1;
		if (e == 0) return;
		var d = new H.sz(e, e),
			U = new Array(3 * e),
			v = new Array(3 * e);
		for (var w = 0; w < v.length; w++) v[w] = U[w] = 0;
		var A = 1 / 255,
			Z = [-y, -1, 1, y],
			D = [],
			q = [];
		for (var R = 0; R < z; R++)
			for (var J = 0; J < y; J++) {
				var W = R * y + J,
					p = W << 2,
					w = t[W],
					n = w * 3,
					b = 0,
					Q = 0,
					_ = 0;
				if (w == -1 || w == -2) continue;
				for (var L = 0; L < 4; L++) {
					if (L == 2) {
						Q = _;
						D[_] = 0;
						q[_] = w;
						_++
					}
					var m = W + Z[L],
						I = m << 2,
						c = t[m];
					if (L == 0 && R == 0 || L == 1 && J == 0 || L == 2 && J == y - 1 || L == 3 && R == z - 1 || c == -2) continue;
					b++;
					if (c == -1) {
						U[n + 0] += F[I + 0];
						U[n + 1] += F[I + 1];
						U[n + 2] += F[I + 2]
					} else {
						D[_] = -1;
						q[_] = c;
						_++;
						if (P[W] == P[m]) {
							U[n + 0] += F[p + 0] - F[I + 0];
							U[n + 1] += F[p + 1] - F[I + 1];
							U[n + 2] += F[p + 2] - F[I + 2]
						}
					}
				}
				D[Q] = b;
				d.Wz(D, q, _)
			}
		for (var w = 0; w < s; w++)
			if (t[w] != -1) {
				var u = w << 2,
					a = t[w],
					N = a * 3;
				v[N] = F[u + 0];
				v[N + 1] = F[u + 1];
				v[N + 2] = F[u + 2]
			} var V = Date.now();
		d.akD(v, U, X, Y);
		console.log(Date.now() - V);
		for (var w = 0; w < s; w++) {
			var a = t[w],
				M = a * 3,
				u = w << 2;
			if (a == -1 || F[u + 3] != 255) continue;
			F[u + 0] = ~~(.5 + Math.max(0, Math.min(255, v[M + 0])));
			F[u + 1] = ~~(.5 + Math.max(0, Math.min(255, v[M + 1])));
			F[u + 2] = ~~(.5 + Math.max(0, Math.min(255, v[M + 2])))
		}
	};
	H.rect = {};
	H.rect._T = function (F, P) {
		var o = [F],
			X = [];
		for (var w = 0; w < P.length; w++) {
			var Y = P[w],
				y = !1;
			for (var z = w + 1; z < P.length; z++) {
				var s = P[z];
				if (s[0] <= Y[0] && s[1] <= Y[1] && Y[2] <= s[2] && Y[3] <= s[3]) {
					y = !0;
					break
				}
			}
			if (!y) X.push(Y)
		}
		P = X;
		for (var w = 0; w < P.length; w++) {
			var Y = P[w];
			for (var z = 0; z < o.length; z++) {
				var s = o[z],
					t = Math.max(Y[0], s[0]),
					d = Math.min(Y[2], s[2]),
					U = Math.max(Y[1], s[1]),
					v = Math.min(Y[3], s[3]);
				if (t < d && U < v) {
					var A = [];
					if (s[1] < Y[1]) {
						var Z = s.slice(0);
						Z[3] = Y[1];
						A.push(Z)
					}
					if (s[0] < Y[0]) {
						var D = s.slice(0);
						D[1] = U;
						D[2] = Y[0];
						A.push(D)
					}
					if (Y[2] < s[2]) {
						var q = s.slice(0);
						q[1] = U;
						q[0] = Y[2];
						A.push(q)
					}
					if (Y[3] < s[3]) {
						var R = [t, v, d, s[3]];
						A.push(R)
					}
					if (A.length != 0) {
						o[z] = A[0];
						for (var J = 1; J < A.length; J++) o.push(A[J])
					}
				}
			}
			o.push(Y);
			o = H.rect.a8W(o)
		}
		o.sort(function (Y, s) {
			return Y[1] != s[1] ? Y[1] - s[1] : Y[0] - s[0]
		});
		return o
	};
	H.rect.a8W = function (F) {
		F = F.slice(0);
		for (var w = 0; w < F.length; w++) {
			var P = F[w],
				o = null;
			if (P[4] != null) continue;
			for (var X = 0; X < F.length; X++) {
				var Y = F[X];
				if (w == X || Y[4] != null) continue;
				var y = P[0] == Y[0],
					z = P[1] == Y[1],
					s = P[2] == Y[2],
					t = P[3] == Y[3];
				if (z && t && (P[2] == Y[0] || P[0] == Y[2])) {
					o = [Math.min(P[0], Y[0]), P[1], Math.max(P[2], Y[2]), P[3]]
				}
				if (y && s && (P[3] == Y[1] || P[1] == Y[3])) {
					o = [P[0], Math.min(P[1], Y[1]), P[2], Math.max(P[3], Y[3])]
				}
				if (o) {
					F[w] = o;
					F.splice(X, 1);
					break
				}
			}
			if (o) {
				w--
			}
		}
		return F
	};
	H.rect.Nl = function (F) {
		var P = new ev;
		for (var w = 0; w < F.length; w++) P = P.s7(F[w]);
		return P
	};
	H.rect.aiw = function (F, P) {
		var o = H.rect.Nl,
			X = new UnionFind(F.length),
			Q = 1e3,
			_ = 1e3;
		for (var w = 0; w < F.length; w++)
			for (var Y = w + 1; Y < F.length; Y++) {
				if (!P) continue;
				var y = F[w],
					z = F[Y],
					v = 1e9,
					A = 1e9;
				if (y.dg(z)) {
					X.link(w, Y);
					continue
				}
				var s = y.x + y.Z,
					t = y.y + y.h,
					d = z.x + z.Z,
					U = z.y + z.h;
				if ((s < z.x || d < y.x) && (t < z.y || U < y.y)) continue;
				if (!(t < z.y || U < y.y)) v = Math.min(Math.abs(s - z.x), Math.abs(y.x - d));
				if (!(s < z.x || d < y.x)) A = Math.min(Math.abs(t - z.y), Math.abs(y.y - U));
				var Z = Math.min(v, A),
					D = Math.min(y.Z, y.h, z.Z, z.h);
				if (Z < .3 * D) X.link(w, Y)
			}
		var q = [],
			R = {};
		for (var w = 0; w < F.length; w++) {
			var J = X.find(w),
				W = F[w];
			if (R[J] == null) {
				R[J] = q.length;
				q.push([])
			}
			q[R[J]].push(W)
		}
		var p = [],
			n = [];
		for (var w = 0; w < q.length; w++) {
			p.push(o(q[w]));
			var b = o(q[w]);
			b.q_ = w;
			n.push(b)
		}
		n.sort(function (O, K) {
			return Math.max(K.h, K.Z) - Math.max(O.h, O.Z)
		});
		var L = new NETXUS.RectanglePacker(Q, _);
		while (!0) {
			var m = !1;
			L.reset(Q, _);
			for (var w = 0; w < n.length; w++) {
				var I = L.findCoords(n[w].Z, n[w].h);
				if (I) {
					n[w].x = I.x;
					n[w].y = I.y
				} else {
					Q = Math.floor(Q * 1.1);
					_ = Math.floor(_ * 1.1);
					m = !0;
					break
				}
			}
			if (m) continue;
			break
		}
		for (var w = 0; w < q.length; w++) {
			var c = n[w],
				u = c.q_,
				a = p[u],
				N = q[u],
				V = c.x - a.x,
				M = c.y - a.y;
			for (var Y = 0; Y < N.length; Y++) N[Y].offset(V, M)
		}
	};
	H.t$ = function () {};
	H.t$.Tn = Math.floor(16 * window.devicePixelRatio);
	H.t$.BQ = {};
	H.t$.Tx = 0;
	H.t$.bs = [
		[12, 76, 2],
		[12, 76, 3],
		[12, 76, 4],
		[12, 76, 5],
		[12, 76, 6]
	];
	H.t$.akH = ["px", "in", "cm", "mm", "%"];
	H.t$.Cc = function (F, P, o) {
		var X = P.NB,
			Y = [1, X, X / 2.54, X / 25.4, P.Z / 100][o];
		return F * Y
	};
	H.t$.Rq = function (F, P, o, X, Y) {
		var y = o.Np.Md,
			z = [1, P, P / 2.54, P / 25.4, X / 100][y],
			s = [2, 3, 2, 1, 2][y];
		F = F / z;
		var t = Math.round(F),
			d = y == 0 && Math.abs(F - t) < 1e-6 ? t + "" : F.toFixed(s);
		if (Y) d += " " + H.t$.akH[y];
		return d
	};
	H.t$.acp = function (F, P, o, X) {
		var Y = o.Np.Md,
			y = [1, P, P / 2.54, P / 25.4, X / 100][Y];
		F = parseFloat(F) * y;
		return F
	};
	H.t$.a8M = function (F, P) {
		var o = Math.round(H.t$.Tn * .5);
		H.t$.Tx = o;
		var X = document.createElement("canvas");
		X.width = X.height = o;
		var Y = X.getContext("2d");
		Y.font = o * 1.5 + "px monospace";
		var y = "0 1 2 3 4 5 6 7 8 9 -".split(" ");
		for (var w = 0; w < y.length; w++) {
			Y.fillStyle = "#" + H.v2(P);
			Y.fillRect(0, 0, o, o);
			Y.fillStyle = "#" + H.v2(F);
			Y.fillText(y[w], 0, o);
			H.t$.BQ[y[w]] = Y.getImageData(0, 0, o, o).data
		}
	};
	H.t$.ams = function (F, P, o) {
		var X = 0,
			Y = 0,
			y = 4 * H.t$.Tn;
		for (var w = 9; w >= 0; w--) {
			var z = Math.pow(10, w);
			if (5 * z * F <= y) {
				X = 5 * z;
				Y = 10;
				break
			}
			if (2 * z * F <= y) {
				X = 2 * z;
				Y = 4;
				break
			}
			if (1 * z * F <= y) {
				X = 1 * z;
				Y = 10;
				break
			}
		}
		if (X == 0) {
			X = 1;
			Y = 10
		}
		var s = Math.ceil(X * F),
			t = H.R(s * H.t$.Tn * 4);
		H.XB(t, 4278190080 | o);
		for (var w = 0; w < H.t$.Tn; w++) H.t$.Hh(t, 4 * w * s, P);
		for (var w = 0; w < s; w++) H.t$.Hh(t, 4 * ((H.t$.Tn - 1) * s + w), P);
		if (X == 2) Y = 2;
		if (X == 5) Y = 5;
		if (X > 1 || X == 1 && s > 20)
			for (var w = 1; w < Y; w++) H.t$.abB(t, w * (s / Y), s, (w & 1) == 1 ? .8 : .7, P);
		return {
			jX: t,
			step: X
		}
	};
	H.t$.abB = function (F, P, o, X, Y) {
		var P = Math.round(P);
		for (var y = Math.round(H.t$.Tn * X); y < H.t$.Tn - 1; y++) H.t$.Hh(F, 4 * (y * o + P), Y)
	};
	H.t$.Hh = function (F, P, o) {
		F[P + 0] = o >> 16 & 255;
		F[P + 1] = o >> 8 & 255;
		F[P + 2] = o & 255
	};
	H.t$.al_ = function (F, P, o) {
		var X = P & 255,
			Y = P >> 8 & 255,
			y = P >> 16 & 255,
			J, W, p, n;
		P = Math.round(X * .6) << 16 | Math.round(Y * .6) << 8 | Math.round(y * .6);
		H.t$.a8M(Math.round(X * .8) << 16 | Math.round(Y * .8) << 8 | Math.round(y * .8), o);
		var z = this.ams(F.F, P, o),
			s = F.PY(0, 0),
			t = F.PY(F.xX.Z, F.xX.h),
			d = Math.floor(s.x / z.step) * z.step,
			U = Math.ceil(t.x / z.step) * z.step,
			v = Math.floor(s.y / z.step) * z.step,
			A = Math.ceil(t.y / z.step) * z.step,
			Z = F._R(d, v),
			D = F._R(U, v),
			q = z.step * F.F,
			R = Math.ceil(q);
		J = F.Pq.data;
		W = new ev(0, 0, F.xX.Z, H.t$.Tn);
		p = new ev(0, 0, R, H.t$.Tn);
		n = new ev(0, Math.round(H.t$.Tn * .08), H.t$.Tx, H.t$.Tx);
		for (var w = 0; w < (U - d) / z.step; w++) {
			p.x = Math.round(Z.x + w * q);
			H.BP(z.jX, p, J, W, p);
			var b = (d + w * z.step).toString(10);
			for (var Q = 0; Q < b.length; Q++) {
				n.x = p.x + 3 + Q * Math.round(H.t$.Tx * .8);
				var _ = H.t$.BQ[b[Q]];
				H.BP(_, n, J, W, n)
			}
		}
		var L = new Uint32Array(z.jX.buffer),
			m = new Uint32Array(z.jX.length);
		for (var I = 0; I < R; I++)
			for (var c = 0; c < H.t$.Tn; c++) {
				m[I * H.t$.Tn + c] = L[c * R + I]
			}
		z.jX = new Uint8Array(m.buffer);
		J = F.Yb.data;
		W = new ev(0, 0, H.t$.Tn, F.xX.h);
		p = new ev(0, 0, H.t$.Tn, R);
		n = new ev(Math.round(H.t$.Tn * .2), 0, H.t$.Tx, H.t$.Tx);
		for (var w = 0; w < (A - v) / z.step; w++) {
			p.y = Math.round(Z.y + w * q);
			H.BP(z.jX, p, J, W, p);
			var b = Math.abs(v + w * z.step).toString(10);
			for (var Q = 0; Q < b.length; Q++) {
				n.y = p.y + 3 + Q * Math.round(H.t$.Tx * 1.15);
				var _ = H.t$.BQ[b[Q]];
				H.BP(_, n, J, W, n)
			}
		}
	};
	H.scale = {};
	H.scale.w7 = document.createElement("canvas");
	H.scale.ui = H.scale.w7.getContext("2d");
	H.scale.a8_ = document.createElement("canvas");
	H.scale.akW = H.scale.a8_.getContext("2d");
	H.scale._$ = function (F, P, o) {
		var X = H.scale.w7,
			Y = H.scale.ui;
		X.width = P;
		X.height = o;
		var y = new ImageData(new Uint8ClampedArray(F.buffer), P, o);
		Y.putImageData(y, 0, 0);
		return Y.createPattern(X, "repeat")
	};
	H.scale.ak5 = function (F, P, o, X, Y, y, z, s) {
		var t = H.scale._6(F, o, X, Y, y, z, s);
		H.Ae(t.data, P)
	};
	H.scale.ahe = function (F, P, o, X, Y, y, z, s) {
		var t = H.scale._6(F, o, X, Y, y, z, s);
		H.Hk(t.data, P)
	};
	H.scale._6 = function (F, P, o, X, Y, y, z) {
		var s = H.scale.w7,
			t = H.scale.ui;
		s.width = P;
		s.height = o;
		t.rect(0, 0, P, o);
		t.translate(y, z);
		t.scale(X, Y);
		t.fillStyle = F;
		t.fill();
		return t.getImageData(0, 0, P, o)
	};
	H.scale.O = function (F, P, o, X, Y) {
		var y = o.clone();
		y.nJ();
		var z = Y.Z,
			s = Y.h,
			t = H.D.z0(P).d;
		H.D.O(t, y, t);
		var d = H.D.YI(t).$X(Y),
			U = d.x,
			v = d.y,
			A = U + d.Z,
			Z = v + d.h,
			D = ~~P.x,
			q = ~~P.y,
			R = ~~P.Z,
			J = ~~P.h;
		for (var W = v; W < Z; W++)
			for (var p = U; p < A; p++) {
				var n = p + .5,
					b = W + .5,
					Q = o.m * n + o.p$ * b + o.PV - D,
					_ = o.i * n + o.xA * b + o.ye - q;
				if (0 <= Q && 0 <= _ && Q < R && _ < J) X[W * z + p] = F[~~_ * R + ~~Q]
			}
	};
	H.scale.akF = function (F, P, o, X, Y) {
		var y = new Uint32Array(F.buffer),
			z = new Uint32Array(X.buffer),
			s = o.clone();
		s.nJ();
		var t = Y.Z,
			d = Y.h,
			U = H.D.z0(P).d;
		H.D.O(U, s, U);
		var v = H.D.YI(U).$X(Y),
			A = v.x,
			Z = v.y,
			D = A + v.Z,
			q = Z + v.h,
			R = ~~P.x,
			J = ~~P.y,
			W = ~~P.Z,
			p = ~~P.h;
		for (var n = Z; n < q; n++)
			for (var b = A; b < D; b++) {
				var Q = b + .5,
					_ = n + .5,
					L = o.m * Q + o.p$ * _ + o.PV - R,
					m = o.i * Q + o.xA * _ + o.ye - J;
				if (0 <= L && 0 <= m && L < W && m < p) z[n * t + b] = y[~~m * W + ~~L]
			}
	};
	H.scale.OM = function (F, P, o, X, Y, y, z) {
		if (z < 1) H.scale.a5B(F, P, o, X, Y, y, Math.round(1 / z));
		else H.scale.ai4(F, P, o, X, Y, y, z)
	};
	H.scale.sI = function (F, P, o, X, Y, y, z, s) {
		if (s) s = s.$X(new ev(0, 0, P, o));
		F = new Uint32Array(F.buffer);
		X = new Uint32Array(X.buffer);
		if (z < 1) H.scale.adJ(F, P, o, X, Y, y, Math.round(1 / z), s);
		else H.scale.aia(F, P, o, X, Y, y, z)
	};
	H.scale.ai4 = function (F, P, o, X, Y, y, z) {
		for (var s = 0; s < o; s++)
			for (var t = 0; t < P; t++) {
				var d = F[s * P + t],
					U = Math.min(z, Y - t * z),
					v = Math.min(z, y - s * z);
				for (var w = 0; w < v; w++)
					for (var A = 0; A < U; A++) X[(z * s + w) * Y + z * t + A] = d
			}
	};
	H.scale.a5B = function (F, P, o, X, Y, y, z) {
		for (var s = 0; s < y; s++)
			for (var t = 0; t < Y; t++) {
				var d = 0,
					U = Math.min(z, P - t * z),
					v = Math.min(z, o - s * z);
				for (var w = 0; w < v; w++)
					for (var A = 0; A < U; A++) d += F[(z * s + w) * P + (z * t + A)];
				X[s * Y + t] = Math.round(d / (U * v))
			}
	};
	H.scale.aia = function (F, P, o, X, Y, y, z) {
		for (var s = 0; s < o; s++)
			for (var t = 0; t < P; t++) {
				var d = F[s * P + t],
					U = Math.min(z, Y - t * z),
					v = Math.min(z, y - s * z);
				for (var w = 0; w < v; w++)
					for (var A = 0; A < U; A++) X[(z * s + w) * Y + z * t + A] = d
			}
	};
	H.scale.adJ = function (F, P, o, X, Y, y, z, s) {
		var t = 0,
			d = Y,
			U = 0,
			v = y;
		if (s) {
			t = Math.floor(s.x / z);
			d = Math.ceil((s.x + s.Z) / z);
			U = Math.floor(s.y / z);
			v = Math.ceil((s.y + s.h) / z)
		}
		for (var A = U; A < v; A++)
			for (var Z = t; Z < d; Z++) {
				var D = 0,
					q = 0,
					R = 0,
					J = 0,
					W = Math.min(z, P - Z * z),
					p = Math.min(z, o - A * z);
				for (var w = 0; w < p; w++)
					for (var n = 0; n < W; n++) {
						var b = F[(z * A + w) * P + z * Z + n],
							Q = b >>> 24;
						D += Q;
						q += Q * (b >>> 16 & 255);
						R += Q * (b >>> 8 & 255);
						J += Q * (b & 255)
					}
				if (D != 0) {
					var _ = 1 / D;
					X[A * Y + Z] = D / (W * p) << 24 | q * _ << 16 | R * _ << 8 | J * _
				} else X[A * Y + Z] = 0
			}
	};
	H.K = {};
	H.K.ahE = function (F, P, o) {
		var X = 128,
			w = 0,
			Y = o.Z,
			y = o.h;
		for (var z = 0; z < y; z++)
			for (var s = 0; s < Y; s++) {
				if (F[w] >= X && (s == 0 || F[w - 1] < X || (s == Y - 1 || F[w + 1] < X) || (z == 0 || F[w - Y] < X) || (z == y - 1 || F[w + Y] < X))) P[w] = 255;
				w++
			}
	};
	H.K.a4U = function (F, P, o, X) {
		var Y = new Uint32Array([4278190080, 4294967295]),
			y = o.Z,
			z = o.h,
			s = 0,
			t = 0,
			d = y,
			U = z;
		if (X) {
			s = X.x - o.x;
			t = X.y - o.y;
			d = s + X.Z;
			U = t + X.h
		}
		var v = new Uint8Array(P.buffer),
			A = new Uint32Array(P.buffer);
		for (var Z = t; Z < U; Z++)
			for (var D = s; D < d; D++) {
				var w = Z * y + D;
				if ((F[w] & 128) != 0 && (Z == 0 || (F[w - y] & 128) == 0 || D == 0 || (F[w - 1] & 128) == 0 || D == y - 1 || (F[w + 1] & 128) == 0 || Z == z - 1 || (F[w + y] & 128) == 0)) {
					A[w] = Y[(D + Z & 4) >>> 2]
				}
			}
	};
	H.K.ac5 = function (F, P, o, X, Y, y) {
		var z = o.Z,
			s = o.h,
			t = 0,
			d = 0,
			U = z,
			v = s;
		if (X) {
			t = X.x - o.x;
			d = X.y - o.y;
			U = t + X.Z;
			v = d + X.h
		}
		var A = new Uint8Array(P.buffer),
			Z = new Uint32Array(P.buffer);
		for (var D = d; D < v; D++)
			for (var q = t; q < U; q++) {
				var w = D * z + q,
					R = F[w];
				if (Y == 1) Z[w] = 255 - R >>> 1 << 24 | 255;
				else Z[w] = 255 << 24 | (R << 16 | R << 8 | R)
			}
	};
	H.pv = {};
	H.pv.f7 = function (F, P, o) {
		var X, Y;
		if (o == "front") {
			X = F.rect.clone();
			Y = H.pv.a99
		}
		if (o == "union") {
			X = F.rect.s7(P.rect);
			Y = H.pv.s7
		}
		if (o == "difference") {
			X = P.rect.clone();
			Y = H.pv.ahT
		}
		if (o == "intersection") {
			X = F.rect.$X(P.rect);
			Y = H.pv.$X
		}
		if (o == "xor") {
			X = F.rect.s7(P.rect);
			Y = H.pv.aaf
		}
		if (X.qr()) return null;
		var y = H.R(X.M());
		H.Lj(P.channel, P.rect, y, X);
		var z = H.R(X.M());
		H.Lj(F.channel, F.rect, z, X);
		Y(z, y, y);
		var s = H.xw(y, X);
		if (s.qr()) return null;
		if (!s.Qn(X)) {
			var t = H.R(s.M());
			H.Lj(y, X, t, s);
			y = t;
			X = s
		}
		return {
			channel: y,
			rect: X
		}
	};
	H.pv.a99 = function (F, P, o) {
		for (var w = 0; w < F.length; w++) o[w] = F[w]
	};
	H.pv.s7 = function (F, P, o) {
		for (var w = 0; w < F.length; w++) o[w] = Math.min(F[w] + P[w], 255)
	};
	H.pv.ahT = function (F, P, o) {
		for (var w = 0; w < F.length; w++) o[w] = Math.max(P[w] - F[w], 0)
	};
	H.pv.$X = function (F, P, o) {
		var X = 1 / 255;
		for (var w = 0; w < F.length; w++) o[w] = F[w] * P[w] * X
	};
	H.pv.aaf = function (F, P, o) {
		var X = 1 / 255;
		for (var w = 0; w < F.length; w++) o[w] = Math.min(F[w] + P[w], 255) - F[w] * P[w] * X
	};
	H.sz = function (F, P) {
		this.B = [];
		this.k5 = [0];
		this.Y7 = [];
		this.M1 = [];
		this.xK = [0];
		this.un = [];
		this.Gf = [];
		this.rows = F;
		this.cols = P
	};
	H.sz.prototype.clone = function () {
		var F = this,
			P = F.rows,
			o = F.cols,
			X = new H.sz(P, o);
		X.B = F.B.slice(0);
		X.k5 = F.k5.slice(0);
		X.Y7 = F.Y7.slice(0);
		X.M1 = F.M1.slice(0);
		X.xK = F.xK.slice(0);
		X.un = F.un.slice(0);
		X.Gf = F.Gf.slice(0);
		return X
	};
	H.sz.prototype.Wz = function (F, P, o) {
		var X = this.k5.length - 1;
		for (var w = 0; w < o; w++) {
			var Y = F[w],
				y = P[w];
			this.B.push(Y);
			this.Y7.push(y);
			if (y == X) {
				this.Gf.push(Y == 0 ? 0 : 1 / Y)
			} else {
				this.M1.push(Y);
				this.un.push(y)
			}
		}
		this.k5.push(this.B.length);
		this.xK.push(this.M1.length)
	};
	H.sz.prototype.c$ = function (F, P) {
		var o = this,
			X = o.rows,
			Y = o.B,
			y = o.Y7;
		if (P == null) P = new Array(X);
		for (var w = 0; w < X; w++) {
			var z = o.k5[w],
				s = o.k5[w + 1],
				t = 0;
			while ((s - z & 3) != 0) {
				t += Y[z] * F[y[z]];
				z++
			}
			for (var d = z; d < s; d += 4) t += Y[d] * F[y[d]] + Y[d + 1] * F[y[d + 1]] + Y[d + 2] * F[y[d + 2]] + Y[d + 3] * F[y[d + 3]];
			P[w] = t
		}
		return P
	};
	H.sz.prototype.multiply = function (F) {
		return this.Rs(F.yT())
	};
	H.sz.prototype.Rs = function (F) {
		var P = this,
			o = P.rows,
			X = P.cols,
			Y = F.rows,
			y = new H.sz(o, Y),
			z = P.Y7,
			s = F.Y7;
		for (var w = 0; w < o; w++) {
			var t = [],
				d = [],
				U = P.k5[w],
				v = P.k5[w + 1];
			for (var A = 0; A < Y; A++) {
				var Z = F.k5[A],
					D = F.k5[A + 1],
					q = 0,
					R = U,
					J = Z;
				while (R < v && J < D) {
					var W = Math.max(z[R], s[J]);
					while (R < v && z[R] < W) R++;
					while (J < D && s[J] < W) J++;
					if (R < v && J < D && z[R] == s[J]) q += P.B[R++] * F.B[J++]
				}
				if (q != 0) {
					t.push(q);
					d.push(A)
				}
			}
			y.Wz(t, d, t.length)
		}
		return y
	};
	H.sz.prototype.yT = function () {
		var F = this.rows,
			P = this.cols,
			o = [];
		for (var w = 0; w < P; w++) o.push([
			[],
			[]
		]);
		var X = this.B,
			Y = this.k5,
			y = this.Y7;
		for (var w = 0; w < F; w++) {
			var z = Y[w],
				s = Y[w + 1];
			for (var t = z; t < s; t++) {
				var d = o[y[t]];
				d[0].push(X[t]);
				d[1].push(w)
			}
		}
		var U = new H.sz(P, F);
		for (var w = 0; w < P; w++) U.Wz(o[w][0], o[w][1], o[w][1].length);
		return U
	};
	H.sz.prototype.AA = function () {
		var F = this.rows,
			P = this.cols,
			o = new Array(F),
			X = this.B,
			Y = this.k5,
			y = this.Y7;
		for (var w = 0; w < F; w++) {
			var z = o[w] = new Array(P);
			for (var s = 0; s < P; s++) z[s] = 0;
			var t = Y[w],
				d = Y[w + 1];
			for (var U = t; U < d; U++) z[y[U]] = X[U]
		}
		return o
	};
	H.sz.prototype.$J = function (F, P, o, X, Y) {
		function y(_, P, L, m) {
			var I = _.length;
			for (var w = 0; w < I; w++) m[w] = _[w] - P[w] * L
		}

		function z(_, P, L, m) {
			var I = _.length,
				c = 0;
			while ((I - c & 3) != 0) {
				m[c] = _[c] + P[c] * L;
				c++
			}
			for (var w = c; w < I; w += 4) {
				m[w] = _[w] + P[w] * L;
				m[w + 1] = _[w + 1] + P[w + 1] * L;
				m[w + 2] = _[w + 2] + P[w + 2] * L;
				m[w + 3] = _[w + 3] + P[w + 3] * L
			}
		}

		function s(_, P, L) {
			var m = _.length;
			for (var w = 0; w < m; w++) L[w] = _[w] * P[w]
		}

		function t(_, P) {
			var L = _.length,
				m = 0,
				I = 0;
			while ((L - m & 3) != 0) {
				I += _[m] * P[m];
				m++
			}
			for (var w = m; w < L; w += 4) I += _[w] * P[w] + _[w + 1] * P[w + 1] + _[w + 2] * P[w + 2] + _[w + 3] * P[w + 3];
			return I
		}
		var d = X != null ? 2 : 1,
			U = Date.now(),
			v = 0,
			A = this,
			Z = F.slice(0),
			D = F.slice(0);
		A.c$(F, D);
		y(P, D, 1, Z);
		var q = this.Gf;
		if (d == 0) {
			q = Z.slice(0);
			q.fill(1)
		}
		var R = Z.slice(0);
		s(q, Z, R);
		var J = R.slice(0),
			W = t(Z, R);
		while (!0) {
			A.c$(J, D);
			var p = W / t(J, D);
			z(F, J, p, F);
			y(Z, D, p, Z);
			if ((v & 7) == 0 && Math.sqrt(t(Z, Z)) < o) break;
			if (d <= 1) s(q, Z, R);
			else {
				var n = Z.slice(0);
				X.a8l(n, Z);
				Y.afX(R, n)
			}
			var b = t(Z, R),
				Q = b / W;
			z(R, J, Q, J);
			W = b;
			v++
		}
	};
	H.sz.prototype.a3j = function (F, P, o, X) {
		var Y = Date.now(),
			y = 1.96,
			s = 0;
		if (o == null) o = 5e-6;
		if (X == null) X = 1e9;
		var z = 1 - y,
			e = this.rows,
			t = this.M1,
			d = this.xK,
			U = this.un,
			v = this.Gf;
		while (!0) {
			var A = 0;
			for (var w = 0; w < e; w++) {
				var Z = P[w],
					D = d[w],
					q = d[w + 1];
				if (q - D == 4) Z -= t[D] * F[U[D]] + t[D + 1] * F[U[D + 1]] + t[D + 2] * F[U[D + 2]] + t[D + 3] * F[U[D + 3]];
				else
					for (var R = D; R < q; R++) Z -= t[R] * F[U[R]];
				var J = F[w] * z + v[w] * Z * y,
					W = J - F[w];
				A += W * W;
				F[w] = J
			}
			if (A / e < o || Date.now() > Y + X) break
		}
	};
	H.sz.prototype.akD = function (F, P, o, X) {
		var Y = Date.now(),
			y = 1.96,
			s = 0;
		if (o == null) o = 5e-5;
		if (X == null) X = 1e9;
		var z = 1 - y,
			e = this.rows,
			t = this.M1,
			d = this.xK,
			U = this.un,
			v = this.Gf;
		while (!0) {
			var A = 0;
			for (var w = 0; w < e; w++) {
				var Z = w * 3,
					D = P[Z],
					q = P[Z + 1],
					R = P[Z + 2],
					J = d[w],
					W = d[w + 1];
				for (var p = J; p < W; p++) {
					var n = t[p],
						b = U[p] * 3;
					D -= n * F[b + 0];
					q -= n * F[b + 1];
					R -= n * F[b + 2]
				}
				var Q = v[w] * y,
					_ = F[Z + 0] * z + D * Q,
					L = F[Z + 1] * z + q * Q,
					m = F[Z + 2] * z + R * Q,
					I = _ - F[Z + 0],
					c = L - F[Z + 1],
					u = m - F[Z + 2];
				A += .4 * I * I + .5 * c * c + .1 * u * u;
				F[Z + 0] = _;
				F[Z + 1] = L;
				F[Z + 2] = m
			}
			if (A / e < o || Date.now() > Y + X) break
		}
	};
	H.JH = {};
	H.JH.Rn = function (F, P, o) {
		return {
			t: "Objc",
			v: {
				classID: "CrPt",
				Hrzn: {
					t: "doub",
					v: F
				},
				Vrtc: {
					t: "doub",
					v: P
				},
				Cnty: {
					t: "bool",
					v: o
				}
			}
		}
	};
	H.JH.O = function (F, P) {
		for (var w = 0; w < F.length; w++) {
			var o = F[w].v,
				X = P.aT(new aH(o.Hrzn.v, o.Vrtc.v));
			o.Hrzn.v = Math.round(X.x);
			o.Vrtc.v = Math.round(X.y)
		}
	};
	H.JH.PN = function (F, P, o) {
		var e = F.length - 1,
			X = H.Aw.Di(e + 1, e + 2);
		for (var w = 1; w < e; w++) {
			X[w][w - 1] = 1 / (F[w] - F[w - 1]);
			X[w][w] = 2 * (1 / (F[w] - F[w - 1]) + 1 / (F[w + 1] - F[w]));
			X[w][w + 1] = 1 / (F[w + 1] - F[w]);
			X[w][e + 1] = 3 * ((P[w] - P[w - 1]) / ((F[w] - F[w - 1]) * (F[w] - F[w - 1])) + (P[w + 1] - P[w]) / ((F[w + 1] - F[w]) * (F[w + 1] - F[w])))
		}
		X[0][0] = 2 / (F[1] - F[0]);
		X[0][1] = 1 / (F[1] - F[0]);
		X[0][e + 1] = 3 * (P[1] - P[0]) / ((F[1] - F[0]) * (F[1] - F[0]));
		X[e][e - 1] = 1 / (F[e] - F[e - 1]);
		X[e][e] = 2 / (F[e] - F[e - 1]);
		X[e][e + 1] = 3 * (P[e] - P[e - 1]) / ((F[e] - F[e - 1]) * (F[e] - F[e - 1]));
		H.Aw.mm(X, o)
	};
	H.JH.a6I = function (F, P, o, X) {
		if (F <= P[0]) return o[0];
		if (F >= P[P.length - 1]) return o[P.length - 1];
		var w = 1;
		while (P[w] < F) w++;
		var Y = P[w],
			y = P[w - 1],
			z = o[w],
			s = o[w - 1],
			t = (F - y) / (Y - y),
			d = X[w - 1] * (Y - y) - (z - s),
			U = -X[w] * (Y - y) + (z - s),
			v = (1 - t) * s + t * z + t * (1 - t) * (d * (1 - t) + U * t);
		return v
	};
	H.JH.bw = function (F, P, o, X) {
		var Y = {
			IY: [F[0]],
			W1: [P[0]],
			H2: []
		};
		X[0] = Y;
		for (var w = 1; w < F.length - 1; w++) {
			Y.IY.push(F[w]);
			Y.W1.push(P[w]);
			if (o[w] == !1) {
				H.JH.PN(Y.IY, Y.W1, Y.H2);
				Y = {
					IY: [F[w]],
					W1: [P[w]],
					H2: []
				}
			}
			X[w] = Y
		}
		Y.IY.push(F[w]);
		Y.W1.push(P[w]);
		H.JH.PN(Y.IY, Y.W1, Y.H2);
		X[w] = Y
	};
	H.JH.Oz = function (F, P, o, X) {
		if (F <= P[0]) return o[0];
		if (F >= P[P.length - 1]) return o[P.length - 1];
		var w = 1;
		while (P[w] < F) w++;
		var Y = X[w - 1];
		return H.JH.a6I(F, Y.IY, Y.W1, Y.H2)
	};
	H.JH.xz = function (F) {
		var P = {
			IY: [],
			W1: [],
			fQ: []
		};
		for (var w = 0; w < F.length; w++) {
			P.IY[w] = F[w].v.Hrzn.v;
			P.W1[w] = F[w].v.Vrtc.v;
			P.fQ[w] = F[w].v.Cnty ? F[w].v.Cnty.v : !0
		}
		return P
	};
	H.JH.QV = function (F, e, P) {
		var o = 0,
			X = 255;
		if (P) {
			o = -1e9;
			X = 1e9
		}
		var Y = H.JH.xz(F),
			y = [];
		H.JH.bw(Y.IY, Y.W1, Y.fQ, y);
		var z = [];
		for (var w = 0; w < e; w++) z[w] = 1 / 255 * Math.max(o, Math.min(X, H.JH.Oz(w * (255 / (e - 1)), Y.IY, Y.W1, y)));
		return z
	};
	H.JH.aax = function (F, e, P) {
		var o = Math.round(F.length / 20),
			X = e - F.length,
			Y = P ? (F[o] - F[0]) / o : 0,
			y = P ? F[0] - X * Y : F[F.length - 1],
			z = [];
		for (var w = 0; w < X; w++) z.push(y + w * Y);
		return P ? z.concat(F) : F.concat(z)
	};
	H.JH.AQ = function (F, e, P) {
		var o = H.JH.xz(F),
			X = [];
		H.JH.bw(o.IY, o.W1, o.fQ, X);
		var Y = new Uint8Array(e),
			y = e / 256;
		for (var w = 0; w < e; w++) Y[w] = Math.max(0, Math.min(e - 1, H.JH.Oz(w * y, o.IY, o.W1, X)));
		if (P) {
			Y[0] = 0;
			if (Y[1] > 100) Y[1] = .4 * Y[1];
			if (Y[2] > 150) Y[1] = .7 * Y[2]
		}
		return Y
	};
	H.JH.OY = function (F, P) {
		var o = new Uint8Array(F.length);
		for (var w = 0; w < F.length; w++) o[w] = P[F[w]];
		return o
	};
	H.JH.m2 = function (F, P, o) {
		var X = i.z("canvas", "");
		X.width = P;
		X.height = o;
		var Y = X.getContext("2d"),
			y = H.JH.AQ(F, 256);
		Y.scale(P / 255, o / 255);
		Y.fillStyle = "#fff";
		Y.fillRect(0, 0, 255, 255);
		Y.fillStyle = "#333";
		Y.beginPath();
		Y.moveTo(0, 255);
		for (var w = 0; w < y.length; w++) Y.lineTo(w, 255 - y[w]);
		Y.lineTo(255, 255);
		Y.closePath();
		Y.fill();
		return X.toDataURL()
	};
	H.style = {};
	H.style.stroke = function (F, P, o, X) {
		var Y = o.Z,
			y = o.h,
			z = new Float64Array(Y * y);
		H.style.QT(F, z, Y, y);
		H.style.IH(P, o, z, o, X)
	};
	H.style.IH = function (F, P, o, X, Y) {
		var y = P.$X(X),
			z = y.Z,
			s = y.h;
		Y += .5;
		var t = y.x - P.x,
			d = y.y - P.y,
			U = P.Z,
			v = y.x - X.x,
			A = y.y - X.y,
			Z = X.Z;
		for (var D = 0; D < s; D++) {
			var q = (D + A) * Z + v,
				R = (D + d) * U + t;
			for (var J = 0; J < z; J++) {
				var W = Math.max(0, Math.min(1, Y - o[q + J]));
				F[R + J] = Math.round(W * 255)
			}
		}
	};
	H.style.abV = function (F, P, o, X) {
		for (var Y = 0; Y < o; Y++)
			for (var y = 0; y < P; y++) {
				var z = Y * P + y,
					s = 0,
					t = 0,
					d = F[z];
				if (y == 0 || Y == 0) {
					s = F[z + 1] - d;
					t = F[z + P] - d
				} else if (y == o - 1 || Y == P - 1) {
					s = d - F[z - 1];
					t = d - F[z - P]
				} else {
					s = F[z + 1] - F[z - 1];
					t = F[z + P] - F[z - P]
				}
				if (s != 0 || t != 0) {
					var U = 1 / Math.sqrt(s * s + t * t);
					s *= U;
					t *= U
				}
				X[z + z] = s;
				X[z + z + 1] = t
			}
	};
	H.style.QT = function (F, P, o, X) {
		var Y = 0,
			y = o * X;
		for (var w = 0; w < y; w++) Y |= F[w];
		if (Y == 0) {
			P.fill(1e9);
			return
		}
		var z = H.style.uX(F, o, X);
		for (var s = 0; s < X; s++)
			for (var t = 0; t < o; t++) {
				var w = s * o + t,
					d = z[w * 2],
					U = z[w * 2 + 1],
					v = (s + U) * o + t + d;
				if (d == 0 && U == 0) {
					P[w] = 0;
					continue
				}
				var A = Math.sqrt(d * d + U * U),
					Z = F[v] * (1 / 255),
					D = 1 / A,
					q = Math.abs(d) * D,
					R = Math.abs(U) * D;
				if (R > q) {
					var J = R;
					R = q;
					q = J
				}
				P[w] = A + H.style.a54(q, R, Z)
			}
	};
	H.style.a54 = function (F, P, o) {
		return (.5 - o) * F
	};
	H.style.uX = function (F, P, o, X) {
		if (X == null) {
			X = !0;
			for (var w = 0; w < F.length; w++) X = X && (F[w] == 0 || F[w] == 255)
		}
		var Y = new Int16Array(P * o * 2);
		if (X) H.style.a8V(F, Y, P, o);
		else H.style.adh(F, Y, P, o);
		return Y
	};
	H.style.adh = function (F, P, o, X) {
		var Y = o * X;
		for (var w = 0; w < Y; w++)
			if (F[w] == 0) {
				P[w * 2] = 16383;
				P[w * 2 + 1] = 16383
			} for (var y = 1; y <= X - 1; y++) {
			var w = y * o;
			for (var z = 0; z <= o - 1; z++) H.style.PD(P, F, o, w + z << 1, -1);
			for (var z = 1; z <= o - 1; z++) H.style.MO(P, F, o, w + z << 1, -1);
			for (var z = o - 2; z >= 0; z--) H.style.MO(P, F, o, w + z << 1, 1)
		}
		for (var y = X - 2; y >= 0; y--) {
			var w = y * o;
			for (var z = 0; z <= o - 1; z++) H.style.PD(P, F, o, w + z << 1, 1);
			for (var z = 1; z <= o - 1; z++) H.style.MO(P, F, o, w + z << 1, -1);
			for (var z = o - 2; z >= 0; z--) H.style.MO(P, F, o, w + z << 1, 1)
		}
	};
	H.style.MO = function (F, P, o, X, Y) {
		var y = (X >>> 1) + Y << 1,
			z = F[X],
			s = F[X + 1],
			t = F[y] + Y,
			d = F[y + 1],
			U = t * t + d * d,
			v = z * z + s * s;
		if (d != 16383 && (z == 16383 || Math.sqrt(U) + (.5 - P[(X >>> 1) + d * o + t] * (1 / 255)) < Math.sqrt(v) + (.5 - P[(X >>> 1) + s * o + z] * (1 / 255)))) {
			F[X] = t;
			F[X + 1] = d
		}
	};
	H.style.PD = function (F, P, o, X, Y) {
		var y = (X >>> 1) + Y * o << 1,
			z = F[X],
			s = F[X + 1],
			t = F[y],
			d = F[y + 1] + Y,
			U = t * t + d * d,
			v = z * z + s * s;
		if (t != 16383 && (z == 16383 || Math.sqrt(U) + (.5 - P[(X >>> 1) + d * o + t] * (1 / 255)) < Math.sqrt(v) + (.5 - P[(X >>> 1) + s * o + z] * (1 / 255)))) {
			F[X] = t;
			F[X + 1] = d
		}
	};
	H.style.a8V = function (F, P, o, X) {
		var Y = o * X;
		for (var w = 0; w < Y; w++)
			if (F[w] == 0) {
				P[w * 2] = 16383;
				P[w * 2 + 1] = 16383
			} for (var y = 1; y <= X - 1; y++) {
			var w = y * o;
			for (var z = 0; z <= o - 1; z++) H.style.Wl(P, F, o, w + z << 1, -1);
			for (var z = 1; z <= o - 1; z++) H.style.yK(P, F, o, w + z << 1, -1);
			for (var z = o - 2; z >= 0; z--) H.style.yK(P, F, o, w + z << 1, 1)
		}
		for (var y = X - 2; y >= 0; y--) {
			var w = y * o;
			for (var z = 0; z <= o - 1; z++) H.style.Wl(P, F, o, w + z << 1, 1);
			for (var z = 1; z <= o - 1; z++) H.style.yK(P, F, o, w + z << 1, -1);
			for (var z = o - 2; z >= 0; z--) H.style.yK(P, F, o, w + z << 1, 1)
		}
	};
	H.style.yK = function (F, P, o, X, Y) {
		var y = (X >>> 1) + Y << 1,
			z = F[X],
			s = F[X + 1],
			t = F[y] + Y,
			d = F[y + 1],
			U = t * t + d * d,
			v = z * z + s * s;
		if (d != 16383 && (z == 16383 || U < v)) {
			F[X] = t;
			F[X + 1] = d
		}
	};
	H.style.Wl = function (F, P, o, X, Y) {
		var y = (X >>> 1) + Y * o << 1,
			z = F[X],
			s = F[X + 1],
			t = F[y],
			d = F[y + 1] + Y,
			U = t * t + d * d,
			v = z * z + s * s;
		if (t != 16383 && (z == 16383 || U < v)) {
			F[X] = t;
			F[X + 1] = d
		}
	};
	H.style.a16 = function (F, P, o, X, Y) {
		var y = o * X,
			z = (o + X + 1) * 1.01;
		for (var w = 0; w < y; w++)
			if (F[w] <= Y) P[w] = z;
		for (var s = 1; s < o; s++) P[s] = Math.min(P[s], P[s - 1]);
		for (var t = 1; t < X; t++) {
			var w = t * o;
			P[w] = Math.min(P[w], Math.min(P[w - o] + 1, P[w - o + 1] + Math.SQRT2));
			for (var s = 1; s < o - 1; s++) {
				var d = P[++w],
					U = Math.min(P[w - 1] + 1, Math.min(P[w - o - 1] + Math.SQRT2, Math.min(P[w - o] + 1, P[w - o + 1] + Math.SQRT2)));
				if (U < d) P[w] = U
			}
			w++;
			P[w] = Math.min(P[w], Math.min(P[w - 1] + 1, Math.min(P[w - o - 1] + Math.SQRT2, P[w - o] + 1)))
		}
		for (var s = o - 2; s >= 0; s--) P[s + y - o] = Math.min(P[s + y - o], P[s + y - o + 1]);
		for (var t = X - 2; t >= 0; t--) {
			var w = t * o + o - 1;
			P[w] = Math.min(P[w], Math.min(P[w + o] + 1, P[w + o - 1] + Math.SQRT2));
			for (var s = o - 2; s >= 1; s--) {
				var d = P[--w],
					U = Math.min(P[w + 1] + 1, Math.min(P[w + o - 1] + Math.SQRT2, Math.min(P[w + o] + 1, P[w + o + 1] + Math.SQRT2)));
				if (U < d) P[w] = U
			}
			w--;
			P[w] = Math.min(P[w], Math.min(P[w + 1] + 1, Math.min(P[w + o] + 1, P[w + o + 1] + Math.SQRT2)))
		}
	};
	H.style.ajV = function (F, P, o, X, Y) {
		var y = new Int32Array(o * X);
		H.style.a9z(F, y, o, X, Y);
		H.style.a4S(y, P, o, X)
	};
	H.style.a9z = function (F, P, o, X, Y) {
		var y = new Int32Array(X);
		for (var z = 0; z < o; z++) {
			var s = o + X;
			for (var t = X - 1; t >= 0; t--) {
				if (F[t * o + z] > Y) s = 0;
				else s++;
				y[t] = s
			}
			s = o + X;
			for (var t = 0; t < X; t++) {
				if (F[t * o + z] > Y) s = 0;
				else s++;
				P[t * o + z] = s < y[t] ? -s : y[t]
			}
		}
	};
	H.style.a4S = function (F, P, o, X) {
		var Y = (o + X) * (o + X),
			y = new Float64Array(o),
			z = new Uint16Array(o);
		for (var s = 0; s < X; s++) {
			var t = s * o,
				d = 0;
			z[0] = 0;
			y[0] = -Y;
			y[1] = +Y;
			for (var U = 1; U < o; U++) {
				var v = F[U + t] * F[U + t] + U * U,
					A = (v - (F[z[d] + t] * F[z[d] + t] + z[d] * z[d])) / (2 * U - 2 * z[d]);
				while (A <= y[d]) {
					d--;
					A = (v - (F[z[d] + t] * F[z[d] + t] + z[d] * z[d])) / (2 * U - 2 * z[d])
				}
				d++;
				z[d] = U;
				y[d] = A;
				y[d + 1] = Y
			}
			d = 0;
			for (var U = 0; U < o; U++) {
				while (y[d + 1] < U) d++;
				var Z = z[d] - U,
					D = F[z[d] + t],
					w = s * o + U << 1;
				P[w] = Z;
				P[w + 1] = D
			}
		}
	};
	H.style.Jo = function (F, P, o) {
		if (o)
			for (var w = 0; w < F.length; w++) {
				var X = F[w];
				if (X > 0) F[w] = Math.max(0, Math.min(255, X + P * 2 * (H.style.kY(w) - 128)))
			} else
				for (var w = 0; w < F.length; w++) {
					var X = F[w];
					if (X > 0) F[w] = Math.max(0, Math.min(255, X + Math.min(X * 3, P * 2 * (H.style.kY(w) - 128))))
				}
	};
	H.style.kY = function (F) {
		F = F ^ 61 ^ F >> 16;
		F = F + (F << 3);
		F = F ^ F >> 4;
		F = F * 668265261;
		F = F ^ F >> 15;
		return F & 255
	};
	H.ZL = {};
	H.ZL.vP = function (F, P, o) {
		var X = F.canvas,
			Y = i.J(),
			y = Math.floor;
		if (X.width != y(P * Y) || X.height != y(o * Y)) i.Tv(X, P, o, F)
	};
	H.ZL.dp = function (F, P, o, X, Y, y) {
		H.ZL.vP(F, P, o);
		if (y == null) y = !1;
		var z = Y.channel,
			s = Y.rect,
			t = !Y.isEnabled;
		P = Math.floor(P * i.J());
		o = Math.floor(o * i.J());
		if (P * o == 0) return;
		var d = F.createImageData(P, o),
			U = d.data,
			v = 1 / P,
			A = 1 / o;
		for (var w = 0; w < o; w++)
			for (var Z = 0; Z < P; Z++) {
				var D = w * P + Z,
					q = D * 4,
					R = Math.round(X.x + Z * v * X.Z),
					J = Math.round(X.y + w * A * X.h),
					W = 0;
				if (R < s.x || R >= s.x + s.Z || J < s.y || J >= s.y + s.h) W = Y.color;
				else W = z[(J - s.y) * s.Z + (R - s.x)];
				W = 255 * (255 - Y.au) + W * Y.au >>> 8;
				if (y) W = 170 + Math.round(.4 * (W - 170));
				U[q] = W;
				U[q + 1] = W;
				U[q + 2] = W;
				U[q + 3] = 255
			}
		F.putImageData(d, 0, 0);
		if (t) H.ZL.AI(F, P, o)
	};
	H.ZL.ahC = function (F, P, o, X) {
		F.fillStyle = "#eeeeee";
		F.fillRect(.6 * P, .6 * o, P, o);
		F.lineWidth = 1.5;
		var Y = .65 * P,
			y = .95 * P,
			z = .65 * o,
			s = .95 * o,
			t = .75 * P,
			d = .85 * P,
			U = .75 * o,
			v = .85 * o;
		F.beginPath();
		F.moveTo(Y, z);
		F.lineTo(y, z);
		F.lineTo(y, s);
		F.lineTo(Y, s);
		F.lineTo(Y, z);
		F.moveTo(t, U);
		F.lineTo(d, U);
		F.lineTo(d, v);
		F.lineTo(t, v);
		F.lineTo(t, U);
		F.closePath();
		F.stroke()
	};
	H.ZL.sE = [];
	H.ZL.a7d = function (F, P, o) {
		var X, Y, y, z = i.J();
		P = Math.floor(z * P);
		o = Math.floor(z * o);
		X = Math.ceil(Math.max(P, o) * .35);
		Y = P - X;
		y = o - X;
		var s = H.ZL.sE[X];
		if (s == null) {
			var t = i.z("canvas"),
				d = t.getContext("2d");
			t.width = t.height = X;
			d.fillStyle = "#eeeeee";
			d.fillRect(0, 0, X, X);
			d.lineWidth = 1;
			d.strokeRect(2.5, 2.5, X - 5, X - 5);
			var U = d.createImageData(3, 3);
			H.XB(U.data, 4278190080);
			U.data[4 * 4] = U.data[4 * 4 + 1] = U.data[4 * 4 + 2] = 238;
			d.putImageData(U, 1, 1);
			d.putImageData(U, X - 4, 1);
			d.putImageData(U, 1, X - 4);
			d.putImageData(U, X - 4, X - 4);
			s = H.ZL.sE[X] = d.getImageData(0, 0, X, X)
		}
		F.putImageData(s, Y, y)
	};
	H.ZL.a5I = function (F, P, o, X, Y) {
		H.ZL.vP(F, P, o);
		P = Math.floor(P * i.J());
		o = Math.floor(o * i.J());
		var y = P / X.Z;
		if (P * o == 0) return;
		F.fillStyle = "#999999";
		F.setTransform(1, 0, 0, 1, 0, 0);
		F.clearRect(0, 0, P, o);
		var z = H.ZL.dB;
		if (z == null) {
			z = H.ZL.dB = JSON.parse(JSON.stringify(ce.bW.default));
			z.strokeEnabled.v = !0
		}
		z.strokeStyleLineWidth.v.val = 1 * i.J() / y;
		F.fillStyle = "#ffffff";
		F.scale(y, y);
		H.V.Wm(Y.b, F, 0, 0);
		H.V.Wm(Y.b, F, 0, 0, z)
	};
	H.ZL.gF = null;
	H.ZL.Eo = function (F, P, o, X, Y, y, z, s) {
		H.ZL.vP(F, P, o);
		P = Math.floor(P * i.J());
		o = Math.floor(o * i.J());
		if (P * o == 0) return;
		var t = Math.max(P, o),
			d = H.ZL.gF;
		if (d == null || d.width < t || d.height < t) {
			H.ZL.gF = d = F.createImageData(t, t)
		}
		t = d.width;
		var U = d.data,
			v = X.Z / P,
			A = X.h / o,
			Z = 1 / 255,
			D = y.x,
			q = y.x + y.Z,
			R = y.y,
			J = y.y + y.h;
		for (var w = 0; w < o; w++)
			for (var W = 0; W < P; W++) {
				var p = w * t + W,
					n = p * 4,
					b = ~~(X.x + W * v),
					Q = ~~(X.y + w * A),
					_ = H.FC(w, W, 2);
				if (b < D || b >= q || Q < R || Q >= J) {
					U[n] = _;
					U[n + 1] = _;
					U[n + 2] = _;
					U[n + 3] = 255
				} else {
					var L = (Q - y.y) * y.Z + (b - y.x) << 2,
						m = Y[L + 3] * Z;
					U[n] = Y[L + 0] * m + _ * (1 - m);
					U[n + 1] = Y[L + 1] * m + _ * (1 - m);
					U[n + 2] = Y[L + 2] * m + _ * (1 - m);
					U[n + 3] = 255
				}
			}
		if (s != null)
			for (var w = 0; w < U.length; w += 4) U[w] = U[w + 1] = U[w + 2] = U[w + s];
		F.putImageData(d, 0, 0);
		if (z) H.ZL.AI(F, P, o)
	};
	H.ZL.a5w = function (F, P, o, X) {
		H.ZL.vP(F, P, o);
		F.fillStyle = H.ZL.T6(X.Clr.v);
		F.fillRect(0, 0, P, o);
		H.ZL.ls(F, P, o)
	};
	H.ZL.kK = null;
	H.ZL.amE = function (F, P, o, X) {
		H.ZL.vP(F, P, o);
		var Y = F.canvas.width,
			y = F.canvas.height,
			z = H.ZL.kK;
		if (z == null || z.width != Y || z.height != y) {
			F.fillStyle = "#ffffff";
			F.fillRect(0, 0, P, o);
			F.fillStyle = "#000000";
			F.font = "" + o * .7 + "px serif";
			F.fillText("T", (P - o * .43) / 2, o * .75);
			F.fillText("T", (P - o * .43) / 2, o * .75);
			H.ZL.kK = F.getImageData(0, 0, Y, y)
		} else F.putImageData(z, 0, 0)
	};
	H.ZL.a3s = function (F, P, o) {
		H.ZL.vP(F, P, o);
		F.clearRect(0, 0, P, o);
		F.font = o * .7 + "px serif";
		F.fillText(":(", (P - o * .43) / 2, o * .7)
	};
	H.ZL.a7k = function (F, P, o, X) {
		H.ZL.vP(F, P, o);
		var Y = b_.get(X),
			y = h9.get(b_.names[Y]).substring(0, 3);
		F.fillStyle = "#ffffff";
		F.fillRect(0, 0, P, o);
		F.fillStyle = "#000000";
		F.font = o * .55 + "px sans-serif";
		var z = F.measureText(y);
		F.fillText(y, (P - z.width) / 2, o * .67);
		F.fillRect(0, 0, P, o * .1);
		F.fillRect(0, o * .9, P, o * .1)
	};
	H.ZL.a5R = function (F, P, o, X) {
		H.ZL.vP(F, P, o);
		var Y = F.canvas.width,
			y = F.canvas.height,
			z = F.getImageData(0, 0, Y, y);
		H.j.ao(X.Grad.v, new Uint8Array(z.data.buffer), new ev(0, 0, Y, y), [1 / Y, 0, 0, 1 / y], Y / 2, y / 2, !1, 0, 16711680, 65280);
		F.putImageData(z, 0, 0);
		H.ZL.ls(F, P, o)
	};
	H.ZL.ail = function (F, P, o, X, Y) {
		H.ZL.vP(F, P, o);
		var y = F,
			z = cr.tc(X.Ptrn.v, Y.add.Patt);
		if (z == null) return;
		var s = z.Jx[1];
		H.ZL.Eo(F, P, o, s, z.Jx[0], s, !1);
		H.ZL.ls(y, P, o)
	};
	H.ZL.AI = function (F, P, o) {
		F.strokeStyle = "#bb0000";
		F.lineWidth = 3;
		F.beginPath();
		F.moveTo(P * .15, o * .15);
		F.lineTo(P * .85, o * .85);
		F.moveTo(P * .85, o * .15);
		F.lineTo(P * .15, o * .85);
		F.closePath();
		F.stroke()
	};
	H.ZL.AI = function (F, P, o) {
		F.strokeStyle = "#bb0000";
		F.lineWidth = 3;
		F.beginPath();
		F.moveTo(P * .15, o * .15);
		F.lineTo(P * .85, o * .85);
		F.moveTo(P * .85, o * .15);
		F.lineTo(P * .15, o * .85);
		F.closePath();
		F.stroke()
	};
	H.ZL.ls = function (F, P, o) {
		F.fillStyle = "#eeeeee";
		F.fillRect(0, o * .75, P, o * .25);
		F.beginPath();
		F.moveTo(0, o * .75);
		F.lineTo(P, o * .75);
		F.moveTo(P * .1, o * .875);
		F.lineTo(P * .9, o * .875);
		F.moveTo(P * .65, o * .825);
		F.lineTo(P * .65, o * .95);
		F.closePath();
		F.stroke()
	};
	H.ZL.T6 = function (F) {
		var P = H.j.T6(F),
			o = Math.round(P.U) << 16 | Math.round(P.S) << 8 | Math.round(P.i);
		return "#" + H.v2(o)
	};
	H.V = {};
	H.V.dq = function (F, P, o) {
		var X = [],
			Y = -1;
		for (var w = 0; w < F.length; w++) {
			var y = F[w];
			if ((y.type == 0 || y.type == 3) && y.IO != -1) Y++;
			if (y.type > 5 || y.type == 0 || y.type == 3) continue;
			if (P != null && P.indexOf(Y) == -1) continue;
			if (o != null && o.indexOf(w) == -1) continue;
			X.push(y.wU.x);
			X.push(y.wU.y);
			X.push(y._.x);
			X.push(y._.y);
			X.push(y.dv.x);
			X.push(y.dv.y)
		}
		return X
	};
	H.V.eu = function (F, P, o, X) {
		var Y = 0,
			y = -1;
		for (var w = 0; w < P.length; w++) {
			var z = P[w];
			if ((z.type == 0 || z.type == 3) && z.IO != -1) y++;
			if (z.type > 5 || z.type == 0 || z.type == 3) continue;
			if (o != null && o.indexOf(y) == -1) continue;
			if (X != null && X.indexOf(w) == -1) continue;
			z.wU.Oh(F[Y], F[Y + 1]);
			z._.Oh(F[Y + 2], F[Y + 3]);
			z.dv.Oh(F[Y + 4], F[Y + 5]);
			Y += 6
		}
	};
	H.V.G5 = function (F, P, o, X) {
		var Y = H.V.dq(F, o, X);
		H.D.O(Y, P, Y);
		H.V.eu(Y, F, o, X)
	};
	H.V.ajB = function (F, P, o, X) {
		var Y = H.V.dq(F, o, X);
		H.P.apply(P, Y);
		H.V.eu(Y, F, o, X)
	};
	H.V.af3 = function (F, P, o, X) {
		if (o == null && X == null) {
			var Y = H.V.a4V(F, 40);
			for (var w = 0; w < Y.length; w++) F[w] = Y[w]
		}
		var y = H.V.dq(F, o, X);
		H.ea.apply(P, y, H.D.nP(y));
		H.V.eu(y, F, o, X)
	};
	H.V.a4V = function (F, P) {
		var o = [];
		for (var w = 0; w < F.length; w++) {
			var X = F[w];
			if (X.type > 5) {
				o.push(JSON.parse(JSON.stringify(X)));
				continue
			}
			var Y = H.V.agU(F, w + 1, X.length);
			Y = H.D.Tm(Y, P);
			var y = H.V.a9$(Y);
			w += X.length;
			X = JSON.parse(JSON.stringify(X));
			X.length = y.length;
			o.push(X);
			for (var z = 0; z < y.length; z++) o.push(y[z])
		}
		return o
	};
	H.V.agU = function (F, P, o) {
		var X = {
				W: ["M"],
				d: []
			},
			Y = F[P],
			y = F[P + o - 1];
		X.d.push(Y._.x, Y._.y);
		for (var w = 1; w < o; w++) {
			var z = F[P + w - 1],
				s = F[P + w];
			X.W.push("C");
			X.d.push(z.dv.x, z.dv.y, s.wU.x, s.wU.y, s._.x, s._.y)
		}
		X.W.push("C");
		X.d.push(y.dv.x, y.dv.y, Y.wU.x, Y.wU.y, Y._.x, Y._.y);
		return X
	};
	H.V.a9$ = function (F) {
		var P = [],
			o = F.W,
			X = F.d,
			Y = 0,
			e = X.length;
		P.push({
			type: 2,
			wU: new aH(X[e - 4], X[e - 3]),
			_: new aH(X[0], X[1]),
			dv: new aH(X[2], X[3])
		});
		for (var w = 0; w < o.length - 2; w++) {
			var y = w * 6 + 4;
			P.push({
				type: 2,
				wU: new aH(X[y], X[y + 1]),
				_: new aH(X[y + 2], X[y + 3]),
				dv: new aH(X[y + 4], X[y + 5])
			})
		}
		return P
	};
	H.V.a6c = function (F) {
		for (var w = 0; w < F.length; w++) {
			if (F[w].type > 5) continue;
			var P = F[w].length;
			if (!(P == 4 || P == 6 || P == 8)) {
				w += P;
				continue
			}
			for (var o = 0; o < P; o++) {
				var X = F[w + 1 + o],
					Y = F[w + 1 + (o + 1) % P],
					y = Math.min(X._.x, Y._.x),
					z = Math.min(X._.y, Y._.y),
					s = 0,
					t = 0;
				if (X._.x < Y._.x) {
					s = X._.y - z;
					t = s - (Y._.x - y)
				} else {
					s = Y._.y - z;
					t = s - (X._.x - y)
				}
				if (Math.abs(t) < .2 * s) return s
			}
		}
		return -1
	};
	H.V.ue = function (F, P) {
		var o = null,
			X = -1;
		for (var w = 0; w < F.length; w++) {
			if (F[w].type > 5) continue;
			var Y = F[w].length;
			if ((F[w].type == 0 || F[w].type == 3) && F[w].IO != -1) X++;
			if (P != null && P.indexOf(X) == -1) continue;
			if (w == F.length - 1) break;
			var y = F[w].type == 3;
			if (o == null) o = H.V.qv(F, w + 1, Y, y);
			else {
				var z = H.V.qv(F, w + 1, Y, y);
				if (P != null || F[w].IO == 0 || F[w].IO == -1 || F[w].IO == 1) {
					var s = Math.min(o.x, z.x),
						t = Math.min(o.y, z.y),
						d = Math.max(o.x + o.Z, z.x + z.Z),
						U = Math.max(o.y + o.h, z.y + z.h);
					o.x = s;
					o.y = t;
					o.Z = d - s;
					o.h = U - t
				} else if (F[w].IO == 2) o = o;
				else if (F[w].IO == 3) o = o.$X(z)
			}
			w += Y
		}
		if (o == null || o.Z < 0 || o.h < 0) o = new ev(0, 0, 0, 0);
		return o
	};
	H.V.ajk = new Float64Array(4);
	H.V.qv = function (F, w, P, o) {
		var X = H.V.ajk;
		X[0] = 1e30;
		X[1] = 1e30;
		X[2] = -1e30;
		X[3] = -1e30;
		var Y = F[w + P - 1];
		if (!o) H.V.Rt(Y._.x, Y._.y, Y.dv.x, Y.dv.y, F[w].wU.x, F[w].wU.y, F[w]._.x, F[w]._.y, X);
		for (var y = w; y < w + P - 1; y++) {
			var z = F[y],
				s = F[y + 1];
			if (z._.Qn(z.dv) && s.wU.Qn(s._)) {
				X[0] = Math.min(X[0], Math.min(z._.x, s._.x));
				X[1] = Math.min(X[1], Math.min(z._.y, s._.y));
				X[2] = Math.max(X[2], Math.max(z._.x, s._.x));
				X[3] = Math.max(X[3], Math.max(z._.y, s._.y))
			} else H.V.Rt(z._.x, z._.y, z.dv.x, z.dv.y, s.wU.x, s.wU.y, s._.x, s._.y, X)
		}
		return new ev(X[0], X[1], X[2] - X[0], X[3] - X[1])
	};
	H.V.Rt = function (F, P, o, X, Y, y, z, s, t) {
		var d = 1e30,
			U = 1e30,
			v = -1e30,
			A = -1e30,
			Z = 40,
			D = o - F,
			q = X - P,
			R = Y - o,
			J = y - X,
			W = z - Y,
			p = s - y,
			n = 1 / Z;
		for (var w = 0; w < Z + 1; w++) {
			var b = w * n,
				Q = F + b * D,
				_ = P + b * q,
				L = o + b * R,
				m = X + b * J,
				I = Y + b * W,
				c = y + b * p,
				u = Q + b * (L - Q),
				a = _ + b * (m - _),
				N = L + b * (I - L),
				V = m + b * (c - m),
				M = u + b * (N - u),
				O = a + b * (V - a);
			if (M < d) d = M;
			if (O < U) U = O;
			if (M > v) v = M;
			if (O > A) A = O
		}
		t[0] = Math.min(t[0], d);
		t[1] = Math.min(t[1], U);
		t[2] = Math.max(t[2], v);
		t[3] = Math.max(t[3], A)
	};
	H.V.rJ = function (F, P) {
		var o = F.length - 3,
			X = P % o,
			Y = Math.floor(X);
		if (P < 0 || Y >= o) return null;
		var y = F[3 + Y],
			z = F[3 + (Y + 1) % o],
			s = y._,
			t = y.dv,
			d = z.wU,
			U = z._,
			v = X - Y,
			A = 1 - v,
			Z = A * A * A * s.x + 3 * A * A * v * t.x + 3 * A * v * v * d.x + v * v * v * U.x,
			D = A * A * A * s.y + 3 * A * A * v * t.y + 3 * A * v * v * d.y + v * v * v * U.y;
		return new aH(Z, D)
	};
	H.V.j3 = function (F) {
		var P = 2,
			o = H.V.k3(F),
			X = !1,
			Y = !1;
		for (var w = 2; w < F.length; w++) {
			var y = F[w].IO;
			if (y != null) {
				if (y == 2 || y == 0) X = !0;
				if (y == -1) Y = !0
			}
		}
		if (Y) {
			var z = H.D.xJ(F);
			return {
				Q7: Typr.U.pathToSVG({
					crds: z.d,
					cmds: z.W
				}, P),
				RL: X ? 1 : 0
			}
		}
		if (X && F.length < 5e3 && o > 1) F = H.V.XE(F);
		var z = H.D.xJ(F);
		return {
			Q7: Typr.U.pathToSVG({
				crds: z.d,
				cmds: z.W
			}, P),
			RL: X ? 1 : 0
		}
	};
	H.V.XE = function (F) {
		H.V.wt();
		var P, o = H.V.XK(F),
			X = [];
		for (var w = 0; w < o.length; w++) {
			var Y = o[w][0],
				y = o[w][1];
			if (Math.abs(Y.area) < 1e-5) X.push(Y);
			else if (P == null) P = Y;
			else {
				P = P[y](Y);
				P.remove()
			}
		}
		if (P == null) P = new paper.CompoundPath(X);
		else {
			if (P.segments) P = new paper.CompoundPath(P);
			for (var w = 0; w < X.length; w++) {
				P.children.push(X[w])
			}
		}
		var z = F.slice(0, 2);
		z = z.concat(H.V.UG(P));
		if (z[2]) z[2].IO = 1;
		for (var w = 3; w < z.length; w++)
			if (z[w].IO != null) z[w].IO = -1;
		return z
	};
	H.V.wt = function () {
		if (H.V.a4s == null) {
			var F = i.z("canvas");
			paper.setup(F);
			H.V.a4s = !0
		}
	};
	H.V.aiz = function (F, P) {
		H.V.wt();
		var o = [],
			X = H.V.XK(F),
			Y = new paper.Path.Rectangle(new paper.Rectangle(P.x, P.y, P.Z, P.h));
		Y.remove();
		Y.fillColor = new paper.Color(1, 0, 0);
		for (var w = 0; w < X.length; w++)
			if (Y.intersects(X[w][0]) || Y.contains(X[w][0].segments[0].point)) o.push(w);
		return o
	};
	H.V.cp = function (F, P, o, X) {
		H.V.wt();
		var Y = o ? {
				curves: !0,
				tolerance: X
			} : null,
			y = new paper.Point(P.x, P.y),
			z = H.V.XK(F);
		for (var w = z.length - 1; w >= 0; w--) {
			var s = z[w][0],
				t = s.hitTest(y, Y);
			if (t != null) return {
				XN: w,
				_2: o ? t.location.index : null
			}
		}
		return {
			XN: -1
		}
	};
	H.V.Wh = function (F, P) {
		var o = [
			[],
			[],
			[]
		];
		for (var w = 0; w < F.length; w++) {
			var X = F[w];
			if (X.type > 5 || X.type == 0 || X.type == 3) continue;
			if (P.oz(X._)) o[0].push(w);
			if (P.oz(X.wU)) o[1].push(w);
			if (P.oz(X.dv)) o[2].push(w)
		}
		return o
	};
	H.V.a2x = function (F, P, o) {
		var X = o.slice(0),
			Y = [null, null],
			y = -1,
			s = null;
		for (var w = 2; w < F.length; w++) {
			if ((F[w].type == 0 || F[w].type == 3) && F[w].IO != -1) y++;
			Y[w] = o[y]
		}
		o = Y;
		var z = F.slice(0, 2);
		Y = o.slice(0, 2);
		for (var w = 2; w < F.length; w++) {
			if (F[w].type == 0 || F[w].type == 3) {
				s = F[w];
				z.push(s);
				Y.push(o[w])
			} else {
				if (P.indexOf(w) == -1) {
					z.push(F[w]);
					Y.push(o[w])
				} else {
					s.length--;
					H.P$.tq(o, w)
				}
			}
		}
		for (var w = 2; w < z.length; w++) {
			var t = z[w];
			if (t.type != 0 && t.type != 3) continue;
			if (t.length == 0) {
				if (z[w + 1] && z[w + 1].IO == -1) {
					z[w + 1].IO = t.IO
				}
				Y.splice(w, 1);
				z.splice(w, 1);
				w--
			}
		}
		for (var w = 0; w < X.length; w++)
			if (Y.indexOf(X[w]) == -1) {
				X.splice(w, 1);
				w--
			} return z
	};
	H.V.acI = function (F, P) {
		var o = F.slice(0, 2),
			X = -1;
		for (var w = 2; w < F.length; w++) {
			if ((F[w].type == 0 || F[w].type == 3) && F[w].IO != -1) X++;
			if (P.indexOf(X) == -1) o.push(F[w])
		}
		return o
	};
	H.V.aa4 = function (F, P) {
		var o = F.slice(0, 2),
			X = -1;
		for (var w = 2; w < F.length; w++) {
			if ((F[w].type == 0 || F[w].type == 3) && F[w].IO != -1) X++;
			if (P.indexOf(X) != -1) o.push(F[w])
		}
		return o
	};
	H.V.a4b = function (F) {
		var P = 0;
		for (var w = 0; w < F.length; w++)
			if (F[w].type == 0 || F[w].type == 3) P = w;
		return F[P]
	};
	H.V.k3 = function (F) {
		var P = -1;
		for (var w = 0; w < F.length; w++)
			if ((F[w].type == 0 || F[w].type == 3) && F[w].IO != -1) P++;
		return P + 1
	};
	H.V.cx = function (F, P, o) {
		var X = -1;
		for (var w = 0; w < F.length; w++)
			if ((F[w].type == 0 || F[w].type == 3) && (o || F[w].IO != -1)) {
				X++;
				if (X == P) return w
			} return -1
	};
	H.V.o_ = function (F, P, o) {
		var X = -1;
		for (var w = 0; w < F.length; w++)
			if ((F[w].type == 0 || F[w].type == 3) && (o || F[w].IO != -1)) {
				if (w >= P) return X;
				X++
			} return X
	};
	H.V.SD = function (F, P) {
		var o = -1,
			X = 0;
		for (var w = 0; w < F.length; w++) {
			if ((F[w].type == 0 || F[w].type == 3) && F[w].IO != -1) o++;
			if (o == P) X++
		}
		return X
	};
	H.V.UG = function (F) {
		var P = F.segments ? [F] : F.children,
			o = [];
		for (var w = 0; w < P.length; w++) {
			var X = P[w],
				Y = X.segments,
				y = X.closed ? 0 : 3,
				z = o.length,
				s = null;
			if (Y.length <= 1) continue;
			o.push({
				type: y,
				length: Y.length,
				IO: 0,
				yU: 2
			});
			for (var t = 0; t < Y.length; t++) {
				var d = Y[t],
					U = new aH(d.handleIn.x, d.handleIn.y),
					v = new aH(d.handleOut.x, d.handleOut.y),
					A = new aH(d.point.x, d.point.y),
					Z = {
						type: y + 1,
						wU: A.add(U),
						_: A,
						dv: A.add(v)
					};
				if (s == null) s = Z;
				o.push(Z);
				if (t + 1 == Y.length && aH.Yj(s._, Z._) < 1e-5) {
					o.pop();
					o[z].length--;
					s.wU = Z.wU;
					if (y == 3)
						for (var D = z; D < o.length; D++) o[D].type -= 3
				}
			}
		}
		return o
	};
	H.V.XK = function (F) {
		H.V.wt();
		var P = [],
			o, X = new paper.Color(1, 0, 0);
		for (var w = 0; w < F.length; w++) {
			if (F[w].type > 5) continue;
			var Y = F[w].length,
				y;
			if (w == F.length - 1) break;
			var z = F[w].type == 3;
			if (w == 2) {
				if (!H.V.vq(F)) y = "subtract";
				else y = "unite"
			} else {
				if (F[w].IO == 0) y = "exclude";
				if (F[w].IO == 1) y = "unite";
				if (F[w].IO == 2) y = "subtract";
				if (F[w].IO == 3) y = "intersect"
			}
			if (F[w].IO != -1) o = [];
			for (var s = 0; s < Y; s++) {
				var t = F[w + 1 + s],
					d = t.wU.gI(t._),
					U = t.dv.gI(t._);
				o.push([
					[t._.x, t._.y],
					[d.x, d.y],
					[U.x, U.y]
				])
			}
			if (F[w + 1 + Y] == null || F[w + 1 + Y].IO != -1) {
				var v = new paper.Path(o);
				v.remove();
				v.closed = !z;
				v.fillRule = "evenodd";
				v.fillColor = X;
				P.push([v, y])
			}
			w += Y
		}
		return P
	};
	H.V.BG = function (F) {
		for (var w = 0; w < F.length; w++) {
			var P = F[w];
			if (P._ == null) continue;
			if (!P._.Qn(P.wU) || !P._.Qn(P.dv)) return !1
		}
		return !0
	};
	H.V.alI = function (F) {
		if (F.length <= 5) return 0;
		var P = 0,
			o = F.length - 3 - 1;
		for (var w = 0; w < o; w++) {
			var X = F[3 + w],
				Y = F[3 + w + 1];
			if (X.type == 0 || Y.type == 0) return 0;
			P += (Y._.x - X._.x) * (X._.y + Y._.y)
		}
		P += (F[3]._.x - F[3 + o]._.x) * (F[3 + o]._.y + F[3 + 1]._.y);
		return -P * .5
	};
	H.V.vq = function (F) {
		if (F.length == 2) return F[1].all == 0;
		var P = F[2];
		if (F[1].all == 1) {
			if (P.IO == 1 || P.IO == 3) return !0;
			return !1
		} else {
			if (P.IO == 1 || P.IO == 3 || P.IO == 0) return !0;
			return !1
		}
	};
	H.V.akS = 0;
	H.V.KX = 0;
	H.V.afV = 0;
	H.V.aex = function (F, P, o, X) {
		if (o.qr()) return;
		var Y = o.M(),
			p = 16384;
		H.V.akS += Y;
		if (Y > H.V.KX) {
			H.V.KX = Y
		}
		var y = o.Z,
			z = o.h;
		if (X == null && H.V.BG(F)) {
			var s = !0;
			for (var w = 2; w < F.length;)
				if (F[w].length == 2) w += 3;
				else {
					s = !1;
					break
				} if (s) {
				return
			}
			if (H.V.wY(F)) {
				P.fill(255);
				var t = H.V.ue(F);
				if (t.M() != Y) {
					var d = 1 - (t.x - o.x),
						U = 1 - (t.y - o.y),
						v = 1 - (o.x + o.Z - (t.x + t.Z)),
						A = 1 - (o.x + o.h - (t.x + t.h)),
						Z = ~~(d * 255),
						D = ~~(v * 255),
						q = ~~(U * 255),
						R = ~~(A * 255);
					P.fill(q, 0, y);
					P[0] = ~~(d * U * 255);
					P[y - 1] = ~~(v * U * 255);
					for (var w = y; w < Y; w += y) {
						P[w] = Z;
						P[w + y - 1] = D
					}
					P.fill(R, (z - 1) * y, z * y);
					P[Y - y] = ~~(d * A * 255);
					P[Y - 1] = ~~(v * A * 255)
				}
				return
			}
		}
		var J = H.ob,
			W = H.xX,
			n = Math.ceil(y / p),
			b = Math.ceil(z / p),
			Q = Math.ceil(y / n),
			_ = Math.ceil(z / b),
			L = Date.now();
		for (var m = 0; m < b; m++)
			for (var I = 0; I < n; I++) {
				var c = I * Q,
					u = m * _,
					a = Q,
					N = _;
				J.width = a;
				J.height = N;
				if (!H.V.vq(F)) W.fillRect(0, 0, a, N);
				H.V.Wm(F, W, -o.x - c, -o.y - u, X);
				var V = new Uint8Array(W.getImageData(0, 0, a, N).data.buffer);
				if (a == y && N == z) H.E4(V, P, 3);
				else H._h(V, new ev(c, u, a, N), P, new ev(0, 0, y, z))
			}
	};
	H.V.Wm = function (F, P, o, X, Y) {
		if (Y != null && Y.fillEnabled.v) {
			var y = !1,
				z = !1,
				s = 0;
			for (var w = 0; w < F.length; w++) {
				var t = F[w].IO;
				if (t != null) s++;
				if (t == -1) y = !0;
				if (t > 0) z = !0
			}
			if (!y && s < 20) F = H.V.XE(F)
		}
		for (var w = 0; w < F.length; w++) {
			if (F[w].type > 5) continue;
			var d = F[w].length;
			if (d == 0) continue;
			if (w == F.length - 1) break;
			var U = F[w].type == 3;
			if (w == 2) {
				if (!H.V.vq(F)) P.globalCompositeOperation = "destination-out";
				else P.globalCompositeOperation = "source-over"
			} else {
				var t = F[w].IO;
				if (t != -1 && Y == null) {
					var v = ["xor", "source-over", "destination-out", "source-in"][t];
					P.globalCompositeOperation = v
				}
			}
			if (F[w].IO != -1) {
				P.beginPath();
				if (Y) {
					var A = Y.strokeStyleLineWidth.v.val,
						Z = Y.strokeStyleLineAlignment.v.strokeStyleLineAlignment,
						D = Y.strokeStyleLineCapType.v.strokeStyleLineCapType,
						q = Y.strokeStyleLineJoinType.v.strokeStyleLineJoinType,
						R = Y.strokeStyleMiterLimit.v,
						J = [],
						W = Y.strokeStyleLineDashSet.v;
					for (var p = 0; p < W.length; p++) J.push(W[p].v.val * A);
					P.setLineDash(J);
					P.lineCap = ["butt", "round", "square"][ce.bW.Bb.indexOf(D)];
					P.lineJoin = ["miter", "round", "bevel"][ce.bW.join.indexOf(q)];
					P.lineWidth = ce.bW.Ph.indexOf(Z) == 1 ? A : A *= 2;
					P.miterLimit = R
				}
			}
			H.V.ahi(P, F, w + 1, d, o, X, U);
			if (U) {} else P.closePath();
			if (F[w + 1 + d] == null || F[w + 1 + d].IO != -1) {
				if (Y) P.stroke();
				else P.fill("evenodd")
			}
			w += d
		}
	};
	H.V.ahi = function (F, P, w, o, X, Y, y) {
		var z = P[w],
			s = null;
		F.moveTo(z._.x + X, z._.y + Y);
		for (var t = w; t < w + o - 1; t++) {
			z = P[t];
			s = P[t + 1];
			F.bezierCurveTo(z.dv.x + X, z.dv.y + Y, s.wU.x + X, s.wU.y + Y, s._.x + X, s._.y + Y)
		}
		if (!y) {
			z = P[t];
			s = P[w];
			F.bezierCurveTo(z.dv.x + X, z.dv.y + Y, s.wU.x + X, s.wU.y + Y, s._.x + X, s._.y + Y)
		}
	};
	H.V.a9 = function (F, P, o) {
		var X = [],
			Y = o ? 4 : 1,
			y = !1;
		if (P != null)
			for (var w = 0; w < P.length; w++)
				if (P[w] != 0) {
					y = !0;
					break
				} if (P != null && y) {
			var z = H.D.a6i(F, P),
				s = z.length / 6;
			for (var w = 0; w < s; w++) {
				var t = w * 6,
					d = (w - 1 + s) % s * 6,
					U = z[t],
					v = z[t + 1],
					A = z[t + 2],
					Z = z[t + 3],
					D = z[d + 4],
					q = z[d + 5];
				X.push({
					type: Y,
					wU: new aH(D, q),
					_: new aH(U, v),
					dv: new aH(A, Z)
				})
			}
		} else {
			for (var w = 0; w < F.length; w += 2) {
				var R = new aH(F[w], F[w + 1]);
				X.push({
					type: Y,
					wU: R.clone(),
					_: R.clone(),
					dv: R.clone()
				})
			}
		}
		return X
	};
	H.V.bY = function (F, P) {
		H.V.wt();
		var o = new paper.Path;
		o.remove();
		var X = F.length - 1,
			Y = Math.sqrt((F[X - 1] - F[0]) * (F[X - 1] - F[0]) + (F[X] - F[1]) * (F[X] - F[1])) < 3;
		o.closed = Y;
		for (var w = 0; w < F.length; w += 2) o.add(new paper.Point(F[w], F[w + 1]));
		o.simplify(P);
		var y = [{
			type: 6
		}, {
			type: 8,
			all: 0
		}];
		y = y.concat(H.V.UG(o));
		return y
	};
	H.V.FN = function (F, P, o) {
		var X = F[P].length,
			Y = F[P].type,
			y = 0,
			z = F.slice(P + 1, P + 1 + X);
		for (var w = 0; w < X; w++) {
			var s = o[(w - 1 + X) % X],
				t = o[(w + 1 + X) % X],
				d = o[w];
			if (d != 0) {
				var U = z[(w - 1 + X) % X]._,
					v = z[(w + 0 + X) % X]._,
					A = z[(w + 1 + X) % X]._,
					Z = aH.Yj(v, U),
					D = aH.Yj(v, A),
					q = H.D.mg(U.x, U.y, v.x, v.y, A.x, A.y, d)[0],
					R = Math.min(q, s == 0 ? Z : Z / 2, t == 0 ? D : D / 2);
				d *= R / q;
				var J = H.D.Az(U.x, U.y, v.x, v.y, A.x, A.y, d),
					W = {
						type: Y + 1,
						wU: new aH(J[2], J[3]),
						_: new aH(J[2], J[3]),
						dv: new aH(J[4], J[5])
					},
					p = {
						type: Y + 1,
						wU: new aH(J[6], J[7]),
						_: new aH(J[8], J[9]),
						dv: new aH(J[8], J[9])
					};
				F.splice(P + y + 1, 1, W, p);
				y++;
				F[P].length++
			}
			y++
		}
	};
	H.V.BG = function (F) {
		for (var w = 0; w < F.length; w++) {
			var P = F[w],
				o = P.type;
			if (o == 1 || o == 2 || o == 4 || o == 5)
				if (!P._.Qn(P.wU) || !P._.Qn(P.dv)) return !1
		}
		return !0
	};
	H.V.wY = function (F) {
		if (F.length != 7 || !H.V.BG(F)) return !1;
		for (var w = 0; w < 4; w++) {
			var P = !0;
			for (var o = 0; o < 4; o++) {
				var X = F[3 + (w + o & 3)],
					Y = F[3 + (w + o + 1 & 3)];
				if (X._.x != Y._.x && X._.y != Y._.y) P = !1
			}
			if (P) return !0
		}
		return !1
	};
	H.V.Ny = {};
	H.V.Ny.JF = function (F, P, o) {
		var X = [{
				type: 6
			}, {
				type: 8,
				all: 0
			}],
			Y = null;
		X.push({
			type: o ? 3 : 0,
			IO: 1,
			length: 0,
			Oj: 0,
			UB: 0,
			yU: 1
		});
		if (P == 0) Y == null;
		else if (P instanceof Array) Y = P;
		else {
			Y = [];
			for (var w = 0; w < F.length; w += 2) Y.push(P)
		}
		X = X.concat(H.V.a9(F, Y, o));
		X[2].length = X.length - 3;
		return X
	};
	H.V.Ny.a79 = function (F, P, o, X, Y) {
		var y = [],
			z = [],
			s = .553,
			t = 1,
			d = -1;
		y.push({
			type: 1,
			wU: new aH(0, s),
			_: new aH(0, 0),
			dv: new aH(0, -s)
		});
		Y += 2;
		for (var w = 0; w < Y; w++) {
			var U = {
				type: 1
			};
			if (w == 0) {
				U._ = new aH(1, -1);
				U.wU = new aH(1 - s, -1);
				U.dv = new aH(1 + s, -1)
			} else {
				var v = -(w + 2) * Math.PI / 2,
					A = 1 + ((w & 1) == 1 ? w - 1 : w),
					Z = Math.sin(v),
					D = Math.cos(v);
				t += A * (Z - D);
				d += A * (D + Z);
				U._ = new aH(t, d);
				U.wU = new aH(t + A * D * s, d - A * Z * s);
				if ((w & 1) == 1) A += 2;
				U.dv = new aH(t - A * D * s, d + A * Z * s)
			}
			var q = {
				type: 1,
				wU: new aH(-U.dv.x, -U.dv.y),
				_: new aH(-U._.x, -U._.y),
				dv: new aH(-U.wU.x, -U.wU.y)
			};
			y.push(U);
			if (w < Y - 2) z.push(q)
		}
		z.reverse();
		y = y.concat(z);
		var R = [{
			type: 6
		}, {
			type: 8,
			all: 0
		}];
		R.push({
			type: 0,
			IO: 1,
			length: y.length,
			Oj: 0,
			UB: 0,
			yU: 1
		});
		R = R.concat(y);
		var J = new cu(o / Y, 0, 0, o / Y, 0, 0);
		J.rotate(X);
		J.translate(F, P);
		H.V.G5(R, J);
		return R
	};
	H.V.Ny.Rect = function (F, P, o, X, Y) {
		var y = [F, P, F + o, P, F + o, P + X, F, P + X];
		return H.V.Ny.JF(y, Y)
	};
	H.V.Ny.qF = function (F, P, o, X, Y, y) {
		var z = [],
			s = 2 * Math.PI / Y;
		for (var w = 0; w < Y; w++) z.push(Math.cos(w * s), Math.sin(w * s));
		var t = new cu(o, 0, 0, o, 0, 0);
		t.rotate(X);
		t.translate(F, P);
		H.D.O(z, t, z);
		return H.V.Ny.JF(z, y)
	};
	H.V.Ny.alV = function (F, P, o, X, Y, y, z) {
		var s = [],
			t = Math.PI / Y;
		for (var w = 0; w < Y * 2; w++) {
			var d = (w & 1) == 0 ? 1 : z;
			s.push(d * Math.cos(w * t), d * Math.sin(w * t))
		}
		var U = new cu(o, 0, 0, o, 0, 0);
		U.rotate(X);
		U.translate(F, P);
		H.D.O(s, U, s);
		return H.V.Ny.JF(s, y)
	};
	H.V.Ny.Qe = function (F, P, o, X, Y) {
		return H.V.Ny.SB(0, F, P, o, X, Y)
	};
	H.V.Ny.ago = function (F, P, o, X, Y, y) {
		return H.V.Ny.SB(1, F, P, o, X, Y, y)
	};
	H.V.Ny.SB = function (F, P, o, X, Y, y, z) {
		var s = Math.sqrt((X - P) * (X - P) + (Y - o) * (Y - o)),
			t;
		y /= 2;
		if (F == 0) t = [-y, 0, y, 0, y, s, -y, s];
		else {
			var d = y * 2 * z * 1.3 / 1.5,
				U = y * z;
			t = [-y, 0, y, 0, y, s - d, U, s - d, 0, s, -U, s - d, -y, s - d]
		}
		var v = new cu(1, 0, 0, 1, 0, 0);
		v.rotate(Math.atan2(-Y + o, X - P) + Math.PI / 2);
		v.translate(P, o);
		H.D.O(t, v, t);
		return H.V.Ny.JF(t, 0)
	};
	H.V.Ny.VO = function (F, P, o, X) {
		var Y = [{
				type: 6
			}, {
				type: 8,
				all: 0
			}],
			v = .553;
		Y.push({
			type: 0,
			IO: 1,
			length: 4,
			Oj: 0,
			UB: 0,
			yU: 1
		});
		var y = F,
			z = P,
			s = F + o,
			t = P + X,
			F = (y + s) / 2,
			P = (z + t) / 2,
			d = (y - s) / 2,
			U = (z - t) / 2;
		Y.push({
			type: 1,
			wU: new aH(F - v * d, P - U),
			_: new aH(F, P - U),
			dv: new aH(F + v * d, P - U)
		});
		Y.push({
			type: 1,
			wU: new aH(F + d, P - v * U),
			_: new aH(F + d, P),
			dv: new aH(F + d, P + v * U)
		});
		Y.push({
			type: 1,
			wU: new aH(F + v * d, P + U),
			_: new aH(F, P + U),
			dv: new aH(F - v * d, P + U)
		});
		Y.push({
			type: 1,
			wU: new aH(F - d, P + v * U),
			_: new aH(F - d, P),
			dv: new aH(F - d, P - v * U)
		});
		return Y
	};
	H.V.Ny.a8Y = function (F, P, o, X, Y) {
		var y = [{
			type: 6
		}, {
			type: 8,
			all: 0
		}];
		y.push({
			type: 3,
			IO: 1,
			length: 5,
			Oj: 0,
			UB: 0,
			yU: 1
		});
		var z = (Y - X) / 4;
		for (var w = 0; w < 5; w++) {
			var s = w * z,
				t = Math.cos(s),
				d = Math.sin(s),
				U = .553 * (z / (Math.PI / 2)),
				v = d * U,
				A = -t * U,
				Z = new aH(t, d);
			y.push({
				type: 4,
				wU: w == 0 ? Z.clone() : new aH(t + v, d + A),
				_: Z,
				dv: w == 4 ? Z.clone() : new aH(t - v, d - A)
			})
		}
		var D = new cu;
		D.rotate(-X);
		D.scale(o, o);
		D.translate(F, P);
		H.V.G5(y, D);
		return y
	};
	H.mD = {};
	H.mD.type = {
		warpNone: [22, 5, 0],
		warpCustom: [22, 5, 16],
		warpArc: [22, 5, 1],
		warpArcLower: [22, 5, 2],
		warpArcUpper: [22, 5, 3],
		warpArch: [22, 5, 4],
		warpBulge: [22, 5, 5],
		warpShellLower: [22, 5, 6],
		warpShellUpper: [22, 5, 7],
		warpFlag: [22, 5, 8],
		warpWave: [22, 5, 9],
		warpFish: [22, 5, 10],
		warpRise: [22, 5, 11],
		warpFisheye: [22, 5, 12],
		warpInflate: [22, 5, 13],
		warpSqueeze: [22, 5, 14],
		warpTwist: [22, 5, 15]
	};
	H.mD.O8 = function (F) {
		var P = F.warpStyle.v.warpStyle;
		if (P == "warpNone") return !0;
		else if (P == "warpCustom") {
			var o = !1,
				X = F.customEnvelopeWarp.v.meshPoints.v.arr,
				Y = X[0].arr,
				y = X[1].arr;
			for (var w = 0; w < 4; w++)
				for (var z = 0; z < 4; z++) {
					if (Math.abs(Y[w] - Y[z * 4 + w]) > 1 || Math.abs(y[w * 4] - y[w * 4 + z]) > 1) o = !0
				}
			return !o
		} else return F.warpValue.v == 0 && F.warpPerspective.v == 0 && F.warpPerspectiveOther.v == 0
	};
	H.mD.R = function (F) {
		var P = {
			classID: "warp",
			warpStyle: {
				t: "enum",
				v: {
					warpStyle: "warpNone"
				}
			},
			warpValue: {
				t: "doub",
				v: 0
			},
			warpPerspective: {
				t: "doub",
				v: 0
			},
			warpPerspectiveOther: {
				t: "doub",
				v: 0
			},
			warpRotate: {
				t: "enum",
				v: {
					Ornt: "Hrzn"
				}
			}
		};
		if (F) {
			P.bounds = {
				t: "Objc",
				v: {
					classID: "Rctn",
					Top: {
						t: "UntF",
						v: {
							type: "#Pxl",
							val: F.y
						}
					},
					Left: {
						t: "UntF",
						v: {
							type: "#Pxl",
							val: F.x
						}
					},
					Btom: {
						t: "UntF",
						v: {
							type: "#Pxl",
							val: F.y + F.h
						}
					},
					Rght: {
						t: "UntF",
						v: {
							type: "#Pxl",
							val: F.x + F.Z
						}
					}
				}
			};
			P.uOrder = {
				t: "long",
				v: 4
			};
			P.vOrder = {
				t: "long",
				v: 4
			}
		}
		return P
	};
	H.mD.a7e = function (F, P, o, X) {
		for (var w = 0; w < F.length; w += 2) {
			var Y = F[w],
				y = F[w + 1],
				z = (Y - P.x) / P.Z,
				s = (y - P.y) / P.h,
				t = (1 - o) / 2,
				d = 1 - t,
				U = t + z * (d - t);
			s = .5 + (s - .5) * U * 2;
			var v = (1 - X) / 2,
				A = 1 - v,
				Z = v + s * (A - v);
			z = .5 + (z - .5) * Z * 2;
			Y = P.x + z * P.Z;
			y = P.y + s * P.h;
			F[w] = Y;
			F[w + 1] = y
		}
	};
	H.mD.SL = function (F, P) {
		var o = [],
			X = [];
		for (var w = 0; w < F.length; w += 2) {
			o.push(F[w]);
			X.push(F[w + 1])
		}
		var Y = [];
		Y.push({
			id: "Hrzn",
			type: "UnFl",
			uID: "#Pxl",
			arr: o
		});
		Y.push({
			id: "Vrtc",
			type: "UnFl",
			uID: "#Pxl",
			arr: X
		});
		P.warpStyle.v.warpStyle = "warpCustom";
		P.customEnvelopeWarp = {
			t: "Objc",
			v: {
				classID: "customEnvelopeWarp",
				meshPoints: {
					t: "ObAr",
					v: {
						classID: "rationalPoint",
						arr: Y
					}
				}
			}
		}
	};
	H.mD.ij = function (F, P) {
		if (P == null) {
			var o = F.bounds.v,
				X = o.Left.v.val,
				Y = o.Rght.v.val,
				y = o.Top.v.val,
				z = o.Btom.v.val;
			P = new ev(X, y, Y - X, z - y)
		}
		if (P.qr()) P.Z = P.h = 1;
		var s = [],
			t = F.warpStyle.v.warpStyle;
		if (t == "warpCustom") {
			var d = F.customEnvelopeWarp.v.meshPoints.v.arr,
				U = d[0].arr,
				v = d[1].arr;
			for (var w = 0; w < 16; w++) s.push(U[w], v[w])
		} else s = H.mD.mD(P, t, F.warpRotate.v.Ornt == "Hrzn", F.warpValue.v / 100, F.warpPerspective.v / 100, F.warpPerspectiveOther.v / 100);
		return s
	};
	H.mD.mD = function (F, P, o, X, Y, y) {
		var z = H.ea.R(F.x, F.y, F.Z, F.h);
		if (P == "warpNone") return z;
		var s = JSON.parse(JSON.stringify(F)),
			t = new cu;
		if (!o) {
			t.translate(-F.x, -F.y);
			t.rotate(-Math.PI / 2);
			t.translate(F.h, 0);
			H.D.O(z, t, z);
			F = new ev(0, 0, F.h, F.Z);
			z = H.ea.Qs(z, !1)
		}
		H.mD.adu(z, F, P, X, Y, y);
		if (!o) {
			z = H.ea.Qs(z, !0);
			F = s;
			t.nJ();
			H.D.O(z, t, z)
		}
		if (X == 0) H.mD.a7e(z, F, Y, y);
		else {
			var t = new cu(1 / F.Z, 0, 0, 1 / F.h, -F.x, -F.y);
			t.translate(-.5, -.5);
			H.D.O(z, t, z);
			H.mD.a1F(z, y, Y);
			t.nJ();
			H.D.O(z, t, z)
		}
		return z
	};
	H.mD.adu = function (F, P, o, X, Y, y) {
		for (var w = 0; w < 4; w++) {
			for (var z = 0; z < 4; z++) {
				var s = 2 * (4 * w + z),
					t = F[s] - P.x,
					d = F[s + 1] - P.y,
					U = t,
					v = d;
				if (X != 0) {
					var A = P.Z / 2,
						Z = P.h / 2;
					U -= A;
					v -= Z;
					var D = U,
						q = U,
						R = -Z,
						J = Z,
						W = Math.abs(X),
						p = Math.tan((1 - W) * Math.PI / 2),
						n = Math.sqrt(p * p + 1),
						b = Math.atan2(1, p),
						Q = U / A * b,
						_ = A * n,
						L = A * n + P.h,
						m = Math.cos(b),
						I = Math.sin(b),
						c = H.mD.agQ(m, I),
						u = H.mD.a78(m, I),
						a = -p * A + c * _;
					if (o == "warpArc") {
						D = Math.sin(Q) * L;
						R = p * A - Math.cos(b) * L + Z;
						q = Math.sin(Q) * _;
						J = p * A - Math.cos(b) * _ + Z;
						if (z == 1 || z == 2) {
							D = z == 1 ? -u * L : u * L;
							q = z == 1 ? -u * _ : u * _;
							R = p * A + Z - c * L;
							J = p * A + Z - c * _
						}
						if (X < 0) {
							var N = D;
							D = q;
							q = N;
							N = R;
							R = -J;
							J = -N
						}
					}
					if (o == "warpArcLower") {
						if (z == 1 || z == 2) {
							q = z == 1 ? -u * _ : u * _;
							J = X < 0 ? Z - a : Z + a
						}
					}
					if (o == "warpArcUpper" || o == "warpArch" || o == "warpBulge") {
						if (z == 1 || z == 2) {
							D = z == 1 ? -u * _ : u * _;
							R = X < 0 ? -Z + a : -Z - a
						}
						if (o == "warpArch") {
							q = D;
							J = R + 2 * Z
						}
						if (o == "warpBulge") {
							q = D;
							J = -R
						}
					}
					if (o == "warpFish" || o == "warpFlag" || o == "warpWave") {
						if (z == 1) {
							R -= X * 4 * Z;
							J += X * 4 * Z
						}
						if (z == 2) {
							R += X * 4 * Z;
							J -= X * 4 * Z
						}
						if (o == "warpFlag" || o == "warpWave") R = J - 2 * Z
					}
					if (o == "warpRise") {
						if (z < 2) R = -Z + X * Z * 4;
						J = R + 2 * Z
					}
					var V = (v + Z) / P.h;
					U = D + V * (q - D);
					v = R + V * (J - R);
					if (o == "warpWave") {
						if (w == 0) v = -Z;
						if (w == 3) v = Z;
						if (w == 1 || w == 2) v = 2 * Z * (w / 3 - .5) * (1 / 3) + v * (2 / 3)
					}
					if (o == "warpFisheye") {
						if ((w == 1 || w == 2) && (z == 1 || z == 2)) {
							U = U + 4 * U * X;
							v = v + 4 * v * X
						}
					}
					if (o == "warpInflate") {
						var M = 2 / 3;
						if ((w == 1 || w == 2) && (z == 1 || z == 2)) {
							U = U + .5 * U * X;
							v = v + .5 * v * X
						} else if (w == 1 || w == 2) U = U + M * U * X;
						else if (z == 1 || z == 2) v = v + M * v * X
					}
					if (o == "warpSqueeze") {
						var M = 2 / 3;
						if ((w == 1 || w == 2) && (z == 1 || z == 2)) {
							if (X > 0) U = U - M * U * X;
							else v = v + M * v * X
						} else if (w == 1 || w == 2) U = U - M * U * X;
						else if (z == 1 || z == 2) v = v + M * v * X
					}
					if (o == "warpTwist") {
						if ((w == 1 || w == 2) && (z == 1 || z == 2)) {
							var O = X * Math.PI / 2,
								n = 1 + Math.abs(X) * 2,
								K = U * Math.cos(O) - v * Math.sin(O),
								j = U * Math.sin(O) + v * Math.cos(O);
							U = K * n;
							v = j * n
						}
					}
					if (o == "warpShellLower" || o == "warpShellUpper") {
						if (o == "warpShellUpper") {
							w = 3 - w;
							v = -v
						}
						if (w > 2 || w == 2 && (z == 0 || z == 3)) {
							if (X > 0) {
								var $ = _ + w / 3 * 2 * Z;
								U = Math.sin(Q) * $;
								v = -p * A - Z + Math.cos(Q) * $;
								if (z == 1 || z == 2) {
									U = z == 1 ? -u * $ : u * $;
									v = -p * A - Z + c * $
								}
							} else {
								if ((z == 1 || z == 2) && w == 3) {
									U = z == 1 ? -u * _ : u * _;
									v = p * A - c * _ + Z
								} else if (w == 2) {
									v = Z - Z * (2 / 3) * Math.cos(Q);
									U = U + Z * (2 / 3) * Math.sin(Q)
								}
							}
						}
						if (o == "warpShellUpper") {
							w = 3 - w;
							v = -v
						}
					}
					U += A;
					v += Z
				}
				t = U, d = v;
				F[s] = t + P.x;
				F[s + 1] = d + P.y
			}
		}
	};
	H.mD.a1F = function (F, P, o) {
		var X = [];
		for (var Y = 0; Y < 4; Y++) X.push(1 - o + Y / 3 * 2 * o);
		var y = [];
		for (var Y = 0; Y < 4; Y++) y.push(1 - P + Y / 3 * 2 * P);
		var z = [0, 0, 0, 0],
			s = [0, 0, 0, 0];
		for (var w = 0; w < 4; w++)
			for (var Y = 0; Y < 4; Y++) {
				var t = 2 * (4 * w + Y),
					d = F[t],
					U = F[t + 1];
				z[Y] += d / 4;
				s[Y] += U / 4
			}
		for (var w = 0; w < 4; w++)
			for (var Y = 0; Y < 4; Y++) {
				var v = X[Y],
					t = 2 * (4 * w + Y),
					d = F[t],
					U = F[t + 1],
					A = z[Y],
					Z = s[Y];
				F[t] = A + v * (d - A);
				F[t + 1] = Z + v * (U - Z)
			}
		var D = F.slice(0);
		for (var w = 0; w < 4; w++)
			for (var Y = 1; Y < 3; Y++) {
				var t = 2 * (4 * w + Y),
					d = F[t],
					U = F[t + 1],
					q = t + (Y == 1 ? -2 : 2),
					R = F[q],
					J = F[q + 1];
				F[t] = d - R;
				F[t + 1] = U - J
			}
		var W = F[0],
			p = F[1],
			n = F[8],
			b = F[9],
			Q = F[16],
			_ = F[17],
			L = F[24],
			m = F[25],
			I = F[6],
			c = F[7],
			u = F[14],
			a = F[15],
			N = F[22],
			V = F[23],
			M = F[30],
			O = F[31],
			K = I - W,
			j = c - p,
			$ = u - n,
			x = a - b,
			g = N - Q,
			T = V - _,
			E = M - L,
			a9 = O - m;
		for (var w = 0; w < 4; w++) {
			var ez = 2 * w * 4,
				bN = 0,
				cg = 0,
				d8 = w == 1 ? .33 : .66,
				C = 1 - d8;
			if (w == 0) {
				bN = K;
				cg = j
			}
			if (w == 1) {
				bN = C * K + d8 * -E;
				cg = C * j + d8 * -a9
			}
			if (w == 2) {
				bN = C * K + d8 * -E;
				cg = C * j + d8 * -a9
			}
			if (w == 3) {
				bN = -E;
				cg = -a9
			}
			F[ez] = F[ez] + bN / 2;
			F[ez + 1] = F[ez + 1] + cg / 2;
			F[ez + 6] = F[ez + 6] - bN / 2;
			F[ez + 7] = F[ez + 7] - cg / 2
		}
		for (var w = 0; w < 4; w++)
			for (var Y = 1; Y < 3; Y++) {
				var t = 2 * (4 * w + Y),
					d = F[t],
					U = F[t + 1],
					q = t + (Y == 1 ? -2 : 2),
					R = F[q],
					J = F[q + 1],
					v = 2 * w / 3;
				F[t] = R + v * d;
				F[t + 1] = J + v * U
			}
		for (var w = 1; w < 3; w++)
			for (var Y = 1; Y < 3; Y++) {
				var t = 2 * (4 * w + Y),
					d = F[t],
					U = F[t + 1],
					S = w == 1 ? -8 : -16,
					g7 = w == 1 ? 16 : 8,
					g_ = F[t + S],
					fw = F[t + S + 1],
					dT = F[t + g7],
					g4 = F[t + g7 + 1],
					v = w / 3;
				d = (1 - v) * g_ + v * dT;
				U = (1 - v) * fw + v * g4;
				F[t] = d;
				F[t + 1] = U
			}
		H.D.bu(D, F, F, P)
	};
	H.mD.agQ = function (F, P) {
		return (4 - F) * (1 / 3)
	};
	H.mD.a78 = function (F, P) {
		return (1 - F) * (3 - F) / (3 * P)
	};
	H.FV = {};
	H.FV.OM = function (F, P, o, X, Y, y, z, s, t, d) {
		var U = [0, 1, 1 / 2, 1 / 3, 1 / 4, 1 / 5, 1 / 6, 1 / 7, 1 / 8, 1 / 9],
			v = 1 / t,
			A = [-1, -1, 0, -1, 1, -1, -1, 0, 1, 0, -1, 1, 0, 1, 1, 1],
			Z = new Uint32Array(6);
		for (var D = 0; D < s; D++) {
			for (var q = 0; q < z; q++) {
				var R = 3 * (D * z + q),
					J = D + y,
					W = q + Y;
				Z[0] = 0;
				Z[1] = 0;
				Z[2] = 0;
				Z[3] = 0;
				Z[4] = 0;
				Z[5] = 0;
				for (var w = 0; w < 16; w += 2) {
					var p = W + A[w],
						n = J + A[w + 1],
						b = p - t * ~~(p * v),
						Q = n - t * ~~(n * v),
						_ = d[Q * t + b];
					Z[_] += F[n * P + p];
					Z[_ + 3]++
				}
				var p = W,
					n = J,
					b = p - t * ~~(p * v),
					Q = n - t * ~~(n * v),
					_ = d[Q * t + b];
				Z[_] = F[J * P + W];
				Z[_ + 3] = 1;
				X[R] = Z[0] * U[Z[3]];
				X[R + 1] = Z[1] * U[Z[4]];
				X[R + 2] = Z[2] * U[Z[5]]
			}
		}
	};
	H.FV.Bn = function (F, P, o) {
		for (var w = 0; w < o; w += 2) F[P + w] = F[P + w + 1];
		P = P + o;
		for (var w = 0; w < o; w += 2) F[P + w + 1] = F[P + w]
	};
	H.FV.QH = function (F, P, o, X) {
		for (var w = 0; w < X; w += 2) {
			var Y = P + w * o;
			F[Y] = F[Y + o];
			F[Y + o + 1] = F[Y + 1]
		}
	};
	H.FV.xN = function (F, P, o, X, Y, y) {
		var z = X[Y],
			s = X[Y + 1],
			t = X[y],
			d = X[y + 1],
			U = s + t >>> 1;
		F[P] = F[P + 3] = F[o] = F[o + 3] = z;
		F[P + 1] = U;
		F[P + 4] = s;
		F[o + 1] = t;
		F[o + 4] = U;
		F[P + 2] = F[P + 5] = F[o + 2] = F[o + 5] = d
	};
	H.FV.afP = function (F, P, o, X, Y, y) {
		var z = y * 3;
		for (var w = 0; w < y; w += 2) {
			var s = P + w,
				t = Y + w * 3;
			H.FV.xN(X, t, t + z, F, s, s + o)
		}
	};
	H.FV.a50 = function (F, P, o, X, Y, y, z) {
		var s = y * 3;
		for (var w = 0; w < z; w += 2) {
			var t = P + w * o,
				d = Y + w * y * 3;
			H.FV.xN(X, d, d + s, F, t, t + o)
		}
	};
	H.FV.i4 = function (F, w, P) {
		var o = F[w - P - P],
			X = F[w - P],
			Y = F[w - 2],
			y = F[w - 1],
			z = F[w],
			s = F[w + 1],
			t = F[w + 2],
			d = F[w + P],
			U = F[w + P + P],
			v = Math.abs(X - d),
			A = Math.abs(y - s),
			Z = Math.abs(z - o) * 2 + v,
			q = Math.abs(z - t) * 2 + A,
			R = Math.abs(z - Y) * 2 + A,
			J = Math.abs(z - U) * 2 + v,
			W = Math.min(Z, Math.min(q, Math.min(R, J)));
		if (W == Z) return X * 3 + d + z - o >> 2;
		if (W == q) return s * 3 + y + z - t >> 2;
		if (W == R) return y * 3 + s + z - Y >> 2;
		return d * 3 + X + z - U >> 2
	};
	H.FV.Fd = function (F, P, o, X, Y) {
		if (F < P && P < o || F > P && P > o) return ~~(.5 + X + (Y - X) * (P - F) / (o - F));
		else return (X + Y >> 1) + (P + P - F - o >> 2)
	};
	H.FV.pX = function (F, P, w, o) {
		var X = P[w - o - 1],
			Y = P[w - o + 1],
			y = P[w],
			z = P[w + o - 1],
			s = P[w + o + 1],
			t = F[w - o - 1],
			d = F[w - o + 1],
			U = F[w],
			v = F[w + o - 1],
			A = F[w + o + 1],
			Z = Math.abs(d - v) + Math.abs(F[w - o - o + 2] - U) + Math.abs(U - F[w + o + o - 2]) + Math.abs(Y - y) + Math.abs(y - z),
			D = Math.abs(t - A) + Math.abs(F[w - o - o - 2] - U) + Math.abs(U - F[w + o + o + 2]) + Math.abs(X - y) + Math.abs(y - s);
		if (Z < D) return H.FV.Fd(Y, y, z, d, v);
		else return H.FV.Fd(X, y, s, t, A)
	};
	H.FV.UH = function (F, P, o, X, Y, y) {
		F[P + 0] = o[Y];
		F[P + 1] = X[Y];
		F[P + 2] = H.FV.pX(o, X, Y, y)
	};
	H.FV.L2 = function (F, P, o, X, Y, y) {
		var z = X[Y];
		F[P + 0] = H.FV.Fd(X[Y - 1], z, X[Y + 1], o[Y - 1], o[Y + 1]);
		F[P + 1] = z;
		F[P + 2] = H.FV.Fd(X[Y - y], z, X[Y + y], o[Y - y], o[Y + y])
	};
	H.FV.on = function (F, P, o, X, Y, y) {
		var z = X[Y];
		F[P + 0] = H.FV.Fd(X[Y - y], z, X[Y + y], o[Y - y], o[Y + y]);
		F[P + 1] = z;
		F[P + 2] = H.FV.Fd(X[Y - 1], z, X[Y + 1], o[Y - 1], o[Y + 1])
	};
	H.FV.V1 = function (F, P, o, X, Y, y) {
		F[P + 0] = H.FV.pX(o, X, Y, y);
		F[P + 1] = X[Y];
		F[P + 2] = o[Y]
	};
	H.FV.ahL = function (F, P, o, X, Y, y, z, s, t) {
		var d = Date.now(),
			U = 2,
			v = P - 2,
			A = 2;
		if ((Y & 1) == 1) {
			U++;
			v--
		}
		var Z = o - 2;
		if ((y & 1) == 1) {
			A++;
			Z--
		}
		if (t == 1 || t == 3) {
			U++;
			v--
		}
		var D = F.slice(0);
		H.FV.Bn(D, 0, P);
		H.FV.QH(D, 0, P, o);
		H.FV.QH(D, P - 2, P, o);
		H.FV.Bn(D, (o - 2) * P, P);
		for (var q = A; q < Z; q += 2)
			for (var R = U; R < v; R += 2) {
				var w = q * P + R,
					J = H.FV.i4(D, w, P),
					W = H.FV.i4(D, w + P + 1, P);
				D[w] = Math.max(0, J);
				D[w + P + 1] = Math.max(0, W)
			}
		var p = z,
			n = s;
		if (y + s == o) {
			n -= 2;
			H.FV.afP(F, (o - 2) * P + Y, P, X, (s - 2) * z * 3, z)
		}
		if (Y + z == P) {
			p -= 2;
			H.FV.a50(F, y * P + Y + z - 2, P, X, (z - 2) * 3, z, s)
		}
		if (t == 0)
			for (var q = 0; q < n; q += 2)
				for (var R = 0; R < p; R += 2) {
					var b = (q + y) * P + R + Y,
						Q = (q * z + R) * 3;
					H.FV.UH(X, Q, F, D, b, P);
					H.FV.L2(X, Q + 3, F, D, b + 1, P);
					b += P;
					Q += 3 * z;
					H.FV.on(X, Q, F, D, b, P);
					H.FV.V1(X, Q + 3, F, D, b + 1, P)
				} else if (t == 1)
					for (var q = 0; q < n; q += 2)
						for (var R = 0; R < p; R += 2) {
							var b = (q + y) * P + R + Y,
								Q = (q * z + R) * 3;
							H.FV.L2(X, Q, F, D, b, P);
							H.FV.UH(X, Q + 3, F, D, b + 1, P);
							b += P;
							Q += 3 * z;
							H.FV.V1(X, Q, F, D, b, P);
							H.FV.on(X, Q + 3, F, D, b + 1, P)
						} else if (t == 2)
							for (var q = 0; q < n; q += 2)
								for (var R = 0; R < p; R += 2) {
									var b = (q + y) * P + R + Y,
										Q = (q * z + R) * 3;
									H.FV.V1(X, Q, F, D, b, P);
									H.FV.on(X, Q + 3, F, D, b + 1, P);
									b += P;
									Q += 3 * z;
									H.FV.L2(X, Q, F, D, b, P);
									H.FV.UH(X, Q + 3, F, D, b + 1, P)
								} else if (t == 3)
									for (var q = 0; q < n; q += 2)
										for (var R = 0; R < p; R += 2) {
											var b = (q + y) * P + R + Y,
												Q = (q * z + R) * 3;
											H.FV.on(X, Q, F, D, b, P);
											H.FV.V1(X, Q + 3, F, D, b + 1, P);
											b += P;
											Q += 3 * z;
											H.FV.UH(X, Q, F, D, b, P);
											H.FV.L2(X, Q + 3, F, D, b + 1, P)
										}
	};
	H.raw = {};
	H.raw.acA = function (F) {
		var P = F.width,
			o = F.height,
			X = Date.now(),
			Y = H.raw.afA(F),
			y = 0,
			z = 0;
		H.raw.A1(2, F, Y, P, o);
		var s = P,
			t = o;
		if (F.t50829) {
			var d = F.t50829;
			y = d[1];
			z = d[0];
			s = d[3];
			t = d[2]
		}
		if (F.t50719) {
			var U = F.t50719;
			y += U[0] >> 1 << 1;
			z += U[1] >> 1 << 1
		}
		if (F.t50720) {
			var v = F.t50720;
			s = y + v[0];
			t = z + v[1]
		}
		var A = s - y,
			Z = t - z,
			D = new Float32Array(A * Z * 3);
		if (F.t277[0] == 1) {
			var q = F.t33421;
			if (q.length != 2 || q[0] != 2 || q[1] != 2) {
				console.log("Unknown CFA pattern size", q);
				H.FV.OM(Y, P, o, D, y, z, A, Z, q[0], F.t33422)
			} else {
				var R = F.t33422.join(","),
					J = 0;
				if (R == "0,1,1,2") J = 0;
				else if (R == "1,0,2,1") J = 1;
				else if (R == "2,1,1,0") J = 2;
				else if (R == "1,2,0,1") J = 3;
				else throw "Unknown CFA pattern " + R;
				if ((A & 1) != 0 || (Z & 1) != 0) throw "e";
				H.FV.ahL(Y, P, o, D, y, z, A, Z, J)
			}
		} else {
			for (var W = 0; W < Z; W++)
				for (var p = 0; p < A; p++) {
					var n = ((W + z) * P + p + y) * 3,
						b = (W * A + p) * 3;
					D[b + 0] = Y[n + 0];
					D[b + 1] = Y[n + 1];
					D[b + 2] = Y[n + 2]
				}
		}
		var Q = D,
			_ = D.length,
			L = H.raw.afN(F),
			m = 1 / L;
		for (var w = 0; w < _; w += 3) {
			D[w] = Math.min(1, Q[w] * m);
			D[w + 1] = Math.min(1, Q[w + 1] * m);
			D[w + 2] = Math.min(1, Q[w + 2] * m)
		}
		H.raw.A1(3, F, D, A, Z);
		var I = F.Ss,
			c = A,
			u = Z;
		if (I == 1 || I == 9) {} else {
			var a = H.raw.QU(I, A, Z),
				b = 0;
			c = a[0];
			u = a[1];
			var N = D.slice(0);
			for (var W = 0; W < u; W++)
				for (var p = 0; p < c; p++) {
					var V = a[2] * p + a[3] * W + a[4],
						M = a[5] * p + a[6] * W + a[7],
						n = (M * A + V) * 3;
					D[b] = N[n];
					D[b + 1] = N[n + 1];
					D[b + 2] = N[n + 2];
					b += 3
				}
		}
		return {
			Ww: D,
			kN: c,
			xh: u
		}
	};
	H.raw.QU = function (F, P, o) {
		var X = P,
			Y = o;
		if (F == 3) return [P, o, -1, 0, P - 1, 0, -1, o - 1];
		else if (F == 6) return [o, P, 0, 1, 0, -1, 0, o - 1];
		else if (F == 8) return [o, P, 0, -1, P - 1, 1, 0, 0];
		else throw "unknown orientation " + F
	};
	H.raw.Ly = function (F, P, o, X) {
		var Y = F.Ww,
			y = Math.round(Y.length / 3),
			z = cf.ab0(X[0], X[1]),
			s = H.raw.ajO(o, z),
			t = H.t1.multiply(H.t1.ro, s),
			d = Math.pow(2, X[2] + (o.t50730 ? o.t50730[0] : 0));
		t = H.t1.multiply(t, H.t1.$O(d, d, d));
		var U = o.t50728 ? o.t50728 : [1, 1, 1],
			v = [U[1] / U[0], U[2] / U[0], U[0] / U[1], U[2] / U[1], U[0] / U[2], U[1] / U[2]],
			A = new Float64Array(1e3);
		for (var w = 0; w < 1e3; w++) {
			var Z = w * (1 / 999);
			Z = w == 999 ? 1 : H.SU(w * (1 / 999));
			Z = H.raw.EH.aic(Z, X[3] / 100);
			A[w] = Z
		}
		var D = Date.now();
		for (var w = 0; w < y; w++) {
			var q = w << 2,
				R = q - w,
				J = Y[R],
				W = Y[R + 1],
				p = Y[R + 2];
			if (W >= .92) {
				var n = Math.min(J, p);
				if (n == J) {
					W = Math.max(W, v[0] * J);
					p = Math.max(p, v[1] * J)
				} else {
					J = Math.max(J, v[4] * p);
					W = Math.max(W, v[5] * p)
				}
			}
			var b = t[0] * J + t[1] * W + t[2] * p,
				Q = t[4] * J + t[5] * W + t[6] * p,
				_ = t[8] * J + t[9] * W + t[10] * p;
			if (b < 0) b = 0;
			else if (b > 1) b = 1;
			if (Q < 0) Q = 0;
			else if (Q > 1) Q = 1;
			if (_ < 0) _ = 0;
			else if (_ > 1) _ = 1;
			b = A[~~(b * 999)];
			Q = A[~~(Q * 999)];
			_ = A[~~(_ * 999)];
			P[q] = ~~(.5 + b * 255);
			P[q + 1] = ~~(.5 + Q * 255);
			P[q + 2] = ~~(.5 + _ * 255)
		}
	};
	H.raw.EH = {
		aic: function (F, P) {
			var o = .5 - .5 * Math.cos(F * 3.2),
				X = 0;
			if (P > 0) {
				var Y = F * .2;
				X = Y * F + (1 - Y) * o
			} else {
				var y = Math.pow(F, .33);
				X = (1 - y) * y + y * (F + (F - o) * .63)
			}
			var z = Math.abs(P);
			return z * X + (1 - z) * F
		},
		a0z: function (F, P) {
			var o = 0;
			if (P > 0) {
				var X = F * 1.47,
					Y = Math.pow(F, 2.4);
				o = Math.min(1, Y * F + (1 - Y) * X)
			} else {
				var X = F * .68,
					Y = Math.pow(F, 3);
				o = Y * F * .5 + (1 - Y) * X
			}
			var y = Math.abs(P);
			return y * o + (1 - y) * F
		},
		a4B: function (F, P) {
			var o = 0;
			if (P > 0) {
				var X = Math.pow(F, .3),
					Y = F;
				o = (1 - F) * X + F * Y
			} else {
				var X = Math.pow(F, 2.5),
					y = F,
					Y = F;
				o = Math.min(1, (1 - y) * X + y * Y)
			}
			var z = Math.abs(P);
			return z * o + (1 - z) * F
		}
	};
	H.raw.afA = function (F) {
		var P = F.width,
			o = F.height,
			X = P * o * F.t277,
			Y = new Uint16Array(X),
			y = null,
			z = 0;
		H.raw.a6W(F, Y);
		H.raw.A1(1, F, Y, P, o);
		if (F.t50712) {
			y = F.t50712;
			z = y.length - 1;
			if (y[z] > 65535) throw "too big values"
		}
		var s = H.raw.Sw(F),
			t = H.raw.x2(F);
		if (y == null)
			for (var w = 0; w < X; w++) Y[w] = Math.max(0, Y[w] - s);
		else
			for (var w = 0; w < X; w++) {
				var d = Y[w];
				if (d > z) d = z;
				d = y[d];
				Y[w] = Math.max(0, d - s)
			}
		return Y
	};
	H.raw.Sw = function (F) {
		var P = F.t50714,
			o = P ? P[0] : 0,
			X = F.t50715,
			Y = F.t50716;
		if (X) o += X[0];
		if (Y) o += Y[0];
		return Math.round(o)
	};
	H.raw.x2 = function (F) {
		var P = null,
			o = 0;
		if (F.t50712) {
			P = F.t50712;
			o = P.length - 1
		}
		var X = F.t50717[0];
		if (P) X = Math.min(X, P[o]);
		return X
	};
	H.raw.afN = function (F) {
		var P = H.raw.Sw(F),
			o = H.raw.x2(F);
		return o - P
	};
	H.raw.a6W = function (F, P) {
		var o = P.length,
			X = F.data,
			Y = F.t258[0];
		if (Y != 16 && Y != 14 && Y != 12 && Y != 10 && Y != 8) throw "Unsupported Bits Per Sample:" + Y;
		Y = Math.round(X.length * 8 / o);
		if (Y == 16 && F.isLE) {
			H.Hk(X, P);
			return
		}
		for (var w = 0; w < o; w += 2) {
			var y = 0,
				z = 0,
				s = 0;
			if (Y == 16) {
				y = w << 1;
				z = X[y] << 8 | X[y + 1];
				s = X[y + 2] << 8 | X[y + 3]
			} else if (Y == 14) {
				var t = w * 14,
					d = t >>> 3,
					U = X[d] << 24 | X[d + 1] << 16 | X[d + 2] << 8 | X[d + 3];
				if ((t & 7) == 0) {
					z = U >>> 18;
					s = U >>> 4 & 16383
				} else {
					z = U >>> 14 & 16383;
					s = U & 16383
				}
			} else if (Y == 12) {
				y = w + (w >>> 1);
				z = X[y] << 4 | X[y + 1] >> 4;
				s = (X[y + 1] & 15) << 8 | X[y + 2]
			} else if (Y == 10) {
				var t = w * 10,
					d = t >>> 3;
				if ((t & 7) == 0) {
					z = (X[d] << 2 | X[d + 1] >> 6) & 1023;
					s = (X[d + 1] << 4 | X[d + 2] >> 4) & 1023
				} else {
					z = (X[d] << 6 | X[d + 1] >> 2) & 1023;
					s = (X[d + 1] << 8 | X[d + 2] >> 0) & 1023
				}
			} else if (Y == 8) {
				y = w;
				z = X[y];
				s = X[y + 1]
			}
			P[w] = z;
			P[w + 1] = s
		}
	};
	H.raw.A1 = function (F, P, o, X, Y) {
		var y = P["t" + [51008, 51009, 51022][F - 1]],
			U = 0;
		if (y == null) return;
		var z = X * Y,
			s = r.l,
			t = r.VZ,
			d = new Uint8Array(y),
			cS = r.l(d, U);
		U += 4;
		for (var v = 0; v < cS; v++) {
			var A = s(d, U);
			U += 4;
			var Z = s(d, U);
			U += 4;
			var D = s(d, U);
			U += 4;
			var q = s(d, U);
			U += 4;
			if (!1) {} else if (A == 1 && F == 3) {
				var R = U,
					J = s(d, R);
				R += 4;
				var W = t(d, R);
				R += 8;
				var p = t(d, R);
				R += 8;
				var n = t(d, R);
				R += 8;
				var b = t(d, R);
				R += 8;
				var Q = t(d, R);
				R += 8;
				var _ = t(d, R);
				R += 8;
				R += (J - 1) * 8 * 6;
				var L = t(d, R);
				R += 8;
				var m = t(d, R);
				R += 8;
				var I = L * X,
					c = m * Y,
					u = Math.max(I, X - I),
					a = Math.max(c, Y - c),
					N = Math.sqrt(u * u + a * a),
					V = 1 / N,
					M = o.slice(0);
				for (var O = 0; O < Y; O++)
					for (var K = 0; K < X; K++) {
						var j = (K + .5 - I) * V,
							$ = (O + .5 - c) * V,
							x = j * j + $ * $,
							g = W + p * x + n * (x * x) + b * (x * x) * x,
							T = Q * (2 * j * $) + _ * (x + 2 * j * j),
							E = _ * (2 * j * $) + Q * (x + 2 * $ * $),
							a9 = ~~(I + N * (g * j + T)),
							ez = ~~(c + N * (g * $ + E)),
							bN = (ez * X + a9) * 3,
							cg = (O * X + K) * 3;
						o[cg] = M[bN];
						o[cg + 1] = M[bN + 1];
						o[cg + 2] = M[bN + 2]
					}
			} else if (A == 3 && F == 3) {
				var R = U,
					d8 = t(d, R);
				R += 8;
				var C = t(d, R);
				R += 8;
				var S = t(d, R);
				R += 8;
				var g7 = t(d, R);
				R += 8;
				var g_ = t(d, R);
				R += 8;
				var L = t(d, R);
				R += 8;
				var m = t(d, R);
				R += 8;
				var I = L * X,
					c = m * Y,
					u = Math.max(I, X - I),
					a = Math.max(c, Y - c),
					N = Math.sqrt(u * u + a * a),
					V = 1 / N;
				for (var O = 0; O < Y; O++)
					for (var K = 0; K < X; K++) {
						var j = (K + .5 - I) * V,
							$ = (O + .5 - c) * V,
							x = j * j + $ * $,
							fw = 1 + (d8 + (C + (S + (g7 + g_ * x) * x) * x) * x) * x,
							cg = (O * X + K) * 3;
						o[cg] = fw * o[cg];
						o[cg + 1] = fw * o[cg + 1];
						o[cg + 2] = fw * o[cg + 2]
					}
			} else if (A == 4 && F == 1) {
				var R = U,
					dT = s(d, R);
				R += 4;
				var g4 = s(d, R);
				R += 4;
				for (var w = 0; w < z; w++)
					if (o[w] == dT) o[w] = o[w - 2] + o[w + 2] >> 1
			} else if (A == 5 && F == 1) {
				var R = U,
					bB = s(d, R);
				R += 4;
				var d1 = s(d, R);
				R += 4;
				var f_ = s(d, R);
				R += 4;
				for (var w = 0; w < d1; w++) {
					var g$ = s(d, R);
					R += 4;
					var eT = s(d, R);
					R += 4;
					var w = g$ * X + eT;
					o[w] = o[w - 2] + o[w + 2] >> 1
				}
			} else if (A == 7 && F == 1) {
				var R = U,
					dz = r.g$(d, R);
				R += 16;
				var i4 = s(d, R);
				R += 4;
				var fy = s(d, R);
				R += 4;
				var cN = s(d, R),
					fP = s(d, R + 4);
				R += 8;
				var du = s(d, R);
				R += 4;
				var ea = new Uint16Array(du);
				for (var w = 0; w < du; w++) ea[w] = r.lU(d, R + 2 * w);
				var cF = dz.Z,
					gB = dz.h;
				for (var O = 0; O < gB; O += cN)
					for (var K = 0; K < cF; K += fP) {
						var w = (dz.y + O) * X + (dz.x + K);
						o[w] = ea[o[w]]
					}
			} else if (A == 9 && F == 2) {
				var R = U,
					dz = r.g$(d, R),
					ck = !0;
				R += 16;
				var i4 = s(d, R);
				R += 4;
				var fy = s(d, R);
				R += 4;
				var cN = s(d, R),
					fP = s(d, R + 4);
				R += 8;
				var bp = s(d, R),
					hf = s(d, R + 4);
				R += 8;
				var bq = t(d, R),
					eY = t(d, R + 8);
				R += 16;
				var f1 = t(d, R),
					dh = t(d, R + 8);
				R += 16;
				var hn = s(d, R);
				R += 4;
				if (hn != 1) throw "more than one map plane";
				var e7 = bp * hf,
					ed = new Float32Array(e7);
				for (var hP = 0; hP < e7; hP++) ed[hP] = r.C2(d, R + hP * 4);
				for (var hP = 0; hP < e7; hP++)
					if (ed[hP] != 1) ck = !1;
				if (!ck) {
					var cF = dz.Z,
						gB = dz.h,
						ds = .9999 * (hf - 1) / cF,
						hB = .9999 * (bp - 1) / gB;
					for (var O = 0; O < gB; O += cN)
						for (var K = 0; K < cF; K += fP) {
							var w = (dz.y + O) * X + (dz.x + K),
								bd = K * ds,
								d0 = O * hB,
								d$ = Math.floor(bd),
								ap = Math.floor(d0),
								dE = bd - d$,
								fv = d0 - ap,
								cg = ap * hf + d$,
								c8 = ed[cg] * (1 - dE) + ed[cg + 1] * dE,
								bT = ed[cg + hf] * (1 - dE) + ed[cg + 1 + hf] * dE,
								bi = c8 * (1 - fv) + bT * fv;
							o[w] = ~~(o[w] * bi + .5)
						}
				}
			} else console.log("Unknown opcode " + A + " in OpcodeList" + F + ". Length: " + q);
			U += q
		}
	};
	H.raw.ajO = function (F, P) {
		var o = cf.Fw(P),
			X = H.raw.oV(F, P),
			Y = H.t1.nJ(X),
			y = cf.a4I(o, cf.Fw(cf.adF)),
			z = H.t1.multiply(y, Y);
		return z
	};
	H.raw.a96 = function (F) {
		var P = (F.t50728 ? F.t50728 : [1, 1, 1]).slice(0),
			X = 1;
		P.push(0);
		var o = {
			x: .34567,
			y: .3585
		};
		do {
			var Y = H.t1.nJ(H.raw.oV(F, o)),
				y = H.t1.UE(Y, P),
				z = cf.agx(y);
			X = Math.abs(o.x - z.x) + Math.abs(o.y - z.y);
			o = z
		} while (X > 1e-7);
		return o
	};
	H.raw.oV = function (F, P) {
		var o = cf.j7(P),
			X = H.raw.a1S,
			Y = F.t50779 ? F.t50779[0] : 0,
			y = X(F.t50721, F.t50722, F.t50778[0], Y, o.Ur),
			z = X(F.t50723, F.t50724, F.t50778[0], Y, o.Ur);
		z = z || [1, 0, 0, 0, 1, 0, 0, 0, 1];
		var s = F.t50727 ? [F.t50727[0], 0, 0, 0, F.t50727[1], 0, 0, 0, F.t50727[2]] : [1, 0, 0, 0, 1, 0, 0, 0, 1];
		return H.t1.multiply(H.t1.v9(s), H.t1.multiply(H.t1.v9(z), H.t1.v9(y)))
	};
	H.raw.a1S = function (F, P, o, X, Y) {
		if (!F && !P) {
			return null
		} else if (F && !P) {
			return F
		} else if (Y < o) {
			return F
		} else if (Y > X) {
			return P
		} else {
			var y = (1 / Y - 1 / X) / (1 / o - 1 / X),
				z = 1 - y,
				s = [];
			for (var w = 0; w < 9; w++) s[w] = F[w] * y + P[w] * z;
			return s
		}
	};
	var cf = {};
	cf.adF = {
		x: .34567,
		y: .3585
	};
	cf.D$ = [{
		U: 0,
		j9: .18006,
		pl: .26352,
		wV: -.24341
	}, {
		U: 10,
		j9: .18066,
		pl: .26589,
		wV: -.25479
	}, {
		U: 20,
		j9: .18133,
		pl: .26846,
		wV: -.26876
	}, {
		U: 30,
		j9: .18208,
		pl: .27119,
		wV: -.28539
	}, {
		U: 40,
		j9: .18293,
		pl: .27407,
		wV: -.3047
	}, {
		U: 50,
		j9: .18388,
		pl: .27709,
		wV: -.32675
	}, {
		U: 60,
		j9: .18494,
		pl: .28021,
		wV: -.35156
	}, {
		U: 70,
		j9: .18611,
		pl: .28342,
		wV: -.37915
	}, {
		U: 80,
		j9: .1874,
		pl: .28668,
		wV: -.40955
	}, {
		U: 90,
		j9: .1888,
		pl: .28997,
		wV: -.44278
	}, {
		U: 100,
		j9: .19032,
		pl: .29326,
		wV: -.47888
	}, {
		U: 125,
		j9: .19462,
		pl: .30141,
		wV: -.58204
	}, {
		U: 150,
		j9: .19962,
		pl: .30921,
		wV: -.70471
	}, {
		U: 175,
		j9: .20525,
		pl: .31647,
		wV: -.84901
	}, {
		U: 200,
		j9: .21142,
		pl: .32312,
		wV: -1.0182
	}, {
		U: 225,
		j9: .21807,
		pl: .32909,
		wV: -1.2168
	}, {
		U: 250,
		j9: .22511,
		pl: .33439,
		wV: -1.4512
	}, {
		U: 275,
		j9: .23247,
		pl: .33904,
		wV: -1.7298
	}, {
		U: 300,
		j9: .2401,
		pl: .34308,
		wV: -2.0637
	}, {
		U: 325,
		j9: .24792,
		pl: .34655,
		wV: -2.4681
	}, {
		U: 350,
		j9: .25591,
		pl: .34951,
		wV: -2.9641
	}, {
		U: 375,
		j9: .264,
		pl: .352,
		wV: -3.5814
	}, {
		U: 400,
		j9: .27218,
		pl: .35407,
		wV: -4.3633
	}, {
		U: 425,
		j9: .28039,
		pl: .35577,
		wV: -5.3762
	}, {
		U: 450,
		j9: .28863,
		pl: .35714,
		wV: -6.7262
	}, {
		U: 475,
		j9: .29685,
		pl: .35823,
		wV: -8.5955
	}, {
		U: 500,
		j9: .30505,
		pl: .35907,
		wV: -11.324
	}, {
		U: 525,
		j9: .3132,
		pl: .35968,
		wV: -15.628
	}, {
		U: 550,
		j9: .32129,
		pl: .36011,
		wV: -23.325
	}, {
		U: 575,
		j9: .32931,
		pl: .36038,
		wV: -40.77
	}, {
		U: 600,
		j9: .33724,
		pl: .36051,
		wV: -116.45
	}];
	cf.j7 = function (F) {
		var P = cf.D$,
			o = 2 * F.x / (1.5 - F.x + 6 * F.y),
			X = 3 * F.y / (1.5 - F.x + 6 * F.y),
			Y = 0,
			y = 0,
			z = 0;
		for (; z < 31; z++) {
			Y = X - P[z].pl - P[z].wV * (o - P[z].j9);
			if (z > 0 && Y < 0) {
				break
			}
			y = Y
		}
		while (z >= P.length) z--;
		Y /= Math.sqrt(1 + P[z].wV * P[z].wV);
		y /= Math.sqrt(1 + P[z - 1].wV * P[z - 1].wV);
		var s = y / (y - Y),
			t = 1e6 / ((P[z].U - P[z - 1].U) * s + P[z - 1].U),
			d = o - ((P[z].j9 - P[z - 1].j9) * s + P[z - 1].j9),
			U = X - ((P[z].pl - P[z - 1].pl) * s + P[z - 1].pl),
			v = Math.sqrt(1 + P[z].wV * P[z].wV),
			A = 1 / v,
			Z = P[z].wV / v,
			D = Math.sqrt(1 + P[z - 1].wV * P[z - 1].wV),
			q = 1 / D,
			R = P[z - 1].wV / D,
			J = (A - q) * s + q,
			W = (Z - R) * s + R,
			p = Math.sqrt(J * J + W * W);
		J /= p;
		W /= p;
		var n = (d * J + U * W) * -3e3;
		return {
			Ur: t,
			Ro: n
		}
	};
	cf.ab0 = function (F, P) {
		var o = cf.D$,
			X = 1e6 / F,
			Y = 1;
		for (; Y < 31; Y++) {
			if (X < o[Y].U) {
				break
			}
		}
		var y = (o[Y].U - X) / (o[Y].U - o[Y - 1].U),
			z = (o[Y - 1].j9 - o[Y].j9) * y + o[Y].j9,
			s = (o[Y - 1].pl - o[Y].pl) * y + o[Y].pl,
			t = Math.sqrt(1 + o[Y].wV * o[Y].wV),
			d = 1 / t,
			U = o[Y].wV / t,
			v = Math.sqrt(1 + o[Y - 1].wV * o[Y - 1].wV),
			A = 1 / v,
			Z = o[Y - 1].wV / v,
			D = (A - d) * y + d,
			q = (Z - U) * y + U,
			R = Math.sqrt(D * D + q * q);
		D /= R;
		q /= R;
		z += D * P / -3e3;
		s += q * P / -3e3;
		return {
			x: 1.5 * z / (z - 4 * s + 2),
			y: s / (z - 4 * s + 2)
		}
	};
	cf.agx = function (F) {
		var P = F[0] + F[1] + F[2];
		return {
			x: F[0] / P,
			y: F[1] / P
		}
	};
	cf.Fw = function (F) {
		return {
			x: F.x / F.y,
			y: 1,
			QY: (1 - F.x - F.y) / F.y
		}
	};
	cf.a4I = function (F, P) {
		var o = H.t1.v9([.8951, .2664, -.1614, -.7502, 1.7135, .0367, .0389, -.0685, 1.0296]),
			X = [F.x, F.y, F.QY, 0],
			Y = [P.x, P.y, P.QY, 0];
		X = H.t1.UE(o, X);
		Y = H.t1.UE(o, Y);
		var y = Y[0] / X[0],
			z = Y[1] / X[1],
			s = Y[2] / X[2],
			t = H.t1.v9([y, 0, 0, 0, z, 0, 0, 0, s]),
			d = H.t1.nJ(o);
		return H.t1.multiply(H.t1.multiply(d, t), o)
	};
	H.raw.w_ = {};
	H.raw.Ei = function (F) {
		F *= 8;
		var P = [8, 10, 12, 14, 16];
		for (var o in H.raw.Lv) {
			var X = H.raw.Lv[o];
			if (X.length == 4) continue;
			var Y = X[4],
				y = X[5];
			for (var w = 0; w < P.length; w++)
				if (Y * y * P[w] == F) return [o, P[w]]
		}
		var z = [
			[4e3, 3e3]
		];
		for (var w = 0; w < z.length; w++) {
			var X = z[w],
				Y = X[0],
				y = X[1];
			for (var w = 0; w < P.length; w++)
				if (Y * y * P[w] == F) return [X, P[w]]
		}
		return null
	};
	H.raw.ac2 = function (F) {
		var F = new Uint8Array(F);
		for (var w = 0; w < F.length; w += 2) {
			var P = F[w];
			F[w] = F[w + 1];
			F[w + 1] = P
		}
		var o = H.raw.Ei(F.length),
			X = H.raw.Lv[o[0]];
		if (X == null) X = [
			[8489, -2583, -1036, -8051, 15583, 2643, -1307, 1407, 7354], 0, 1e3, 64383, o[0][0], o[0][1]
		];
		var Y = X[4],
			y = X[5],
			z = Math.max(X[2], 116),
			s = {
				data: F,
				Ss: 1,
				width: Y,
				height: y,
				t256: [Y],
				t257: [y],
				t258: [o[1]],
				t277: [1],
				t33421: [2, 2],
				t33422: H.raw.Bk[X[1]],
				t50706: [1, 2, 0, 0],
				t50714: [z, z, z, z],
				t50717: [X[3]],
				t50721: X[0].slice(0),
				t50723: [1, 0, 0, 0, 1, 0, 0, 0, 1],
				t50728: [.64, 1, .46],
				t50778: [17]
			};
		for (var w = 0; w < 9; w++) s.t50721[w] /= 1e4;
		return s
	};
	H.raw.Zv = function (F) {
		if (F == null || F.length == 0 || typeof F[0] == "number") return F;
		var P = [];
		for (var w = 0; w < F.length; w++) P[w] = F[w][1] == 0 ? 0 : F[w][0] / F[w][1];
		return P
	};
	H.raw.Bk = [
		[2, 1, 1, 0],
		[0, 1, 1, 2],
		[1, 0, 2, 1],
		[1, 2, 0, 1]
	];
	H.raw.normalize = function (F, P) {
		if (F.t50706 != null) {
			var o = [50714, 50718, 50719, 50720, 50721, 50722, 50723, 50724, 50727, 50728, 50730, 50731, 50732, 50734, 50736, 50738, 50739, 50780, 50964, 50965];
			for (var w = 0; w < o.length; w++)
				if (F["t" + o[w]] != null) F["t" + o[w]] = H.raw.Zv(F["t" + o[w]]);
			return
		}
		var X = F.t258[0],
			Y = F.exifIFD,
			P = new Uint8Array(P);
		F.t50706 = [1, 2, 0, 0];
		var y = F.t272[0].trim();
		if (y.indexOf(" ") == -1) y = F.t271[0].trim() + " " + y;
		F.t50708 = [y];
		var z = H.raw.Lv,
			s = z[y.toLowerCase()];
		if (s == null)
			for (var t in z)
				if (y.toLowerCase().startsWith(t)) s = z[t];
		if (s == null) throw y;
		var d = s[2];
		F.t50714 = [d, d, d, d];
		F.t50717 = [s[3]];
		F.t50721 = s[0].slice(0);
		for (var w = 0; w < 9; w++) F.t50721[w] = F.t50721[w] * (1 / 1e4);
		F.t50723 = [1, 0, 0, 0, 1, 0, 0, 0, 1];
		if (F.t50728 == null) F.t50728 = [.35, 1, .6];
		F.t50778 = [17];
		if (F.t271[0].startsWith("SONY")) {
			var U = UTIF["_bin" + (F.isLE ? "LE" : "BE")],
				v = F.t28688,
				W;
			if (JSON.stringify(v) != "[8000,10400,12900,14100]") console.log(v);
			if (v) {
				var A = [0, 0, 0, 0, 0, 4095],
					Z = new Uint16Array(16385);
				for (var w = 0; w < 4; w++) {
					var D = v[w] >>> 2;
					A[w + 1] = D;
					if (D > 4095) throw "e"
				}
				for (var w = 0; w < 16385; w++) Z[w] = w;
				for (var w = 0; w < 5; w++)
					for (var q = A[w] + 1; q <= A[w + 1]; q++) Z[q] = Z[q - 1] + (1 << w);
				var R = P.length * 8 < F.width * F.height * X;
				if (R) F.t50712 = Z
			} else console.log("no curve");
			var J = F.dngPrvt;
			if (J) {
				var p = J.t29184[0],
					n = J.t29185[0],
					b = (F.isLE ? r.L6 : r.l)(J.t29217, 0),
					Q = new Uint32Array(P.slice(p, p + (n & 4294967292)).buffer),
					_ = new Uint32Array(n >>> 2);
				H.raw.a59(Q, _, n >>> 2, b);
				var L = new Uint8Array(p + n);
				L.set(new Uint8Array(_.buffer), p);
				var m = [];
				UTIF._readIFD(U, L, p, m, 0, !1);
				var I = m.pop(),
					c = I.t29458;
				F.t50728 = [c[1] / c[0], 1, c[1] / c[3]];
				F.t50730 = [.5];
				var u = I.t29891;
				F.t50829 = [u[1], u[0], u[3], u[2]]
			} else if (Y.makerNote && Y.makerNote.t8208) {
				var W = Y.makerNote,
					a = W.t8208,
					N = a.length,
					V = 0,
					M = new Uint8Array(256);
				for (var w = 249; w < 256; w++) M[w] = w;
				for (var w = 0; w < 249; w++) M[w * w * w % 249] = w;
				for (var w = 0; w < N; w++) a[w] = M[a[w]];
				if (N == 6604) V = 612;
				else throw "e";
				var c = [];
				for (var w = 0; w < 3; w++) c.push(r.XS(a, V + w * 2));
				console.log(c);
				F.t50728 = [c[1] / c[0], 1, c[1] / c[2]]
			} else console.log("no white balance");
			if (F.width * F.height * 1.5 == F.t279[0]) {
				d = d >>> 2;
				F.t50714 = [d, d, d, d];
				F.t50717 = [s[3] >>> 2]
			}
		} else if (F.t271[0].startsWith("Canon")) {
			var P = F.data,
				O = P.slice(0),
				K = F.t50752,
				j = [],
				x = 0;
			if (K == null || K[0] == 0 && K[1] == 0) j.push(F.width);
			else {
				for (var w = 0; w < K[0]; w++) j.push(K[1]);
				j.push(K[2])
			}
			var $ = F.width * 2;
			for (var g = 0; g < j.length; g++) {
				var T = j[g],
					E = 2 * x,
					a9 = 2 * T;
				for (var ez = 0; ez < F.height; ez += 2) {
					var bN = ez * $ + E,
						cg = F.height * E + (ez >> 1) * a9 * 2;
					for (var w = 0; w < a9; w++) {
						P[bN + w] = O[cg + w];
						P[bN + w + $] = O[cg + w + a9]
					}
				}
				x += T
			}
			var W = Y.makerNote;
			if (W.t16385) {
				var d8 = W.t224,
					g7 = 0;
				if (d8) {
					F.t50719 = [d8[5], d8[6]];
					F.t50720 = [d8[7] + 1 - d8[5], d8[8] + 1 - d8[6]]
				}
				var C = W.t16385,
					S = C.length;
				if (S == 582) g7 = 1;
				else if (S == 653) g7 = 2;
				else if (S == 796) g7 = 3;
				else if ([692, 674, 702, 1227, 1250, 1251, 1337, 1338, 1346].indexOf(S) != -1) g7 = 4;
				else if (S == 5120) {
					g7 = 5;
					C = new Int16Array(C.slice(0).buffer)
				} else if (S == 1273 || S == 1275) g7 = 6;
				else if ([1312, 1313, 1316, 1506].indexOf(S) != -1) g7 = 7;
				else if ([1560, 1592, 1353, 1602].indexOf(S) != -1) g7 = 8;
				else throw "e" + S;
				var g_ = C[0],
					fw = [null, [25, 166],
						[34, 286],
						[63, 196],
						[63],
						[71, g_ == -4 ? 333 : 264],
						[63, 251],
						[63, g_ == 10 ? 504 : 728],
						[63, 326]
					],
					V = fw[g7][0],
					dT = fw[g7][1];
				if (g7 == 4) {
					if (C[0] == 2) dT = 231;
					else if (C[0] == 3) dT = 231;
					else if (C[0] == 4) dT = 231;
					else if (C[0] == 5) dT = 231;
					else if (C[0] == 6) dT = 231;
					else if (C[0] == 7) dT = 231;
					else if (C[0] == 9) dT = 231;
					else throw "e"
				}
				F.t50728 = [C[V + 1] / C[V], 1, C[V + 1] / C[V + 3]];
				var d = dT == null ? 1024 : C[dT];
				F.t50714 = [d, d, d, d]
			} else {
				F.t50728 = [.4, 1, .6]
			}
		} else if (F.t271[0].startsWith("NIKON")) {
			var W = Y.makerNote,
				g4 = F.isLE ? r.XS : r.dx,
				dz = 0,
				i4 = 0,
				ea, f1 = 0;
			if (W.t61) {
				var bB = W.t61,
					d1 = [];
				for (var w = 0; w < 4; w++) d1[w] = bB[w] / Math.pow(2, 14 - X);
				F.t50714 = d1
			}
			if (W.t3585) {
				var f_ = W.t3585,
					w = 0,
					p = 22;
				while (p < f_.length && w != -4) {
					var g$ = r.L6(f_, p);
					p += 4;
					p += 14;
					w = r.L6(f_, p) - 4;
					p += 4;
					if (g$ == 1990472198) {
						if (f_[p] != 0) throw "Flip"
					}
					if (g$ == 1990472199) {
						var eT = r.XS(f_, p);
						if (eT == 0) F.Ss = 1;
						else if (eT == 270) F.Ss = 8;
						else throw "e " + eT
					}
					p += w
				}
			}
			if (W.t183) {
				var fy = W.t183,
					cN = [];
				for (var w = 0; w < 6; w++) cN.push(g4(fy, 16 + w * 2));
				dz = cN[0];
				i4 = cN[1]
			}
			if (W.t3614) {
				var fP = W.t3614;
				dz = r.L6(fP, 8);
				i4 = r.L6(fP, 12)
			}
			if (dz != 0) {
				if (dz < i4) {
					var du = dz;
					dz = i4;
					i4 = du
				}
				var x = F.width - dz >>> 1,
					ez = F.height - i4 >>> 1;
				F.t50829 = [ez, x, ez + i4, x + dz]
			}
			if (W.t12) {
				var cF = H.raw.Zv(W.t12);
				ea = [1 / cF[0], 1, 1 / cF[1]]
			} else if (W.t151) {
				var gB = H.raw.afS(W, 151),
					bp = gB[0],
					gH = gB[1],
					hf = gB[2];
				if (bp == "0100" && gH >= 80) throw "e";
				else if (bp == "0102") {
					var bq = [];
					for (var w = 0; w < 4; w++) bq.push(g4(hf, 6 + w * 2));
					ea = [bq[1] / bq[0], 1, bq[1] / bq[3]]
				} else if (bp == "0103" && gH >= 26) {
					var bq = [];
					for (var w = 0; w < 4; w++) bq.push(g4(hf, 16 + w * 2));
					ea = [bq[1] / bq[0], 1, bq[3] / bq[2]]
				} else if (bp == "0204" && gH >= 564 || bp == "0205" && gH >= 284) {
					var p = bp == "0204" ? 6 : 14,
						bq = [];
					for (var w = 0; w < 4; w++) bq.push(g4(hf, p + w * 2));
					ea = [bq[1] / bq[0], 1, bq[1] / bq[3]]
				} else throw "e"
			} else console.log("no white balance info");
			if (y == "NIKON D1") ea = [1, 1, 1];
			if (ea) F.t50728 = ea;
			var eY = W.t150 ? W.t150 : W.t140;
			if (eY) {
				var dh = eY[f1++],
					hn = eY[f1++],
					hP;
				if (dh == 73 || hn == 88) f1 += 2110;
				f1 += 8;
				var e7 = 1 << X & 32767,
					ed = g4(eY, f1);
				f1 += 2;
				var Z = [];
				if (ed > 1) hP = Math.floor(e7 / (ed - 1));
				if (dh == 68 && hn == 32 && hP > 0) {
					for (w = 0; w < ed; w++) {
						Z[w * hP] = g4(eY, f1);
						f1 += 2
					}
					for (w = 0; w < e7; w++) Z[w] = Math.floor((Z[w - w % hP] * (hP - w % hP) + Z[w - w % hP + hP] * (w % hP)) / hP)
				} else if (dh != 70 && ed <= 16385) {
					e7 = ed;
					for (var w = 0; w < ed; w++) Z[w] = g4(eY, f1 + 2 * w);
					f1 += 2 * ed
				}
				if (Z.length != 0) F.t50712 = new Uint16Array(Z)
			}
		} else if (y.startsWith("FujiFilm")) {} else alert("Unknown camera " + y)
	};
	H.raw.a59 = function (F, P, o, X) {
		if (0 == o) return;
		var Y = new Uint32Array(128),
			y = new Uint8Array(Y.buffer),
			z = 127,
			s = 0,
			t = 0;
		for (var z = 0; z < 4; z++) Y[z] = X = (X * 15625 >>> 0) * 3125 + 1 >>> 0;
		Y[3] = Y[3] << 1 | (Y[0] ^ Y[2]) >>> 31;
		for (var z = 4; z < 127; z++) Y[z] = (Y[z - 4] ^ Y[z - 2]) << 1 | (Y[z - 3] ^ Y[z - 1]) >>> 31;
		for (var z = 0; z < 127; z++) Y[z] = r.l(y, z * 4);
		for (; o > 0; o--) {
			Y[z & 127] = Y[z + 1 & 127] ^ Y[z + 1 + 64 & 127];
			var d = Y[z & 127],
				U = F[s];
			U ^= d;
			P[t] = U;
			s++;
			t++;
			z++
		}
	};
	H.raw.a0C = function (F, P) {
		var o = r.$o(P, 0, 4),
			X = H.raw.ajH;
		for (var w = 0; w < X.length; w++)
			if (X[w][0] == F && o.startsWith(X[w][1]) && (X[w][2] == 0 || X[w][2] == P.length)) return X[w];
		throw "e"
	};
	H.raw.a3Z = function (F) {
		if (F.t29 == null) return [];
		var P = H.raw.adl,
			o = H.raw.a97,
			X = F.t29[0],
			Y = 0,
			z = 0;
		for (var w = 0; w < X.length; w++) {
			var y = X.charCodeAt(w);
			Y = Y * 10 + (48 <= y && y <= 57 ? y - 48 : y % 10)
		}
		var gH = F.t167[0];
		for (var w = 0; w < 4; w++) z ^= gH >>> (w << 3) & 255;
		var s = P[Y & 255],
			t = o[z & 255];
		return [s, t, 96]
	};
	H.raw.afS = function (F, P) {
		var o = F["t" + P],
			gH = o.length,
			X = H.raw.a0C(P, o),
			Y = r.$o(o, 0, 4),
			y, z = X[4];
		if (z == null) y = o.slice(4);
		else {
			y = new Uint8Array(gH - z);
			var s = H.raw.a3Z(F),
				t = s[0],
				d = s[1],
				U = s[2];
			for (var w = 0; w < y.length; w++) {
				d = d + t * U++ & 255;
				y[w] = o[z++] ^ d
			}
		}
		return [Y, gH, y]
	};
	H.raw.ajH = [
		[145, "0208", 0, 0, 4],
		[145, "0209", 0, 1, 4],
		[145, "0210", 5291, 2, 4],
		[145, "0210", 5303, 3, 4],
		[145, "02", 0, 4, 4],
		[145, "01", 0, 5, null],
		[151, "0100", 0, 0, null],
		[151, "0102", 0, 1, null],
		[151, "0103", 0, 4, null],
		[151, "0204", 0, 3, 284],
		[151, "0205", 0, 2, 4],
		[151, "0206", 0, 3, 284],
		[151, "0207", 0, 3, 284],
		[151, "0208", 0, 3, 284],
		[151, "0209", 0, 5, 284],
		[151, "02", 0, 3, 284],
		[152, "0100", 0, 0, null],
		[152, "0101", 0, 1, null],
		[152, "0201", 0, 1, 4],
		[152, "0202", 0, 1, 4],
		[152, "0203", 0, 1, 4],
		[152, "0204", 0, 2, 4],
		[168, "0100", 0, 0, null],
		[168, "0101", 0, 0, null],
		[168, "0102", 0, 1, null],
		[168, "0103", 0, 2, null]
	];
	H.raw.adl = [193, 191, 109, 13, 89, 197, 19, 157, 131, 97, 107, 79, 199, 127, 61, 61, 83, 89, 227, 199, 233, 47, 149, 167, 149, 31, 223, 127, 43, 41, 199, 13, 223, 7, 239, 113, 137, 61, 19, 61, 59, 19, 251, 13, 137, 193, 101, 31, 179, 13, 107, 41, 227, 251, 239, 163, 107, 71, 127, 149, 53, 167, 71, 79, 199, 241, 89, 149, 53, 17, 41, 97, 241, 61, 179, 43, 13, 67, 137, 193, 157, 157, 137, 101, 241, 233, 223, 191, 61, 127, 83, 151, 229, 233, 149, 23, 29, 61, 139, 251, 199, 227, 103, 167, 7, 241, 113, 167, 83, 181, 41, 137, 229, 43, 167, 23, 41, 233, 79, 197, 101, 109, 107, 239, 13, 137, 73, 47, 179, 67, 83, 101, 29, 73, 163, 19, 137, 89, 239, 107, 239, 101, 29, 11, 89, 19, 227, 79, 157, 179, 41, 67, 43, 7, 29, 149, 89, 89, 71, 251, 229, 233, 97, 71, 47, 53, 127, 23, 127, 239, 127, 149, 149, 113, 211, 163, 11, 113, 163, 173, 11, 59, 181, 251, 163, 191, 79, 131, 29, 173, 233, 47, 113, 101, 163, 229, 7, 53, 61, 13, 181, 233, 229, 71, 59, 157, 239, 53, 163, 191, 179, 223, 83, 211, 151, 83, 73, 113, 7, 53, 97, 113, 47, 67, 47, 17, 223, 23, 151, 251, 149, 59, 127, 107, 211, 37, 191, 173, 199, 197, 197, 181, 139, 239, 47, 211, 7, 107, 37, 73, 149, 37, 73, 109, 113, 199];
	H.raw.a97 = [167, 188, 201, 173, 145, 223, 133, 229, 212, 120, 213, 23, 70, 124, 41, 76, 77, 3, 233, 37, 104, 17, 134, 179, 189, 247, 111, 97, 34, 162, 38, 52, 42, 190, 30, 70, 20, 104, 157, 68, 24, 194, 64, 244, 126, 95, 27, 173, 11, 148, 182, 103, 180, 11, 225, 234, 149, 156, 102, 220, 231, 93, 108, 5, 218, 213, 223, 122, 239, 246, 219, 31, 130, 76, 192, 104, 71, 161, 189, 238, 57, 80, 86, 74, 221, 223, 165, 248, 198, 218, 202, 144, 202, 1, 66, 157, 139, 12, 115, 67, 117, 5, 148, 222, 36, 179, 128, 52, 229, 44, 220, 155, 63, 202, 51, 69, 208, 219, 95, 245, 82, 195, 33, 218, 226, 34, 114, 107, 62, 208, 91, 168, 135, 140, 6, 93, 15, 221, 9, 25, 147, 208, 185, 252, 139, 15, 132, 96, 51, 28, 155, 69, 241, 240, 163, 148, 58, 18, 119, 51, 77, 68, 120, 40, 60, 158, 253, 101, 87, 22, 148, 107, 251, 89, 208, 200, 34, 54, 219, 210, 99, 152, 67, 161, 4, 135, 134, 247, 166, 38, 187, 214, 89, 77, 191, 106, 46, 170, 43, 239, 230, 120, 182, 78, 224, 47, 220, 124, 190, 87, 25, 50, 126, 42, 208, 184, 186, 41, 0, 60, 82, 125, 168, 73, 59, 45, 235, 37, 73, 250, 163, 170, 57, 167, 197, 167, 80, 17, 54, 251, 198, 103, 74, 245, 165, 18, 101, 126, 176, 223, 175, 78, 179, 97, 127, 47];
	H.raw.Lv = {
		"canon eos 100d": [
			[6602, -841, -939, -4472, 12458, 2247, -975, 2039, 6148], 1, 2048, 15e3
		],
		"canon eos rebel sl1": [
			[6602, -841, -939, -4472, 12458, 2247, -975, 2039, 6148], 1, 2048, 15e3
		],
		"canon eos kiss x7": [
			[6602, -841, -939, -4472, 12458, 2247, -975, 2039, 6148], 1, 2048, 15e3
		],
		"canon eos 200d": [
			[7377, -742, -998, -4235, 11981, 2549, -673, 1918, 5538], 1, 2049, 14338
		],
		"canon eos rebel sl2": [
			[7377, -742, -998, -4235, 11981, 2549, -673, 1918, 5538], 1, 2049, 14338
		],
		"canon eos kiss x9": [
			[7377, -742, -998, -4235, 11981, 2549, -673, 1918, 5538], 1, 2049, 14338
		],
		"canon eos 300d": [
			[8197, -2e3, -1118, -6714, 14335, 2592, -2536, 3178, 8266], 1, 126, 4e3
		],
		"canon eos digital rebel": [
			[8197, -2e3, -1118, -6714, 14335, 2592, -2536, 3178, 8266], 1, 126, 4e3
		],
		"canon eos kiss digital": [
			[8197, -2e3, -1118, -6714, 14335, 2592, -2536, 3178, 8266], 1, 126, 4e3
		],
		"canon eos d30": [
			[9805, -2689, -1312, -5803, 13064, 3068, -2438, 3075, 8775], 1, 126, 4095
		],
		"canon eos d60": [
			[6188, -1341, -890, -7168, 14489, 2937, -2640, 3228, 8483], 1, 127, 4e3
		],
		"canon eos 10d": [
			[8197, -2e3, -1118, -6714, 14335, 2592, -2536, 3178, 8266], 1, 127, 4e3
		],
		"canon eos 20d": [
			[6599, -537, -891, -8071, 15783, 2424, -1983, 2234, 7462], 1, 126, 4095
		],
		"canon eos 30d": [
			[6257, -303, -1e3, -7880, 15621, 2396, -1714, 1904, 7046], 1, 127, 3398
		],
		"canon eos 350d": [
			[6018, -617, -965, -8645, 15881, 2975, -1530, 1719, 7642], 1, 255, 4095
		],
		"canon eos digital rebel xt": [
			[6018, -617, -965, -8645, 15881, 2975, -1530, 1719, 7642], 1, 255, 4095
		],
		"canon eos kiss digital n": [
			[6018, -617, -965, -8645, 15881, 2975, -1530, 1719, 7642], 1, 255, 4095
		],
		"canon eos 350d": [
			[6018, -617, -965, -8645, 15881, 2975, -1530, 1719, 7642], 1, 255, 4095
		],
		"canon eos 350d digital": [
			[6018, -617, -965, -8645, 15881, 2975, -1530, 1719, 7642], 1, 255, 4095
		],
		"canon eos 40d": [
			[6071, -747, -856, -7653, 15365, 2441, -2025, 2553, 7315], 1, 1021, 13600
		],
		"canon eos 450d": [
			[5784, -262, -821, -7539, 15064, 2672, -1982, 2681, 7427], 1, 1020, 14500
		],
		"canon eos digital rebel xsi": [
			[5784, -262, -821, -7539, 15064, 2672, -1982, 2681, 7427], 1, 1020, 14500
		],
		"canon eos kiss digital x2": [
			[5784, -262, -821, -7539, 15064, 2672, -1982, 2681, 7427], 1, 1020, 14500
		],
		"canon eos kiss x2": [
			[5784, -262, -821, -7539, 15064, 2672, -1982, 2681, 7427], 1, 1020, 14500
		],
		"canon eos 50d": [
			[4920, 616, -593, -6493, 13964, 2784, -1774, 3178, 7005], 3, 1020, 13653
		],
		"canon eos 60d": [
			[6719, -994, -925, -4408, 12426, 2211, -887, 2129, 6051], 3, 2026, 14200
		],
		"canon eos 70d": [
			[7034, -804, -1014, -4420, 12564, 2058, -851, 1994, 5758], 1, 2026, 13653
		],
		"canon eos 80d": [
			[7457, -671, -937, -4849, 12495, 2643, -1213, 2354, 5492], 1, 512, 11892
		],
		"canon eos 700d": [
			[6602, -841, -939, -4472, 12458, 2247, -975, 2039, 6148], 1, 2052, 15e3
		],
		"canon eos rebel t5i": [
			[6602, -841, -939, -4472, 12458, 2247, -975, 2039, 6148], 1, 2052, 15e3
		],
		"canon eos kiss x7i": [
			[6602, -841, -939, -4472, 12458, 2247, -975, 2039, 6148], 1, 2052, 15e3
		],
		"canon eos 750d": [
			[6362, -823, -847, -4426, 12109, 2616, -743, 1857, 5635], 1, 2047, 11765
		],
		"canon eos rebel t6i": [
			[6362, -823, -847, -4426, 12109, 2616, -743, 1857, 5635], 1, 2047, 11765
		],
		"canon eos kiss x8i": [
			[6362, -823, -847, -4426, 12109, 2616, -743, 1857, 5635], 1, 2047, 11765
		],
		"canon eos 800d": [
			[6970, -512, -968, -4425, 12161, 2553, -739, 1982, 5601], 1, 2049, 14338
		],
		"canon eos rebel t7i": [
			[6970, -512, -968, -4425, 12161, 2553, -739, 1982, 5601], 1, 2049, 14338
		],
		"canon eos kiss x9i": [
			[6970, -512, -968, -4425, 12161, 2553, -739, 1982, 5601], 1, 2049, 14338
		],
		"canon eos 760d": [
			[6362, -823, -847, -4426, 12109, 2616, -743, 1857, 5635], 1, 2047, 11765
		],
		"canon eos rebel t6s": [
			[6362, -823, -847, -4426, 12109, 2616, -743, 1857, 5635], 1, 2047, 11765
		],
		"canon eos 8000d": [
			[6362, -823, -847, -4426, 12109, 2616, -743, 1857, 5635], 1, 2047, 11765
		],
		"canon eos 77d": [
			[7377, -742, -998, -4235, 11981, 2549, -673, 1918, 5538], 1, 2048, 14338
		],
		"canon eos 9000d": [
			[7377, -742, -998, -4235, 11981, 2549, -673, 1918, 5538], 1, 2048, 14338
		],
		"canon eos 500d": [
			[4763, 712, -646, -6821, 14399, 2640, -1921, 3276, 6561], 1, 1020, 16e3
		],
		"canon eos rebel t1i": [
			[4763, 712, -646, -6821, 14399, 2640, -1921, 3276, 6561], 1, 1020, 16e3
		],
		"canon eos kiss x3": [
			[4763, 712, -646, -6821, 14399, 2640, -1921, 3276, 6561], 1, 1020, 16e3
		],
		"canon eos 550d": [
			[6941, -1164, -857, -3825, 11597, 2534, -416, 1540, 6039], 0, 2048, 15831
		],
		"canon eos rebel t2i": [
			[6941, -1164, -857, -3825, 11597, 2534, -416, 1540, 6039], 0, 2048, 15831
		],
		"canon eos kiss x4": [
			[6941, -1164, -857, -3825, 11597, 2534, -416, 1540, 6039], 0, 2048, 15831
		],
		"canon eos 600d": [
			[6461, -907, -882, -4300, 12184, 2378, -819, 1944, 5931], 3, 2026, 13584
		],
		"canon eos rebel t3i": [
			[6461, -907, -882, -4300, 12184, 2378, -819, 1944, 5931], 3, 2026, 13584
		],
		"canon eos kiss x5": [
			[6461, -907, -882, -4300, 12184, 2378, -819, 1944, 5931], 3, 2026, 13584
		],
		"canon eos 650d": [
			[6602, -841, -939, -4472, 12458, 2247, -975, 2039, 6148], 1, 2026, 13584
		],
		"canon eos rebel t4i": [
			[6602, -841, -939, -4472, 12458, 2247, -975, 2039, 6148], 1, 2026, 13584
		],
		"canon eos kiss x6i": [
			[6602, -841, -939, -4472, 12458, 2247, -975, 2039, 6148], 1, 2026, 13584
		],
		"canon eos 5d": [
			[6347, -479, -972, -8297, 15954, 2480, -1968, 2131, 7649], 1, 127, 3692
		],
		"canon eos 5d mark ii": [
			[4716, 603, -830, -7798, 15474, 2480, -1496, 1937, 6651], 3, 1024, 12995
		],
		"canon eos 5d mark iii": [
			[6722, -635, -963, -4287, 12460, 2028, -908, 2162, 5668], 1, 2060, 16383
		],
		"canon eos 5d mark iv": [
			[6446, -366, -864, -4436, 12204, 2513, -952, 2496, 6348], 1, 2049, 14448
		],
		"canon eos 5ds": [
			[6250, -711, -808, -5153, 12794, 2636, -1249, 2198, 5610], 1, 2048, 15181
		],
		"canon eos 5ds r": [
			[6250, -711, -808, -5153, 12794, 2636, -1249, 2198, 5610], 1, 2048, 15181
		],
		"canon eos 6d": [
			[7034, -804, -1014, -4420, 12564, 2058, -851, 1994, 5758], 1, 2048, 15e3
		],
		"canon eos 6d mark ii": [
			[6875, -970, -932, -4691, 12459, 2501, -874, 1953, 5809], 1, 2049, 14558
		],
		"canon eos 7d": [
			[6844, -996, -856, -3876, 11761, 2396, -593, 1772, 6198], 3, 1025, 8150
		],
		"canon eos 7d mark ii": [
			[7268, -1082, -969, -4186, 11839, 2663, -825, 2029, 5839], 1, 2047, 13400
		],
		"canon eos 1000d": [
			[6771, -1139, -977, -7818, 15123, 2928, -1244, 1437, 7533], 1, 255, 3650
		],
		"canon eos digital rebel xs": [
			[6771, -1139, -977, -7818, 15123, 2928, -1244, 1437, 7533], 1, 255, 3650
		],
		"canon eos kiss digital f": [
			[6771, -1139, -977, -7818, 15123, 2928, -1244, 1437, 7533], 1, 255, 3650
		],
		"canon eos 1100d": [
			[6444, -904, -893, -4563, 12308, 2535, -903, 2016, 6728], 1, 2036, 15500
		],
		"canon eos rebel t3": [
			[6444, -904, -893, -4563, 12308, 2535, -903, 2016, 6728], 1, 2036, 15500
		],
		"canon eos 1200d": [
			[6461, -907, -882, -4300, 12184, 2378, -819, 1944, 5931], 3, 2046, 12279
		],
		"canon eos rebel t5": [
			[6461, -907, -882, -4300, 12184, 2378, -819, 1944, 5931], 3, 2046, 12279
		],
		"canon eos kiss x70": [
			[6461, -907, -882, -4300, 12184, 2378, -819, 1944, 5931], 3, 2046, 12279
		],
		"canon eos 1300d": [
			[6939, -1016, -866, -4428, 12473, 2177, -1175, 2178, 6162], 3, 2048, 15e3
		],
		"canon eos rebel t6": [
			[6939, -1016, -866, -4428, 12473, 2177, -1175, 2178, 6162], 3, 2048, 15e3
		],
		"canon eos kiss x80": [
			[6939, -1016, -866, -4428, 12473, 2177, -1175, 2178, 6162], 3, 2048, 15e3
		],
		"canon eos 2000d": [
			[8532, -701, -1167, -4095, 11879, 2508, -797, 2424, 7010], 3, 2048, 15092
		],
		"canon eos rebel t7": [
			[8532, -701, -1167, -4095, 11879, 2508, -797, 2424, 7010], 3, 2048, 15092
		],
		"canon eos 1500d": [
			[8532, -701, -1167, -4095, 11879, 2508, -797, 2424, 7010], 3, 2048, 15092
		],
		"canon eos 4000d": [
			[6939, -1016, -866, -4428, 12473, 2177, -1175, 2178, 6162], 3, 2051, 15e3
		],
		"canon eos rebel t100": [
			[6939, -1016, -866, -4428, 12473, 2177, -1175, 2178, 6162], 3, 2051, 15e3
		],
		"canon eos 3000d": [
			[6939, -1016, -866, -4428, 12473, 2177, -1175, 2178, 6162], 3, 2051, 15e3
		],
		"canon eos 400d": [
			[7054, -1501, -990, -8156, 15544, 2812, -1278, 1414, 7796], 1, 255, 3726
		],
		"canon eos digital rebel xti": [
			[7054, -1501, -990, -8156, 15544, 2812, -1278, 1414, 7796], 1, 255, 3726
		],
		"canon eos kiss digital x": [
			[7054, -1501, -990, -8156, 15544, 2812, -1278, 1414, 7796], 1, 255, 3726
		],
		"canon eos m": [
			[6602, -841, -939, -4472, 12458, 2247, -975, 2039, 6148], 1, 2026, 13584
		],
		"canon eos m2": [
			[6400, -480, -888, -5294, 13416, 2047, -1296, 2203, 6137], 1, 2026, 13584
		],
		"canon eos m3": [
			[6362, -823, -847, -4426, 12109, 2616, -743, 1857, 5635], 1, 2048, 16e3
		],
		"canon eos m5": [
			[8532, -701, -1167, -4095, 11879, 2508, -797, 2424, 7010], 1, 2048, 16e3
		],
		"canon eos m6": [
			[8532, -701, -1167, -4095, 11879, 2508, -797, 2424, 7010], 1, 2048, 16e3
		],
		"canon eos m10": [
			[6400, -480, -888, -5294, 13416, 2047, -1296, 2203, 6137], 1, 2048, 16e3
		],
		"canon eos m100": [
			[8532, -701, -1167, -4095, 11879, 2508, -797, 2424, 7010], 1, 2048, 16e3
		],
		"canon eos-1d": [
			[6806, -179, -1020, -8097, 16415, 1687, -3267, 4236, 7690], 2, 0, 3588
		],
		"canon eos-1ds": [
			[4374, 3631, -1743, -7520, 15212, 2472, -2892, 3632, 8161], 2, 0, 3500
		],
		"canon eos d2000c": [
			[24542, -10860, -3401, -1490, 11370, -297, 2858, -605, 3225], 2, 96, 4095
		],
		"canon eos-1d mark ii": [
			[6264, -582, -724, -8312, 15948, 2504, -1744, 1919, 8664], 1, 127, 3700
		],
		"canon eos-1d mark ii n": [
			[6240, -466, -822, -8180, 15825, 2500, -1801, 1938, 8042], 1, 127, 3700
		],
		"canon eos-1d mark iii": [
			[6291, -540, -976, -8350, 16145, 2311, -1714, 1858, 7326], 1, 1023, 15100
		],
		"canon eos-1d mark iv": [
			[6014, -220, -795, -4109, 12014, 2361, -561, 1824, 5787], 3, 2e3, 13e3
		],
		"canon eos-1ds mark ii": [
			[6517, -602, -867, -8180, 15926, 2378, -1618, 1771, 7633], 3, 126, 4060
		],
		"canon eos-1ds mark iii": [
			[5859, -211, -930, -8255, 16017, 2353, -1732, 1887, 7448], 1, 1021, 15100
		],
		"canon eos-1d x": [
			[6847, -614, -1014, -4669, 12737, 2139, -1197, 2488, 6846], 1, 2050, 15100
		],
		"canon eos-1d x mark ii": [
			[7596, -978, -967, -4808, 12571, 2503, -1398, 2567, 5752], 1, 2048, 14888
		],
		"canon powershot pro1": [
			[10062, -3522, -999, -7643, 15117, 2730, -765, 817, 7323], 1, 129, 4095
		],
		"canon powershot g1": [
			[-4778, 9467, 2172, 4743, -1141, 4344, -5146, 9908, 6077, -1566, 11051, 557], 0, 31, 1023
		],
		"canon powershot g2": [
			[9087, -2693, -1049, -6715, 14382, 2537, -2291, 2819, 7790], 1, 0, 1023
		],
		"canon powershot g3": [
			[9212, -2781, -1073, -6573, 14189, 2605, -2300, 2844, 7664], 1, 0, 4095
		],
		"canon powershot g3 x": [
			[9701, -3857, -921, -3149, 11537, 1817, -786, 1817, 5147], 1, 2047, 16e3
		],
		"canon powershot g5": [
			[9757, -2872, -933, -5972, 13861, 2301, -1622, 2328, 7212], 1, 0, 4095
		],
		"canon powershot g5 x": [
			[9602, -3823, -937, -2984, 11495, 1675, -407, 1415, 5049], 1, 2047, 16e3
		],
		"canon powershot g6": [
			[9877, -3775, -871, -7613, 14807, 3072, -1448, 1305, 7485], 1, 128, 4095
		],
		"canon powershot g7 x": [
			[9602, -3823, -937, -2984, 11495, 1675, -407, 1415, 5049], 1, 511, 4e3
		],
		"canon powershot g7 x mark ii": [
			[9602, -3823, -937, -2984, 11495, 1675, -407, 1415, 5049], 1, 2047, 16e3
		],
		"canon powershot g1 x": [
			[7378, -1255, -1043, -4088, 12251, 2048, -876, 1946, 5805], 1, 0, 16383
		],
		"canon powershot g1 x mark ii": [
			[7378, -1255, -1043, -4088, 12251, 2048, -876, 1946, 5805], 1, 0, 16e3
		],
		"canon powershot g1 x mark iii": [
			[8532, -701, -1167, -4095, 11879, 2508, -797, 2424, 7010], 1, 2048, 16e3
		],
		"canon powershot g12": [
			[13244, -5501, -1248, -1508, 9858, 1935, -270, 1083, 4366], 1, 120, 4095
		],
		"canon powershot g11": [
			[12177, -4817, -1069, -1612, 9864, 2049, -98, 850, 4471], 1, 120, 4095
		],
		"canon powershot g10": [
			[11093, -3906, -1028, -5047, 12492, 2879, -1003, 1750, 5561], 3, 128, 4095
		],
		"canon powershot g9": [
			[7368, -2141, -598, -5621, 13254, 2625, -1418, 1696, 5743], 1, 125, 4095
		],
		"canon powershot g9 x": [
			[9602, -3823, -937, -2984, 11495, 1675, -407, 1415, 5049], 1, 2047, 16e3
		],
		"canon powershot g9 x mark ii": [
			[10056, -4131, -944, -2576, 11143, 1625, -238, 1294, 5179], 1, 2048, 16e3
		],
		"canon powershot g15": [
			[7474, -2301, -567, -4056, 11456, 2975, -222, 716, 4181], 3, 500, 2800
		],
		"canon powershot g16": [
			[8020, -2687, -682, -3704, 11879, 2052, -965, 1921, 5556], 1, 0, 4095
		],
		"canon powershot sx1 is": [
			[6578, -259, -502, -5974, 13030, 3309, -308, 1058, 4970], 1, 125, 4095
		],
		"canon powershot s30": [
			[10566, -3652, -1129, -6552, 14662, 2006, -2197, 2581, 7670], 1, 31, 1023
		],
		"canon powershot s40": [
			[8510, -2487, -940, -6869, 14231, 2900, -2318, 2829, 9013], 1, 0, 1023
		],
		"canon powershot s45": [
			[8163, -2333, -955, -6682, 14174, 2751, -2077, 2597, 8041], 1, 129, 4095
		],
		"canon powershot s50": [
			[8882, -2571, -863, -6348, 14234, 2288, -1516, 2172, 6569], 1, 129, 4095
		],
		"canon powershot s60": [
			[8795, -2482, -797, -7804, 15403, 2573, -1422, 1996, 7082], 1, 129, 4095
		],
		"canon powershot s70": [
			[9976, -3810, -832, -7115, 14463, 2906, -901, 989, 7889], 1, 129, 4095
		],
		"canon powershot s90": [
			[12374, -5016, -1049, -1677, 9902, 2078, -83, 852, 4683], 1, 125, 4095
		],
		"canon powershot s95": [
			[13440, -5896, -1279, -1236, 9598, 1931, -180, 1001, 4651], 1, 125, 4095
		],
		"canon powershot s100": [
			[7968, -2565, -636, -2873, 10697, 2513, 180, 667, 4211], 3, 125, 4095
		],
		"canon powershot s110": [
			[8039, -2643, -654, -3783, 11230, 2930, -206, 690, 4194], 3, 500, 3072
		],
		"canon powershot s120": [
			[6961, -1685, -695, -4625, 12945, 1836, -1114, 2152, 5518], 1, 0, 4e3
		],
		"canon powershot sx50 hs": [
			[12432, -4753, -1247, -2110, 10691, 1629, -412, 1623, 4926], 1, 127, 4095
		],
		"canon powershot sx60 hs": [
			[13161, -5451, -1344, -1989, 10654, 1531, -47, 1271, 4955], 1, 128, 4e3
		],
		"nikon d100": [
			[5902, -933, -782, -8983, 16719, 2354, -1402, 1455, 6464], 2, 0, 4095
		],
		"nikon d1": [
			[16772, -4726, -2141, -7611, 15713, 1972, -2846, 3494, 9521], 0, 0, 4095
		],
		"nikon d1h": [
			[7577, -2166, -926, -7454, 15592, 1934, -2377, 2808, 8606], 0, 0, 4095
		],
		"nikon d1x": [
			[7702, -2245, -975, -9114, 17242, 1875, -2679, 3055, 8521], 0, 0, 4095
		],
		"nikon d200": [
			[8367, -2248, -763, -8758, 16447, 2422, -1527, 1550, 8053], 2, 0, 3880
		],
		"nikon d2h": [
			[5710, -901, -615, -8594, 16617, 2024, -2975, 4120, 6830], 3, 0, 3880
		],
		"nikon d2hs": [
			[5710, -901, -615, -8594, 16617, 2024, -2975, 4120, 6830], 3, 0, 3880
		],
		"nikon d2x": [
			[10231, -2769, -1255, -8301, 15900, 2552, -797, 680, 7148], 1, 0, 3880
		],
		"nikon d2xs": [
			[10231, -2769, -1255, -8301, 15900, 2552, -797, 680, 7148], 1, 0, 3880
		],
		"nikon d3": [
			[8139, -2171, -663, -8747, 16541, 2295, -1925, 2008, 8093], 1, 0, 15892
		],
		"nikon d3s": [
			[8828, -2406, -694, -4874, 12603, 2541, -660, 1509, 7587], 1, 0, 15520
		],
		"nikon d3x": [
			[7171, -1986, -648, -8085, 15555, 2718, -2170, 2512, 7457], 1, 0, 15892
		],
		"nikon d300": [
			[9030, -1992, -715, -8465, 16302, 2255, -2689, 3217, 8069], 1, 0, 15236
		],
		"nikon d300s": [
			[9030, -1992, -716, -8465, 16302, 2256, -2689, 3217, 8069], 1, 0, 15236
		],
		"nikon d3000": [
			[8736, -2458, -935, -9075, 16894, 2251, -1354, 1242, 8263], 3, 0, 3880
		],
		"nikon d3200": [
			[7013, -1408, -635, -5268, 12902, 2640, -1470, 2801, 7379], 1, 0, 3880
		],
		"nikon d3300": [
			[6988, -1384, -714, -5631, 13410, 2447, -1485, 2204, 7318], 1, 150, 3880
		],
		"nikon d3400": [
			[6988, -1384, -714, -5631, 13410, 2447, -1485, 2204, 7318], 1, 150, 3880
		],
		"nikon d3500": [
			[8821, -2938, -785, -4178, 12142, 2287, -824, 1651, 6860], 1, 150, 3972
		],
		"nikon d4": [
			[8598, -2848, -857, -5618, 13606, 2195, -1002, 1773, 7137], 1, 0, 15520
		],
		"nikon d5": [
			[9200, -3522, -992, -5755, 13803, 2117, -753, 1486, 6338], 1, 400, 15520
		],
		"nikon z 6": [
			[8210, -2534, -683, -5355, 13338, 2212, -1143, 1929, 6464], 1, 1008, 15520
		],
		"nikon z 7": [
			[10405, -3755, -1270, -5461, 13787, 1793, -1040, 2015, 6785], 1, 1008, 15520
		],
		"nikon df": [
			[8598, -2848, -857, -5618, 13606, 2195, -1002, 1773, 7137], 1, 0, 15520
		],
		"nikon d5100": [
			[8198, -2239, -724, -4871, 12389, 2798, -1043, 2050, 7181], 1, 0, 15892
		],
		"nikon d3100": [
			[7911, -2167, -813, -5327, 13150, 2408, -1288, 2483, 7968], 3, 0, 3880
		],
		"nikon d40": [
			[6992, -1668, -806, -8138, 15748, 2543, -874, 850, 7897], 0, 0, 3880
		],
		"nikon d40x": [
			[8819, -2543, -911, -9025, 16928, 2151, -1329, 1213, 8449], 3, 0, 3880
		],
		"nikon d50": [
			[7732, -2422, -789, -8238, 15884, 2498, -859, 783, 7330], 0, 0, 4095
		],
		"nikon d500": [
			[8813, -3210, -1036, -4703, 12868, 2021, -1054, 1940, 6129], 1, 400, 15520
		],
		"nikon d5000": [
			[7309, -1403, -519, -8474, 16008, 2622, -2433, 2826, 8064], 3, 0, 3767
		],
		"nikon d5200": [
			[8322, -3112, -1047, -6367, 14342, 2179, -988, 1638, 6394], 1, 0, 15892
		],
		"nikon d5300": [
			[6988, -1384, -714, -5631, 13410, 2447, -1485, 2204, 7318], 1, 150, 3972
		],
		"nikon d5500": [
			[8821, -2938, -785, -4178, 12142, 2287, -824, 1651, 6860], 1, 150, 3972
		],
		"nikon d5600": [
			[8821, -2938, -785, -4178, 12142, 2287, -824, 1651, 6860], 1, 150, 3972
		],
		"nikon d60": [
			[8736, -2458, -935, -9075, 16894, 2251, -1354, 1242, 8263], 3, 0, 3880
		],
		"nikon d600": [
			[8178, -2245, -609, -4857, 12394, 2776, -1207, 2086, 7298], 1, 0, 15520
		],
		"nikon d610": [
			[8178, -2245, -609, -4857, 12394, 2776, -1207, 2086, 7298], 1, 0, 15520
		],
		"nikon d70": [
			[7732, -2422, -789, -8238, 15884, 2498, -859, 783, 7330], 0, 0, 4095
		],
		"nikon d700": [
			[8139, -2171, -663, -8747, 16541, 2295, -1925, 2008, 8093], 1, 0, 3972
		],
		"nikon d750": [
			[9020, -2890, -715, -4535, 12436, 2348, -934, 1919, 7086], 1, 150, 3880
		],
		"nikon d7000": [
			[8198, -2239, -724, -4871, 12389, 2798, -1043, 2050, 7181], 1, 0, 15892
		],
		"nikon d7100": [
			[8322, -3112, -1047, -6367, 14342, 2179, -988, 1638, 6394], 1, 0, 15892
		],
		"nikon d7200": [
			[8322, -3112, -1047, -6367, 14342, 2179, -988, 1638, 6394], 1, 600, 15892
		],
		"nikon d7500": [
			[8813, -3210, -1036, -4703, 12868, 2021, -1054, 1940, 6129], 1, 100, 3880
		],
		"nikon d70s": [
			[7732, -2422, -789, -8238, 15884, 2498, -859, 783, 7330], 0, 0, 4095
		],
		"nikon d80": [
			[8629, -2410, -883, -9055, 16940, 2171, -1490, 1363, 8520], 3, 0, 3880
		],
		"nikon d800": [
			[7866, -2108, -555, -4869, 12483, 2681, -1176, 2069, 7501], 1, 0, 15520
		],
		"nikon d800e": [
			[7866, -2108, -555, -4869, 12483, 2681, -1176, 2069, 7501], 1, 0, 15520
		],
		"nikon d810": [
			[9369, -3195, -791, -4488, 12430, 2301, -893, 1796, 6872], 1, 150, 3880
		],
		"nikon d850": [
			[10405, -3755, -1270, -5461, 13787, 1793, -1040, 2015, 6785], 1, 100, 3880
		],
		"nikon d4s": [
			[8598, -2848, -857, -5618, 13606, 2195, -1002, 1773, 7137], 1, 192, 3880
		],
		"nikon d90": [
			[7309, -1403, -519, -8474, 16008, 2622, -2434, 2826, 8064], 3, 0, 3767
		],
		"nikon 1 j1": [
			[8994, -2667, -865, -4594, 12324, 2552, -699, 1786, 6260], 1, 0, 3300
		],
		"nikon 1 j2": [
			[8994, -2667, -865, -4594, 12324, 2552, -699, 1786, 6260], 1, 0, 4095
		],
		"nikon 1 j3": [
			[6588, -1305, -693, -3277, 10987, 2634, -355, 2016, 5106], 1, 0, 4095
		],
		"nikon 1 j4": [
			[5958, -1559, -571, -4021, 11453, 2939, -634, 1548, 5087], 1, 200, 4e3
		],
		"nikon 1 j5": [
			[7520, -2518, -645, -3844, 12102, 1945, -913, 2249, 6835], 1, 200, 3800
		],
		"nikon 1 s1": [
			[8994, -2667, -865, -4594, 12324, 2552, -699, 1786, 6260], 1, 0, 3300
		],
		"nikon 1 s2": [
			[6612, -1342, -618, -3338, 11055, 2623, -174, 1792, 5075], 1, 200, 4095
		],
		"nikon 1 v1": [
			[8994, -2667, -865, -4594, 12324, 2552, -699, 1786, 6260], 1, 0, 3300
		],
		"nikon 1 v2": [
			[6588, -1305, -693, -3277, 10987, 2634, -355, 2016, 5106], 1, 0, 4095
		],
		"nikon 1 v3": [
			[5958, -1559, -571, -4021, 11453, 2939, -634, 1548, 5087], 1, 200, 4e3
		],
		"nikon 1 aw1": [
			[6588, -1305, -693, -3277, 10987, 2634, -355, 2016, 5106], 1, 0, 4095
		],
		"nikon e5400": [
			[9349, -2987, -1001, -7919, 15766, 2266, -2098, 2680, 6839], 0, 0, 4095
		],
		"nikon e5700": [
			[-5368, 11478, 2368, 5537, -113, 3148, -4969, 10021, 5782, 778, 9028, 211], 0, 0, 4095
		],
		"nikon coolpix p330": [
			[10321, -3920, -931, -2750, 11146, 1824, -442, 1545, 5539], 1, 3200, 65e3
		],
		"nikon coolpix p340": [
			[10321, -3920, -931, -2750, 11146, 1824, -442, 1545, 5539], 1, 200, 3800
		],
		"nikon coolpix a": [
			[8198, -2239, -724, -4871, 12389, 2798, -1043, 2050, 7181], 1, 0, 15892
		],
		"nikon coolpix b700": [
			[14387, -6014, -1299, -1357, 9975, 1616, 467, 1047, 4744], 1, 200, 4e3
		],
		"nikon coolpix p6000": [
			[9698, -3367, -914, -4706, 12584, 2368, -837, 968, 5801], 1, 0, 4095
		],
		"nikon coolpix p7000": [
			[11432, -3679, -1111, -3169, 11239, 2202, -791, 1380, 4455], 1, 0, 4095
		],
		"nikon coolpix p7100": [
			[11053, -4269, -1024, -1976, 10182, 2088, -526, 1263, 4469], 1, 0, 3800
		],
		"nikon coolpix p7700": [
			[10321, -3920, -931, -2750, 11146, 1824, -442, 1545, 5539], 1, 3200, 65e3
		],
		"nikon coolpix p7800": [
			[10321, -3920, -931, -2750, 11146, 1824, -442, 1545, 5539], 1, 3200, 65e3
		],
		"nikon coolpix p1000": [
			[14294, -6116, -1333, -1628, 10219, 1637, -14, 1158, 5022], 1, 200, 4095
		],
		"panasonic dmc-cm1": [
			[8770, -3194, -820, -2871, 11281, 1803, -513, 1552, 4434], 1, 142, 4095
		],
		"panasonic dmc-fx150": [
			[9082, -2907, -925, -6119, 13377, 3058, -1797, 2641, 5609], 0, 15, 3986
		],
		"panasonic dmc-fz28": [
			[10109, -3488, -993, -5412, 12812, 2916, -1305, 2140, 5543], 0, 15, 3986
		],
		"panasonic dmc-fz150": [
			[11904, -4541, -1189, -2355, 10899, 1662, -296, 1586, 4289], 3, 145, 3956
		],
		"panasonic dmc-fz200": [
			[8112, -2563, -740, -3730, 11784, 2197, -941, 2075, 4933], 3, 150, 3956
		],
		"panasonic dmc-fz2000": [
			[7386, -2443, -743, -3437, 11864, 1757, -608, 1660, 4766], 3, 142, 2095
		],
		"panasonic dmc-fz2500": [
			[7386, -2443, -743, -3437, 11864, 1757, -608, 1660, 4766], 3, 142, 2095
		],
		"panasonic dmc-fz300": [
			[8378, -2798, -769, -3068, 11410, 1877, -538, 1792, 4623], 3, 143, 4095
		],
		"panasonic dmc-g1": [
			[8199, -2065, -1056, -8124, 16156, 2033, -2458, 3022, 7220], 3, 15, 3986
		],
		"panasonic dmc-g2": [
			[10113, -3400, -1114, -4765, 12683, 2317, -377, 1437, 6710], 3, 0, 3900
		],
		"panasonic dmc-g10": [
			[10113, -3400, -1114, -4765, 12683, 2317, -377, 1437, 6710], 3, 0, 3900
		],
		"panasonic dmc-gh1": [
			[6299, -1466, -532, -6535, 13852, 2969, -2331, 3112, 5984], 3, 0, 3986
		],
		"panasonic dmc-gh3": [
			[6559, -1752, -491, -3672, 11407, 2586, -962, 1875, 5130], 3, 155, 3956
		],
		"panasonic dmc-gh4": [
			[7122, -2108, -512, -3155, 11201, 2231, -541, 1423, 5045], 0, 142, 4095
		],
		"panasonic dmc-gf1": [
			[7888, -1902, -1011, -8106, 16085, 2099, -2353, 2866, 7330], 3, 15, 3986
		],
		"panasonic dmc-gf2": [
			[7888, -1902, -1011, -8106, 16085, 2099, -2353, 2866, 7330], 3, 150, 3956
		],
		"panasonic dmc-gm1": [
			[6770, -1895, -744, -5232, 13145, 2303, -1664, 2691, 5703], 0, 143, 3971
		],
		"panasonic dmc-gm5": [
			[8238, -3244, -679, -3921, 11814, 2384, -836, 2022, 5852], 0, 143, 4095
		],
		"panasonic dmc-g3": [
			[6763, -1919, -863, -3868, 11515, 2684, -1216, 2387, 5879], 2, 143, 3956
		],
		"panasonic dmc-g5": [
			[7798, -2562, -740, -3879, 11584, 2613, -1055, 2248, 5434], 0, 150, 3956
		],
		"panasonic dmc-g6": [
			[8294, -2891, -651, -3869, 11590, 2595, -1183, 2267, 5352], 0, 142, 3956
		],
		"panasonic dmc-g7": [
			[7610, -2780, -576, -4614, 12195, 2733, -1375, 2393, 6490], 0, 143, 4095
		],
		"panasonic dmc-g70": [
			[7610, -2780, -576, -4614, 12195, 2733, -1375, 2393, 6490], 0, 143, 4095
		],
		"panasonic dmc-g8": [
			[7610, -2780, -576, -4614, 12195, 2733, -1375, 2393, 6490], 0, 143, 4095
		],
		"panasonic dmc-g80": [
			[7610, -2780, -576, -4614, 12195, 2733, -1375, 2393, 6490], 0, 143, 4095
		],
		"panasonic dmc-g81": [
			[7610, -2780, -576, -4614, 12195, 2733, -1375, 2393, 6490], 0, 143, 4095
		],
		"panasonic dmc-g85": [
			[7610, -2780, -576, -4614, 12195, 2733, -1375, 2393, 6490], 0, 143, 4095
		],
		"panasonic dmc-gf3": [
			[9051, -2468, -1204, -5212, 13276, 2121, -1197, 2510, 6890], 3, 150, 3956
		],
		"panasonic dmc-gf5": [
			[8228, -2945, -660, -3938, 11792, 2430, -1094, 2278, 5793], 3, 150, 3956
		],
		"panasonic dmc-gf6": [
			[8130, -2801, -946, -3520, 11289, 2552, -1314, 2511, 5791], 2, 150, 3956
		],
		"panasonic dmc-gf7": [
			[7610, -2780, -576, -4614, 12195, 2733, -1375, 2393, 6490], 0, 143, 4095
		],
		"panasonic dmc-gh2": [
			[7780, -2410, -806, -3913, 11724, 2484, -1018, 2390, 5298], 3, 15, 3800
		],
		"panasonic dmc-fz35": [
			[9938, -2780, -890, -4604, 12393, 2480, -1117, 2304, 4620], 0, 150, 3986
		],
		"panasonic dmc-fz38": [
			[9938, -2780, -890, -4604, 12393, 2480, -1117, 2304, 4620], 0, 150, 3986
		],
		"panasonic dmc-fz45": [
			[13639, -5535, -1371, -1698, 9633, 2430, 316, 1152, 4108], 3, 150, 3986
		],
		"panasonic dmc-fz40": [
			[13639, -5535, -1371, -1698, 9633, 2430, 316, 1152, 4108], 3, 150, 3986
		],
		"panasonic dmc-fz70": [
			[11532, -4324, -1066, -2375, 10847, 1749, -564, 1699, 4351], 1, 120, 3971
		],
		"panasonic dmc-fz72": [
			[11532, -4324, -1066, -2375, 10847, 1749, -564, 1699, 4351], 1, 120, 3971
		],
		"panasonic dmc-fz100": [
			[16197, -6146, -1761, -2393, 10765, 1869, 366, 2238, 5248], 3, 120, 3986
		],
		"panasonic dmc-fz1000": [
			[7830, -2696, -763, -3325, 11667, 1866, -641, 1712, 4824], 3, 143, 4095
		],
		"panasonic dmc-gx1": [
			[6763, -1919, -863, -3868, 11515, 2684, -1216, 2387, 5879], 2, 150, 3956
		],
		"panasonic dmc-gx7": [
			[7610, -2780, -576, -4614, 12195, 2733, -1375, 2393, 6490], 0, 150, 3956
		],
		"panasonic dmc-gx8": [
			[7564, -2263, -606, -3148, 11239, 2177, -540, 1435, 4853], 3, 143, 4095
		],
		"panasonic dmc-gx85": [
			[7771, -3020, -629, -4029, 11950, 2345, -821, 1977, 6119], 0, 143, 4095
		],
		"panasonic dmc-gx80": [
			[7771, -3020, -629, -4029, 11950, 2345, -821, 1977, 6119], 0, 143, 4095
		],
		"panasonic dmc-gx7mk2": [
			[7771, -3020, -629, -4029, 11950, 2345, -821, 1977, 6119], 0, 143, 4095
		],
		"panasonic dmc-lf1": [
			[9379, -3267, -816, -3227, 11560, 1881, -926, 1928, 5340], 1, 143, 3971
		],
		"panasonic dmc-lx3": [
			[8128, -2668, -655, -6134, 13307, 3161, -1782, 2568, 6083], 0, 15, 3971
		],
		"panasonic dmc-lx15": [
			[7790, -2736, -755, -3452, 11870, 1769, -628, 1647, 4898], 3, 143, 4095
		],
		"panasonic dmc-lx9": [
			[7790, -2736, -755, -3452, 11870, 1769, -628, 1647, 4898], 3, 143, 4095
		],
		"panasonic dmc-lx10": [
			[7790, -2736, -755, -3452, 11870, 1769, -628, 1647, 4898], 3, 143, 4095
		],
		"leica c (typ 112)": [
			[9379, -3267, -816, -3227, 11560, 1881, -926, 1928, 5340], 1, 146, 3956
		],
		"leica digilux 2": [
			[11340, -4069, -1275, -7555, 15266, 2448, -2960, 3426, 7685], 1, 0, 4095
		],
		"leica d-lux 3": [
			[8048, -2810, -623, -6450, 13519, 3272, -1700, 2146, 7049], 0, 0, 3986
		],
		"leica v-lux 1": [
			[7906, -2709, -594, -6231, 13351, 3220, -1922, 2631, 6537], 0, 0, 3986
		],
		"panasonic dmc-l10": [
			[8025, -1942, -1050, -7920, 15904, 2100, -2456, 3005, 7039], 3, 0, 3986
		],
		"panasonic dmc-fz30": [
			[10976, -4029, -1141, -7918, 15491, 2600, -1670, 2071, 8246], 1, 0, 3971
		],
		"panasonic dmc-fz50": [
			[7906, -2709, -594, -6231, 13351, 3220, -1922, 2631, 6537], 0, 0, 3986
		],
		"panasonic dmc-fz8": [
			[8986, -2755, -802, -6341, 13575, 3077, -1476, 2144, 6379], 1, 0, 3986
		],
		"panasonic dmc-fz18": [
			[9932, -3060, -935, -5809, 13331, 2753, -1267, 2155, 5575], 0, 0, 3986
		],
		"panasonic dmc-l1": [
			[8054, -1885, -1025, -8349, 16367, 2040, -2805, 3542, 7629], 3, 0, 3986
		],
		"panasonic dmc-lx2": [
			[8048, -2810, -623, -6450, 13519, 3272, -1700, 2146, 7049], 0, 0, 3986
		],
		"leica d-lux 4": [
			[8128, -2668, -655, -6134, 13307, 3161, -1782, 2568, 6083], 0, 15, 3971
		],
		"panasonic dmc-lx5": [
			[10909, -4295, -948, -1333, 9306, 2399, 22, 1738, 4582], 2, 150, 3986
		],
		"leica d-lux 5": [
			[10909, -4295, -948, -1333, 9306, 2399, 22, 1738, 4582], 2, 150, 3986
		],
		"panasonic dmc-lx7": [
			[10148, -3743, -991, -2837, 11366, 1659, -701, 1893, 4899], 2, 150, 3971
		],
		"leica d-lux 6": [
			[10148, -3743, -991, -2837, 11366, 1659, -701, 1893, 4899], 2, 150, 3971
		],
		"leica d-lux (typ 109)": [
			[8844, -3538, -768, -3709, 11762, 2200, -698, 1792, 5220], 0, 143, 4095
		],
		"panasonic dmc-lx1": [
			[10704, -4187, -1230, -8314, 15952, 2501, -920, 945, 8927], 1, 0, 3971
		],
		"panasonic dmc-lx100": [
			[8844, -3538, -768, -3709, 11762, 2200, -698, 1792, 5220], 0, 143, 4095
		],
		"panasonic dc-lx100m2": [
			[8585, -3127, -833, -4005, 12250, 1953, -650, 1494, 4862], 0, 143, 4095
		],
		"panasonic dmc-tz60": [
			[8607, -2822, -808, -3755, 11930, 2049, -820, 2060, 5224], 1, 145, 3971
		],
		"panasonic dmc-tz61": [
			[8607, -2822, -808, -3755, 11930, 2049, -820, 2060, 5224], 1, 145, 3971
		],
		"panasonic dmc-zs40": [
			[8607, -2822, -808, -3755, 11930, 2049, -820, 2060, 5224], 1, 145, 3971
		],
		"panasonic dmc-tz71": [
			[8802, -3135, -789, -3151, 11468, 1904, -550, 1745, 4810], 1, 143, 3971
		],
		"panasonic dmc-zs50": [
			[8802, -3135, -789, -3151, 11468, 1904, -550, 1745, 4810], 1, 143, 3971
		],
		"panasonic dmc-tz70": [
			[8802, -3135, -789, -3151, 11468, 1904, -550, 1745, 4810], 1, 143, 3971
		],
		"panasonic dmc-tz81": [
			[8550, -2908, -842, -3195, 11529, 1881, -338, 1603, 4631], 3, 142, 4095
		],
		"panasonic dmc-zs60": [
			[8550, -2908, -842, -3195, 11529, 1881, -338, 1603, 4631], 3, 142, 4095
		],
		"panasonic dmc-tz80": [
			[8550, -2908, -842, -3195, 11529, 1881, -338, 1603, 4631], 3, 142, 4095
		],
		"panasonic dmc-tz85": [
			[8550, -2908, -842, -3195, 11529, 1881, -338, 1603, 4631], 3, 142, 4095
		],
		"panasonic dmc-tz100": [
			[7790, -2736, -755, -3452, 11870, 1769, -628, 1647, 4898], 3, 142, 4095
		],
		"panasonic dmc-zs100": [
			[7790, -2736, -755, -3452, 11870, 1769, -628, 1647, 4898], 3, 142, 4095
		],
		"panasonic dmc-zs110": [
			[7790, -2736, -755, -3452, 11870, 1769, -628, 1647, 4898], 3, 142, 4095
		],
		"panasonic dmc-tz101": [
			[7790, -2736, -755, -3452, 11870, 1769, -628, 1647, 4898], 3, 142, 4095
		],
		"panasonic dmc-tz110": [
			[7790, -2736, -755, -3452, 11870, 1769, -628, 1647, 4898], 3, 142, 4095
		],
		"panasonic dmc-tx1": [
			[7790, -2736, -755, -3452, 11870, 1769, -628, 1647, 4898], 3, 142, 4095
		],
		"panasonic dc-fz82": [
			[8550, -2908, -842, -3195, 11529, 1881, -338, 1603, 4631], 3, 143, 4095
		],
		"panasonic dc-fz80": [
			[8550, -2908, -842, -3195, 11529, 1881, -338, 1603, 4631], 3, 143, 4095
		],
		"panasonic dmc-fz80": [
			[8550, -2908, -842, -3195, 11529, 1881, -338, 1603, 4631], 3, 143, 4095
		],
		"panasonic dmc-fz85": [
			[8550, -2908, -842, -3195, 11529, 1881, -338, 1603, 4631], 3, 143, 4095
		],
		"panasonic dc-gh5": [
			[7641, -2336, -605, -3218, 11299, 2187, -485, 1338, 5121], 1, 143, 4095
		],
		"panasonic dc-gh5s": [
			[6929, -2355, -708, -4192, 12534, 1828, -1097, 1989, 5195], 1, 510, 8e3
		],
		"panasonic dc-g9": [
			[7685, -2375, -634, -3687, 11700, 2249, -748, 1546, 5111], 1, 148, 4095
		],
		"panasonic dc-gf9": [
			[7610, -2780, -576, -4614, 12195, 2733, -1375, 2393, 6490], 0, 143, 4095
		],
		"panasonic dc-gx800": [
			[7610, -2780, -576, -4614, 12195, 2733, -1375, 2393, 6490], 0, 143, 4095
		],
		"panasonic dc-gx850": [
			[7610, -2780, -576, -4614, 12195, 2733, -1375, 2393, 6490], 0, 143, 4095
		],
		"panasonic dc-gx9": [
			[7564, -2263, -606, -3148, 11239, 2177, -540, 1435, 4853], 0, 143, 4095
		],
		"panasonic dc-tz90": [
			[9052, -3117, -883, -3045, 11346, 1927, -205, 1520, 4730], 3, 139, 4095
		],
		"panasonic dc-zs70": [
			[9052, -3117, -883, -3045, 11346, 1927, -205, 1520, 4730], 3, 139, 4095
		],
		"panasonic dc-fz91": [
			[9052, -3117, -883, -3045, 11346, 1927, -205, 1520, 4730], 3, 139, 4095
		],
		"panasonic dc-fz92": [
			[9052, -3117, -883, -3045, 11346, 1927, -205, 1520, 4730], 3, 139, 4095
		],
		"panasonic dc-fz93": [
			[9052, -3117, -883, -3045, 11346, 1927, -205, 1520, 4730], 3, 139, 4095
		],
		"panasonic dc-tz202": [
			[7790, -2736, -755, -3452, 11870, 1769, -628, 1647, 4898], 3, 142, 4095
		],
		"panasonic dc-tz200": [
			[7790, -2736, -755, -3452, 11870, 1769, -628, 1647, 4898], 3, 142, 4095
		],
		"pentax k100d": [
			[11095, -3157, -1324, -8377, 15834, 2720, -1108, 947, 11688], 1, 127, 3950
		],
		"pentax k110d": [
			[11095, -3157, -1324, -8377, 15834, 2720, -1108, 947, 11688], 1, 127, 4095
		],
		"pentax k100d super": [
			[11095, -3157, -1324, -8377, 15834, 2720, -1108, 947, 11688], 1, 127, 4095
		],
		"pentax *ist d": [
			[9651, -2059, -1189, -8881, 16512, 2487, -1460, 1345, 10687], 1, 128, 4095
		],
		"pentax *ist dl": [
			[10829, -2838, -1115, -8339, 15817, 2696, -837, 680, 11939], 1, 128, 4095
		],
		"pentax *ist dl2": [
			[10504, -2438, -1189, -8603, 16207, 2531, -1022, 863, 12242], 1, 127, 3950
		],
		"pentax *ist ds": [
			[10371, -2333, -1206, -8688, 16231, 2602, -1230, 1116, 11282], 1, 128, 3950
		],
		"pentax k10d": [
			[9566, -2863, -803, -7170, 15172, 2112, -818, 803, 9705], 1, 0, 4095
		],
		"pentax k20d": [
			[9427, -2714, -868, -7493, 16092, 1373, -2199, 3264, 7180], 0, 0, 4095
		],
		"pentax k200d": [
			[9186, -2678, -907, -8693, 16517, 2260, -1129, 1094, 8524], 1, 0, 4095
		],
		"pentax k-s1": [
			[8512, -3211, -787, -4167, 11966, 2487, -638, 1288, 6054], 1, 32, 4062
		],
		"pentax k-s2": [
			[8662, -3280, -798, -3928, 11771, 2444, -586, 1232, 6054], 1, 0, 3839
		],
		"pentax k-70": [
			[8113, -2078, -1275, -4359, 12953, 1514, -1091, 1955, 6044], 1, 64, 16319
		],
		"pentax k-1": [
			[8827, -2829, -1238, -3611, 12203, 1549, -897, 1687, 6291], 1, 64, 16316
		],
		"pentax k-1 mark ii": [
			[8952, -2869, -1256, -3612, 12204, 1550, -934, 1757, 6549], 1, 64, 16316
		],
		"pentax k-3": [
			[7415, -2052, -721, -5186, 12788, 2682, -1446, 2157, 6773], 1, 1, 15868
		],
		"pentax k-3 ii": [
			[7415, -2052, -721, -5186, 12788, 2682, -1446, 2157, 6773], 1, 1, 15865
		],
		"pentax k-5": [
			[8713, -2833, -743, -4342, 11900, 2772, -722, 1543, 6247], 0, 512, 16383
		],
		"pentax k-5 ii": [
			[8170, -2725, -639, -4440, 12017, 2744, -771, 1465, 6599], 0, 512, 16383
		],
		"pentax k-5 ii s": [
			[8170, -2725, -639, -4440, 12017, 2744, -771, 1465, 6599], 0, 512, 15863
		],
		"pentax k-7": [
			[9142, -2947, -678, -8648, 16967, 1663, -2224, 2898, 8615], 0, 0, 4095
		],
		"pentax k-m": [
			[11057, -3604, -1155, -5152, 13046, 2329, -282, 375, 8104], 1, 0, 4095
		],
		"pentax k-x": [
			[8843, -2837, -625, -5025, 12644, 2668, -411, 1234, 7410], 0, 41, 4095
		],
		"pentax k-r": [
			[9895, -3077, -850, -5304, 13035, 2521, -883, 1768, 6936], 0, 64, 4e3
		],
		"pentax kp": [
			[8617, -3228, -1034, -4674, 12821, 2044, -803, 1577, 5728], 1, 128, 16254
		],
		"pentax k2000": [
			[11057, -3604, -1155, -5152, 13046, 2329, -282, 375, 8104], 1, 0, 4095
		],
		"pentax 645d": [
			[9814, -2716, -1439, -5049, 13907, 1166, -1830, 3836, 5706], 0, 0, 15767
		],
		"pentax 645z": [
			[9551, -3012, -1235, -3685, 12133, 1721, -1019, 1887, 6544], 1, 1, 16316
		],
		"samsung ex2f": [
			[10648, -3897, -1055, -2022, 10573, 1668, -492, 1611, 4742], 1, 0, 4095
		],
		"samsung ex1": [
			[8898, -2498, -994, -3144, 11328, 2066, -760, 1381, 4576], 1, 0, 16383
		],
		"samsung nx1": [
			[10686, -4042, -1052, -3595, 13238, 276, -464, 1259, 5931], 2, 1024, 16100
		],
		"samsung nx5": [
			[10332, -3234, -1168, -6111, 14639, 1520, -1352, 2647, 8331], 0, 0, 4095
		],
		"samsung nx10": [
			[10332, -3234, -1168, -6111, 14639, 1520, -1352, 2647, 8331], 0, 0, 4095
		],
		"samsung nx11": [
			[10332, -3234, -1168, -6111, 14639, 1520, -1352, 2647, 8331], 0, 0, 4095
		],
		"samsung nx100": [
			[10332, -3234, -1168, -6111, 14639, 1520, -1352, 2647, 8331], 0, 0, 4095
		],
		"samsung nx1000": [
			[6933, -2268, -753, -4921, 13387, 1647, -803, 1641, 6096], 2, 0, 4095
		],
		"samsung nx1100": [
			[6933, -2268, -753, -4921, 13387, 1647, -803, 1641, 6096], 2, 0, 4095
		],
		"samsung nx20": [
			[6933, -2268, -753, -4921, 13387, 1647, -803, 1641, 6096], 2, 0, 4095
		],
		"samsung nx200": [
			[6933, -2268, -753, -4921, 13387, 1647, -803, 1641, 6096], 2, 0, 4095
		],
		"samsung nx210": [
			[6933, -2268, -753, -4921, 13387, 1647, -803, 1641, 6096], 2, 0, 4095
		],
		"samsung nx2000": [
			[7557, -2522, -739, -4679, 12949, 1894, -840, 1777, 5311], 2, 0, 4095
		],
		"samsung nx30": [
			[7557, -2522, -739, -4679, 12949, 1894, -840, 1777, 5311], 2, 0, 4095
		],
		"samsung nx300": [
			[7557, -2522, -739, -4679, 12949, 1894, -840, 1777, 5311], 2, 0, 4095
		],
		"samsung nx300m": [
			[7557, -2522, -739, -4679, 12949, 1894, -840, 1777, 5311], 2, 0, 4095
		],
		"samsung nx3000": [
			[8060, -2933, -761, -4504, 12890, 1762, -630, 1489, 5227], 2, 0, 4095
		],
		"samsung nx500": [
			[10686, -4042, -1052, -3595, 13238, 276, -464, 1259, 5931], 2, 1024, 16100
		],
		"samsung ek-gn120": [
			[7557, -2522, -739, -4679, 12949, 1894, -840, 1777, 5311], 3, 0, 4095
		],
		"samsung wb2000": [
			[12093, -3557, -1155, -1e3, 9534, 1733, -22, 1787, 4576], 1, 0, 4095
		],
		"sony dsc-rx0": [
			[9396, -3507, -843, -2497, 11111, 1572, -343, 1355, 5089], 1, 800, 16620
		],
		"sony dsc-rx10": [
			[6679, -1825, -745, -5047, 13256, 1953, -1580, 2422, 5183], 1, 800, 16300
		],
		"sony dsc-rx10m2": [
			[6679, -1825, -745, -5047, 13256, 1953, -1580, 2422, 5183], 1, 800, 16300
		],
		"sony dsc-rx10m3": [
			[6679, -1825, -745, -5047, 13256, 1953, -1580, 2422, 5183], 1, 800, 16300
		],
		"sony dsc-rx10m4": [
			[7699, -2566, -629, -2967, 11270, 1928, -378, 1286, 4807], 1, 800, 16380
		],
		"sony dsc-rx100": [
			[8651, -2754, -1057, -3464, 12207, 1373, -568, 1398, 4434], 1, 800, 16620
		],
		"sony dsc-rx100m2": [
			[6596, -2079, -562, -4782, 13016, 1933, -970, 1581, 5181], 1, 800, 16300
		],
		"sony dsc-rx100m3": [
			[6596, -2079, -562, -4782, 13016, 1933, -970, 1581, 5181], 1, 800, 16300
		],
		"sony dsc-rx100m4": [
			[6596, -2079, -562, -4782, 13016, 1933, -970, 1581, 5181], 1, 800, 16300
		],
		"sony dsc-rx100m5": [
			[6596, -2079, -562, -4782, 13016, 1933, -970, 1581, 5181], 1, 800, 16300
		],
		"sony dsc-rx100m5a": [
			[11176, -4700, -965, -4004, 12184, 2032, -763, 1726, 5876], 1, 800, 16300
		],
		"sony dsc-rx100m6": [
			[7325, -2321, -596, -3494, 11674, 2055, -668, 1562, 5031], 1, 800, 16300
		],
		"sony dsc-rx1r": [
			[6344, -1612, -462, -4863, 12477, 2681, -865, 1786, 6899], 1, 512, 33192
		],
		"sony dsc-rx1rm2": [
			[6629, -1900, -483, -4618, 12349, 2550, -622, 1381, 6514], 1, 512, 16300
		],
		"sony dslr-a100": [
			[9437, -2811, -774, -8405, 16215, 2290, -710, 596, 7181], 2, 0, 4095
		],
		"sony dslr-a200": [
			[9847, -3091, -928, -8485, 16345, 2225, -715, 595, 7103], 1, 0, 4095
		],
		"sony dslr-a230": [
			[9847, -3091, -928, -8485, 16345, 2225, -715, 595, 7103], 1, 0, 4095
		],
		"sony dslr-a290": [
			[6038, -1484, -579, -9145, 16746, 2512, -875, 746, 7218], 1, 0, 4095
		],
		"sony dslr-a300": [
			[9847, -3091, -928, -8485, 16345, 2225, -715, 595, 7103], 1, 0, 4095
		],
		"sony dslr-a330": [
			[9847, -3091, -929, -8485, 16346, 2225, -714, 595, 7103], 1, 0, 4095
		],
		"sony dslr-a350": [
			[6038, -1484, -578, -9146, 16746, 2513, -875, 746, 7217], 1, 0, 4095
		],
		"sony dslr-a380": [
			[6038, -1484, -579, -9145, 16746, 2512, -875, 746, 7218], 1, 0, 4095
		],
		"sony dslr-a390": [
			[6038, -1484, -579, -9145, 16746, 2512, -875, 746, 7218], 1, 0, 4095
		],
		"sony dslr-a450": [
			[4950, -580, -103, -5228, 12542, 3029, -709, 1435, 7371], 1, 500, 16e3
		],
		"sony dslr-a500": [
			[6046, -1127, -278, -5574, 13076, 2786, -691, 1419, 7625], 0, 500, 16600
		],
		"sony dslr-a550": [
			[4950, -580, -103, -5228, 12542, 3029, -709, 1435, 7371], 0, 512, 16372
		],
		"sony dslr-a560": [
			[4950, -580, -103, -5228, 12542, 3029, -709, 1435, 7371], 0, 476, 16596
		],
		"sony dslr-a580": [
			[5932, -1492, -411, -4813, 12285, 2856, -741, 1524, 6739], 0, 520, 16596
		],
		"sony dslr-a700": [
			[5775, -805, -359, -8574, 16295, 2391, -1943, 2341, 7249], 0, 520, 16383
		],
		"sony dslr-a850": [
			[5413, -1162, -365, -5665, 13098, 2866, -608, 1179, 8440], 0, 500, 15e3
		],
		"sony dslr-a900": [
			[5209, -1072, -397, -8845, 16120, 2919, -1618, 1803, 8654], 1, 520, 16383
		],
		"sony nex-3": [
			[6907, -1256, -645, -4940, 12621, 2320, -1710, 2581, 6230], 1, 520, 16360
		],
		"sony nex-3n": [
			[6129, -1545, -418, -4930, 12490, 2743, -977, 1693, 6615], 1, 520, 16596
		],
		"sony nex-5": [
			[6807, -1350, -342, -4216, 11649, 2567, -1089, 2001, 6420], 1, 520, 16383
		],
		"sony nex-5n": [
			[5991, -1456, -455, -4764, 12135, 2980, -707, 1425, 6701], 1, 520, 16596
		],
		"sony nex-5r": [
			[6129, -1545, -418, -4930, 12490, 2743, -977, 1693, 6615], 1, 520, 16596
		],
		"sony nex-5t": [
			[6129, -1545, -418, -4930, 12490, 2743, -977, 1693, 6615], 1, 512, 16300
		],
		"sony nex-6": [
			[6129, -1545, -418, -4930, 12490, 2743, -977, 1693, 6615], 1, 520, 16596
		],
		"sony nex-7": [
			[5491, -1192, -363, -4951, 12342, 2948, -911, 1722, 7192], 1, 512, 16300
		],
		"sony nex-c3": [
			[5991, -1456, -455, -4764, 12135, 2980, -707, 1425, 6701], 1, 520, 16596
		],
		"sony nex-f3": [
			[5991, -1456, -455, -4764, 12135, 2980, -707, 1425, 6701], 1, 520, 16360
		],
		"sony ilce-3000": [
			[5991, -1456, -455, -4764, 12135, 2980, -707, 1425, 6701], 1, 512, 16300
		],
		"sony ilce-3500": [
			[5991, -1456, -455, -4764, 12135, 2980, -707, 1425, 6701], 1, 512, 16300
		],
		"sony ilce-5000": [
			[5991, -1456, -455, -4764, 12135, 2980, -707, 1425, 6701], 1, 512, 16300
		],
		"sony ilce-5100": [
			[5991, -1456, -455, -4764, 12135, 2980, -707, 1425, 6701], 1, 512, 16300
		],
		"sony ilce-6000": [
			[5991, -1456, -455, -4764, 12135, 2980, -707, 1425, 6701], 1, 512, 16300
		],
		"sony ilce-6300": [
			[5973, -1695, -419, -3826, 11797, 2293, -639, 1398, 5789], 1, 512, 16300
		],
		"sony ilce-6500": [
			[5973, -1695, -419, -3826, 11797, 2293, -639, 1398, 5789], 1, 512, 16300
		],
		"sony ilce-7": [
			[5271, -712, -347, -6153, 13653, 2763, -1601, 2366, 7242], 1, 512, 16300
		],
		"sony ilce-7m2": [
			[5271, -712, -347, -6153, 13653, 2763, -1601, 2366, 7242], 1, 512, 16300
		],
		"sony ilce-7m3": [
			[7374, -2389, -551, -5435, 13162, 2519, -1006, 1795, 6552], 1, 512, 16300
		],
		"sony ilce-7r": [
			[4913, -541, -202, -6130, 13513, 2906, -1564, 2151, 7183], 1, 512, 16300
		],
		"sony ilce-7rm2": [
			[6629, -1900, -483, -4618, 12349, 2550, -622, 1381, 6514], 1, 512, 16300
		],
		"sony ilce-7rm3": [
			[6640, -1847, -503, -5238, 13010, 2474, -993, 1673, 6527], 1, 512, 16383
		],
		"sony ilce-7s": [
			[5838, -1430, -246, -3497, 11477, 2297, -748, 1885, 5778], 1, 512, 16300
		],
		"sony ilce-7sm2": [
			[5838, -1430, -246, -3497, 11477, 2297, -748, 1885, 5778], 1, 512, 16300
		],
		"sony ilce-9": [
			[6389, -1703, -378, -4562, 12265, 2587, -670, 1489, 6550], 1, 512, 16383
		],
		"sony dsc-rx1": [
			[6344, -1612, -462, -4863, 12477, 2681, -865, 1786, 6899], 1, 520, 16628
		],
		"sony slt-a33": [
			[6069, -1221, -366, -5221, 12779, 2734, -1024, 2066, 6834], 1, 520, 16596
		],
		"sony slt-a35": [
			[5986, -1618, -415, -4557, 11820, 3120, -681, 1404, 6971], 1, 545, 16596
		],
		"sony slt-a37": [
			[5991, -1456, -455, -4764, 12135, 2980, -707, 1425, 6701], 1, 520, 16500
		],
		"sony slt-a55": [
			[5932, -1492, -411, -4813, 12285, 2856, -741, 1524, 6739], 1, 520, 16596
		],
		"sony slt-a55v": [
			[5932, -1492, -411, -4813, 12285, 2856, -741, 1524, 6739], 1, 520, 16596
		],
		"sony slt-a57": [
			[5991, -1456, -455, -4764, 12135, 2980, -707, 1425, 6701], 1, 512, 16596
		],
		"sony slt-a58": [
			[5991, -1456, -455, -4764, 12135, 2980, -707, 1425, 6701], 1, 520, 16596
		],
		"sony slt-a65": [
			[5491, -1192, -363, -4951, 12342, 2948, -911, 1722, 7192], 1, 520, 16596
		],
		"sony slt-a65v": [
			[5491, -1192, -363, -4951, 12342, 2948, -911, 1722, 7192], 1, 520, 16596
		],
		"sony slt-a77": [
			[5491, -1192, -363, -4951, 12342, 2948, -911, 1722, 7192], 1, 520, 16596
		],
		"sony slt-a77v": [
			[5491, -1192, -363, -4951, 12342, 2948, -911, 1722, 7192], 1, 520, 16596
		],
		"sony ilca-77m2": [
			[5991, -1732, -443, -4100, 11989, 2381, -704, 1467, 5992], 1, 512, 16300
		],
		"sony ilca-68": [
			[6435, -1903, -536, -4722, 12449, 2550, -663, 1363, 6517], 1, 512, 16300
		],
		"sony ilca-99m2": [
			[6660, -1918, -471, -4613, 12398, 2485, -649, 1433, 6447], 1, 512, 16300
		],
		"sony slt-a99": [
			[6344, -1612, -462, -4863, 12477, 2681, -865, 1786, 6899], 1, 520, 16596
		],
		"sony slt-a99v": [
			[6344, -1612, -462, -4863, 12477, 2681, -865, 1786, 6899], 1, 520, 16596
		],
		"sinar hy6": [
			[16442, -2956, -2422, -2877, 12128, 750, -1136, 6066, 4559], 1, 0, 0
		],
		"fujifilm finepix s6000fd": [
			[12628, -4887, -1401, -6861, 14996, 1962, -2198, 2782, 7091], 3, 0, 15872
		],
		"fujifilm finepix s100fs": [
			[11521, -4355, -1065, -6524, 13767, 3058, -1466, 1984, 6045], 3, 512, 16383
		],
		"fujifilm finepix s200exr": [
			[11401, -4498, -1312, -5088, 12751, 2613, -838, 1568, 5941], 1, 519, 16250
		],
		"fujifilm finepix f600exr": [
			[13690, -5358, -1474, -3369, 11600, 1998, -132, 1554, 4395], 1, 256, 3900
		],
		"fujifilm finepix f700": [
			[10004, -3219, -1201, -7036, 15047, 2107, -1863, 2565, 7736], 3, 0, 16383
		],
		"fujifilm finepix f770exr": [
			[13690, -5358, -1474, -3369, 11600, 1998, -132, 1554, 4395], 1, 256, 3900
		],
		"fujifilm finepix f900exr": [
			[12085, -4727, -953, -3257, 11489, 2002, -511, 2046, 4592], 0, 256, 3900
		],
		"fujifilm finepix e550": [
			[11044, -3888, -1120, -7248, 15168, 2208, -1531, 2277, 8069], 3, 0, 15875
		],
		"fujifilm is-1": [
			[21461, -10807, -1441, -2332, 10599, 1999, 289, 875, 7703], 3, 0, 15872
		],
		"fujifilm finepix s3pro": [
			[11807, -4612, -1294, -8927, 16968, 1988, -2120, 2741, 8006], 3, 0, 15872
		],
		"fujifilm finepix s5pro": [
			[12300, -5110, -1304, -9117, 17143, 1998, -1947, 2448, 8100], 3, 0, 15872
		],
		"fujifilm finepix s5600": [
			[9636, -2804, -988, -7442, 15040, 2589, -1803, 2311, 8621], 3, 0, 15872
		],
		"fujifilm finepix e900": [
			[9183, -2526, -1078, -7461, 15071, 2574, -2022, 2440, 8639], 3, 0, 15872
		],
		"fujifilm finepix s2pro": [
			[12492, -4690, -1402, -7033, 15423, 1647, -1507, 2111, 7697], 3, 128, 4095
		],
		"fujifilm finepix s5000": [
			[8754, -2732, -1019, -7204, 15069, 2276, -1702, 2334, 6982], 3, 0, 15872
		],
		"fujifilm finepix s5200": [
			[9636, -2804, -988, -7442, 15040, 2589, -1803, 2311, 8621], 3, 0, 15872
		],
		"fujifilm finepix s5500": [
			[11940, -4431, -1255, -6766, 14428, 2542, -993, 1165, 7421], 1, 0, 15872
		],
		"fujifilm finepix s6500fd": [
			[12628, -4887, -1401, -6861, 14996, 1962, -2198, 2782, 7091], 3, 0, 15872
		],
		"fujifilm finepix s9500": [
			[10491, -3423, -1145, -7385, 15027, 2538, -1809, 2275, 8692], 3, 0, 15872
		],
		"fujifilm finepix s9000": [
			[10491, -3423, -1145, -7385, 15027, 2538, -1809, 2275, 8692], 3, 0, 15872
		],
		"fujifilm finepix s9600": [
			[12343, -4515, -1285, -7165, 14899, 2435, -1895, 2496, 8800], 3, 0, 15872
		],
		"fujifilm finepix s9600fd": [
			[12343, -4515, -1285, -7165, 14899, 2435, -1895, 2496, 8800], 3, 0, 15872
		],
		"fujifilm finepix hs10 hs11": [
			[12440, -3954, -1183, -1123, 9674, 1708, -83, 1614, 4086], 0, 50, 3900
		],
		"fujifilm finepix hs20exr": [
			[13690, -5358, -1474, -3369, 11600, 1998, -132, 1554, 4395], 1, 256, 3900
		],
		"fujifilm finepix hs30exr": [
			[13690, -5358, -1474, -3369, 11600, 1998, -132, 1554, 4395], 1, 258, 3900
		],
		"fujifilm finepix hs50exr": [
			[12085, -4727, -953, -3257, 11489, 2002, -511, 2046, 4592], 0, 256, 3900
		],
		"fujifilm finepix x100": [
			[12161, -4457, -1069, -5034, 12874, 2400, -795, 1724, 6904], 0, 254, 4e3
		],
		"fujifilm finepix x10": [
			[13509, -6199, -1254, -4430, 12733, 1865, -331, 1441, 5022], 0, 256, 4e3
		],
		"fujifilm x-s1": [
			[13509, -6199, -1254, -4430, 12733, 1865, -331, 1441, 5022], 0, 260, 4e3
		],
		"fujifilm gfx 50s": [
			[11756, -4754, -874, -3056, 11045, 2305, -381, 1457, 6006], 1, 65, 16383
		],
		"fujifilm x-pro1": [
			[10413, -3996, -993, -3721, 11640, 2361, -733, 1540, 6011], 2, 256, 4094
		],
		"fujifilm x-pro2": [
			[11434, -4948, -1210, -3746, 12042, 1903, -666, 1479, 5235], 1, 1024, 16383
		],
		"fujifilm x70": [
			[10450, -4329, -878, -3217, 11105, 2421, -752, 1758, 6519], 1, 1024, 16383
		],
		"fujifilm xf1": [
			[13509, -6199, -1254, -4430, 12733, 1865, -331, 1441, 5022], 0, 257, 4e3
		],
		"fujifilm x-e1": [
			[10413, -3996, -993, -3721, 11640, 2361, -733, 1540, 6011], 2, 255, 4094
		],
		"fujifilm x20": [
			[11768, -4971, -1133, -4904, 12927, 2183, -480, 1723, 4605], 3, 257, 4094
		],
		"fujifilm x30": [
			[12328, -5256, -1144, -4469, 12927, 1675, -87, 1291, 4351], 3, 257, 4094
		],
		"fujifilm x100f": [
			[11434, -4948, -1210, -3746, 12042, 1903, -666, 1479, 5235], 1, 1024, 16383
		],
		"fujifilm x100s": [
			[10592, -4262, -1008, -3514, 11355, 2465, -870, 2025, 6386], 1, 1024, 16383
		],
		"fujifilm x100t": [
			[10592, -4262, -1008, -3514, 11355, 2465, -870, 2025, 6386], 1, 1024, 16383
		],
		"fujifilm x-h1": [
			[11434, -4948, -1210, -3746, 12042, 1903, -666, 1479, 5235], 1, 1024, 16383
		],
		"fujifilm x-m1": [
			[10413, -3996, -993, -3721, 11640, 2361, -733, 1540, 6011], 2, 256, 4094
		],
		"fujifilm x-a1": [
			[11086, -4555, -839, -3512, 11310, 2517, -815, 1341, 5940], 1, 256, 4094
		],
		"fujifilm x-a2": [
			[10763, -4560, -917, -3346, 11311, 2322, -475, 1135, 5843], 1, 256, 4094
		],
		"fujifilm x-a3": [
			[12407, -5222, -1086, -2971, 11116, 2120, -294, 1029, 5284], 1, 1024, 16383
		],
		"fujifilm x-a5": [
			[11673, -4760, -1041, -3988, 12058, 2166, -771, 1417, 5569], 1, 1024, 16383
		],
		"fujifilm xq1": [
			[9252, -2704, -1064, -5893, 14265, 1717, -1101, 2341, 4349], 3, 257, 4094
		],
		"fujifilm xq2": [
			[9252, -2704, -1064, -5893, 14265, 1717, -1101, 2341, 4349], 3, 257, 4094
		],
		"fujifilm x-e2": [
			[8458, -2451, -855, -4597, 12447, 2407, -1475, 2482, 6526], 1, 1024, 16383
		],
		"fujifilm x-e3": [
			[11434, -4948, -1210, -3746, 12042, 1903, -666, 1479, 5235], 1, 1023, 16383
		],
		"fujifilm x-e2s": [
			[11562, -5118, -961, -3022, 11007, 2311, -525, 1569, 6097], 1, 1024, 16383
		],
		"fujifilm x-t1": [
			[8458, -2451, -855, -4597, 12447, 2407, -1475, 2482, 6526], 1, 1024, 16383
		],
		"fujifilm x-t2": [
			[11434, -4948, -1210, -3746, 12042, 1903, -666, 1479, 5235], 1, 1024, 16383
		],
		"fujifilm x-t3": [
			[16393, -7740, -1436, -4238, 12131, 2371, -633, 1424, 6553], 2, 1022, 16383
		],
		"fujifilm x-t10": [
			[8458, -2451, -855, -4597, 12447, 2407, -1475, 2482, 6526], 1, 1024, 16383
		],
		"fujifilm x-t20": [
			[10592, -4262, -1008, -3514, 11355, 2465, -870, 2025, 6386], 1, 1024, 16383
		],
		"fujifilm x-t30": [
			[16393, -7740, -1436, -4238, 12131, 2371, -633, 1424, 6553], 2, 1022, 16383
		],
		"fujifilm x-t100": [
			[11673, -4760, -1041, -3988, 12058, 2166, -771, 1417, 5569], 1, 1024, 16383
		],
		"minolta dimage a1": [
			[9274, -2547, -1167, -8220, 16323, 1943, -2273, 2720, 8340], 1, 0, 3965
		],
		"minolta dimage 5": [
			[8983, -2942, -963, -6556, 14476, 2237, -2426, 2887, 8014], 1, 0, 3965
		],
		"minolta dimage 7": [
			[9144, -2777, -998, -6676, 14556, 2281, -2470, 3019, 7744], 1, 0, 3965
		],
		"minolta dimage 7i": [
			[10880, -3638, -1186, -6496, 14313, 2364, -2456, 3092, 7485], 1, 0, 3965
		],
		"minolta dimage 7hi": [
			[11368, -3894, -1242, -6521, 14358, 2339, -2475, 3056, 7285], 1, 0, 3965
		],
		"sony dsc-f828": [
			[7924, -1910, -777, -8226, 15459, 2998, -1517, 2199, 6818, -7242, 11401, 3481], 0, 495, 16383
		],
		"sony dsc-hx99": [
			[13076, -5686, -1481, -4027, 12851, 1251, -167, 725, 4937], 1, 800, 16300
		],
		"sony dsc-r1": [
			[8512, -2641, -694, -8042, 15670, 2526, -1821, 2117, 7414], 2, 511, 16383
		],
		"mamiya zd": [
			[7645, 2579, -1363, -8689, 16717, 2015, -3712, 5941, 5961], 1, 0, 4e3
		],
		"leaf aptus 22": [
			[8236, 1746, -1314, -8251, 15953, 2428, -3673, 5786, 5771], 1, 0, 16191
		],
		"leaf credo 40": [
			[8035, 435, -962, -6001, 13872, 2320, -1159, 3065, 5434], 1, 0, 16383
		],
		"leaf credo 60": [
			[8035, 435, -962, -6001, 13872, 2320, -1159, 3065, 5434], 1, 0, 16383
		],
		"leaf credo 80": [
			[8035, 435, -962, -6001, 13872, 2320, -1159, 3065, 5434], 1, 0, 16383
		],
		"leaf aptus-ii 5": [
			[1846, 7955, -1222, -12994, 19563, 3596, -2035, 3340, 5136], 2, 0, 15e3
		],
		"phase one p30": [
			[4516, -245, -37, -7020, 14976, 2173, -3206, 4671, 7087], 2, 0, 16383
		],
		"phase one p65+": [
			[8035, 435, -962, -6001, 13872, 2320, -1159, 3065, 5434], 1, 0, 16383
		],
		"phase one iq140": [
			[8035, 435, -962, -6001, 13872, 2320, -1159, 3065, 5434], 1, 0, 65535
		],
		"phase one iq250": [
			[3984, 0, 0, 0, 1e4, 0, 0, 0, 7666], 1, 1024, 65535
		],
		"kodak dcs pro slr/n": [
			[5494, 2393, -232, -6427, 13850, 2846, -1876, 3997, 5445], 2, 0, 4095
		],
		"kodak dcs pro 14n": [
			[5494, 2393, -232, -6427, 13850, 2846, -1876, 3997, 5445], 2, 0, 3700
		],
		"kodak dcs pro 14nx": [
			[5494, 2393, -232, -6427, 13850, 2846, -1876, 3997, 5445], 2, 0, 3700
		],
		"kodak dcs460": [
			[10592, -2206, -967, -1944, 11685, 230, 2206, 670, 1273], 2, 7, 6664
		],
		"kodak dcs520c": [
			[24542, -10860, -3401, -1490, 11370, -297, 2858, -605, 3225], 2, 176, 4095
		],
		"kodak dcs560c": [
			[20482, -7172, -3125, -1033, 10410, -285, 2542, 226, 3136], 2, 208, 4095
		],
		"kodak dcs760c": [
			[16623, -6309, -1411, -4344, 13923, 323, 2285, 274, 2926], 2, 0, 3500
		],
		"kodak p880": [
			[12805, -4662, -1376, -7480, 15267, 2360, -1626, 2194, 7904], 0, 0, 4095
		],
		"kodak easyshare z980 digital camera": [
			[11313, -3559, -1101, -3893, 11891, 2257, -1214, 2398, 4908], 1, 0, 4095
		],
		"kodak z1015 is": [
			[11265, -4286, -992, -4694, 12343, 2647, -1090, 1523, 5447], 0, 0, 4095
		],
		"epson r-d1": [
			[6827, -1878, -732, -8429, 16012, 2564, -704, 592, 7145], 1, 63, 4095
		],
		"hasselblad cfv-50": [
			[5656, -659, -346, -3923, 12306, 1791, -1602, 3509, 5442], 1, 256, 65535
		],
		"hasselblad h3d": [
			[3857, 452, -46, -6008, 14477, 1596, -2627, 4481, 5718], 1, 0, 31456
		],
		"hasselblad h5d-40": [
			[6159, -1402, -177, -5439, 12762, 3007, -955, 2200, 7104], 1, 256, 62914
		],
		"hasselblad h5d-50c": [
			[4932, -835, 141, -4878, 11868, 3437, -1138, 1961, 7067], 1, 256, 62914
		],
		"canon powershot a610": [
			[15591, -6402, -1592, -5365, 13198, 2168, -1300, 1824, 5075], 1, 0, 1023, 2672, 1968
		],
		"canon powershot s3 is": [
			[14062, -5199, -1446, -4712, 12470, 2243, -1286, 2028, 4836], 1, 0, 1023, 2888, 2136
		],
		"canon powershot a620": [
			[15265, -6193, -1558, -4125, 12116, 2010, -888, 1639, 5220], 1, 0, 1023, 3152, 2340
		],
		"canon powershot a720 is": [
			[14573, -5482, -1546, -1266, 9799, 1468, -1040, 1912, 3810], 3, 0, 1023, 3336, 2480
		],
		"canon powershot a630": [
			[14201, -5308, -1757, -6087, 14472, 1617, -2191, 3105, 5348], 1, 0, 1023, 3344, 2484
		],
		"canon powershot a640": [
			[13124, -5329, -1390, -3602, 11658, 1944, -1612, 2863, 4885], 1, 0, 1023, 3736, 2772
		],
		"canon powershot a650": [
			[9427, -3036, -959, -2581, 10671, 1911, -1039, 1982, 4430], 1, 0, 1023, 4104, 3048
		],
		"canon powershot sx110 is": [
			[14134, -5576, -1527, -1991, 10719, 1273, -1158, 1929, 3581], 1, 0, 4095, 3720, 2772
		],
		"gitup git2": [
			[8489, -2583, -1036, -8051, 15583, 2643, -1307, 1407, 7354], 1, 3200, 65535, 4608, 3456
		],
		"gitup git2p": [
			[8489, -2583, -1036, -8051, 15583, 2643, -1307, 1407, 7354], 1, 4160, 65535, 4624, 3488
		],
		"paralenz dive camera": [
			[8489, -2583, -1036, -8051, 15583, 2643, -1307, 1407, 7354], 1, 1024, 16383, 3840, 2160
		],
		"sjcam sj6 legend": [
			[9489, -3814, -225, -6650, 13742, 3236, -627, 797, 7550], 1, 0, 4095, 4024, 3036
		]
	};
	H.q5 = {};
	H.q5.q5 = function (F, P, o, X, Y) {
		if (X == null) X = 3;
		if (Y == null) Y == !0;
		var y = F.Z,
			z = F.h,
			s = 1 / y,
			t = y * z,
			d = Date.now(),
			U = !1,
			v = H.q5.sL(o, y, z, 255, 128),
			A = H.q5.sL(o, y, z, 0, 128),
			aW = 0;
		if (U) console.log("extract contours", Date.now() - d);
		d = Date.now();
		var Z = function (e7, ed) {
			var hP = e7 << 2,
				ck = ed << 2;
			return P[hP] + P[hP + 1] + P[hP + 2] - (P[ck] + P[ck + 1] + P[ck + 2])
		};
		v.sort(Z);
		A.sort(Z);
		var D = H.R(t),
			q = H.R(t),
			R = [],
			J = new Uint32Array(y * z);
		J.fill(4294967295);
		for (var w = 0; w < t; w++)
			if (o[w] == 0) q[w] = 255;
			else if (o[w] == 255) D[w] = 255;
		else {
			J[w] = R.length;
			R.push(w)
		}
		var W = v.length,
			p = A.length,
			n = R.length;

		function b(e7, ed, hP, ck) {
			var ds = e7.length,
				hB = new Array(ds * 2);
			for (var w = 0; w < ds; w++) {
				var O = e7[w],
					K = ~~(O * ck),
					j = O - K * hP,
					f1 = O << 2;
				hB[w * 2] = j << 16 | K;
				hB[w * 2 + 1] = ed[f1] << 16 | ed[f1 + 1] << 8 | ed[f1 + 2]
			}
			return hB
		}
		var Q = b(v, P, y, s),
			_ = b(A, P, y, s),
			L = b(R, P, y, s);
		if (U) console.log("Itemize", Date.now() - d, "Unknown:", n, W, p);
		d = Date.now();
		var m = H.style.uX(D, y, z, !0),
			I = H.style.uX(q, y, z, !0),
			c = new Array(n),
			u = new Array(n),
			a = new Array(n),
			N = new Array(n),
			V = new Array(n);
		if (U) console.log("Dist transform", Date.now() - d);
		d = Date.now();
		var M = H.q5.xy;
		for (var w = 0; w < n; w++) {
			var O = R[w],
				K = ~~(O * s),
				j = O - K * y,
				$ = m[O << 1],
				x = m[(O << 1) + 1],
				g = Math.sqrt($ * $ + x * x),
				T = I[O << 1],
				E = I[(O << 1) + 1],
				a9 = Math.sqrt(T * T + E * E);
			c[w] = 1 / g;
			u[w] = 1 / a9;
			var ez = Math.floor(H.N.kY(O * 17) * W),
				bN = Math.floor(H.N.kY(O * 19) * p);
			a[w] = ez;
			N[w] = bN;
			V[w] = M(L[w * 2], L[w * 2 + 1], Q[ez * 2], Q[ez * 2 + 1], _[bN * 2], _[bN * 2 + 1], c[w], u[w], 1e9)
		}
		var cg = [-y - 1, -y, -y + 1, -1, 1, y - 1, y, y + 1];
		while (Math.floor(Math.max(W, p) * Math.pow(.5, aW)) > 1) aW++;
		for (var d8 = 0; d8 < X; d8++) {
			var C = 0;
			for (var w = 0; w < n; w++) {
				var O = R[w],
					K = ~~(O * s),
					j = O - K * y,
					S = c[w],
					g7 = u[w],
					g_ = L[w * 2],
					fw = L[w * 2 + 1],
					dT = V[w],
					ez = a[w],
					bN = N[w],
					eT = 1;
				if (K != 0 && j != 0 && j != y - 1 && K != z - 1)
					for (var g4 = 0; g4 < 8; g4++) {
						var bB = J[O + cg[g4]];
						if (bB == 4294967295) continue;
						var d1 = a[bB],
							f_ = N[bB];
						if (d1 == ez && f_ == bN) continue;
						var g$ = M(g_, fw, Q[d1 * 2], Q[d1 * 2 + 1], _[f_ * 2], _[f_ * 2 + 1], S, g7, dT);
						if (g$ < dT) {
							dT = g$;
							ez = d1;
							bN = f_
						}
					}
				for (var dz = 0; dz < aW; dz++) {
					var i4 = ~~(W * eT),
						fy = ~~(p * eT);
					eT *= .5;
					var cN = H.N.kY(O + d8 * 17 + dz * 31),
						fP = H.N.kY(O + d8 * 29 + dz * 63),
						du = Math.max(0, ez - i4),
						ea = Math.min(ez + i4, W - 1),
						cF = Math.max(0, bN - fy),
						gB = Math.min(bN + fy, p - 1),
						d1 = du + ~~(cN * (ea - du)),
						f_ = cF + ~~(fP * (gB - cF)),
						g$ = M(g_, fw, Q[d1 * 2], Q[d1 * 2 + 1], _[f_ * 2], _[f_ * 2 + 1], S, g7, dT);
					if (g$ < dT) {
						dT = g$;
						ez = d1;
						bN = f_
					}
				}
				V[w] = dT;
				a[w] = ez;
				N[w] = bN;
				C += dT
			}
		}
		if (U) console.log(C);
		if (U) console.log("iterations", Date.now() - d);
		d = Date.now();
		var bp = o.slice(0);
		for (var w = 0; w < n; w++) {
			var hf = H.q5.alpha(L[w * 2 + 1], Q[a[w] * 2 + 1], _[N[w] * 2 + 1]);
			bp[R[w]] = ~~(.5 + 255 * hf)
		}
		bp = H.UA.a9L(bp, P, new ev(0, 0, y, z), 16, .01 * .01);
		if (U) console.log("guided filter", Date.now() - d);
		d = Date.now();
		if (Y)
			for (var w = 0; w < t; w++)
				if (o[w] == 255 || o[w] == 0) bp[w] = o[w];
		var bq = P.slice(0);
		for (var w = 0; w < n; w++) {
			var eY = R[w],
				ez = v[a[w]],
				dT = V[w],
				f1 = eY << 2,
				dh = bp[eY],
				hn = (dh >= 250 ? eY : ez) << 2;
			bq[f1] = P[hn];
			bq[f1 + 1] = P[hn + 1];
			bq[f1 + 2] = P[hn + 2]
		}
		H.Oy(bp, bq, 3);
		if (U) console.log(Date.now() - d);
		d = Date.now();
		return bq
	};
	H.q5.xy = function (F, P, o, X, Y, y, z, s, t) {
		var d = F >>> 16,
			U = F & 65535,
			v = d - (o >>> 16),
			A = U - (o & 65535),
			Z = d - (Y >>> 16),
			D = U - (Y & 65535),
			q = Math.sqrt(v * v + A * A) * z,
			R = Math.sqrt(Z * Z + D * D) * s;
		if (q + R >= t) return 1e9;
		var J = H.q5.aaJ(P, X, y);
		return J + q + R
	};
	H.q5.aaJ = function (F, P, o) {
		var X = F >>> 16,
			Y = F >>> 8 & 255,
			y = F & 255,
			z = P >>> 16,
			s = P >>> 8 & 255,
			t = P & 255,
			d = o >>> 16,
			U = o >>> 8 & 255,
			v = o & 255,
			A = H.q5.alpha(F, P, o),
			Z = X - (A * z + (1 - A) * d),
			D = Y - (A * s + (1 - A) * U),
			q = y - (A * t + (1 - A) * v);
		return Math.sqrt(Z * Z + D * D + q * q)
	};
	H.q5.alpha = function (F, P, o) {
		var X = F >>> 16,
			Y = F >>> 8 & 255,
			y = F & 255,
			z = P >>> 16,
			s = P >>> 8 & 255,
			t = P & 255,
			d = o >>> 16,
			U = o >>> 8 & 255,
			v = o & 255,
			A = z - d,
			Z = s - U,
			D = t - v,
			q = X - d,
			R = Y - U,
			J = y - v,
			W = A * A + Z * Z + D * D,
			p = W == 0 ? .5 : (q * A + R * Z + J * D) / W;
		return Math.max(0, Math.min(1, p))
	};
	H.q5.acM = function (F) {};
	H.q5.sL = function (F, P, o, X, Y) {
		var y = [],
			z = P - 1,
			s = o - 1;
		for (var t = 1; t < s; t++)
			for (var d = 1; d < z; d++) {
				var w = t * P + d;
				if (F[w] == X && (F[w - P - 1] == Y || F[w - P] == Y || F[w - P + 1] == Y || (F[w - 1] == Y || F[w + 1] == Y) || (F[w + P - 1] == Y || F[w + P] == Y || F[w + P + 1] == Y))) y.push(w)
			}
		return y
	};
	H.UA = {};
	H.UA.alM = function (F, P, o, X, Y) {
		var y = o.Z,
			z = o.h,
			s = y * z,
			t = H.UA.Dq,
			d = H.R(s * 4),
			U;
		H.XB(d, 4294967295);
		var v = o,
			A = F,
			Z = P,
			D = X;
		H.Oy(F, d, 0);
		U = H.Ar(d, o);
		U = H.Ar(U.Ww, U.rect);
		v = U.rect;
		D = X >>> 2;
		console.log(v, D);
		A = H.R(v.M());
		H.E4(U.Ww, A, 0);
		H.Oy(P, d, 0);
		U = H.Ar(d, o);
		U = H.Ar(U.Ww, U.rect);
		Z = H.R(v.M());
		H.E4(U.Ww, Z, 0);
		var q = H.UA.aam(A, Z, v, D, Y),
			R = q[0],
			J = q[1],
			W = new ev(0, 0, v.Z * 2, v.h * 2);
		R = t(R, v, W, !0);
		R = t(R, W, o, !0);
		J = t(J, v, W, !0);
		J = t(J, W, o, !0);
		var p = H.R(s);
		for (var w = 0; w < s; w++) p[w] = Math.max(0, Math.min(255, Math.floor(.5 + (R[w] * P[w] + 255 * J[w]))));
		return p
	};
	H.UA.Dq = function (F, P, o, X) {
		var Y = o.Z,
			y = o.h,
			z = P.Z,
			s = P.h,
			t = H.UA.nK,
			d = new Float32Array(Y * y);
		for (var U = 0; U < s; U++) {
			var v = (U + U) * Y;
			for (var A = 0; A < z; A++) {
				if (!0 || A == 0 || U == 0 || A == z - 1 || U == s - 1) d[v] = d[v + 1] = d[v + Y] = d[v + Y + 1] = F[U * z + A];
				else {
					d[v] = t(A + .25, U + .25, F, z, s);
					d[v + 1] = t(A + .75, U + .25, F, z, s);
					d[v + Y] = t(A + .25, U + .75, F, z, s);
					d[v + Y + 1] = t(A + .75, U + .75, F, z, s)
				}
				v += 2
			}
		}
		return d
	};
	H.UA.nK = function (F, P, o, X, Y) {
		F -= .499999;
		P -= .499999;
		var y = Math.floor(F),
			z = Math.floor(P),
			s = z * X + y,
			t = F - y,
			d = P - z,
			U = (1 - d) * (1 - t),
			v = (1 - d) * t,
			A = d * (1 - t),
			Z = d * t;
		if (o[s] == null || o[s + X + 1] == null) {
			console.log(F, P, X, Y);
			throw "e"
		}
		return U * o[s + 0] + v * o[s + 1] + A * o[s + X + 0] + Z * o[s + X + 1]
	};
	H.UA.aam = function (F, P, o, X, Y) {
		var y = o.Z,
			z = o.h,
			s = y * z,
			t = H.UA.Z2,
			d = H.UA.R,
			U = H.ni.Ey,
			v = H.UA.Z8,
			P = t(P),
			F = t(F),
			A = d(s);
		U(P, A, o, X);
		var Z = d(s);
		U(F, Z, o, X);
		var D = d(s);
		v(P, P, D);
		U(D, D, o, X);
		var q = d(s);
		v(P, F, q);
		U(q, q, o, X);
		var R = d(s),
			J = d(s);
		for (var w = 0; w < s; w++) {
			var W = A[w],
				p = Z[w],
				n = D[w] - W * W,
				b = q[w] - W * p,
				Q = b / (n + Y),
				_ = p - Q * W;
			R[w] = Q;
			J[w] = _
		}
		var L = d(s);
		U(R, L, o, X);
		var m = d(s);
		U(J, m, o, X);
		return [L, m]
	};
	H.UA.a9L = function (F, P, o, X, Y) {
		var y = o.Z,
			z = o.h,
			s = y * z,
			t = H.UA.Dq,
			d = Date.now(),
			U = !1,
			v = o,
			A = F,
			Z = P,
			D = X;
		v = new ev(0, 0, y >>> 2, z >>> 2);
		D = X >>> 2;
		A = H.UA.aaC(F, y, z);
		Z = H.UA.ajp(P, y, z);
		if (U) console.log(Date.now() - d);
		d = Date.now();
		var q = H.UA.abQ(A, Z, v, D, Y),
			R = q[0],
			J = q[1],
			W = q[2],
			p = q[3];
		if (U) console.log(Date.now() - d);
		d = Date.now();
		var n = H.R(s);
		for (var b = 0; b < z; b++)
			for (var Q = 0; Q < y; Q++) {
				var w = b * y + Q,
					_ = (b >>> 2) * (y >>> 2) + (Q >>> 2),
					L = w << 2,
					m = R[_] * P[L] + J[_] * P[L + 1] + W[_] * P[L + 2] + p[_] * 255;
				n[w] = Math.max(0, Math.min(255, ~~(.5 + m)))
			}
		if (U) console.log(Date.now() - d);
		d = Date.now();
		return n
	};
	H.UA.aaC = function (F, P, o) {
		var X = P >>> 2,
			Y = o >>> 2,
			y = H.R(P * o);
		for (var z = 0; z < Y; z++)
			for (var s = 0; s < X; s++) y[z * X + s] = F[z * P + s << 2];
		return y
	};
	H.UA.ajp = function (F, P, o) {
		var X = P >>> 2,
			Y = o >>> 2,
			y = H.R(P * o * 4);
		for (var z = 0; z < Y; z++)
			for (var s = 0; s < X; s++) {
				var t = z * X + s << 2,
					d = z * P + s << 4;
				y[t] = F[d];
				y[t + 1] = F[d + 1];
				y[t + 2] = F[d + 2];
				y[t + 3] = F[d + 3]
			}
		return y
	};
	H.UA.abQ = function (F, P, o, X, Y) {
		var y = o.Z,
			z = o.h,
			s = y * z,
			t = H.UA.Z2,
			d = H.UA.R,
			U = H.ni.Ey,
			v = H.UA.Z8,
			F = t(F),
			A = new H._B(y * z);
		H.Ae(P, A);
		var P = [t(A.U), t(A.S), t(A.i)],
			Z = H.UA.a5V(F, P, o, X, Y),
			D = d(s);
		U(F, D, o, X);
		var q = d(s);
		v(P[0], F, q);
		U(q, q, o, X);
		var R = d(s);
		v(P[1], F, R);
		U(R, R, o, X);
		var J = d(s);
		v(P[2], F, J);
		U(J, J, o, X);
		var W = d(s),
			p = d(s),
			n = d(s),
			b = d(s);
		for (var w = 0; w < s; w++) {
			var Q = D[w],
				_ = Z.nq[w],
				L = Z.Nh[w],
				m = Z.yL[w],
				I = q[w] - _ * Q,
				c = R[w] - L * Q,
				u = J[w] - m * Q;
			W[w] = Z.A5[w] * I + Z.Kn[w] * c + Z.ua[w] * u;
			p[w] = Z.Kn[w] * I + Z.ly[w] * c + Z.RB[w] * u;
			n[w] = Z.ua[w] * I + Z.RB[w] * c + Z.M2[w] * u;
			b[w] = Q - W[w] * _ - p[w] * L - n[w] * m
		}
		U(W, W, o, X);
		U(p, p, o, X);
		U(n, n, o, X);
		U(b, b, o, X);
		return [W, p, n, b]
	};
	H.UA.a5V = function (F, P, o, X, Y) {
		var y = o.Z,
			z = o.h,
			s = y * z,
			t = H.UA.R,
			d = H.ni.Ey,
			U = H.UA.Z8,
			v = {};
		v.nq = t(s);
		d(P[0], v.nq, o, X);
		v.Nh = t(s);
		d(P[1], v.Nh, o, X);
		v.yL = t(s);
		d(P[2], v.yL, o, X);
		var A = t(s);
		U(P[0], P[0], A);
		d(A, A, o, X);
		var Z = t(s);
		U(P[0], P[1], Z);
		d(Z, Z, o, X);
		var D = t(s);
		U(P[0], P[2], D);
		d(D, D, o, X);
		var q = t(s);
		U(P[1], P[1], q);
		d(q, q, o, X);
		var R = t(s);
		U(P[1], P[2], R);
		d(R, R, o, X);
		var J = t(s);
		U(P[2], P[2], J);
		d(J, J, o, X);
		v.A5 = A;
		v.Kn = Z;
		v.ua = D;
		v.ly = q;
		v.RB = R;
		v.M2 = J;
		for (var w = 0; w < s; w++) {
			var W = v.nq[w],
				p = v.Nh[w],
				n = v.yL[w],
				b = A[w] - W * W + Y,
				Q = Z[w] - W * p,
				_ = D[w] - W * n,
				L = q[w] - p * p + Y,
				m = R[w] - p * n,
				I = J[w] - n * n + Y,
				c = L * I - m * m,
				u = m * _ - Q * I,
				a = Q * m - L * _,
				N = b * I - _ * _,
				V = _ * Q - b * m,
				M = b * L - Q * Q,
				O = c * b + u * Q + a * _,
				K = 1 / O;
			v.A5[w] = c * K;
			v.Kn[w] = u * K;
			v.ua[w] = a * K;
			v.ly[w] = N * K;
			v.RB[w] = V * K;
			v.M2[w] = M * K
		}
		return v
	};
	H.UA.R = function (F) {
		return new Float32Array(F)
	};
	H.UA.Z2 = function (F) {
		var P = F.length,
			o = new Float32Array(P);
		for (var w = 0; w < P; w++) o[w] = F[w] * (1 / 255);
		return o
	};
	H.UA.Z8 = function (F, P, o) {
		for (var w = 0; w < F.length; w++) o[w] = F[w] * P[w]
	};
	H.bT = {};
	H.bT.jP = function (F, P, o, X) {
		var Y = F[P] - o[X],
			y = F[P + 1] - o[X + 1],
			z = F[P + 2] - o[X + 2];
		return Math.sqrt(Y * Y + y * y + z * z) * (1 / 441.7)
	};
	H.bT.getSelection = function (F, P, o) {
		var X = P * o,
			Y = H.R(X),
			y = !1,
			z = Math.round(o * .7),
			s = 1,
			t = new Uint32Array(12),
			d = H.R(12);
		for (var U = 0; U < z; U++)
			for (var v = 0; v < P; v++) {
				if (v < s || U < s || v > P - s - 1 || U > o - s - 1) {
					var w = U * P + v,
						A = w << 2,
						Z = 0;
					if (U < s) Z = 4;
					else if (v > P - s - 1) Z = 8;
					t[Z] += F[A];
					t[Z + 1] += F[A + 1];
					t[Z + 2] += F[A + 2];
					t[Z + 3]++;
					Y[w] = 255
				}
			}
		for (var w = 0; w < 12; w += 4)
			for (var D = 0; D < 3; D++) d[w + D] = t[w + D] / t[w + 3];
		var q = new Float32Array(X);
		for (var w = 0; w < X; w++) {
			var A = w * 4,
				R = H.bT.jP(F, A, d, 0),
				J = H.bT.jP(F, A, d, 4),
				W = H.bT.jP(F, A, d, 8),
				p = Math.max(R, Math.max(J, W));
			q[w] = R + J + W - p
		}
		H.bT.Mr(q);
		var n = Date.now(),
			b = new Float32Array(X),
			Q = [],
			_ = H.R(X);
		for (var w = 0; w < 3; w++) {
			H.E4(F, _, w);
			var L = new Uint16Array(X);
			Q.push(L);
			H.bT.aj0(_, Y, P, o, L)
		}
		if (y) console.log("MBD", Date.now() - n);
		n = Date.now();
		for (var w = 0; w < X; w++) b[w] = Q[0][w] + Q[1][w] + Q[2][w];
		H.bT.Mr(b);
		for (var w = 0; w < X; w++) b[w] += .4 * q[w];
		var m = P >>> 1,
			z = o >>> 1,
			I = 1 / Math.sqrt(m * m + z * z);
		for (var U = 0; U < o; U++)
			for (var v = 0; v < P; v++) {
				var c = v - m,
					u = U - z,
					a = 1 - Math.sqrt(c * c + u * u) * I;
				b[U * P + v] *= a
			}
		if (y) console.log("Centeredness", Date.now() - n);
		n = Date.now();
		for (var w = 0; w < X; w++) Y[w] = b[w] * 255;
		var N = Math.round(P / 120),
			V = Math.round(N * .8);
		if (y) console.log(N, V);
		H.Ai.wE(Y, _, P, o, N, H.Ai.sH, []);
		Y.set(_);
		if (y) console.log("erosion", Date.now() - n);
		n = Date.now();
		for (var w = 0; w < X; w++) b[w] = Y[w];
		H.bT.Mr(b);
		var M = H.R(256);
		for (var w = 0; w < 256; w++) M[w] = 256 / (1 + Math.exp(-20 * (w / 255 - .5)));
		for (var w = 0; w < X; w++) {
			var O = ~~(b[w] * 255 + .5);
			Y[w] = M[O]
		}
		if (y) console.log("Simoid", Date.now() - n);
		n = Date.now();
		return Y
	};
	H.bT.Mr = function (F) {
		var P = F.length,
			o = 0;
		for (var w = 0; w < P; w++) o = Math.max(o, F[w]);
		var X = 1 / o;
		for (var w = 0; w < P; w++) F[w] = F[w] * X
	};
	H.bT.aj0 = function (F, P, o, X, Y) {
		var y = o * X,
			z = F.slice(0),
			s = F.slice(0);
		for (var w = 0; w < y; w++) Y[w] = P[w] == 255 ? 0 : 65535;
		H.bT.sn(F, s, z, Y, o, X);
		H.bT.I_(F, s, z, Y, o, X);
		H.bT.sn(F, s, z, Y, o, X);
		H.bT.I_(F, s, z, Y, o, X);
		return Y
	};
	H.bT.sn = function (F, P, o, X, Y, y) {
		for (var z = 1; z < Y; z++) H.bT.jh(z, -1, F, P, o, X);
		for (var s = 1; s < y; s++) {
			H.bT.jh(s * Y, -Y, F, P, o, X);
			for (var z = 1; z < Y; z++) {
				var w = s * Y + z;
				H.bT.jh(w, -1, F, P, o, X);
				H.bT.jh(w, -Y, F, P, o, X)
			}
		}
	};
	H.bT.I_ = function (F, P, o, X, Y, y) {
		for (var z = Y - 2; z >= 0; z--) H.bT.jh(Y * y - Y + z, 1, F, P, o, X);
		for (var s = y - 2; s >= 0; s--) {
			H.bT.jh(s * Y + Y - 1, Y, F, P, o, X);
			for (var z = Y - 2; z >= 0; z--) {
				var w = s * Y + z;
				H.bT.jh(w, 1, F, P, o, X);
				H.bT.jh(w, Y, F, P, o, X)
			}
		}
	};
	H.bT.jh = function (w, F, P, o, X, Y) {
		var y = w + F,
			z = P[w],
			s = o[y],
			t = X[y];
		if (s < z) s = z;
		else if (z < t) t = z;
		var d = s - t;
		if (Y[y] != 65535 && d < Y[w]) {
			Y[w] = d;
			o[w] = s;
			X[w] = t
		}
	};
	H.io = {};
	H.io.filter = function (F, P, o, X) {
		var Y = P.Z,
			y = P.h,
			z = Y * y,
			s = X[0],
			t = X[1],
			d = X[2],
			U = X[3],
			v = X[4],
			A = X[5],
			Z = X[6],
			D = Date.now(),
			q = new Float32Array(Y * y * 4);
		H.io.alf(F, Y, y, q);
		var R = Math.ceil(s * Math.sqrt(-2 * Math.log(.1))),
			J = new ArrayBuffer(z * 4),
			W = new Float32Array(J),
			p = new Float32Array(z),
			n = new Float32Array(z);
		for (var w = 0; w < z; w++) {
			var b = w * 4;
			W[w] = q[b];
			p[w] = q[b + 1];
			n[w] = q[b + 2]
		}
		H.ni.d$(W, W, P, R * 1 / 2.4, 2);
		H.ni.d$(p, p, P, R * 1 / 2.4, 2);
		H.ni.d$(n, n, P, R * 1 / 2.4, 2);
		for (var w = 0; w < z; w++) {
			var b = w * 4;
			q[b] = W[w];
			q[b + 1] = p[w];
			q[b + 2] = n[w]
		}
		var Q = new Uint8Array(J);
		for (var w = 0; w < z; w++) {
			var b = w * 4,
				_ = w * 4,
				W = q[b],
				p = q[b + 1],
				n = q[b + 2],
				L = Math.sqrt((W - n) * (W - n) + 4 * p * p),
				m = (W + n + L) * .5,
				I = (W + n - L) * .5,
				c = I - n,
				u = p,
				a = c * c + u * u;
			if (a != 0) {
				var N = Math.sqrt(a),
					V = 1 / N;
				c *= V;
				u *= V
			}
			Q[_] = 128 + 127 * c;
			Q[_ + 1] = 128 + 127 * u
		}
		var M = 1.3 * t + 2,
			O = U * (2 / 10),
			K = F.slice();
		if (k.pQ) {
			var j = new Float32Array([1 / Y, 1 / y]),
				$ = k.Wb(0, Y, y);
			$.set(K);
			var x = k.Wb(1, Y, y);
			x.set(Q);
			k.k1($, P);
			if (v) {
				$.ke(P);
				k.filter.WD({
					type: k.filter.Vw,
					I1: j,
					afn: 1 / d,
					agY: O
				}, $.z2)
			}
			$.ke(P);
			k.filter.WD({
				type: k.filter.Zi,
				B9: x.g3,
				I1: j,
				sC: M,
				R5: 2
			}, $.z2);
			if (v) {
				$.ke(P);
				k.filter.WD({
					type: k.filter.m8,
					I1: j,
					akp: new Float32Array(Z),
					ab4: A
				}, $.z2)
			}
			$.get(o)
		} else {
			if (v) H.io.Jo(1 / d, O, K, Y, y);
			H.io.Zi(K, o, Q, Y, y, M);
			if (v) H.io.ajl(Y, y, o, Z, A)
		}
		var g = z * 4;
		for (var w = 3; w < g; w += 4) o[w] = F[w]
	};
	H.io.Zi = function (F, P, o, X, Y, y) {
		var z = Math.ceil(2 * y),
			s = -1 / (2 * y * y),
			t = [],
			d = 1;
		for (var w = 0; w < z + 20; w++) t[w] = Math.exp(w * w * s);
		var U = [0, 0, 0, 0];
		for (var v = 0; v < Y; v++) {
			for (var A = 0; A < X; A++) {
				var Z = v * X + A,
					D = Z * 4,
					q = 1,
					R = F[D],
					J = F[D + 1],
					W = F[D + 2],
					p = F[D + 3],
					n = (o[D] - 128) * (1 / 127),
					b = (o[D + 1] - 128) * (1 / 127),
					Q = n,
					_ = b,
					L = A == 0 ? .51 : .49,
					m = v == 0 ? .51 : .49;
				for (var w = 0; w < 2; w++) {
					var I = A + L,
						c = v + m,
						u = 0;
					while (u < z) {
						if (I < .5 || X - .5 < I || c < .5 || Y - .5 < c) break;
						var a = ~~I,
							N = ~~c,
							V = N * X + a,
							M = V * 4,
							O = (o[M] - 128) * (1 / 127),
							K = (o[M + 1] - 128) * (1 / 127);
						if (O * Q + K * _ < 0) {
							O = -O;
							K = -K
						}
						Q = O;
						_ = K;
						I += d * O;
						c += d * K;
						if (I < .5 || X - .5 < I || c < .5 || Y - .5 < c) break;
						var j = ~~I,
							$ = ~~c,
							x = $ * X + j << 2;
						u += d;
						var g = t[~~u];
						H.P.eU(I, c, F, X, Y, U);
						R += U[0] * g;
						J += U[1] * g;
						W += U[2] * g;
						p += U[3] * g;
						q += g
					}
					Q = -n;
					_ = -b
				}
				var T = 1 / q;
				P[D] = ~~(.5 + R * T);
				P[D + 1] = ~~(.5 + J * T);
				P[D + 2] = ~~(.5 + W * T);
				P[D + 3] = ~~(.5 + p * T)
			}
		}
	};
	H.io.ajl = function (F, P, o, X, Y) {
		for (var y = 0; y < P; y++)
			for (var z = 0; z < F; z++) {
				var s = y * F + z << 2,
					t = 1 + H.io.afc(z, y, o, F, P, X) * Y;
				o[s] = Math.max(0, Math.min(255, o[s] * t));
				o[s + 1] = Math.max(0, Math.min(255, o[s + 1] * t));
				o[s + 2] = Math.max(0, Math.min(255, o[s + 2] * t))
			}
	};
	H.io.afc = function (F, P, o, X, Y, y) {
		var z = o[(P * X + Math.max(0, F - 1)) * 4 + 3],
			s = o[(P * X + Math.min(X - 1, F + 1)) * 4 + 3],
			t = o[(Math.max(0, P - 1) * X + F) * 4 + 3],
			d = o[(Math.min(Y - 1, P + 1) * X + F) * 4 + 3],
			U = .7,
			v = (s - z) * (1 / 255),
			A = .7,
			Z = (d - t) * (1 / 255),
			D = -v * A,
			q = -U * Z,
			R = U * A,
			J = Math.sqrt(D * D + q * q + R * R),
			W = 1 / J,
			p = D * W,
			n = q * W,
			b = R * W,
			Q = y[0] * p + y[1] * n + y[2] * b;
		return Q
	};
	H.io.Jo = function (F, P, o, X, Y) {
		function y(s, d, U) {
			return Math.max(d, Math.min(U, s))
		}
		for (var z = 0; z < Y; z++)
			for (var s = 0; s < X; s++) {
				var t = H.io.aaj(s + .5, z + .5, F, P);
				o[(z * X + s) * 4 + 3] = Math.max(0, Math.min(255, t * 255))
			}
	};
	H.io.aaj = function (F, P, o, X) {
		function Y(_, L, m) {
			return (1 - m) * _ + m * L
		}
		var y = (F + 613) * o,
			z = (P + 117) * o,
			s = ~~y,
			t = ~~z,
			d = y - s,
			U = z - t,
			v = Math.sin(11),
			A = Math.cos(s) * v,
			Z = Math.cos(s + 1) * v,
			D = Math.cos(t) * v,
			q = Math.cos(t + 1) * v,
			e = H.io.hash(A, D),
			R = H.io.hash(Z, D),
			J = H.io.hash(A, q),
			W = H.io.hash(Z, q),
			p = Y(e, R, d),
			n = Y(J, W, d),
			b = Y(p, n, U);
		b = b < .5 ? 0 : 1;
		var Q = b + X * H.io.hash(Math.cos(y) * v, Math.cos(z) * v);
		return Q * (1 / 3)
	};
	H.io.hash = function (F, P) {
		var o = Math.sin(F * 11.697096 + P * 73.32456) * 12157.47691;
		return o - Math.floor(o)
	};
	H.io.alf = function (F, P, o, X) {
		var Y = [-1, 0, 1, -2, 0, 2, -1, 0, 1],
			y = [-1, -2, -1, 0, 0, 0, 1, 2, 1],
			z = P - 1,
			s = o - 1,
			t = P * 4;
		for (var d = 1; d < s; d++)
			for (var U = 1; U < z; U++) {
				var w = d * P + U,
					v = w * 4,
					A = H.io.q7(F, v, t, Y),
					Z = H.io.q7(F, v, t, y),
					D = H.io.q7(F, v + 1, t, Y),
					q = H.io.q7(F, v + 1, t, y),
					R = H.io.q7(F, v + 2, t, Y),
					J = H.io.q7(F, v + 2, t, y);
				X[v] = A * A + D * D + R * R;
				X[v + 1] = A * Z + D * q + R * J;
				X[v + 2] = Z * Z + q * q + J * J
			}
		H.io.acg(X, P, o)
	};
	H.io.q7 = function (F, P, o, X) {
		return F[P - o - 4] * X[0] + F[P - o] * X[1] + F[P - o + 4] * X[2] + F[P - 4] * X[3] + F[P] * X[4] + F[P + 4] * X[5] + F[P + o - 4] * X[6] + F[P + o] * X[7] + F[P + o + 4] * X[8]
	};
	H.io.acg = function (F, P, o) {
		function X(t, w, d) {
			var U = w * 4,
				v = d * 4;
			t[v] = t[U];
			t[v + 1] = t[U + 1];
			t[v + 2] = t[U + 2]
		}
		var Y = P - 1,
			y = o - 1;
		X(F, P + 1, 0);
		X(F, 2 * P - 2, P - 1);
		for (var z = 1; z < Y; z++) X(F, P + z, z);
		for (var s = 1; s < y; s++) {
			X(F, s * P + 1, s * P);
			X(F, s * P + P - 2, s * P + P - 1)
		}
		for (var z = 1; z < Y; z++) X(F, (o - 2) * P + z, (o - 1) * P + z);
		X(F, (s - 2) * P + 1, (s - 1) * P);
		X(F, (s - 1) * P - 2, s * P - 1)
	};
	H.jH = {};
	H.jH.fS = function (F, P, o, X) {
		var Y = F[P * 2],
			y = F[P * 2 + 1],
			z = F[o * 2],
			s = F[o * 2 + 1],
			t = F[X * 2],
			d = F[X * 2 + 1];
		return Y * s + z * d + t * y - t * s - z * y - Y * d
	};
	H.jH.En = function (F, P) {
		var o = [],
			X = [],
			Y = [],
			y = {};
		for (var w = 0; w < P.length; w += 3) {
			var z = ~~(w * (1 / 3)),
				s = P[w + 0],
				t = P[w + 1],
				d = P[w + 2],
				U = H.jH.fS(F, s, t, d);
			if (U > 0) {
				var v = t;
				t = d;
				d = v
			}
			var A = y[d + "-" + t],
				Z = y[t + "-" + s],
				D = y[s + "-" + d],
				q = [d, A, z, null],
				R = [t, Z, z, q],
				J = [s, D, z, R];
			q[3] = J;
			if (A) A[1] = q;
			if (Z) Z[1] = R;
			if (D) D[1] = J;
			y[d + "-" + s] = J;
			y[s + "-" + t] = R;
			y[t + "-" + d] = q;
			o[s] = R;
			Y[w] = R;
			o[t] = q;
			Y[w + 1] = q;
			o[d] = J;
			Y[w + 2] = J;
			X[z] = R
		}
		return {
			e0: o,
			f4: X,
			df: Y
		}
	};
	H.jH.a2y = function (F) {
		var P = [],
			o = F.f4;
		for (var w = 0; w < o.length; w++) {
			var X = o[w];
			P.push(X[0]);
			X = X[3];
			P.push(X[0]);
			X = X[3];
			P.push(X[0])
		}
		return P
	};
	H.jH.ac7 = function (F, P, o, X) {
		var Y = F[P * 2],
			y = F[P * 2 + 1],
			z = F[o * 2],
			s = F[o * 2 + 1],
			t = F[X * 2],
			d = F[X * 2 + 1],
			U = z - Y,
			v = s - y,
			A = t - Y,
			Z = d - y,
			D = U * (Y + z) + v * (y + s),
			q = A * (Y + t) + Z * (y + d),
			R = 2 * (U * (d - s) - v * (t - z));
		if (Math.abs(R) < 1e-5) {
			var J = Math.min(Y, z, t),
				W = Math.min(y, s, d),
				p = (Math.max(Y, z, t) - J) * .5,
				n = (Math.max(y, s, d) - W) * .5;
			return [J + p, W + n, p * p + n * n, 1]
		}
		var b = (Z * D - v * q) / R,
			Q = (U * q - A * D) / R,
			p = b - Y,
			n = Q - y;
		return [b, Q, p * p + n * n, 0]
	};
	H.jH.agr = function (F, P, o) {
		var X = o[1],
			Y = o[3],
			y = Y[3],
			z = X[3],
			s = z[3],
			t = o[2],
			d = X[2],
			U = o[0],
			v = X[0],
			A = Y[0],
			Z = z[0],
			D = H.jH.ac7(F, v, Z, A),
			q = F[U * 2] - D[0],
			R = F[U * 2 + 1] - D[1],
			J = q * q + R * R > D[2] && D[3] == 0 && H.jH.fS(F, Z, U, A) < 0 && H.jH.fS(F, A, v, Z) < 0;
		if (J) {
			o[0] = A;
			X[0] = Z;
			o[3] = y;
			y[3] = z;
			z[3] = o;
			X[3] = s;
			s[3] = Y;
			Y[3] = X;
			Y[2] = d;
			z[2] = t;
			P.f4[d] = s;
			P.f4[t] = y;
			P.e0[v] = z;
			P.e0[U] = Y
		}
		return J
	};
	H.jH.kR = function (F, P, o) {
		var X = F[P * 2] - F[o * 2],
			y = F[P * 2 + 1] - F[o * 2 + 1];
		return Math.sqrt(X * X + y * y)
	};
	H.jH.adY = function (F, P, o) {
		var X = o[1],
			Y = o[3],
			y = Y[3],
			z, s, t = o[2],
			d, U = o[0],
			v = y[0],
			A = Y[0],
			Z;
		if (X) {
			z = X[3];
			s = z[3];
			d = X[2];
			Z = z[0]
		}
		var D = F.length >>> 1;
		F[2 * D] = (F[2 * v] + F[2 * U]) * .5;
		F[2 * D + 1] = (F[2 * v + 1] + F[2 * U + 1]) * .5;
		if (!0) {
			var q = t,
				R = o,
				J = P.f4.length,
				W = [D, null, q, R],
				p = [A, W, J, y];
			W[1] = p;
			var n = [D, null, J, p];
			Y[3] = W;
			y[3] = n;
			y[2] = J;
			P.f4[q] = Y;
			P.f4[J] = n;
			P.e0[U] = Y;
			P.e0[A] = y;
			P.df.push(W, p, n)
		}
		if (X) {
			var b = d,
				Q = X,
				_ = J + 1;
			n[1] = Q, Q[1] = n;
			var L = [D, null, b, Q],
				m = [Z, L, _, s];
			L[1] = m;
			var I = [D, R, _, m];
			R[1] = I;
			z[3] = L;
			s[3] = I;
			s[2] = _;
			P.f4[b] = z;
			P.f4[_] = s;
			P.e0[v] = z;
			P.e0[Z] = s;
			P.df.push(L, m, I)
		}
		P.e0[D] = R
	};
	H.jH.Yo = function (F, P) {
		var o = 0;
		while (!0) {
			var X = o;
			for (var w = 0; w < P.df.length; w++) {
				var Y = P.df[w];
				if (Y[1] == null) continue;
				var y = H.jH.agr(F, P, Y);
				if (y) {
					o++;
					break
				}
			}
			if (X == o) break
		}
		return o != 0
	};
	H.jH.acD = function (F, P, o, X) {
		var Y = 0;
		for (var w = 0; w < X; w++) {
			var y = null,
				z = 0;
			for (var s = 0; s < P.df.length; s++) {
				var t = P.df[s],
					d = H.jH.kR(F, t[0], t[3][3][0]) * (t[1] ? 1 : 2);
				if (d > z) {
					y = t;
					z = d
				}
			}
			if (z > o) {
				H.jH.adY(F, P, y);
				Y++
			}
		}
		return Y != 0
	};
	H.jH.a1z = function (F, P) {
		var o = [],
			A = 0;
		for (var w = 0; w < F.length; w++) o.push(0);
		for (var w = 0; w < P.df.length; w++) {
			var X = P.df[w],
				Y = X[0],
				y = X[3][3][0],
				z = F[Y * 2],
				s = F[Y * 2 + 1],
				t = F[y * 2],
				d = F[y * 2 + 1],
				U = z - t,
				v = s - d;
			o[Y * 2] += -U;
			o[Y * 2 + 1] += -v;
			o[y * 2] += U;
			o[y * 2 + 1] += v
		}
		for (var w = 0; w < F.length; w += 2) {
			var Z = w >>> 1,
				D = P.e0[Z],
				X = D,
				q = !0;
			do {
				if (X[1] == null) {
					q = !1;
					break
				}
				X = X[1][3]
			} while (X != D);
			if (q) {
				var R = .02;
				F[w] += R * o[w];
				F[w + 1] += R * o[w + 1];
				A += R * (o[w] * o[w] + o[w + 1] * o[w + 1])
			}
		}
		return A
	};
	H.jH.a9v = function (F, P, o) {
		var X = H.D.nP(F),
			Y = H.jH.En(F, P);
		H.jH.Yo(F, Y);
		for (var y = 0; y < 300; y++) {
			var z = !1,
				s = !1;
			z = H.jH.acD(F, Y, o, 5);
			if (z) s = H.jH.Yo(F, Y);
			var t = H.jH.a1z(F, Y);
			if (!z && !s && t < 1e-4) {
				break
			}
		}
		return H.jH.a2y(Y)
	};
	H.s8 = {};
	H.s8.xI = function (F) {
		var P = F.n$,
			o = F.Zc,
			X = F.zM,
			Y = F.qH,
			y = F.fU,
			z = F.VE,
			s = F.us,
			t = H.Aw.c$,
			W, p, n = 0;

		function d(e) {
			var S = new Array(e);
			for (var w = 0; w < e; w++) S[w] = 0;
			return S
		}
		var U = o.length >>> 1,
			v = d(P.dM * 2),
			A = d(P.dM),
			Z = d(P.dM),
			D = Date.now();
		for (var w = 0; w < F.Q6.length; w++) {
			var q = P.a8P + w,
				R = P.YY * (z[w * 2] + s[w * 2]),
				J = P.YY * (z[w * 2 + 1] + s[w * 2 + 1]);
			v[q * 2] = R;
			v[q * 2 + 1] = J;
			A[q] = R;
			Z[q] = J
		}
		P.aaQ.$J(Y, P.a0E.c$(v), .01, W, p);
		for (var w = 0; w < P.gm.df.length; w++) {
			var b = P.gm.df[w],
				Q = b[3][3][0],
				_ = b[0],
				L = b[3][0],
				m = b[1] ? b[1][3][0] : L;
			if (b[1] && Q > _) continue;
			var I = o[Q * 2],
				c = o[Q * 2 + 1],
				u = o[_ * 2],
				a = o[_ * 2 + 1],
				N = Y[Q * 2],
				V = Y[Q * 2 + 1],
				M = Y[_ * 2],
				O = Y[_ * 2 + 1],
				K = Y[L * 2],
				j = Y[L * 2 + 1],
				$ = Y[m * 2],
				x = Y[m * 2 + 1],
				g = [N, V, M, O, K, j];
			if (b[1]) g.push($, x);
			var T = t(P.a9X[n], g),
				E = T[0],
				a9 = T[1],
				ez = 1 / Math.sqrt(E * E + a9 * a9);
			E *= ez;
			a9 *= ez;
			var bN = u - I,
				cg = a - c;
			A[n] = E * bN + a9 * cg;
			Z[n] = -a9 * bN + E * cg;
			n++
		}
		var d8 = new Array(U),
			C = new Array(U);
		for (var w = 0; w < U; w++) {
			d8[w] = y[w * 2];
			C[w] = y[w * 2 + 1]
		}
		P.zH.$J(d8, P.ZC.c$(A), .5);
		P.zH.$J(C, P.ZC.c$(Z), .5);
		for (var w = 0; w < U; w++) {
			y[w * 2] = d8[w];
			y[w * 2 + 1] = C[w]
		}
	};
	H.s8.DN = function (F) {
		var P = F.Zc,
			o = F.zM,
			X = F.Q6,
			Y = H.Aw.multiply,
			y = Date.now(),
			z = H.jH.En(P, o),
			s = P.length >>> 1,
			t = 0,
			D = 0,
			a9 = 1e3;
		for (var w = 0; w < z.df.length; w++) t += z.df[w][1] ? .5 : 1;
		var d = t + X.length,
			U = [],
			v = new H.sz(d * 2, s * 2),
			A = new H.sz(d, s),
			Z = [
				[
					[-1, 0, 1, 0, 0, 0],
					[0, -1, 0, 1, 0, 0]
				],
				[
					[-1, 0, 1, 0, 0, 0, 0, 0],
					[0, -1, 0, 1, 0, 0, 0, 0]
				]
			],
			q = [],
			R = [];
		for (var w = 0; w < z.df.length; w++) {
			var J = z.df[w],
				W = J[3][3][0],
				p = J[0],
				n = J[3][0],
				b = J[1] ? J[1][3][0] : n;
			if (J[1] && W > p) continue;
			var Q = P[W * 2],
				_ = P[W * 2 + 1],
				L = P[p * 2],
				m = P[p * 2 + 1],
				I = P[n * 2],
				c = P[n * 2 + 1],
				u = P[b * 2],
				a = P[b * 2 + 1],
				N = [
					[Q, _, 1, 0],
					[_, -Q, 0, 1],
					[L, m, 1, 0],
					[m, -L, 0, 1],
					[I, c, 1, 0],
					[c, -I, 0, 1]
				];
			if (J[1]) N.push([u, a, 1, 0], [a, -u, 0, 1]);
			var V = H.Aw.yT(N),
				M = Y(linear.invert(Y(V, N)), V);
			M.pop();
			M.pop();
			U.push(M);
			var O = L - Q,
				K = m - _,
				j = Z[J[1] ? 1 : 0];
			j = H.Aw.gI(j, Y([
				[O, K],
				[K, -O]
			], M));
			var $ = [W * 2, W * 2 + 1, p * 2, p * 2 + 1, n * 2, n * 2 + 1, b * 2, b * 2 + 1],
				x = J[1] ? 8 : 6,
				g = [];
			for (var T = 0; T < x; T++) g.push([$[T], j[0][T], j[1][T]]);
			g.sort(function (S, g_) {
				return S[0] - g_[0]
			});
			for (var E = 0; E < 2; E++) {
				for (var T = 0; T < x; T++) {
					q[T] = g[T][0];
					R[T] = g[T][1 + E]
				}
				v.Wz(R, q, x)
			}
			if (W < p) A.Wz([-1, 1], [W, p], 2);
			else A.Wz([1, -1], [p, W], 2);
			D++
		}
		for (var w = 0; w < X.length; w++) {
			var ez = X[w];
			v.Wz([a9], [ez * 2], 1);
			v.Wz([a9], [ez * 2 + 1], 1);
			A.Wz([a9], [ez], 1)
		}
		var bN = v.yT(),
			cg = bN.Rs(bN),
			d8 = A.yT(),
			C = d8.Rs(d8);
		return {
			a8P: t,
			dM: d,
			a0E: bN,
			aaQ: cg,
			ZC: d8,
			zH: C,
			gm: z,
			a9X: U,
			YY: a9
		}
	};
	H.s8.acF = function (F, P, o, X, Y) {
		var y = new ev(0, 0, P, o),
			z = H.R(y.M());
		H.E4(F, z, 3);
		H.round(z, 70);
		var s = H.xw(z, y),
			t = [.1, .065, .035][X] * Math.max(s.Z, s.h),
			d = Y + 1,
			U = P + d * 2,
			v = o + d * 2,
			A = new ev(-d, -d, U, v),
			Z = H.R(A.M());
		H.Lj(z, y, Z, A);
		var D = Z.slice(0);
		for (var q = 0; q < Y; q++) {
			for (var R = 1; R < v - 1; R++) {
				for (var J = 1; J < U - 1; J++) {
					var w = R * U + J;
					D[w] = Z[w - U] | Z[w - 1] | Z[w] | Z[w + 1] | Z[w + U]
				}
			}
			var W = D;
			D = Z;
			Z = W
		}
		var p = hY.ih(Z, U, v, Math.round(s.M() * 5e-4)),
			n = hY.Cj(p),
			b = new cu(1, 0, 0, 1, -d, -d);
		for (var w = 0; w < n.length; w++) {
			var Q = n[w];
			H.D.O(Q.path.d, b, Q.path.d);
			Q.Zc = H.s8.a6p(Q.path);
			Q.zM = H.D.a2N(Q.Zc);
			Q.zM = H.jH.a9v(Q.Zc, Q.zM, t)
		}
		return n
	};
	H.s8.a6p = function (F) {
		var P = [],
			o = F.d,
			X = F.W.length - 1,
			Y = 0,
			y = 0;
		for (var z = 0; z < X; z++) {
			var w = z * 6,
				s = o[w + 6] - o[w + 0],
				t = o[w + 7] - o[w + 1],
				d = Math.ceil(Math.sqrt(s * s + t * t));
			for (var U = 0; U < d; U++) {
				var v = U / d,
					A = 1 - v,
					Z = A * A * A * o[w + 0] + 3 * A * A * v * o[w + 2] + 3 * A * v * v * o[w + 4] + v * v * v * o[w + 6],
					D = A * A * A * o[w + 1] + 3 * A * A * v * o[w + 3] + 3 * A * v * v * o[w + 5] + v * v * v * o[w + 7];
				P.push(Z, D);
				Y = Z;
				y = D
			}
		}
		P = H.D.sX(P, 1);
		var q = [],
			R = P.length;
		for (var w = 0; w < R; w += 2) {
			var D = P.pop(),
				Z = P.pop();
			q.push(Z, D)
		}
		return q
	};
	H.s8.a4$ = function (F, P, o, X) {
		function Y(L, m, I, c, u) {
			var a = u[L * 2] - u[m * 2],
				N = u[L * 2 + 1] - u[m * 2 + 1],
				V = Math.sqrt(a * a + N * N);
			if (I[L].indexOf(m) == -1) {
				I[L].push(m);
				c[L].push(V)
			}
			if (I[m].indexOf(L) == -1) {
				I[m].push(L);
				c[m].push(V)
			}
		}
		var y = F.length >>> 1,
			z = new Array(y);
		if (o.length == 0) {
			z.fill(0);
			return z
		}
		var s = new Array(y),
			t = new Array(y);
		for (var w = 0; w < y; w++) {
			s[w] = [];
			t[w] = []
		}
		for (var w = 0; w < P.length; w += 3) {
			Y(P[w], P[w + 1], s, t, F);
			Y(P[w], P[w + 2], s, t, F);
			Y(P[w + 1], P[w + 2], s, t, F)
		}
		var d = new Float64Array(y * 2),
			U = new Uint32Array(y * 2);
		d.fill(1e9);
		var v = new Uint8Array(y);
		for (var A = 0; A < o.length; A++) {
			v.fill(0);
			var Z = ["---", [0, o[A]]];
			while (Z.length != 1) {
				var D = H.WO.aaV(Z),
					q = D[0],
					R = D[1];
				if (v[R] == 1) continue;
				var J = R << 1;
				if (q < d[J]) {
					d[J + 1] = d[J];
					U[J + 1] = U[J];
					d[J] = q;
					U[J] = A
				} else if (q < d[J + 1]) {
					d[J + 1] = q;
					U[J + 1] = A
				}
				v[R] = 1;
				var W = s[R],
					p = t[R];
				for (var w = 0; w < W.length; w++) {
					var n = W[w];
					if (v[n] != 1) {
						H.WO.a6g(Z, [q + p[w], n])
					}
				}
			}
		}
		for (var w = 0; w < y; w++) {
			var J = w << 1,
				b = d[J],
				Q = d[J + 1],
				_ = 1 / (b + Q);
			z[w] = (1 - b * _) * X[U[J]] + (1 - Q * _) * X[U[J + 1]]
		}
		return z
	};
	H.s8.a0G = function (F) {
		var P = {
				W: [],
				d: []
			},
			o = [F];
		while (o.length != 0) {
			var X = o.pop(),
				Y = X.gx;
			if (X.a8S instanceof Array || X.a5X instanceof Array) {
				P.W.push("M", "L", "L", "L", "Z");
				P.d.push(Y[0], Y[1], Y[2], Y[1], Y[2], Y[3], Y[0], Y[3])
			} else o.push(X.a8S, X.a5X)
		}
		return P
	};
	H.s8.ti = function (F, P, o, X, Y, y, z) {
		var s = o.Z,
			t = o.h,
			d = Math.round(z.length / 3),
			U = new Array(d);
		for (var w = 0; w < d; w++) U[w] = w;
		U.sort(function (A, Z) {
			return y[z[A * 3]] - y[z[Z * 3]]
		});
		for (var w = 0; w < d; w++) {
			var v = U[w] * 3;
			H.s8.aih(z[v] * 2, z[v + 1] * 2, z[v + 2] * 2, X, Y, F, P, s, t)
		}
	};
	H.s8.aih = function (F, P, o, X, Y, y, z, s, t) {
		var d = H.s8.Is,
			U = [F, P, o, 1.2, 1.2, 1.2, 0],
			v = [0, 0, 0, 0],
			A = Y[F],
			Z = Y[F + 1],
			D = Y[P],
			q = Y[P + 1],
			R = Y[o],
			J = Y[o + 1],
			W = Math.max(0, Math.min(s - 1, X[F])),
			p = Math.max(0, Math.min(s - 1, X[P])),
			n = Math.max(0, Math.min(s - 1, X[o])),
			b = Math.max(0, Math.min(t - 1, X[F + 1])),
			Q = Math.max(0, Math.min(t - 1, X[P + 1])),
			_ = Math.max(0, Math.min(t - 1, X[o + 1])),
			L = D - A,
			m = q - Z,
			I = R - A,
			c = J - Z,
			u = 1 / (L * c - I * m + 1e-9),
			a = Math.max(0, Math.floor(Math.min(A, D, R))),
			N = Math.min(s, Math.ceil(Math.max(A, D, R))),
			V = Math.max(0, Math.floor(Math.min(Z, q, J))),
			M = Math.min(t, Math.ceil(Math.max(Z, q, J)));
		for (var O = V; O < M; O++)
			for (var K = a; K < N; K++) {
				var j = K + .5 - A,
					$ = O + .5 - Z,
					x = (j * c - I * $) * u,
					g = (L * $ - j * m) * u;
				if (x >= 0 && g >= 0 && x + g <= 1) {
					var T = 1 - x - g,
						E = W * T + p * x + n * g,
						a9 = b * T + Q * x + _ * g;
					H.P.eU(E, a9, y, s, t, v);
					H.s8.a7a(v, z, O * s + K << 2)
				}
			}
	};
	H.s8.a7a = function (F, P, o) {
		var X = P[o],
			Y = P[o + 1],
			y = P[o + 2],
			z = P[o + 3],
			s = 1 - F[3] * (1 / 255);
		P[o] = ~~(.5 + F[0] + X * s);
		P[o + 1] = ~~(.5 + F[1] + Y * s);
		P[o + 2] = ~~(.5 + F[2] + y * s);
		P[o + 3] = ~~(.5 + F[3] + z * s)
	};
	H.s8.Is = function () {
		var F = function (o, X, Y, y) {
				var z = y[0],
					s = y[1],
					t = y[2],
					d = o[z + 0],
					U = o[z + 1],
					v = o[s + 0],
					A = o[s + 1],
					Z = o[t + 0],
					D = o[t + 1],
					q = v - d,
					R = A - U,
					J = Z - d,
					W = D - U,
					p = X - d,
					n = Y - U,
					b = q * W - J * R,
					Q = 1 / (b + 1e-9),
					_ = (p * W - J * n) * Q,
					L = (q * n - p * R) * Q;
				if (_ >= 0 && L >= 0 && _ + L <= 1) {
					y[3] = 1 - _ - L;
					y[4] = _;
					y[5] = L;
					return 1
				}
				return 0
			},
			P = function (o, X, Y, y) {
				var z = [0, 0, 0, 0, 0, 0];
				for (var w = 0; w < X.length; w += 3) {
					z[0] = X[w] * 2;
					z[1] = X[w + 1] * 2;
					z[2] = X[w + 2] * 2;
					if (F(o, Y, y, z) == 1) return !0
				}
				return !1
			};
		return {
			acP: F,
			a7N: P
		}
	}();
	H.dW = function () {
		var F = 0,
			P = 0,
			X = 15,
			y = 256;

		function o(U, v, A, Z, D, q) {
			var R = (D - 1) * v,
				J = q * v;
			return U[J + Z] - U[J + A - 1] - U[R + Z] + U[R + A - 1]
		}
		var Y = Math.round(X / 8),
			z = [];

		function s(U, v) {
			for (var A = 0; A < v.length; A++) {
				var Z = v[A],
					D = 0,
					q = 0,
					R = U[Z.Mz],
					J = R.AH,
					W = R.YY,
					p = R.mi;
				for (var n = -X; n <= X; n++)
					for (var b = -X; b <= X; b++) {
						var Q = b + Z.Zh,
							_ = n + Z.TN;
						if (b * b + n * n > X * X || Q < 0 || _ < 0 || Q >= W || _ >= W) continue;
						var L = J[_ * W + Q];
						D += b * L;
						q += n * L
					}
				Z.Fu = Math.atan2(q, D)
			}
		}

		function t(U, v, A, Z, D) {
			var q = ~~(U + .5),
				R = ~~(v + .5);
			return o(A, Z, q - Y, q + Y, R - Y, R + Y)
		}

		function d(U, v, A, Z, D) {
			F = Z;
			P = D;
			if (z.length == 0) {
				var q = new H.N.Df(16200817),
					p = 8,
					n = 0;

				function R(S) {
					var I = S[0] - S[2],
						c = S[1] - S[3];
					return I * I + c * c
				}

				function J() {
					var S = 0,
						g7 = 0;
					while (S === 0) S = q.get();
					while (g7 === 0) g7 = q.get();
					return Math.sqrt(-2 * Math.log(S)) * Math.cos(2 * Math.PI * g7)
				}
				var W = J,
					b = [];
				while (n != y) {
					var Q = Math.max(-X, Math.min(X, W() * p)),
						_ = Math.max(-X, Math.min(X, W() * p)),
						L = Math.max(-X, Math.min(X, W() * p)),
						m = Math.max(-X, Math.min(X, W() * p)),
						I = Q - L,
						c = _ - m,
						u = Math.sqrt(I * I + c * c);
					if (u < 3 || u > 12) continue;
					z.push(Q, _, L, m);
					n++
				}
			}
			var a = 20;
			for (var N = 0; N < v.length; N++) {
				var V = v[N],
					M = U[V.Mz],
					O = M.Nd,
					A = M.AH,
					Z = M.YY,
					D = M.mi,
					K = V.Zh,
					j = V.TN,
					$ = V.Fu,
					x = Math.cos($),
					g = Math.sin($),
					T = new Uint8Array(y >>> 3);
				V.w1 = T;
				for (var w = 0; w < y; w++) {
					var E = w * 4,
						Q = z[E + 0],
						_ = z[E + 1],
						L = z[E + 2],
						m = z[E + 3],
						a9 = x * Q - g * _,
						ez = g * Q + x * _,
						bN = x * L - g * m,
						cg = g * L + x * m,
						d8 = t(K + a9, j + ez, O, Z, D),
						C = t(K + bN, j + cg, O, Z, D);
					T[w >>> 3] |= (d8 < C ? 0 : 1) << (w & 7)
				}
			}
		}
		return {
			aje: s,
			ajG: d
		}
	}();
	H.agn = function () {
		var F = 0,
			P = 0;

		function o(y, z, s, t, d, U) {
			var v = (d - 1) * z,
				A = U * z;
			return y[A + t] - y[A + s - 1] - y[v + t] + y[v + s - 1]
		}

		function X(y, z, s) {
			var t = new Uint32Array(z * s);
			t[0] = y[0];
			for (var d = 1; d < z; d++) t[d] = t[d - 1] + y[d];
			for (var U = 1; U < s; U++) {
				var w = U * z;
				t[w] = t[w - z] + y[w];
				for (var d = 1; d < z; d++) t[w + d] = y[w + d] + t[w + d - 1] + t[w + d - z] - t[w + d - z - 1]
			}
			return t
		}

		function Y(y, z) {
			var s = [
					[9]
				],
				t = Date.now(),
				d = [];
			for (var U = 0; U < y.length; U++) {
				var v = y[U],
					A = v.Nd,
					Z = F = v.YY,
					D = P = v.mi,
					J = 9,
					_ = 1,
					j = 24;
				if (A == null) continue;
				var q = new Float32Array(Z * D),
					R = new Uint8Array(Z * D),
					W = J >>> 1,
					p = W >>> 1,
					n = Math.round(J / 3);
				if (n != J / 3) throw "e";
				var b = 1 / (J * J),
					Q = 1.2 * (J / 9);
				for (var L = W + 1; L < D - W; L += _)
					for (var m = W + 1; m < Z - W; m += _) {
						var I = o(A, Z, m - p, m + p, L - W, L + W) - 3 * o(A, Z, m - p, m + p, L - W + n, L + W - n),
							c = o(A, Z, m - W, m + W, L - p, L + p) - 3 * o(A, Z, m - W + n, m + W - n, L - p, L + p),
							u = m - W + 1,
							a = m + W - 1,
							N = L - W + 1,
							V = L + W - 1,
							M = o(A, Z, u, m - 1, N, L - 1) + o(A, Z, m + 1, a, L + 1, V) - o(A, Z, m + 1, a, N, L - 1) - o(A, Z, u, m - 1, L + 1, V),
							O = (c * I - .9 * M * (.9 * M)) * (b * b);
						q[L * Z + m] = Math.abs(O);
						R[L * Z + m] = O < 0 ? 0 : 1
					}
				var K = Z * _;
				for (var L = j; L < D - j; L += _)
					for (var m = j; m < Z - j; m += _) {
						var w = L * Z + m,
							$ = q[w];
						if ($ < 16) continue;
						if (q[w - _] >= $ || q[w + _] >= $) continue;
						if (q[w - K - _] >= $ || q[w - K] >= $ || q[w - K + _] >= $) continue;
						if (q[w + K - _] >= $ || q[w + K] >= $ || q[w + K + _] >= $) continue;
						d.push({
							x: ~~(m * v.I6 + .5),
							y: ~~(L * v.I6 + .5),
							Zh: m,
							TN: L,
							Mz: U,
							C: $,
							wy: R[w],
							Pg: Q
						})
					}
			}
			if (z != null) {
				d.sort(function (cg, d8) {
					return d8.C - cg.C
				});
				d = d.slice(0, z)
			}
			return d;
			var x = [];
			for (var w = 0; w < d.length; w++) {
				var g = !0,
					T = d[w];
				for (var E = 0; E < d.length; E++) {
					var a9 = d[E];
					if (E != w && a9.C > T.C && (a9.Mz == T.Mz + 1 || a9.Mz == T.Mz - 1)) {
						var ez = T.x - a9.x,
							bN = T.y - a9.y;
						if (ez * ez + bN * bN < 5) {
							g = !1;
							break
						}
					}
				}
				if (g) x.push(T)
			}
			console.log(d.length, x.length);
			return x
		}
		return {
			a87: Y
		}
	}();
	H.Hn = {};
	H.Hn.a7r = function (F) {
		var P = F.length,
			o = H.Hn.hj(F, !1),
			Y = 0,
			y = 1;
		throw "e";
		var X = [];
		for (var w = 0; w < P; w++) X[w] = H.Hn.x1(o[w]);
		var z = F[0][1],
			s = H.Hn.match(o[Y], o[y], X[y]);
		console.log(s.length);
		var t = Math.max(Math.min(s.length, 40), s.length * .54);
		t = Math.min(t, 200);
		var d = s.slice(0, t),
			U = H.Bz.a9a(o[Y], o[y], d, z.Z, z.h),
			v = H.Bz.a9o(U, [0, 0, 0], 1),
			A = z.Z / 2,
			Z = z.h / 2,
			D = 1 / Math.max(A, Z);
		for (var w = 0; w < 1; w++) {
			var q = d[w],
				R = o[Y][q[0]],
				J = o[y][q[1]],
				W = H.Bz.aed(v, D * (R.x - A), D * (R.y - Z), D * (J.x - A), D * (J.y - Z))
		}
		var p = H.Bz.a5O(U, z),
			n = [];
		for (var w = 0; w < 2; w++) {
			var b = p[w],
				Q = [b[0][0], b[0][1], b[0][2], b[1][0], b[1][1], b[1][2], b[2][0], b[2][1]],
				_ = B.X.rx(F[w], null, Q);
			n.push([_.buffer, _.rect])
		}
		return [H.Hn.ah2(n[0], n[1], o[Y], o[y], d, U, p, z)]
	};
	H.Hn.q1 = function (F, P) {
		var o = F.length,
			X = !1,
			Y = Date.now(),
			y = H.Hn.hj(F, !1, 1e4);
		if (X) console.log("Descriptors ready", Date.now() - Y);
		Y = Date.now();
		for (var w = 0; w < o; w++) {
			var z = F[w][1];
			for (var s = 0; s < y[w].length; s++) {
				y[w][s].x += z.x;
				y[w][s].y += z.y
			}
		}
		if (X) console.log("shifted", Date.now() - Y);
		Y = Date.now();
		var t = [];
		for (var w = 0; w < o; w++) t[w] = H.Hn.x1(y[w]);
		if (X) console.log("trees built", Date.now() - Y);
		Y = Date.now();
		var d = [];
		for (var w = 0; w < o - 1; w++)
			for (var s = w + 1; s < o; s++) {
				var U = H.Hn.match(y[w], y[s], t[s]);
				if (X) console.log("Matches found", w, s, U.length);
				U = U.slice(0, U.length >>> 1);
				if (U.length < 10) return null;
				var v = H.Hn.ami(y[w], y[s], U, 2);
				d.push([w, s, U, v])
			}
		d.sort(function (m, I) {
			return I[2].length - m[2].length
		});
		if (X) console.log("Matches found", Date.now() - Y);
		Y = Date.now();
		var A = [],
			Z = new UnionFind(o);
		for (var w = 0; w < d.length; w++) {
			var D = d[w],
				q = Z.find(D[0]),
				R = Z.find(D[1]);
			if (q != R) {
				A.push(D);
				Z.link(q, R)
			}
		}
		var J = [];
		for (var w = 0; w < o; w++) J[w] = [1, 0, 0, 0, 1, 0, 0, 0];
		var W = [0],
			p = new Uint8Array(o);
		p[W[0]] = 1;
		while (W.length != 0) {
			var R = W.pop(),
				v = J[R],
				n = [];
			for (var w = 0; w < A.length; w++) {
				var D = A[w],
					b = D[0],
					Q = D[1];
				if (b == R && p[Q] == 0) {
					J[Q] = H.P.$T(v, D[3]);
					W.push(Q);
					p[Q] = 1
				}
				if (Q == R && p[b] == 0) {
					J[b] = H.P.$T(v, H.P.nJ(D[3]));
					W.push(b);
					p[b] = 1
				}
			}
		}
		if (P == null) {
			var _ = [];
			for (var w = 0; w < o; w++) _.push([J[w][2], w]);
			_.sort(function (m, I) {
				return m[0] - I[0]
			});
			P = _[_.length >>> 1][1]
		}
		var L = H.P.nJ(J[P]);
		for (var w = 0; w < o; w++) J[w] = H.P.$T(J[w], L);
		if (X) console.log("Transforms reordered", Date.now() - Y);
		Y = Date.now();
		return J
	};
	H.Hn.hj = function (F, P, o) {
		var X = [],
			Y = !1;
		for (var w = 0; w < F.length; w++) {
			var y = F[w][0],
				z = F[w][1],
				s = z.Z,
				t = z.h,
				d = H.R(z.M());
			H.np(y, d);
			var U = Date.now(),
				v = H.Hn.aio(d, z, !0);
			if (Y) console.log("Pyramid built ---------------", Date.now() - U);
			U = Date.now();
			var A = H.agn.a87(v, o);
			if (Y) console.log("SURF Generation", Date.now() - U);
			U = Date.now();
			if (!P) {
				H.dW.aje(v, A);
				if (Y) console.log("ORB Orientations", Date.now() - U);
				U = Date.now();
				H.dW.ajG(v, A, d, s, t);
				if (Y) console.log("ORB Descriptors", Date.now() - U);
				U = Date.now()
			}
			X.push(A)
		}
		return X
	};
	H.Hn.aio = function (F, P, o) {
		function X(d, v, A) {
			var D = new Uint32Array(v * A);
			D[0] = d[0];
			for (var q = 1; q < v; q++) D[q] = D[q - 1] + d[q];
			for (var R = 1; R < A; R++) {
				var w = R * v;
				D[w] = D[w - v] + d[w];
				for (var q = 1; q < v; q++) D[w + q] = d[w + q] + D[w + q - 1] + D[w + q - v] - D[w + q - v - 1]
			}
			return D
		}
		var Y = [],
			y = [F, P];
		H.h8(y);
		if (o) {
			var z = H.zj(F, P),
				s = z.rect,
				t = [z.Ww, s];
			H.h8(t)
		}
		for (var w = 0; w < y.length; w++) {
			var d = y[2 * w],
				U = y[2 * w + 1],
				v = U.Z,
				A = U.h,
				Z = Math.min(v, A);
			if (Z < 30) break;
			if (Z < 1600) Y.push({
				AH: d,
				YY: v,
				mi: A,
				I6: 1 << w,
				Nd: X(d, v, A)
			});
			if (!o) continue;
			var d = t[2 * w],
				U = t[2 * w + 1],
				v = U.Z,
				A = U.h,
				Z = Math.min(v, A);
			if (Z < 30) break;
			if (Z < 1600) Y.push({
				AH: d,
				YY: v,
				mi: A,
				I6: (1 << w) * 3 / 2,
				Nd: X(d, v, A)
			})
		}
		return Y
	};
	H.Hn.ami = function (F, P, o, X) {
		var Y = Date.now(),
			y, z = 0,
			s = 0,
			t = o.length,
			d = new Float64Array(2);
		for (var U = 0; U < 3e3; U++) {
			var v = ~~(Math.random() * t),
				A = ~~(Math.random() * t),
				Z = ~~(Math.random() * t),
				D = ~~(Math.random() * t),
				N = 0,
				V = 0;
			if (v == A || v == Z || v == D || A == Z || A == D || Z == D) continue;
			var q = o[v],
				R = o[A],
				J = o[Z],
				W = o[D],
				p = F[q[0]],
				n = P[q[1]],
				b = F[R[0]],
				Q = P[R[1]],
				_ = F[J[0]],
				L = P[J[1]],
				m = F[W[0]],
				I = P[W[1]],
				c = [p.x, p.y, b.x, b.y, _.x, _.y, m.x, m.y],
				u = [n.x, n.y, Q.x, Q.y, L.x, L.y, I.x, I.y],
				a = H.P.dP(c, u);
			if (a[0] == 0 && a[1] == 0 && a[3] == 0 && a[4] == 0) continue;
			var M = t - z + 2;
			for (var w = 0; w < t && w - N < M; w++) {
				var O = F[o[w][0]],
					K = P[o[w][1]];
				H.P.MC(K.x, K.y, a, d);
				var j = d[0] - O.x,
					$ = d[1] - O.y,
					x = j * j + $ * $;
				if (x < X) {
					N++;
					V += x
				}
			}
			if (N > z || N == z && V < s) {
				y = a;
				z = N;
				s = V
			}
		}
		return y
	};
	var cS = new Uint8Array(256);
	for (var w = 0; w < 256; w++) {
		var gH = 0,
			e = w;
		while (e != 0) {
			e = e & e - 1;
			gH++
		}
		cS[w] = gH
	}
	H.Hn.adV = function (F, P, o) {
		var X = 0,
			Y = F.length;
		for (var w = 0; w < Y && X < o; w++) X += cS[F[w] ^ P[w]];
		return X
	};
	H.Hn.a0b = function (F, P, o, top, X) {
		if (X[o] == 1) return;
		var Y = H.Hn.adV(F.w1, P.w1, top[0]);
		if (Y < top[0]) {
			if (Y < top[2]) {
				top[0] = top[2];
				top[1] = top[3];
				top[2] = Y;
				top[3] = o
			} else {
				top[0] = Y;
				top[1] = o
			}
		}
		X[o] = 1
	};
	H.Hn.x1 = function (F) {
		var P = [],
			o = [],
			X = [
				[],
				[]
			],
			Y = 4;
		for (var w = 0; w < F.length; w++)(F[w].wy == 0 ? P : o).push(w);
		for (var y = 0; y < 2; y++) {
			var z = new Array(Y),
				s = [],
				t = y == 0 ? P : o,
				d = t.length / 256,
				U = [];
			for (var v = 0; v < 32; v++) {
				var A = new Array(256),
					q = 0;
				for (var Z = 0; Z < 256; Z++) A[Z] = [];
				for (var Z = 0; Z < t.length; Z++) {
					var D = t[Z];
					A[F[D].w1[v]].push(D)
				}
				for (var Z = 0; Z < 256; Z++) q += Math.abs(A[Z].length - d);
				U.push([q, v, A])
			}
			U.sort(function (R, J) {
				return R[0] - J[0]
			});
			var s = [],
				z = [];
			X[y] = [s, z];
			for (var w = 0; w < Y; w++) {
				s.push(U[w][1]);
				z.push(U[w][2])
			}
		}
		return X
	};
	H.Hn.match = function (F, P, o) {
		var X = [],
			Y = new Uint16Array(P.length);
		Y.fill(65535);
		var y = new Uint8Array(P.length),
			top = new Uint32Array(4),
			z = [];
		for (var s = 0; s < F.length; s++) {
			var t = F[s],
				d = t.w1;
			top.fill(1e6);
			y.fill(0);
			var U = o[t.wy];
			for (var v = 0; v < U[1].length; v++) {
				var A = U[1][v][d[U[0][v]]];
				for (var Z = 0; Z < A.length; Z++) {
					var D = A[Z];
					H.Hn.a0b(t, P[D], D, top, y)
				}
			}
			if (top[2] < 50 && top[2] < top[0] * .5) {
				var q = Y[top[3]];
				if (q == 65535) {
					Y[top[3]] = X.length;
					X.push([s, top[3], top[2]])
				} else if (top[2] < X[q][2]) {
					X[q] = [s, top[3], top[2]]
				}
			}
		}
		X.sort(function (R, J) {
			return R[2] - J[2]
		});
		return X
	};
	H.Hn.ahH = function (F) {
		var P = new ev;
		for (var w = 0; w < F.length; w++) P = P.s7(F[w][1]);
		var o = H.R(P.M() * 4);
		for (var w = 0; w < F.length; w++) H.N.DO("norm", F[w][0], F[w][1], o, P, P, 1);
		return [o, P]
	};
	H.Hn.ah2 = function (F, P, o, X, Y, y, z, s) {
		var t = F[1].clone(),
			d = t.clone();
		t.x = t.y = 0;
		var U = P[1].clone(),
			v = U.clone();
		U.x = U.y = 0;
		U.x = t.Z;
		var A = t.s7(U),
			Z = v.y - d.y,
			D = H.R(A.M() * 4);
		H.BP(F[0], t, D, A);
		H.BP(P[0], new ev(U.x, U.y + Z, U.Z, U.h), D, A);
		var q = document.createElement("canvas");
		q.width = A.Z;
		q.height = A.h;
		var R = q.getContext("2d");
		R.lineWidth = .5;
		R.putImageData(new ImageData(new Uint8ClampedArray(D.buffer), A.Z, A.h), 0, 0);
		if (y) {
			var J = y[0],
				W = H.Aw.yT(J),
				p = t.Z,
				n = s.Z;
			for (var w = 0; w < Y.length; w++) {
				var b = Y[w],
					F = o[b[0]],
					P = X[b[1]];
				R.strokeStyle = "#" + "ff0000";
				R.beginPath();
				var Q = H.Bz.aht(W, z[0], P, 0, n),
					_ = H.Bz.aht(J, z[1], F, 0, n);
				R.moveTo(-d.x + Q[0], -d.y + Q[1]);
				R.lineTo(-d.x + Q[2], -d.y + Q[3]);
				R.moveTo(p - v.x + _[0], -v.y + Z + _[1]);
				R.lineTo(p - v.x + _[2], -v.y + Z + _[3]);
				R.stroke()
			}
		}
		if (Y) {
			var L = Y.length;
			for (var w = 0; w < L; w++) {
				var b = Y[w],
					F = o[b[0]],
					P = X[b[1]];
				R.strokeStyle = "#" + "ffff00"
			}
		}
		var m = new Uint8Array(R.getImageData(0, 0, A.Z, A.h).data.buffer);
		if (!1) {
			for (var I = 0; I < 2; I++) {
				var c = I == 0 ? o : X,
					u = I * t.Z;
				for (var w = 0; w < c.length; w++) {
					var a = c[w],
						N = ~~a.x,
						V = ~~a.y,
						M = (V * A.Z + N + u) * 4;
					m[M + 1] = m[M + 2] = a.abw * 60;
					m[M + 0] = 0;
					m[M + 3] = 255
				}
			}
		}
		return [m, A]
	};
	H.stack = {};
	H.stack.stack = function (F, P, o) {
		var X = F.length,
			Y = P.length;
		if (X == 1) {
			P.set(F[0]);
			return
		}
		if (o == "avrg" || o == "stdv" || o == "summ" || o == "vari") {
			var y = 1 / X;
			for (var w = 0; w < Y; w++) {
				var z = 0;
				for (var s = 0; s < X; s++) z += F[s][w];
				var t = ~~(z * y + .5);
				if (o == "avrg" || (w & 3) == 3) P[w] = t;
				else if (o == "summ") P[w] = 255 * Math.pow(Math.min(255, z) * (1 / 255), 1 / 2.4);
				else {
					var d = 0;
					for (var s = 0; s < X; s++) {
						var U = F[s][w] - t;
						d += U * U
					}
					var v = Math.sqrt(d * y) * (1 / 255);
					if (o == "stdv") P[w] = 255 * Math.pow(v, 1 / 2.4);
					else P[w] = 255 * Math.pow(v * v, 1 / 2.4)
				}
			}
		} else if (o == "maxx") {
			for (var w = 0; w < Y; w++) {
				var A = 0;
				for (var s = 0; s < X; s++) A = Math.max(A, F[s][w]);
				P[w] = A
			}
		} else if (o == "minn") {
			for (var w = 0; w < Y; w++) {
				var A = 255;
				for (var s = 0; s < X; s++) A = Math.min(A, F[s][w]);
				P[w] = A
			}
		} else if (o == "medn" || o == "rang") {
			var Z = function (J, W) {
					return J - W
				},
				D = new Array(X),
				q = 0,
				R = 0;
			if (X % 1 == 0) {
				R = X >>> 1;
				q = R - 1
			} else {
				q = R = X >>> 1
			}
			for (var w = 0; w < Y; w++) {
				for (var s = 0; s < X; s++) D[s] = F[s][w];
				D.sort(Z);
				if (o == "medn") P[w] = D[q] + D[R] >>> 1;
				else P[w] = (w & 3) == 3 ? D[X - 1] : D[X - 1] - D[0]
			}
		} else console.log(o)
	};
	H.Hr = {};
	H.Hr.a9H = function (F, P, o, X, Y) {
		var y = H.Hr.DK(F.buffer, P, o).a2,
			z = Date.now(),
			s = new Uint32Array(y.length);
		for (var w = 0; w < y.length; w++) s[w] = y[w].p$;
		var t = UPNG.quantize.getKDtree(new Uint8Array(s.buffer), X),
			d = [P, 1, -P, -1, P + 1, -P + 1, -P - 1, P - 1, P + P, 2, -P - P, -2, P + P - 1, P + P + 1, P + 2, -P + 2, -P - P + 1, -P - P - 1, -P - 2, P - 2, P + P + 2, -P - P + 2 - P - P - 2, P + P - 2],
			U = new Uint8Array(P * o),
			v = F;
		for (var A = 0; A < o; A++)
			for (var Z = 0; Z < P; Z++) {
				var w = A * P + Z << 2,
					D = v[w] * (1 / 255),
					q = v[w + 1] * (1 / 255),
					R = v[w + 2] * (1 / 255),
					J = v[w + 3] * (1 / 255),
					W = H.Hr.AO(t, D, q, R, J, Y);
				if (W == null) {
					var p = [],
						n = 0;
					while (n < 20) {
						var b = A * P + Z + d[n] << 2,
							Q = v[b] * (1 / 255),
							_ = v[b + 1] * (1 / 255),
							L = v[b + 2] * (1 / 255),
							m = v[b + 3] * (1 / 255),
							I = H.Hr.AO(t, Q, _, L, m, .005);
						if (I != null) {
							if (p.indexOf(I) == -1) {
								p.push(I);
								I.YN = 1
							} else I.YN++
						}
						n++
					}
					p.sort(function (J, R) {
						return R.YN - J.YN
					});
					while (p.length != 0 && p[p.length - 1].YN < 3) p.pop();
					if (p.length == 0) W = H.Hr.AO(t, D, q, R, J, 100);
					else if (p.length == 1) W = p[0];
					else if (p.length == 2) {
						var c = p[0],
							u = p[1],
							a = c.est.q,
							N = u.est.q,
							V = N[0] - a[0],
							M = N[1] - a[1],
							O = N[2] - a[2],
							K = N[3] - a[3],
							j = D - a[0],
							$ = q - a[1],
							x = R - a[2],
							g = J - a[3],
							T = V * V + M * M + O * O + K * K,
							E = j * j + $ * $ + x * x + g * g,
							a9 = (j * V + $ * M + x * O + g * K) / T,
							ez = E - a9 * a9 * T;
						if (ez < .5) W = a9 < .5 ? c : u;
						else {
							W = H.Hr.AO(t, D, q, R, J, 100)
						}
					} else {
						var c = p[0],
							u = p[1],
							bN = p[2],
							a = c.est.q,
							N = u.est.q,
							cg = bN.est.q,
							d8 = a[0] - cg[0],
							C = a[1] - cg[1],
							S = a[2] - cg[2],
							g7 = a[3] - cg[3],
							g_ = N[0] - cg[0],
							fw = N[1] - cg[1],
							dT = N[2] - cg[2],
							g4 = N[3] - cg[3],
							bB = cg[0] - D,
							d1 = cg[1] - q,
							f_ = cg[2] - R,
							g$ = cg[3] - J,
							eT = d8 * d8 + C * C + S * S + g7 * g7,
							dz = d8 * g_ + C * fw + S * dT + g7 * g4,
							i4 = bB * d8 + d1 * C + f_ * S + g$ * g7,
							fy = d8 * g_ + C * fw + S * dT + g7 * g4,
							cN = g_ * g_ + fw * fw + dT * dT + g4 * g4,
							fP = bB * g_ + d1 * fw + f_ * dT + g$ * g4,
							du = 1 / (dz * fy - eT * cN),
							a9 = (cN * i4 - fP * dz) * du,
							ea = (fP * eT - i4 * fy) * du,
							cF = 1 - a9 - ea,
							gB = Math.max(a9, ea, cF);
						if (gB == a9) W = c;
						else if (gB == ea) W = u;
						else W = bN
					}
				}
				U[w >> 2] = W.ind
			}
		return {
			zM: U,
			a2: t[1]
		}
	};
	H.Hr.DK = function (F, P, o) {
		var X = [],
			Y = {},
			y = P - 1,
			z = o - 1,
			s = 0,
			t = new Uint32Array(F),
			d = [-P - 1, -P, -P + 1, -1, 1, P - 1, P, P + 1, P + P, 2, -P - P, -2, P + P - 1, P + P + 1, P + 2, -P + 2, -P - P + 1, -P - P - 1, -P - 2, P - 2, P + P + 2, -P - P + 2 - P - P - 2, P + P - 2];
		for (var U = 1; U < z; U++)
			for (var v = 1; v < y; v++) {
				var A = U * P + v,
					Z = t[A],
					D = !0;
				for (var w = 0; w < 8; w++) D = D && t[A + d[w]] == Z;
				if (D) {
					s++;
					var q = Y[Z];
					if (q == null) {
						Y[Z] = X.length;
						X.push({
							p$: Z,
							g8: 1
						})
					} else X[q].g8++
				}
			}
		return {
			a2: X,
			adf: s
		}
	};
	H.Hr.AO = function (F, P, o, X, Y, y) {
		var z = UPNG.quantize.getNearest(F[0], P, o, X, Y);
		return H.Hr.a8F(z, P, o, X, Y) < y ? z : null
	};
	H.Hr.a8F = function (F, P, o, X, Y) {
		var y = F.est.q,
			z = P - y[0],
			s = o - y[1],
			t = X - y[2],
			d = Y - y[3];
		return z * z + s * s + t * t + d * d
	};
	H.Hr.a6o = function (F, P, o, X) {
		var Y = H.Hr.a3C(F, P, o, X),
			y = Y.zM,
			z = Y.a2,
			s = Y.akb,
			t = UPNG.quantize.getKDtree(new Uint8Array(s.buffer.slice(0)), 200),
			d = [];
		for (var w = 0; w < z.length; w++) {
			var U = z[w].Qw,
				v = U[0],
				A = U[1],
				Z = U[2],
				D = U[3];
			if (Math.min(v, A, Z, D) < 0) throw "e";
			var q = UPNG.quantize.getNearest(t[0], v / 255, A / 255, Z / 255, D / 255);
			d.push(t[1].indexOf(q))
		}
		for (var w = 0; w < P * o; w++) y[w] = d[y[w]];
		return {
			zM: y,
			a2: t[1]
		}
	};
	H.Hr.a3C = function (F, P, o, X) {
		var Y = P * o,
			y = 2 * Y,
			z = H.Hr.amG(F, P, o),
			s = 65535 + 1,
			t = new Uint32Array(s),
			U = 0;
		for (var w = 0; w < y; w++) t[z[w]]++;
		var d = new Uint32Array(s);
		for (var w = 0; w < s; w++) {
			d[w] = U;
			U += t[w]
		}
		var v = new Uint32Array(y);
		for (var w = 0; w < y; w++) {
			var A = z[w];
			v[d[A]] = w;
			d[A]++
		}
		var Z = new UnionFind(Y),
			D = new Uint16Array(Y),
			q = new Uint32Array(Y);
		for (var w = 0; w < Y; w++) q[w] = 1;
		var R = Y,
			J = 1e5 / (X * 10);
		for (var W = 0; W < y; W++) {
			var p = v[W],
				n = z[p];
			if (n == 65535) continue;
			var w = p >> 1,
				b = w + ((p & 1) == 0 ? 1 : P),
				Q = Z.find(w),
				_ = Z.find(b),
				L = Math.min(D[Q] + J / Math.sqrt(q[Q]), D[_] + J / Math.sqrt(q[_]));
			if (Q != _ && n <= L) {
				Z.link(w, b);
				R--;
				var m = Z.find(w);
				q[m] = q[Q] + q[_];
				D[m] = n
			}
		}
		var I = [],
			c = {},
			u = new Uint16Array(Y);
		for (var w = 0; w < Y; w++) {
			var m = Z.find(w),
				a = c[m];
			if (a == null) {
				c[m] = a = I.length;
				I.push({
					g8: 0,
					Qw: [0, 0, 0, 0]
				})
			}
			I[a].g8++;
			for (var b = 0; b < 4; b++) I[a].Qw[b] += F[(w << 2) + b];
			u[w] = a
		}
		var N = new Uint32Array(I.length);
		for (var w = 0; w < I.length; w++) {
			var a = I[w];
			for (var b = 0; b < 4; b++) a.Qw[b] = Math.round(a.Qw[b] / a.g8);
			N[w] = a.Qw[3] << 24 | a.Qw[2] << 16 | a.Qw[1] << 8 | a.Qw[0]
		}
		return {
			zM: u,
			a2: I,
			akb: N
		}
	};
	H.Hr.amG = function (F, P, o) {
		var X = new Uint16Array(P * o * 2);
		for (var Y = 0; Y < o; Y++)
			for (var y = 0; y < P; y++) {
				var w = Y * P + y;
				X[w + w] = y < P - 1 ? H.Hr.Lw(F, w, w + 1) : 65535;
				X[w + w + 1] = Y < o - 1 ? H.Hr.Lw(F, w, w + P) : 65535
			}
		return X
	};
	H.Hr.Lw = function (F, w, P) {
		var o = w << 2,
			X = P << 2,
			Y = F[o],
			y = F[o + 1],
			z = F[o + 2],
			s = F[o + 3],
			t = F[X],
			d = F[X + 1],
			U = F[X + 2],
			v = F[X + 3],
			A = Y - t,
			Z = y - d,
			D = z - U,
			q = s - v;
		return A * A + Z * Z + D * D + q * q >> 2
	};
	H.Hr.xH = function () {
		function F(J, W, p, n, b, Q) {
			var _ = [],
				L = Q,
				m = Q,
				I = Q >>> 2;
			for (var c = 0; c < b; c++)
				for (var u = 0; u < n; u++) {
					var a = ~~((u + .5) * L),
						N = ~~((c + .5) * m),
						V = 1e9,
						M = Math.max(0, a - I),
						O = Math.min(W, a + I + 1),
						K = Math.max(0, N - I),
						j = Math.min(p, N + I + 1);
					for (var $ = K; $ < j; $++)
						for (var x = M; x < O; x++) {
							var g = P(J, W, x, $);
							if (g < V) {
								a = x;
								N = $;
								V = g
							}
						}
					var T = (N * W + a) * 4;
					_.push(J[T], J[T + 1], J[T + 2], a, N)
				}
			return _
		}

		function P(J, W, p, n) {
			var b = (n * W + p) * 4,
				Q = W * 4,
				_ = o(J, b - 4, b) + o(J, b, b + 4),
				L = o(J, b - Q, b) + o(J, b, b + Q);
			return _ + L
		}

		function o(J, W, p) {
			var n = J[W] - J[p],
				b = J[W + 1] - J[p + 1],
				Q = J[W + 2] - J[p + 2];
			return n * n + b * b + Q * Q
		}
		var X = 0,
			Y = 0;

		function y(J, W, p, n) {
			Y++;
			if (n < X) X = n;
			J[n].push(W, p)
		}

		function z(J) {
			Y--;
			while (J[X].length == 0) X++
		}

		function s(J, W, p) {
			X = 0;
			Y = 0;
			var n = W * p,
				b = Math.round(Math.min(W, p) / 50),
				N = 0,
				V = 16;
			if (b == 0) b = 1;
			var Q = 30 / b,
				_ = Math.floor(W / b),
				L = Math.floor(p / b),
				m = _ * L;
			if (m > 65535) throw m;
			var I = new Uint16Array(n);
			for (var w = 0; w < n; w++) I[w] = 65535;
			var c = F(J, W, p, _, L, b),
				u = [];
			for (var w = 0; w < 1e3 + p; w++) u.push([]);
			var a = [0, 1, 0, -1, -1, 0, 1, 0],
				M = Math.min(L, 5),
				O = new Uint32Array(m * 6);
			for (var K = 0; K < L; K += M) {
				var j = Math.min(K + M + 1, L);
				for (var $ = K; $ < j; $++)
					for (var x = 0; x < _; x++) {
						var w = $ * _ + x,
							g = w * 5,
							T = c[g + 4] << 16 | c[g + 3];
						y(u, T, w, c[g + 4] >>> V)
					}
				var E = Math.min(p, j * b);
				if (K + M >= L) E = p;
				while (Y != 0) {
					z(u);
					var a9 = u[X].pop(),
						ez = u[X].pop(),
						bN = ez >>> 16,
						cg = ez & 65535,
						w = bN * W + cg;
					if (I[w] == 65535) {
						var d8 = a9 * 6,
							C = w << 2;
						I[w] = a9;
						O[d8] += J[C];
						O[d8 + 1] += J[C + 1];
						O[d8 + 2] += J[C + 2];
						O[d8 + 3] += cg;
						O[d8 + 4] += bN;
						O[d8 + 5]++;
						var S = bN >>> V;
						if (bN != E - 1 && I[w + W] == 65535) y(u, bN + 1 << 16 | cg, a9, t(J, W, Q, cg, bN + 1, O, d8) + S);
						if (bN != 0 && I[w - W] == 65535) y(u, bN - 1 << 16 | cg, a9, t(J, W, Q, cg, bN - 1, O, d8) + S);
						if (cg != 0 && I[w - 1] == 65535) y(u, bN << 16 | cg - 1, a9, t(J, W, Q, cg - 1, bN, O, d8) + S);
						if (cg != W - 1 && I[w + 1] == 65535) y(u, bN << 16 | cg + 1, a9, t(J, W, Q, cg + 1, bN, O, d8) + S)
					}
				}
				if (E != bN) {
					var g7 = (K + M) * _;
					O.fill(0, g7 * 6, (g7 + _) * 6);
					for (var bN = (K + M - 2) * b; bN < E; bN++)
						for (var cg = 0; cg < W; cg++) {
							var w = bN * W + cg;
							if (I[w] >= g7) {
								I[w] = 65535
							}
						}
				}
			}
			return {
				zM: I,
				zo: m,
				OR: O
			}
		}
		H.Hr.bY = function (J, W, p, n, b) {
			var Q = J.zo,
				_ = W * p,
				L = J.OR,
				m = J.zM,
				I = Z(n, m, Q, _),
				c = new UnionFind(Q),
				O = 0;
			for (var u = 1; u < p; u++)
				for (var a = 1; a < W; a++) {
					var w = u * W + a,
						N = m[w],
						V = 0;
					if ((V = m[w - 1]) != N && I[V] == I[N] && d(L, 0, N * 6, V * 6) < b) c.link(N, V);
					if ((V = m[w - W]) != N && I[V] == I[N] && d(L, 0, N * 6, V * 6) < b) c.link(N, V)
				}
			var M = new Uint16Array(Q);
			M.fill(65535);
			var K = new Uint16Array(Q);
			for (var w = 0; w < Q; w++) {
				var j = c.find(w);
				if (M[j] == 65535) M[j] = O++;
				K[w] = M[j]
			}
			var $ = new Uint16Array(_);
			for (var w = 0; w < _; w++) $[w] = K[m[w]];
			return {
				zM: $,
				zo: O
			}
		};
		H.Hr.tW = function (J, W, p, n) {
			var b = H.R(p),
				Q = W.length,
				_ = 0;
			for (var w = 0; w < Q && _ != 3; w++) {
				var L = n[w];
				if (L == 0 || L == 255) {
					var m = W[w],
						I = 2 - (L >>> 7);
					b[m] = _ = b[m] | I
				}
			}
			return _ != 3
		};

		function t(J, W, p, n, b, Q, _) {
			var L = (b * W + n) * 4,
				m = Q[_ + 5],
				I = 1 / m,
				c = J[L] * m - Q[_],
				u = J[L + 1] * m - Q[_ + 1],
				a = J[L + 2] * m - Q[_ + 2],
				N = n * m - Q[_ + 3],
				V = b * m - Q[_ + 4],
				M = Math.sqrt(c * c + u * u + a * a),
				O = Math.sqrt(N * N + V * V);
			return ~~((M + p * O) * I + .5)
		}

		function d(J, W, p, n) {
			var b = 1 / J[p + 5],
				Q = 1 / J[n + 5],
				_ = J[p] * b - J[n] * Q,
				L = J[p + 1] * b - J[n + 1] * Q,
				m = J[p + 2] * b - J[n + 2] * Q,
				I = J[p + 3] * b - J[n + 3] * Q,
				c = J[p + 4] * b - J[n + 4] * Q,
				u = Math.sqrt(_ * _ + L * L + m * m),
				a = Math.sqrt(I * I + c * c);
			return ~~(u + W * a + .5)
		}

		function U(J, W, p) {
			var n = H.p0(J, new ev(0, 0, W, p)),
				b = n.rect.Z,
				Q = n.rect.h,
				_ = s(n.Ww, b, Q),
				L = _.zM,
				m = Date.now(),
				I = new Uint16Array(W * p);
			I.fill(65535);
			for (var c = 0; c < Q; c++) {
				for (var u = 0; u < b; u++) {
					var a = c * b + u,
						w = (c << 1) * W + (u << 1),
						N = L[a];
					if (L[a - b] != N || L[a - 1] != N || L[a + 1] != N || L[a + b] != N) N = 65535;
					I[w] = N;
					I[w + 1] = N;
					I[w + W] = N;
					I[w + W + 1] = N
				}
			}
			_.zM = I;
			return _
		}

		function v(J, W) {
			var w = 0,
				p = J.length;
			while (w != p && J[w] != W) w += 2;
			return w == p ? -1 : w
		}

		function A(J, w) {
			if (w == J.length - 2) {
				J.pop();
				J.pop()
			} else {
				J[w + 1] = J.pop();
				J[w] = J.pop()
			}
		}
		H.Hr.a1o = function (J, W, p, n, b) {
			var Q = new Uint32Array(b * 4400),
				P = [];
			for (var w = 0; w < b; w++) P.push([]);
			for (var _ = 0; _ < p; _++)
				for (var L = 0; L < W; L++) {
					var w = _ * W + L,
						m = w << 2,
						I = n[w],
						c = 0,
						u = J[m] >>> 4,
						a = J[m + 1] >>> 4,
						N = J[m + 2] >>> 4;
					Q[I * 4400 + (u << 8 | a << 4 | N)]++;
					Q[I * 4400 + 4096]++;
					Q[I * 4400 + 4100 + (u << 4 | a)]++;
					Q[I * 4400 + 4360 + u]++;
					if (L != 0 && (c = n[w - 1]) != I && v(P[I], c) == -1) {
						P[I].push(c, 0);
						P[c].push(I, 0)
					}
					if (_ != 0 && (c = n[w - W]) != I && v(P[I], c) == -1) {
						P[I].push(c, 0);
						P[c].push(I, 0)
					}
				}
			for (var w = 0; w < b; w++) {
				var N = P[w];
				for (var V = 0; V < N.length; V += 2) N[V + 1] = R(Q, w, N[V])
			}
			return [Q, P]
		};

		function Z(J, W, p, n) {
			var b = H.R(p);
			for (var w = 0; w < n; w++) {
				var Q = J[w];
				if (Q == 0 || Q == 255) b[W[w]] = 2 - (Q >>> 7)
			}
			return b
		}
		H.Hr.a7$ = function (J, W, p, n, b, Q, _) {
			var L = W * p,
				m = _[0],
				P = _[1],
				I = new UnionFind(n),
				c = Z(b, J, n, L),
				u = -1,
				a = !0,
				N = 0;
			for (var w = 0; w < n; w++)
				if (c[w] == 1) {
					if (u == -1) u = w;
					else I.link(w, u)
				} if (u == -1) {
				for (var w = 0; w < L; w++) Q[w] = b[w] == 255 ? 255 : 0;
				return
			}
			while (a) {
				while (a) {
					a = !1;
					for (var w = 0; w < n; w++) {
						if (c[w] == 0) {
							var V = D(P[w]);
							if (c[V] == 1) {
								c[w] = c[V];
								a = !0;
								I.link(w, V)
							}
						}
					}
				}
				a = !0;
				N = 0;
				while (a) {
					a = !1;
					for (var w = 0; w < n; w++) {
						if (c[w] == 0) {
							var V = D(P[w]);
							if (c[V] == 0) {
								var M = w * 4400,
									O = V * 4400;
								for (var K = 0; K < 4400; K += 2) {
									m[M + K] += m[O + K];
									m[M + K + 1] += m[O + K + 1]
								}
								q(P, m, w, V);
								N++;
								c[V] = 3;
								a = !0;
								I.link(w, V)
							}
						}
					}
				}
				a = N != 0
			}
			var j = I.find(u);
			for (var w = 0; w < n; w++) c[w] = I.find(w) == j ? 255 : 0;
			for (var w = 0; w < L; w++) {
				Q[w] = c[J[w]]
			}
			for (var w = 0; w < L; w++) {
				var V = b[w];
				if (V == 0 || V == 255) Q[w] = V
			}
		};

		function D(J) {
			var W = 0,
				p = 0,
				n = J.length;
			for (var b = 0; b < n; b += 2) {
				var Q = J[b + 1];
				if (Q > p) {
					p = Q;
					W = b
				}
			}
			return J[W]
		}

		function q(P, J, W, p) {
			var n = P[W],
				b = P[p];
			A(n, v(n, p));
			A(b, v(b, W));
			for (var w = 0; w < b.length; w += 2) {
				var Q = b[w],
					_ = P[Q];
				A(_, v(_, p));
				if (v(_, W) == -1) {
					_.push(W, 0);
					n.push(Q, 0)
				}
			}
			for (var w = 0; w < n.length; w += 2) {
				var Q = n[w],
					_ = P[Q],
					L = R(J, W, Q);
				n[w + 1] = L;
				_[v(_, W) + 1] = L
			}
		}

		function R(J, W, p) {
			var n = 0,
				b = 4096,
				Q = W * 4400,
				_ = p * 4400;
			for (var L = 0; L < 16; L++) {
				if (J[Q + 4360 + L] == 0 || J[_ + 4360 + L] == 0) continue;
				for (var m = 0; m < 16; m++) {
					var I = L << 4 | m;
					if (J[Q + 4100 + I] == 0 || J[_ + 4100 + I] == 0) continue;
					var c = Q + (I << 4),
						u = _ + (I << 4);
					for (var w = 0; w < 16; w++) n += Math.sqrt(J[c + w] * J[u + w])
				}
			}
			var a = n / Math.sqrt(J[Q + b] * J[_ + b]);
			return ~~(999.99999 * a)
		}
		return s
	}();
	var hY = function () {
		function F() {
			this.M = 0;
			this.lv = 0;
			this.e2 = {};
			this.Oi = [];
			this.b5 = 1e5;
			this.HY = 1e5;
			this.WJ = -1;
			this.hu = -1;
			this.color = 0
		}

		function P(e) {
			this.Dy = e;
			this.k9 = new Array(e);
			this.p$ = new Array(e * 6);
			this.agI = 0;
			this.Hi = new Array(e * 2);
			this.alpha = new Array(e);
			this.JC = new Array(e);
			this.YH = new Array(e)
		}

		function o(Y, y, z, s) {
			function t(R, J, Y, y) {
				return Y[y * J + R]
			}

			function d(w) {
				var _ = Y.length;
				while (w < _ && Y[w] == 0) w++;
				return w < _ ? w : -1
			}

			function U(R, J, _) {
				for (var w = 2; w < 5; w++) {
					var L = 0;
					for (var m = -w + 1; m <= w - 1; m++) {
						L += t(R + m, J + w - 1, Y, y) == _ ? 1 : -1;
						L += t(R + w - 1, J + m - 1, Y, y) == _ ? 1 : -1;
						L += t(R + m - 1, J - w, Y, y) == _ ? 1 : -1;
						L += t(R - w, J + m, Y, y) == _ ? 1 : -1
					}
					if (L > 0) return 1;
					else if (L < 0) return 0
				}
				return 0
			}

			function v(_, D) {
				var q = new F,
					R = _,
					J = D,
					L = 0,
					m = 1,
					I;
				q.color = Y[D * y + _];
				q.sign = t(_, D, Y, y) == q.color ? "+" : "-";
				while (1) {
					q.Oi.push(R, J);
					if (R > q.WJ) q.WJ = R;
					if (R < q.b5) q.b5 = R;
					if (J > q.hu) q.hu = J;
					if (J < q.HY) q.HY = J;
					q.lv++;
					R += L;
					J += m;
					q.M -= R * m;
					if (R == _ && J == D) break;
					var c = t(R + (L + m - 1 >> 1), J + (m - L - 1 >> 1), Y, y) == q.color,
						u = t(R + (L - m - 1 >> 1), J + (m + L - 1 >> 1), Y, y) == q.color;
					if (u && !c) {
						if (s.Jw == "right" || s.Jw == "black" && q.sign == "+" || s.Jw == "white" && q.sign == "-" || s.Jw == "majority" && U(R, J, q.color) || s.Jw == "minority" && !U(R, J, q.color)) {
							I = L;
							L = -m;
							m = I
						} else {
							I = L;
							L = m;
							m = -I
						}
					} else if (u) {
						I = L;
						L = -m;
						m = I
					} else if (!c) {
						I = L;
						L = m;
						m = -I
					}
				}
				return q
			}
			var A = 0,
				Z = [];
			while (!0) {
				var A = d(A);
				if (A == -1) break;
				var D = Math.floor(A / y),
					q = v(A - D * y, D);
				for (var w = 0; w < q.Oi.length - 2; w += 2) {
					var R = q.Oi[w],
						J = q.Oi[w + 1],
						W = J * y + R;
					if (R == q.Oi[w + 2] && J + 1 == q.Oi[w + 3] && Y[W] != 0) hY.fill(W, Y, y, 0)
				}
				if (q.M > s.a8I) Z.push(q)
			}
			for (var w = 0; w < Z.length; w++) Z[w].parent = -1;
			var p = Date.now();
			for (var w = 1; w < Z.length; w++) {
				var n = Z[w];
				for (var b = w - 1; b >= 0; b--) {
					var Q = Z[b];
					if (n.b5 < Q.b5 || n.WJ > Q.WJ || n.HY < Q.HY || n.hu > Q.hu) continue;
					if (!hY.a9t(Q.Oi, n.Oi[0] + .5, n.Oi[1] + .5)) continue;
					n.parent = b;
					break
				}
			}
			return Z
		}

		function X(Y, y) {
			function z(L, m, I, c, u) {
				this.x = L;
				this.y = m;
				this.VT = I;
				this.KF = c;
				this.y$ = u
			}

			function s(L, e) {
				return (e + L) % e
			}

			function t(L, m, I, c) {
				return L * c - I * m
			}

			function d(L, m, I, c) {
				return L * I + m * c
			}

			function U(L, m, I) {
				if (L <= I) return L <= m && m < I;
				else return L <= m || m < I
			}

			function v(L, m, I) {
				var c = 0;
				c += m * L[0] * m;
				c += m * L[1] * I;
				c += m * L[2];
				c += I * L[3] * m;
				c += I * L[4] * I;
				c += I * L[5];
				c += L[6] * m;
				c += L[7] * I;
				c += L[8];
				return c
			}

			function A(L, m, I) {
				return m + L * (I - m)
			}

			function Z(L, m, I, c) {
				var u = Math.sign(I - L),
					a = -Math.sign(c - m);
				return u * (I - L) - a * (c - m)
			}

			function D(L, m) {
				return Math.sqrt(L * L + m * m)
			}

			function q(L, m, I, c, u) {
				var a = 1 - L;
				return a * a * a * m + 3 * (a * a * L) * I + 3 * (L * L * a) * c + L * L * L * u
			}

			function R(L, m, I, c, u, a, N, V) {
				var M = t(L, m, N, V),
					O = t(I, c, N, V),
					K = t(u, a, N, V),
					j = M - 2 * O + K,
					$ = -2 * M + 2 * O,
					x = M,
					g = $ * $ - 4 * j * x;
				if (j == 0 || g < 0) return -1;
				var T = Math.sqrt(g),
					E = (-$ + T) / (2 * j),
					a9 = (-$ - T) / (2 * j);
				if (E >= 0 && E <= 1) return E;
				else if (a9 >= 0 && a9 <= 1) return a9;
				else return -1
			}

			function J(_) {
				var w, L, m;
				_.sw = _.Oi[0];
				_.b8 = _.Oi[1];
				_.Ho = [];
				var I = _.Ho;
				I.push(new z(0, 0, 0, 0, 0));
				for (w = 0; w < _.lv; w++) {
					L = _.Oi[w << 1] - _.sw;
					m = _.Oi[(w << 1) + 1] - _.b8;
					I.push(new z(I[w].x + L, I[w].y + m, I[w].VT + L * m, I[w].KF + L * L, I[w].y$ + m * m))
				}
			}

			function W(_) {
				var e = _.lv,
					L = _.Oi,
					m, I = new Array(e),
					c = new Array(e),
					u = new Array(4),
					a, N, V, M, O, K, j, $, x, g, T, w, E, a9, ez, bN, cg, d8, C = 0;
				_.sF = new Array(e);
				for (w = e - 1; w >= 0; w--) {
					if (L[w << 1] != L[C << 1] && L[(w << 1) + 1] != L[(C << 1) + 1]) C = w + 1;
					c[w] = C
				}
				for (w = e - 1; w >= 0; w--) {
					var S = s(w + 1, e) << 1;
					u[0] = u[1] = u[2] = u[3] = 0;
					m = (3 + 3 * (L[S] - L[w << 1]) + (L[S + 1] - L[(w << 1) + 1])) / 2;
					u[m]++;
					a = 0;
					N = 0;
					V = 0;
					M = 0;
					C = c[w];
					a9 = w;
					while (1) {
						T = 0;
						m = (3 + 3 * Math.sign(L[C * 2] - L[a9 * 2]) + Math.sign(L[C * 2 + 1] - L[a9 * 2 + 1])) / 2;
						u[m]++;
						if (u[0] && u[1] && u[2] && u[3]) {
							I[w] = a9;
							T = 1;
							break
						}
						x = L[C * 2] - L[w * 2];
						g = L[C * 2 + 1] - L[w * 2 + 1];
						if (t(a, N, x, g) < 0 || t(V, M, x, g) > 0) {
							break
						}
						if (Math.abs(x) <= 1 && Math.abs(g) <= 1) {} else {
							O = x + (g >= 0 && (g > 0 || x < 0) ? 1 : -1);
							K = g + (x <= 0 && (x < 0 || g < 0) ? 1 : -1);
							if (t(a, N, O, K) >= 0) {
								a = O;
								N = K
							}
							O = x + (g <= 0 && (g < 0 || x < 0) ? 1 : -1);
							K = g + (x >= 0 && (x > 0 || g < 0) ? 1 : -1);
							if (t(V, M, O, K) <= 0) {
								V = O;
								M = K
							}
						}
						a9 = C;
						C = c[a9];
						if (!U(C, w, a9)) {
							break
						}
					}
					if (T == 0) {
						j = Math.sign(L[C * 2] - L[a9 * 2]);
						$ = Math.sign(L[C * 2 + 1] - L[a9 * 2 + 1]);
						x = L[a9 * 2] - L[w * 2];
						g = L[a9 * 2 + 1] - L[w * 2 + 1];
						ez = t(a, N, x, g);
						bN = t(a, N, j, $);
						cg = t(V, M, x, g);
						d8 = t(V, M, j, $);
						E = 1e7;
						if (bN < 0) {
							E = Math.floor(ez / -bN)
						}
						if (d8 > 0) {
							E = Math.min(E, Math.floor(-cg / d8))
						}
						I[w] = s(a9 + E, e)
					}
				}
				E = I[e - 1];
				_.sF[e - 1] = E;
				for (w = e - 2; w >= 0; w--) {
					if (U(w + 1, I[w], E)) {
						E = I[w]
					}
					_.sF[w] = E
				}
				for (w = e - 1; U(s(w + 1, e), E, _.sF[w]); w--) {
					_.sF[w] = E
				}
			}

			function p(_) {
				function L(_, w, m) {
					var e = _.lv,
						x = _.Oi,
						g = _.Ho,
						T, E, a9, ez, bN, c, cg, d8, $, C, S, g7, g_, fw, dT = 0;
					if (m >= e) {
						m -= e;
						dT = 1
					}
					if (dT == 0) {
						T = g[m + 1].x - g[w].x;
						E = g[m + 1].y - g[w].y;
						ez = g[m + 1].KF - g[w].KF;
						a9 = g[m + 1].VT - g[w].VT;
						bN = g[m + 1].y$ - g[w].y$;
						c = m + 1 - w
					} else {
						T = g[m + 1].x - g[w].x + g[e].x;
						E = g[m + 1].y - g[w].y + g[e].y;
						ez = g[m + 1].KF - g[w].KF + g[e].KF;
						a9 = g[m + 1].VT - g[w].VT + g[e].VT;
						bN = g[m + 1].y$ - g[w].y$ + g[e].y$;
						c = m + 1 - w + e
					}
					S = (x[w << 1] + x[m << 1]) / 2 - x[0];
					g7 = (x[(w << 1) + 1] + x[(m << 1) + 1]) / 2 - x[1];
					fw = x[m << 1] - x[w << 1];
					g_ = -(x[(m << 1) + 1] - x[(w << 1) + 1]);
					cg = (ez - 2 * T * S) / c + S * S;
					d8 = (a9 - T * g7 - E * S) / c + S * g7;
					$ = (bN - 2 * E * g7) / c + g7 * g7;
					C = g_ * g_ * cg + 2 * g_ * fw * d8 + fw * fw * $;
					return Math.sqrt(C)
				}
				var w, m, I, c, e = _.lv,
					u = new Array(e + 1),
					a = new Array(e + 1),
					N = new Array(e),
					V = new Array(e + 1),
					M = new Array(e + 1),
					O = new Array(e + 1),
					K, j, $;
				for (w = 0; w < e; w++) {
					$ = s(_.sF[s(w - 1, e)] - 1, e);
					if ($ == w) {
						$ = s(w + 1, e)
					}
					if ($ < w) {
						N[w] = e
					} else {
						N[w] = $
					}
				}
				m = 1;
				for (w = 0; w < e; w++) {
					while (m <= N[w]) {
						V[m] = w;
						m++
					}
				}
				w = 0;
				for (m = 0; w < e; m++) {
					M[m] = w;
					w = N[w]
				}
				M[m] = e;
				I = m;
				w = e;
				for (m = I; m > 0; m--) {
					O[m] = w;
					w = V[w]
				}
				O[0] = 0;
				u[0] = 0;
				for (m = 1; m <= I; m++) {
					for (w = O[m]; w <= M[m]; w++) {
						j = -1;
						for (c = M[m - 1]; c >= V[w]; c--) {
							K = L(_, c, w) + u[c];
							if (j < 0 || K < j) {
								a[w] = c;
								j = K
							}
						}
						u[w] = j
					}
				}
				_.qm = I;
				_.ph = new Array(I);
				for (w = e, m = I - 1; w > 0; m--) {
					w = a[w];
					_.ph[m] = w
				}
			}

			function n(_) {
				function L(_, w, K, N, V, g4) {
					var e = _.lv,
						bB = _.Ho,
						d1 = 0,
						$;
					while (K >= e) {
						K -= e;
						d1 += 1
					}
					while (w >= e) {
						w -= e;
						d1 -= 1
					}
					while (K < 0) {
						K += e;
						d1 -= 1
					}
					while (w < 0) {
						w += e;
						d1 += 1
					}
					var f_ = bB[K + 1].x - bB[w].x + d1 * bB[e].x,
						g$ = bB[K + 1].y - bB[w].y + d1 * bB[e].y,
						eT = bB[K + 1].KF - bB[w].KF + d1 * bB[e].KF,
						dz = bB[K + 1].VT - bB[w].VT + d1 * bB[e].VT,
						i4 = bB[K + 1].y$ - bB[w].y$ + d1 * bB[e].y$,
						j = K + 1 - w + d1 * e;
					N[g4] = f_ / j;
					N[g4 + 1] = g$ / j;
					var fy = (eT - f_ * f_ / j) / j,
						cN = (dz - f_ * g$ / j) / j,
						fP = (i4 - g$ * g$ / j) / j,
						du = (fy + fP + Math.sqrt((fy - fP) * (fy - fP) + 4 * cN * cN)) / 2;
					fy -= du;
					fP -= du;
					if (Math.abs(fy) >= Math.abs(fP)) {
						$ = Math.sqrt(fy * fy + cN * cN);
						if ($ != 0) {
							V[g4] = -cN / $;
							V[g4 + 1] = fy / $
						}
					} else {
						$ = Math.sqrt(fP * fP + cN * cN);
						if ($ != 0) {
							V[g4] = -fP / $;
							V[g4 + 1] = cN / $
						}
					}
					if ($ == 0) {
						V[g4] = V[g4 + 1] = 0
					}
				}
				var m = _.qm,
					I = _.ph,
					e = _.lv,
					c = _.Oi,
					u = _.sw,
					a = _.b8,
					N = new Array(m * 2),
					V = new Array(m * 2),
					M = new Array(m),
					O = new Array(3),
					w, K, j, $, E, a9, ez, bN, cg, d8, C;
				_.e2 = new P(m);
				for (w = 0; w < m; w++) {
					K = I[s(w + 1, m)];
					K = s(K - I[w], e) + I[w];
					N[w << 1] = 0;
					N[(w << 1) + 1] = 0;
					V[w << 1] = 0;
					V[(w << 1) + 1] = 0;
					L(_, I[w], K, N, V, w << 1)
				}
				for (w = 0; w < m; w++) {
					M[w] = [0, 0, 0, 0, 0, 0, 0, 0, 0];
					var x = V[w << 1] * V[w << 1] + V[(w << 1) + 1] * V[(w << 1) + 1],
						g = 1 / x;
					if (x != 0) {
						O[0] = V[(w << 1) + 1];
						O[1] = -V[w << 1];
						O[2] = -O[1] * N[(w << 1) + 1] - O[0] * N[w << 1];
						for ($ = 0; $ < 3; $++) {
							M[w][$ * 3 + 0] = O[$] * O[0] * g;
							M[w][$ * 3 + 1] = O[$] * O[1] * g;
							M[w][$ * 3 + 2] = O[$] * O[2] * g
						}
					}
				}
				var T = [0, 0, 0, 0, 0, 0, 0, 0, 0];
				for (w = 0; w < m; w++) {
					T[0] = T[1] = T[2] = T[3] = T[4] = T[5] = T[6] = T[7] = T[8] = T[9] = 0;
					var S = c[I[w] << 1] - u,
						g7 = c[(I[w] << 1) + 1] - a,
						g_ = 0,
						fw = 0;
					K = s(w - 1, m);
					for ($ = 0; $ < 9; $ += 3) {
						T[$ + 0] = M[K][$ + 0] + M[w][$ + 0];
						T[$ + 1] = M[K][$ + 1] + M[w][$ + 1];
						T[$ + 2] = M[K][$ + 2] + M[w][$ + 2]
					}
					while (1) {
						var dT = T[0] * T[4] - T[1] * T[3];
						if (dT != 0) {
							g_ = (-T[2] * T[4] + T[5] * T[0]) / dT;
							fw = (T[2] * T[3] - T[5] * T[0]) / dT;
							break
						}
						if (T[0] > T[4]) {
							O[0] = -T[1];
							O[1] = T[0]
						} else if (T[4]) {
							O[0] = -T[4];
							O[1] = T[3]
						} else {
							O[0] = 1;
							O[1] = 0
						}
						var x = O[0] * O[0] + O[1] * O[1],
							g = 1 / x;
						O[2] = -O[1] * g7 - O[0] * S;
						for ($ = 0; $ < 3; $++) {
							T[$ * 3 + 0] += O[$] * O[0] * g;
							T[$ * 3 + 1] += O[$] * O[1] * g;
							T[$ * 3 + 2] += O[$] * O[2] * g
						}
					}
					E = Math.abs(g_ - S);
					a9 = Math.abs(fw - g7);
					if (E <= .5 && a9 <= .5) {
						_.e2.Hi[w << 1] = g_ + u;
						_.e2.Hi[(w << 1) + 1] = fw + a;
						continue
					}
					ez = v(T, S, g7);
					cg = S;
					d8 = g7;
					if (T[0] != 0) {
						for (C = 0; C < 2; C++) {
							fw = g7 - .5 + C;
							g_ = -(T[1] * fw + T[2]) / T[0];
							E = Math.abs(g_ - S);
							bN = v(T, g_, fw);
							if (E <= .5 && bN < ez) {
								ez = bN;
								cg = g_;
								d8 = fw
							}
						}
					}
					if (T[4] != 0) {
						for (C = 0; C < 2; C++) {
							g_ = S - .5 + C;
							fw = -(T[3] * g_ + T[5]) / T[4];
							a9 = Math.abs(fw - g7);
							bN = v(T, g_, fw);
							if (a9 <= .5 && bN < ez) {
								ez = bN;
								cg = g_;
								d8 = fw
							}
						}
					}
					for ($ = 0; $ < 2; $++) {
						for (j = 0; j < 2; j++) {
							g_ = S - .5 + $;
							fw = g7 - .5 + j;
							bN = v(T, g_, fw);
							if (bN < ez) {
								ez = bN;
								cg = g_;
								d8 = fw
							}
						}
					}
					_.e2.Hi[w << 1] = cg + u;
					_.e2.Hi[(w << 1) + 1] = d8 + a
				}
			}

			function b(_) {
				var L = _.e2.Dy,
					m = _.e2,
					w, I, c, u, a, N, V, M, O;
				for (w = 0; w < L; w++) {
					I = s(w + 1, L);
					c = s(w + 2, L);
					var K = m.Hi[w << 1],
						j = m.Hi[(w << 1) + 1],
						$ = m.Hi[c << 1],
						x = m.Hi[(c << 1) + 1],
						g = m.Hi[I << 1],
						T = m.Hi[(I << 1) + 1],
						E = A(.5, $, g),
						a9 = A(.5, x, T);
					a = Z(K, j, $, x);
					if (a != 0) {
						u = t(g - K, T - j, $ - K, x - j) / a;
						u = Math.abs(u);
						N = u > 1 ? 1 - 1 / u : 0;
						N = N * (1 / .75)
					} else {
						N = 4 / 3
					}
					m.JC[I] = N;
					var ez = 3 * I << 1;
					if (N >= y.a4f) {
						m.k9[I] = 0;
						m.p$[ez + 0] = m.p$[ez + 1] = 0;
						m.p$[ez + 2] = g;
						m.p$[ez + 3] = T;
						m.p$[ez + 4] = E;
						m.p$[ez + 5] = a9
					} else {
						if (N < .55) {
							N = .55
						} else if (N > 1) {
							N = 1
						}
						var bN = .5 + .5 * N;
						m.k9[I] = 1;
						m.p$[ez] = A(bN, K, g);
						m.p$[ez + 1] = A(bN, j, T);
						m.p$[ez + 2] = A(bN, $, g);
						m.p$[ez + 3] = A(bN, x, T);
						m.p$[ez + 4] = E;
						m.p$[ez + 5] = a9
					}
					m.alpha[I] = N;
					m.YH[I] = .5
				}
				m.a1E = 1
			}

			function Q(_) {
				function L() {
					this.yw = 0;
					this.ZY = 0;
					this.ZE = 0;
					this.fI = 0;
					this.Jq = 0;
					this.wV = 0;
					this.Pg = 0;
					this.alpha = 0
				}

				function m(_, w, K, cF, gB, cg, d8) {
					var c = _.e2.Dy,
						bp = _.e2.p$,
						hf = _.e2.Hi;
					if (w == K) return 1;
					var bq = w,
						g = s(w + 1, c),
						eY = s(bq + 1, c),
						dz = hf[w << 1],
						i4 = hf[(w << 1) + 1],
						f1 = hf[g << 1],
						dh = hf[(g << 1) + 1],
						hn = cg[eY];
					if (hn == 0) return 1;
					var e7 = D(dz - f1, i4 - dh);
					for (bq = eY; bq != K; bq = eY) {
						var eY = s(bq + 1, c),
							ed = s(bq + 2, c),
							hP = hf[eY << 1],
							ck = hf[(eY << 1) + 1],
							ds = hf[ed << 1],
							hB = hf[(ed << 1) + 1];
						if (cg[eY] != hn) return 1;
						if (Math.sign(t(f1 - dz, dh - i4, ds - hP, hB - ck)) != hn) return 1;
						if (d(f1 - dz, dh - i4, ds - hP, hB - ck) < e7 * D(hP - ds, ck - hB) * -.999847695156) return 1
					}
					var bd = s(w, c) * 3 + 2 << 1,
						d0 = s(w + 1, c) << 1,
						d$ = s(K, c) << 1,
						ap = s(K, c) * 3 + 2 << 1,
						g4 = bp[bd],
						bB = bp[bd + 1],
						dE = hf[d0],
						fv = hf[d0 + 1],
						c8 = hf[d$],
						bT = hf[d$ + 1],
						bi = bp[ap],
						i7 = bp[ap + 1],
						C = hf[0],
						S = hf[1];
					bd = K * 3 + 2 << 1;
					var ec = bp[bd],
						eg = bp[bd + 1],
						T = d8[K] - d8[w];
					T -= t(ec - C, eg - S, ec - C, eg - S) / 2;
					if (w >= K) {
						T += d8[c]
					}
					var hZ = dE - g4,
						fu = fv - bB,
						bg = c8 - g4,
						co = bT - bB,
						ga = bi - g4,
						e5 = i7 - bB,
						fM = t(hZ, fu, bg, co),
						bb = t(hZ, fu, ga, e5),
						hp = t(bg, co, ga, e5),
						fT = fM + hp - bb;
					if (bb == fM) return 1;
					var bN = hp / (hp - fT),
						ez = bb / (bb - fM),
						aE = bb * bN / 2;
					if (aE == 0) return 1;
					var cs = T / aE,
						E = 2 - Math.sqrt(4 - cs / .3);
					cF.ZY = A(bN * E, g4, dE);
					cF.ZE = A(bN * E, bB, fv);
					cF.fI = A(ez * E, bi, c8);
					cF.Jq = A(ez * E, i7, bT);
					cF.alpha = E;
					cF.wV = bN;
					cF.Pg = ez;
					dE = cF.ZY;
					fv = cF.ZE;
					c8 = cF.fI;
					bT = cF.Jq;
					cF.yw = 0;
					for (bq = s(w + 1, c); bq != K; bq = eY) {
						eY = s(bq + 1, c);
						var hL = hf[bq << 1],
							fR = hf[(bq << 1) + 1],
							hP = hf[eY << 1],
							ck = hf[(eY << 1) + 1];
						bN = R(dE - g4, fv - bB, c8 - dE, bT - fv, bi - c8, i7 - bT, hP - hL, ck - fR);
						if (bN < -.5) return 1;
						var cd = q(bN, g4, dE, c8, bi),
							ih = q(bN, bB, fv, bT, i7),
							e7 = D(hP - hL, ck - fR);
						if (e7 == 0) return 1;
						var aV = t(hP - hL, ck - fR, cd - hL, ih - fR) / e7;
						if (Math.abs(aV) > gB) return 1;
						if (d(hP - hL, ck - fR, cd - hL, ih - fR) < 0 || d(hL - hP, fR - ck, cd - hP, ih - ck) < 0) {
							return 1
						}
						cF.yw += aV * aV
					}
					for (bq = w; bq != K; bq = eY) {
						eY = s(bq + 1, c);
						var bd = bq * 3 + 2 << 1,
							d0 = eY * 3 + 2 << 1,
							dw = bp[bd],
							cM = bp[bd + 1],
							bZ = bp[d0],
							ht = bp[d0 + 1];
						bN = R(dE - g4, fv - bB, c8 - dE, bT - fv, bi - c8, i7 - bT, bZ - dw, ht - cM);
						if (bN < -.5) return 1;
						var cd = q(bN, g4, dE, c8, bi),
							ih = q(bN, bB, fv, bT, i7),
							e7 = D(bZ - dw, ht - cM);
						if (e7 == 0) return 1;
						var aV = t(bZ - dw, ht - cM, cd - dw, ih - cM) / e7,
							fZ = t(bZ - dw, ht - cM, hf[eY << 1] - dw, hf[(eY << 1) + 1] - cM) / e7;
						fZ *= .75 * _.e2.alpha[eY];
						if (fZ < 0) {
							aV = -aV;
							fZ = -fZ
						}
						if (aV < fZ - gB) return 1;
						if (aV < fZ) {
							cF.yw += (aV - fZ) * (aV - fZ)
						}
					}
					return 0
				}
				var I = _.e2,
					c = I.Dy,
					u = I.Hi,
					a = new Array(c + 1),
					N = new Array(c + 1),
					V = new Array(c + 1),
					M = new Array(c + 1),
					O, w, K, j, $ = new L,
					x, g, T, E, a9, ez, bN, cg = new Array(c),
					d8 = new Array(c + 1);
				for (w = 0; w < c; w++) {
					if (I.k9[w] == "CURVE") {
						var C = u[s(w - 1, c) << 1],
							S = u[(s(w - 1, c) << 1) + 1],
							g7 = u[w << 1],
							g_ = u[(w << 1) + 1],
							fw = u[s(w + 1, c) << 1],
							dT = u[(s(w + 1, c) << 1) + 1];
						cg[w] = Math.sign(t(g7 - C, g_ - S, fw - g7, dT - g_))
					} else {
						cg[w] = 0
					}
				}
				T = 0;
				d8[0] = 0;
				var g4 = I.Hi[0],
					bB = I.Hi[1];
				for (w = 0; w < c; w++) {
					g = s(w + 1, c);
					if (I.k9[g] == "CURVE") {
						E = I.alpha[g];
						var d1 = w * 3 + 2 << 1,
							f_ = g * 3 + 2 << 1,
							g$ = I.p$[d1],
							eT = I.p$[d1 + 1],
							dz = u[g << 1],
							i4 = u[(g << 1) + 1],
							fy = I.p$[f_],
							cN = I.p$[f_ + 1];
						T += .3 * E * (4 - E) * t(dz - g$, i4 - eT, fy - g$, cN - eT) / 2;
						T += t(g$ - g4, eT - bB, fy - g4, cN - bB) / 2
					}
					d8[w + 1] = T
				}
				a[0] = -1;
				N[0] = 0;
				V[0] = 0;
				for (K = 1; K <= c; K++) {
					a[K] = K - 1;
					N[K] = N[K - 1];
					V[K] = V[K - 1] + 1;
					for (w = K - 2; w >= 0; w--) {
						j = m(_, w, s(K, c), $, y.aif, cg, d8);
						if (j) {
							break
						}
						if (V[K] > V[w] + 1 || V[K] == V[w] + 1 && N[K] > N[w] + $.yw) {
							a[K] = w;
							N[K] = N[w] + $.yw;
							V[K] = V[w] + 1;
							M[K] = $;
							$ = new L
						}
					}
				}
				O = V[c];
				a9 = new P(O);
				ez = new Array(O);
				bN = new Array(O);
				K = c;
				for (w = O - 1; w >= 0; w--) {
					var fP = s(K, c),
						du = w * 3 + 0 << 1,
						ea = fP * 3 + 0 << 1;
					if (a[K] == K - 1) {
						a9.k9[w] = I.k9[fP];
						a9.p$[du] = I.p$[ea];
						a9.p$[du + 1] = I.p$[ea + 1];
						a9.p$[du + 2] = I.p$[ea + 2];
						a9.p$[du + 3] = I.p$[ea + 3];
						a9.p$[du + 4] = I.p$[ea + 4];
						a9.p$[du + 5] = I.p$[ea + 5];
						a9.Hi[w << 1] = I.Hi[fP << 1];
						a9.Hi[(w << 1) + 1] = I.Hi[(fP << 1) + 1];
						a9.alpha[w] = I.alpha[fP];
						a9.JC[w] = I.JC[fP];
						a9.YH[w] = I.YH[fP];
						ez[w] = bN[w] = 1
					} else {
						a9.k9[w] = "CURVE";
						a9.p$[du] = M[K].ZY;
						a9.p$[du + 1] = M[K].ZE;
						a9.p$[du + 2] = M[K].fI;
						a9.p$[du + 3] = M[K].Jq;
						a9.p$[du + 4] = I.p$[ea + 4];
						a9.p$[du + 5] = I.p$[ea + 5];
						a9.Hi[w << 1] = A(M[K].Pg, I.p$[ea + 4], u[fP << 1]);
						a9.Hi[(w << 1) + 1] = A(M[K].Pg, I.p$[ea + 5], u[(fP << 1) + 1]);
						a9.alpha[w] = M[K].alpha;
						a9.JC[w] = M[K].alpha;
						ez[w] = M[K].Pg;
						bN[w] = M[K].wV
					}
					K = a[K]
				}
				for (w = 0; w < O; w++) {
					g = s(w + 1, O);
					a9.YH[w] = ez[w] / (ez[w] + bN[g])
				}
				a9.a1E = 1;
				_.e2 = a9
			}
			for (var w = 0; w < Y.length; w++) {
				var _ = Y[w];
				J(_);
				W(_);
				p(_);
				n(_);
				b(_);
				if (y.a30) Q(_)
			}
		}
		return {
			ajK: o,
			a4n: X
		}
	}();
	hY.ih = function (F, P, o, X) {
		var Y = {
				Jw: "minority",
				a8I: X,
				a30: !0,
				a4f: 1,
				aif: .2
			},
			y = hY.ajK(F, P, o, Y);
		hY.a4n(y, Y);
		return y
	};
	hY.Cj = function (F) {
		var P = [];
		for (var w = 0; w < F.length; w++) {
			var o = F[w],
				X = o.e2,
				Y = ["M"],
				y = [X.p$[(X.Dy - 1) * 6 + 4], X.p$[(X.Dy - 1) * 6 + 5]];
			for (var z = 0; z < X.Dy; z++) {
				var s = z * 6;
				if (X.k9[z] == 1) {
					Y.push("C");
					for (var t = 0; t < 6; t++) y.push(X.p$[s + t])
				} else if (X.k9[z] == 0) {
					Y.push("L");
					for (var t = 2; t < 4; t++) y.push(X.p$[s + t])
				}
			}
			Y.push("Z");
			P.push({
				parent: o.parent,
				color: o.color,
				path: {
					d: y,
					W: Y
				}
			})
		}
		return P
	};
	hY.am5 = function (F, P, o, X, Y) {
		function y(D) {
			function q(w) {
				var Z = "C " + (D.p$[w * 3 + 0 << 1] * P).toFixed(1) + " " + (D.p$[(w * 3 + 0 << 1) + 1] * P).toFixed(1) + ",";
				Z += (D.p$[w * 3 + 1 << 1] * P).toFixed(1) + " " + (D.p$[(w * 3 + 1 << 1) + 1] * P).toFixed(1) + ",";
				Z += (D.p$[w * 3 + 2 << 1] * P).toFixed(1) + " " + (D.p$[(w * 3 + 2 << 1) + 1] * P).toFixed(1) + " ";
				return Z
			}

			function R(w) {
				var W = "L " + (D.p$[w * 3 + 1 << 1] * P).toFixed(1) + " " + (D.p$[(w * 3 + 1 << 1) + 1] * P).toFixed(1) + " ";
				W += (D.p$[w * 3 + 2 << 1] * P).toFixed(1) + " " + (D.p$[(w * 3 + 2 << 1) + 1] * P).toFixed(1) + " ";
				return W
			}
			var e = D.Dy,
				w, J = "M" + (D.p$[(e - 1) * 3 + 2 << 1] * P).toFixed(1) + " " + (D.p$[((e - 1) * 3 + 2 << 1) + 1] * P).toFixed(1) + " ";
			for (w = 0; w < e; w++) {
				if (D.k9[w] == 1) {
					J += q(w)
				} else if (D.k9[w] == 0) {
					J += R(w)
				}
			}
			return J
		}
		var o = o * P,
			X = X * P,
			z = F.length,
			s = [];
		for (var w = 0; w < 256; w++) s.push("rgb(" + Math.floor(Math.random() * 255) + "," + Math.floor(Math.random() * 255) + "," + Math.floor(Math.random() * 255) + ")");
		var t = "<svg id=\"svg\" version=\"1.1\" width=\"" + o + "\" height=\"" + X + "\" xmlns=\"http://www.w3.org/2000/svg\">";
		for (var w = 0; w < z; w++) {
			var d = Y[F[w].color - 1].ahD.ap;
			if ((d >>> 24 & 255) == 0) continue;
			t += "<path d=\"";
			var U = F[w].e2;
			t += y(U);
			var v = d >> 0 & 255,
				A = d >> 8 & 255,
				Z = d >> 16 & 255,
				d = "rgb(" + v + "," + A + "," + Z + ")";
			t += "\" fill=\"" + d + "\" fill-rule=\"evenodd\"/>"
		}
		t += "</svg>";
		return t
	};
	hY.a9t = function (F, P, o) {
		var e = F.length >> 1,
			X, Y = F[2 * e - 3] - o,
			y = F[2 * e - 2] - P,
			z = F[2 * e - 1] - o,
			s = z > Y,
			t = 0;
		for (var w = 0; w < e; w++) {
			X = y;
			Y = z;
			y = F[2 * w] - P;
			z = F[2 * w + 1] - o;
			if (Y == z) continue;
			s = z > Y
		}
		for (var w = 0; w < e; w++) {
			X = y;
			Y = z;
			y = F[2 * w] - P;
			z = F[2 * w + 1] - o;
			if (Y < 0 && z < 0) continue;
			if (Y > 0 && z > 0) continue;
			if (X < 0 && y < 0) continue;
			if (Y == z && Math.min(X, y) <= 0) return !0;
			if (Y == z) continue;
			var d = X + (y - X) * -Y / (z - Y);
			if (d == 0) return !0;
			if (d > 0) t++;
			if (Y == 0 && s && z > Y) t--;
			if (Y == 0 && !s && z < Y) t--;
			s = z > Y
		}
		return (t & 1) == 1
	};
	hY.fill = function (F, P, o, X) {
		var Y = P[F],
			y = [F],
			z = 0;
		while (z < y.length) {
			var s = y[z];
			z++;
			P[s] = X;
			if (P[s - o] == Y) {
				y.push(s - o);
				P[s - o] = 254
			}
			if (P[s - 1] == Y) {
				y.push(s - 1);
				P[s - 1] = 254
			}
			if (P[s + 1] == Y) {
				y.push(s + 1);
				P[s + 1] = 254
			}
			if (P[s + o] == Y) {
				y.push(s + o);
				P[s + o] = 254
			}
		}
	};
	var k = {};
	k.pQ = !1;
	k.zW = !1;
	k.n9 = !1;
	k.w7 = document.createElement("canvas");
	k.ui = null;
	k.JI = null;
	k.Ce = 0;
	(function () {
		var F = {
				alpha: !0,
				antialias: !1,
				depth: !1,
				premultipliedAlpha: !1
			},
			P;
		if (!P) P = k.w7.getContext("webgl", F);
		if (!P) P = k.w7.getContext("experimental-webgl", F);
		if (P) {
			k.pQ = !0;
			k.zW = !0;
			k.ui = P;
			k.JI = P.createFramebuffer();
			P.bindFramebuffer(P.FRAMEBUFFER, k.JI);
			P.disable(P.BLEND);
			P.disable(P.DEPTH_TEST);
			var o = P.createBuffer();
			P.bindBuffer(P.ARRAY_BUFFER, o);
			P.bufferData(P.ARRAY_BUFFER, new Float32Array([0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1]), P.STATIC_DRAW);
			P.enableVertexAttribArray(0);
			P.vertexAttribPointer(0, 2, P.FLOAT, !1, 0, 0)
		}
	}());
	k.afB = function (F) {
		F = F.replace(/\s\s+/g, " ");
		F = F.replace(/; /g, ";");
		F = F.replace(/} /g, "}");
		F = F.replace(/ }/g, "}");
		F = F.replace(/{ /g, "{");
		F = F.replace(/ {/g, "{");
		F = F.replace(/= /g, "=");
		F = F.replace(/ =/g, "=");
		F = F.replace(/\| /g, "|");
		F = F.replace(/ \|/g, "|");
		return F
	};
	k.a0d = function (F) {
		var P = k.ui;
		if (F > P.getParameter(P.MAX_TEXTURE_SIZE)) {
			k.pQ = !1;
			alert("Disabling WebGL")
		}
	};
	k.Y_ = function (F, P) {
		return new Float32Array([(F.x - P.x) / P.Z, (F.y - P.y) / P.h, F.Z / P.Z, F.h / P.h])
	};
	k.Oa = function () {
		return this.w7
	};
	k.k1 = function (F, P) {
		var o = k.ui;
		o.bindFramebuffer(o.FRAMEBUFFER, k.JI);
		o.framebufferTexture2D(o.FRAMEBUFFER, o.COLOR_ATTACHMENT0, o.TEXTURE_2D, F.g3, 0);
		o.viewport(0, 0, F.Z, F.h);
		if (P) {
			o.enable(o.SCISSOR_TEST);
			o.scissor(P.x, P.y, P.Z, P.h)
		} else o.disable(o.SCISSOR_TEST)
	};
	k.N6 = function (F, P, o) {
		if (o) throw "error";
		var X = k.ui;
		X.disable(X.SCISSOR_TEST);
		X.bindFramebuffer(X.FRAMEBUFFER, null);
		X.viewport(0, 0, F, P);
		if (o) {
			X.enable(X.SCISSOR_TEST);
			X.scissor(o.x, o.y, Math.round(o.Z), Math.round(o.h))
		} else X.disable(X.SCISSOR_TEST)
	};
	k.clear = function () {
		var F = k.ui;
		F.clearColor(0, 0, 0, 0);
		F.clear(F.COLOR_BUFFER_BIT)
	};
	k.OL = function (F, P) {
		if (P == null) P = 0;
		var o = (P >>> 0 & 255) == 0,
			X = (P >>> 8 & 255) == 0,
			Y = (P >>> 16 & 255) == 0,
			y = (P >>> 24 & 255) == 0,
			z = (F >>> 0 & 255) * (1 / 255),
			s = (F >>> 8 & 255) * (1 / 255),
			t = (F >>> 16 & 255) * (1 / 255),
			d = (F >>> 24 & 255) * (1 / 255),
			U = k.ui;
		U.colorMask(o, X, Y, y);
		U.clearColor(z, s, t, d);
		U.clear(U.COLOR_BUFFER_BIT);
		U.colorMask(!0, !0, !0, !0)
	};
	k.X6 = function (F, P, o, X, Y) {
		var y = P.$X(X);
		if (Y) y = y.$X(Y);
		if (y.qr()) return;
		var z = k.ui;
		k.k1(F);
		z.bindTexture(z.TEXTURE_2D, o.g3);
		z.copyTexSubImage2D(z.TEXTURE_2D, 0, y.x - X.x, y.y - X.y, y.x - P.x, y.y - P.y, y.Z, y.h)
	};
	k.Wb = function (w, F, P) {
		var o = k.EX[w];
		if (o == null || o.Z != F || o.h != P) {
			if (o) o.delete();
			o = new k._B(F, P)
		}
		k.EX[w] = o;
		return o
	};
	k.EX = [];
	k.f2 = function () {
		this.bS = null;
		this.B6 = null
	};
	k.f2.G9 = null;
	k.f2.prototype.ac = function (F) {
		if (this.B6) return;
		this.B6 = {};
		var P = k.ui,
			o = this.bS,
			X = this.B6;
		for (var w = 0; w < F.length; w++) {
			var Y = F[w];
			X[Y] = P.getUniformLocation(o, Y)
		}
	};
	k.f2.prototype.WL = function () {};
	k.f2.prototype.ID = function (F) {
		var P = k.ui;
		for (var w = 0; w < F.length; w += 2) {
			P.uniform1i(F[w], w >>> 1);
			P.activeTexture(P["TEXTURE" + (w >>> 1)]);
			P.bindTexture(P.TEXTURE_2D, F[w + 1])
		}
		P.activeTexture(P.TEXTURE0)
	};
	k.f2.prototype.uZ = function (F, P) {
		var o = k.ui,
			X = o.createShader(o.FRAGMENT_SHADER);
		o.shaderSource(X, F);
		o.compileShader(X);
		if (!o.getShaderParameter(X, o.COMPILE_STATUS)) console.log(o.getShaderInfoLog(X));
		var Y = o.createShader(o.VERTEX_SHADER);
		o.shaderSource(Y, P);
		o.compileShader(Y);
		if (!o.getShaderParameter(Y, o.COMPILE_STATUS)) console.log(o.getShaderInfoLog(Y));
		var y = o.createProgram();
		o.attachShader(y, Y);
		o.attachShader(y, X);
		o.linkProgram(y);
		if (!o.getProgramParameter(y, o.LINK_STATUS)) console.log("Could not initialise shaders");
		this.bS = y
	};
	k.f2.prototype.kt = function () {
		if (k.f2.G9 != this) {
			k.ui.useProgram(this.bS);
			k.f2.G9 = this
		}
	};
	k.p5 = function (F, P) {
		k.Cn++;
		k.Ce += F * P;
		if (k.n9) console.log("GL.Channels instances: " + k.Cn + ", memory: " + k.Ce);
		var o = k.ui;
		this.Z = F;
		this.h = P;
		this.g3 = o.createTexture();
		this.z2 = null;
		this.Xj(this.g3, F, P)
	};
	k.p5.prototype.Xj = function (F, P, o) {
		var X = k.ui;
		X.bindTexture(X.TEXTURE_2D, F);
		X.texParameteri(X.TEXTURE_2D, X.TEXTURE_MIN_FILTER, X.NEAREST);
		X.texParameteri(X.TEXTURE_2D, X.TEXTURE_MAG_FILTER, X.NEAREST);
		X.texParameteri(X.TEXTURE_2D, X.TEXTURE_WRAP_S, X.CLAMP_TO_EDGE);
		X.texParameteri(X.TEXTURE_2D, X.TEXTURE_WRAP_T, X.CLAMP_TO_EDGE);
		X.texImage2D(X.TEXTURE_2D, 0, X.ALPHA, P, o, 0, X.ALPHA, X.UNSIGNED_BYTE, null)
	};
	k.p5.prototype.set = function (F) {
		var P = k.ui;
		P.bindTexture(P.TEXTURE_2D, this.g3);
		P.pixelStorei(P.UNPACK_ALIGNMENT, 1);
		P.texImage2D(P.TEXTURE_2D, 0, P.ALPHA, this.Z, this.h, 0, P.ALPHA, P.UNSIGNED_BYTE, F);
		P.pixelStorei(P.UNPACK_ALIGNMENT, 4)
	};
	k.p5.prototype.delete = function () {
		var F = k.ui;
		if (this.g3) {
			F.deleteTexture(this.g3);
			k.Cn--;
			k.Ce -= this.Z * this.h
		}
		if (k.n9)
			if (k.n9) console.log("GL.Channels instances: " + k.Cn + ", memory: " + k.Ce * 4)
	};
	k.Cn = 0;
	k._B = function (F, P, o) {
		if (o == null) o = !1;
		k.Cn++;
		k.Ce += F * P * 4;
		if (k.n9) console.log("GL.Channels instances: " + k.Cn + ", memory: " + k.Ce);
		var X = k.ui;
		this.aj9 = o;
		this.Z = F;
		this.h = P;
		this.g3 = X.createTexture();
		this.z2 = null;
		this.Xj(this.g3, F, P)
	};
	k._B.prototype.set = function (F, P) {
		var o = k.ui;
		o.disable(o.SCISSOR_TEST);
		o.bindTexture(o.TEXTURE_2D, this.g3);
		if (F == null || F instanceof Uint8Array) {
			var X = this.Z * this.h;
			if (P == null || P.M() * 10 > X) o.texImage2D(o.TEXTURE_2D, 0, o.RGBA, this.Z, this.h, 0, o.RGBA, o.UNSIGNED_BYTE, F);
			else {
				var Y = H.R(P.M() * 4);
				H.BP(F, new ev(0, 0, this.Z, this.h), Y, P);
				o.texSubImage2D(o.TEXTURE_2D, 0, P.x, P.y, P.Z, P.h, o.RGBA, o.UNSIGNED_BYTE, Y)
			}
		} else o.texImage2D(o.TEXTURE_2D, 0, o.RGBA, o.RGBA, o.UNSIGNED_BYTE, F)
	};
	k._B.prototype.get = function (F) {
		var P = k.ui;
		k.k1(this);
		P.readPixels(0, 0, this.Z, this.h, P.RGBA, P.UNSIGNED_BYTE, F)
	};
	k._B.prototype.ke = function (F) {
		if (F.qr()) return;
		var P = k.ui;
		if (this.z2 == null) {
			this.z2 = P.createTexture();
			this.Xj(this.z2, this.Z, this.h);
			k.Cn++;
			k.Ce += this.Z * this.h * 4
		}
		P.bindFramebuffer(P.FRAMEBUFFER, k.JI);
		P.bindTexture(P.TEXTURE_2D, this.z2);
		if (F) {
			var o = Math.max(F.x, 0),
				X = Math.max(F.y, 0);
			P.copyTexSubImage2D(P.TEXTURE_2D, 0, o, X, o, X, F.Z, F.h)
		} else P.copyTexImage2D(P.TEXTURE_2D, 0, P.RGBA, 0, 0, this.Z, this.h, 0)
	};
	k._B.prototype.Xj = function (F, P, o) {
		var X = k.ui;
		X.bindTexture(X.TEXTURE_2D, F);
		X.texParameteri(X.TEXTURE_2D, X.TEXTURE_MIN_FILTER, this.aj9 ? X.LINEAR : X.NEAREST);
		X.texParameteri(X.TEXTURE_2D, X.TEXTURE_MAG_FILTER, X.NEAREST);
		X.texParameteri(X.TEXTURE_2D, X.TEXTURE_WRAP_S, X.CLAMP_TO_EDGE);
		X.texParameteri(X.TEXTURE_2D, X.TEXTURE_WRAP_T, X.CLAMP_TO_EDGE);
		X.texImage2D(X.TEXTURE_2D, 0, X.RGBA, P, o, 0, X.RGBA, X.UNSIGNED_BYTE, null)
	};
	k._B.prototype.delete = function () {
		var F = k.ui;
		if (this.g3) {
			F.deleteTexture(this.g3);
			k.Cn--;
			k.Ce -= this.Z * this.h * 4
		}
		if (this.z2) {
			F.deleteTexture(this.z2);
			k.Cn--;
			k.Ce -= this.Z * this.h * 4
		}
		if (k.n9)
			if (k.n9) console.log("GL.Channels instances: " + k.Cn + ", memory: " + k.Ce)
	};
	k._B.prototype.clone = function () {
		var F = k.ui,
			P = new k._B(this.Z, this.h);
		k.k1(this);
		F.bindTexture(F.TEXTURE_2D, P.g3);
		F.copyTexImage2D(F.TEXTURE_2D, 0, F.RGBA, 0, 0, this.Z, this.h, 0);
		return P
	};
	k.XR = {
		aiT: "  vec3 ocbrn(vec3 a, vec3 b, float f) {  vec3 d = (a*vec3(f)+ONE3-vec3(f));  return mix(ONE3 - min(ONE3,(ONE3-b)/d), ZERO3, vec3(vec3(greaterThan(vec3(0.001),d))) );  }  ",
		acq: "  vec3 ocddg(vec3 a, vec3 b, float f) {  return mix(        min(ONE3,       b/(ONE3 - a*f))    ,   ONE3   , vec3(equal(a*f,ONE3 )) );  }  ",
		EW: "const vec3 ZERO3 = vec3(0.0,0.0,0.0) ;\t\t\tconst vec3 QUAR3 = vec3(0.25,0.25,0.25) ;\t\t\tconst vec3 HALF3 = vec3(0.5,0.5,0.5) ;\t\t\tconst vec3 ONE3  = vec3(1.0,1.0,1.0) ;",
		iP: " float hueDiff(float shue, float hue) { \t\t\t\tfloat df = hue-shue, adf=abs(df), df0 = df-1.0, df1 = df+1.0; \t\t\t\tif(abs(df0) < adf)  df = df0; \t\t\t\telse if(abs(df1) < adf)  df = df1; \t\t\t\treturn df; \t\t\t}",
		NN: " float hueCF(float hueS, float hue0) { \t\t\t\tfloat df = hueDiff(hue0, hueS)*6.0; \t\t\t\treturn   max(0.0, min(1.0,  (df<0.0) ? 1.0+df : 1.0-df  ));  } ",
		TO: "float sat(vec3 c) { return max(c.x,max(c.y,c.z)) - min(c.x,min(c.y,c.z)); }",
		ec: "float lum(vec3 c) { return dot(c, vec3(0.3,0.59,0.11)); } ",
		fY: "vec3  D  (vec3 x) { return mix( sqrt(x), ((16.0*x-12.0)*x+4.0)*x  , vec3(lessThanEqual(x,QUAR3))  ); }",
		afj: "float midSat (vec3 v, float s) { return ((v.y-v.z)*s)/(v.x-v.z); }",
		i8: "vec3 setSat (vec3 c, float s) \t\t\t{\t\t\t\tvec3 o;\t\t\t\tif(c.r==c.g && c.g==c.b) o = ZERO3;\t\t\t\telse if(c.r>c.g)  {\t\t\t\t\tif(c.r>c.b) {\t\t\t\t\t\tif(c.g>c.b)\to = vec3(s, midSat(c.rgb,s), 0.0); \t\t\t\t\t\telse\to = vec3(s, 0.0, midSat(c.rbg,s)); \t\t\t\t\t}\t\t\t\t\telse\t\to = vec3(midSat(c.brg,s), 0.0, s); \t\t\t\t} else  {\t\t\t\t\tif(c.r<c.b) {\t\t\t\t\t\tif(c.g>c.b)\to = vec3(0.0, s, midSat(c.gbr,s)); \t\t\t\t\t\telse\t    o = vec3(0.0, midSat(c.bgr,s), s); \t\t\t\t\t}\t\t\t\t\telse\t\t    o = vec3(midSat(c.grb,s), s, 0.0);\t\t\t\t}\t\t\t\treturn o;\t\t\t}",
		a6Q: "vec3 clipCol(vec3 c) \t\t\t{ \t\t\t\tvec3 o = c;  float l = lum(c); \t\t\t\tfloat n = min(c.r,min(c.g,c.b)); \t\t\t\tfloat x = max(c.r,max(c.g,c.b)); \t\t\t\tif(n<0.0) o = l + (o-l)*(l/(l-n));\t\t\t\tif(x>1.0) o = l + (o-l)*(1.0-l)/(x-l);\t\t\t\treturn o;\t\t\t}",
		Am: "vec3 setLum (vec3 c, float l) { return clipCol(c+l-lum(c)); } ",
		aS: "bool in01(vec2 c) { return (0.0<=c.x) && (c.x<=1.0) && (0.0<=c.y) && (c.y<=1.0); }",
		hash: "float hash(vec2 v) { return fract(sin(dot(v ,vec2(12.9898,78.233))) * 43758.5453); }",
		T4: "vec3 rgbToHsl (vec3 rgb) {\t\t\t\tfloat r = rgb.r, g = rgb.g, b = rgb.b; \t\t\t\tfloat mx = max(r, max(g, b)), mn = min(r, min(g, b)); \t\t\t\tfloat h, s, l = (mx + mn) * 0.5;\t\t\t\t\t\t\t\tif(mx == mn) h = s = 0.0; \t\t\t\telse{ \t\t\t\t\tfloat d = mx - mn; \t\t\t\t\ts = l > 0.5 ? d / (2.0 - mx - mn) : d / (mx + mn);  \t\t\t\t\t\t\t\t\t\tif(mx==r) h = (g - b) / d + (g < b ? 6.0 : 0.0);  \t\t\t\t\telse if(mx==g) h = (b - r) / d + 2.0; \t\t\t\t\telse if(mx==b) h = (r - g) / d + 4.0; \t\t\t\t\t\t\t\t\t\th /= 6.0; \t\t\t\t}  \t\t\t\treturn vec3(h,s,l); }",
		Uq: "vec3 hslToRgb (float h, float s, float l){\t\t\t\tfloat r, g, b;\t\t\t\t\t\t\t\tif(s == 0.0)  r = g = b = l; \t\t\t\telse{ \t\t\t\t\tfloat q = l < 0.5 ? l * (1.0 + s) : l + s - l * s; \t\t\t\t\tfloat p = 2.0 * l - q; \t\t\t\t\tr = hue2rgb(p, q, h + 1.0/3.0); \t\t\t\t\tg = hue2rgb(p, q, h); \t\t\t\t\tb = hue2rgb(p, q, h - 1.0/3.0); \t\t\t\t} \t\t\t\treturn vec3(r,g,b); } ",
		C7: "float hue2rgb(float p, float q, float t){ \t\t\t\tif(t < 0.0) t += 1.0;\t\t\t\tif(t > 1.0) t -= 1.0;\t\t\t\tif(t < 1.0/6.0) return p + (q - p) * 6.0 * t; \t\t\t\tif(t < 1.0/2.0) return q; \t\t\t\tif(t < 2.0/3.0) return p + (q - p) * (2.0/3.0 - t) * 6.0; \t\t\t\treturn p;\t}",
		eE: "vec3 rgbToHsv(vec3 rgb){\t\t\t\t\tfloat r = rgb.r, g = rgb.g, b = rgb.b; \t\t\t\tfloat mx = max(r, max(g, b)), mn = min(r, min(g, b)); \t\t\t\tfloat h, s, v = mx; \t\t\t\t\t\t\t\tfloat d = mx - mn; \t\t\t\ts = mx == 0.0 ? 0.0 : d / mx; \t\t\t\t\t\t\t\tif(mx == mn) h = 0.0;  \t\t\t\telse if(mx==r) h = (g - b) / d + (g < b ? 6.0 : 0.0);  \t\t\t\telse if(mx==g) h = (b - r) / d + 2.0; \t\t\t\telse if(mx==b) h = (r - g) / d + 4.0; \t\t\t\t\t\t\t\th /= 6.0; \t\t\t\treturn vec3(h,s,v);  }",
		ul: "vec3 hsvToRgb(float h, float s, float v)  { \t\t\t\tfloat r, g, b, f, p, q, t, i; \t\t\t\ti = floor(h * 6.0); \t\t\t\tf = h * 6.0 - i; \t\t\t\tp = v * (1.0 - s); \t\t\t\tq = v * (1.0 - f * s); \t\t\t\tt = v * (1.0 - (1.0 - f) * s); \t\t\t\t\t\t\t\tif     (i==0.0) { r = v, g = t, b = p; }\t\t\t\telse if(i==1.0) { r = q, g = v, b = p; }\t\t\t\telse if(i==2.0) { r = p, g = v, b = t; }\t\t\t\telse if(i==3.0) { r = p, g = q, b = v; }\t\t\t\telse if(i==4.0) { r = t, g = p, b = v; }\t\t\t\telse if(i==5.0) { r = v, g = p, b = q; }\t\t\t\t\t\t\t\treturn vec3(r,g,b); }",
		tm: "\t\tfloat srgbUngamma(float x) {\t\t\treturn (x<0.04045) ? (x / 12.92) : pow( ( x + 0.055 ) / 1.055,  2.4);\t\t}\t\tfloat xyzScale(float x) {\t\t\treturn (x>0.008856) ? pow(x,1.0/3.0) : (903.3*x+16.0)*(1.0/116.0); \t\t}\t\tvec3 rgbToLab(vec3 rgb) {\t\t\tbool ok = true;\t\t\trgb.r = srgbUngamma(rgb.r); \t\t\trgb.g = srgbUngamma(rgb.g); \t\t\trgb.b = srgbUngamma(rgb.b); \t\t\tok = ok && 0.0318<=rgb.r && rgb.r<=0.0319; \t\t\tok = ok && 0.127 <=rgb.g && rgb.g<=0.128 ; \t\t\tok = ok && 0.3047<=rgb.b && rgb.b<=0.305; \t\t\t\t\t\tmat3 srgb2xyz = mat3(0.4360747164307918, 0.222504478679176, 0.013932173981751634,    0.3850649153329662, 0.7168786002139355, 0.09710452396580642,    0.14308038098632878, 0.06061692340677909, 0.7141732835334675); \t\t\t\t\t\tvec3 xyz = srgb2xyz*rgb; \t\t\tok = ok && 0.106<=xyz[0] && xyz[0]<=0.107;  \t\t\t\t\t\txyz=xyz*vec3(100.0/96.72, 100.0/100.0, 100.0/81.427);  \t\t\txyz.x = xyzScale(xyz.x); \t\t\txyz.y = xyzScale(xyz.y); \t\t\txyz.z = xyzScale(xyz.z); \t\t\t\t\t\treturn vec3(116.0*xyz.y-16.0, 500.0*(xyz.x-xyz.y), 200.0*(xyz.y-xyz.z));  \t\t} \t\tfloat labSimilar(vec3 lab, vec3 mnm, vec3 mxm, float lim)  {\t\t\tfloat L=lab.x, a=lab.y, b=lab.z; \t\t\tfloat dl = ((L<mnm.x) ? (mnm.x-L) : ((mxm.x<L) ? (mxm.x-L) : 0.0))*(1.0/100.0); \t\t\tfloat da = ((a<mnm.y) ? (mnm.y-a) : ((mxm.y<a) ? (mxm.y-a) : 0.0))*(1.0/116.0); \t\t\tfloat db = ((b<mnm.z) ? (mnm.z-b) : ((mxm.z<b) ? (mxm.z-b) : 0.0))*(1.0/116.0); \t\t\t/*float dl  = (slab.x-lab.x)*(1.0/100.0), da=(slab.y-lab.y)*(1.0/116.0), db=(slab.z-lab.z)*(1.0/116.0);*/ \t\t\tfloat dst = sqrt(dl*dl+da*da+db*db)*1.35; \t\t\treturn (dst<=lim) ? min(1.0,1.17*(1.0 - (dst/lim))) : 0.0; \t\t}",
		XM: "\t\tfloat _blendIf(float c, vec4 br) {  return min((c-br.x)*br.y,  (c-br.w)*br.z);  }  \t\tfloat blendIf(vec4 sc, vec4 tc, vec4 br[10]) {  \t\t\tfloat sg = lum(sc.rgb); \t\t\tfloat tg = lum(tc.rgb); \t\t\tfloat ms = _blendIf(sg,br[0]); \t\t\tms = min(ms, _blendIf(sc.r,br[2])); \t\t\tms = min(ms, _blendIf(sc.g,br[4])); \t\t\tms = min(ms, _blendIf(sc.b,br[6])); \t\t\t\t\t\tfloat mt = _blendIf(tg,br[1]); \t\t\tmt = min(mt, _blendIf(tc.r,br[3])); \t\t\tmt = min(mt, _blendIf(tc.g,br[5])); \t\t\tmt = min(mt, _blendIf(tc.b,br[7])); \t\t\tmt=max(mt,1.0-tc.w);\t\t\t\t\t\tfloat mi=min(ms,mt);\t\t\treturn mi<0.0?0.0:(mi>1.0?1.0:mi);\t\t}"
	};
	k.MY = {
		q4: {},
		XX: "\t\t\tattribute vec2 verPos;\t\t\tvarying vec2 sCoord;\t\t\tvoid main(void) {\t\t\t\tsCoord = verPos;\t\t\t\tgl_Position = vec4(vec2(-1.0,-1.0) + 2.0*verPos, 0.0, 1.0);\t\t\t}"
	};
	k.MY.WD = function (F, P) {
		var o = b_.vo,
			X = [o.u1, o.xj, o.tn, o.I9, o.Ki, o.Lr, o.ta, o.$g].indexOf(F.type),
			Y = k.MY.q4[F.type];
		if (Y == null) Y = k.MY.q4[F.type] = new k.q4[X];
		Y.kt();
		Y.WL(P, F);
		k.ui.drawArrays(k.ui.TRIANGLES, 0, 6)
	};
	k.q4 = [];
	k.q4[0] = function () {
		k.f2.call(this);
		this.Nk = {};
		var F = "\t\t\tprecision mediump float;\t\t\t" + k.XR.ec + "\t\t\t" + k.XR.EW + "\t\t\tuniform sampler2D source;\t\t\tuniform sampler2D map;\t\t\tuniform float toGray;\t\t\tuniform float presLum;\t\t\t\t\t\tvarying vec2 sCoord;\t\t\t\t\t\tvoid main(void) {\t\t\t\tvec4 src = texture2D(source, sCoord); \t\t\t\tfloat olum = lum(src.rgb); \t\t\t\tsrc.rgb = toGray * vec3(olum) + (1.0-toGray)*src.rgb; \t\t\t\tfloat r = texture2D(map, vec2(src.r, 0)).r;\t\t\t\tfloat g = texture2D(map, vec2(src.g, 0)).g;\t\t\t\tfloat b = texture2D(map, vec2(src.b, 0)).b;\t\t\t\tvec3 col = vec3(r,g,b); \t\t\t\tif(presLum==1.0) { \t\t\t\t\tfloat nlum = lum(col); \t\t\t\t\tif(olum>nlum) col += (olum-nlum)/(1.0-nlum)*(ONE3-col); \t\t\t\t\telse if(nlum==0.0) col = ZERO3; \t\t\t\t\telse col = (olum/nlum) * col; \t\t\t\t}\t\t\t\tgl_FragColor = vec4(col,src.w);\t\t\t\t\t\t\t}";
		this.uZ(F, k.MY.XX)
	};
	k.q4[0].prototype = new k.f2;
	k.q4[0].prototype.WL = function (F, P) {
		var o = {
				U: P.KW,
				S: P.mf,
				i: P.Si,
				m: H.R(P.KW.length)
			},
			X = o.U.length;
		if (this.Nk["m" + X] == null) {
			this.Nk["m" + X] = {
				afT: new k._B(X, 1),
				Ww: H.R(X * 4)
			}
		}
		var Y = this.Nk["m" + X];
		H.sA(o, Y.Ww, 0);
		var y = Y.afT;
		y.set(Y.Ww);
		this.ac(["source", "map", "toGray", "presLum"]);
		var z = k.ui,
			s = this.B6;
		z.uniform1f(s.toGray, P.Ak ? 1 : 0);
		z.uniform1f(s.presLum, P.qi ? 1 : 0);
		this.ID([s.source, F, s.map, y.g3])
	};
	k.q4[1] = function () {
		k.f2.call(this);
		this.L0 = new k._B(256, 1);
		this.rA = H.R(256 * 4);
		var F = "\t\t\t\tprecision mediump float;\t\t\t\t" + k.XR.C7 + "\t\t\t\t" + k.XR.T4 + "\t\t\t\t" + k.XR.Uq + "\t\t\t\t\t\t\t\tuniform sampler2D source;\t\t\t\tuniform sampler2D map;\t\t\t\tuniform float cfa; \t\t\t\tuniform float cfb; \t\t\t\tuniform int colorize; \t\t\t\t\t\t\t\tvarying vec2 sCoord;\t\t\t\t\t\t\t\tvoid main(void) { \t\t\t\t\tvec4 src = texture2D(source, sCoord);\t\t\t\t\tvec3 rgb = src.rgb;\t\t\t\t\tfloat mn=min(rgb.r,min(rgb.g,rgb.b)), mx = max(rgb.r,max(rgb.g,rgb.b));\t\t\t\t\t\t\t\t\t\tvec3 hsl = rgbToHsl(rgb); \t\t\t\t\tfloat h = hsl.r, s = hsl.g, l = hsl.b; \t\t\t\t\t\t\t\t\t\tvec4 mapv = texture2D(map, vec2(h, 0));\t\t\t\t\tfloat nh = mapv.r; \t\t\t\t\tfloat sc = mapv.g*2.0-1.0; \t\t\t\t\tfloat lc = mapv.b*2.0-1.0; \t\t\t\t\t\t\t\t\t\tfloat cf = -lc, tv=mn;\t\t\t\t\tif(0.0<lc) {  cf=lc;  tv=mx;  }\t\t\t\t\t\t\t\t\t\tfloat a0 = cfa + cfb*cf*tv, a1 = cfb*(1.0-cf);\t\t\t\t\trgb = a0 + a1 * rgb;\t\t\t\t\t\t\t\t\t\thsl = rgbToHsl(rgb);  s = hsl.g;  l = hsl.b; \t\t\t\t\tfloat ns = sc; \t\t\t\t\tif(colorize==0) {\t\t\t\t\t\tif(sc>0.0) sc = pow(tan((3.14159265359/2.0)*sc),1.3);\t\t\t\t\t\tns = min(s * (1.0 + sc), 1.0); \t\t\t\t\t} \t\t\t\t\t\t\t\t\t\tgl_FragColor = vec4(hslToRgb(nh,ns,l),src.w); \t\t\t\t\t\t\t\t\t}";
		this.uZ(F, k.MY.XX)
	};
	k.q4[1].prototype = new k.f2;
	k.q4[1].prototype.WL = function (F, P) {
		H.sA({
			U: P.Fp,
			S: P.fQ,
			i: P.J7,
			m: H.R(256)
		}, this.rA);
		this.L0.set(this.rA);
		this.ac(["source", "map", "cfa", "cfb", "colorize"]);
		var o = k.ui,
			X = this.B6;
		o.uniform1f(X.cfa, P.L3);
		o.uniform1f(X.cfb, P.Ds);
		o.uniform1i(X.colorize, P.vY);
		this.ID([X.source, F, X.map, this.L0.g3])
	};
	k.q4[2] = function () {
		k.f2.call(this);
		var F = "\t\t\tprecision mediump float;\t\t\t" + k.XR.C7 + "\t\t\t" + k.XR.eE + "\t\t\t" + k.XR.ul + "\t\t\t" + k.XR.T4 + "\t\t\t" + k.XR.Uq + "\t\t\t\t\t\tuniform sampler2D source;\t\t\tuniform float vib; \t\t\tuniform float sat; \t\t\tconst float PI = 3.141592653; \t\t\t\t\t\tvarying vec2 sCoord;\t\t\t\t\t\tvoid main(void) { \t\t\t\tvec4 src = texture2D(source, sCoord); \t\t\t\tvec3 hsl = rgbToHsv(src.rgb); \t\t\t\tfloat h=hsl.r, s=hsl.g, l=hsl.b; \t\t\t\t\t\t\t\tfloat sk0 = 0.0, sk1 = 45.0/360.0; \t\t\t\tfloat skin = (h<sk1) ? cos((PI/2.0)*(h-sk1/2.0)/(sk1/2.0)) : 0.0; \t\t\t\t\t\t\t\ts = s + 0.2 * (1.0-0.4*skin) * vib * max(0.0, sin(s*PI)); \t\t\t\t\t\t\t\ts = s * (1.0 + sat); \t\t\t\t\t\t\t\ts = max(0.0, min(1.0, s));\t\t\t\tsrc.rgb = hsvToRgb(h,s,l);\t\t\t\tgl_FragColor = vec4(src.rgb,src.w); \t\t\t\t\t\t\t}";
		this.uZ(F, k.MY.XX)
	};
	k.q4[2].prototype = new k.f2;
	k.q4[2].prototype.WL = function (F, P) {
		this.ac(["source", "vib", "sat"]);
		var o = k.ui,
			X = this.B6;
		o.uniform1f(X.vib, P.S9[0] / 100);
		o.uniform1f(X.sat, P.S9[1] / 100);
		this.ID([X.source, F])
	};
	k.q4[3] = function () {
		k.f2.call(this);
		var F = "\t\t\tprecision mediump float;\t\t\t\t\t\tuniform sampler2D source;\t\t\tuniform mat4  trf; \t\t\t\t\t\tvarying vec2 sCoord;\t\t\t\t\t\tvoid main(void) { \t\t\t\tvec4 src = texture2D(source, sCoord); \t\t\t\tvec4 nsr = vec4(src.rgb,1.0); \t\t\t\tgl_FragColor = vec4((trf*nsr).rgb,src.w); \t\t\t\t\t\t\t}";
		this.uZ(F, k.MY.XX)
	};
	k.q4[3].prototype = new k.f2;
	k.q4[3].prototype.WL = function (F, P) {
		this.ac(["source", "trf"]);
		var o = k.ui,
			X = this.B6;
		o.uniformMatrix4fv(X.trf, !1, new Float32Array(H.t1.yT(P.Aw)));
		this.ID([X.source, F])
	};
	k.q4[4] = function () {
		k.f2.call(this);
		var F = "\t\t\tprecision mediump float; \t\t\t" + k.XR.tm + "\t\t\t" + k.XR.C7 + "\t\t\t" + k.XR.Uq + "\t\t\t" + k.XR.T4 + "\t\t\t\t\t\tuniform sampler2D source;\t\t\tuniform vec3 mnm;\t  \t\t\tuniform vec3 mxm;\t  \t\t\tuniform vec3 shift;   \t\t\tuniform float lim;    \t\t\t\t\t\tvarying vec2 sCoord;\t\t\t\t\t\tvoid main(void) { \t\t\t\tvec4 src = texture2D(source, sCoord); \t\t\t\t\t\t\t\tvec3 lab = rgbToLab(src.rgb);\t\t\t\tfloat scl = labSimilar(lab, mnm,mxm, lim);\t\t\t\t\t\t\t\tvec3 hsv = rgbToHsl(src.rgb); \t\t\t\tfloat nh = 2.0 + hsv[0]+scl*shift[0]; \t\t\t\thsv[0] = fract(nh); \t\t\t\thsv[1] = max(0.0, min(1.0, hsv[1] + scl*shift[1])); \t\t\t\thsv[2] = max(0.0, min(1.0, hsv[2] + scl*shift[2])); \t\t\t\t\t\t\t\tvec3 rgb = hslToRgb(hsv[0], hsv[1], hsv[2]); \t\t\t\t\t\t\t\tgl_FragColor = vec4(rgb,src.w); \t\t\t\t\t\t\t}";
		this.uZ(F, k.MY.XX)
	};
	k.q4[4].prototype = new k.f2;
	k.q4[4].prototype.WL = function (F, P) {
		this.ac(["source", "mnm", "mxm", "shift", "lim"]);
		var o = k.ui,
			X = this.B6;
		o.uniform3fv(X.mnm, new Float32Array(P.c7));
		o.uniform3fv(X.mxm, new Float32Array(P.Aa));
		o.uniform3fv(X.shift, new Float32Array(P.shift));
		o.uniform1f(X.lim, P.aI);
		this.ID([X.source, F])
	};
	k.q4[5] = function () {
		k.f2.call(this);
		var F = "\t\t\tprecision mediump float;\t\t\t" + k.XR.EW + "\t\t\t" + k.XR.iP + "\t\t\t" + k.XR.NN + "\t\t\t" + k.XR.T4 + "\t\t\t\t\t\tuniform sampler2D source;\t\t\tuniform vec3 cfs[18]; \t\t\t\t\t\tvarying vec2 sCoord;\t\t\t\t\t\tvoid main(void) { \t\t\t\tvec4 src = texture2D(source, sCoord); \t\t\t\tvec3 rgb = src.rgb; \t\t\t\tvec3 hsl = rgbToHsl(rgb); \t\t\t\tfloat mx = max(rgb.r, max(rgb.g, rgb.b)); \t\t\t\tfloat mn = min(rgb.r, min(rgb.g, rgb.b)); \t\t\t\t\t\t\t\tvec3 CMY = ONE3 - rgb; \t\t\t\tvec3 d = ZERO3; \t\t\t\t\t\t\t\tfor(int j=0; j<9; j++) \t\t\t\t{ \t\t\t\t    vec3 NCMY = CMY * cfs[j+j] + cfs[j+j+1]; \t\t\t\t\t\t\t\t\t\tfloat cfK = 0.0;\t\t\t\t\tif     (j< 6) { \t\t\t\t\t\tcfK = hueCF(float(j)*(1.0/6.0), hsl.x); \t\t\t\t\t\tcfK = cfK * hsl.y * 2.0*min(hsl.z, 1.0-hsl.z); \t\t\t\t\t} \t\t\t\t\telse if(j==6) cfK = max(0.0,mn-0.5)*2.0;\t\t\t\t\telse if(j==7) cfK = 1.0-(abs(mx-0.5)+abs(mn-0.5));\t\t\t\t\telse          cfK = max(0.0,0.5-mx)*2.0;\t\t\t\t\t\t\t\t\t\td += (max(ZERO3, min(ONE3, NCMY))-CMY)*cfK; \t\t\t\t} \t\t\t\t\t\t\t\tCMY = max(ZERO3, min(ONE3, CMY+d)); \t\t\t\trgb = ONE3 - CMY; \t\t\t\t\t\t\t\tgl_FragColor = vec4(rgb,src.w); \t\t\t\t\t\t\t}";
		this.uZ(F, k.MY.XX)
	};
	k.q4[5].prototype = new k.f2;
	k.q4[5].prototype.WL = function (F, P) {
		this.ac(["source", "cfs"]);
		var o = k.ui,
			X = this.B6;
		o.uniform3fv(X.cfs, P.e$);
		this.ID([X.source, F])
	};
	k.q4[6] = function () {
		k.f2.call(this);
		var F = "\t\t\tprecision mediump float;\t\t\t" + k.XR.C7 + "\t\t\t" + k.XR.iP + "\t\t\t" + k.XR.NN + "\t\t\t" + k.XR.T4 + "\t\t\t" + k.XR.Uq + "\t\t\t\t\t\tuniform sampler2D source;\t\t\tuniform float wght[6]; \t\t\tuniform float prms[6]; \t\t\t\t\t\tvarying vec2 sCoord;\t\t\t\t\t\tvoid main(void) { \t\t\t\tvec4 src = texture2D(source, sCoord); \t\t\t\tvec3 rgb = src.rgb; \t\t\t\t\t\t\t\tfloat tint=prms[0], hue=prms[1], lum=prms[2], mcf=prms[3], x0=prms[4], x1=prms[5]; \t\t\t\tvec3 hsl = rgbToHsl(rgb); \t\t\t\t\t\t\t\tfloat cf = 0.0;\t\t\t\tfor(int j=0; j<6; j++) cf += min(1.0, 1.7*(1.0-hsl.z)) * hsl.y *  wght[j] * hueCF(hsl.x, float(j)*(1.0/6.0));\t\t\t\t\t\t\t\tfloat lig = max(0.0, min(1.0, hsl.z*(1.0+cf)));\t\t\t\tif(tint==1.0) {  \t\t\t\t\tfloat totl = 0.0;\t\t\t\t\tif     (lig<x0) totl = lig*(0.5/lum); \t\t\t\t\telse if(lig<x1) totl = lig + (mcf)*(0.5 - lum); \t\t\t\t\telse            totl = 1.0 - (1.0-lig)*0.5/(1.0-lum); \t\t\t\t\t\t\t\t\t\thsl.x = hue;  \t\t\t\t\thsl.y = min(1.0, mcf + 3.0*mcf*abs(lig-0.5*(x0+x1))); \t\t\t\t\thsl.z = totl; \t\t\t\t} \t\t\t\telse {  hsl.x=0.0;  hsl.y=0.0;  hsl.z=lig;  } \t\t\t\t\t\t\t\trgb = hslToRgb(hsl.x, hsl.y, hsl.z); \t\t\t\t\t\t\t\tgl_FragColor = vec4(rgb,src.w); \t\t\t\t\t\t\t}";
		this.uZ(F, k.MY.XX)
	};
	k.q4[6].prototype = new k.f2;
	k.q4[6].prototype.WL = function (F, P) {
		this.ac(["source", "wght", "prms"]);
		var o = k.ui,
			X = this.B6,
			Y = [P.Ro, P.uI, P.ec, P.ZJ, P.sw, P.pm];
		o.uniform1fv(X.wght, new Float32Array(P._5));
		o.uniform1fv(X.prms, new Float32Array(Y));
		this.ID([X.source, F])
	};
	k.q4[7] = function () {
		k.f2.call(this);
		this.xs = {};
		var F = "\t\t\tprecision mediump float;\t\t\t\t\t\tuniform sampler2D source;\t\t\tuniform sampler2D lut;\t\t\tuniform float N;\t\t\t\t\t\tvarying vec2 sCoord;\t\t\t\t\t\tvoid main(void) { \t\t\t\tfloat iN = 1.0/N; \t\t\t\tvec4 src = texture2D(source, sCoord); \t\t\t\tfloat fb = 0.5*iN + src.b*(1.0-iN); \t\t\t\tfloat fg = 0.5*iN + src.g*(1.0-iN); \t\t\t\tfloat R  = src.r*(N-1.0)*0.999999; \t\t\t\tfloat ir = floor(R)*iN;  \t\t\t\t\t\t\t\tvec4 c0 = texture2D(lut, vec2(fb, ir   +( fg   )*iN)); \t\t\t\tvec4 c1 = texture2D(lut, vec2(fb, ir+iN+( fg   )*iN)); \t\t\t\tvec4 rs = mix(c0,c1,R-floor(R));  \t\t\t\tgl_FragColor = vec4(rs.rgb,src.w); \t\t\t\t\t\t\t}";
		this.uZ(F, k.MY.XX)
	};
	k.q4[7].prototype = new k.f2;
	k.q4[7].prototype.WL = function (F, P) {
		this.ac(["source", "lut", "N"]);
		var o = k.ui,
			X = this.B6,
			Y = P.g8,
			y = P.Tr;
		if (this.xs["m" + Y] == null) this.xs["m" + Y] = new k._B(Y, Y * Y);
		var z = this.xs["m" + Y];
		z.set(y);
		o.uniform1f(X.N, Y);
		this.ID([X.source, F, X.lut, z.g3]);
		o.activeTexture(o.TEXTURE1);
		var s = o.LINEAR;
		o.texParameteri(o.TEXTURE_2D, o.TEXTURE_MIN_FILTER, s);
		o.texParameteri(o.TEXTURE_2D, o.TEXTURE_MAG_FILTER, s);
		o.activeTexture(o.TEXTURE0)
	};
	k.filter = {
		LH: {},
		XX: "1u,/0*&<>2OI;<m^XJZ;]d/vp^r|ows/)z{M>5g7:@5nVPLIGeVMX`|njge-'&-$V&)/$BbHB4D%GNx`KSI=_f_menp%E+%vwKB4&'XQY``edhootpjxp&%*'vhxY{#>5HINMDXX]YnVW",
		m8: 0,
		Vw: 1,
		Zi: 2,
		Nj: 3
	};
	k.filter.WD = function (F, P) {
		var o = k.filter,
			X = [o.m8, o.Vw, o.Zi, o.Nj].indexOf(F.type),
			Y = k.filter.LH[F.type];
		if (Y == null) Y = k.filter.LH[F.type] = new k.LH[X];
		Y.kt();
		Y.WL(P, F);
		k.ui.drawArrays(k.ui.TRIANGLES, 0, 6)
	};
	k.LH = [0, 0, 0, 0, 0, 0, 0];
	k.LH[3] = function () {
		k.f2.call(this);
		var F = "1%* !*709;O@;=ETOUgQZ`Uk5rnllx~|2)y)/.*:\\qPGFOOCH!^ZXXdjh}wij<-y+~T2.,,8><Q;DJ?Uc[NR`.kgeeqwu+t}$x/=36(.gEA??KQOd^PQ#sjjbc>{wuu\"(&;5'(ZJ<@=JtRNLLX^\\qbYo2!tvv'@N,(&&286K<3IkZNPP`z(fThremi%~pqC4+]-06+d/?BBXEM2TTdugYZ.|v,\" qrF5)X,#=OAWACCSlkYoY[[k&!6pfx||{0!w2D-$>P<\\J`HhWioTKewc$s(o0|14JNDEJX>:,-_OE7G@qi[MN!pdo&|vhi<, ,>42$%WG=/H*8FySLTp\\g{&))4:;7CC;$0CSRPXZ_cg]Wd]quw~$}'-/50=wm $$#7-~8y(6L\\R<EKNTlZLeGUc#8}ykl?/yv./QI;-.`PDOe\\VHI{k_k}smcuyyx-8&w(!RJ6AW?K]bM?OHyq}}%'#lw.66B8\".@E0\"2+\\Tb`fbLXmxu\"wal %oaqj<4?@KOE/;PWXea]GRe_owv{nz~))3<\"}opC3,(&&UM?12dTHSi`ZLM oco\"wqgy}}|1'x)\"SK7BX@L^bmlqqxx},qZiksw&ox~s*8kpda^Z[`nMIFDbSJU]ykgdb* }opD3*|)2_:.DCGG=l\"hWV__SX\"xoBqtzo7Lz$*~5C+/=D;r:>RiYLP^}gZfo.z/Dr{\"v-;1#)d/3AH?cORDJ$UUygY_~>45:6,*{|O?6;6f5>D9O]T[$yz ~ubjb?66;Iw$*B$-3(>LIob).\"|^$(>C72s(+,\"rzrOFFKK+3+e77[PuiRDJehh0gY_'!gvx\"y\",~W&28P2;A6LZV}p7<0+k26LQE@!6KCBGC9'06+AO6NuTiKSK&WW{o6*rdj&)(P(y GA(79B:BL?wIImiU]Bddt&wij>5s,B3H2$*T[\\a]`c]DSU^V^h[4rde9(nz$Q, 6599/^sZIHQQEJsja4cfla+ykl>7u.D5GK.?3Vk:CI>TbIM)PTh obft4my#A.BW&/5*@N3K?wmnvpMYb!h$,-7>2nz$B~EMNTWS0<Ec;vENTI_mWfZ7pphi7%9uyB~#\\..R/G;tMMEFsbtnUaj)phfD2>>CC /#KO,8A_G?=]kcM\\Pyi[\\/'9384Iw!'{2@49>iW6:t@DRYPj-p{~^bpwn6os;D|!/6-PJgP[:>y|rsx+~ %2#ae1ko}%{?H $KNc2;A6LZAX!ww||chm7ry0En&L(-(H]'>S0<EcKCA|beywX`V@oajIxx~%R\"*n11ARD67jaippus_2adj_,y.98=<@GGLJ6h8;A6bQdonsrzx {~8rde90<:B@HFNI]=/0cZedkjqpxs)z#vm`luC qrF=,1,P8?V^^c_tZVHI{k_S2n`a4,zM| &zG5K6h8;A6bQfontp]0_bh]*w+@~pqD4(|Z7)*\\TCuEHNCo^s}{#',$pCru{p=+AJIQK8j:=C8dSezYKL~n`dk`;osp};*PSIJOBdHA=;;jbNBoWLuo-u`]tu80{o=%yCX**N8<9FcSx{rrwsm_cj_+x@tx t@/U*.5*UEhD7CLjRJHhv,yY]kri.uyv$A/BF.29.f6>4}M?H'VV\\b0i\\hq=#";
		this.uZ(i.Dj(F), i.Dj(k.filter.XX))
	};
	k.LH[3].prototype = new k.f2;
	k.LH[3].prototype.WL = function (F, P) {
		this.ac("source iwh tdep rrad spec nois poly0 poly1".split(" "));
		var o = k.ui,
			X = this.B6;
		o.uniform2fv(X.iwh, P.I1);
		o.uniform1f(X.tdep, P.aly);
		o.uniform1f(X.rrad, P.a2M);
		o.uniform2fv(X.spec, P.a8y);
		o.uniform3fv(X.nois, P.a3H);
		o.uniformMatrix4fv(X.poly0, !1, P.a8J);
		o.uniformMatrix4fv(X.poly1, !1, P.abg);
		this.ID([X.source, F]);
		var Y = o.LINEAR;
		o.activeTexture(o.TEXTURE0);
		o.texParameteri(o.TEXTURE_2D, o.TEXTURE_MIN_FILTER, Y);
		o.texParameteri(o.TEXTURE_2D, o.TEXTURE_MAG_FILTER, Y);
		o.activeTexture(o.TEXTURE0)
	};
	k.LH[0] = function () {
		k.f2.call(this);
		var F = "1%* !*709;O@;=ETOUgQZ`Uk5|uqoo{\" 5,|,21-=_tSJIRRFK$kd`^^jpn$}opB3 1%ZB;755AGEZTFGyiYT.unjhhtzx.w!'{2@7/3;5mUO=Q[NVRmgYZ,|sFux~sM5~(.#9G23E'?;AOZm_QR$th$}|$mv|q(62M?_E=1GFJJ@o%kZYbbV[%{o-{mn@9AHHMLCVW\\X\\?PDgo\\#jT]cXn|x5&F,$w.-11'VkRA@II=BkbVsbTU' z//43*=>C?C&7+NVCiQ;DJ?Uc`zl-rj^tswwm=R9('00$)RI=ZI;<mfatuzy}%%*&*l}q5=*P8\"+1&<JGbSsYQE[Z^^T$9 nmvvjo90$A0\"#TMH[\\a`WkkplpSdX{$p7~hqwl#1x0J=]CVWc[R:Qm^~doc }l(#8 irxm$2y2L>^DWXd\\S;Sn_ epe!~n)$9!zlm@0\"6V<.286-;;O=bTFGyqyTk(#`x31(8r*DA~7ROF.E_\\:Rlgj g]Seiih|drz1xs>$AV>?D>:75SD;FNj\\XUSztszdmsh~-({6V<PPUHVN9:L.FBHVatc6ehnc+/{sw yR:%-#l<.7uEEKQa\"g_Sihllb2G.|{%%x}G>5g7:@5\\`QEzbc";
		this.uZ(i.Dj(F), i.Dj(k.filter.XX))
	};
	k.LH[0].prototype = new k.f2;
	k.LH[0].prototype.WL = function (F, P) {
		this.ac(["source", "iwh", "ld", "shine"]);
		var o = k.ui,
			X = this.B6;
		o.uniform2fv(X.iwh, P.I1);
		o.uniform3fv(X.ld, P.akp);
		o.uniform1f(X.shine, P.ab4);
		this.ID([X.source, F, X.tang, P.B9])
	};
	k.LH[1] = function () {
		k.f2.call(this);
		var F = "1%* !*709;O@;=ETOUgQZ`Uk5|uqoo{\" 5,|,21-=_tSJIRRFK$kd`^^jpn$}opB3 1%ZB;755AGEZDMSH^lYfY4{tpnnz!~4}'-\"8F,?9FJEAya[I]gZb^ysef8) R\"%+ YA+4:/ES?;PHjLU[Pfths*!jsyn%3'3E?>E/8>3IWM?X:HVl-ribj'r}2<??JPQMYYQ:FYihfnpuy}smzs(,.5:4=CEKFS;1'9==<PF8Q3AOeukU^dgm&se~`n|<Q9:?)28-CQ<=O,PMZOtfXY+{n+%$+%vwI:.@`FQ<ZI;<mfwuzx}|%(1+0,/3u#uP82$%VG9>PpV@IORXp\\w-tn`a3$u|]0P6*I.3`H2;A6LZQqt$]V^z'**/+@(\"stF7}M@`F-<CZDIdhUux&mgYZ,|c4&F,r\")@*/L;-._Xddihppuqtxe&)6}gpvk\"0\"6V<($91S2abPfApq`r(oYbh]s\"sz+K1|x.&H'WWE[6efUg|dNW]Rhvha @&qm#z={KL:P+[[J\\qYCLRG]k]dYw8}iezr5sDD2H#SSBTiQ;DJ?UcOzl-rcbt'p%4+|$@&-mN<OdL6?E:P^Jvg(m^]o\"kd/t{p;!(hI7J_G1:@5KYS_ eVUgy])'}i63x `A0BW?9EeKVHTsZmnxoi,o#$)6005C+t}$x/=373>LlRLXf^DWQ^b]Yv$|hdyq4r\")@,L:MQ>^a_:IPgSsbtxe&)$9!vl~##\"6,0,7OP\\\\acjhmi~fglfb_]{lcnv3%!}{C=<C=/0aRNR[{aX+Z]cX&cth>& qrF5{++AaG?3IHLLBq'm\\[ddX]'}tGvy t<Q9 //S*KkQ<=O,PMZOthl~4{fndN}oxW''-3CcI0??pXY";
		this.uZ(i.Dj(F), i.Dj(k.filter.XX))
	};
	k.LH[1].prototype = new k.f2;
	k.LH[1].prototype.WL = function (F, P) {
		this.ac(["source", "iwh", "isc", "bristle"]);
		var o = k.ui,
			X = this.B6;
		o.uniform2fv(X.iwh, P.I1);
		o.uniform1f(X.isc, P.afn);
		o.uniform1f(X.bristle, P.agY);
		this.ID([X.source, F])
	};
	k.LH[2] = function () {
		k.f2.call(this);
		var F = "1%* !*709;O@;=ETOUgQZ`Uk5|uqoo{\" 5,|,21-=_tSJIRRFK$kd`^^jpn$zkz! {,NcB:*:6lTMIGGSYWlfXY+{hymC+$ }}*0.C-6<1GULEFOF#jc_]]iom#lu{p'5}4/1_GA/CM@HD_YKL}ne8gjpe?'py t+94%,-1@NY;DJ?Uc_rlkrh^ptts(p'\"<7G.0;NBX5KFHdmivuzwd]^g^*vopyp;5AV>?D>:75SD;FNj\\XUSztszdmsh~-x+S-&'0'S?89B9u]GPVKaofmx9~338F.(yzN=494IiOG;QPTTJy/udcll`e/&|O~\"(|DYA;-._P:GYy_tsxuvfZpossi9N5%t%!H?6h8;A6]eSWmZLM~w#$.(/0:14I1+|}O@(FfL6CpXBNTlQYbp]4*8 lB;G/{@CD>=D>01bSGYy_V)X[aV0wams,mv|q(6,YOPUcKAmfgjmns\"i_z}~xw~xjk=.~x7W=RQVSTD8NMQQGv,rbRb^&|p,4\"&<)z{MFQR\\V]^h_bw_LLpP^f|e_*e-C:;@<65<-'bU93lTUZB`!fWQ+rfx'<\"rl5w)|R:$-3(>LGRrXSDKLP_uc|2ypup&4I/*?-!76::0_t[JIRRFKtk_z0wnu,A~E-yy>,Z\\+=QK1D:9Fx`afN*|Yf4{|\"ltjT$u~]--39IiOFKFefrrwyah|2yz";
		this.uZ(i.Dj(F), i.Dj(k.filter.XX))
	};
	k.LH[2].prototype = new k.f2;
	k.LH[2].prototype.WL = function (F, P) {
		this.ac(["source", "tang", "iwh", "sigma", "expo"]);
		var o = k.ui,
			X = this.B6;
		o.uniform2fv(X.iwh, P.I1);
		o.uniform1f(X.sigma, P.sC);
		o.uniform1f(X.expo, P.R5);
		this.ID([X.source, F, X.tang, P.B9]);
		var Y = o.LINEAR;
		o.activeTexture(o.TEXTURE0);
		o.texParameteri(o.TEXTURE_2D, o.TEXTURE_MIN_FILTER, Y);
		o.texParameteri(o.TEXTURE_2D, o.TEXTURE_MAG_FILTER, Y);
		o.activeTexture(o.TEXTURE0)
	};
	k.N = {};
	k.N.Ix = {};
	k.N.QM = null;
	k.N.TE = null;
	k.N.tl = null;
	k.N.Q4 = function (F, P, o, X, Y, y, z, s) {
		if (s == null) s = cr.jx();
		if ("idiv,lbrn,div ,lddg,vLit,lLit,hMix,diff".split(",").indexOf(F) == -1) {
			z = z * s.fill;
			s.fill = 1;
			s.style = !1
		}
		var t = F + (s.Lc ? "1" : "");
		if (k.N.Ix[t] == null) k.N.Ix[t] = new k.N.Nb(F, s.Lc != null);
		var d = k.N.Ix[t],
			U = o.$X(Y).$X(y);
		U.offset(-Y.x, -Y.y);
		if (U.qr()) return;
		var v = k.ui;
		k.k1(X, U);
		X.ke(U);
		d.kt();
		d.WL(P.g3, X.z2, k.Y_(o, Y), z, s.fill, s.style ? 1 : 0, s.YU ? 1 : 0, s.Lc ? new Float32Array(s.Lc) : null);
		v.drawArrays(v.TRIANGLES, 0, 6)
	};
	k.N.CG = function (F, P, o, X, Y, y, z, s, t, d, U) {
		if (k.N.QM == null) k.N.QM = new k.N.tv(!0, !0);
		if (k.N.TE == null) k.N.TE = new k.N.tv(!0, !1);
		if (k.N.tl == null) k.N.tl = new k.N.tv(!1, !0);
		var v = d ? 1 : 0,
			A = F ? Y ? k.N.QM : k.N.TE : k.N.tl,
			Z = new Float32Array(U ? [U[0], U[1], U[2], 1] : [1, 1, 1, 1]),
			D = P ? P.$X(X).$X(s) : X.$X(s);
		if (D.qr()) return;
		D.offset(-X.x, -X.y);
		var q = k.ui;
		k.k1(o, D);
		o.ke(D);
		A.kt();
		if (F == null) A.WL(null, o.z2, Y.g3, k.Y_(X, X), k.Y_(y, X), z / 255, t, v, Z);
		else if (Y) A.WL(F.g3, o.z2, Y.g3, k.Y_(P, X), k.Y_(y, X), z / 255, t, v, Z);
		else A.WL(F.g3, o.z2, null, k.Y_(P, X), null, z / 255, t, v, Z);
		q.drawArrays(q.TRIANGLES, 0, 6)
	};
	k.N.aim = function (F, P, o) {
		if (k.N.n1 == null) k.N.n1 = new k.N.wo;
		var X = k.N.n1,
			Y = new ev(0, 0, F.Z, F.h),
			y = k.ui;
		k.k1(P);
		P.ke(Y);
		X.kt();
		X.WL(Y, F.g3, P.z2, o.g3);
		y.drawArrays(y.TRIANGLES, 0, 6)
	};
	k.N.EH = {
		norm: "return a;",
		diss: "return a;",
		dark: "return min(a,b);",
		"mul ": "return a*b;",
		idiv: "  vec3 d = (a*vec3(f)+ONE3-vec3(f));  return mix(mix(ONE3-((ONE3-b)/max(d,vec3(1e-6))), ZERO3, vec3(greaterThanEqual(ONE3-b,d)) ), ONE3   ,   vec3(equal(b,ONE3) ));   ",
		lbrn: "return max(ZERO3, a*f+b-f);",
		dkCl: "return ( lum(a)<lum(b) ? a : b );",
		lite: "return max(a,b);",
		scrn: "return b+a-b*a;",
		"div ": "a*=f;  return mix(    mix(  min(ONE3,b/(1.0-a)), ONE3,  step(1.0-a, b))     , ZERO3, vec3(equal(b,ZERO3)) );",
		lddg: "a*=f;  return min(ONE3,a+b);",
		lgCl: "return ( lum(a)>lum(b) ? a : b );",
		over: "return mix( a+(2.0*b -1.0)-a*(2.0*b-1.0) ,  2.0*b*a , step(-HALF3,-b) );",
		sLit: "return mix( b+(2.0*a -1.0)*(D(b)-b)  , b-(1.0-2.0*a)*b*(1.0-b) , step(-HALF3,-a) );",
		hLit: "return mix( b+(2.0*a -1.0)-b*(2.0*a-1.0) ,  2.0*a*b , step(-HALF3,-a) );",
		vLit: " return mix( ocddg(2.0*a-1.0,b,f)  ,  ocbrn(2.0*a,b,f)  ,  vec3(greaterThanEqual(HALF3,a))); ",
		lLit: "return mix( min(ONE3, (2.0*a-1.0)*f+b) , max(ZERO3, 2.0*a*f+b-f)  , step(-HALF3,-a));",
		pLit: "return mix( max(2.0*a-1.0,b) , min(2.0*a, b) , step(-HALF3,-a)  );",
		hMix: "if(f>0.99) return vec3(greaterThanEqual(a+b,ONE3));   return  min( ONE3, max(ZERO3,  (b+a*f-f)/(1.0-f+1e-6)  ))  ;  ",
		diff: "return abs(a*f-b);",
		smud: "return a+b-2.0*a*b;",
		fsub: "return max(b-a, ZERO3);",
		fdiv: "return min(b/a, ONE3);",
		"hue ": "return  setLum( setSat(a, sat(b)) , lum(b) ); ",
		"sat ": "return  setLum( setSat(b, sat(a)) , lum(b) ); ",
		colr: "return  setLum( a, lum(b) ); ",
		"lum ": "return  setLum( b, lum(a) ); "
	};
	k.N.Nb = function (F, P) {
		k.f2.call(this);
		var o = "\t\t\tprecision mediump float;\t\t\t" + k.XR.EW + "\t\t\t\t\t\tuniform sampler2D source;\t\t\tuniform sampler2D target;\t\t\tuniform float alpha;\t\t\tuniform float fill;\t\t\tuniform float style;\t\t\tuniform float keepBGA;\t\t\t" + (P ? "uniform vec4 blIf[10];" : "") + "\t\t\t\t\t\tvarying vec2 tCoord;\t\t\tvarying vec2 sCoord;\t\t\t\t\t\t\t\t\t" + k.XR.TO + "\t\t\t" + k.XR.ec + "\t\t\t" + k.XR.fY + "\t\t\t" + k.XR.aiT + "\t\t\t" + k.XR.acq + "\t\t\t" + k.XR.afj + "\t\t\t" + k.XR.i8 + "\t\t\t" + k.XR.a6Q + "\t\t\t" + k.XR.Am + "\t\t\t" + k.XR.hash + "\t\t\t" + (P ? k.XR.XM : "") + "\t\t\t\t\t\tvec3  BB(vec3  a, vec3  b, float f) { " + k.N.EH[F] + " } \t\t\t\t\t\tvoid main(void) {\t\t\t\tvec4 tgt = texture2D(target, tCoord);\t\t\t\tvec4 src = texture2D(source, sCoord);",
			X = "\t\t\tattribute vec2 verPos;\t\t\tuniform vec4 srct;\t\t\tvarying vec2 tCoord;\t\t\tvarying vec2 sCoord;\t\t\tvoid main(void) {\t\t\t\ttCoord = verPos;\t\t\t\tsCoord = (verPos-srct.xy)/srct.zw;\t\t\t\tgl_Position = vec4(vec2(-1.0,-1.0) + 2.0*verPos, 0.0, 1.0);\t\t\t}";
		if (F == "diss") o += "\t\t\t\t\tgl_FragColor = (hash(tCoord) >= (keepBGA + (1.0-keepBGA)*src.w)*alpha ? tgt : vec4(src.xyz, keepBGA*tgt.w + (1.0-keepBGA)));  }";
		else o += "  \t\t\t\t\tfloat as = (keepBGA + (1.0-keepBGA)*src.w) * alpha, at = keepBGA + (1.0-keepBGA)*tgt.w; \t\t\t\t\t" + (P ? "  as*=blendIf(src,tgt,blIf);  " : "") + "\t\t\t\t\tfloat ats = at * (1.0-as), ao = as + ats, iao = (ao==0.0) ? 0.0 : (1.0/ao); \t\t\t\t\tfloat ccf = (style==1.0) ? 1.0 : as; \t\t\t\t\tvec3 ncl = ( (1.0-at)*as*src.xyz + (1.0-ccf)*at*tgt.xyz + ccf*at*BB(src.xyz, tgt.xyz, (1.0+as-ccf)*fill)  ) * iao;\t\t\t\t\tgl_FragColor = vec4(ncl, keepBGA*tgt.w + (1.0-keepBGA)*(as*fill + at*(1.0-as*fill)));\t\t\t\t\t\t\t}";
		this.uZ(o, X)
	};
	k.N.Nb.prototype = new k.f2;
	k.N.Nb.prototype.WL = function (F, P, o, X, Y, y, z, s) {
		this.ac("srct alpha source target fill style keepBGA blIf".split(" "));
		var t = k.ui,
			d = this.B6;
		t.uniform4fv(d.srct, o);
		t.uniform1f(d.alpha, X);
		t.uniform1f(d.fill, Y);
		t.uniform1f(d.style, y);
		t.uniform1f(d.keepBGA, z);
		if (s) t.uniform4fv(d.blIf, s);
		this.ID([d.source, F, d.target, P])
	};
	k.N.tv = function (F, P) {
		k.f2.call(this);
		this.ab9 = F;
		this.aR = P;
		var o = "\t\t\tprecision mediump float;\t\t\t\t\t\tuniform sampler2D source;\t\t\tuniform sampler2D target;\t\t\tuniform sampler2D weight;\t\t\tuniform vec4 cswitch;\t\t\tuniform float wcolor;\t\t\tuniform float awg; /* additional weight */\t\t\tuniform float dissv;\t\t\t\t\t\tvarying vec2 tCoord;\t\t\tvarying vec2 sCoord;\t\t\tvarying vec2 wCoord;\t\t\t\t\t\t" + k.XR.aS + "\t\t\t" + k.XR.hash + "\t\t\t\t\t\tvoid main(void) {\t\t\t\tvec4 tgt = texture2D(target, tCoord);\t\t\t\tvec4 src = " + (F ? "texture2D(source, sCoord)" : "vec4(0.0)") + "; \t\t\t\tfloat wg = awg " + (P ? "* (in01(wCoord) ? texture2D(weight, wCoord).w : wcolor)" : "") + ";\t\t\t\t" + (F ? "" : "wg = 1.0-wg;") + "\t\t\t\tfloat hwg = hash(tCoord)>=wg ? 0.0 : 1.0;  wg = dissv*hwg + (1.0-dissv)*wg; \t\t\t\tfloat as = wg*src.w, at = (1.0-wg)*tgt.w, ao = as+at;\t\t\t\t\t\t\t\tvec4 nc = vec4( (as*src.xyz + at*tgt.xyz)/ao, ao );  \t\t\t\tgl_FragColor =  " + (P ? "nc" : "cswitch*nc + (1.0- cswitch)*tgt") + ";    \t\t\t}",
			X = "\t\t\tattribute vec2 verPos;\t\t\tvarying vec2 tCoord;\t\t\tvarying vec2 sCoord;\t\t\tvarying vec2 wCoord;\t\t\t\t\t\tuniform vec4 srct;\t\t\tuniform vec4 wrct;\t\t\tvoid main(void) {\t\t\t\ttCoord = verPos;\t\t\t\tsCoord = (verPos-srct.xy)/srct.zw;\t\t\t\twCoord = (verPos-wrct.xy)/wrct.zw;\t\t\t\tgl_Position = vec4(vec2(-1.0,-1.0) + 2.0*verPos, 0.0, 1.0);\t\t\t}";
		this.uZ(o, X)
	};
	k.N.tv.prototype = new k.f2;
	k.N.tv.prototype.WL = function (F, P, o, X, Y, y, z, s, t) {
		if (this.aR) this.ac("srct wrct wcolor awg dissv source target weight cswitch".split(" "));
		else this.ac("srct awg dissv source target cswitch".split(" "));
		var d = k.ui,
			U = this.B6;
		d.uniform4fv(U.srct, X);
		if (this.aR) {
			d.uniform4fv(U.wrct, Y);
			d.uniform1f(U.wcolor, y)
		} else {
			d.uniform4fv(U.cswitch, t)
		}
		d.uniform1f(U.awg, z);
		d.uniform1f(U.dissv, s);
		var v = [U.source, F, U.target, P];
		if (this.aR) v.push(U.weight, o);
		this.ID(v)
	};
	k.N.wo = function () {
		k.f2.call(this);
		var F = "\t\t\tprecision mediump float;\t\t\t\t\t\tuniform sampler2D prev;\t\t\tuniform sampler2D next;\t\t\tuniform sampler2D alpha;\t\t\t\t\t\tvarying vec2 coord;\t\t\t\t\t\t\t\t\tvoid main(void) {\t\t\t\tvec3 or = texture2D(prev , coord).rgb;\t\t\t\tvec3 ir = texture2D(next , coord).rgb; \t\t\t\tfloat al = texture2D(alpha, coord).w; \t\t\t\tgl_FragColor =  vec4(  (ir-(1.0-al)*or)*(1.0/al)   ,1.0 );  \t\t\t}",
			P = "\t\t\tattribute vec2 verPos;\t\t\tvarying vec2 coord;\t\t\t\t\t\tuniform vec4 rct;\t\t\tvoid main(void) {\t\t\t\tcoord = verPos;\t\t\t\tgl_Position = vec4(vec2(-1.0,-1.0) + 2.0*verPos, 0.0, 1.0);\t\t\t}";
		this.uZ(F, P)
	};
	k.N.wo.prototype = new k.f2;
	k.N.wo.prototype.WL = function (F, P, o, X) {
		this.ac(["rct", "prev", "next", "alpha"]);
		var Y = k.ui,
			y = this.B6;
		Y.uniform4fv(y.rct, [0, 0, 1, 1]);
		this.ID([y.prev, P, y.next, o, y.alpha, X])
	};

	function i8() {}
	i8.ee = function (F) {
		var P = new Uint8Array(F),
			o = 0,
			X = {
				Xu: [],
				A6: [],
				list: []
			},
			Y = r.lU(P, o);
		o += 2;
		if (Y <= 2) {
			return i8.aep(P)
		}
		var y = r.lU(P, o);
		o += 2;
		var z = r.$o(P, o, 8);
		o += 8;
		var s = r.l(P, o);
		o += 4;
		if (s > 0) X.Xu = i8.W_(P, o, s, y, Y);
		o += s;
		var t = r.$o(P, o, 8);
		o += 8;
		var d = r.l(P, o);
		o += 4;
		if (d > 0) X.A6 = d9.by(P, o, d);
		o += d;
		var U = r.$o(P, o, 8);
		o += 8;
		var v = r.l(P, o);
		o += 4;
		if (v > 0) {
			var A = {};
			b3.Gz(P, A, o + 4);
			X.list = A.Brsh.v
		}
		o += v;
		var Z = X.list;
		for (var w = 0; w < Z.length; w++) {
			ct.w_.check(Z[w].v)
		}
		return X
	};
	i8.PZ = function (F, P) {
		F.v.Nm.v = P
	};
	i8.aep = function (F) {
		var P = {
				Xu: [],
				A6: [],
				list: []
			},
			o = 0,
			X = r.lU(F, o);
		o += 2;
		var Y = r.lU(F, o);
		o += 2;
		for (var w = 0; w < Y; w++) {
			var y = r.lU(F, o);
			o += 2;
			var z = r.l(F, o);
			o += 4;
			var s = o;
			if (y == 2) {
				var t = {};
				P.Xu.push(t);
				var d = r.l(F, s);
				s += 4;
				var U = r.lU(F, s);
				s += 2;
				if (X == 2) {
					var v = r.nf(F, s);
					s += 4 + v.length * 2 + 2
				}
				t.id = c_.vs() + "-d71c-11e5-b1ae-a548a96e5f9f";
				s++;
				s += 8;
				t.T = r.g$(F, s);
				s += 16;
				var A = r.lU(F, s);
				s += 2;
				var Z = F[s];
				s++;
				t.channel = hG.zc(!1, A, F, t.T.Z, t.T.h, s, Z);
				var D = ct.Jl(t.id),
					q = D.Brsh.v;
				q.Dmtr.v.val = t.T.Z;
				q.Spcn.v.val = U;
				P.list.push({
					t: "Objc",
					v: D
				})
			}
			o += z
		}
		return P
	};
	i8.qx = function (F) {
		var P = new cB,
			o = 0,
			X = 0;
		r.Fh(P, o, 6);
		o += 2;
		r.Fh(P, o, 2);
		o += 2;
		r.bh(P, o, "8BIMsamp");
		o += 8;
		o += 4;
		X = o;
		o = i8.D7(P, o, F.Xu);
		r.oL(P, X - 4, o - X);
		r.bh(P, o, "8BIMpatt");
		o += 8;
		o += 4;
		X = o;
		o = d9.C4(P, o, F.A6);
		r.oL(P, X - 4, o - X);
		var Y = {
			classID: "null",
			Brsh: {
				t: "VlLs",
				v: F.list
			}
		};
		r.bh(P, o, "8BIMdesc");
		o += 8;
		o += 4;
		X = o;
		r.oL(P, o, 16);
		o += 4;
		o += b3.p1(P, Y, o);
		r.oL(P, X - 4, o - X);
		return P.data.slice(0, o).buffer
	};
	i8.W_ = function (F, P, o, X, Y) {
		var y = r.l,
			z = r.g$,
			s = P + o,
			t = [];
		while (P < s) {
			var d = {};
			t.push(d);
			var U = y(F, P);
			P += 4;
			var v = P,
				A = r.Zd(F, P);
			P += A.length;
			d.id = A.dC;
			if (X == 1) {
				P += 9;
				d.T = z(F, P);
				P += 16
			} else {
				P += 7;
				var Z = y(F, P);
				P += 4;
				d.T = z(F, P);
				P += 16;
				var D = y(F, P);
				P += 4;
				P += D * 4;
				var q = y(F, P);
				P += 4;
				var R = y(F, P);
				P += 4;
				var J = z(F, P);
				P += 16
			}
			var W = r.lU(F, P);
			P += 2;
			var p = F[P];
			P += 1;
			d.channel = hG.zc(!1, W, F, d.T.Z, d.T.h, P, p);
			if (U % 4 != 0) U += 4 - U % 4;
			P = v + U
		}
		return t
	};
	i8.D7 = function (F, P, o) {
		var X = r.oL,
			Y = r.nl;
		for (var w = 0; w < o.length; w++) {
			var y = o[w],
				z = P + 4,
				t = 56,
				U = 1;
			P += 4;
			r.JG(F, P, y.id);
			P += y.id.length + 2;
			F.cj(P, 1);
			F.data[P] = 1;
			P += 3;
			X(F, P, 3);
			P += 4;
			var s = P;
			P += 4;
			Y(F, P, y.T);
			P += 16;
			X(F, P, t);
			P += 4;
			P += t * 4;
			X(F, P - 4, 1);
			var d = P;
			P += 4;
			X(F, P, 8);
			P += 4;
			Y(F, P, y.T);
			P += 16;
			r.Fh(F, P, 8);
			P += 2;
			F.cj(P, 1);
			F.data[P] = U;
			P++;
			F.cj(P, y.T.M() * 2);
			P = hG.CP(y.channel, F.data, y.T.Z, y.T.h, P, U);
			F.cj(P, 8);
			P += 8;
			var v = P - z;
			X(F, z - 4, v);
			X(F, s, v - 49);
			X(F, d, v - 305);
			if (v % 4 != 0) P += 4 - v % 4
		}
		return P
	};

	function e2() {}
	e2.ee = function (F) {
		var P = new Uint8Array(F),
			o = [],
			X = 0,
			Y = r.lU(P, X);
		X += 2;
		if (Y != 4) {
			throw "Unknown version of curves: " + Y
		}
		var y = r.lU(P, X);
		X += 2;
		for (var w = 0; w < y; w++) {
			var z = e2.OO(P, X);
			X += 2 + 2 * z.length;
			o.push(z)
		}
		if (X == P.length) return o;
		var s = r.$o(P, X, 4);
		X += 4;
		var t = r.lU(P, X);
		X += 2;
		var d = r.lU(P, X);
		X += 2;
		if (d != 0) throw "extra curves for channels";
		return o
	};
	e2.TM = function (F, P, o) {
		var X = P,
			Y = [],
			y = F[P];
		P += 3;
		var z = r.l(F, P);
		P += 4;
		for (var w = 0; w < 4; w++) {
			var s = z >>> w & 1;
			if (s) {
				if (y == 0) {
					var t = e2.OO(F, P);
					P += 2 + 2 * t.length
				} else {
					var t = e2.ako(F, P);
					P += 256
				}
				Y.push(t)
			} else Y.push(y == 0 ? [0, 0, 255, 255] : e2.abl())
		}
		var d = bv.tt("curv");
		for (var w = 0; w < 4; w++) {
			if (y == 0) {
				var U = Y[w],
					v = [];
				for (var A = 0; A < U.length; A += 2) v.push(H.JH.Rn(U[A], U[A + 1], !0));
				e2._j(d, w, v)
			} else e2._j(d, w, Y[w])
		}
		return d
	};
	e2.abl = function () {
		var F = [];
		for (var w = 0; w < 256; w++) F.push(w);
		return F
	};
	e2._j = function (F, P, o) {
		var X = gm.pg("CrvA", P);
		if (o.length < 256) X.Crv = {
			t: "VlLs",
			v: o
		};
		else {
			X.Mpng = {
				t: "VlLs",
				v: []
			};
			for (var w = 0; w < 256; w++) X.Mpng.v[w] = {
				t: "long",
				v: o[w]
			}
		}
		X = {
			t: "Objc",
			v: X
		};
		var Y = F.Adjs.v,
			y = gm.w$(Y, P);
		if (y == -1) Y.push(X);
		else Y[y] = X
	};
	e2.Yl = function (F, P) {
		var o = F.Adjs.v,
			X = gm.w$(o, P);
		if (X == -1) {
			if (o.length == 0 || o[0].v.Crv) return [H.JH.Rn(0, 0, !0), H.JH.Rn(255, 255, !0)];
			var Y = [];
			for (var w = 0; w < 256; w++) Y.push(w);
			return Y
		}
		var y = o[X].v,
			z = y.Crv;
		if (z) return z.v;
		var Y = [];
		for (var w = 0; w < 256; w++) Y.push(y.Mpng.v[w].v);
		return Y
	};
	e2.OO = function (F, P) {
		var o = [],
			X = r.lU(F, P);
		P += 2;
		for (var Y = 0; Y < X; Y++) {
			var y = r.lU(F, P);
			P += 2;
			var z = r.lU(F, P);
			P += 2;
			o.push(z, y)
		}
		return o
	};
	e2.a4N = function (F, P, o) {
		var X = o.length / 2;
		r.Fh(F, P, X);
		P += 2;
		for (var Y = 0; Y < X; Y++) {
			r.Fh(F, P, o[Y * 2 + 1]);
			P += 2;
			r.Fh(F, P, o[Y * 2 + 0]);
			P += 2
		}
	};
	e2.ako = function (F, P) {
		var o = [];
		for (var w = 0; w < 256; w++) o.push(F[P + w]);
		return o
	};
	e2.a26 = function (F, P, o) {
		F.cj(P, 256);
		for (var w = 0; w < 256; w++) F.data[P + w] = o[w]
	};
	e2.nG = function (F, P, o) {
		var X = [];
		for (var w = 0; w < 4; w++) {
			var Y = e2.Yl(o, w);
			if (Y.length == 256) X.push(Y);
			else {
				var y = [];
				for (var z = 0; z < Y.length; z++) y.push(Y[z].v.Hrzn.v, Y[z].v.Vrtc.v);
				X.push(y)
			}
		}
		var s = P,
			t = X[0].length == 256 ? 1 : 0;
		F.cj(P, 3);
		F.data[P] = t;
		F.data[P + 1] = 0;
		F.data[P + 2] = 1;
		P += 3;
		r.oL(F, P, 15);
		P += 4;
		for (var w = 0; w < 4; w++) {
			var d = X[w];
			if (t == 0) {
				e2.a4N(F, P, d);
				P += 2 + 2 * d.length
			} else {
				e2.a26(F, P, d);
				P += 256
			}
		}
		return P - s
	};

	function az() {}
	az.TM = function (F, P, o) {
		var X = {},
			Y = r.lU(F, P);
		P += 2;
		X.jg = F[P] == 1;
		P++;
		P++;
		X.yM = [r.dx(F, P), r.dx(F, P + 2), r.dx(F, P + 4)];
		P += 6;
		X.TW = [r.dx(F, P), r.dx(F, P + 2), r.dx(F, P + 4)];
		P += 6;
		X.fy = [];
		for (var w = 0; w < 6; w++) {
			var y = {};
			y.Ej = [r.dx(F, P), r.dx(F, P + 2), r.dx(F, P + 4), r.dx(F, P + 6)];
			P += 8;
			y.qh = [r.dx(F, P), r.dx(F, P + 2), r.dx(F, P + 4)];
			P += 6;
			X.fy.push(y)
		}
		var z = bv.tt("hue2"),
			s = X;
		if (z.Clrz == null) z.Clrz = {
			t: "bool",
			v: !1
		};
		z.Clrz.v = s.jg;
		for (var w = 0; w < 7; w++) {
			var t = w == 0 ? s.jg ? s.yM : s.TW : s.fy[w - 1];
			az._j(z, w, t)
		}
		return z
	};
	az.agg = function (F) {
		return {
			classID: "Hst2",
			H: {
				t: "long",
				v: F[0]
			},
			Strt: {
				t: "long",
				v: F[1]
			},
			Lght: {
				t: "long",
				v: F[2]
			}
		}
	};
	az.w$ = function (F, P) {
		for (var w = 0; w < F.length; w++) {
			var o = F[w].v.LclR;
			if (P == 0 && o == null || o != null && o.v == P) return w
		}
		return -1
	};
	az._j = function (F, P, o) {
		var X = P == 0 ? o : o.qh,
			Y = az.agg(X);
		if (P != 0) {
			var y = o.Ej;
			Y.LclR = {
				t: "long",
				v: P
			}, Y.BgnR = {
				t: "long",
				v: y[0]
			};
			Y.BgnS = {
				t: "long",
				v: y[1]
			};
			Y.EndS = {
				t: "long",
				v: y[2]
			};
			Y.EndR = {
				t: "long",
				v: y[3]
			}
		}
		Y = {
			t: "Objc",
			v: Y
		};
		var z = F.Adjs.v,
			s = az.w$(z, P);
		if (s == -1) z.push(Y);
		else z[s] = Y
	};
	az.Yl = function (F, P) {
		var o = F.Adjs.v,
			X = az.w$(o, P);
		if (X == -1) {
			if (P == 0) return [0, 0, 0];
			else return [{
				Ej: [315, 345, 15, 45],
				qh: [0, 0, 0]
			}, {
				Ej: [15, 45, 75, 105],
				qh: [0, 0, 0]
			}, {
				Ej: [75, 105, 135, 165],
				qh: [0, 0, 0]
			}, {
				Ej: [135, 165, 195, 225],
				qh: [0, 0, 0]
			}, {
				Ej: [195, 225, 255, 285],
				qh: [0, 0, 0]
			}, {
				Ej: [255, 285, 315, 345],
				qh: [0, 0, 0]
			}][P - 1]
		}
		var Y = o[X].v,
			y = [Y.H.v, Y.Strt.v, Y.Lght.v];
		if (P == 0) return y;
		return {
			qh: y,
			Ej: [Y.BgnR.v, Y.BgnS.v, Y.EndS.v, Y.EndR.v]
		}
	};
	az.nG = function (F, P, o) {
		var X = {
			jg: o.Clrz.v,
			fy: []
		};
		X.yM = X.TW = az.Yl(o, 0);
		for (var w = 1; w < 7; w++) X.fy.push(az.Yl(o, w));
		var Y = 2 + 2 + 12 + 6 * 14,
			y = F.data;
		F.cj(P, Y);
		r.J6(y, P, 2);
		P += 2;
		y[P] = X.jg ? 1 : 0;
		P++;
		P++;
		r.Gl(y, P + 0, X.yM[0]);
		r.Gl(y, P + 2, X.yM[1]);
		r.Gl(y, P + 4, X.yM[2]);
		P += 6;
		r.Gl(y, P + 0, X.TW[0]);
		r.Gl(y, P + 2, X.TW[1]);
		r.Gl(y, P + 4, X.TW[2]);
		P += 6;
		for (var w = 0; w < 6; w++) {
			var z = X.fy[w].Ej,
				s = X.fy[w].qh;
			r.Gl(y, P + 0, z[0]);
			r.Gl(y, P + 2, z[1]);
			r.Gl(y, P + 4, z[2]);
			r.Gl(y, P + 6, z[3]);
			P += 8;
			r.Gl(y, P + 0, s[0]);
			r.Gl(y, P + 2, s[1]);
			r.Gl(y, P + 4, s[2]);
			P += 6
		}
		return Y
	};

	function gm() {}
	gm.ee = function (F) {
		var P = new Uint8Array(F),
			o = 2,
			X = [];
		for (var w = 0; w < 29; w++) {
			var Y = [];
			X.push(Y);
			for (var y = 0; y < 5; y++) Y.push(r.lU(P, o + w * 10 + y * 2))
		}
		o += 29 * 10;
		if (o < P.length) {
			var z = r.$o(P, o, 4);
			o += 4;
			var s = r.lU(P, o);
			o += 2;
			var t = r.lU(P, o);
			o += 2;
			var d = t - 29;
			for (var w = 0; w < d; w++) {
				var Y = [];
				X.push(Y);
				for (var y = 0; y < 5; y++) Y.push(r.lU(P, o + w * 10 + y * 2))
			}
		}
		var U = bv.tt("levl");
		for (var w = 0; w < 4; w++) gm._j(U, w, X[w]);
		return U
	};
	gm.pg = function (F, w) {
		var P = ["Cmps", "Rd", "Grn", "Bl"],
			o = {
				t: "obj ",
				v: [{
					t: "Enmr",
					v: {
						classID: "Chnl",
						typeID: "Chnl",
						enum: P[w]
					}
				}]
			};
		return {
			classID: F,
			Chnl: o
		}
	};
	gm.w$ = function (F, P) {
		var o = {
			Cmps: 0,
			Rd: 1,
			Grn: 2,
			Bl: 3
		};
		for (var w = 0; w < F.length; w++) {
			var X = F[w].v,
				Y = o[X.Chnl.v[0].v.enum];
			if (Y == P) return w
		}
		return -1
	};
	gm._j = function (F, P, o) {
		var X = gm.pg("LvlA", P);
		X.Inpt = {
			t: "VlLs",
			v: [{
				t: "long",
				v: o[0]
			}, {
				t: "long",
				v: o[1]
			}]
		};
		X.Otpt = {
			t: "VlLs",
			v: [{
				t: "long",
				v: o[2]
			}, {
				t: "long",
				v: o[3]
			}]
		};
		X.Gmm = {
			t: "doub",
			v: o[4] / 100
		};
		X = {
			t: "Objc",
			v: X
		};
		var Y = F.Adjs.v,
			y = gm.w$(Y, P);
		if (y == -1) Y.push(X);
		else Y[y] = X
	};
	gm.Yl = function (F, P) {
		var o = [0, 255, 0, 255, 100],
			X = F.Adjs.v,
			Y = gm.w$(X, P);
		if (Y == -1) return o;
		var y = X[Y].v;
		if (y.Inpt) {
			o[0] = y.Inpt.v[0].v;
			o[1] = y.Inpt.v[1].v
		}
		if (y.Otpt) {
			o[2] = y.Otpt.v[0].v;
			o[3] = y.Otpt.v[1].v
		}
		if (y.Gmm) {
			o[4] = Math.round(y.Gmm.v * 100)
		}
		return o
	};
	gm.qx = function (F, P) {
		var o = [],
			X = 0;
		for (var w = 0; w < 4; w++) o.push(gm.Yl(P, w));
		while (o.length < 29) o.push([0, 255, 0, 255, 100]);
		F.cj(0, 2 + 10 * 29);
		r.J6(F.data, X, 2);
		X += 2;
		for (var w = 0; w < 29; w++) {
			var Y = o[w];
			for (var y = 0; y < 5; y++) r.J6(F.data, X + w * 10 + y * 2, Y[y])
		}
		X += 29 * 10;
		if (o.length == 29) return X;
		F.cj(X, 8 + 10 * (o.length - 29));
		r.jW(F.data, X, "Lvls");
		X += 4;
		r.J6(F.data, X, 3);
		X += 2;
		r.J6(F.data, X, o.length);
		X += 2;
		var z = o.length - 29;
		for (var w = 0; w < z; w++) {
			var Y = o[29 + w];
			for (var y = 0; y < 5; y++) r.J6(F.data, X + w * 10 + y * 2, Y[y])
		}
		X += 10 * z;
		return X
	};

	function gA() {}
	gA.ee = function (F) {
		var P = new Uint8Array(F),
			o = 2,
			X = {
				f1: [],
				hI: []
			},
			Y = r.$o(P, o, 4);
		o += 4;
		var y = r.lU(P, o);
		o += 2;
		var z = r.l(P, o);
		o += 4;
		X.f1 = d9.by(P, o, z);
		o += z;
		var s = r.l(P, o);
		o += 4;
		for (var w = 0; w < s; w++) {
			var t = r.l(P, o);
			o += 4;
			var d = o,
				U = {
					By: {},
					rB: {}
				};
			X.hI.push(U);
			o += 4;
			o += b3.Gz(P, U.By, o);
			o += 4;
			o += b3.Gz(P, U.rB, o);
			o = d + t;
			var v = U.rB.blendOptions,
				A = U.rB.Lefx;
			if (v && Object.keys(v.v).length > 1) {}
			if (A) {
				if (A.v.masterFXSwitch == null) A.v.masterFXSwitch = {
					t: "bool",
					v: !0
				};
				ff.lm(A.v)
			}
		}
		return X
	};
	gA.PZ = function (F, P) {
		F.By.Nm.v = P
	};
	gA.qx = function (F) {
		var P = new cB,
			o = 0;
		r.Fh(P, o, 2);
		o += 2;
		r.bh(P, o, "8BSL");
		o += 4;
		r.Fh(P, o, 3);
		o += 2;
		var X = o;
		o += 4;
		o = d9.C4(P, o, F.f1);
		r.oL(P, X, o - X - 4);
		var Y = F.hI.length;
		r.oL(P, o, Y);
		o += 4;
		for (var w = 0; w < Y; w++) {
			o += 4;
			var y = o,
				z = F.hI[w];
			r.oL(P, o, 16);
			o += 4;
			o += b3.p1(P, z.By, o);
			var s = z.rB.Lefx;
			if (s) {
				z.rB.Lefx = JSON.parse(JSON.stringify(s));
				ff._k(z.rB.Lefx.v)
			}
			r.oL(P, o, 16);
			o += 4;
			o += b3.p1(P, z.rB, o);
			if (s) z.rB.Lefx = s;
			r.oL(P, y - 4, o - y)
		}
		return P.data.slice(0, o).buffer
	};

	function bu() {}
	bu.TM = function (F, P, o) {
		var X = r.lU(F, P);
		P += 2;
		var Y = {};
		Y.wA = r.lU(F, P) == 1;
		P += 2;
		Y.ju = [];
		for (var w = 0; w < 10; w++) {
			var y = [];
			Y.ju.push(y);
			for (var z = 0; z < 4; z++) y.push(r.dx(F, P + z * 2));
			P += 8
		}
		var s = bv.tt("selc");
		s.Mthd.v.CrcM = Y.wA ? "Absl" : "Rltv";
		for (var w = 1; w < 10; w++) bu._j(s, w - 1, Y.ju[w]);
		return s
	};
	bu.zP = "Rds Ylws Grns Cyns Bls Mgnt Whts Ntrl Blks".split(" ");
	bu.pg = function (F, w) {
		var P = ["Cmps", "Rd", "Grn", "Bl"],
			o = {
				t: "obj ",
				v: [{
					t: "Enmr",
					v: {
						classID: "Chnl",
						typeID: "Chnl",
						enum: P[w]
					}
				}]
			};
		return {
			classID: F,
			Chnl: o
		}
	};
	bu.w$ = function (F, P) {
		var o = bu.zP;
		for (var w = 0; w < F.length; w++) {
			var X = F[w].v,
				Y = o.indexOf(X.Clrs.v.Clrs);
			if (Y == P) return w
		}
		return -1
	};
	bu._j = function (F, P, o) {
		var X = ["Cyn", "Mgnt", "Ylw", "Blck"],
			Y = {
				classID: "ClrC",
				Clrs: {
					t: "enum",
					v: {
						Clrs: bu.zP[P]
					}
				}
			};
		for (var y = 0; y < 4; y++) Y[X[y]] = {
			t: "UntF",
			v: {
				type: "#Prc",
				val: o[y]
			}
		};
		Y = {
			t: "Objc",
			v: Y
		};
		var z = F.ClrC.v,
			s = bu.w$(z, P);
		if (s == -1) z.push(Y);
		else z[s] = Y
	};
	bu.Yl = function (F, P) {
		var o = [0, 0, 0, 0],
			X = F.ClrC.v,
			Y = bu.w$(X, P);
		if (Y == -1) return o;
		var y = ["Cyn", "Mgnt", "Ylw", "Blck"];
		for (var w = 0; w < 4; w++)
			if (X[Y].v[y[w]]) o[w] = X[Y].v[y[w]].v.val;
		return o
	};
	bu.nG = function (F, P, o) {
		var X = {
			wA: o.Mthd.v.CrcM == "Absl",
			ju: [
				[0, 0, 0, 0]
			]
		};
		for (var w = 0; w < 9; w++) X.ju.push(bu.Yl(o, w));
		F.cj(P, 84);
		r.J6(F.data, P, 1);
		P += 2;
		r.J6(F.data, P, X.wA ? 1 : 0);
		P += 2;
		for (var w = 0; w < 10; w++) {
			var Y = X.ju[w];
			for (var y = 0; y < 4; y++) r.Gl(F.data, P + y * 2, Y[y]);
			P += 8
		}
		return 84
	};

	function gN() {}
	gN.tt = function () {
		return {
			gx: new ev(0, 0, 50, 50),
			By: "",
			s3: "play",
			b: H.V.Ny.JF([.1, .1, .9, .5, .1, .9], 0)
		}
	};
	gN.ee = function (F) {
		F = new Uint8Array(F);
		var P = 0,
			o = [],
			X = Date.now(),
			Y = r.$o(F, 0, 4);
		P += 4;
		var y = r.l(F, P);
		P += 4;
		var z = r.l(F, P);
		P += 4;
		for (var w = 0; w < z; w++) {
			var s = r.nf(F, P);
			P += s.length * 2 + 4 + 2;
			if ((s.length & 1) == 0) P += 2;
			var t = r.l(F, P);
			P += 4;
			var d = r.l(F, P);
			P += 4;
			var U = P,
				v = r.Zd(F, U).dC;
			U += v.length + 1;
			var A = r.g$(F, U);
			U += 16;
			var Z = gN.xe(F, U, d - (U - P)),
				D = H.V.dq(Z),
				q = H.D.nP(D),
				R = 1 / q.Z,
				J = 1 / q.h;
			H.V.G5(Z, new cu(R, 0, 0, J, -q.x * R, -q.y * J));
			o.push({
				s3: s,
				By: v,
				b: Z,
				gx: A
			});
			P += d
		}
		return o
	};
	gN.PZ = function (F, P) {
		F.s3 = P
	};
	gN.qx = function (F) {
		var P = new cB,
			o = 0;
		r.bh(P, o, "cush");
		o += 4;
		r.oL(P, o, 2);
		o += 4;
		r.oL(P, o, F.length);
		o += 4;
		for (var w = 0; w < F.length; w++) {
			var X = F[w],
				Y = X.s3 + "\0";
			r.lS(P, o, Y);
			o += 4 + Y.length * 2;
			if ((Y.length & 1) == 1) o += 2;
			r.oL(P, o, 1);
			o += 4;
			o += 4;
			var y = o;
			r.JG(P, o, X.By);
			o += X.By.length + 1;
			r.nl(P, o, X.gx);
			o += 16;
			P.cj(o, X.b.length * 26);
			gN.A$(P.data, o, X.b, 1, 1);
			o += X.b.length * 26;
			var z = o - y;
			if ((z & 3) != 0) z += 4 - (z & 3);
			r.oL(P, y - 4, z);
			o = y + z
		}
		return P.data.slice(0, o).buffer
	};
	gN.xe = function (F, P, o, X, Y) {
		if (X == null) X = 1;
		if (Y == null) Y = 1;
		var y = r.dx,
			z = r.a11,
			s = [],
			t = Math.floor(o / 26);
		for (var w = 0; w < t; w++) {
			var d = P + w * 26,
				U = {},
				v = 0;
			s.push(U);
			U.type = y(F, d);
			d += 2;
			if (U.type == 6) {
				v = 24
			}
			if (U.type == 8) {
				U.all = y(F, d);
				d += 2;
				v = 22
			}
			if (U.type == 0 || U.type == 3) {
				U.length = y(F, d);
				d += 2;
				U.IO = y(F, d);
				d += 2;
				U.yU = y(F, d);
				d += 2;
				U.Oj = r.l(F, d);
				d += 4;
				U.UB = r.l(F, d);
				d += 4;
				v = 10
			}
			if (U.type == 1 || U.type == 2 || U.type == 4 || U.type == 5) {
				var A, Z;
				Z = z(F, d);
				d += 4;
				A = z(F, d);
				d += 4;
				U.wU = new aH(A * X, Z * Y);
				Z = z(F, d);
				d += 4;
				A = z(F, d);
				d += 4;
				U._ = new aH(A * X, Z * Y);
				Z = z(F, d);
				d += 4;
				A = z(F, d);
				d += 4;
				U.dv = new aH(A * X, Z * Y);
				v = 0
			}
			for (var D = 0; D < v; D++)
				if (F[d + D] != 0) {
					console.log("Unexpected non-zero byte!", U, D, F[d + D])
				}
		}
		return s
	};
	gN.A$ = function (F, P, o, X, Y) {
		var y = r.Gl,
			z = r.NF,
			s = o.length;
		for (var w = 0; w < s; w++) {
			var t = P + w * 26,
				d = o[w];
			y(F, t, d.type);
			t += 2;
			if (d.type == 6) {}
			if (d.type == 8) y(F, t, d.all);
			if (d.type == 0 || d.type == 3) {
				y(F, t, d.length);
				t += 2;
				y(F, t, d.IO);
				t += 2;
				y(F, t, d.yU);
				t += 2
			}
			if (d.type == 1 || d.type == 2 || d.type == 4 || d.type == 5) {
				z(F, t, d.wU.y / Y);
				t += 4;
				z(F, t, d.wU.x / X);
				t += 4;
				z(F, t, d._.y / Y);
				t += 4;
				z(F, t, d._.x / X);
				t += 4;
				z(F, t, d.dv.y / Y);
				t += 4;
				z(F, t, d.dv.x / X);
				t += 4
			}
		}
	};

	function gL() {}
	gL.ee = function (F) {
		var P = new Uint8Array(F),
			o = [],
			X = 0;
		X = gL.vX(P, X, o);
		if (X + 3 < P.length) {
			o = [];
			X = gL.vX(P, X, o)
		}
		return o
	};
	gL.vX = function (F, P, o) {
		var X = r.lU,
			Y = r.dx,
			y = X(F, P);
		P += 2;
		var z = X(F, P);
		P += 2;
		for (var w = 0; w < z; w++) {
			var s = gL.HD(F, P);
			P += 10;
			if (y == 2) {
				s.ah = r.nf(F, P);
				P += 4 + s.ah.length * 2 + 2
			}
			o.push(s)
		}
		return P
	};
	gL.HD = function (F, P) {
		var o = r.lU,
			X = r.dx,
			Y = o(F, P),
			Z = null;
		P += 2;
		var y = o(F, P);
		P += 2;
		var z = o(F, P);
		P += 2;
		var s = o(F, P);
		P += 2;
		var t = o(F, P);
		P += 2;
		var d = 1 / 65535,
			U = 255 / 65535,
			v = 100 / 65535,
			A = 255 / 1e4;
		if (Y == 0) Z = {
			U: y * U,
			S: z * U,
			i: s * U
		};
		else if (Y == 1) {
			Z = H.ul(y * d, z * d, s * d);
			Z.U *= 255;
			Z.S *= 255;
			Z.i *= 255
		} else if (Y == 2) Z = H.j.T6({
			classID: "CMYC",
			Cyn: {
				t: "doub",
				v: 100 - y * v
			},
			Mgnt: {
				t: "doub",
				v: 100 - z * v
			},
			Ylw: {
				t: "doub",
				v: 100 - s * v
			},
			Blck: {
				t: "doub",
				v: 100 - t * v
			}
		});
		else if (Y == 7) {
			var D = H.qL(y / 100, X(F, P - 6) / 100, X(F, P - 4) / 100);
			Z = D
		} else if (Y == 8) {
			Z = {
				U: 255 - y * A,
				S: 255 - z * A,
				i: 255 - s * A
			}
		} else throw "e " + Y + ", ";
		return Z
	};
	gL.qx = function (F) {
		var P = new cB,
			o = 0,
			X = r.Fh;
		X(P, o, 2);
		o += 2;
		X(P, o, F.length);
		o += 2;
		for (var w = 0; w < F.length; w++) {
			var Y = F[w];
			P.cj(o, 10);
			gL.PO(P.data, o, Y);
			o += 10;
			var y = (Y.ah ? Y.ah : "") + "\0";
			r.lS(P, o, y);
			o += 4 + y.length * 2
		}
		return P.data.slice(0, o).buffer
	};
	gL.PZ = function (F, P) {
		F.ah = P
	};
	gL.PO = function (F, P, o) {
		var X = 65535 / 255,
			Y = r.J6;
		Y(F, P, 0);
		Y(F, P + 2, Math.round(o.U * X));
		Y(F, P + 4, Math.round(o.S * X));
		Y(F, P + 6, Math.round(o.i * X));
		Y(F, P + 8, 0)
	};

	function fb() {}
	fb.ee = function (F) {
		var P = new Uint8Array(F),
			o = 4,
			X = {};
		X.tP = r.nf(P, o);
		o += 4 + X.tP.length * 2 + 2;
		X.exp = P[o++] == 1;
		X.xX = [];
		var Y = r.l(P, o);
		o += 4;
		for (var w = 0; w < Y; w++) {
			var y = {};
			X.xX.push(y);
			y.XN = r.lU(P, o);
			o += 2;
			y.shift = P[o++] == 1;
			y.Wt = P[o++] == 1;
			y.color = r.lU(P, o);
			o += 2;
			y.tP = r.nf(P, o);
			o += 4 + y.tP.length * 2 + 2;
			y.exp = P[o++] == 1;
			y.xX = [];
			var aW = r.l(P, o);
			o += 4;
			for (var z = 0; z < aW; z++) {
				var s = {};
				y.xX.push(s);
				s.exp = P[o++] == 1;
				s.Y = P[o++] == 1;
				s.r1 = P[o++] == 1;
				s.ek = P[o++];
				var t = r.$o(P, o, 4);
				o += 4;
				if (t == "TEXT") {
					s.Bm = fb.aB(P, o);
					o += 4 + s.Bm.length
				} else if (t == "long") {
					s.Bm = r.$o(P, o, 4);
					o += 4
				} else throw "e";
				s.vN = fb.aB(P, o);
				o += 4 + s.vN.length;
				var d = r.tF(P, o);
				o += 4;
				if (d == -1) {
					s.w1 = {};
					var U = b3.Gz(P, s.w1, o);
					o += U
				}
			}
		}
		console.log(X);
		var v = new Uint8Array(fb.qx(X));
		for (var w = 0; w < v.length; w++)
			if (v[w] != P[w]) {
				console.log(P.length, v.length);
				var A = 4 * (w >>> 2) - 16;
				console.log(r.h$(P, A, 64));
				console.log(r.h$(v, A, 64));
				console.log(P.slice(A, A + 64));
				console.log(v.slice(A, A + 64));
				throw w
			} console.log(X);
		return [X]
	};
	fb.aB = function (F, P) {
		var o = r.l(F, P);
		return r.$o(F, P + 4, o)
	};
	fb.DA = function (F, P, o) {
		r.oL(F, P, o.length);
		r.bh(F, P + 4, o)
	};
	fb.qx = function (F) {
		var P = new cB,
			o = 0;
		r.oL(P, o, 16);
		o += 4;
		r.lS(P, o, F.tP + "\0");
		o += 4 + F.tP.length * 2 + 2;
		P.cj(o, 1);
		P.data[o++] = F.exp ? 1 : 0;
		var X = F.xX.length;
		r.oL(P, o, X);
		o += 4;
		for (var w = 0; w < X; w++) {
			var Y = F.xX[w];
			r.Fh(P, o, Y.XN);
			o += 2;
			P.cj(o, 2);
			P.data[o++] = Y.shift ? 1 : 0;
			P.data[o++] = Y.Wt ? 1 : 0;
			r.Fh(P, o, Y.color);
			o += 2;
			r.lS(P, o, Y.tP + "\0");
			o += 4 + Y.tP.length * 2 + 2;
			P.cj(o, 1);
			P.data[o++] = Y.exp ? 1 : 0;
			var aW = Y.xX.length;
			r.oL(P, o, aW);
			o += 4;
			for (var y = 0; y < aW; y++) {
				var z = Y.xX[y];
				P.cj(o, 4);
				P.data[o++] = z.exp ? 1 : 0;
				P.data[o++] = z.Y ? 1 : 0;
				P.data[o++] = z.r1 ? 1 : 0;
				P.data[o++] = z.ek;
				var s = z.Bm == "LqFy" || z.Bm == "Avrg" || z.Bm == "GEfc" || z.Bm == "PbPl" || z.Bm == "Fbrs";
				r.bh(P, o, s ? "long" : "TEXT");
				o += 4;
				if (!s) {
					fb.DA(P, o, z.Bm);
					o += 4 + z.Bm.length
				} else {
					r.bh(P, o, z.Bm);
					o += 4
				}
				fb.DA(P, o, z.vN);
				o += 4 + z.vN.length;
				r.Oc(P, o, z.w1 ? -1 : 0);
				o += 4;
				if (z.w1) {
					var t = b3.p1(P, z.w1, o);
					o += t
				}
			}
		}
		return P.data.slice(0, o).buffer
	};

	function h7() {}
	h7.ee = function (F) {
		var P = new Uint8Array(F),
			o = 0,
			X = r.l(P, o),
			t;
		o += 4;
		var Y = r.$o(P, o, 8);
		o += 8;
		var y = r.L6(P, o);
		o += 4;
		var z = r.L6(P, o);
		o += 4;
		var s = r.L6(P, o);
		o += 4;
		if (X == 2) {
			t = new Float32Array(F, 32, F.byteLength - 32 >>> 2)
		} else if (X == 3 || X == 4) {
			t = new Float32Array(z * s * 2);
			var d = 0,
				U = 0,
				v = !0;
			o = X == 3 ? 32 : 16 + 8 + 40;
			while (o < P.length) {
				var A = r.L6(P, o);
				o += 4;
				if (v) U += A;
				else {
					for (var w = 0; w < A; w++) {
						t[d + U + w << 1] = r.CC(P, o);
						t[(d + U + w << 1) + 1] = r.CC(P, o + 4);
						o += 8
					}
					U += A
				}
				v = !v;
				if (A != 0 && U == z) {
					d += z;
					U = 0;
					v = !0;
					if (d == z * s) break
				}
			}
		} else throw "unknown Mesh version: " + X;
		return {
			YY: z,
			mi: s,
			map: t
		}
	};
	h7.HC = function (F) {
		var P = F.YY,
			o = F.mi,
			X = F.map,
			Y = new Uint8Array(32 + o * P * 8 + o * 8),
			y = 0,
			z = 0;
		r.GB(Y, y, 3);
		y += 4;
		r.jW(Y, y, "yfqLhseM");
		y += 8;
		r.vH(Y, y, 2);
		y += 4;
		r.vH(Y, y, P);
		y += 4;
		r.vH(Y, y, o);
		y += 4;
		r.vH(Y, y, 0);
		y += 4;
		r.vH(Y, y, 1);
		y += 4;
		for (var s = 0; s < o; s++) {
			r.vH(Y, y, 0);
			y += 4;
			r.vH(Y, y, P);
			y += 4;
			for (var t = 0; t < P; t++) {
				r.pq(Y, y, X[z]);
				r.pq(Y, y + 4, X[z + 1]);
				z += 2;
				y += 8
			}
		}
		return Y.buffer
	};

	function hc() {}
	hc.ee = function (F) {
		var P = new Uint8Array(F),
			o = 0,
			X = r.$o(P, o, 4);
		o += 4;
		var Y = r.lU(P, o);
		o += 2;
		var y = r.l(P, o);
		o += 4;
		var z = [];
		for (var w = 0; w < y; w++) {
			var s = r.l(P, o);
			o += 4;
			var t = {
				classID: "ShpC",
				Nm: {
					t: "TEXT",
					v: ""
				},
				Crv: {
					t: "VlLs",
					v: []
				}
			};
			z.push(t);
			var d = r.nf(P, o);
			t.Nm.v = d;
			o += 4 + d.length * 2 + 2;
			var U = r.lU(P, o);
			o += 2;
			var v = r.lU(P, o);
			o += 2;
			for (var A = 0; A < v; A++) {
				var Z = H.JH.Rn(0, 0, !0);
				Z.v.Vrtc.v = r.lU(P, o);
				o += 2;
				Z.v.Hrzn.v = r.lU(P, o);
				o += 2;
				t.Crv.v.push(Z)
			}
			if (s == 1) {} else if (s == 2) {
				for (var A = 0; A < v; A++) {
					t.Crv.v[A].v.Cnty.v = P[o] == 1;
					o += 1
				}
			} else throw "error";
			var D = r.l(P, o);
			o += 4;
			var q = r.l(P, o);
			o += 4
		}
		return z
	};
	hc.PZ = function (F, P) {
		F.Nm.v = P
	};
	hc.qx = function (F) {
		var P = new cB,
			o = 0;
		r.bh(P, o, "8BFS");
		o += 4;
		r.Fh(P, o, 1);
		o += 2;
		r.oL(P, o, F.length);
		o += 4;
		for (var w = 0; w < F.length; w++) {
			r.oL(P, o, 2);
			o += 4;
			var X = F[w];
			r.lS(P, o, X.Nm.v + "\0");
			o += 4 + X.Nm.v.length * 2 + 2;
			r.Fh(P, o, 2);
			o += 2;
			var Y = X.Crv.v.length;
			r.Fh(P, o, Y);
			o += 2;
			for (var y = 0; y < Y; y++) {
				var z = X.Crv.v[y];
				r.Fh(P, o, z.v.Vrtc.v);
				o += 2;
				r.Fh(P, o, z.v.Hrzn.v);
				o += 2
			}
			P.cj(o, Y);
			for (var y = 0; y < Y; y++) {
				P.data[o] = X.Crv.v[y].v.Cnty.v;
				o++
			}
			r.oL(P, o, 0);
			o += 4;
			r.oL(P, o, 0);
			o += 4
		}
		return P.data.slice(0, o).buffer
	};

	function d9() {}
	d9.ee = function (F) {
		var P = new Uint8Array(F),
			o = 4,
			X = r.lU(P, o);
		o += 2;
		var Y = r.l(P, o);
		o += 4;
		var y = [];
		for (var w = 0; w < Y; w++) {
			var z = {};
			y.push(z);
			o = d9.qe(P, o, z)
		}
		return y
	};
	d9.PZ = function (F, P) {
		F.name = P
	};
	d9.qx = function (F) {
		var P = new cB,
			o = 0;
		r.bh(P, o, "8BPT");
		o += 4;
		r.Fh(P, o, 1);
		o += 2;
		r.oL(P, o, F.length);
		o += 4;
		for (var w = 0; w < F.length; w++) {
			o = d9.V0(P, o, F[w])
		}
		return P.data.slice(0, o).buffer
	};
	d9.by = function (F, P, o) {
		var X = P + o,
			Y = [];
		while (P < X) {
			var y = {},
				z = r.l(F, P);
			P += 4;
			var s = P;
			P = d9.qe(F, P, y);
			if (!y.Jx[1].qr()) Y.push(y);
			if (z % 4 != 0) z += 4 - z % 4;
			P = s + z
		}
		return Y
	};
	d9.C4 = function (F, P, o) {
		for (var w = 0; w < o.length; w++) {
			var X = o[w];
			P += 4;
			var Y = P;
			P = d9.V0(F, P, X);
			var y = P - Y;
			r.oL(F, Y - 4, y);
			if (y % 4 != 0) Y += 4 - y % 4;
			P = Y + y
		}
		return P
	};
	d9.qe = function (F, P, o) {
		var X = r.l(F, P);
		P += 4;
		if (X != 1) alert("Unknown version of pattern");
		var Y = r.l(F, P);
		P += 4;
		if (Y != 1 && Y != 2 && Y != 3) console.log("Unsupported mode of pattern: " + Y);
		var y = r.lU(F, P);
		P += 2;
		var z = r.lU(F, P);
		P += 2;
		var s = new ev(0, 0, z, y);
		o.name = r.nf(F, P);
		P += 4 + 2 * o.name.length + 2;
		var t = F[P];
		P++;
		o.id = r.$o(F, P, t);
		P += o.id.length;
		var d = -1;
		if (Y == 2) {
			d = P;
			P += 3 * 256 + 4
		}
		var U = new H._B(z * y);
		P = d9.a5Y(F, P, U);
		if (Y == 2) {
			for (var w = 0; w < U.U.length; w++) {
				var v = 3 * U.U[w];
				U.U[w] = F[d + v + 0];
				U.S[w] = F[d + v + 1];
				U.i[w] = F[d + v + 2]
			}
		}
		var A = H.R(s.M() * 4);
		H.sA(U, A);
		o.Jx = [A, s];
		return P
	};
	d9.V0 = function (F, P, o) {
		var X = o.Jx[0],
			Y = o.Jx[1];
		r.oL(F, P, 1);
		P += 4;
		r.oL(F, P, 3);
		P += 4;
		r.Fh(F, P, Y.h);
		P += 2;
		r.Fh(F, P, Y.Z);
		P += 2;
		r.lS(F, P, o.name + "\0");
		P += 4 + 2 * o.name.length + 2;
		r.oO(F, P, o.id.length);
		P++;
		r.bh(F, P, o.id);
		P += o.id.length;
		var y = new H._B(Y.M());
		H.Ae(X, y);
		P = d9.a4w(F, P, y, Y);
		return P
	};
	d9.a5Y = function (F, P, o) {
		var X = P,
			Y = {
				T: null,
				qa: [],
				dj: null,
				ld: null
			},
			y = r.l(F, P);
		P += 4;
		var z = r.l(F, P);
		P += 4;
		Y.T = r.g$(F, P);
		P += 16;
		var s = r.l(F, P);
		P += 4;
		for (var w = 0; w < s + 2; w++) {
			var t = r.l(F, P);
			P += 4;
			if (t == 0) continue;
			var d = r.l(F, P);
			P += 4;
			if (d == 0) continue;
			var U = r.l(F, P);
			P += 4;
			var v = r.g$(F, P);
			P += 16;
			var A = r.lU(F, P);
			P += 2;
			var Z = F[P];
			P++;
			var D = hG.zc(!1, U, F, v.Z, v.h, P, Z);
			if (w < s) Y.qa.push(D);
			if (w == s) Y.dj = D;
			if (w == s + 1) Y.ld = D;
			P += d - 23
		}
		if (!Y.T.qr()) {
			if (Y.qa[0]) o.U = Y.qa[0];
			if (Y.qa[1]) o.S = Y.qa[1];
			else o.S = H.clone(Y.qa[0]);
			if (Y.qa[2]) o.i = Y.qa[2];
			else o.i = H.clone(Y.qa[0]);
			if (Y.ld) o.m = Y.ld;
			else H.set(o.m, 255)
		}
		return P
	};
	d9.a4w = function (F, P, o, X) {
		var Y = P,
			y = {
				T: X,
				qa: [o.U, o.S, o.i],
				dj: null,
				ld: o.m
			};
		r.oL(F, P, 3);
		P += 4;
		r.oL(F, P, 0);
		P += 4;
		r.nl(F, P, X);
		P += 16;
		r.oL(F, P, 24);
		P += 4;
		for (var w = 0; w < 24 + 2; w++) {
			var z = P,
				s = w < 3 || w == 25 ? 1 : 0;
			r.oL(F, P, s);
			P += 4;
			if (s == 0) continue;
			r.oL(F, P, 0);
			P += 4;
			r.oL(F, P, 8);
			P += 4;
			r.nl(F, P, X);
			P += 16;
			r.Fh(F, P, 8);
			P += 2;
			r.oO(F, P, 1, 1);
			P++;
			var t = w < 3 ? y.qa[w] : y.ld;
			F.cj(P, X.M() + 2);
			P = hG.CP(t, F.data, X.Z, X.h, P, 1);
			r.oL(F, z + 4, P - z - 8)
		}
		r.oL(F, Y + 4, P - Y - 8);
		return P
	};

	function dv() {}
	dv.ee = function (F) {
		var P = new Uint8Array(F),
			o = 0,
			X = r.$o(P, o, 4);
		o += 4;
		var Y = r.lU(P, o);
		o += 2;
		var y = [];
		if (Y <= 3) {
			var z = r.lU(P, o);
			o += 2;
			for (var w = 0; w < z; w++) {
				var s = P[o++],
					t = r.$o(P, o, s);
				o += s;
				var d = dv.dO(P, o, t),
					U = d[0];
				o = d[1];
				y.push(U);
				o += 6
			}
		} else {
			var d = {},
				v = b3.Gz(P, d, o + 4),
				A = d.GrdL.v;
			for (var w = 0; w < A.length; w++) y[w] = A[w].v.Grad.v
		}
		return y
	};
	dv.PZ = function (F, P) {
		F.Nm.v = P
	};
	dv.qx = function (F) {
		var P = new cB,
			o = 0;
		r.bh(P, o, "8BGR");
		o += 4;
		r.Fh(P, o, 5);
		o += 2;
		r.oL(P, o, 16);
		o += 4;
		var X = {
				classID: "null",
				GrdL: {
					t: "VlLs",
					v: []
				}
			},
			Y = X.GrdL.v;
		for (var w = 0; w < F.length; w++) Y[w] = {
			t: "Objc",
			v: {
				classID: "Grdn",
				__name: "Gradient ",
				Grad: {
					t: "Objc",
					v: F[w]
				}
			}
		};
		o += b3.p1(P, X, o);
		return P.data.slice(0, o).buffer
	};
	dv.dO = function (F, P, o) {
		var X = {
				classID: "Grdn",
				Clrs: {
					t: "VlLs",
					v: []
				},
				GrdF: {
					t: "enum",
					v: {
						GrdF: "CstS"
					}
				},
				Intr: {
					t: "doub",
					v: 4096
				},
				Nm: {
					t: "TEXT",
					v: o
				},
				Trns: {
					t: "VlLs",
					v: []
				}
			},
			Y = r.lU(F, P);
		P += 2;
		if (Y == 0) throw "e";
		for (var w = 0; w < Y; w++) {
			var y = r.l(F, P),
				z = r.l(F, P + 4),
				s = gL.HD(F, P + 8),
				t = {
					t: "Objc",
					v: {
						classID: "Clrt",
						Clr: {
							t: "Objc",
							v: {
								classID: "RGBC",
								Rd: {
									t: "doub",
									v: s.U
								},
								Grn: {
									t: "doub",
									v: s.S
								},
								Bl: {
									t: "doub",
									v: s.i
								}
							}
						},
						Type: {
							t: "enum",
							v: {
								Clry: "UsrS"
							}
						},
						Lctn: {
							t: "long",
							v: y
						},
						Mdpn: {
							t: "long",
							v: z
						}
					}
				};
			X.Clrs.v.push(t);
			P += 20
		}
		var d = r.lU(F, P);
		P += 2;
		for (var w = 0; w < d; w++) {
			var y = r.l(F, P),
				z = r.l(F, P + 4),
				U = r.lU(F, P + 8),
				t = {
					t: "Objc",
					v: {
						classID: "TrnS",
						Opct: {
							t: "UntF",
							v: {
								type: "#Prc",
								val: Math.round(100 * U / 255)
							}
						},
						Lctn: {
							t: "long",
							v: y
						},
						Mdpn: {
							t: "long",
							v: z
						}
					}
				};
			X.Trns.v.push(t);
			P += 10
		}
		return [X, P]
	};
	dv.acS = function (F, P, o) {
		var X = o.Clrs.v.length;
		r.Fh(F, P, X);
		P += 2;
		for (var w = 0; w < X; w++) {
			var Y = o.Clrs.v[w];
			r.oL(F, P, Y.v.Lctn.v);
			r.oL(F, P + 4, Y.v.Mdpn.v);
			r.Fh(F, P + 8, 0);
			var y = H.j.$H(H.j.T6(Y.v.Clr.v)),
				z = [y.Rd.v, y.Grn.v, y.Bl.v, 0];
			for (var s = 0; s < 4; s++) r.Fh(F, P + 10 + s * 2, Math.round(65535 * (z[s] / 255)));
			P += 20
		}
		var t = o.Trns.v.length;
		r.Fh(F, P, t);
		P += 2;
		for (var w = 0; w < t; w++) {
			var Y = o.Trns.v[w];
			r.oL(F, P, Y.v.Lctn.v);
			r.oL(F, P + 4, Y.v.Mdpn.v);
			r.Fh(F, P + 8, Math.round(255 * Y.v.Opct.v.val / 100));
			P += 10
		}
		return P
	};

	function a8() {}
	a8.ee = function (F) {
		var P = new Uint8Array(F),
			o = [],
			X = [],
			Y = [],
			y = 0,
			z = r.$o(P, y, 4);
		y += 4;
		var s = r.l(P, y);
		y += 4;
		var t = r.l(P, y);
		y += 4;
		while (y < P.length) {
			var d = r.$o(P, y, 4);
			y += 4;
			var U = r.$o(P, y, 4);
			y += 4;
			var v = r.l(P, y);
			y += 4;
			if (U == "tppa") {
				X = d9.by(P, y, v);
				y += v
			} else if (U == "tpbd") {
				Y = i8.W_(P, y, v, 1, 1);
				y += v
			} else if (U == "tptp") {
				var A = r.l(P, y);
				y += 4;
				for (var w = 0; w < A; w++) {
					var Z = r.nf(P, y);
					y += 6 + Z.length * 2;
					y += 4;
					var D = {};
					y += b3.Gz(P, D, y);
					o.push([Z, D])
				}
				while ((y & 3) != 0) y++
			} else {
				console.log(P.slice(y - 8, y + 64));
				console.log(r.$o(P, y - 8, 64));
				throw U
			}
		}
		return {
			Xu: Y,
			A6: X,
			list: o
		}
	};
	a8.PZ = function (F, P) {
		F[0] = P
	};
	a8.qx = function (F) {
		var P = new cB,
			o = 0;
		r.bh(P, o, "8BTP");
		o += 4;
		r.oL(P, o, 3);
		o += 4;
		r.oL(P, o, 1);
		o += 4;
		var X = [F.A6, F.Xu, F.list];
		for (var w = 0; w < 3; w++) {
			if (X[w].length == 0) continue;
			r.bh(P, o, "8BIM");
			o += 4;
			var Y = ["tppa", "tpbd", "tptp"][w];
			r.bh(P, o, Y);
			o += 4;
			var y = o;
			o += 4;
			if (Y == "tppa") {
				o = d9.C4(P, o, F.A6)
			} else if (Y == "tpbd") {
				o = i8.D7(P, o, F.Xu)
			} else if (Y == "tptp") {
				r.oL(P, o, F.list.length);
				o += 4;
				for (var z = 0; z < F.list.length; z++) {
					var s = F.list[z];
					r.lS(P, o, s[0] + "\0");
					o += 6 + s[0].length * 2;
					r.oL(P, o, 16);
					o += 4;
					o += b3.p1(P, s[1], o)
				}
			}
			r.oL(P, y, o - y - 4);
			while ((o & 3) != 0) o++;
			P.cj(o, 0)
		}
		return P.data.slice(0, o).buffer
	};

	function ao() {}
	ao.ee = function (F, P) {
		var o = new Uint8Array(F),
			X;
		if (r.l(o, 0) == o.length) X = "icc";
		else if (o[0] == "<".charCodeAt(0)) X = "look";
		else if (r.No(o, "LUT_3D_SIZE") != -1) X = "cube";
		else X = "3DL";
		if (X != "icc") {
			var Y = ao.aiy(o, X),
				y = ao.ac4(Y[0], Y[1]);
			o = y
		}
		var z = [];
		for (var w = 0; w < o.length; w++) z.push(o[w]);
		return [{
			classID: "null",
			Dthr: {
				t: "bool",
				v: !0
			},
			Nm: {
				t: "TEXT",
				v: P ? P : "file.icc"
			},
			lookupType: {
				t: "enum",
				v: {
					colorLookupType: "abstractProfile"
				}
			},
			profile: {
				t: "tdta",
				v: z
			}
		}]
	};
	ao.qx = function (F) {
		var P = F[0],
			o = new Uint8Array(P.profile.v);
		return o.buffer
	};
	ao.PZ = function (F, P) {
		F.Nm.v = P
	};
	ao.ac4 = function (F, P) {
		var o = new cB,
			X = 128;
		o.cj(0, 128);
		var Y = [0, 0, 14, 204, 65, 68, 66, 69, 4, 0, 0, 0, 108, 105, 110, 107, 82, 71, 66, 32, 82, 71, 66, 32, 7, 227, 0, 7, 0, 27, 0, 8, 0, 6, 0, 49, 97, 99, 115, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 246, 214, 0, 1, 0, 0, 0, 0, 211, 45, 65, 68, 66, 69, 219, 126, 245, 21, 206, 223, 186, 23, 165, 212, 201, 219, 250, 10, 33, 62];
		for (var w = 0; w < Y.length; w++) o.data[w] = Y[w];
		var y = ["desc", "A2B0"],
			z = y.length,
			s = 128 + 4 + z * 12;
		r.oL(o, X, z);
		X += 4;
		for (var t = 0; t < z; t++) {
			var d = y[t];
			r.bh(o, X, d);
			X += 4;
			r.oL(o, X, s);
			X += 4;
			var U = s;
			if (d == "desc") {
				r.bh(o, U, "mluc");
				U += 4;
				U += 4;
				r.oL(o, U, 1);
				U += 4;
				r.oL(o, U, 12);
				U += 4;
				r.bh(o, U, "enUS");
				U += 4;
				var v = "ICC by Photopea\0",
					A = v.length * 2 + 2;
				r.oL(o, U, A);
				U += 4;
				r.oL(o, U, 28);
				U += 4;
				o.cj(U, A);
				for (var w = 0; w < v.length; w++) o.data[U + w * 2 + 1] = v.charCodeAt(w);
				U += A
			}
			if (d == "A2B0") {
				r.bh(o, U, "mAB ");
				U += 4;
				U += 4;
				o.cj(U, 4);
				o.data[U] = 3;
				o.data[U + 1] = 3;
				U += 4;
				o.cj(U, 4 * 5);
				U += 4 * 3;
				r.oL(o, U, U + 8 - s);
				U += 4;
				U += 4;
				o.cj(U, 20);
				o.data[U] = F;
				o.data[U + 1] = F;
				o.data[U + 2] = F;
				U += 16;
				o.data[U] = 2;
				U += 4;
				var Z = F * F * F * 3;
				o.cj(U, Z * 2);
				for (var w = 0; w < Z; w++) r.J6(o.data, U + w * 2, Math.max(0, Math.min(65535, Math.round(P[w] * 65535))));
				U += Z * 2
			}
			var D = U - s;
			while ((D & 3) != 0) D++;
			r.oL(o, X, D);
			X += 4;
			s += D
		}
		r.oL(o, 0, s);
		return o.data.slice(0, s)
	};
	ao.aiy = function (F, P) {
		P = "LUTFormat" + P.toUpperCase();
		var o = [],
			X = 0,
			Y = r.bc(F, 0, F.length),
			y = "";
		for (var w = 0; w < F.length && y == ""; w++) {
			if (F[w] == 10) y = "\n";
			else if (F[w] == 13) {
				y = "\r";
				if (F[w + 1] == 10) y += "\n"
			}
		}
		if (P == "LUTFormatCUBE") {
			var z = Y.split(y);
			for (var w = 0; w < z.length; w++) {
				if (z[w] == "" || z[w][0] == "#") continue;
				var s = z[w].split(" "),
					t = s[0];
				if (t == "LUT_3D_SIZE") {
					X = parseInt(s[1]);
					continue
				}
				if (["TITLE", "DOMAIN_MIN", "DOMAIN_MAX"].indexOf(t) != -1) continue;
				o.push(parseFloat(s[0]), parseFloat(s[1]), parseFloat(s[2]))
			}
			o = ao.J8(X, o)
		} else if (P == "LUTFormat3DL") {
			var z = Y.split(y),
				d = 1 / 4095;
			for (var w = 0; w < z.length; w++) {
				var U = z[w];
				if (U == "" || U == "3DMESH" || U.startsWith("Mesh") || U[0] == "#") continue;
				var s = U.split(" "),
					t = s[0];
				if (X == 0) {
					X = s.length;
					continue
				}
				o.push(parseFloat(s[0]) * d, parseFloat(s[1]) * d, parseFloat(s[2]) * d)
			}
		} else if (P == "LUTFormatLOOK") {
			var v = new DOMParser,
				A = v.parseFromString(Y, "text/xml"),
				Z = A.getElementsByTagName("LUT")[0],
				D = Z.children[0].textContent;
			X = parseInt(JSON.parse(D));
			var q = Z.children[1].textContent;
			q = q.replace(/"/g, "").replace(/\s/g, "");
			var R = 3 * X * X * X,
				J = R * 4,
				W = new Uint8Array(J);
			for (var w = 0; w < J; w++) {
				var p = q.charCodeAt(w * 2),
					n = q.charCodeAt(w * 2 + 1),
					b = p < 58 ? p - 48 : p - 55,
					Q = n < 58 ? n - 48 : n - 55;
				W[w] = (b << 4) + Q
			}
			for (var w = 0; w < R; w++) o.push(r.CC(W, w << 2));
			o = ao.J8(X, o)
		} else throw P;
		return [X, o]
	};
	ao.a84 = function (F, P, o) {
		var X = ["#Created by www.Photopea.com", "TITLE \"" + o + "\"", "", "#LUT size", "LUT_3D_SIZE " + P, "", "#data domain", "DOMAIN_MIN 0.0 0.0 0.0", "DOMAIN_MAX 1.0 1.0 1.0", "", "#LUT data points"],
			Y = 6;
		for (var w = 0; w < F.length; w += 3) {
			X.push(F[w].toFixed(Y) + " " + F[w + 1].toFixed(Y) + " " + F[w + 2].toFixed(Y))
		}
		X.push("");
		return r.vI(X.join("\n")).buffer
	};
	ao.J8 = function (F, P) {
		var o = [],
			X = F * F * F;
		for (var w = 0; w < X; w++) o.push(0, 0, 0);
		for (var Y = 0; Y < F; Y++)
			for (var y = 0; y < F; y++)
				for (var z = 0; z < F; z++) {
					var w = 3 * (z + y * F + Y * F * F),
						s = 3 * (Y + y * F + z * F * F);
					o[s] = P[w];
					o[s + 1] = P[w + 1];
					o[s + 2] = P[w + 2]
				}
		return o
	};

	function b3() {}
	b3.Gz = function (F, P, o, X, Y) {
		var y = o,
			z;
		if (Y == null) Y = 0;
		var s = r.l(F, o);
		if (s == 0) {
			z = "";
			o += 4
		} else {
			z = r.nf(F, o);
			o += 4 + 2 * z.length + 2
		}
		if (z != "") P.__name = z;
		P.classID = b3.$$(F, o);
		if (X) console.log("\t".repeat(Y), "- reading descriptor", P.classID, o);
		o += b3.lJ(F, o);
		var t = r.tF(F, o);
		o += 4;
		for (var w = 0; w < t; w++) {
			var d = b3.$$(F, o);
			o += b3.lJ(F, o);
			var U = b3.gZ(F, o, X, Y);
			P[d] = U;
			o += U.size;
			delete U.size
		}
		return o - y
	};
	b3.p1 = function (F, P, o, X) {
		var Y = o,
			y = P.__name;
		if (y == null) y = "";
		y += "\0";
		r.lS(F, o, y);
		o += 4 + 2 * y.length;
		b3.Me(F, o, P.classID);
		o += b3.lJ(F.data, o);
		r.Oc(F, o, Object.keys(P).length - 1 - (P.__name == null ? 0 : 1));
		o += 4;
		for (var z in P) {
			if (z == "classID") continue;
			if (z == "__name") continue;
			b3.Me(F, o, z);
			o += b3.lJ(F.data, o);
			o += b3.LN(F, o, P[z])
		}
		return o - Y
	};
	b3.gZ = function (F, P, o, X) {
		var Y = P,
			y = r.$o(F, P, 4);
		P += 4;
		var z = {
			size: 0,
			t: y,
			v: null
		};
		if (o) console.log("\t".repeat(X), "reading key", y, Y);
		switch (y) {
			case "obj ":
			case "VlLs":
				z.v = [];
				var s = r.l(F, P);
				P += 4;
				for (var w = 0; w < s; w++) {
					var t = b3.gZ(F, P, o, X + 1);
					P += t.size;
					delete t.size;
					z.v.push(t)
				}
				break;
			case "UntF":
				z.v = {
					type: r.$o(F, P, 4),
					val: r.VZ(F, P + 4)
				};
				P += 12;
				break;
			case "doub":
				z.v = r.VZ(F, P);
				P += 8;
				break;
			case "bool":
				z.v = F[P] == 1;
				P += 1;
				break;
			case "long":
				z.v = r.tF(F, P);
				P += 4;
				break;
			case "comp":
				z.v = r.tF(F, P + 4);
				P += 8;
				break;
			case "Objc":
				z.v = {};
				var d = b3.Gz(F, z.v, P, o, X + 1);
				P += d;
				break;
			case "TEXT":
				var U = r.l(F, P);
				if (U == 0) {
					z.v = "";
					P += 4
				} else {
					z.v = r.nf(F, P);
					P += 4 + z.v.length * 2 + 2
				}
				break;
			case "enum":
				var v = b3.$$(F, P);
				P += b3.lJ(F, P);
				var A = b3.$$(F, P);
				P += b3.lJ(F, P);
				z.v = {};
				z.v[v] = A;
				break;
			case "tdta":
				var Z = r.tF(F, P);
				P += 4;
				z.v = [];
				for (var w = 0; w < Z; w++) z.v.push(F[P + w]);
				P += Z;
				break;
			case "ObAr":
				var D = r.l(F, P);
				P += 4;
				var q = r.nf(F, P);
				P += 4 + 2 * q.length + 2;
				if (q != "") throw q;
				var R = b3.$$(F, P);
				P += 4 + Math.max(4, R.length);
				z.v = {
					classID: R,
					arr: []
				};
				var J = r.l(F, P);
				P += 4;
				for (var w = 0; w < J; w++) {
					var R = b3.$$(F, P);
					P += 4 + Math.max(4, R.length);
					var v = r.$o(F, P, 4);
					P += 4;
					var W = r.$o(F, P, 4);
					P += 4;
					var p = {
						id: R,
						type: v,
						uID: W,
						arr: []
					};
					z.v.arr.push(p);
					var n = r.l(F, P, 4);
					P += 4;
					for (var b = 0; b < n; b++) {
						var Q = r.VZ(F, P);
						P += 8;
						p.arr.push(Q)
					}
				}
				break;
			case "Pth ":
				var _ = P,
					Z = r.l(F, P);
				P += 4;
				var L = r.$o(F, P, 4);
				P += 4;
				var m = r.L6(F, P);
				P += 4;
				var I = r.ae0(F, P);
				P += 4 + I.length * 2;
				z.v = {
					sig: L,
					pth: I
				};
				break;
			case "Clss":
			case "type":
			case "rele":
				var I = r.nf(F, P);
				P += 4 + I.length * 2 + 2;
				var c = b3.$$(F, P);
				P += 4 + Math.max(4, c.length);
				z.v = {
					classID: c
				};
				if (I != "") z.v.__name = I;
				if (y == "rele") {
					z.v.val = r.tF(F, P);
					P += 4
				}
				break;
			case "prop":
			case "Enmr":
			case "indx":
			case "name":
				var u = b3.wN[y],
					I = r.nf(F, P);
				P += 4 + I.length * 2 + 2;
				if (I.length != 0) {
					console.log(y, I);
					throw "e"
				}
				z.v = {};
				for (var w = 0; w < u.length; w++) {
					var c = b3.$$(F, P);
					P += 4 + Math.max(4, c.length);
					z.v[u[w]] = c
				}
				if (y == "name") {
					var I = r.nf(F, P);
					P += 4 + I.length * 2 + 2;
					z.v.val = I
				}
				if (y == "indx") {
					z.v.val = r.l(F, P);
					P += 4
				}
				break;
			case "alis":
				var Z = r.l(F, P);
				P += 4;
				z.v = r.$o(F, P, Z);
				P += Z;
				break;
			default: {
				console.log("unknown oskey: " + y + ", " + Y);
				throw "e";
				return z
			}
		}
		if (o) {
			console.log("\t".repeat(X), z.v);
			console.log("\t".repeat(X), "======", P)
		}
		z.size = P - Y;
		return z
	};
	b3.wN = {
		name: ["classID"],
		prop: ["classID", "keyID"],
		Enmr: ["classID", "typeID", "enum"],
		indx: ["classID"]
	};
	b3.LN = function (F, P, o) {
		var X = P,
			Y = o.t;
		o = o.v;
		r.bh(F, P, Y);
		P += 4;
		switch (Y) {
			case "obj ":
			case "VlLs":
				r.Oc(F, P, o.length);
				P += 4;
				for (var y = 0; y < o.length; y++) {
					var z = b3.LN(F, P, o[y]);
					P += z
				}
				break;
			case "UntF":
				r.bh(F, P, o.type);
				r.AD(F, P + 4, o.val);
				P += 12;
				break;
			case "doub":
				r.AD(F, P, o);
				P += 8;
				break;
			case "bool":
				r.oO(F, P, o ? 1 : 0, 1);
				P += 1;
				break;
			case "long":
				r.Oc(F, P, o);
				P += 4;
				break;
			case "comp":
				r.Oc(F, P + 4, o);
				P += 8;
				break;
			case "Objc":
				var z = b3.p1(F, o, P);
				P += z;
				break;
			case "TEXT":
				r.lS(F, P, o + "\0");
				P += 4 + o.length * 2 + 2;
				break;
			case "enum":
				var s = Object.keys(o)[0],
					t = o[s];
				b3.Me(F, P, s);
				P += b3.lJ(F.data, P);
				b3.Me(F, P, t);
				P += b3.lJ(F.data, P);
				break;
			case "tdta":
				r.oL(F, P, o.length);
				P += 4;
				r.x4(F, P, o);
				P += o.length;
				break;
			case "ObAr":
				r.oL(F, P, o.arr[0].arr.length);
				P += 4;
				r.lS(F, P, "\0");
				P += 6;
				b3.Me(F, P, o.classID);
				P += 4 + Math.max(4, o.classID.length);
				r.oL(F, P, o.arr.length);
				P += 4;
				for (var w = 0; w < o.arr.length; w++) {
					var d = o.arr[w];
					b3.Me(F, P, d.id);
					P += 4 + Math.max(4, d.id.length);
					r.bh(F, P, d.type);
					P += 4;
					r.bh(F, P, d.uID);
					P += 4;
					r.oL(F, P, d.arr.length);
					P += 4;
					for (var y = 0; y < d.arr.length; y++) {
						r.AD(F, P, d.arr[y]);
						P += 8
					}
				}
				break;
			case "Pth ":
				var U = o.pth.length * 2 + 4 + 8;
				r.oL(F, P, U);
				P += 4;
				r.bh(F, P, o.sig);
				P += 4;
				r.PU(F, P, U);
				P += 4;
				r.ajd(F, P, o.pth);
				P += o.pth.length * 2 + 4;
				break;
			case "Clss":
			case "type":
			case "rele":
				var v = o.__name;
				if (v == null) v = "";
				r.lS(F, P, v + "\0");
				P += 4 + v.length * 2 + 2;
				var A = o.classID;
				b3.Me(F, P, A);
				P += 4 + Math.max(4, A.length);
				if (Y == "rele") {
					r.Oc(F, P, o.val);
					P += 4
				}
				break;
			case "prop":
			case "Enmr":
			case "indx":
			case "name":
				var Z = b3.wN[Y];
				r.oL(F, P, 1);
				P += 6;
				for (var w = 0; w < Z.length; w++) {
					var A = o[Z[w]];
					b3.Me(F, P, A);
					P += 4 + Math.max(4, A.length)
				}
				if (Y == "name") {
					r.lS(F, P, o.val + "\0");
					P += 4 + o.val.length * 2 + 2
				}
				if (Y == "indx") {
					r.oL(F, P, o.val);
					P += 4
				}
				break;
			case "alis":
				var U = o.length;
				r.oL(F, P, U);
				P += 4;
				r.bh(F, P, o);
				P += U;
				break;
			default:
				console.log("unknown oskey: " + Y);
				P = X;
				break
		}
		return P - X
	};
	b3.$$ = function (F, P) {
		var o = r.tF(F, P);
		if (o > 1e3) throw "e";
		if (o == 0) o = 4;
		return r.$o(F, P + 4, o).trim()
	};
	b3.lJ = function (F, P) {
		var o = r.tF(F, P);
		return o == 0 ? 8 : 4 + o
	};
	b3.Me = function (F, P, o) {
		var X = "warp list Comp xx xy yx yy tx ty PinP PnRt PnOv PnDp xor PuX0 PuX1 PuX2 PuX3 PuY0 PuY1 PuY2 PuY3 base kana ruby flow trim then else".split(" "),
			Y = 4 < o.length || X.indexOf(o) != -1;
		r.Oc(F, P, Y ? o.length : 0);
		r.bh(F, P + 4, o);
		if (o.length < 4 && !Y) {
			var y = "";
			for (var w = o.length; w < 4; w++) y += " ";
			r.bh(F, P + 4 + o.length, y)
		}
	};
	b3.acL = function (F) {
		var P = {};
		for (var o in F) {
			if (o == "classID") P[o] = F[o];
			else if (o == "__name") P[o] = F[o];
			else P[o] = b3.Zz(F[o])
		}
		return P
	};
	b3.Zz = function (F) {
		if (F.wV == "Objc") return b3.acL(F.v);
		else if (F.wV == "VlLs") {
			var P = [];
			for (var w = 0; w < F.v.length; w++) P.push(b3.Zz(F.v[w]));
			return P
		} else if (F.wV == "UntF") return F.v.val;
		else return F.v
	};

	function ff() {}
	ff.H_ = function (F, P, o, X, Y, y) {
		while (P < o) {
			var z = r.$o(F, P, 4);
			P += 4;
			if (z != "8BIM" && z != "8B64") {
				console.log("layer information signature error! " + z, "PSB = " + Y);
				alert("Error in PSD file: wrong signature.");
				return o
			}
			var s = r.$o(F, P, 4);
			P += 4;
			var t = r.tF(F, P);
			P += 4;
			if (Y && "LMsk Lr16 Lr32 Layr Mt16 Mt32 Mtrn Alph FMsk lnk2 lnkE FEid FXid PxSD extn cinf artd".split(" ").indexOf(s) != -1) {
				t = t << 32 | r.tF(F, P);
				P += 4
			}
			if (Y && ["pths"].indexOf(s) != -1) {
				t = t << 32 | r.tF(F, P);
				P += 4
			}
			var d = ["lrFX", "PlLd"];
			if (d.indexOf(s) != -1) {
				if (t % 4 != 0) t += 4 - t % 4;
				P += t;
				continue
			}
			switch (s) {
				case "iOpa":
					X[s] = F[P];
					break;
				case "brst":
					X[s] = [1, 1, 1];
					for (var w = 0; w < t; w += 4) X[s][r.l(F, P + w)] = 0;
					break;
				case "knko":
					X[s] = F[P];
					break;
				case "infx":
					X[s] = F[P];
					break;
				case "clbl":
					X[s] = F[P];
					break;
				case "lmgm":
					X[s] = F[P];
					break;
				case "vmgm":
					X[s] = F[P];
					break;
				case "lyid":
					X[s] = r.l(F, P);
					break;
				case "lsct":
					X[s] = {
						type: r.l(F, P)
					};
					if (t >= 12) X[s].sW = r.$o(F, P + 8, 4);
					break;
				case "lsdk":
					X.lsct = {
						type: r.l(F, P)
					};
					break;
				case "lyvr":
					X[s] = r.l(F, P);
					break;
				case "lnsr":
					var U = {
						artb: 1,
						bgnd: 1,
						cont: 1,
						layr: 1,
						lset: 1,
						rend: 1,
						shap: 1,
						user: 1,
						____: null
					};
					X[s] = r.$o(F, P, 4);
					break;
				case "lspf":
					X[s] = r.l(F, P);
					break;
				case "lclr":
					X[s] = r.lU(F, P);
					break;
				case "luni":
					X[s] = r.O_(F, P);
					break;
				case "fxrp":
					X[s] = new aH(r.VZ(F, P), r.VZ(F, P + 8));
					break;
				case "artb":
				case "artd":
					X[s] = {};
					b3.Gz(F, X[s], P + 4);
					break;
				case "SoCo":
					X[s] = {};
					b3.Gz(F, X[s], P + 4);
					break;
				case "GdFl":
					X[s] = {};
					b3.Gz(F, X[s], P + 4);
					ff.dQ(X[s], s);
					break;
				case "PtFl":
					X[s] = {};
					b3.Gz(F, X[s], P + 4);
					ff.dQ(X[s], s);
					break;
				case "CgEd":
					var v = X.brit = bv.tt("brit"),
						A = {};
					b3.Gz(F, A, P + 4);
					v.Brgh.v = A.Brgh ? A.Brgh.v : 0;
					v.Cntr.v = A.Cntr ? A.Cntr.v : 0;
					v.useLegacy.v = A.useLegacy ? A.useLegacy.v : 0;
					break;
				case "brit":
					if (X.brit == null) {
						var v = X.brit = bv.tt("brit"),
							A = {};
						v.Brgh.v = r.dx(F, P);
						v.Cntr.v = r.dx(F, P + 2);
						v.useLegacy.v = !1
					}
					break;
				case "levl":
					var Z = F.buffer.slice(P, P + t);
					X[s] = gm.ee(Z);
					break;
				case "curv":
					X[s] = e2.TM(F, P, t);
					break;
				case "expA":
					var D = r.lU(F, P),
						q = X[s] = bv.tt("expA");
					q.Exps.v = r.C2(F, P + 2);
					q.Ofst.v = r.C2(F, P + 6);
					q.gammaCorrection.v = r.C2(F, P + 10);
					break;
				case "vibA":
					X[s] = {};
					b3.Gz(F, X[s], P + 4);
					break;
				case "hue2":
					X[s] = az.TM(F, P, t);
					break;
				case "blnc":
					var q = X[s] = bv.tt(s);
					q.PrsL.v = F[P + 18] == 1;
					var R = ["ShdL", "MdtL", "HghL"];
					for (var w = 0; w < 3; w++)
						for (var J = 0; J < 3; J++) q[R[w]].v[J].v = r.dx(F, P + w * 6 + J * 2);
					break;
				case "blwh":
					var W = {};
					b3.Gz(F, W, P + 4);
					var q = bv.tt(s),
						p = "Bl Cyn Grn Mgnt Rd Yllw tintColor useTint".split(" ");
					for (var w = 0; w < p.length; w++) {
						q[p[w]] = W[p[w]];
						delete W[p[w]]
					}
					X[s] = q;
					break;
				case "phfl":
					var q = X[s] = bv.tt(s),
						n = q.Clr.v,
						D = r.lU(F, P);
					if (D == 3) {
						var b = [r.l(F, P + 2), r.l(F, P + 6), r.l(F, P + 10)],
							Q = 32768,
							_ = H.ak(b[0] / Q, b[1] / Q, b[2] / Q);
						n.Lmnc.v = _.Ov;
						n.A.v = _.m;
						n.B.v = _.i
					}
					if (D == 2) {
						var L = r.lU(F, P + 2);
						if (L != 7) throw "e";
						n.Lmnc.v = r.dx(F, P + 4) / 100;
						n.A.v = r.dx(F, P + 6) / 100;
						n.B.v = r.dx(F, P + 8) / 100
					}
					var m = P + 2 + (D == 3 ? 12 : 10);
					q.Dnst.v = r.l(F, m);
					m += 4;
					q.PrsL.v = F[m] == 1;
					break;
				case "mixr":
					var I = {
						_W: r.lU(F, P + 2) == 1,
						C: []
					};
					for (var w = 0; w < 20; w++) I.C.push(r.dx(F, P + 4 + w * 2));
					X[s] = b_.Dn(I);
					break;
				case "clrL":
				case "rplc":
					X[s] = {};
					b3.Gz(F, X[s], P + 6);
					break;
				case "nvrt":
					X[s] = {};
					break;
				case "post":
					X[s] = bv.tt("post");
					X[s].Lvls.v = r.lU(F, P);
					break;
				case "thrs":
					X[s] = bv.tt("thrs");
					X[s].Lvl.v = r.lU(F, P);
					break;
				case "grdm":
					var c = {
							rev: F[P + 2] == 1,
							dJ: F[P + 3] == 1
						},
						u = P + 4,
						a = r.O_(F, u);
					u += 4 + a.length * 2;
					var N = dv.dO(F, u, a),
						V = N[0];
					u = N[1];
					var M = r.lU(F, u);
					u += 2;
					V.Intr.v = r.lU(F, u);
					u += 2;
					var O = r.lU(F, u);
					u += 2;
					c.mode = r.lU(F, u);
					u += 2;
					c.Og = r.l(F, u);
					u += 4;
					c.tE = r.lU(F, u) == 1;
					u += 2;
					c.ex = r.lU(F, u) == 1;
					u += 2;
					c.Ng = r.l(F, u);
					u += 4;
					c.eb = r.lU(F, u);
					u += 2;
					c.tI = [];
					for (var w = 0; w < 4; w++) c.tI.push(r.lU(F, u + w * 2));
					u += 8;
					c.DZ = [];
					for (var w = 0; w < 4; w++) c.DZ.push(r.lU(F, u + w * 2));
					u += 8;
					var K = r.lU(F, u);
					u += 2;
					var j = bv.tt("grdm");
					j.Rvrs.v = c.rev;
					j.Grad.v = V;
					X[s] = j;
					break;
				case "selc":
					X[s] = bu.TM(F, P, t);
					break;
				case "vmsk":
				case "vsms":
					var $ = X.vmsk = new h.iO,
						x = r.tF(F, P + 4),
						g = (x >> 0 & 1) == 1;
					$.AU = (x >> 1 & 1) == 0;
					$.isEnabled = (x >> 2 & 1) == 0;
					$.b = gN.xe(F, P + 8, t - 8, y.Z, y.h);
					break;
				case "shmd":
					X[s] = {};
					var T = r.l(F, P),
						m = P + 4;
					for (var w = 0; w < T; w++) {
						var z = r.$o(F, m, 4);
						m += 4;
						var E = r.$o(F, m, 4);
						m += 4;
						var a9 = F[m];
						m++;
						if (Math.max(F[m], F[m + 1], F[m + 2]) != 0) throw "e";
						m += 3;
						var ez = r.l(F, m);
						m += 4;
						if (E == "cust" || E == "cmls" || E == "extn" || E == "mlst") {
							var bN = r.l(F, m);
							if (bN != 16) m += 4;
							if (r.l(F, m) == 16) {
								var W = {};
								b3.Gz(F, W, m + 4, !1);
								X[s][E] = W;
								if (E == "cmls") cj.ln.a3i(X[s][E])
							}
						} else {
							console.log("unknown shmd key: " + E + ", size: " + ez)
						}
						m += ez
					}
					break;
				case "shpa":
					var D = r.l(F, P),
						cg = r.l(F, P + 4);
					if (cg != 0) console.log("some patterns present!");
					break;
				case "TySh":
					var d8 = X[s] = {},
						D = r.lU(F, P);
					d8.O = r.FB(F, P + 2);
					var C = r.lU(F, P + 2 + 48);
					d8.Hb = {};
					var g7 = b3.Gz(F, d8.Hb, P + 56),
						g_ = bt.vk();
					for (var fw in g_)
						if (d8.Hb[fw] == null) d8.Hb[fw] = g_[fw];
					d8.VU = {};
					var dT = b3.Gz(F, d8.VU, P + 56 + g7 + 6);
					d8.xa = r.abF(F, P + 56 + g7 + 6 + dT);
					d8.MF = gg.ee(d8.Hb.EngineData.v);
					bt.a0Q(d8.MF.EngineDict.StyleRun.RunArray);
					if (d8.MF.ResourceDict == null) d8.MF.ResourceDict = JSON.parse(JSON.stringify(d8.MF.DocumentResources));
					delete d8.Hb.EngineData;
					break;
				case "lfx2":
				case "lmfx":
				case "lfxs":
					var g4 = r.l(F, P),
						bB = r.l(F, P + 4);
					X.lmfx = {};
					var g7 = b3.Gz(F, X.lmfx, P + 8);
					ff.lm(X.lmfx);
					break;
				case "FMsk":
					X[s] = r.JN(F, P, t);
					break;
				case "Txt2":
					X[s] = {};
					X[s].raw = r.JN(F, P, t);
					X[s].lK = hE.ee(X[s].raw);
					break;
				case "Patt":
					X[s] = d9.by(F, P, t);
					break;
				case "SoLd":
					var d1 = r.$o(F, P, 4),
						f_ = r.l(F, P + 4),
						g$ = r.l(F, P + 8);
					X[s] = {};
					var eT = b3.Gz(F, X[s], P + 12);
					if (X[s].nonAffineTransform == null) X[s].nonAffineTransform = JSON.parse(JSON.stringify(X[s].Trnf));
					if (X[s].Impr == null) X[s].Impr = {
						t: "Objc",
						v: {
							__name: "None",
							classID: "none"
						}
					};
					break;
				case "vstk":
				case "pths":
					var f_ = r.l(F, P);
					X[s] = {};
					var eT = b3.Gz(F, X[s], P + 4);
					break;
				case "vscg":
					var E = r.$o(F, P, 4),
						f_ = r.l(F, P + 4);
					X[E] = {};
					var eT = b3.Gz(F, X[E], P + 8);
					ff.dQ(X[E], E);
					break;
				case "vogk":
					var dz = r.l(F, P),
						f_ = r.l(F, P + 4);
					X[s] = {};
					var eT = b3.Gz(F, X[s], P + 8);
					X[s] = X[s].keyDescriptorList.v;
					for (var w = 0; w < X[s].length; w++) {}
					break;
				case "lnk2":
				case "lnkD__":
				case "lnk3__":
					X[s] = [];
					var u = P;
					while (u < P + t) {
						var i4 = new h.Zr;
						X[s].push(i4);
						var O = r.k0(F, u);
						u += 8;
						var fy = u;
						i4.type = r.$o(F, u, 4);
						u += 4;
						if (i4.type != "liFD") {
							alert("Unknown Linked Layer type: " + i4.type);
							break;
							throw i4.type
						}
						i4.Sp = r.l(F, u);
						u += 4;
						var cN = r.Zd(F, u);
						u += 1 + cN.dC.length;
						i4.Za = cN.dC;
						i4.Z5 = r.nf(F, u);
						u += 4 + i4.Z5.length * 2 + 2;
						i4.d1 = r.$o(F, u, 4);
						u += 4;
						i4.EC = r.$o(F, u, 4);
						u += 4;
						var fP = r.k0(F, u);
						u += 8;
						i4.open = F[u];
						u += 1;
						if (i4.open != 0) {
							var du = {},
								g7 = b3.Gz(F, du, u + 4);
							if (g7 % 4 != 0) g7 += 4 - g7 % 4;
							console.log(du);
							u += g7 + 4
						}
						i4.open = 0;
						i4.raw = r.JN(F, u, fP);
						u = fy + O;
						if (O % 4 != 0) u += 4 - O % 4
					}
					break;
				case "FEid":
					var u = P;
					X[s] = [];
					var ea = u + t,
						D = r.l(F, u);
					u += 4;
					while (u < ea) {
						u += 4;
						var O = r.l(F, u);
						u += 4;
						var N = {};
						X[s].push(N);
						N.id = r.Zd(F, u).dC;
						u += N.id.length + 1;
						var D = r.l(F, u);
						u += 4;
						u += 4;
						var cF = r.l(F, u);
						u += 4;
						N.rect = r.g$(F, u);
						u += 16;
						var gB = r.l(F, u);
						u += 4;
						var bp = r.l(F, u);
						u += 4;
						var hf = new H._B(0);
						for (var w = 0; w < bp + 2; w++) {
							var bq = r.l(F, u);
							u += 4;
							if (bq != 0) {
								u += 4;
								var eY = r.l(F, u),
									f1 = null;
								u += 4;
								if (w < 3 || w == 25) f1 = hG.sh(!0, gB, F, N.rect.Z, N.rect.h, u, eY);
								if (w == 0) hf.U = f1;
								if (w == 1) hf.S = f1;
								if (w == 2) hf.i = f1;
								if (w == 25) hf.m = f1;
								u += eY
							}
						}
						N.buffer = H.R(N.rect.M() * 4);
						H.sA(hf, N.buffer);
						H.mn(N);
						var dh = F[u];
						u++;
						if (dh != 0) {
							N.g = new h.vm;
							N.g.rect = r.g$(F, u);
							u += 16;
							u += 4;
							var hn = r.l(F, u);
							u += 4;
							N.g.channel = hG.sh(!0, gB, F, N.g.rect.Z, N.g.rect.h, u, hn);
							N.g.color = 255;
							N.g.HZ();
							u += hn
						}
						if (O % 4 != 0) u += 4 - O % 4
					}
					break;
				case "Lr16":
					ic.aX(y, F, P);
					break;
				default:
					console.log("unknown layer tag: " + s + ", size: " + t);
					break
			}
			var e7 = "Lr16 LMsk Txt2 artd extd luni pths extn tySh lfx2".split(" ");
			if (e7.indexOf(s) == -1)
				if (t % 4 != 0) console.log("size not multiple of 4!!!", s);
			if (s != "luni" && s != "TySh" && s != "tySh" && s != "lfx2")
				if (t % 4 != 0) t += 4 - t % 4;
			P += t
		}
		var ed = [];
		for (var w = 0; w < ed.length; w++) delete X[ed[w]];
		return P
	};
	ff.kn = function (F, P, o, X) {
		for (var Y in o)
			if (o[Y] == null) {
				alert("A bug occured (see console).");
				console.log("Please, report a bug, that \"" + Y + "\" tag was present with a null value.");
				delete o[Y]
			} for (var Y in o) {
			r.bh(F, P, "8BIM");
			P += 4;
			var y = P,
				z = 0;
			r.bh(F, P, Y);
			P += 4;
			r.Oc(F, P, 0);
			P += 4;
			switch (Y) {
				case "iOpa":
					r.oO(F, P, o[Y], 1);
					z = 4;
					break;
				case "brst":
					z = 0;
					for (var w = 0; w < 3; w++)
						if (o[Y][w] == 0) {
							r.oL(F, P + z, w);
							z += 4
						} break;
				case "knko":
					r.oO(F, P, o[Y], 1);
					z = 4;
					break;
				case "infx":
					r.oO(F, P, o[Y], 1);
					z = 4;
					break;
				case "clbl":
					r.oO(F, P, o[Y], 1);
					z = 4;
					break;
				case "lmgm":
					r.oO(F, P, o[Y], 1);
					z = 4;
					break;
				case "vmgm":
					r.oO(F, P, o[Y], 1);
					z = 4;
					break;
				case "lyid":
					r.oL(F, P, o[Y]);
					z = 4;
					break;
				case "lsct":
					r.oL(F, P, o[Y].type);
					z = 4;
					if (o[Y].sW) {
						r.bh(F, P + 4, "8BIM");
						r.bh(F, P + 8, o[Y].sW);
						z = 12
					}
					break;
				case "lyvr":
					r.oL(F, P, o[Y]);
					z = 4;
					break;
				case "lnsr":
					r.bh(F, P, o[Y]);
					z = 4;
					break;
				case "lspf":
					r.oL(F, P, o[Y]);
					z = 4;
					break;
				case "lclr":
					r.Fh(F, P, o[Y]);
					z = 8;
					break;
				case "luni":
					r.lS(F, P, o[Y]);
					z = 4 + 2 * o[Y].length;
					break;
				case "fxrp":
					r.AD(F, P, o[Y].x);
					r.AD(F, P + 8, o[Y].y);
					z = 16;
					break;
				case "artb":
				case "artd":
					r.oL(F, P, 16);
					z = b3.p1(F, o[Y], P + 4) + 4;
					break;
				case "SoCo":
					r.oL(F, P, 16);
					z = b3.p1(F, o[Y], P + 4) + 4;
					break;
				case "GdFl":
					r.oL(F, P, 16);
					z = b3.p1(F, o[Y], P + 4) + 4;
					break;
				case "PtFl":
					r.oL(F, P, 16);
					z = b3.p1(F, o[Y], P + 4) + 4;
					break;
				case "CgEd":
					var s = {
							classID: "null",
							Vrsn: {
								t: "long",
								v: 1
							},
							Brgh: {
								t: "long",
								v: 24
							},
							Cntr: {
								t: "long",
								v: 54
							},
							means: {
								t: "long",
								v: 127
							},
							Lab: {
								t: "bool",
								v: !1
							},
							useLegacy: {
								t: "bool",
								v: !1
							},
							Auto: {
								t: "bool",
								v: !0
							}
						},
						t = s,
						d = o[Y];
					t.Brgh.v = d.Brgh.v;
					t.Cntr.v = d.Cntr.v;
					t.useLegacy.v = d.useLegacy.v;
					r.oL(F, P, 16);
					z = b3.p1(F, s, P + 4) + 4;
					break;
				case "brit":
					F.cj(P, 8);
					z = 8;
					break;
				case "levl":
					var U = new cB;
					z = gm.qx(U, o[Y]);
					r.x4(F, P, U.data);
					break;
				case "curv":
					z = e2.nG(F, P, o[Y]);
					break;
				case "expA":
					z = 14;
					F.cj(P, 14);
					r.J6(F.data, P, 1);
					r.PL(F.data, P + 2, o[Y].Exps.v);
					r.PL(F.data, P + 6, o[Y].Ofst.v);
					r.PL(F.data, P + 10, o[Y].gammaCorrection.v);
					break;
				case "vibA":
					r.oL(F, P, 16);
					z = b3.p1(F, o[Y], P + 4) + 4;
					break;
				case "hue2":
					z = az.nG(F, P, o[Y]);
					break;
				case "blnc":
					z = 19;
					F.cj(P, z);
					var v = ["ShdL", "MdtL", "HghL"];
					for (var w = 0; w < 3; w++) {
						var A = o[Y][v[w]].v;
						for (var Z = 0; Z < 3; Z++) A.push(r.Gl(F.data, P + w * 6 + Z * 2, A[Z].v))
					}
					F.data[P + 18] = o[Y].PrsL.v ? 1 : 0;
					break;
				case "blwh":
					var s = {
							classID: "null",
							bwPresetKind: {
								t: "long",
								v: 1
							},
							blackAndWhitePresetFileName: {
								t: "TEXT",
								v: ""
							}
						},
						D = "Bl Cyn Grn Mgnt Rd Yllw tintColor useTint".split(" ");
					for (var w = 0; w < D.length; w++) {
						s[D[w]] = o[Y][D[w]]
					}
					r.oL(F, P, 16);
					z = b3.p1(F, s, P + 4) + 4;
					break;
				case "phfl":
					r.Fh(F, P, 2);
					var q = o[Y].Clr.v;
					r.Fh(F, P + 2, 7);
					r.Fh(F, P + 4, Math.round(q.Lmnc.v * 100));
					r.Fh(F, P + 6, Math.round(q.A.v * 100));
					r.Fh(F, P + 8, Math.round(q.B.v * 100));
					r.Fh(F, P + 10, 0);
					var R = P + 2 + 10;
					F.cj(R, 5);
					r.GB(F.data, R, o[Y].Dnst.v);
					R += 4;
					F.data[R] = o[Y].PrsL.v ? 1 : 0;
					R++;
					z = R - P;
					break;
				case "mixr":
					z = 44;
					F.cj(P, z);
					var J = b_.FX(o[Y]);
					r.J6(F.data, P, 1);
					r.J6(F.data, P + 2, J._W ? 1 : 0);
					for (var w = 0; w < 20; w++) r.Gl(F.data, P + 4 + w * 2, J.C[w]);
					break;
				case "clrL":
				case "rplc":
					r.Fh(F, P, 1);
					r.oL(F, P + 2, 16);
					z = b3.p1(F, o[Y], P + 6) + 6;
					break;
				case "nvrt":
					z = 0;
					break;
				case "post":
					r.Fh(F, P, o[Y].Lvls.v);
					z = 2;
					break;
				case "thrs":
					r.Fh(F, P, o[Y].Lvl.v);
					z = 2;
					break;
				case "grdm":
					var W = {
							rev: o[Y].Rvrs.v,
							dJ: !1,
							mode: 0,
							Og: 867527939,
							tE: !1,
							ex: !0,
							Ng: 2048,
							eb: 3,
							tI: [0, 0, 0, 0],
							DZ: [32768, 32768, 32768, 32768]
						},
						p = o[Y].Grad.v;
					F.cj(P, 4);
					r.J6(F.data, P, 1);
					F.data[P + 2] = W.rev ? 1 : 0;
					F.data[P + 3] = W.dJ ? 1 : 0;
					var n = P + 4;
					r.lS(F, n, p.Nm.v);
					n += 4 + p.Nm.v.length * 2;
					n = dv.acS(F, n, p);
					r.Fh(F, n, 2);
					n += 2;
					r.Fh(F, n, p.Intr.v);
					n += 2;
					r.Fh(F, n, 32);
					n += 2;
					r.Fh(F, n, W.mode);
					n += 2;
					r.oL(F, n, W.Og);
					n += 4;
					r.Fh(F, n, W.tE ? 1 : 0);
					n += 2;
					r.Fh(F, n, W.ex ? 1 : 0);
					n += 2;
					r.oL(F, n, W.Ng);
					n += 4;
					r.Fh(F, n, W.eb);
					n += 2;
					for (var w = 0; w < 4; w++) r.Fh(F, n + w * 2, W.tI[w]);
					n += 8;
					for (var w = 0; w < 4; w++) r.Fh(F, n + w * 2, W.DZ[w]);
					n += 8;
					n += 2;
					z = n - P;
					break;
				case "selc":
					z = bu.nG(F, P, o[Y]);
					break;
				case "FMsk":
					r.x4(F, P, o[Y]);
					z = o[Y].length;
					break;
				case "Txt2":
					var b = new cB,
						Q = hE.HC(o[Y].lK, b),
						_ = H.R(Q, !0);
					for (var w = 0; w < Q; w++) _[w] = b.data[w];
					r.x4(F, P, _);
					z = _.length;
					break;
				case "vmsk":
					var L = o[Y],
						m = 0;
					r.oL(F, P, 3);
					if (!L.AU) m += 1 << 1;
					if (!L.isEnabled) m += 1 << 2;
					r.oL(F, P + 4, m);
					z = 8;
					var I = L.b.length;
					F.cj(P + 8, I * 26);
					gN.A$(F.data, P + 8, L.b, X.Z, X.h);
					z += I * 26;
					break;
				case "shmd":
					r.oL(F, P, Object.keys(o[Y]).length);
					var R = P + 4;
					for (var c in o[Y]) {
						r.bh(F, R, "8BIM");
						R += 4;
						r.bh(F, R, c);
						R += 4;
						r.oL(F, R, 0);
						R += 4;
						r.oL(F, R, 0);
						R += 4;
						r.oL(F, R, 16);
						R += 4;
						var u = b3.p1(F, o[Y][c], R);
						if (u % 4 != 0) u += 4 - u % 4;
						r.oL(F, R - 8, u + 4);
						R += u
					}
					z = R - P;
					break;
				case "TySh":
					var R = P;
					r.N7(F, R, 1);
					R += 2;
					var a = o[Y],
						b = new cB;
					a.MF.DocumentResources = JSON.parse(JSON.stringify(a.MF.ResourceDict));
					var Q = gg.HC(a.MF, b),
						_ = H.R(Q, !0);
					for (var w = 0; w < Q; w++) _[w] = b.data[w];
					a.Hb.EngineData = {
						t: "tdta",
						v: _
					};
					var N = a.MF.EngineDict.Editor.Text;
					a.Hb.Txt.v = N.substring(0, N.length - 1);
					r.agw(F, R, a.O);
					R += 48;
					r.N7(F, R, 50);
					R += 2;
					r.oL(F, R, 16);
					R += 4;
					R += b3.p1(F, a.Hb, R);
					r.N7(F, R, 1);
					R += 2;
					r.oL(F, R, 16);
					R += 4;
					R += b3.p1(F, a.VU, R);
					r.a3v(F, R, a.xa);
					R += 16;
					z = R - P;
					break;
				case "lmfx":
					r.oL(F, P, 0);
					r.oL(F, P + 4, 16);
					var s = JSON.parse(JSON.stringify(o[Y])),
						V = !1;
					ff._k(s);
					for (var w = 0; w < ce.og.length; w++)
						if (s[ce.og[w]] != null) V = !0;
					r.bh(F, y, V ? "lmfx" : "lfx2");
					z = b3.p1(F, s, P + 8) + 8;
					break;
				case "Patt":
					var R = d9.C4(F, P, o[Y]);
					z = R - P;
					break;
				case "SoLd":
					r.bh(F, P, "soLD");
					r.oL(F, P + 4, 4);
					r.oL(F, P + 8, 16);
					z = b3.p1(F, o[Y], P + 12) + 12;
					break;
				case "vstk":
				case "pths":
					r.oL(F, P, 16);
					z = b3.p1(F, o[Y], P + 4) + 4;
					break;
				case "vscg__":
					r.bh(F, P, o[Y].key);
					r.oL(F, P + 4, 16);
					z = b3.p1(F, o[Y].C, P + 8) + 8;
					break;
				case "vogk":
					r.oL(F, P, 1);
					r.oL(F, P + 4, 16);
					H.P$.a2v(o[Y]);
					for (var w = 0; w < o[Y].length; w++) {
						var M = o[Y][w].v.keyOriginResolution;
						if (M) M.v = X.NB
					}
					var O = {
						classID: "null",
						keyDescriptorList: {
							t: "VlLs",
							v: o[Y]
						}
					};
					z = b3.p1(F, O, P + 8) + 8;
					break;
				case "lnkD":
				case "lnk2":
				case "lnk3":
					var n = P;
					for (var w = 0; w < o[Y].length; w++) {
						var K = o[Y][w],
							j = n;
						r.X4(F, n, 0);
						n += 8;
						r.bh(F, n, K.type);
						n += 4;
						r.oL(F, n, K.Sp);
						n += 4;
						F.cj(n, 1);
						F.data[n] = K.Za.length;
						n++;
						r.bh(F, n, K.Za);
						n += K.Za.length;
						r.lS(F, n, K.Z5 + "\0");
						n += 4 + K.Z5.length * 2 + 2;
						r.bh(F, n, K.d1);
						n += 4;
						r.bh(F, n, K.EC);
						n += 4;
						r.X4(F, n, K.raw.length);
						n += 8;
						F.cj(n, 1);
						F.data[n] = K.open;
						n++;
						r.x4(F, n, K.raw);
						n += K.raw.length;
						r.oL(F, n, 1);
						n += 4;
						n += 11;
						var $ = n - j - 8;
						r.X4(F, j, $);
						if ($ % 4 != 0) {
							F.cj(n, 4 - $ % 4);
							n += 4 - $ % 4
						}
					}
					z = n - P;
					break;
				case "FEid":
					var n = P;
					r.oL(F, n, 3);
					n += 4;
					for (var x = 0; x < o[Y].length; x++) {
						var g = o[Y][x];
						n += 4;
						var T = n;
						n += 4;
						r.JG(F, n, g.id);
						n += g.id.length + 1;
						r.oL(F, n, 1);
						n += 4;
						n += 4;
						var E = n;
						n += 4;
						r.nl(F, n, g.rect);
						n += 16;
						r.oL(F, n, 8);
						n += 4;
						r.oL(F, n, 24);
						n += 4;
						var a9 = new H._B(g.rect.M());
						H.Ae(g.buffer, a9);
						for (var w = 0; w < 24 + 2; w++) {
							var ez = null;
							if (w == 0) ez = a9.U;
							if (w == 1) ez = a9.S;
							if (w == 2) ez = a9.i;
							if (w == 25) ez = a9.m;
							r.oL(F, n, ez != null ? 1 : 0);
							n += 4;
							if (ez != null) {
								n += 4;
								var bN = n;
								n += 4;
								F.cj(n, g.rect.M() + 2);
								n = hG.jR(ez, F.data, g.rect.Z, g.rect.h, n, 3);
								r.oL(F, bN, n - (bN + 4))
							}
						}
						r.oL(F, E, n - (E + 4));
						F.cj(n, 1);
						F.data[n] = g.g ? 1 : 0;
						n++;
						if (g.g != null) {
							var cg = g.g.rect,
								d8 = g.g.channel;
							cg = g.rect;
							d8 = H.R(cg.M());
							H.set(d8, g.g.color);
							H.Lj(g.g.channel, g.g.rect, d8, cg);
							r.nl(F, n, cg);
							n += 16;
							n += 4;
							var C = n;
							n += 4;
							F.cj(n, cg.M() + 2);
							n = hG.jR(d8, F.data, cg.Z, cg.h, n, 3);
							r.oL(F, C, n - (C + 4))
						}
						var $ = n - (T + 4);
						r.oL(F, T, $);
						if ($ % 4 != 0) n += 4 - $ % 4
					}
					z = n - P;
					break;
				default:
					console.log("unknown layer tag: " + Y + ", size: " + z);
					P -= 12;
					continue
			}
			var S = ["Txt2", "artd", "extd", "luni", "pths"];
			if (S.indexOf(Y) == -1)
				if (z % 4 != 0) z += 4 - z % 4;
			r.Oc(F, P - 4, z);
			if (Y != "luni" && Y != "TySh")
				if (z % 4 != 0) z += 4 - z % 4;
			P += z
		}
		return P
	};
	ff.lm = function (F) {
		for (var w = 0; w < ce.order.length; w++) {
			var P = ce.order[w],
				o = ce.og[w];
			if (F[o] == null) F[o] = {
				t: "VlLs",
				v: []
			};
			if (F[P] != null) {
				F[o].v.push(F[P]);
				delete F[P]
			}
			var X = [];
			for (var Y = 0; Y < F[o].v.length; Y++) {
				var y = F[o].v[Y];
				if (y.v.present == null || y.v.present.v == !0) X.push(y)
			}
			F[o].v = X
		}
	};
	ff._k = function (F) {
		for (var w = 0; w < ce.order.length; w++) {
			var P = ce.order[w],
				o = ce.og[w],
				X = F[o].v.length;
			if (X == 0) {
				delete F[o];
				continue
			}
			if (X == 1) {
				F[P] = F[o].v[0];
				delete F[o];
				continue
			}
		}
	};
	ff.dQ = function (F, P) {
		if (P == "GdFl") {
			if (F.Angl == null) F.Angl = {
				v: {
					type: "#Ang",
					val: 0
				},
				t: "UntF"
			};
			if (F.Algn == null) F.Algn = {
				v: !0,
				t: "bool"
			};
			if (F.Scl == null) F.Scl = {
				v: {
					type: "#Prc",
					val: 100
				},
				t: "UntF"
			};
			if (F.Ofst == null) F.Ofst = {
				v: {
					classID: "Pnt",
					Hrzn: {
						v: {
							type: "#Prc",
							val: 0
						},
						t: "UntF"
					},
					Vrtc: {
						v: {
							type: "#Prc",
							val: 0
						},
						t: "UntF"
					}
				},
				t: "Objc"
			};
			if (F.Rvrs == null) F.Rvrs = {
				v: !1,
				t: "bool"
			};
			if (F.Dthr == null) F.Dthr = {
				v: !1,
				t: "bool"
			}
		}
		if (P == "PtFl") {
			if (F.Algn == null) F.Algn = {
				v: !0,
				t: "bool"
			};
			if (F.Scl == null) F.Scl = {
				v: {
					type: "#Prc",
					val: 100
				},
				t: "UntF"
			};
			if (F.phase == null) F.phase = {
				v: {
					classID: "Pnt",
					Hrzn: {
						v: 0,
						t: "doub"
					},
					Vrtc: {
						v: 0,
						t: "doub"
					}
				},
				t: "Objc"
			}
		}
	};
	ff.clone = function (F, P) {
		var o = {};
		if (F == "TySh") {
			o.O = P.O.clone();
			o.Hb = JSON.parse(JSON.stringify(P.Hb));
			o.VU = JSON.parse(JSON.stringify(P.VU));
			o.xa = P.xa.clone();
			o.MF = JSON.parse(JSON.stringify(P.MF));
			if (P.add) o.add = {
				vmsk: P.add.vmsk.clone(),
				vogk: JSON.parse(JSON.stringify(P.add.vogk))
			};
			return o
		} else if (F == "fxrp") return P.clone();
		else if (F == "vmsk") return P.clone();
		else return JSON.parse(JSON.stringify(P))
	};

	function ey(F, P) {}
	ey.ee = function (F, P, o, X) {
		X = ey.a85(F, P, o, X);
		return X
	};
	ey.HC = function (F, P, o, X, Y) {
		X = ey.a2W(F, P, o, X, Y);
		return X
	};
	ey.a85 = function (F, P, o, X) {
		var Y = X;
		F.rect = r.g$(o, X);
		X += 16;
		var y = r.lU(o, X);
		X += 2;
		F.fu = [];
		var z = P.W4;
		for (var w = 0; w < y; w++) {
			F.fu[w] = {
				id: r.dx(o, X),
				length: (z ? r.k0 : r.l)(o, X + 2)
			};
			X += z ? 10 : 6
		}
		var s = r.$o(o, X, 4);
		X += 4;
		if (s != "8BIM") {
			console.log("Invalid Blend mode signature: " + s);
			alert("Error in Photoshop file: wrong signature.");
			throw "e"
		}
		F.sW = r.$o(o, X, 4);
		X += 4;
		F.opacity = o[X];
		X += 1;
		F.rd = o[X] == 1;
		X += 1;
		F.ix = o[X];
		X += 1;
		if (o[X] != 0) console.log("error in filler!");
		X += 1;
		var t = r.l(o, X);
		X += 4;
		var d = X;
		X = ey.aeO(F, o, X);
		X = ey.adA(F, o, X);
		var U = r.Zd(o, X);
		F.name = U.dC;
		X += U.length;
		if (U.length % 4 != 0) X += 4 - U.length % 4;
		X = ff.H_(o, X, d + t, F.add, z, P);
		if (F.s5) {
			var v = F.s5;
			if (F.jk()) {
				F.jk().au = v[0];
				F.jk().bM = v[1]
			}
			if (F.add.vmsk) {
				F.add.vmsk.au = v[2];
				F.add.vmsk.bM = v[3]
			}
		}
		if (F.add.lsct) {
			if (F.add.lsct.sW) F.sW = F.add.lsct.sW;
			F.add.lsct = F.add.lsct.type
		}
		return X
	};
	ey.a2W = function (F, P, o, X, Y) {
		var y = X;
		r.nl(o, X, F.rect);
		X += 16;
		var z = F.bD();
		r.Fh(o, X, z.length);
		X += 2;
		Y.push(X);
		for (var w = 0; w < z.length; w++) {
			r.N7(o, X, z[w]);
			r.oL(o, X + 2, 0);
			X += 6
		}
		r.bh(o, X, "8BIM");
		X += 4;
		r.bh(o, X, F.sW);
		X += 4;
		r.oO(o, X, F.opacity, 1);
		X += 1;
		r.oO(o, X, F.rd ? 1 : 0, 1);
		X += 1;
		r.oO(o, X, F.ix, 1);
		X += 1;
		r.oO(o, X, 0, 1);
		X += 1;
		var s = X;
		r.oL(o, X, 0);
		X += 4;
		var t = X;
		X = ey.a0Y(F, o, X);
		X = ey.adi(F, o, X);
		var d = r.JG(o, X, F.name.slice(0, 255));
		X += d;
		if (d % 4 != 0) X += 4 - d % 4;
		if (F.add.lsct) {
			F.add.lsct = {
				type: F.add.lsct
			};
			if (F.sW == "pass") {
				F.add.lsct.sW = "pass";
				F.sW = "norm"
			}
		}
		if (F.sW == "pass") F.add.lsct = {
			type: F.add.lsct,
			sW: "pass"
		};
		if (F.add.brit) F.add.CgEd = F.add.brit;
		X = ff.kn(o, X, F.add, P);
		delete F.add.CgEd;
		if (F.add.lsct) {
			if (F.add.lsct.sW) F.sW = F.add.lsct.sW;
			F.add.lsct = F.add.lsct.type
		}
		var U = X - t;
		r.oL(o, s, U);
		return X
	};
	ey.aeO = function (F, P, o) {
		var X = r.l(P, o);
		o += 4;
		if (X == 0) return o;
		var Y = o;
		F.g = new h.vm;
		F.g.rect = r.g$(P, o);
		o += 16;
		F.g.color = P[o];
		o += 1;
		var y = ey.r9(F.g, P, o);
		o += 1;
		if (y) {
			var z = !1,
				s = 255,
				t = 0,
				d = 255,
				U = 0;
			for (var w = 0; w < F.fu.length; w++)
				if (F.fu[w].id == -3) z = !0;
			if (z) {
				F.NY = ey.SZ(P, o);
				o += 18
			}
			var v = o,
				A = P[o];
			o++;
			if (A >> 0 & 1) {
				s = P[o];
				o++
			}
			if (A >> 1 & 1) {
				t = r.VZ(P, o);
				o += 8
			}
			if (A >> 2 & 1) {
				d = P[o];
				o++
			}
			if (A >> 3 & 1) {
				U = r.VZ(P, o);
				o += 8
			}
			if ((o - v & 1) == 1) o++;
			F.s5 = [s, t, d, U]
		} else {
			if (X == 20) o += 2;
			else {
				F.NY = ey.SZ(P, o);
				o += 18
			}
		}
		return Y + X
	};
	ey.a0Y = function (F, P, o) {
		r.oL(P, o, 0);
		o += 4;
		if (F.g == null) return o;
		var X = o,
			Y = !0;
		r.oL(P, o, 0);
		r.nl(P, o, F.g.rect);
		o += 16;
		r.oO(P, o, F.g.color);
		o += 1;
		ey.di(F.g, P, o, Y);
		o += 1;
		if (Y) {
			if (F.NY) {
				ey.a6J(P, o, F.NY);
				o += 18
			}
			r.oO(P, o, 15);
			o += 1;
			var y = F.jk(),
				z = F.add.vmsk;
			r.oO(P, o, y ? y.au : 255);
			o += 1;
			r.AD(P, o, y ? y.bM : 0);
			o += 8;
			r.oO(P, o, z ? z.au : 255);
			o += 1;
			r.AD(P, o, z ? z.bM : 0);
			o += 8;
			o++;
			r.oL(P, X - 4, o - X)
		}
		return o
	};
	ey.SZ = function (F, P) {
		var o = new h.vm;
		ey.r9(o, F, P);
		P += 1;
		o.color = F[P];
		P += 1;
		o.rect = r.g$(F, P);
		P += 16;
		return o
	};
	ey.a6J = function (F, P, o) {
		ey.di(o, F, P, !1);
		P += 1;
		r.oO(F, P, o.color);
		P += 1;
		r.nl(F, P, o.rect);
		P += 16
	};
	ey.r9 = function (F, P, o) {
		var X = P[o];
		F.AU = (X >> 0 & 1) == 0;
		F.isEnabled = (X >> 1 & 1) == 0;
		F.tA = (X >> 3 & 1) == 1;
		return X >> 4 & 1
	};
	ey.di = function (F, P, o, X) {
		var Y = 0;
		if (!F.AU) Y += 1 << 0;
		if (!F.isEnabled) Y += 1 << 1;
		if (F.tA) Y += 1 << 3;
		if (X) Y += 1 << 4;
		r.oO(P, o, Y)
	};
	ey.adA = function (F, P, o) {
		var X = r.l(P, o);
		o += 4;
		if (X == 0) return o;
		if (X != 5 * 8) console.log("unexpected Layer Blending Ranges content, size:", X);
		for (var w = 0; w < X; w++) F.LL[w] = P[o + w];
		return o + 40
	};
	ey.adi = function (F, P, o) {
		r.oL(P, o, F.LL.length);
		o += 4;
		P.cj(o, 40);
		for (var w = 0; w < 40; w++) {
			P.data[o + w] = F.LL[w]
		}
		return o + 40
	};

	function hG() {}
	hG.ee = function (F, P, o, X) {
		X = hG.a3g(P.W4, P.bv, P.Fy, F, o, X);
		return X
	};
	hG.qx = function (F, P, o, X, Y) {
		o = hG.abC(F, P, o, X, Y);
		return o
	};
	hG.a3g = function (F, P, o, X, Y, y) {
		var z = X.fu,
			s = {},
			t = y;
		for (var w = 0; w < z.length; w++) {
			var d = z[w],
				U = d.id,
				v = d.length,
				A;
			if (U == -3) A = X.NY.rect;
			else if (U == -2) A = X.g.rect;
			else A = X.rect;
			var Z = hG.sh(F, P, Y, A.Z, A.h, y, v);
			y += v;
			if (U == -3) X.NY.channel = Z;
			else if (U == -2) X.g.channel = Z;
			else s["c" + U] = Z
		}
		var D = new H._B(0);
		D.m = null;
		if (o == 3) {
			D.U = s.c0;
			D.S = s.c1;
			D.i = s.c2;
			D.m = s["c-1"]
		} else if (o == 1) {
			D.U = s.c0;
			D.S = s.c0;
			D.i = s.c0;
			D.m = s["c-1"]
		} else if (o == 4) {
			var q = s.c0,
				R = s.c1,
				J = s.c2,
				W = s.c3,
				p = q.length,
				n = 1 / 255;
			for (var w = 0; w < p; w++) {
				var b = q[w],
					Q = R[w],
					_ = J[w],
					L = W[w] * n;
				q[w] = Math.round(b * L);
				R[w] = Math.round((.2 * b + .8 * Q) * L);
				J[w] = Math.round((.2 * Q + .8 * _) * L)
			}
			D.U = q;
			D.S = R;
			D.i = J;
			D.m = s["c-1"];
			console.log("converting from CMYK to RGB")
		}
		if (D.U == null) D.U = H.R(0);
		if (D.m == null && D.U != null) {
			D.m = H.clone(D.U);
			H.set(D.m, 255)
		}
		if (D.S == null) D.S = D.U.slice(0);
		if (D.i == null) D.i = D.U.slice(0);
		X.buffer = H.R(Math.max(0, X.rect.M() * 4));
		H.sA(D, X.buffer);
		return y
	};
	hG.abC = function (F, P, o, X, Y) {
		var y = F.bD(),
			z = new H._B(F.rect.M());
		H.Ae(F.buffer, z);
		for (var w = 0; w < y.length; w++) {
			var s = y[w],
				t, d;
			if (s == -3) t = F.NY.rect;
			else if (s == -2) t = F.g.rect;
			else t = F.rect;
			if (s == -3) d = F.NY.channel;
			if (s == -2) d = F.g.channel;
			if (s == -1) d = z.m;
			if (s == 0) d = z.U;
			if (s == 1) d = z.S;
			if (s == 2) d = z.i;
			P.cj(o, t.M() * 3 + 4);
			var U = o;
			o = hG.jR(d, P.data, t.Z, t.h, o, Y[1] ? 3 : 1);
			var v = o - U;
			if (v % 2 != 0) {
				v += v % 2;
				o++
			}
			r.GB(P.data, X + w * 6 + 2, v)
		}
		return o
	};
	hG.sh = function (F, P, o, X, Y, y, z) {
		var s = r.lU(o, y);
		y += 2;
		return hG.zc(F, P, o, X, Y, y, s, z - 2)
	};
	hG.jR = function (F, P, o, X, Y, y) {
		r.Gl(P, Y, y);
		Y += 2;
		Y = hG.CP(F, P, o, X, Y, y);
		return Y
	};
	hG.zc = function (F, P, o, X, Y, y, z, s) {
		var t, d = X * Y * (P >>> 3),
			U = d & 3,
			v = d + (U == 0 ? 0 : 4 - U);
		if (z > 3) {
			console.log("unknown compression: " + z, X, Y, X * Y, s);
			z = 0
		}
		if (z == 0) {
			if (y + v <= o.length) t = o.slice(y, y + v);
			else {
				t = H.R(d);
				for (var w = 0; w < d; w++) t[w] = o[y + w]
			}
			y += d
		} else if (z == 1) {
			t = H.R(d);
			var A = F ? 4 : 2,
				Z = hG.NJ(o, t, X, Y, y, y + A * Y, A);
			y += A * Y + Z
		} else if (z == 2 || z == 3) {
			var D = new Uint8Array(o.buffer, y + 2, s - 6),
				q = pako.inflateRaw(D);
			if (z == 3) {
				if (P == 8)
					for (var R = 0; R < Y; R++) {
						var J = R * X + 1,
							W = J + X - 1,
							p = q[J - 1];
						for (var n = J; n < W; n++) {
							p += q[n];
							q[n] = p & 255
						}
					} else
						for (var R = 0; R < Y; R++) {
							var J = R * X + 1,
								W = J + X - 1,
								p = q[2 * J - 2] << 8 | q[2 * J - 1];
							for (var n = J; n < W; n++) {
								var b = n << 1;
								p += q[b] << 8 | q[b + 1];
								q[b] = p >>> 8;
								q[b + 1] = p & 255
							}
						}
			}
			if (q.length == v) t = q;
			else {
				t = H.R(v);
				for (var w = 0; w < q.length; w++) t[w] = q[w]
			}
		}
		if (P == 16) {
			var Q = H.R(X * Y);
			for (var w = 0; w < d; w += 2) Q[w >>> 1] = t[w];
			t = Q
		}
		return t
	};
	hG.CP = function (F, P, o, X, Y, y) {
		var z = o * X;
		if (y == 0)
			for (var w = 0; w < z; w++) P[Y++] = F[w];
		else if (y == 1) {
			var s = hG.Sr(F, P, o, X, Y, Y + 2 * X);
			Y += 2 * X + s
		} else if (y == 2 || y == 3) {
			if (y == 3) {
				var t = new Uint8Array(F.length);
				for (var d = 0; d < X; d++) {
					var U = d * o + 1,
						v = U + o - 1,
						A = F[U - 1];
					t[U - 1] = A;
					for (var Z = U; Z < v; Z++) {
						t[Z] = F[Z] + (256 - A) & 255;
						A = F[Z]
					}
				}
				F = t
			}
			P[Y] = 120;
			P[Y + 1] = 156;
			Y += 2;
			var D = pako.deflateRaw(F, {
				amF: 4
			});
			r.fw(P, Y, D);
			Y += D.length + 4
		} else console.log("Unknown compression: " + y);
		return Y
	};
	hG.NJ = function (F, P, o, X, Y, y, z) {
		var s = y,
			t = X | 0;
		if (z == 2)
			for (var w = 0; w < t; w++) {
				var d = r.lU(F, Y + (w << 1));
				hG.QF(F, y, d, P, w * o, o);
				y += d
			} else
				for (var w = 0; w < t; w++) {
					var d = r.l(F, Y + (w << 2));
					hG.QF(F, y, d, P, w * o, o);
					y += d
				}
		return y - s
	};
	hG.Sr = function (F, P, o, X, Y, y) {
		var z = y;
		for (var w = 0; w < X; w++) {
			var s = hG.a0J(F, w * o, o, P, y);
			r.J6(P, Y + w * 2, s);
			y += s
		}
		return y - z
	};
	hG.a0J = function (F, P, e, o, X) {
		var Y, y, z, s, t, gH, d;
		s = P + e;
		for (z = P, y = X; e > 0; z = Y, e -= gH) {
			d = e < 128 ? e : 128;
			if (z <= s - 3 && F[z + 1] == F[z + 0] && F[z + 2] == F[z + 0]) {
				for (Y = z + 3; Y < z + d && F[Y] == F[z + 0];) ++Y;
				gH = Y - z;
				o[y++] = 1 + 256 - gH;
				o[y++] = F[z + 0]
			} else {
				for (Y = z; Y < z + d;)
					if (Y <= s - 3 && F[Y + 1] == F[Y + 0] && F[Y + 2] == F[Y + 0]) break;
					else ++Y;
				gH = Y - z;
				o[y++] = gH - 1;
				for (var w = 0; w < gH; w++) o[y + w] = F[z + w];
				y += gH
			}
		}
		return y - X
	};
	hG.QF = function (F, P, o, X, Y, y) {
		for (var z = 0; z < o;) {
			var e = F[P++];
			if (e >= 128) {
				var s = F[P++],
					t = Y + (257 - e);
				while (Y + 1 < t) {
					X[Y++] = X[Y++] = s
				}
				if (Y < t) X[Y++] = s;
				z += 2
			} else {
				for (var w = 0; w <= e; w++) X[Y + w] = F[P + w];
				P += e + 1;
				Y += e + 1;
				z += 1 + 1 + e
			}
		}
	};

	function ic() {}
	ic.ee = function (F, P) {
		P.W4 = !1;
		P.bv = 8;
		var o = new Uint8Array(F),
			X = 0,
			Y = 0,
			E, S = 0,
			g4 = !1,
			bB = !0,
			d1 = !1,
			f_ = 0;
		Y = ic.o1(P, o, X);
		X = Y;
		Y = ic.ahq(P, o, X);
		X = Y;
		Y = ic.aiH(P, o, X);
		X = Y;
		Y = ic.ah3(P, o, X);
		X = Y;
		Y = ic.alQ(P, o, X);
		X = Y;
		if (P.r.length == 0) {
			var y = P.an();
			y.uf("Background");
			P.r.push(y);
			y.buffer = H.clone(P.buffer);
			y.rect = new ev(0, 0, P.Z, P.h)
		}
		if (P.zQ.r1005) {
			P.NB = r.ab7(P.zQ.r1005, 0)
		}
		if (P.zQ.r1026) {
			var o = P.zQ.r1026;
			for (var w = 0; w < o.length; w += 2) {
				var Y = P.r[w >>> 1];
				if (Y) Y.Qk = r.lU(o, w)
			}
		}
		if (P.zQ.r1032) {
			var o = P.zQ.r1032,
				z = r.l(o, 12);
			for (var w = 0; w < z; w++) {
				var s = o[16 + w * 5 + 4],
					t = r.tF(o, 16 + w * 5) / 32;
				P.ei[s].push(t)
			}
		}
		delete P.zQ.r1036;
		delete P.zQ.r1039;
		if (P.zQ.r1050) {
			var d = r.l,
				U = P.zQ.r1050,
				v = r.l(U, 0);
			if (v == 6) {
				var A = 4,
					Z = r.g$(U, A);
				A += 16;
				var D = r.O_(U, A);
				A += 4 + D.length * 2;
				var q = d(U, A);
				A += 4;
				var R = P.P0;
				for (var w = 0; w < q; w++) {
					var J = B.e9.Mm(),
						p;
					R.push(J);
					J = J.v;
					J.sliceID.v = d(U, A);
					A += 4;
					J.groupID.v = d(U, A);
					A += 4;
					var W = d(U, A);
					A += 4;
					if (W == 1) {
						p = d(U, A);
						A += 4
					}
					var D = r.O_(U, A);
					A += 4 + D.length * 2;
					var n = d(U, A);
					A += 4;
					var b = [d(U, A), d(U, A + 4), d(U, A + 8), d(U, A + 12)];
					A += 16;
					B.e9.EG(R, R.length - 1, b);
					var Q = J.url.v = r.O_(U, A);
					A += 4 + Q.length * 2;
					var _ = J.null.v = r.O_(U, A);
					A += 4 + _.length * 2;
					var L = J.Msge.v = r.O_(U, A);
					A += 4 + L.length * 2;
					var m = J.altTag.v = r.O_(U, A);
					A += 4 + m.length * 2;
					J.cellTextIsHTML.v = U[A] == 1;
					A++;
					var I = J.cellText.v = r.O_(U, A);
					A += 4 + I.length * 2;
					var c = d(U, A);
					A += 4;
					var u = d(U, A);
					A += 4;
					var a = U.slice(A, A + 4);
					A += 4;
					if (W != 2) R.pop()
				}
			} else if (v == 8) {
				var N = {};
				b3.Gz(U, N, 8, !1);
				var U = P.P0 = N.slices.v;
				for (var w = 0; w < U.length; w++) {
					if (U[w].v.origin.v.ESliceOrigin != "userGenerated") {
						U.splice(w, 1);
						w--
					}
				}
			}
		}
		if (P.zQ.r1058) {
			var V = P.zQ.r1058,
				M = UTIF.decode(V.buffer, {
					parseMN: !1,
					debug: !1
				});
			f0.J2(M[0], P.ZT);
			delete P.zQ.r1058
		}
		if (P.zQ.r1060) {
			var O = r.bc(P.zQ.r1060);
			f0.ZV(O, P.ZT);
			delete P.zQ.r1060
		}
		if (P.zQ.r1065) {
			var o = P.zQ.r1065;
			P.e5 = {};
			b3.Gz(o, P.e5, 4, !1)
		}
		if (P.zQ.r1069) {
			var o = P.zQ.r1069,
				K = [];
			for (var w = 2; w < o.length; w += 4) {
				var p = r.l(o, w);
				for (var j = 0; j < P.r.length; j++) {
					var Y = P.r[j];
					if (Y.add.lyid == p && Y.add.lsct != 3) K.push(j)
				}
			}
			P.p = K
		}
		if (P.zQ.r1025) {
			var $ = P.zQ.r1025;
			delete P.zQ.r1025;
			var x = gN.xe($, 0, $.length, P.Z, P.h),
				g = new h.iO;
			g.b = x;
			P.VW[0] = c_.GG("Working Path", {
				vmsk: g
			})
		}
		var T = P.add.pths;
		delete P.add.pths;
		var a9 = P.zQ.r3000;
		if (a9) {
			E = {};
			b3.Gz(a9, E, 4, !1);
			delete P.zQ.r3000
		}
		for (var ez = 0; ez <= 997; ez++) {
			var bN = "r" + (2e3 + ez),
				$ = P.zQ[bN];
			if ($ == null) break;
			var x = gN.xe($, 0, $.length, P.Z, P.h),
				cg = T ? T.pathList.v[ez].v.pathUnicodeName.v : "Path " + ez,
				d8 = E ? E.keyRootDescriptorList.v[ez].v.keyDescriptorList.v : h.h7(x),
				g = new h.iO;
			g.b = x;
			P.VW[ez + 1] = c_.GG(cg, {
				vmsk: g,
				vogk: d8
			});
			delete P.zQ[bN]
		}
		delete P.W4;
		var C = new ev(0, 0, P.Z, P.h),
			g7 = P.add.Txt2,
			g_ = g7;
		if (g_) {
			g_ = g_.lK;
			if (g_._DocumentResources == null) g_ = cX.a27(g_)
		}
		if (g7 && g7.lK._DocumentResources != null) {
			var fw = "_Type _FrameMatrix _TextOnPathTRange _PathData _FirstBaselineAlignment _LineOrientation _RowGutter _ColumnGutter".split(" "),
				dT = g7.lK._DocumentResources._TextFrameSet._Resources;
			for (var w = 0; w < dT.length; w++) {}
		}
		for (var w = 0; w < P.r.length; w++) {
			var Y = P.r[w],
				g$ = Y.add.lsct,
				eT = Y.add.vmsk,
				dz = Y.jk();
			if (g$ == gr.Qi) f_++;
			else if (g$ == gr.lw || g$ == gr.kE) f_--;
			if (Y.name == "") {
				Y.name = "Layer " + (w + 1);
				d1 = !0
			}
			if (d1 && Y.fO() && Y.sW == "norm") Y.sW = "pass";
			if (Y.gO() && Y.yg(P).g) {
				var i4 = Y.yg(P);
				i4.g.isEnabled = Y.add.SoLd.filterFX.v.filterMaskEnable.v
			}
			if (eT && Y.ws()) {
				var fy = ce.bW.default;
				if (Y.add.vstk == null) Y.add.vstk = JSON.parse(JSON.stringify(fy));
				else {
					var cN = "strokeStyleLineDashSet";
					if (Y.add.vstk[cN] == null) Y.add.vstk[cN] = JSON.parse(JSON.stringify(fy[cN]))
				}
			}
			if (eT && (Y.add.vogk == null || H.V.k3(eT.b) != Y.add.vogk.length)) Y.h7();
			if (dz == null && Y.g != null) {
				if (Y.g.tA == !1) {
					Y.g.tA = !0;
					Y.NY = Y.g.clone()
				} else {
					eT.NY = Y.g;
					eT.G2 = !1;
					Y.g.bM = eT.bM;
					Y.g.au = eT.au
				}
			}
			if (dz != null && eT != null && (dz.bM + eT.bM != 0 || dz.au + eT.au != 2 * 255)) Y._V(P);
			var fP = Y.add.artb;
			if (fP && fP.artboardBackgroundType == null) fP.artboardBackgroundType = {
				t: "long",
				v: 1
			};
			if (fP && f_ != 0) delete Y.add.artb;
			var du = Y.add.vstk;
			if (Y.ws() && (Y.rect.qr() || eT && eT.bM != 0 || du && !du.fillEnabled.v && (!du.strokeEnabled.v || du.strokeStyleLineWidth.v.val == 0))) Y.fe(P);
			if (Y.add.TySh) {
				g4 = !0;
				if (!Y.rect.qr()) bB = !1
			}
			if (Y.add.TySh && g_) {
				var ea = Y.add.TySh.MF,
					cF = bt.dd(ea),
					gB = ea.EngineDict.ParagraphRun.RunArray,
					bp = g_._DocumentObjects._TextObjects;
				if (bp.length <= S) {
					console.log("Txt2 incomplete");
					continue
				}
				bp = bp[S]._Model._ParagraphRun._RunArray;
				if (bp == null) bp = [];
				var hf = Math.min(bp.length, gB.length);
				for (var j = 0; j < hf; j++) {
					var bq = gB[j].ParagraphSheet.Properties,
						eY = g_._DocumentResources._ParagraphSheetSet._Resources,
						f1 = bp[j]._RunData._ParagraphSheet;
					if (typeof f1 == "string") f1 = eY[parseInt(f1.slice(1))]._Resource;
					var dh = f1._Parent == null ? f1 : eY[parseInt(f1._Parent.slice(1))]._Resource,
						hn = f1._Features._ParagraphDirection;
					if (hn == null) hn = dh._Features._ParagraphDirection;
					if (hn) bq._Direction = parseInt(hn.slice(1))
				}
				var e7 = g_._DocumentResources,
					ed = e7._TextFrameSet._Resources,
					hP = ed[S]._Resource,
					ck = hP._Data,
					ds = new cu(1, 0, 0, 1, 0, 0);
				if (hP._0) {
					var hB = parseFloat(hP._0[0].slice(1)),
						bd = parseFloat(hP._0[1].slice(1));
					ds.translate(hB, bd)
				}
				if (cF) {
					ds.translate(cF[0], cF[1]);
					bt.Z1(ea, [0, 0, cF[2] - cF[0], cF[3] - cF[1]])
				} else {
					if (hP._Bezier && hP._Bezier._Points) {
						var x = hP._Bezier._Points,
							hB = parseFloat(x[0].slice(1)),
							bd = parseFloat(x[1].slice(1));
						if (hB != 0 || bd != 0) {
							ds.translate(hB, bd)
						}
					}
				}
				if (hP._Data && hP._Data._FrameMatrix) {
					var d0 = hP._Data._FrameMatrix;
					d0 = d0.map(function (dE) {
						return parseFloat(dE.slice(1))
					});
					ds.concat(new cu(d0[0], d0[1], d0[2], d0[3], d0[4], d0[5]))
				}
				ds.concat(Y.add.TySh.O);
				Y.add.TySh.O = ds;
				S++;
				var n = ck._Type ? parseInt(ck._Type.slice(1)) : 0;
				if (n == 2 || n == 1 && ck._PathData._Spacing == "i-3") {
					var d$ = function (dE) {
							return parseFloat(dE.slice(1))
						},
						x = hP._Bezier._Points.map(d$);
					if (cF) H.D.O(x, new cu(1, 0, 0, 1, -cF[0], -cF[1]), x);
					var ap = ck._PathData ? ck._PathData._Reversed : !1;
					ea.Curve = {
						Points: x,
						TextOnPathTRange: ck._TextOnPathTRange.map(d$),
						Reversed: ap == null ? !1 : ap
					};
					Y.add.TySh.add = {
						vmsk: new h.iO,
						vogk: null
					};
					bt.SK(Y.add.TySh)
				}
			}
		}
		cj.ln.vc(P, !0)
	};
	ic.HC = function (F, P, o) {
		cj.ln.VL(F);
		cj.ln.vc(F, !1);
		var X = [],
			Y = [],
			y = [],
			z = [],
			s = [],
			m = 16,
			cg = 0;
		for (var w = 0; w < F.r.length; w++) {
			var t = F.r[w];
			if (t.gO() && t.yg(F).g) {
				t.add.SoLd.filterFX.v.filterMaskEnable.v = t.yg(F).g.isEnabled
			}
			if (t.add.SoLd) {
				Y.push(t.add.SoLd.Idnt.v);
				y.push(t.add.SoLd.placed.v)
			}
			if (t.add.TySh) {
				var d = t.add.TySh.MF,
					U = bt.AW(d);
				t.add.TySh.Hb.TextIndex = {
					t: "long",
					v: X.length
				};
				X.push(d);
				if (U == 2) bt.jj(t.add.TySh)
			}
			if (t.add.PtFl) z.push(t.add.PtFl.Ptrn.v.Idnt.v);
			if (t.add.lmfx) {
				for (var v = 0; v < ce.og.length; v++) {
					var A = t.add.lmfx[ce.og[v]].v;
					for (var Z = 0; Z < A.length; Z++)
						if (A[Z].v.Ptrn) z.push(A[Z].v.Ptrn.v.Idnt.v)
				}
			}
			var D = t.add.vstk;
			if (D && D.strokeStyleContent.v.classID == "patternLayer") {
				z.push(D.strokeStyleContent.v.Ptrn.v.Idnt.v)
			}
			if (t.ws()) {
				s[w] = [t.rect, t.buffer];
				t.rect = new ev;
				t.buffer = H.R(0)
			}
		}
		if (X.length > 0) {
			var q = F.add.Txt2 ? F.add.Txt2.lK : null;
			F.add.Txt2 = {};
			F.add.Txt2.lK = gy.acU(X, null, q)
		}
		var R = F.add.lnk2;
		if (R) {
			var J = F.add.lnk2 = [];
			for (var w = 0; w < R.length; w++)
				if (Y.indexOf(R[w].Za) != -1) J.push(R[w]);
			if (J.length == 0) delete F.add.lnk2
		}
		var W = F.add.FEid;
		if (W) {
			var p = F.add.FEid = [];
			for (var w = 0; w < W.length; w++)
				if (y.indexOf(W[w].id) != -1) p.push(W[w]);
			if (p.length == 0) delete F.add.FEid
		}
		var n = F.add.Patt;
		if (n) {
			var b = F.add.Patt = [];
			for (var w = 0; w < n.length; w++)
				if (z.indexOf(n[w].id) != -1) b.push(n[w])
		}
		F.zQ.r1005 = new Uint8Array([0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 1, 0, 2]);
		r.ub(F.zQ.r1005, 0, F.NB);
		r.ub(F.zQ.r1005, 8, F.NB);
		if (F.ET()) {
			F.zQ.r1022 = new Uint8Array([0, 3 + F.Yq.length - 1, 0])
		} else delete F.zQ.r1022;
		F.zQ.r1026 = new Uint8Array(F.r.length * 2);
		for (var w = 0; w < F.r.length; w++) r.J6(F.zQ.r1026, w * 2, F.r[w].Qk);
		var Q = F.ei,
			_ = Q[0].length + Q[1].length,
			L = F.zQ.r1032 = H.R(16 + 5 * _, !0);
		r.GB(L, 0, 1);
		r.GB(L, 4, 576);
		r.GB(L, 8, 576);
		r.GB(L, 12, _);
		for (var w = 0; w < 2; w++)
			for (var Z = 0; Z < Q[w].length; Z++) {
				r.V3(L, m, Math.round(Q[w][Z] * 32));
				L[m + 4] = w;
				m += 5
			}
		var I = H.Ms(F.buffer),
			c = [];
		if (I) c.push({
			name: "Transparency",
			u9: {
				U: 255,
				S: 0,
				i: 0
			},
			oE: 100,
			iy: 1
		});
		c = c.concat(F.Yq);
		delete F.zQ.r1045;
		delete F.zQ.r1006;
		delete F.zQ.r1077;
		var u = new cB;
		m = 0;
		var a = new Uint8Array(4 + c.length * 13);
		a[3] = 1;
		for (var w = 0; w < c.length; w++) {
			var N = c[w],
				V = N.name + "\0";
			r.lS(u, m, V);
			m += 4 + V.length * 2;
			var M = 4 + w * 13;
			gL.PO(a, M, N.u9);
			a[M + 11] = N.oE;
			a[M + 12] = N.iy
		}
		F.zQ.r1045 = u.data.slice(0, m);
		F.zQ.r1077 = a;
		for (var w = 0; w < F.P0.length; w++) F.P0[F.P0.length - w - 1].v.sliceID.v = 2 + w * 3;
		var O = {
				classID: "null",
				baseName: {
					t: "TEXT",
					v: "User"
				},
				bounds: {
					t: "Objc",
					v: {
						classID: "Rct1",
						Top: {
							t: "long",
							v: 0
						},
						Left: {
							t: "long",
							v: 0
						},
						Btom: {
							t: "long",
							v: 0
						},
						Rght: {
							t: "long",
							v: 0
						}
					}
				},
				slices: {
					t: "VlLs",
					v: F.P0
				}
			},
			u = new cB;
		r.oL(u, 0, 8);
		r.oL(u, 4, 16);
		var K = b3.p1(u, O, 8);
		F.zQ.r1050 = u.data.slice(0, K + 8);
		var u = new cB;
		r.oL(u, 0, 16);
		var K = b3.p1(u, F.e5, 4);
		F.zQ.r1065 = u.data.slice(0, K + 4);
		var j = F.p;
		L = F.zQ.r1069 = H.R(2 + j.length * 4, !0);
		r.J6(L, 0, j.length);
		for (var w = 0; w < j.length; w++) r.GB(L, 2 + 4 * w, F.r[j[w]].add.lyid);
		delete F.zQ.r1058;
		delete F.zQ.r1060;
		if (Object.keys(F.ZT).length != 0) {
			var $ = [{
				t274: [1],
				t282: [
					[72, 1]
				],
				t283: [
					[72, 1]
				],
				t296: [2]
			}, {
				t259: [6],
				t282: [
					[72, 1]
				],
				t283: [
					[72, 1]
				],
				t296: [2],
				t513: [302],
				t514: [0]
			}];
			f0.XG(F.ZT, $[0], o[0] && o[1]);
			F.zQ.r1058 = new Uint8Array(UTIF.encode($));
			var x = f0.zJ(F.ZT);
			F.zQ.r1060 = r.vI(x)
		}
		var g = [],
			T = [];
		for (var w = 0; w < F.VW.length; w++) {
			var E = F.VW[w],
				a9 = E.add.vmsk.b;
			if (w == 0 && a9.length == 2) continue;
			var ez = H.R(a9.length * 26);
			gN.A$(ez, 0, a9, F.Z, F.h);
			var bN = w == 0 ? 1025 : 2e3 + w - 1;
			F.zQ["r" + bN] = ez;
			if (w != 0) {
				g.push({
					t: "Objc",
					v: {
						classID: "pathInfoClass",
						pathUnicodeName: {
							t: "TEXT",
							v: E.name
						}
					}
				});
				T.push({
					t: "Objc",
					v: {
						classID: "null",
						keyDescriptorList: {
							t: "VlLs",
							v: E.add.vogk
						}
					}
				})
			}
		}
		if (g.length != 0) {
			F.add.pths = {
				classID: "pathsDataClass",
				pathList: {
					t: "VlLs",
					v: g
				}
			};
			T = {
				classID: "null",
				keyRootDescriptorList: {
					t: "VlLs",
					v: T
				}
			};
			var u = new cB;
			r.oL(u, 0, 16);
			var K = b3.p1(u, T, 4);
			F.zQ.r3000 = u.data.slice(0, K + 4)
		} else {
			delete F.add.pths;
			delete F.zQ.r3000
		}
		cg = ic.a1h(F, P, cg, 3 + c.length);
		cg = ic.a1a(F, P, cg);
		cg = ic.a5t(F, P, cg);
		cg = ic.aaT(F, P, cg, o, I);
		cg = ic.a7K(F, P, cg, o[0], I);
		var d8 = [1025, 2e3, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016];
		for (var w = 0; w < d8.length; w++) delete F.zQ["r" + d8[w]];
		for (var w = 0; w < F.r.length; w++) {
			var t = F.r[w];
			if (t.ws()) {
				t.rect = s[w][0];
				t.buffer = s[w][1]
			}
		}
		if (R) F.add.lnk2 = R;
		if (W) F.add.FEid = W;
		if (n) F.add.Patt = n;
		cj.ln.vc(F, !0);
		return cg
	};
	ic.o1 = function (F, P, o) {
		var X = r.$o(P, o, 4);
		o += 4;
		if (X != "8BPS") alert("invalid header signature: " + X);
		var Y = r.lU(P, o);
		o += 2;
		F.W4 = Y == 2;
		if (Y != 1 && Y != 2) alert("invalid version: " + Y);
		o += 6;
		F.fh = r.lU(P, o);
		o += 2;
		F.h = r.tF(P, o);
		o += 4;
		F.Z = r.tF(P, o);
		o += 4;
		F.bv = r.lU(P, o);
		o += 2;
		F.Fy = r.lU(P, o);
		o += 2;
		return o
	};
	ic.a1h = function (F, P, o, X) {
		P.cj(0, 64);
		r.jW(P.data, o, "8BPS");
		o += 4;
		r.J6(P.data, o, 1);
		o += 2;
		r.GB(P.data, o, 0);
		o += 4;
		r.J6(P.data, o, 0);
		o += 2;
		r.J6(P.data, o, X);
		o += 2;
		r.V3(P.data, o, F.h);
		o += 4;
		r.V3(P.data, o, F.Z);
		o += 4;
		r.J6(P.data, o, 8);
		o += 2;
		r.J6(P.data, o, 3);
		o += 2;
		return o
	};
	ic.ahq = function (F, P, o) {
		var X = r.tF(P, o);
		o += 4;
		if (X != 0) F.wa = P.slice(o, o + X);
		o += X;
		return o
	};
	ic.a1a = function (F, P, o) {
		r.Oc(P, o, 0);
		o += 4;
		return o
	};
	ic.aiH = function (F, P, o) {
		var X = r.l(P, o),
			Y = 0;
		o += 4;
		var y = [];
		while (Y < X) {
			var z = r.$o(P, o + Y, 4);
			Y += 4;
			var s = r.lU(P, o + Y);
			Y += 2;
			var t = r.Zd(P, o + Y);
			Y += t.length;
			if (z != "8BIM") {
				y.push(s);
				console.log("Unknown Image Resources signature: " + z + ", ID: " + s)
			}
			var d = r.l(P, o + Y);
			Y += 4;
			if (F.zQ["r" + s] != null) console.log("--- two resources with same ID");
			F.zQ["r" + s] = r.JN(P, o + Y, d);
			Y += d + (d & 1)
		}
		for (var w = 0; w < y.length; w++) delete F.zQ["r" + y[w]];
		return o + X
	};
	ic.a5t = function (F, P, o) {
		var X = o,
			z = 0;
		o += 4;
		var Y = [];
		for (var y in F.zQ) {
			Y.push(parseInt(y.slice(1)))
		}
		Y.sort(function (v, A) {
			return v - A
		});
		for (var w = 0; w < Y.length; w++) {
			r.bh(P, o + z, "8BIM");
			z += 4;
			var s = Y[w];
			r.Fh(P, o + z, s);
			z += 2;
			var t = r.JG(P, o + z, "");
			z += t;
			var d = F.zQ["r" + s],
				U = d.length;
			r.oL(P, o + z, U);
			z += 4;
			r.x4(P, o + z, d);
			z += U;
			if (U % 2 == 1) z++
		}
		r.oL(P, X, z);
		return o + z
	};
	ic.ah3 = function (F, P, o) {
		var X = o,
			Y, y = F.W4 ? 8 : 4;
		if (F.W4) Y = r.k0(P, o);
		else Y = r.l(P, o);
		o += y;
		if (Y == 0) return X + y;
		o = ic.amj(F, P, o);
		o = ic.aeA(F, P, o);
		o = ff.H_(P, o, X + y + Y, F.add, F.W4, F);
		return X + y + Y
	};
	ic.aaT = function (F, P, o, X, Y) {
		var y = o;
		r.oL(P, o, 0);
		o += 4;
		o = ic.a3y(F, P, o, X, Y);
		o = ic.aiX(F, P, o);
		o = ff.kn(P, o, F.add, F);
		r.oL(P, y, o - y - 4);
		return o
	};
	ic.amj = function (F, P, o) {
		var X, Y = F.W4 ? 8 : 4;
		if (F.W4) X = r.k0(P, o);
		else X = r.l(P, o);
		o += Y;
		if (X != 0) ic.aX(F, P, o);
		return o + X
	};
	ic.aX = function (F, P, o) {
		var X = r.dx(P, o);
		o += 2;
		var Y = Math.abs(X);
		for (var w = 0; w < Y; w++) {
			var y = new h;
			o = ey.ee(y, F, P, o);
			F.r[w] = y
		}
		var z = new ev(0, 0, F.Z, F.h);
		for (var w = 0; w < Y; w++) {
			var s = F.r[w];
			o = hG.ee(s, F, P, o);
			var t = s.rect.M(),
				d = s.rect.$X(z),
				U = d.M() / t;
			if (t > 2e3 * 3e3 && U < .5) {
				var v = H.R(d.M() * 4);
				H.BP(s.buffer, s.rect, v, d);
				s.buffer = v;
				s.rect = d;
				alert("Removing hidden parts of layers")
			}
		}
	};
	ic.a3y = function (F, P, o, X, Y) {
		var y = o;
		r.oL(P, o, 0);
		o += 4;
		var z = F.r.length;
		r.Fh(P, o, Y ? -z : z);
		o += 2;
		var s = [];
		for (var w = 0; w < z; w++) o = ey.HC(F.r[w], F, P, o, s);
		for (var w = 0; w < z; w++) o = hG.qx(F.r[w], P, o, s[w], X);
		var t = o - y - 4;
		if (t % 2 != 0) t++;
		r.oL(P, y, t);
		return y + t + 4
	};
	ic.aeA = function (F, P, o) {
		var X = r.l(P, o);
		o += 4;
		o += X;
		return o
	};
	ic.aiX = function (F, P, o) {
		var X = r.oL(P, o, 0);
		o += 4;
		return o
	};
	ic.alQ = function (F, P, o) {
		var X = F.Fy,
			Y = "Bitmap Grayscale Indexed RGB CMYK Multichannel Duotone Lab".split(" "),
			y = [1, 1, 1, 3, 4, 1, 1, 3],
			z, q;
		if (X != 3) {
			if (X == 1 || X == 2 || X == 4) alert("Project will be converted from " + Y[X] + " to " + Y[3] + " mode.");
			else {
				alert("Color mode " + Y[X] + " is not supported yet :(")
			}
		}
		if (F.zQ.r1045) {
			z = [];
			var s = F.zQ.r1045,
				t = 0;
			while (t < s.length) {
				var d = r.nf(s, t);
				z.push(d);
				t += 4 + 2 + d.length * 2
			}
		}
		var U = y[X] + (z == null || z[0] == "Transparency" ? 1 : 0),
			v = F.Z,
			A = F.h,
			Z = v * A,
			D = r.lU(P, o);
		o += 2;
		F.buffer = H.R(Z * 4);
		H.XB(F.buffer, 4278190080);
		var R = o;
		for (var J = 0; J < F.fh; J++) {
			if (D == 0) {
				q = hG.zc(F.W4, F.bv, P, v, A, o, D);
				o += Z * (F.bv >>> 3)
			} else if (D == 1) {
				q = H.R(Z);
				var W = F.W4 ? 4 : 2;
				if (J == 0) o += F.fh * A * W;
				o += hG.NJ(P, q, v, A, R + J * A * W, o, W)
			} else {
				console.log("unknown compression of image data: ", D);
				return
			}
			if (J < U) {
				H.Oy(q, F.buffer, J);
				if (F.fh == 1 && J == 0) {
					H.Oy(q, F.buffer, 1);
					H.Oy(q, F.buffer, 2)
				}
			} else {
				var p = new h.vm,
					n = J - U,
					b = J - y[F.Fy];
				p.name = z ? z[b] : "Alpha";
				if (p.name == "Quick Mask") {
					p.gG = !0;
					F.oD.push(n)
				}
				p.rect = new ev(0, 0, v, A);
				p.channel = q;
				p.color = 0;
				p.HZ();
				F.Yq[n] = p;
				if (F.zQ.r1077) {
					var s = F.zQ.r1077.slice(4 + b * 13);
					p.u9 = gL.HD(s, 0);
					p.oE = s[11];
					p.iy = s[12];
					if (p.iy == 2) p.gG = !0
				}
			}
		}
		F.fh = 4;
		if (F.Fy == 2)
			for (var w = 0; w < Z; w++) {
				var Q = w * 4,
					_ = F.buffer[Q];
				F.buffer[Q] = F.wa[0 + _];
				F.buffer[Q + 1] = F.wa[256 + _];
				F.buffer[Q + 2] = F.wa[512 + _]
			}
		return o
	};
	ic.a7K = function (F, P, o, X, Y) {
		var y = 1,
			z = 16,
			s = F.Z,
			t = F.h,
			U, v;
		r.Fh(P, o, y);
		o += 2;
		var d = s * t;
		if (!X) {
			v = new H._B(s * t);
			H.Ae(F.buffer, v);
			var A = v.U,
				Z = v.S,
				D = v.i,
				q = v.m;
			for (var w = 0; w < d; w++) {
				var R = q[w] * (1 / 255);
				A[w] = ~~(A[w] * R + 255 * (1 - R));
				Z[w] = ~~(Z[w] * R + 255 * (1 - R));
				D[w] = ~~(D[w] * R + 255 * (1 - R))
			}
		} else U = H.R(d);
		var J = [U, U, U];
		if (!X) J = [v.U, v.S, v.i];
		if (Y) J.push(X ? U : v.m);
		for (var w = 0; w < F.Yq.length; w++) {
			J.push(F.Yq[w].kx(new ev(0, 0, F.Z, F.h)))
		}
		var W = o;
		for (var p = 0; p < J.length; p++) {
			P.cj(o, s * t + 4);
			U = J[p];
			if (y == 0 || y == 2 || y == 3) o = hG.CP(U, P.data, s, t, o, y);
			else {
				if (p == 0) o += J.length * t * 2;
				var n = o;
				o += hG.Sr(U, P.data, s, t, W + p * t * 2, o)
			}
		}
		return o
	};

	function gg() {}
	gg.ee = function (F) {
		var P = {};
		gg.iI(F, P, 0, 0);
		return P
	};
	gg.HC = function (F, P) {
		var o = 0;
		o = gg.UT(F, P, o, 0);
		return o
	};
	gg.iI = function (F, P, o, X) {
		while (F[o] != "<".charCodeAt(0)) o++;
		o += 2;
		while (!0) {
			if (F[o] == "/".charCodeAt(0)) {
				o++;
				var Y = r.indexOf(F, " ".charCodeAt(0), o, o + 50),
					y = r.indexOf(F, "\n".charCodeAt(0), o, o + 50);
				if (y == -1) y = Infinity;
				if (Y == -1) Y = Infinity;
				var z = Math.min(y, Y),
					s = r.$o(F, o, z - o),
					t = gg.cW(F, z + 1, X + 1, s);
				P[s] = t.C;
				o = z + 1;
				o += t.size
			} else if (F[o] == ">".charCodeAt(0)) {
				o += 2;
				break
			} else {
				var d = F[o];
				if (d == 10 || d == 9 || d == 32) o++;
				else {
					console.log("unknown byte: " + d + ", char: " + String.fromCharCode(d), o);
					o++
				}
			}
		}
		return o
	};
	gg.UT = function (F, P, o, X) {
		r.bh(P, o, "<<\n");
		o += 3;
		var Y = gg.aeU;
		for (var y in F) {
			r.oO(P, o, "\t".charCodeAt(0), X + 1);
			o += X + 1;
			r.bh(P, o, "/" + y);
			o += 1 + y.length;
			if (Y(F[y]) || F[y] instanceof Array) {
				r.bh(P, o, " ");
				o++
			} else {
				r.bh(P, o, "\n");
				o++;
				r.oO(P, o, "\t".charCodeAt(0), X + 1);
				o += X + 1
			}
			o = gg.Ps(F[y], P, o, X + 1);
			r.bh(P, o, "\n");
			o++
		}
		r.oO(P, o, "\t".charCodeAt(0), X);
		o += X;
		r.bh(P, o, ">>");
		o += 2;
		return o
	};
	gg.cW = function (F, P, o, X) {
		var Y = P,
			y = {
				size: 0,
				C: 0
			};
		while (!0) {
			while (F[P] == " ".charCodeAt(0) || F[P] == "\t".charCodeAt(0) || F[P] == "\n".charCodeAt(0)) P++;
			if (F[P] == "<".charCodeAt(0)) {
				y.C = {};
				P = gg.iI(F, y.C, P, o + 1);
				break
			} else if (F[P] == "(".charCodeAt(0)) {
				P += 3;
				var z = P;
				while (!0) {
					if (F[z - 1] != "\\".charCodeAt(0) && F[z] == ")".charCodeAt(0) && (F[z + 1] == "\n".charCodeAt(0) || F[z + 1] == " ".charCodeAt(0))) break;
					else z++
				}
				y.C = r.Ci(F, P, z);
				P = z + 2;
				break
			} else if (F[P] == "[".charCodeAt(0)) {
				P++;
				y.C = [];
				while (F[P] == " ".charCodeAt(0) || F[P] == "\t".charCodeAt(0) || F[P] == "\n".charCodeAt(0)) P++;
				while (F[P] != "]".charCodeAt(0)) {
					var s = gg.cW(F, P, o + 1, X);
					y.C.push(s.C);
					P += s.size;
					while (F[P] == " ".charCodeAt(0) || F[P] == "\t".charCodeAt(0) || F[P] == "\n".charCodeAt(0)) P++
				}
				P++;
				break
			} else {
				var t = r.indexOf(F, " ".charCodeAt(0), P, P + 50),
					d = r.indexOf(F, "\n".charCodeAt(0), P, P + 50);
				if (d == -1) d = Infinity;
				if (t == -1) t = Infinity;
				var U = r.$o(F, P, Math.min(t, d) - P).trim(),
					v = parseFloat(U);
				if (!isNaN(v)) {
					y.C = parseFloat(U);
					P = Math.min(t, d) + 1;
					break
				} else if (U == "true" || U == "false") {
					y.C = U == "true";
					P = Math.min(t, d) + 1;
					break
				} else if (U == "null" || U == "NaN") {
					y.C = 0;
					P = Math.min(t, d) + 1;
					break
				} else {
					console.log("unknown identifier: " + U);
					throw "e"
				}
				P = Math.min(t, d) + 1
			}
		}
		y.size = P - Y;
		return y
	};
	gg.Ps = function (F, P, o, X) {
		if (F instanceof Array) {
			var Y = F.length == 0 || typeof F[0] == "number";
			if (Y) {
				r.bh(P, o, "[ ");
				o += 2;
				for (var w = 0; w < F.length; w++) {
					var y = F[w] + " ";
					r.bh(P, o, y);
					o += y.length
				}
				r.bh(P, o, "]");
				o += 1
			} else {
				r.bh(P, o, "[\n");
				o += 2;
				for (var w = 0; w < F.length; w++) {
					r.oO(P, o, "\t".charCodeAt(0), X);
					o += X;
					o = gg.Ps(F[w], P, o, X);
					r.bh(P, o, "\n");
					o++
				}
				r.oO(P, o, "\t".charCodeAt(0), X);
				o += X;
				r.bh(P, o, "]");
				o += 1
			}
		} else if (F instanceof Object) {
			o = gg.UT(F, P, o, X)
		} else if (typeof F == "string") {
			r.bh(P, o, "(");
			o++;
			r.oO(P, o, 254);
			o++;
			r.oO(P, o, 255);
			o++;
			o = r.o2(P, o, F);
			r.bh(P, o, ")");
			o += 1
		} else {
			var y = F + "";
			r.bh(P, o, y);
			o += y.length
		}
		return o
	};
	gg.aeU = function (F) {
		var P = typeof F;
		return P == "string" || P == "number" || P == "boolean"
	};

	function hE() {}
	hE.ee = function (F) {
		var P = {};
		hE.ef(F, P, 0, 0);
		return P
	};
	hE.HC = function (F, P) {
		var o = 0;
		r.bh(P, o, " ");
		o++;
		o = hE.ds(F, P, o, 0);
		o--;
		P.cj(o, 2);
		P.data[o] = P.data[o + 1] = 0;
		o += 2;
		return o
	};
	hE.iI = function (F, P, o, X) {
		while (F[o] != "<".charCodeAt(0)) {
			o++;
			console.log("\u0161ipka")
		}
		o += 2;
		o = hE.ef(F, P, o, X);
		return o
	};
	hE.UT = function (F, P, o, X) {
		r.bh(P, o, "<< ");
		o += 3;
		o = hE.ds(F, P, o, X);
		r.bh(P, o, ">>");
		o += 2;
		return o
	};
	hE._K = function (F) {
		return F == 9 || F == 10 || F == 32
	};
	hE.ef = function (F, P, o, X) {
		while (!0) {
			while (hE._K(F[o]) || F[o] == 0) o++;
			if (o >= F.length) break;
			if (F[o] == "/".charCodeAt(0)) {
				o++;
				var Y = o;
				while (!hE._K(F[Y])) Y++;
				var y = r.$o(F, o, Y - o);
				o = Y + 1;
				var z = hE.cW(F, o, X, y);
				P["_" + y] = z.C;
				o += z.size
			} else if (F[o] == ">".charCodeAt(0)) {
				o += 2;
				break
			} else {
				var s = F[o];
				console.log(r.$o(F, o, o + 100));
				console.log("unknown byte: " + s + ", char: " + String.fromCharCode(s) + ", offset: " + o);
				o++;
				throw "e";
				return -1
			}
		}
		return o
	};
	hE.ds = function (F, P, o, X) {
		for (var Y in F) {
			var y = Y.substring(1, Y.length);
			r.bh(P, o, "/" + y);
			o += 1 + y.length;
			r.bh(P, o, " ");
			o++;
			o = hE.Ps(F[Y], P, o, X + 1);
			r.bh(P, o, " ");
			o++
		}
		return o
	};
	hE.cW = function (F, P, o, X) {
		var Y = P,
			y = {
				type: "",
				size: 0,
				C: 0
			};
		while (hE._K(F[P])) P++;
		if (F[P] == "<".charCodeAt(0)) {
			y.type = "Object";
			y.C = {};
			P = hE.iI(F, y.C, P, o + 1)
		} else if (F[P] == "(".charCodeAt(0)) {
			y.type = "String";
			P++;
			if (F[P] == ")".charCodeAt(0)) {
				y.C = "s";
				P++
			} else {
				P += 2;
				var z = P,
					aW = 0;
				while (!0) {
					if (F[z] == ")".charCodeAt(0) && F[z - 1] != "\\".charCodeAt(0)) break;
					else z += 1
				}
				y.C = "s" + r.Ci(F, P, z);
				P = z + 2
			}
		} else if (F[P] == "[".charCodeAt(0)) {
			P++;
			y.C = [];
			y.type = "Array";
			while (hE._K(F[P])) P++;
			while (F[P] != "]".charCodeAt(0)) {
				var s = hE.cW(F, P, o + 1, X);
				if (s == -1) return -1;
				y.C.push(s.C);
				P += s.size;
				delete s.size;
				while (hE._K(F[P])) P++
			}
			P++
		} else {
			var t = P;
			while (!hE._K(F[t])) t++;
			var d = r.$o(F, P, t - P),
				U = parseFloat(d);
			if (!isNaN(U) && d.indexOf(".") != -1) {
				y.type = "Float";
				var v = parseFloat(d);
				y.C = "f" + v
			} else if (!isNaN(U) && d.indexOf(".") == -1) {
				y.type = "Integer";
				y.C = "i" + parseInt(d)
			} else if (d == "true" || d == "false") {
				y.type = "Boolean";
				y.C = d == "true"
			} else if (d.charAt(0) == "/") {
				y.type = "BString";
				y.C = d
			} else {
				console.log("unknown value", JSON.stringify(d));
				throw "e"
			}
			P = t + 1
		}
		y.size = P - Y;
		return y
	};
	hE.aks = function (F) {
		if (F == Math.round(F)) return F + ".0";
		var P = F.toFixed(5);
		if (0 < F && F < 1) P = P.substring(1, P.length);
		if (-1 < F && F < 0) P = "-" + P.substring(2, P.length);
		return P
	};
	hE.Ps = function (F, P, o, X) {
		var Y = typeof F == "string" ? F.charAt(0) : "";
		if (F instanceof Array) {
			r.bh(P, o, "[ ");
			o += 2;
			for (var w = 0; w < F.length; w++) {
				o = hE.Ps(F[w], P, o, X);
				r.bh(P, o, " ");
				o++
			}
			r.bh(P, o, "]");
			o += 1
		} else if (F instanceof Object) {
			o = hE.UT(F, P, o, X)
		} else if (Y == "s") {
			r.bh(P, o, "(");
			o++;
			r.oO(P, o, 254);
			o++;
			r.oO(P, o, 255);
			o++;
			o = r.o2(P, o, F.substring(1));
			r.bh(P, o, ")");
			o++
		} else if (Y == "/") {
			r.bh(P, o, F);
			o += F.length
		} else if (Y == "f") {
			var y = parseFloat(F.substring(1)),
				z = hE.aks(y);
			r.bh(P, o, z);
			o += z.length
		} else if (Y == "i") {
			r.bh(P, o, F.substring(1));
			o += F.length - 1
		} else {
			var z = F + "";
			r.bh(P, o, z);
			o += z.length
		}
		return o
	};

	function aH(F, P) {
		if (!F) F = 0;
		if (!P) P = 0;
		this.x = F;
		this.y = P
	}
	aH.prototype.add = function (F) {
		return new aH(this.x + F.x, this.y + F.y)
	};
	aH.prototype.clone = function () {
		return new aH(this.x, this.y)
	};
	aH.prototype.fa = function (F) {
		this.x = F.x;
		this.y = F.y
	};
	aH.prototype.Qn = function (F) {
		return this.x == F.x && this.y == F.y
	};
	aH.prototype.normalize = function (F) {
		var P = Math.sqrt(this.x * this.x + this.y * this.y);
		this.x *= F / P;
		this.y *= F / P
	};
	aH.prototype.offset = function (F, P) {
		this.x += F;
		this.y += P
	};
	aH.prototype.Oh = function (F, P) {
		this.x = F;
		this.y = P
	};
	aH.prototype.gI = function (F) {
		return new aH(this.x - F.x, this.y - F.y)
	};
	aH.Yj = function (F, P) {
		return aH.ad7(F.x, F.y, P.x, P.y)
	};
	aH.bu = function (F, P, o) {
		return new aH(F.x + o * (P.x - F.x), F.y + o * (P.y - F.y))
	};
	aH.acO = function (F, P) {
		return new aH(F * Math.cos(P), F * Math.sin(P))
	};
	aH.ad7 = function (F, P, o, X) {
		return Math.sqrt((o - F) * (o - F) + (X - P) * (X - P))
	};
	aH.l5 = {};
	aH.Na = {};
	aH.l5.create = function () {
		var F = new Float32Array(4);
		return F
	};
	aH.Na.create = function (F) {
		var P = new Float32Array(16);
		P[0] = P[5] = P[10] = P[15] = 1;
		if (F) aH.Na.set(F, P);
		return P
	};
	aH.l5.add = function (F, P, o) {
		o[0] = F[0] + P[0];
		o[1] = F[1] + P[1];
		o[2] = F[2] + P[2];
		o[3] = F[3] + P[3]
	};
	aH.l5.set = function (F, P) {
		P[0] = F[0];
		P[1] = F[1];
		P[2] = F[2];
		P[3] = F[3]
	};
	aH.Na.set = function (F, P) {
		P[0] = F[0];
		P[1] = F[1];
		P[2] = F[2];
		P[3] = F[3];
		P[4] = F[4];
		P[5] = F[5];
		P[6] = F[6];
		P[7] = F[7];
		P[8] = F[8];
		P[9] = F[9];
		P[10] = F[10];
		P[11] = F[11];
		P[12] = F[12];
		P[13] = F[13];
		P[14] = F[14];
		P[15] = F[15]
	};
	aH.Na.multiply = function (F, P, o) {
		var X = F[0],
			Y = F[1],
			y = F[2],
			z = F[3],
			s = F[4],
			t = F[5],
			d = F[6],
			U = F[7],
			v = F[8],
			A = F[9],
			Z = F[10],
			D = F[11],
			q = F[12],
			R = F[13],
			J = F[14],
			W = F[15],
			p = P[0],
			n = P[1],
			b = P[2],
			Q = P[3];
		o[0] = p * X + n * s + b * v + Q * q;
		o[1] = p * Y + n * t + b * A + Q * R;
		o[2] = p * y + n * d + b * Z + Q * J;
		o[3] = p * z + n * U + b * D + Q * W;
		p = P[4];
		n = P[5];
		b = P[6];
		Q = P[7];
		o[4] = p * X + n * s + b * v + Q * q;
		o[5] = p * Y + n * t + b * A + Q * R;
		o[6] = p * y + n * d + b * Z + Q * J;
		o[7] = p * z + n * U + b * D + Q * W;
		p = P[8];
		n = P[9];
		b = P[10];
		Q = P[11];
		o[8] = p * X + n * s + b * v + Q * q;
		o[9] = p * Y + n * t + b * A + Q * R;
		o[10] = p * y + n * d + b * Z + Q * J;
		o[11] = p * z + n * U + b * D + Q * W;
		p = P[12];
		n = P[13];
		b = P[14];
		Q = P[15];
		o[12] = p * X + n * s + b * v + Q * q;
		o[13] = p * Y + n * t + b * A + Q * R;
		o[14] = p * y + n * d + b * Z + Q * J;
		o[15] = p * z + n * U + b * D + Q * W;
		return o
	};
	aH.Na.inverse = function (F, P) {
		var o = F[0],
			X = F[1],
			Y = F[2],
			y = F[3],
			z = F[4],
			s = F[5],
			t = F[6],
			d = F[7],
			U = F[8],
			v = F[9],
			A = F[10],
			Z = F[11],
			D = F[12],
			q = F[13],
			R = F[14],
			J = F[15],
			W = o * s - X * z,
			p = o * t - Y * z,
			n = o * d - y * z,
			b = X * t - Y * s,
			Q = X * d - y * s,
			_ = Y * d - y * t,
			L = U * q - v * D,
			m = U * R - A * D,
			I = U * J - Z * D,
			c = v * R - A * q,
			u = v * J - Z * q,
			a = A * J - Z * R,
			N = W * a - p * u + n * c + b * I - Q * m + _ * L;
		if (!N) {
			return null
		}
		N = 1 / N;
		P[0] = (s * a - t * u + d * c) * N;
		P[1] = (Y * u - X * a - y * c) * N;
		P[2] = (q * _ - R * Q + J * b) * N;
		P[3] = (A * Q - v * _ - Z * b) * N;
		P[4] = (t * I - z * a - d * m) * N;
		P[5] = (o * a - Y * I + y * m) * N;
		P[6] = (R * n - D * _ - J * p) * N;
		P[7] = (U * _ - A * n + Z * p) * N;
		P[8] = (z * u - s * I + d * L) * N;
		P[9] = (X * I - o * u - y * L) * N;
		P[10] = (D * Q - q * n + J * W) * N;
		P[11] = (v * n - U * Q - Z * W) * N;
		P[12] = (s * m - z * c - t * L) * N;
		P[13] = (o * c - X * m + Y * L) * N;
		P[14] = (q * p - D * b - R * W) * N;
		P[15] = (U * b - v * p + A * W) * N;
		return P
	};
	aH.Na.amx = function (F, P, o) {
		var X = P[0],
			Y = P[1];
		o[0] = X * F[0] + Y * F[4] + F[12];
		o[1] = X * F[1] + Y * F[5] + F[13]
	};
	aH.Na.ajP = function (F, P, o) {
		var X = P[0],
			Y = P[1],
			y = P[2],
			z = P[3];
		o[0] = F[0] * X + F[4] * Y + F[8] * y + F[12] * z;
		o[1] = F[1] * X + F[5] * Y + F[9] * y + F[13] * z;
		o[2] = F[2] * X + F[6] * Y + F[10] * y + F[14] * z;
		o[3] = F[3] * X + F[7] * Y + F[11] * y + F[15] * z
	};

	function cu(F, P, o, X, Y, y) {
		if (typeof F === "undefined") {
			F = 1;
			P = 0;
			o = 0;
			X = 1;
			Y = 0;
			y = 0
		}
		this.m = F;
		this.i = P;
		this.p$ = o;
		this.xA = X;
		this.PV = Y;
		this.ye = y
	}
	cu.prototype.d3 = function () {
		return Math.sqrt(Math.abs(this.m * this.xA - this.i * this.p$))
	};
	cu.prototype.dy = function () {
		var F = this,
			P = function (o) {
				return Math.abs(o) < 1e-9 ? 0 : o
			};
		F.m = P(F.m);
		F.i = P(F.i);
		F.p$ = P(F.p$);
		F.xA = P(F.xA);
		F.PV = P(F.PV);
		F.ye = P(F.ye)
	};
	cu.prototype.aT = function (F) {
		return new aH(F.x * this.m + F.y * this.p$ + this.PV, F.x * this.i + F.y * this.xA + this.ye)
	};
	cu.prototype.translate = function (F, P) {
		this.PV += F;
		this.ye += P
	};
	cu.prototype.rotate = function (F) {
		var P = new cu(Math.cos(F), -Math.sin(F), Math.sin(F), Math.cos(F), 0, 0);
		this.concat(P)
	};
	cu.prototype.scale = function (F, P) {
		var o = new cu(F, 0, 0, P, 0, 0);
		this.concat(o)
	};
	cu.prototype.concat = function (F) {
		this.fa(new cu(this.m * F.m + this.i * F.p$, this.m * F.i + this.i * F.xA, this.p$ * F.m + this.xA * F.p$, this.p$ * F.i + this.xA * F.xA, this.PV * F.m + this.ye * F.p$ + F.PV, this.PV * F.i + this.ye * F.xA + F.ye))
	};
	cu.prototype.nJ = function () {
		var F = this.m * this.xA - this.i * this.p$;
		this.fa(new cu(this.xA / F, -this.i / F, -this.p$ / F, this.m / F, (this.p$ * this.ye - this.xA * this.PV) / F, (this.i * this.PV - this.m * this.ye) / F))
	};
	cu.prototype.clone = function () {
		return new cu(this.m, this.i, this.p$, this.xA, this.PV, this.ye)
	};
	cu.prototype.fa = function (F) {
		this.m = F.m;
		this.i = F.i;
		this.p$ = F.p$;
		this.xA = F.xA;
		this.PV = F.PV;
		this.ye = F.ye
	};

	function r() {}
	r.a2S = function (e) {
		var F = "";
		for (var w = 3; w >= 0; w--) F += String.fromCharCode(e >> w * 8 & 255);
		return F
	};
	r.acH = function (F) {
		var e = 0;
		for (var w = F.length - 1; w >= 0; w--) e |= F.charCodeAt(w) << (3 - w) * 8;
		return e
	};
	r.indexOf = function (F, P, o, X) {
		if (o == null) o = 0;
		if (X == null) X = F.length;
		X = Math.min(X, F.length);
		for (var w = o; w < X; w++)
			if (F[w] == P) return w;
		return -1
	};
	r.No = function (F, P, o) {
		if (o == null) o = 0;
		if (typeof P == "string") {
			var X = [];
			for (var w = 0; w < P.length; w++) X.push(P.charCodeAt(w));
			P = X
		}
		for (var w = o; w < F.length; w++) {
			var Y = !0;
			for (var y = 0; y < P.length; y++)
				if (P[y] != F[w + y]) {
					Y = !1;
					break
				} if (Y) return w
		}
		return -1
	};
	r.Ci = function (F, P, o) {
		var X = [],
			y = "";
		while (P < o) {
			var Y = F[P++];
			if (Y == "\\".charCodeAt(0)) X.push(F[P++]);
			else X.push(Y)
		}
		for (var w = 0; w < X.length; w += 2) y += String.fromCharCode(X[w] << 8 | X[w + 1]);
		return y
	};
	r.a7w = function (F, P, o) {
		var X = new Uint8Array(2);
		for (var w = 0; w < o.length; w++) {
			r.J6(X, 0, o.charCodeAt(w));
			if (X[0] == ")".charCodeAt(0) || X[0] == "(".charCodeAt(0) || X[0] == "\\".charCodeAt(0)) {
				F[P] = "\\".charCodeAt(0);
				P++
			}
			F[P] = X[0];
			P++;
			if (X[1] == ")".charCodeAt(0) || X[1] == "(".charCodeAt(0) || X[1] == "\\".charCodeAt(0)) {
				F[P] = "\\".charCodeAt(0);
				P++
			}
			F[P] = X[1];
			P++
		}
		return P
	};
	r.o2 = function (F, P, o) {
		F.cj(P, 4 * o.length);
		return r.a7w(F.data, P, o)
	};
	r.zg = function (F, P, o) {
		var X = "";
		for (var w = 0; w < o; w++) {
			var Y = F[P++] | F[P++] << 8;
			X += String.fromCharCode(Y)
		}
		return X
	};
	r.Hp = function (F, P, o) {
		var X = "";
		for (var w = 0; w < o; w++) {
			var Y = F[P++] << 8 | F[P++];
			X += String.fromCharCode(Y)
		}
		return X
	};
	r.a3P = function (F, P, o) {
		for (var w = 0; w < o.length; w++) {
			var X = o.charCodeAt(w);
			r.qu(F, P + 2 * w, X)
		}
	};
	r.hZ = function (F, P, o) {
		for (var w = 0; w < o.length; w++) {
			var X = o.charCodeAt(w);
			r.J6(F, P + 2 * w, X)
		}
	};
	r.aar = function (F, P, o) {
		F.cj(P, 2 * o.length);
		r.hZ(F.data, P, o)
	};
	r.a7X = function (F, w, P) {
		var o = [],
			X = 0,
			Y = 0;
		P += w;
		while (w < P) {
			X = F[w++];
			if ((X & 128) == 0) Y = X;
			else if ((X & 224) == 192) {
				Y = (X & 31) << 6;
				X = F[w++];
				Y |= X & 63
			} else if ((X & 240) == 224) {
				Y = (X & 15) << 12;
				X = F[w++];
				Y |= (X & 63) << 6;
				X = F[w++];
				Y |= X & 63
			} else if ((X & 248) == 240) {
				Y = (X & 7) << 18;
				X = F[w++];
				Y |= (X & 63) << 12;
				X = F[w++];
				Y |= (X & 63) << 6;
				X = F[w++];
				Y |= X & 63
			} else throw "e";
			o.push(Y)
		}
		return o
	};
	r.Sf = window.TextDecoder ? new window.TextDecoder("utf8") : null;
	r.bc = function (F, P, o) {
		if (P == null) P = 0;
		if (o == null) o = F.length;
		if (r.Sf && P == 0 && o == F.length) return r.Sf.decode(F);
		var X = r.a7X(F, P, o),
			Y = X.length;
		for (var w = 0; w < Y; w++) X[w] = String.fromCharCode(X[w]);
		return X.join("")
	};
	r.Hu = window.TextEncoder ? new window.TextEncoder("utf8") : null;
	r.vI = function (F) {
		if (r.Hu) return r.Hu.encode(F);
		var P = new Uint8Array(F.length * 4),
			o = r.vr(F, P, 0);
		return P.slice(0, o)
	};
	r.vr = function (F, P, o) {
		var X = F.length,
			w = 0;
		for (var Y = 0; Y < X; Y++) {
			var y = F.charCodeAt(Y);
			if ((y & 4294967295 - (1 << 7) + 1) == 0) {
				P[o + w] = y;
				w++
			} else if ((y & 4294967295 - (1 << 11) + 1) == 0) {
				P[o + w] = 192 | y >> 6;
				P[o + w + 1] = 128 | y >> 0 & 63;
				w += 2
			} else if ((y & 4294967295 - (1 << 16) + 1) == 0) {
				P[o + w] = 224 | y >> 12;
				P[o + w + 1] = 128 | y >> 6 & 63;
				P[o + w + 2] = 128 | y >> 0 & 63;
				w += 3
			} else if ((y & 4294967295 - (1 << 21) + 1) == 0) {
				P[o + w] = 240 | y >> 18;
				P[o + w + 1] = 128 | y >> 12 & 63;
				P[o + w + 2] = 128 | y >> 6 & 63;
				P[o + w + 3] = 128 | y >> 0 & 63;
				w += 4
			} else throw "e"
		}
		return w
	};
	r.NQ = function (F, P) {
		var o = r.l(F, P),
			X = r.bc(F, P + 4, o - 1);
		return {
			Pg: X,
			lr: 4 + o
		}
	};
	r.ae0 = function (F, P) {
		var o = r.L6(F, P),
			X = r.zg(F, P + 4, o);
		return X
	};
	r.O_ = function (F, P) {
		var o = r.l(F, P),
			X = r.Hp(F, P + 4, o);
		return X
	};
	r.nf = function (F, P) {
		var o = r.l(F, P),
			X = r.Hp(F, P + 4, o - 1);
		return X
	};
	r.ael = function (F, P, o) {
		r.vH(F, P, o.length);
		P += 4;
		r.a3P(F, P, o)
	};
	r.afy = function (F, P, o) {
		r.GB(F, P, o.length);
		P += 4;
		r.hZ(F, P, o)
	};
	r.lS = function (F, P, o) {
		F.cj(P, 4 + 2 * o.length);
		r.afy(F.data, P, o)
	};
	r.ajd = function (F, P, o) {
		F.cj(P, 4 + 2 * o.length);
		r.ael(F.data, P, o)
	};
	r.h$ = function (F, P, o) {
		var X = [];
		for (var w = 0; w < o; w++) X.push(String.fromCharCode(F[P + w]));
		return X
	};
	r.afo = function (F, P, o) {
		var X = !1,
			Y = F.length - o.length;
		for (var w = P; w < Y; w++) {
			for (var y = 0; y < o.length; y++) {
				if (F[w + y] != o.charCodeAt(y)) break;
				if (y == o.length - 1) return w
			}
		}
	};
	r.$o = function (F, P, o) {
		var X = "";
		for (var w = 0; w < o; w++) X += String.fromCharCode(F[P + w]);
		return X
	};
	r.jW = function (F, P, o) {
		for (var w = 0; w < o.length; w++) F[P + w] = o.charCodeAt(w)
	};
	r.bh = function (F, P, o) {
		F.cj(P, o.length);
		r.jW(F.data, P, o)
	};
	r.afH = function (F, P, o) {
		var X = "";
		for (var w = 0; w < o; w++) {
			var Y = F[P + w];
			if (Y < 10) X += "  ";
			else if (Y < 100) X += " ";
			X += Y + ", "
		}
		return X
	};
	r.lU = function (F, P) {
		return F[P] << 8 | F[P + 1]
	};
	r.J6 = function (F, P, e) {
		F[P] = e >> 8 & 255;
		F[P + 1] = e & 255
	};
	r.Fh = function (F, P, e) {
		F.cj(P, 4);
		r.J6(F.data, P, e)
	};
	r.ab7 = function (F, P) {
		var o = r.lU(F, P),
			X = r.lU(F, P + 2);
		return o + X * (1 / 65536)
	};
	r.ub = function (F, P, e) {
		var o = Math.floor(e),
			X = Math.floor((e - o) * 65536);
		r.J6(F, P, o);
		r.J6(F, P + 2, X)
	};
	r.wP = function (F, P) {
		return F[P + 1] << 8 | F[P]
	};
	r.qu = function (F, P, e) {
		F[P + 1] = e >> 8 & 255;
		F[P] = e & 255
	};
	r.a8 = function (F, P, e) {
		F.cj(P, 4);
		r.qu(F.data, P, e)
	};
	r.dx = function (F, P) {
		r.W3[0] = F[P + 1];
		r.W3[1] = F[P];
		return r.y1[0]
	};
	r.XS = function (F, P) {
		r.W3[0] = F[P];
		r.W3[1] = F[P + 1];
		return r.y1[0]
	};
	r.Gl = r.J6;
	r.N7 = r.Fh;
	r.tF = function (F, P) {
		r.YT[0] = F[P + 3];
		r.YT[1] = F[P + 2];
		r.YT[2] = F[P + 1];
		r.YT[3] = F[P];
		return r.B8[0]
	};
	r.V3 = function (F, P, e) {
		r.B8[0] = e;
		F[P + 3] = r.YT[0];
		F[P + 2] = r.YT[1];
		F[P + 1] = r.YT[2];
		F[P + 0] = r.YT[3]
	};
	r.Oc = function (F, P, e) {
		F.cj(P, 4);
		r.V3(F.data, P, e)
	};
	r.nv = function (F, P, o, X) {
		o[X + 0] = F[P + 0];
		o[X + 1] = F[P + 1];
		o[X + 2] = F[P + 2];
		o[X + 3] = F[P + 3]
	};
	r.L6 = function (F, P) {
		r.nv(F, P, r.YT, 0);
		return r.LP[0]
	};
	r.vH = function (F, P, e) {
		r.LP[0] = e;
		r.nv(r.YT, 0, F, P)
	};
	r.PU = function (F, P, e) {
		F.cj(P, 4);
		r.vH(F.data, P, e)
	};
	r.K8 = function (F, P) {
		r.nv(F, P, r.YT, 0);
		return r.B8[0]
	};
	r.a7C = function (F, P, e) {
		r.B8[0] = e;
		r.nv(r.YT, 0, F, P)
	};
	r.aiu = function (F, P, e) {
		F.cj(P, 4);
		r.a7C(F.data, P, e)
	};
	r.l = function (F, P) {
		var o = F[P] * (256 * 256 * 256) + (F[P + 1] << 16 | F[P + 2] << 8 | F[P + 3]);
		return o
	};
	r.GB = function (F, P, e) {
		F[P] = e >> 24 & 255;
		F[P + 1] = e >> 16 & 255;
		F[P + 2] = e >> 8 & 255;
		F[P + 3] = e >> 0 & 255
	};
	r.oL = function (F, P, e) {
		F.cj(P, 4);
		r.GB(F.data, P, e)
	};
	r.k0 = function (F, P) {
		return r.l(F, P) << 32 | r.l(F, P + 4)
	};
	r.a1A = function (F, P, e) {
		r.GB(F, P, e >> 16 >> 16);
		r.GB(F, P + 4, e & 4294967295)
	};
	r.X4 = function (F, P, e) {
		F.cj(P, 8);
		r.a1A(F.data, P, e)
	};
	r.VZ = function (F, P) {
		var o = new Uint8Array(8);
		for (var w = 0; w < 8; w++) o[w] = F[P + 7 - w];
		var X = new Float64Array(o.buffer);
		return X[0]
	};
	r.a8o = function (F, P) {
		var o = new Uint8Array(8);
		for (var w = 0; w < 8; w++) o[w] = F[P + w];
		var X = new Float64Array(o.buffer);
		return X[0]
	};
	r.GU = function (F, P, e) {
		var o = new Float64Array(1);
		o[0] = e;
		var X = new Uint8Array(o.buffer);
		for (var w = 0; w < 4; w++) {
			var Y = X[w];
			X[w] = X[7 - w];
			X[7 - w] = Y
		}
		for (var w = 0; w < 8; w++) F[P + w] = X[w]
	};
	r.AD = function (F, P, e) {
		F.cj(P, 8);
		r.GU(F.data, P, e)
	};
	r.C2 = function (F, P) {
		r.YT[0] = F[P + 3];
		r.YT[1] = F[P + 2];
		r.YT[2] = F[P + 1];
		r.YT[3] = F[P + 0];
		return r.Q5[0]
	};
	r.CC = function (F, P) {
		r.YT[0] = F[P + 0];
		r.YT[1] = F[P + 1];
		r.YT[2] = F[P + 2];
		r.YT[3] = F[P + 3];
		return r.Q5[0]
	};
	r.PL = function (F, P, e) {
		r.Q5[0] = e;
		F[P + 0] = r.YT[3];
		F[P + 1] = r.YT[2];
		F[P + 2] = r.YT[1];
		F[P + 3] = r.YT[0]
	};
	r.abq = function (F, P, e) {
		F.cj(P, 4);
		r.PL(F.data, P, e)
	};
	r.pq = function (F, P, e) {
		r.Q5[0] = e;
		F[P + 0] = r.YT[0];
		F[P + 1] = r.YT[1];
		F[P + 2] = r.YT[2];
		F[P + 3] = r.YT[3]
	};
	r.a55 = function (F, P, e) {
		F.cj(P, 4);
		r.pq(F.data, P, e)
	};
	r.a11 = function (F, P) {
		var o = r.tF(F, P),
			X = o * (1 / (1 << 24));
		return X
	};
	r.NF = function (F, P, o) {
		var X = Math.floor(o * (1 << 24));
		r.V3(F, P, X)
	};
	r.ajX = function (F, P, o) {
		F.cj(P, 4);
		r.NF(F.data, P, o)
	};
	r.Zd = function (F, P) {
		var o = F[P],
			X = r.$o(F, P + 1, o);
		o += 1 - o % 2;
		return {
			dC: X,
			length: o + 1
		}
	};
	r.abM = function (F, P, o) {
		var X = o.length;
		F[P] = X;
		r.jW(F, P + 1, o);
		if (X % 2 == 0) {
			F[P + 1 + X] = 0;
			++X
		}
		return X + 1
	};
	r.JG = function (F, P, o) {
		F.cj(P, o.length + 2);
		return r.abM(F.data, P, o)
	};
	r.FB = function (F, P) {
		var o = new cu;
		o.m = r.VZ(F, P + 0 * 8);
		o.i = r.VZ(F, P + 1 * 8);
		o.p$ = r.VZ(F, P + 2 * 8);
		o.xA = r.VZ(F, P + 3 * 8);
		o.PV = r.VZ(F, P + 4 * 8);
		o.ye = r.VZ(F, P + 5 * 8);
		return o
	};
	r.kO = function (F, P, o) {
		r.GU(F, P + 0 * 8, o.m);
		r.GU(F, P + 1 * 8, o.i);
		r.GU(F, P + 2 * 8, o.p$);
		r.GU(F, P + 3 * 8, o.xA);
		r.GU(F, P + 4 * 8, o.PV);
		r.GU(F, P + 5 * 8, o.ye)
	};
	r.agw = function (F, P, o) {
		F.cj(P, 48);
		r.kO(F.data, P, o)
	};
	r.abF = function (F, P) {
		var o = r.C2(F, P),
			X = r.C2(F, P + 4),
			Y = r.C2(F, P + 8),
			y = r.C2(F, P + 12);
		return new ev(o, X, Y - o, y - X)
	};
	r.al6 = function (F, P, o) {
		r.PL(F, P, o.x);
		r.PL(F, P + 4, o.y);
		r.PL(F, P + 8, o.x + o.Z);
		r.PL(F, P + 12, o.y + o.h)
	};
	r.a3v = function (F, P, o) {
		F.cj(P, 16);
		r.al6(F.data, P, o)
	};
	r.g$ = function (F, P) {
		var o = r.tF(F, P),
			X = r.tF(F, P + 4),
			Y = r.tF(F, P + 8),
			y = r.tF(F, P + 12);
		return new ev(X, o, y - X, Y - o)
	};
	r.iE = function (F, P, o) {
		r.V3(F, P, o.y);
		r.V3(F, P + 4, o.x);
		r.V3(F, P + 8, o.y + o.h);
		r.V3(F, P + 12, o.x + o.Z)
	};
	r.nl = function (F, P, o) {
		F.cj(P, 16);
		r.iE(F.data, P, o)
	};
	r.JN = function (F, P, o) {
		var X = new Uint8Array(o);
		for (var w = 0; w < o; w++) X[w] = F[P + w];
		return X
	};
	r.fw = function (F, P, o) {
		F.set(o, P)
	};
	r.x4 = function (F, P, o) {
		F.cj(P, o.length);
		r.fw(F.data, P, o)
	};
	r.aiP = function (F, P, o, e) {
		if (!e) e = 1;
		for (var w = 0; w < e; w++) F[P + w] = o
	};
	r.oO = function (F, P, o, e) {
		if (!e) e = 1;
		F.cj(P, e);
		r.aiP(F.data, P, o, e)
	};
	r.y1 = new Int16Array(1);
	r.W3 = new Uint8Array(r.y1.buffer);
	r.B8 = new Int32Array(1);
	r.LP = new Uint32Array(r.B8.buffer);
	r.YT = new Uint8Array(r.B8.buffer);
	r.Q5 = new Float32Array(r.B8.buffer);

	function ev(F, P, o, X) {
		if (!F) F = 0;
		if (!P) P = 0;
		if (!o) o = 0;
		if (!X) X = 0;
		this.x = F;
		this.y = P;
		this.Z = o;
		this.h = X
	}
	ev.prototype.M = function () {
		return this.Z * this.h
	};
	ev.prototype.clone = function () {
		return new ev(this.x, this.y, this.Z, this.h)
	};
	ev.prototype.contains = function (F, P) {
		return F >= this.x && F <= this.x + this.Z && (P >= this.y && P <= this.y + this.h)
	};
	ev.prototype.oz = function (F) {
		return this.contains(F.x, F.y)
	};
	ev.prototype.Qh = function (F) {
		return this.x <= F.x && this.y <= F.y && F.x + F.Z <= this.x + this.Z && F.y + F.h <= this.y + this.h
	};
	ev.prototype.fa = function (F) {
		this.x = F.x;
		this.y = F.y;
		this.Z = F.Z;
		this.h = F.h
	};
	ev.prototype.Qn = function (F) {
		return this.x == F.x && this.y == F.y && this.Z == F.Z && this.h == F.h
	};
	ev.prototype.PK = function (F, P) {
		this.x -= F;
		this.y -= P;
		this.Z += 2 * F;
		this.h += 2 * P
	};
	ev.prototype.a5m = function (F) {
		this.PK(F.x, F.y)
	};
	ev.prototype.$X = function (F) {
		var P = Math.max(this.x, F.x),
			o = Math.max(this.y, F.y),
			X = Math.min(this.x + this.Z, F.x + F.Z),
			Y = Math.min(this.y + this.h, F.y + F.h);
		if (X < P || Y < o) return new ev;
		else return new ev(P, o, X - P, Y - o)
	};
	ev.prototype.dg = function (F) {
		if (F.y + F.h < this.y || F.x > this.x + this.Z || F.y > this.y + this.h || F.x + F.Z < this.x) return !1;
		return !0
	};
	ev.prototype.qr = function () {
		return this.Z <= 0 || this.h <= 0
	};
	ev.prototype.offset = function (F, P) {
		this.x += F;
		this.y += P
	};
	ev.prototype.aw = function (F) {
		this.offset(F.x, F.y)
	};
	ev.prototype.a52 = function () {
		this.x = this.y = this.Z = this.h = 0
	};
	ev.prototype.Oh = function (F, P, o, X) {
		this.x = F;
		this.y = P;
		this.Z = o;
		this.h = X
	};
	ev.prototype.s7 = function (F) {
		if (this.qr()) return F.clone();
		if (F.qr()) return this.clone();
		var P = this.clone();
		P.a9_(F);
		return P
	};
	ev.uN = new Float32Array(2);
	ev.prototype.a9_ = function (F) {
		if (F.qr()) return;
		if (this.qr()) {
			this.fa(F);
			return
		}
		this.Cl(F.x, F.y);
		this.Cl(F.x + F.Z, F.y + F.h)
	};
	ev.prototype.Cl = function (F, P) {
		var o = Math.min(this.x, F),
			X = Math.min(this.y, P);
		this.Z = Math.max(this.x + this.Z, F) - o;
		this.h = Math.max(this.y + this.h, P) - X;
		this.x = o;
		this.y = X
	};
	ev.prototype.a0U = function (F, P, o, X) {
		if (this.Z == 0 && this.h == 0) this.ags(F, P);
		else this.Cl(F, P);
		this.Cl(o, X)
	};
	ev.prototype.ags = function (F, P) {
		this.x = F;
		this.y = P;
		this.Z = this.h = 0
	};

	function dt() {}
	dt.ee = function (F, P) {
		var o = new Uint8Array(F),
			X = 0,
			Y = r.$o(o, X, 9),
			s = 4,
			t = 100;
		X += 9;
		var y = r.$o(o, X, 4);
		X += 4;
		X++;
		P.Z = r.l(o, X);
		X += 4;
		P.h = r.l(o, X);
		X += 4;
		var z = r.l(o, X);
		X += 4;
		if (z != 0) alert("Unsupported image format, not RGB!");
		if (["file", "v001", "v002", "v003"].indexOf(y) == -1) {
			t = r.l(o, X);
			X += 4;
			if (parseInt(y.slice(1)) >= 7) {
				t = t
			} else alert("Unknown XCF version: " + y);
			s = 8
		}
		var d = {};
		X = dt.g6(o, X, d);
		var U = [];
		X = dt.vL(o, X, U, s);
		var v = [];
		X = dt.vL(o, X, v, s);
		P.GX = 0;
		for (var w = 0; w < U.length; w++) dt.amu(o, U[w], P, d, s, t);
		while (P.GX > 0) {
			P.r.push(P.Px());
			P.GX--
		}
		P.r.reverse();
		delete P.GX;
		P.buffer = H.R(P.Z * P.h * 4);
		if (P.r.length == 0) console.log("No layers!!!");
		for (var w = 0; w < v.length; w++) {
			var A = dt.r6(o, v[w], d, s, t);
			if (A.lg[ef.a88]) P.K = {
				channel: A.AH,
				rect: new ev(0, 0, P.Z, P.h)
			}
		}
	};
	dt.amu = function (F, P, o, X, Y, y) {
		var z = o.an(),
			s = r.l(F, P),
			v = 0;
		P += 4;
		var t = r.l(F, P);
		P += 4;
		z.rect = new ev(0, 0, s, t);
		var d = r.l(F, P);
		P += 4;
		var U = r.NQ(F, P);
		P += U.lr;
		z.uf(U.Pg);
		var A = {};
		P = dt.g6(F, P, A);
		if (A[ef.Ko]) {
			var Z = A[ef.Ko];
			v = Z.length / 4 - 1
		}
		if (A[ef.mh]) {
			z.rect.x = r.tF(A[ef.mh], 0);
			z.rect.y = r.tF(A[ef.mh], 4)
		}
		if (A[ef.hf]) {
			z.opacity = r.l(A[ef.hf], 0)
		}
		if (A[ef.a34]) {
			z.add.lsct = gr.lw;
			z.rect = new ev(0, 0, 0, 0);
			z.buffer = H.R(0);
			z.ix = 24
		}
		if (A[ef.Po]) {
			var D = r.l(A[ef.Po], 0);
			z.sW = ef.a6n[D];
			if (z.fO() && z.sW == "norm") z.sW = "pass"
		}
		if (A[ef.Y4]) {
			if (r.l(A[ef.Y4], 0) == 0) z.ix += 2
		}
		if (A[ef.Ee]) {
			var q = r.l(A[ef.Ee], 0);
			z.add.lsct = q & 1 == 1 ? gr.lw : gr.kE
		}
		if (A[ef.KR]) {
			var R = A[ef.KR];
			for (var J in R) {
				var W = R[J];
				if (J == "gimp-text-layer") {
					var p = dt.a92(W),
						n = p.text,
						b = p.font,
						Q = p.color,
						_ = p["font-size"];
					if (n == null && p.markup) {
						var L = new DOMParser,
							m = L.parseFromString(p.markup, "image/svg+xml");
						while (m.firstChild != null && m.firstChild.tagName != null) {
							m = m.firstChild;
							var I = m.getAttribute("font"),
								c = m.getAttribute("foreground"),
								u = m.getAttribute("size");
							if (I != null) b = I;
							if (c != null) {
								c = CSS.HD(c);
								Q = [1, c.U / 255, c.S / 255, c.i / 255]
							}
							if (u != null) {
								_ = "" + parseFloat(u) / 245
							}
						}
						n = m.textContent
					}
					z.add.lnsr = "rend";
					z.add.TySh = bt.T_(0, 0);
					z.add.TySh.xa = new ev(0, 0, 100, 100);
					z.add.TySh.O = new cu(1, 0, 0, 1, z.rect.x, z.rect.y);
					var a = z.add.TySh.MF;
					bt.v$(a, 0, n);
					var N = bt.lW(a, 0, 0),
						V = p.justify,
						M = p["line-spacing"];
					if (Q) N.dS.FillColor = {
						Type: 1,
						Values: [1, parseFloat(Q[1]), parseFloat(Q[2]), parseFloat(Q[3])]
					};
					if (_) {
						_ = Math.round(parseFloat(_));
						N.dS.FontSize = _;
						z.add.TySh.O.ye += Math.min(17, _ * .17)
					}
					if (M) {
						M = Math.round(parseFloat(M) + N.dS.FontSize * 1.2);
						N.dS.Leading = M;
						N.dS.AutoLeading = !1
					}
					if (V) N.eS.Justification = ["left", "right", "center", "fill"].indexOf(V);
					if (b && b != "Sans-serif") {
						var O = b.toLowerCase(),
							K = "bold italic semi extra regular condensed light".split(" "),
							j = O.length;
						for (var w = 0; w < K.length; w++) {
							var $ = O.indexOf(K[w]);
							if ($ != -1 && $ < j && O[$ - 1] == " ") j = $
						}
						if (j != O.length) b = b.slice(0, j - 1).split(" ").join("") + "-" + b.slice(j).split(" ").join("");
						bt.oi(N, b)
					}
					bt.Ji(a, 0, n.length, N);
					var x = p["box-width"],
						g = p["box-height"],
						T = x ? parseFloat(x) : z.rect.Z,
						E = g ? parseFloat(g) : z.rect.h;
					bt.E5(a, 1);
					bt.Z1(a, [0, 0, Math.ceil(T), Math.ceil(E)])
				} else console.log("Unknown property " + J)
			}
		}
		while (o.GX > v) {
			o.r.push(o.Px());
			o.GX--
		}
		o.GX = v;
		if (z.add.lsct == gr.lw || z.add.lsct == gr.kE) o.GX++;
		var a9 = Y == 4 ? r.l : r.k0;
		if (z.Mq()) {
			z.buffer = H.R(z.rect.M() * 4);
			var ez = new H._B(z.rect.M()),
				bN = a9(F, P);
			P += Y;
			var cg = a9(F, P);
			P += Y;
			dt.hv(F, bN, ez, X, Y, y);
			H.sA(ez, z.buffer);
			if (cg != 0) {
				z.g = new h.vm;
				z.g.color = 0;
				z.g.rect = z.rect.clone();
				z.g.channel = dt.r6(F, cg, X, Y, y).AH;
				if (A[ef.i_]) z.g.isEnabled = r.l(A[ef.i_], 0) == 1
			}
		}
		o.r.push(z)
	};
	dt.a92 = function (F) {
		var P = "(" + r.bc(F, 0, F.length - 1) + ")",
			o = [],
			X = {};
		dt.n3(P, 1, o);
		dt.ahO(o, X);
		return X
	};
	dt.ahO = function (F, P) {
		for (var w = 0; w < F.length; w++) {
			var o = F[w],
				X = o[0];
			if (o.length == 2) P[X] = o[1];
			else P[X] = o.slice(1)
		}
	};
	dt.n3 = function (F, P, o) {
		while (!0) {
			if (P >= F.length) throw "e";
			var X = F.charAt(P);
			P++;
			if (X == "(") {
				var Y = [];
				P = dt.n3(F, P, Y);
				o.push(Y)
			} else if (X == " " || X == "\n" || X == "\r") {} else if (X == ")") return P;
			else if (X == "\"") {
				var y = P;
				while (!0) {
					var z = F[P];
					P++;
					if (z == "\"") break;
					if (z == "\\") P++
				}
				o.push(JSON.parse(F.slice(y - 1, P)))
			} else {
				var y = P - 1;
				while (F[P] != " " && F[P] != ")") P++;
				o.push(F.slice(y, P))
			}
		}
	};
	dt.r6 = function (F, P, o, X, Y) {
		var y = r.l(F, P);
		P += 4;
		var z = r.l(F, P);
		P += 4;
		var s = r.NQ(F, P);
		P += s.lr;
		var t = {};
		P = dt.g6(F, P, t);
		var d = new H._B(y * z),
			U = X == 4 ? r.l : r.k0,
			v = U(F, P);
		P += X;
		dt.hv(F, v, d, o, X, Y);
		return {
			AH: d.U,
			lg: t
		}
	};
	dt.hv = function (F, P, o, X, Y, y) {
		var z = r.l(F, P);
		P += 4;
		var s = r.l(F, P);
		P += 4;
		var t = r.l(F, P);
		P += 4;
		var d = Y == 4 ? r.l : r.k0,
			U = d(F, P);
		P += Y;
		dt.a10(F, U, o, X, t, Y, y)
	};
	dt.a10 = function (F, P, o, X, Y, y, z) {
		var s = r.l(F, P),
			U = 0,
			w = 0;
		P += 4;
		var t = r.l(F, P);
		P += 4;
		var d = new ev(0, 0, s, t);
		if (z == 100) U = 1;
		else if (z == 150) U = 1;
		else if (z == 600) U = 4;
		else alert("unsupported bit depth " + z);
		var v = Y / U,
			U = Math.round(Y / v),
			A = [];
		P = dt.vL(F, P, A, y);
		var Z = new H._B(64 * 64 * U),
			D = new ev,
			q = X[ef.adr][0],
			R = [Z.U, Z.S, Z.i, Z.m];
		if (v == 3) H.set(Z.m, 255);
		var J = Date.now();
		for (var W = 0; W < t; W += 64)
			for (var p = 0; p < s; p += 64) {
				var n = Math.min(s - p, 64),
					b = Math.min(t - W, 64),
					Q = n * b;
				D.Oh(p, W, n, b);
				dt.ama(F, A[w++], Q * U, q, v, R);
				if (z == 600) {
					var _ = dt.a19(),
						L = new Uint32Array(1),
						m = new Float32Array(L.buffer);
					for (var I = 0; I < v; I++) {
						var c = R[I];
						for (var u = 0; u < Q; u++) {
							L[0] = c[u] << 24 | c[Q + u] << 16 | c[(Q << 1) + u] << 8 | c[(Q << 1) + Q + u] << 0;
							var a = m[0];
							if (a < 0) a = 0;
							else if (a > 1) a = 1;
							c[u] = _[~~(.5 + a * 1e3)]
						}
					}
				}
				H.X6(Z, D, o, d)
			}
	};
	dt.a19 = function () {
		var F = dt.a0_;
		if (F != null) return F;
		F = dt.a0_ = new Uint8Array(1001);
		for (var w = 0; w < 1001; w++) F[w] = ~~(.49 + 255 * H.SU(w * .001));
		return F
	};
	dt.ama = function (F, P, o, X, Y, y) {
		if (X == 1) {
			for (var z = 0; z < Y; z++) {
				var s = y[z],
					t = 0;
				while (t < o) {
					var e = F[P];
					P++;
					if (e < 127) {
						var d = F[P];
						P++;
						e++;
						for (var w = 0; w < e; w++) s[t + w] = d
					} else if (e == 127) {
						var U = F[P];
						P++;
						var v = F[P];
						P++;
						var d = F[P];
						P++;
						e = U << 8 | v;
						for (var w = 0; w < e; w++) s[t + w] = d
					} else if (e == 128) {
						var U = F[P];
						P++;
						var v = F[P];
						P++;
						e = U << 8 | v;
						for (var w = 0; w < e; w++) s[t + w] = F[P + w];
						P += e
					} else {
						e = 256 - e;
						for (var w = 0; w < e; w++) s[t + w] = F[P + w];
						P += e
					}
					t += e
				}
			}
		} else if (X == 2) {
			var A = pako.inflate(F.slice(P)),
				Z = Math.round(A.length / o);
			for (var w = 0; w < o; w++) {
				var D = w * Z;
				y[0][w] = A[D];
				y[1][w] = A[D + 1];
				y[2][w] = A[D + 2];
				y[3][w] = Z == 3 ? 255 : A[D + 3]
			}
		} else alert("Unknown compression " + X)
	};
	dt.vL = function (F, P, o, X) {
		var Y = X == 4 ? r.l : r.k0;
		while (!0) {
			var y = Y(F, P);
			P += X;
			if (y == 0) break;
			else o.push(y)
		}
		return P
	};
	dt.g6 = function (F, P, o) {
		while (!0) {
			var X = r.l(F, P);
			P += 4;
			var Y = r.l(F, P);
			P += 4;
			if (X == ef.aad) break;
			else if (X == ef.KR) o[X] = dt.aaN(F, P, P + Y);
			else o[X] = r.JN(F, P, Y);
			P += Y
		}
		return P
	};
	dt.aaN = function (F, P, o) {
		var X = {};
		while (P < o) {
			var Y = r.NQ(F, P);
			P += Y.lr;
			var y = r.l(F, P);
			P += 4;
			if (y != 1) console.log("unknown flags", y);
			var z = r.l(F, P);
			P += 4;
			X[Y.Pg] = r.JN(F, P, z);
			P += z
		}
		return X
	};
	var ef = {
		aad: 0,
		ad3: 1,
		a1u: 2,
		amH: 3,
		a88: 4,
		aa0: 5,
		hf: 6,
		Po: 7,
		Y4: 8,
		a48: 9,
		akN: 10,
		i_: 11,
		a6M: 12,
		afY: 13,
		abz: 14,
		mh: 15,
		a7H: 16,
		adr: 17,
		a8c: 18,
		a9f: 19,
		a2U: 20,
		KR: 21,
		a6s: 22,
		akc: 23,
		ab6: 24,
		ad5: 25,
		a9Z: 26,
		acX: 27,
		abK: 28,
		a34: 29,
		Ko: 30,
		Ee: 31,
		a6e: 32,
		acl: 33,
		agO: 34,
		acQ: 35,
		aaR: 36,
		afz: 37,
		a7I: 38,
		a9O: 0,
		aaO: 1,
		a90: 2,
		a5Z: 3,
		a3w: 1,
		age: 2,
		a57: 0,
		adO: 1,
		ahu: 1
	};
	ef.a6n = "norm,diss,norm,mul ,scrn,over,diff,lddg,fsub,dark,lite,hue ,sat ,colr,lum ,fdiv,lddg,idiv,hLit,sLit,fdiv,pLit,norm,over,hue ,hue ,colr,lite,norm,norm,mul ,scrn,diff,lddg,fsub,dark,lite,hue ,sat ,colr,lum ,fdiv,lddg,idiv,hLit,sLit,fdiv,pLit,vLit,pLit,lLit,hMix,smud,lbrn,lum ,lum ,lum ,lum ,norm,norm,norm,pass".split(",");

	function gX() {}
	gX.ee = function (F, P) {
		var o = gX,
			X = fm.parse(F),
			y = 0;
		if (X.pages.length > 1) console.log(X.pages.length, "pages");
		var Y = [],
			z = new ev;
		for (var s = 0; s < X.pages.length; s++) {
			var t = X.pages[s],
				d = t.layers,
				U = o.nP(d, s),
				A = !1;
			if (U.M() > 8e3 * 8e3 || U.Z > 3e4 || U.h > 3e4) {
				o.K0(d, !0);
				var v = o.nP(d, s);
				if (v.M() >= U.M()) o.K0(d, !1)
			}
			U = o.nP(d, s);
			for (var Z = 0; Z < d.length; Z++) {
				var D = d[Z];
				if (o.xd(D) == "artboard") A = !0
			}
			if (!A) {
				console.log("no artboard");
				var q = {};
				for (var R in t) q[R] = t[R];
				q._class = "group";
				t.layers = [q]
			}
			Y.push(U.clone());
			if (U.qr()) continue;
			U.x = 0;
			U.y = y;
			y += U.h + 200;
			z = z.s7(U)
		}
		var J = {};
		if (X.foreignSymbols)
			for (var w = 0; w < X.foreignSymbols.length; w++) {
				var W = X.foreignSymbols[w].symbolMaster;
				J[W.symbolID] = {
					z7: W
				}
			}
		o.$r(X.pages, J, P);
		for (var p in J) {
			var D = J[p].z7,
				n = o.OV(D.layers)
		}
		var b = gX.B$(z, 8192 * 8192);
		P.Lt = !0;
		P.Z = Math.round(z.Z / b);
		P.h = Math.round(z.h / b);
		P.buffer = H.R(P.Z * P.h * 4);
		P.f$(X.pages[0].layers.length);
		P.o0 = {};
		P.bL = [];
		y = 0;
		for (var s = 0; s < X.pages.length; s++) {
			var Q = X.pages[s],
				U = Y[s],
				_ = new cu(b, 0, 0, b, U.x, U.y - y);
			o.cS(Q.layers, P, _, X, J, {}, []);
			y += U.h + 200
		}
		delete P.o0;
		delete P.bL;
		if (b != 1) alert("File scaled down " + b + "x");
		P.a7T()
	};
	gX.a6S = 0;
	gX.xd = function (F) {
		return F._class ? F._class : F.$class
	};
	gX.B$ = function (F, P) {
		var o = 1;
		while (Math.round(F.Z / o) * Math.round(F.h / o) > P || Math.max(Math.round(F.Z / o), Math.round(F.h / o)) > 3e4) o++;
		if (o != 1 && !window.confirm("Your image is quite large (" + F.Z + " x " + F.h + " px).\n" + "Press OK to scale it down " + o + "x, or Cancel to keep the size.")) o = 1;
		return o
	};
	gX.nP = function (F, P) {
		var o = [],
			X = gX;
		for (var Y = 0; Y < F.length; Y++) {
			var y = F[Y],
				z = X.g$(y.frame);
			if (P == 0 || X.xd(y) == "artboard") o.push(z)
		}
		return H.rect.Nl(o)
	};
	gX.K0 = function (F, P) {
		var o = [],
			X = gX;
		for (var Y = 0; Y < F.length; Y++) {
			var y = F[Y],
				z = X.g$(y.frame);
			z.Z += 150;
			z.h += 150;
			o.push(z)
		}
		var s = H.rect.Nl(o);
		H.rect.aiw(o, P);
		var t = H.rect.Nl(o);
		if (t.M() * 1.5 < s.M() || s.Z > 3e4 && t.Z <= 3e4 || s.h > 3e4 && t.h <= 3e4) {
			alert("Re-arranging artboards");
			for (var Y = 0; Y < F.length; Y++) {
				var d = o[Y],
					y = F[Y],
					U = y.frame;
				U.x = d.x;
				U.y = d.y
			}
		}
	};
	gX.$r = function (F, P, o) {
		var X = gX;
		for (var Y = 0; Y < F.length; Y++) {
			var y = F[Y],
				z = X.xd(y);
			if (["page", "artboard", "group"].indexOf(z) != -1) X.$r(y.layers, P, o);
			else if (z == "symbolMaster") P[y.symbolID] = {
				z7: y
			}
		}
	};
	gX.OV = function (F) {
		var P = gX;
		for (var o = 0; o < F.length; o++) {
			var X = F[o],
				Y = P.xd(X),
				y = null;
			if (["page", "artboard", "group"].indexOf(Y) != -1) y = P.OV(X.layers);
			if (Y == "symbolMaster" || Y == "symbolInstance") y = X;
			if (y != null) return y
		}
		return null
	};
	gX.cS = function (F, P, o, X, Y, y, z) {
		var s = gX,
			t = [];
		for (var d = 0; d < F.length; d++) {
			var U = F[d],
				v = U.frame ? s.g$(U.frame) : null,
				A = U.style,
				J = "",
				_ = null,
				L = !1;
			if (A == null) {
				console.log("no styles")
			}
			var Z = s.a6(U, o),
				D = s.xd(U),
				q = D == "shapeGroup" || D == "shapePath" || D == "rectangle" || D == "oval" || D == "triangle",
				R = ["page", "artboard", "group"].indexOf(D) != -1;
			if (D == "shapeGroup") {
				for (var w = 0; w < U.layers.length; w++)
					if (s.xd(U.layers[w]) == "shapeGroup") R = !0
			}
			var W = U.exportOptions;
			if (W) {
				var p = W.exportFormats;
				if (p == null) p = W.sizes;
				if (D != "artboard" && (p && p.length != 0)) {
					var n = p[0].scale
				}
			}
			var b = P.an();
			b.vR(U.isVisible);
			var Q = U.name;
			if (!(typeof Q == "string")) Q = D;
			b.uf(J + Q.slice(0, 250));
			if (A != null) _ = s.ah9(X, P, A, v, Z, b.getName(), q || D == "artboard" || R);
			if (D == "rectangle" && A && A.fills && A.fills[0]) {
				var m = A.fills[0];
				if (m.fillType == 4 && m.patternFillType > 1 && m.image != null) L = !0
			}
			if (U.shouldBreakMaskChain) {
				while (t.length != 0) s.KS(t.pop(), P)
			}
			if (R) {
				b.add.lsct = U.layerListExpandedType == 2 ? gr.lw : gr.kE;
				b.sW = "pass";
				b.ix = 24;
				b.vR(U.isVisible);
				P.r.push(P.Px());
				if (D == "artboard") {
					var I = v.clone(),
						c = Z.d3();
					I.x = -Math.floor(Z.PV / c);
					I.y = -Math.floor(Z.ye / c);
					I.Z = Math.floor(I.Z / c);
					I.h = Math.floor(I.h / c);
					b.BE(I);
					var u = U.backgroundColor;
					b.add.artb.Clr = {
						t: "Objc",
						v: H.j.$H({
							U: 255 * u.red,
							S: 255 * u.green,
							i: 255 * u.blue
						})
					};
					b.add.artb.artboardBackgroundType = {
						t: "long",
						v: 4
					}
				}
				s.cS(U.layers, P, Z, X, Y, y, z)
			} else if (q && !L) {
				b.add.vmsk = new h.iO;
				b.add.vstk = JSON.parse(JSON.stringify(ce.bW.default));
				b.add.vstk.strokeEnabled.v = !1;
				b.add.vogk = [];
				var a = _ != null && _.frameFXMulti.v.length == 1,
					N = A ? A.fills : null,
					V = A ? s.uo(X, N, v, Z, b.getName(), P, s.fn(z, U.do_objectID + "_image")) : [];
				if (V.length == 0) {
					if (a) b.add.vstk.fillEnabled.v = !1;
					else b.add.iOpa = 0;
					b.add.SoCo = {
						classID: "null",
						Clr: {
							t: "Objc",
							v: H.j.$H({
								U: 0,
								S: 0,
								i: 0
							})
						}
					}
				} else {
					var M = V[0],
						O = null,
						K = null;
					if (M.type == "SoFi") {
						O = "SoCo";
						K = ce.QB
					}
					if (M.type == "GrFl") {
						O = "GdFl";
						K = ce.Zt
					}
					if (M.type == "patternFill") {
						O = "PtFl";
						K = ce.QZ
					}
					if (O != null) {
						b.add[O] = {
							classID: "null"
						};
						for (var w = 0; w < K.length; w++) {
							var j = K[w];
							b.add[O][j] = M.C.v[j]
						}
						var $ = M.C.v.Opct.v.val;
						if (a && $ == 0) b.add.vstk.fillEnabled.v = !1;
						else b.add.iOpa = Math.round(255 * $ / 100)
					}
				}
				b.ix |= 16;
				b.add.vmsk.b = s.Hy(U.layers ? U.layers : [U], U.layers ? Z : o, b.add.vogk);
				var x = A ? A.blur : null;
				if (x && x.isEnabled && x.type <= 1) b.add.vmsk.bM = x.radius;
				if (b.add.vmsk.b.length == 2) {
					console.log("shape with no content:", b.getName())
				}
				if (a) {
					var g = _.frameFXMulti.v[0].v,
						T = b.add.vstk,
						E = A.borders[0];
					_.frameFXMulti.v = [];
					cr.sa(g, T);
					var a9 = A.borderOptions,
						ez = A.miterLimit;
					if (a9) {
						var bN = a9.dashPattern;
						T.strokeStyleLineCapType.v.strokeStyleLineCapType = ce.bW.Bb[a9.lineCapStyle];
						T.strokeStyleLineJoinType.v.strokeStyleLineJoinType = ce.bW.join[a9.lineJoinStyle];
						if (bN) T.strokeStyleLineDashSet.v = cr.oB(bN, 1 / g.Sz.v.val);
						if (ez != null) T.strokeStyleMiterLimit.v = ez
					}
				}
				b._V(P)
			} else if (D == "bitmap" || L) {
				var cg = L ? A.fills[0] : null,
					d8 = L ? cg.image.bdata : U.image.bdata,
					C = P.f6(d8, b.getName(), 0, 0);
				C.ix = b.ix;
				b = C;
				var x = A.blur,
					S = A.colorControls;
				if (x || S) {
					b.add.SoLd.filterFX = bv.U$();
					P.Bq({
						id: b.add.SoLd.placed.v,
						rect: new ev,
						buffer: H.R(1),
						g: new h.vm
					});
					var N = b.add.SoLd.filterFX.v.filterFXList.v;
					if (x) {
						var g7 = bv.Sb("GsnB", {});
						g7.v.enab.v = x.isEnabled;
						g7.v.Fltr.v.Rds.v.val = x.radius;
						N.push(g7)
					}
					if (S) {
						var g_ = S.brightness,
							fw = S.contrast,
							dT = S.hue,
							g4 = S.saturation;
						if (dT != 0 || g4 != 1) {
							var g7 = bv.Sb("hue2", {});
							g7.v.enab.v = S.isEnabled;
							az._j(g7.v.Fltr.v, 0, [Math.round(dT * 180 / Math.PI), Math.round((g4 - 1) * 100), 0]);
							N.push(g7)
						}
						if (g_ != 0 || fw != 1) {
							var g7 = bv.Sb("brit", {});
							g7.v.enab.v = S.isEnabled;
							fw = fw - 1;
							if (fw > 0) fw /= 2;
							var bB = g7.v.Fltr.v;
							bB.Brgh.v = Math.round(g_ * 255);
							bB.Cntr.v = Math.round(fw * 255);
							bB.useLegacy.v = !0;
							N.push(g7)
						}
					}
				}
				if (L) {
					var d1 = cg.patternFillType;
					if (d1 == 3) {
						var f_ = b.rect.Z / b.rect.h,
							g$ = v.Z / v.h;
						if (f_ < g$) {
							Z.translate(-(v.Z * (1 - f_ / g$)) / 2, 0);
							Z.scale(g$ / f_, 1)
						} else {
							Z.translate(0, -(v.h * (1 - g$ / f_)) / 2);
							Z.scale(1, f_ / g$)
						}
					}
				}
				v.x = v.y = 0;
				var eT = H.D.z0(v).d;
				Z.nJ();
				H.D.O(eT, Z, eT);
				b.add.SoLd.Trnf = B.X.uE(eT);
				b.add.SoLd.nonAffineTransform = B.X.uE(eT);
				b.Gy(P, !1)
			} else if (D == "text") {
				if (U.attributedString == null) continue;
				var dz = Z.clone(),
					i4, fy, cF = 0;
				dz.nJ();
				dz.m = dz.xA = Math.min(dz.m, dz.xA);
				b.add.lnsr = "rend";
				b.add.TySh = bt.T_(0, 0);
				b.add.TySh.xa = new ev(0, 0, v.Z, v.h);
				b.add.TySh.O = dz;
				var cN = U.attributedString;
				if (cN.archivedAttributedString) cN = cN.archivedAttributedString;
				var fP = cN.NSString;
				if (fP == null) fP = cN.string;
				if (fP == null) fP = "";
				if (fP["NS.string"]) fP = fP["NS.string"];
				if (y[U.do_objectID] != null) fP = y[U.do_objectID];
				var du = s.fn(z, U.do_objectID + "_stringValue");
				if (du) fP = du.value;
				if (cN.attributes != null) {
					i4 = [];
					fy = [];
					var ea = cN.attributes;
					for (var w = 0; w < ea.length; w++) {
						i4.push(ea[w].length, w);
						fy.push(ea[w].attributes)
					}
				} else if (cN.NSAttributeInfo == null) {
					i4 = [fP.length, 0];
					fy = [cN.NSAttributes]
				} else {
					i4 = cN.NSAttributeInfo["NS.data"];
					fy = cN.NSAttributes;
					i4 = gX.a5$(i4, fy)
				}
				for (var w = 0; w < i4.length; w += 2) cF += i4[w];
				if (cF != fP.length) {
					while (cF > fP.length) {
						i4[i4.length - 2]--;
						cF--;
						if (i4[i4.length - 2] == 0) {
							i4.pop();
							i4.pop()
						}
					}
					i4[i4.length - 2] += fP.length - cF
				}
				fP = fP.replace(/\u2028/g, "\n");
				fP = fP.replace(/\u2029/g, "\n");
				fP = fP.replace(/\r/g, "\n");
				var gB = b.add.TySh.MF;
				bt.v$(gB, 0, fP);
				if (fP != "") {
					var bp = U.textBehaviour,
						hf = A.textStyle,
						bq = hf ? hf.verticalAlignment : 0,
						eY = s.a7s(gB, i4, fy, fP),
						c = dz.d3(),
						f1 = bt.lW(gB, 0, 1),
						e7 = 0;
					if (f1.dS.Font) {
						var dh = f1.Dm[f1.dS.Font].Name;
						if (dh == "FontAwesome" || dh == "Ionicons") eY *= .87
					}
					var hn = f1.dS.AutoLeading ? 0 : f1.dS.Leading * .6,
						ed = Math.max(eY, hn) * c,
						hP = v.Z,
						ck = v.h;
					if (bp == 0) {
						bt.E5(gB, 0);
						var ds = bt.Wk(f1.eS);
						if (ds == 1) e7 = hP * c;
						if (ds == 2) e7 = hP * c * .5;
						if (bq == 0) ed *= 1;
						else ed *= .9
					} else {
						bt.E5(gB, 1);
						bt.Z1(gB, [0, 0, Math.round(hP), Math.round(ck)]);
						if (bp == 2 && bq == 0) ed = ed * .2;
						else if (bp == 2 && bq == 1) {
							ed = c * .5 * (ck - f1.dS.FontSize)
						} else if (bp == 1 && bq == 0) ed = ed * .2;
						else ed = ed * .35
					}
					b.add.TySh.O.translate(e7, ed)
				}
			} else if (D == "symbolInstance" || D == "symbolMaster") {
				var hB = U.symbolID;
				if (y[U.do_objectID]) hB = y[U.do_objectID].symbolID;
				var bd = s.fn(z, U.do_objectID + "_symbolID");
				if (bd) hB = bd.value;
				if (hB == "") continue;
				var d0 = {};
				for (var j in y) d0[j] = y[j];
				if (U.overrides)
					for (var j in U.overrides) d0[j] = U.overrides[j];
				var d$ = z.slice(0);
				if (U.overrideValues) d$ = d$.concat(U.overrideValues);
				var ap = Y[hB];
				if (ap == null) {
					console.log("Unknown master master", U.symbolID);
					continue
				}
				var dE = gX.g$(ap.z7.frame),
					fv = dE.Z / v.Z,
					c8 = dE.h / v.h,
					bT = Z.clone();
				bT.scale(fv, c8);
				b.add.lsct = gr.kE;
				b.sW = "pass";
				b.ix = 24;
				b.vR(U.isVisible);
				P.r.push(P.Px());
				var bi = ap.z7;
				if (P.bL.indexOf(bi) == -1) {
					P.bL.push(bi);
					s.cS(bi.layers, P, bT, X, Y, d0, d$);
					P.bL.pop()
				}
			} else if (D == "slice") {
				console.log("slice layers are ignored by now");
				continue
			} else {
				console.log("unknown layer type: " + D, U);
				continue
			}
			if (A && A.contextSettings) {
				var i7 = A.contextSettings,
					ec = i7.blendMode;
				if (ec < s.HF.length) {
					b.sW = aK.YA[aK.zn.indexOf(s.HF[ec])];
					if (R && b.sW == "norm") b.sW = "pass"
				}
				b.opacity = Math.round(b.opacity * i7.opacity)
			}
			if (_ != null) {
				b.add.lmfx = _
			}
			P.r.push(b);
			if (U.hasClippingMask && F.length > 1) {
				t.push(b);
				P.r.push(P.Px())
			}
		}
		while (t.length != 0) s.KS(t.pop(), P)
	};
	gX.fn = function (F, P) {
		for (var w = 0; w < F.length; w++)
			if (F[w].overrideName.startsWith(P)) return F[w]
	};
	gX.a5$ = function (F, P) {
		var o = 0,
			X = [];
		while (o + 1 < F.length) {
			var Y = F[o];
			o++;
			if (Y > 127) {
				Y += 128 * (F[o] - 1);
				o++;
				if (F[o - 1] > 127) {
					Y += 128 * (F[o] - 1);
					o++
				}
			}
			var y = F[o];
			o++;
			X.push(Y, y)
		}
		return X
	};
	gX.a7s = function (F, P, o, X) {
		var Y = gX,
			y = 0,
			U = 0,
			v = 0;
		for (var w = 0; w < X.length; w++) {
			var z = X.charCodeAt(w),
				s = 1473 <= z && z <= 1479 || 1488 <= z && z <= 1514 || 1520 <= z && z <= 1524,
				t = 1569 <= z && z <= 1594 || 1600 <= z && z <= 1749;
			if (s || t) y++
		}
		var d = y > X.length / 2;
		for (var w = 0; w < P.length; w += 2) {
			var A = P[w],
				b = 14,
				Q = "AlibabaPuHuiTi-Regular";
			if (A == 0) continue;
			var Z = P[w + 1],
				D = o[Z],
				q = bt.lW(F, U, U + A - 1),
				R = D.NSColor;
			if (R == null) {
				var R = D.MSAttributedStringColorDictionaryAttribute;
				if (R == null) R = D.MSAttributedStringColorAttribute;
				if (R == null) R = "0 0 0";
				else R = [R.red, R.green, R.blue].join(" ")
			} else if (Y.xd(R) == "MSArchivedColor") R = R.dr + " " + R.dg + " " + R.db;
			else if (R.NSRGB) {
				R = R.NSRGB;
				R = r.$o(R, 0, R.length - 1)
			} else if (R.NSCMYK) {
				R = R.NSCMYK;
				R = r.$o(R, 0, R.length - 1);
				R = R.split(" ").map(parseFloat);
				var J = 1 - R[0],
					W = 1 - R[1],
					p = 1 - R[2],
					n = 1 - R[3];
				R = J * n + " " + W * n + " " + p * n
			} else if (R.NSWhite) {
				R = "1 1 1"
			}
			R = R.split(" ");
			q.dS.FillColor = {
				Type: 1,
				Values: [1, parseFloat(R[0]), parseFloat(R[1]), parseFloat(R[2])]
			};
			var _ = D.MSAttributedStringFontAttribute;
			if (D.NSFont) {
				b = D.NSFont.NSSize;
				Q = D.NSFont.NSName
			} else if (_) {
				if (_.attributes) {
					_ = _.attributes;
					b = _.size;
					Q = _.name
				} else {
					var L = _.NSFontDescriptorAttributes;
					if (L == null) L = _.UIFontDescriptorAttributes;
					_ = L;
					b = _.NSFontSizeAttribute;
					Q = _.NSFontNameAttribute
				}
				if (Q == null) Q = "AlibabaPuHuiTi-Regular"
			}
			var v = Math.max(v, b);
			q.dS.FontSize = Math.round(b);
			bt.oi(q, Q);
			var m = D.NSKern;
			if (m == null) m = D.kerning;
			if (m != null) q.dS.Tracking = Math.round(1e3 * m / b);
			if (D.NSUnderline != null) q.dS.Underline = D.NSUnderline > 0;
			if (D.NSStrikethrough != null) q.dS.Strikethrough = D.NSStrikethrough > 0;
			if (D.MSAttributedStringTextTransformAttribute == 1) q.dS.FontCaps = 2;
			var I = D.NSParagraphStyle;
			if (I == null) I = D.paragraphStyle;
			if (I) {
				var c = I.paragraphSpacing;
				if (c != null) {
					q.eS.SpaceAfter = c
				}
				var u = I.NSAlignment;
				if (u == null) u = I.alignment;
				if (u != null) {
					var a = 0;
					if (!1) {} else if (u == 1) a = 1;
					else if (u == 2) a = 2;
					else if (u == 4) a = 0;
					else {
						a = u;
						console.log("unknown align", u)
					}
					if (d && a < 2) a = 1 - a;
					q.eS.Justification = a
				}
				var N = I.NSMinLineHeight;
				if (N == null) N = I.minimumLineHeight;
				if (N != null) {
					q.dS.AutoLeading = !1;
					q.dS.Leading = N
				}
			}
			q.eS._Direction = d ? 1 : 0;
			bt.Ji(F, U, U + A, q);
			U += A
		}
		return v
	};
	gX.ah9 = function (F, P, o, X, Y, y, z) {
		var s = gX,
			t = JSON.parse(ce.default),
			d = !1;
		for (var w = 0; w < ce.order.length; w++) t[ce.og[w]] = {
			t: "VlLs",
			v: []
		};
		var U = o.fills,
			v = s.uo(F, U, X, Y, y, P);
		for (var A = 0; A < 2; A++) {
			var Z = o[["shadows", "innerShadows"][A]];
			if (Z == null) continue;
			var D = ["DrSh", "IrSh"][A],
				q = ce.og[ce.order.indexOf(D)];
			for (var w = 0; w < Z.length; w++) {
				var R = Z[w];
				if (!R.isEnabled) continue;
				if (R.contextSettings.opacity == 0 || R.color.alpha == 0) continue;
				var J = JSON.parse(ce.IW[ce.order.indexOf(D)]);
				t[q].v.unshift({
					t: "Objc",
					v: J
				});
				d = !0;
				J.Clr.v = s.HD(R.color);
				J.blur.v.val = Math.round(R.blurRadius / Y.d3());
				var W = Y.clone();
				W.PV = W.ye = 0;
				W.nJ();
				var p = W.aT(new aH(R.offsetX, R.offsetY)),
					n = Math.sqrt(p.x * p.x + p.y * p.y);
				J.Dstn.v.val = Math.round(n);
				J.lagl.v.val = Math.round(Math.atan2(p.y, -p.x) * (180 / Math.PI));
				if (J.layerConceals) J.layerConceals.v = v.length != 0;
				s.gt(R, J)
			}
		}
		var b = o.borders;
		if (b != null && (v.length == 0 || o.blur == null || !o.blur.isEnabled))
			for (var w = 0; w < b.length; w++) {
				var Q = b[w];
				if (!Q.isEnabled) continue;
				var J = JSON.parse(ce.IW[ce.order.indexOf("FrFX")]),
					q = ce.og[ce.order.indexOf("FrFX")];
				t[q].v.unshift({
					t: "Objc",
					v: J
				});
				d = !0;
				J.Clr.v = s.HD(Q.color);
				if (Q.fillType != 0 && Q.gradient) {
					var _ = s.Qd(Q.gradient, X, Y, y),
						L = ["Type", "Angl", "Ofst", "Scl"];
					for (var w = 0; w < L.length; w++) J[L[w]] = _[L[w]];
					J.Grad.v = _.Grad.v;
					J.PntT.v.FrFl = "GrFl"
				}
				J.Sz.v.val = Q.thickness / Y.d3();
				J.Styl.v.FStl = ["CtrF", "InsF", "OutF"][Q.position];
				s.gt(Q, J)
			}
		for (var w = z ? 1 : 0; w < v.length; w++) {
			var m = v[w],
				q = ce.og[ce.order.indexOf(m.type)];
			t[q].v.unshift(m.C);
			d = !0
		}
		return d ? t : null
	};
	gX.uo = function (F, P, o, X, Y, y, z) {
		if (P == null) return [];
		var s = gX,
			t = [];
		for (var w = 0; w < P.length; w++)
			if (P[w].isEnabled) t.push(P[w]);
		P = t;
		var d = [];
		for (var w = 0; w < P.length; w++) {
			var U = P[w],
				v = null,
				A = null;
			if (U.fillType == 0) {
				v = "SoFi";
				var Z = JSON.parse(ce.IW[ce.order.indexOf("SoFi")]);
				A = {
					t: "Objc",
					v: Z
				};
				A.v.Clr.v = s.HD(U.color)
			} else if (U.fillType == 1) {
				v = "GrFl";
				A = {
					t: "Objc",
					v: s.Qd(U.gradient, o, X, Y)
				}
			} else if (U.fillType == 4 && U.image != null) {
				var D = U.image;
				if (z) D = z.value;
				var q = em.Xh(D.bdata.buffer);
				if (q != null && q != "pdf" && q != "eps") {
					var R, Q = 0,
						_ = 0,
						L = 0;
					if (y.o0[D.key]) R = y.o0[D.key];
					else {
						var J = em.$I(q).xo(D.bdata)[0],
							W = J.ym.clone();
						R = {};
						R.id = c_.vs() + "-d71c-11e5-b1ae-a548a96e5f9f";
						R.name = "someImage";
						R.Jx = [new Uint8Array(J.data), W];
						y.e6(R);
						y.o0[D.key] = R
					}
					var p = R.Jx[1],
						Z = JSON.parse(ce.IW[ce.order.indexOf("patternFill")]);
					v = "patternFill";
					A = {
						t: "Objc",
						v: Z
					};
					var n = U.patternFillType,
						b = U.patternTileScale;
					Z.Algn.v = !0;
					Z.Ptrn.v.Idnt.v = R.id;
					if (n == 0) {
						Q = b * p.Z / Math.min(p.Z, p.h);
						_ = -X.PV;
						L = -X.ye
					} else {
						Q = Math.max(o.Z / p.Z, o.h / p.h);
						_ = -X.PV - (p.Z * Q - o.Z) / 2;
						L = -X.ye - (p.h * Q - o.h) / 2
					}
					Z.Scl.v.val = 100 * Q * (1 / X.d3());
					Z.phase.v.Hrzn.v = Math.round(_ / X.d3());
					Z.phase.v.Vrtc.v = Math.round(L / X.d3())
				}
			} else if (U.fillType == 5) {
				console.log("fill type Noise not supported yet")
			} else console.log("unknown fill type", U.fillType);
			if (v != null) {
				s.gt(U, A.v);
				d.push({
					type: v,
					C: A
				})
			}
		}
		return d
	};
	gX.ah8 = function (F) {
		var P = gX,
			o = new ev(0, 0, 1, 1);
		F = F.slice(0);
		while (!0) {
			var X = !1;
			for (var w = 0; w < F.length - 1; w++) {
				var Y = F[w],
					y = F[w + 1],
					z = null,
					s = Y.contextSettings;
				if (Y.fillType == 0 && (s == null || s.opacity == 1 && s.blendMode == 0) && Y.color.alpha == 1) {
					var t = "norm",
						d = 1,
						s = y.contextSettings;
					if (s) {
						d = s.opacity;
						t = aK.pT(P.HF[s.blendMode])
					}
					if (y.fillType == 0) {
						z = JSON.parse(JSON.stringify(y));
						P.Y6(z.color, Y.color, z.color, o, t, d)
					}
					if (y.fillType == 1) {
						z = JSON.parse(JSON.stringify(y));
						var U = z.gradient.stops;
						for (var v = 0; v < U.length; v++) P.Y6(U[v].color, Y.color, U[v].color, o, t, d)
					}
					if (z != null && z.contextSettings) {
						var s = z.contextSettings;
						s.opacity = 1;
						s.blendMode = 0
					}
				}
				if (z != null) {
					F.splice(w, 0, z);
					X = !0;
					break
				}
			}
			if (!X || F.length < 2) break
		}
		return F
	};
	gX.Y6 = function (F, P, o, X, Y, y) {
		var z = gX,
			s = H.R(4);
		z.dH(F, s);
		var t = H.R(4);
		z.dH(P, t);
		H.N.DO(Y, s, X, t, X, X, y);
		z.aci(t, o)
	};
	gX.dH = function (F, P) {
		P[0] = 255 * F.red;
		P[1] = 255 * F.green;
		P[2] = 255 * F.blue;
		P[3] = 255 * F.alpha
	};
	gX.aci = function (F, P) {
		P.red = F[0] / 255;
		P.green = F[1] / 255;
		P.blue = F[2] / 255;
		P.alpha = F[3] / 255
	};
	gX.KS = function (F, P) {
		F = F.clone();
		F.ix = 24;
		F.uf("Mask by " + F.getName());
		P.r.push(F);
		F.add.lsct = gr.lw;
		F.add.lyid = P.kV();
		delete F.add.lmfx;
		delete F.add.SoCo;
		delete F.add.GdFl;
		delete F.add.PtFl;
		delete F.add.iOpa;
		if (F.add.vmsk) F.add.vmsk.G2 = !0;
		F._V(P);
		if ((F.ix & 16) == 16) F.ix -= 16;
		if ((F.ix & 2) == 2) F.ix -= 2;
		F.sW = "pass";
		F.opacity = 255
	};
	gX.HF = "Nrml Drkn Mltp CBrn Lghn Scrn CDdg Ovrl SftL HrdL Dfrn Xclu H Strt Clr Lmns linearBurn linearDodge".split(" ");
	gX.Qd = function (F, P, o, X) {
		o = o.clone();
		o.nJ();
		o.PV = o.ye = 0;
		var Y = o.d3(),
			A = 0,
			Z = 0;
		o.scale(1 / Y, 1 / Y);
		var y = gX,
			z = JSON.parse(ce.IW[ce.order.indexOf("GrFl")]),
			s = z.Grad.v;
		s.Intr.v = 0;
		if (F == null) return z;
		var t = F.gradientType,
			d = y.M5(F.from),
			U = y.M5(F.to);
		d.offset(-.5, -.5);
		U.offset(-.5, -.5);
		d = o.aT(d);
		U = o.aT(U);
		var v = Math.atan2(-(U.y - d.y), U.x - d.x);
		z.Type.v.GrdT = ["Lnr", "Rdl", "Angl"][t];
		z.Scl.v.val = 100 * aH.Yj(d, U);
		if (t == 0) {
			z.Angl.v.val = 180 / Math.PI * v;
			z.Scl.v.val = 100 * aH.Yj(d, U);
			A = (d.x + U.x) / 2;
			Z = (d.y + U.y) / 2
		}
		if (t == 1) {
			z.Scl.v.val = 200 * aH.Yj(d, U);
			A = d.x;
			Z = d.y
		}
		if (t == 2) {
			z.Angl.v.val = 180 / Math.PI * (v - Math.PI / 2)
		}
		var D = z.Ofst.v;
		D.Hrzn.v.val = A * 100;
		D.Vrtc.v.val = Z * 100;
		var q = [];
		for (var w = 0; w < F.stops.length; w++) {
			var R = F.stops[w],
				J = R.color;
			q.push([R.position, J ? [J.red, J.green, J.blue] : [0, 0, 0], J.alpha])
		}
		H.j.nO(q, s);
		return z
	};
	gX.gt = function (F, P) {
		var o = gX,
			X = 1,
			Y = F.contextSettings;
		if (Y != null) {
			P.Md.v.BlnM = o.HF[Y.blendMode];
			X *= Y.opacity
		} else P.Md.v.BlnM = o.HF[0];
		P.enab.v = F.isEnabled;
		if (P.uglg != null) P.uglg.v = !1;
		if (F.color != null) X *= F.color.alpha;
		P.Opct.v.val = Math.round(X * 100)
	};
	gX.HD = function (F) {
		return H.j.$H(F ? {
			U: F.red * 255,
			S: F.green * 255,
			i: F.blue * 255
		} : {
			U: 0,
			S: 0,
			i: 0
		})
	};
	gX.Hy = function (F, P, o) {
		var X = gX,
			Y = [{
				type: 6
			}, {
				type: 8,
				all: 0
			}];
		for (var y = 0; y < F.length; y++) {
			var z = F[y],
				s = z.booleanOperation,
				t = 0,
				d = z._class,
				q = !1;
			if (d == "group" || d == "text" || d == "symbolInstance" || d == "slice") {
				console.log(d + " inside ShapeGroup");
				continue
			}
			if (s == -1) t = 0;
			else if (s == 0) t = 1;
			else if (s == 1) t = 2;
			else if (s == 2) t = 3;
			else if (s == 3) t = 0;
			if (y == 0) t = 1;
			var U = gX.g$(z.frame),
				v = X.a6(z, P),
				A = z.path ? z.path : z,
				Z = [{
					type: 0,
					length: 0,
					IO: t,
					yU: 2,
					Oj: 0,
					UB: 0
				}],
				D = A.points;
			for (var w = 0; w < D.length; w++) {
				var R = D[w],
					J = X.M5(R.curveTo),
					W = X.M5(R.point),
					p = X.M5(R.curveFrom);
				q = q || R.hasCurveFrom && !p.Qn(W) || R.hasCurveTo && !J.Qn(W)
			}
			var n = [];
			if (!q) {
				var b = [],
					e = D.length;
				if (e == 0) continue;
				for (var w = 0; w < e; w++) {
					n[w] = D[w].cornerRadius;
					var R = X.M5(D[w].point);
					b.push(R.x, R.y)
				}
				v.scale(1 / U.Z, 1 / U.h);
				v.nJ();
				H.D.O(b, v, b);
				var Q = H.V.a9(b, n);
				Z = Z.concat(Q);
				Z[0].length = Z.length - 1
			} else {
				var _ = D.length;
				Z[0].length = _;
				for (var w = 0; w < _; w++) {
					var R = D[w],
						L = R.curveMode,
						m = X.M5(R.point);
					Z[1 + w] = {
						type: L == 2 || L == 4 ? 1 : 2,
						wU: R.hasCurveTo ? X.M5(R.curveTo) : m.clone(),
						_: m,
						dv: R.hasCurveFrom ? X.M5(R.curveFrom) : m.clone()
					}
				}
				v.scale(1 / U.Z, 1 / U.h);
				v.nJ();
				H.V.G5(Z, v);
				var n = [];
				for (var w = 0; w < _; w++) {
					var R = D[w],
						L = R.curveMode,
						I = R.cornerRadius;
					if (L == 1 && I != 0) n.push(I);
					else n.push(0)
				}
			}
			if (!A.isClosed)
				for (var w = 0; w < Z.length; w++) Z[w].type += 3;
			Y = Y.concat(Z);
			var c = H.P$.Zm(),
				u = X.xd(z);
			if (v.i == 0 && v.p$ == 0) {
				var a = v.PV,
					N = v.ye,
					V = a + v.m,
					M = N + v.xA,
					O = [a, N, V, M];
				if (u == "rectangle" && n.length == 4) c = H.P$.Rr(2, O, n);
				if (u == "oval") c = H.P$.Rr(5, O)
			}
			o.push(c)
		}
		return Y
	};
	gX.a6 = function (F, P) {
		var o = P.clone(),
			X = F.frame ? gX.g$(F.frame) : null;
		if (X) o.translate(-X.x - X.Z / 2, -X.y - X.h / 2);
		if (F.isFlippedHorizontal) o.scale(-1, 1);
		if (F.isFlippedVertical) o.scale(1, -1);
		o.rotate(-F.rotation * (Math.PI / 180));
		if (X) o.translate(X.Z / 2, X.h / 2);
		return o
	};
	gX.M5 = function (F) {
		F = F.slice(1, F.length - 1).split(",");
		return new aH(parseFloat(F[0]), parseFloat(F[1]))
	};
	gX.g$ = function (F) {
		return new ev(F.x, F.y, F.width, F.height)
	};
	gX.iE = function (F) {
		return {
			_class: "rect",
			constrainProportions: !1,
			x: F.x,
			y: F.y,
			width: F.Z,
			height: F.h
		}
	};

	function h1() {}
	h1.ee = function (F, P) {
		var o = Date.now(),
			X = h1,
			Y = UZIP.parse(F),
			y = JSON.parse(r.bc(Y.manifest)),
			z = JSON.parse(r.bc(Y["resources/graphics/graphicContent.agc"])).resources,
			s = [],
			t = y.children;
		for (var w = 0; w < t.length; w++) {
			var d = t[w];
			if (d.name == "artwork") {
				var U = d.children;
				for (var v = 0; v < U.length; v++)
					if (U[v]["uxdesign#bounds"]) {
						var A = U[v],
							Z = JSON.parse(r.bc(Y["artwork/" + A.path + "/graphics/graphicContent.agc"]));
						if (Z.children.length != 1) throw "e";
						A._node = Z.children[0];
						s.push(A)
					}
			}
		}
		var D = [],
			q = new ev;
		for (var w = 0; w < s.length; w++) {
			var A = s[w],
				R = gX.g$(A["uxdesign#bounds"]);
			D.push(R);
			q = q.s7(R)
		}
		var J = gX.B$(q, 8192 * 8192);
		P.Lt = !0;
		P.Z = Math.round(q.Z / J);
		P.h = Math.round(q.h / J);
		P.buffer = H.R(P.Z * P.h * 4);
		P.f$(s.length);
		var W = new cu(J, 0, 0, J, q.x, q.y);
		P.o0 = {};
		for (var w = 0; w < s.length; w++) {
			var A = s[w],
				R = gX.g$(A["uxdesign#bounds"]),
				p = A._node,
				n = W.clone(),
				b = R.clone(),
				Q = n.d3();
			n.translate(-R.x, -R.y);
			b.x = -Math.floor(n.PV / Q);
			b.y = -Math.floor(n.ye / Q);
			b.Z = Math.floor(b.Z / Q);
			b.h = Math.floor(b.h / Q);
			n.translate(R.x, R.y);
			h1.xf(p, P, n, z, Y, b);
			var _ = P.r[P.r.length - 1];
			_.uf(A.name);
			_.BE(b);
			if (w != s.length - 1) _.add.lsct = gr.kE
		}
		delete P.o0
	};
	h1.FB = function (F) {
		if (F == null) return new cu;
		return new cu(F.a, F.b, F.c, F.d, F.tx, F.ty)
	};
	h1.xf = function (F, P, o, X, Y, y) {
		var z = h1,
			s = F.type,
			t = F[s],
			d = F.style,
			U = z.FB(F.transform),
			D, q = "none",
			R, J = "none",
			W, p;
		U.nJ();
		var v = o.clone();
		v.concat(U);
		var A = P.an(),
			Z = F.name;
		A.uf(Z ? Z.slice(0, 250) : "Layer");
		if (F.visible != null) A.vR(F.visible);
		if (d) {
			D = d.stroke;
			q = D ? D.type : "none";
			R = d.fill;
			J = R ? R.type : "none";
			W = d.filters;
			p = d.clipPath;
			if (p && X.clipPaths[p.ref]) p = X.clipPaths[p.ref].children;
			else p = null;
			if (d.opacity) A.opacity = Math.round(255 * d.opacity);
			if (J == "solid" && R.color.alpha) A.opacity = Math.round(A.opacity * R.color.alpha);
			if (W) {
				A.add.lmfx = z.acZ(W);
				for (var w = 0; w < W.length; w++)
					if (W[w].type == "uxdesign#blur") {
						var n = W[w],
							b = n.params,
							Q = b.brightnessAmount;
						if (Q == null) Q = 0;
						Q = Math.abs(Q / 100);
						if ((n.visible == null || n.visible == !0) && b.backgroundEffect) A.opacity = Math.round(A.opacity * (Q + (1 - Q) * b.fillOpacity))
					}
			}
			if (J == "pattern" && R.pattern.meta.ux.uid == "") J = "none"
		}
		if (p == null && F.meta && F.meta.ux && F.meta.ux.clipPathResources) p = F.meta.ux.clipPathResources.children;
		if (s == "artboard" || s == "group") {
			if (p) {
				var _ = p[0],
					L = _.shape,
					m = L != null && L.type == "rect" && L.width * L.height > 1e6;
				if (_.type != "text" && !m) {
					var U = z.FB(_.transform);
					U.nJ();
					var I = v.clone();
					I.concat(U);
					A.add.vmsk = new h.iO;
					A.add.vmsk.b = z.Hy(L);
					I = I.clone();
					I.nJ();
					H.V.G5(A.add.vmsk.b, I);
					A._V(P)
				} else if (!m) alert("Clipping by text has been ignored")
			}
			A.add.lsct = gr.lw;
			A.sW = "pass";
			A.ix = 24;
			if (F.visible != null) A.vR(F.visible);
			P.r.push(P.Px());
			var c = t.children,
				u = R;
			if (u) u = u.color;
			if (u) u = u.value;
			if (R) {
				if (s == "artboard" && J == "solid") {
					A.BE(new ev(0, 0, 10, 10));
					A.add.artb.Clr = {
						t: "Objc",
						v: H.j.$H({
							U: u.r,
							S: u.g,
							i: u.b
						})
					};
					A.add.artb.artboardBackgroundType = {
						t: "long",
						v: 4
					}
				} else {
					var a = P.an();
					a.uf("BACKGROUND");
					a.ix |= 16;
					a.add.vstk = JSON.parse(JSON.stringify(ce.bW.default));
					a.add.vmsk = new h.iO;
					a.add.vmsk.b = z.Hy({
						type: "rect",
						x: y.x,
						y: y.y,
						width: y.Z,
						height: y.h
					});
					z.ku(R, J, v, y, y, a, P, X, Y);
					a._V(P);
					P.r.push(a)
				}
			}
			for (var w = 0; w < c.length; w++) {
				h1.xf(c[w], P, v, X, Y, y)
			}
		} else if (s == "shape" && F.shape.type == "rect" && (F.shape.r == null || F.shape.r == 0) && J == "pattern" && Math.abs(F.shape.width / F.shape.height - R.pattern.width / R.pattern.height) < .01) {
			var N = R.pattern,
				V = N.meta.ux,
				M = V.uid,
				O = Y["resources/" + M];
			if (O == null) {
				console.log(N);
				return
			}
			var K = P.f6(O, A.getName(), 0, 0);
			K.ix = A.ix;
			K.opacity = A.opacity;
			A = K;
			var j = H.D.z0(new ev(0, 0, N.width, N.height)).d,
				$ = new cu;
			$.scale(N.width / F.shape.width, N.height / F.shape.height);
			if (V.offsetX) $.translate(-V.offsetX * N.width, 0);
			if (V.offsetY) $.translate(0, -V.offsetY * N.height);
			v.concat($);
			v.nJ();
			H.D.O(j, v, j);
			A.add.SoLd.Trnf = B.X.uE(j);
			A.add.SoLd.nonAffineTransform = B.X.uE(j);
			A.Gy(P, !1)
		} else if (s == "shape") {
			A.ix |= 16;
			A.add.vstk = JSON.parse(JSON.stringify(ce.bW.default));
			A.add.vmsk = new h.iO;
			A.add.vmsk.b = z.Hy(t);
			var x = H.V.ue(A.add.vmsk.b, null),
				I = v.clone();
			I.nJ();
			H.V.G5(A.add.vmsk.b, I);
			var g = H.V.ue(A.add.vmsk.b, null);
			if (q == "none") {} else {
				var T = D.color.value,
					E, a9;
				E = "SoFi";
				var ez = JSON.parse(ce.IW[ce.order.indexOf("SoFi")]);
				a9 = {
					t: "Objc",
					v: ez
				};
				a9.v.Clr.v = H.j.$H({
					U: T.r,
					S: T.g,
					i: T.b
				});
				var bN = D.align,
					cg = D.cap;
				if (bN == null) bN = "center";
				var d8 = A.add.vstk;
				d8.strokeEnabled.v = !0;
				d8.strokeStyleLineWidth.v.val = D.width;
				if (bN) d8.strokeStyleLineAlignment.v.strokeStyleLineAlignment = ce.bW.Ph[["inside", "center", "outside"].indexOf(bN)];
				if (cg) d8.strokeStyleLineCapType.v.strokeStyleLineCapType = ce.bW.Bb[["butt", "round", "square"].indexOf(cg)];
				var C = ["SoFi", "GrFl", "patternFill"].indexOf(E),
					S = [ce.QB, ce.Zt, ce.QZ][C];
				d8.strokeStyleContent.v = {
					classID: ce.bW.bl[0]
				};
				var g7 = d8.strokeStyleContent.v = {
					classID: ce.bW.bl[C]
				};
				for (var w = 0; w < S.length; w++) g7[S[w]] = a9.v[S[w]]
			}
			if (W)
				for (var w = 0; w < W.length; w++)
					if (W[w].type == "uxdesign#blur" && W[w].visible) {
						var g_ = W[w];
						A.add.vmsk.bM = g_.params.blurAmount
					} z.ku(R, J, v, x, g, A, P, X, Y);
			A._V(P)
		} else if (s == "text" && F.text) {
			var fw = F.text,
				dT = fw.frame,
				g4 = d.font,
				bB = d.textAttributes,
				U = v.clone(),
				i4 = 0;
			U.nJ();
			A.add.lnsr = "rend";
			A.add.TySh = bt.T_(0, 0);
			A.add.TySh.xa = new ev(0, 0, 100, 100);
			A.add.TySh.O = U;
			var d1 = A.add.TySh.MF,
				f_ = fw.rawText.replace(/\r/g, "\n").replace(/\u000b/g, "\n");
			bt.v$(d1, 0, f_);
			if (f_ != "") {
				var g$ = bt.lW(d1, 0, 1),
					eT = g4.postscriptName;
				if (eT == null) eT = g4.family;
				bt.oi(g$, eT);
				g$.dS.FontSize = Math.round(g4.size);
				if (R) {
					var T = R.color.value;
					g$.dS.FillColor = {
						Type: 1,
						Values: [1, T.r / 255, T.g / 255, T.b / 255]
					}
				}
				if (bB) {
					if (bB.paragraphAlign) g$.eS.Justification = ["left", "right", "center"].indexOf(bB.paragraphAlign);
					if (bB.letterSpacing) g$.dS.Tracking = Math.round(bB.letterSpacing);
					if (bB.lineHeight) {
						g$.dS.AutoLeading = !1;
						g$.dS.Leading = Math.round(bB.lineHeight)
					}
				}
				bt.Ji(d1, 0, f_.length, g$)
			}
			var dz = F.meta.ux.rangedStyles;
			if (dz)
				for (var w = 0; w < dz.length; w++) {
					var t = dz[w],
						fy = Math.min(t.length, f_.length - i4),
						g$ = bt.lW(d1, i4, i4 + fy),
						eT = t.postscriptName;
					if (eT == null) eT = t.family;
					if (eT != null) bt.oi(g$, eT);
					var cN = t.textScript,
						fP = t.underline,
						du = t.fontSize,
						n = t.fill,
						ea = t.textTransform;
					if (cN && cN != "none") g$.dS.FontBaseline = cN == "superscript" ? 1 : 2;
					if (fP != null) g$.dS.Underline = fP;
					if (du != null) g$.dS.FontSize = Math.round(du);
					if (ea != null) g$.dS.FontCaps = ea == "uppercase" ? 2 : 0;
					if (n != null) {
						var cF = n.value;
						g$.dS.FillColor = {
							Type: 1,
							Values: [1, (cF >>> 16 & 255) / 255, (cF >>> 8 & 255) / 255, (cF >>> 0 & 255) / 255]
						}
					}
					bt.Ji(d1, i4, i4 + fy, g$);
					i4 += fy
				}
			if (dT.type == "area") {
				bt.E5(d1, 1);
				bt.Z1(d1, [0, 0, dT.width, dT.height])
			}
		} else console.log(s, F);
		P.r.push(A)
	};
	h1.Hy = function (F) {
		var P = F.type,
			o = [{
				type: 6
			}, {
				type: 8,
				all: 0
			}];
		if (P == "rect") {
			var X = F.r,
				Y = F.x,
				y = F.y,
				z = F.width,
				s = F.height;
			if (X == null) o = H.V.Ny.Rect(Y, y, z, s, 0);
			else o = o.concat([{
				type: 0,
				IO: 1,
				length: 8,
				Oj: 0,
				UB: 0,
				yU: 1
			}]).concat(H.V.a9([Y, y, Y + z, y, Y + z, y + s, Y, y + s], X, !1))
		} else if (P == "circle") {
			var X = F.r;
			o = H.V.Ny.VO(F.cx - X, F.cy - X, 2 * X, 2 * X)
		} else if (P == "ellipse") {
			var t = F.rx,
				d = F.ry;
			o = H.V.Ny.VO(F.cx - t, F.cy - d, 2 * t, 2 * d)
		} else if (P == "path" || P == "compound") {
			var U = Typr.U.SVGToPath(F.path);
			o = H.D.sb({
				W: U.cmds,
				d: U.crds
			}, !1)
		} else if (P == "line") {
			var v = F.x1,
				A = F.x2,
				Z = F.y1,
				D = F.y2;
			o = o.concat([{
				type: 0,
				IO: 1,
				length: 2,
				Oj: 0,
				UB: 0,
				yU: 1
			}]).concat(H.V.a9([v, Z, A, D], 0, !0))
		} else if (P == "polygon") {
			var q = F.points,
				R = [];
			for (var w = 0; w < q.length; w++) R.push(q[w].x, q[w].y);
			o = o.concat(H.V.Ny.JF(R, 0, !1).slice(2))
		} else console.log(P, F);
		return o
	};
	h1.acZ = function (F) {
		var P = JSON.parse(ce.default);
		for (var w = 0; w < ce.order.length; w++) P[ce.og[w]] = {
			t: "VlLs",
			v: []
		};
		for (var w = 0; w < F.length; w++) {
			var o = F[w],
				X = o.type,
				Y = o.params,
				y = o.visible;
			if (X == "dropShadow") {
				var z = ce.og[ce.order.indexOf("DrSh")],
					s = JSON.parse(ce.IW[ce.order.indexOf("DrSh")]);
				P[z].v.unshift({
					t: "Objc",
					v: s
				});
				var t = Y.dropShadows;
				if (t.length != 1) throw "e";
				var d = t[w],
					U = d.color,
					v = U.value,
					A = d.dx,
					Z = d.dy;
				s.Clr.v = H.j.$H({
					U: v.r,
					S: v.g,
					i: v.b
				});
				s.Opct.v.val = Math.round((U.alpha != null ? U.alpha : 1) * 100);
				s.uglg.v = !1;
				s.enab.v = y != null ? y : !0;
				s.lagl.v.val = Math.round(180 / Math.PI * Math.atan2(Z, -A));
				s.Dstn.v.val = Math.round(Math.sqrt(A * A + Z * Z));
				s.blur.v.val = Math.round(d.r * 2.3)
			}
		}
		return P
	};
	h1.ku = function (F, P, o, X, Y, y, z, s, t) {
		var d = h1;
		if (P == "none") {
			y.add.vstk.fillEnabled.v = !1;
			y.add.SoCo = {
				classID: "null",
				Clr: {
					t: "Objc",
					v: H.j.$H({
						U: 0,
						S: 0,
						i: 0
					})
				}
			}
		} else {
			var U, v, A;
			if (P == "solid") {
				var Z = F.color.value;
				U = "SoCo";
				v = ce.QB;
				var D = JSON.parse(ce.IW[ce.order.indexOf("SoFi")]);
				A = {
					t: "Objc",
					v: D
				};
				A.v.Clr.v = H.j.$H({
					U: Z.r,
					S: Z.g,
					i: Z.b
				})
			} else if (P == "gradient") {
				U = "GdFl";
				v = ce.Zt;
				var D = JSON.parse(ce.IW[ce.order.indexOf("GrFl")]),
					q = D.Grad.v,
					n, b, Q;
				q.Intr.v = 0;
				var R = F[P],
					J = R.ref ? s.gradients[R.ref] : R.meta.ux.gradientResources,
					W = ["linear", "radial"].indexOf(J.type),
					p = J.stops;
				D.Type.v.GrdT = ["Lnr", "Rdl", "Angl"][W];
				if (W == 0) {
					var n = new aH(R.x1, R.y1),
						b = new aH(R.x2, R.y2);
					n.x = b.x + .5 * (n.x - b.x);
					n.y = b.y + .5 * (n.y - b.y)
				} else {
					var n = new aH(R.cx, R.cy),
						b = new aH(R.cx + R.r, R.cy)
				}
				Q = Y;
				if (R.units == "objectBoundingBox") {
					var _ = new cu(X.Z, 0, 0, X.h, X.x, X.y);
					n = _.aT(n);
					b = _.aT(b)
				}
				var _ = d.FB(R.transform);
				n = _.aT(n);
				b = _.aT(b);
				_ = o.clone();
				_.nJ();
				n = _.aT(n);
				b = _.aT(b);
				H.j.VB(n, b, Q, D);
				var L = [];
				for (var w = 0; w < p.length; w++) {
					var m = p[w],
						I = m.color,
						Z = I.value,
						c = I.alpha;
					if (c == null) c = 1;
					L.push([m.offset, [Z.r / 255, Z.g / 255, Z.b / 255], c])
				}
				H.j.nO(L, q);
				A = {
					t: "Objc",
					v: D
				}
			} else if (P == "pattern") {
				U = "PtFl";
				v = ce.QZ;
				var D = JSON.parse(ce.IW[ce.order.indexOf("patternFill")]),
					O, g = 1,
					T = 0,
					E = 0,
					a9 = 1;
				A = {
					t: "Objc",
					v: D
				};
				var u = F[P],
					a = u.meta.ux,
					N = a.uid,
					V = t["resources/" + N].buffer,
					M = em.Xh(V);
				if (z.o0[N]) O = z.o0[N];
				else {
					var K = new ev(0, 0, u.width, u.height),
						j;
					if (K.qr()) {
						K = new ev(0, 0, 1, 1);
						j = new ArrayBuffer(4)
					} else {
						var $ = em.$I(M);
						if ($.Vi) {
							var x = new c_;
							$.xo(V, x);
							j = x.lD().buffer
						} else j = $.xo(V)[0].data
					}
					O = {};
					O.id = c_.vs() + "-d71c-11e5-b1ae-a548a96e5f9f";
					O.name = "someImage";
					O.Jx = [new Uint8Array(j), K];
					z.e6(O);
					z.o0[N] = O
				}
				var K = O.Jx[1];
				D.Algn.v = !0;
				D.Ptrn.v.Idnt.v = O.id;
				if (a.scaleBehavior == "cover") {
					g = a9 * Math.max(Y.Z / K.Z, Y.h / K.h);
					var ez = g;
					if (a.scale != null) g *= a.scale;
					T = Y.x - (K.Z * g - Y.Z) / 2;
					E = Y.y - (K.h * g - Y.h) / 2;
					if (a.offsetX != null) T += a.offsetX * K.Z * ez;
					if (a.offsetY != null) E += a.offsetY * K.h * ez
				} else if (a.scaleBehavior == "fill") {
					g = a9 * Math.min(Y.Z, Y.h) / Math.max(K.Z, K.h);
					T = Y.x - (K.Z * g - Y.Z) / 2;
					E = Y.y - (K.h * g - Y.h) / 2
				} else throw "Unknown scale behaviour";
				D.Scl.v.val = 100 * g;
				D.phase.v.Hrzn.v = Math.round(T);
				D.phase.v.Vrtc.v = Math.round(E)
			} else console.log(P);
			if (U != null) {
				y.add[U] = {
					classID: "null"
				};
				for (var w = 0; w < v.length; w++) {
					var bN = v[w];
					y.add[U][bN] = A.v[bN]
				}
			}
		}
	};

	function e$() {}
	e$.ee = function (F, P, o) {
		F = new Uint8Array(F);
		var X = r.bc(F, 0, F.length),
			Y = new DOMParser,
			y = Y.parseFromString(X, "image/svg+xml"),
			z = y.getElementsByTagName("style")[0],
			Z = 1;
		if (z) z = Typr.U.SVG.cssMap(z.textContent);
		else z = {};
		var s = y.firstChild;
		while (s.tagName != "svg") s = s.nextSibling;
		var t = new ev(0, 0, 100, 100),
			d = s.getAttribute("viewBox"),
			U = s.getAttribute("width"),
			v = s.getAttribute("height");
		if (d) {
			var A = e$.js(d);
			t.x = A[0];
			t.y = A[1];
			t.Z = A[2];
			t.h = A[3]
		} else if (U != null || v != null) {
			t.Z = U != null ? parseFloat(U) : parseFloat(v);
			t.h = v != null ? parseFloat(v) : parseFloat(U)
		}
		t = H.D.pd(t);
		while (o && Math.max(t.Z * Z, t.h * Z) < Math.max(o[0], o[1])) Z++;
		P.Lt = !0;
		P.Z = t.Z * Z;
		P.h = t.h * Z;
		P.buffer = H.R(t.M() * 4 * Z * Z);
		var D = new cu(Z, 0, 0, Z, -t.x, -t.y),
			q = {
				rB: e$.YX(s),
				ms: z
			};
		e$.aX(y, s.children, P, D, q, new cu, 0);
		if (P.r.length == 0) {
			var R = P.an();
			R.uf("Layer");
			P.r.push(R)
		}
	};
	e$.js = function (F) {
		var P = " ";
		if (F.indexOf(",") != -1) P = ",";
		return F.split(P).map(parseFloat)
	};
	e$.aX = function (F, P, o, X, Y, y, z) {
		var s = e$,
			t = ["display", "opacity", "fill-opacity"];
		for (var d = 0; d < P.length; d++) {
			var U = P[d],
				v = U.tagName,
				A = U.getAttribute("id"),
				Z = s.YX(U, Y.ms),
				q = 13,
				n = 1,
				_ = "clip-path",
				L = null;
			for (var D in Y.rB)
				if (t.indexOf(D) == -1 && Z[D] == null) Z[D] = Y.rB[D];
			if (Z["font-size"]) q = s.os(Z["font-size"], q);
			if (U.getAttribute("dx")) X.PV += s.os(U.getAttribute("dx"), q);
			if (U.getAttribute("dy")) X.ye += s.os(U.getAttribute("dy"), q);
			var R = s.Ep(U);
			R.concat(X);
			var J = U.getAttribute("visibility"),
				W = Z.display,
				p = o.an();
			if (J == "hidden" || W == "none") p.vR(!1);
			p.uf(A != null ? A.split(":::")[0] : "Layer");
			if (Z.opacity) n *= parseFloat(Z.opacity);
			if (Z["fill-opacity"]) {
				var b = parseFloat(Z["fill-opacity"]);
				if (b != 0) n *= b
			}
			p.opacity = Math.round(255 * n);
			if (Z["mix-blend-mode"]) {
				var Q = aK.Xf.indexOf(Z["mix-blend-mode"]);
				if (Q != -1) p.sW = aK.YA[Q]
			}
			if (U.getAttribute(_) == null) _ = "mask";
			if (U.getAttribute(_) != null) {
				var m = U.getAttribute(_);
				m = m.slice(4, m.length - 1);
				var I = F.getElementById(m.slice(1));
				if (I) {
					var c = I.children;
					L = o.an();
					L.uf("Clip-Path" + (A ? ": " + A : ""));
					L.add.lsct = z < 2 ? gr.lw : gr.kE;
					L.sW = "pass";
					L.ix = 24;
					var u = L.add.vmsk = new h.iO;
					o.r.push(o.Px());
					var a = [];
					if (I.getAttribute(_)) {
						var m = I.getAttribute(_);
						m = m.slice(4, m.length - 1);
						a = F.getElementById(m.slice(1)).children
					}
					for (var w = 0; w < c.length; w++) {
						var N = s.Ep(c[w]);
						N.concat(R);
						var V = s.Hy(F, c[w], !1).slice(2);
						H.V.G5(V, N);
						u.b = u.b.concat(V)
					}
					for (var w = 0; w < a.length; w++) {
						var N = s.Ep(c[w]);
						N.concat(R);
						var V = s.Hy(F, a[w], !1).slice(2);
						for (var M = 0; M < V.length; M++)
							if (V[w].IO != null) V[w].IO = 3;
						H.V.G5(V, N);
						u.b = u.b.concat(V)
					}
					L.h7();
					L._V();
					z++
				}
			}
			if (v == "g" || v == "a" || v == "svg" || v == "switch" || (v == "text" || v == "textPath") && U.children.length > 0) {
				if (v == "text") y = s.Tj(U, y);
				var O = U.getAttribute("viewBox"),
					K = U.getAttribute("width"),
					j = U.getAttribute("height");
				if (O && K && j) {
					var $ = e$.js(O),
						x = s.Tj(U),
						g = new cu;
					g.translate(-$[0], -$[1]);
					g.scale(parseFloat(K) / $[2], parseFloat(j) / $[3]);
					g.translate(x.PV, x.ye);
					g.concat(R);
					R = g
				}
				var T = U.children.length,
					E = Y.rB;
				Y.rB = Z;
				var a9 = v != "text" && v != "textPath" || T > 1;
				if (a9) {
					var ez = p.UQ();
					p.add.lsct = z < 2 && ez && (A == null || !A.endsWith(":::")) ? gr.lw : gr.kE;
					p.sW = "pass";
					p.ix = 24;
					p.vR(ez);
					o.r.push(o.Px())
				}
				s.aX(F, U.children, o, R, Y, y, z + 1);
				if (a9) o.r.push(p);
				Y.rB = E
			} else if (v == "use") {
				var g = s.Tj(U);
				g.concat(R);
				var bN = s.W5(U),
					cg = F.getElementById(bN.slice(1)),
					E = Y.rB;
				Y.rB = Z;
				s.aX(F, [cg], o, g, Y, y, z + 1);
				Y.rB = E
			} else if (v == "path" || v == "rect" || v == "circle" || v == "ellipse" || v == "polygon" || v == "polyline" || v == "line") {
				p.ix |= 16;
				p.add.vmsk = new h.iO;
				p.add.vstk = JSON.parse(JSON.stringify(ce.bW.default));
				p.add.vstk.strokeEnabled.v = !1;
				var d8 = p.add.vstk,
					u = p.add.vmsk;
				u.b = s.Hy(F, U, Z["fill-rule"] == "evenodd");
				H.V.G5(u.b, R);
				var C = H.V.ue(u.b),
					S = Z.stroke,
					g7 = Z["stroke-width"],
					g_ = Z["stroke-dasharray"],
					fw = Z.fill,
					dT = Z["stroke-linejoin"],
					g4 = Z["stroke-linecap"],
					bB = Z["paint-order"];
				if (S == null || S == "none" || S == "null") {} else {
					var d1 = s.zu(F, S, R, C),
						f_ = ["SoFi", "GrFl", "patternFill"].indexOf(d1.type),
						g$ = d1.C.v.Opct.v,
						i4 = 1;
					if (g$.val != 100) {
						p.opacity = Math.round(p.opacity * g$.val / 100);
						g$.val = 100
					}
					var eT = [ce.QB, ce.Zt, ce.QZ][f_],
						dz = d8.strokeStyleContent.v = {
							classID: ce.bW.bl[f_]
						};
					for (var w = 0; w < eT.length; w++) dz[eT[w]] = d1.C.v[eT[w]];
					g7 = g7 ? parseFloat(g7) : 1;
					if (bB && bB.replace(/\s\s+/g, " ").slice(0, 11) == "stroke fill") {
						i4 = 2;
						g7 /= 2
					}
					d8.strokeEnabled.v = !0;
					if (dT) d8.strokeStyleLineJoinType.v.strokeStyleLineJoinType = ce.bW.join[["miter", "round", "bevel"].indexOf(dT)];
					if (g4) d8.strokeStyleLineCapType.v.strokeStyleLineCapType = ce.bW.Bb[["butt", "round", "square"].indexOf(g4)];
					d8.strokeStyleLineWidth.v.val = g7 * B.X.d3(R);
					d8.strokeStyleLineAlignment.v.strokeStyleLineAlignment = ce.bW.Ph[i4];
					d8.strokeStyleOpacity.v.val = 100 * (Z["stroke-opacity"] ? parseFloat(Z["stroke-opacity"]) : 1);
					if (g_ != null && g_ != "none") d8.strokeStyleLineDashSet.v = cr.oB(g_.split(",").map(parseFloat), 1 / g7)
				}
				if (fw == "none" || Z["fill-opacity"] && parseFloat(Z["fill-opacity"]) == 0) {
					p.add.vstk.fillEnabled.v = !1;
					p.add.SoCo = {
						classID: "null",
						Clr: {
							t: "Objc",
							v: H.j.$H({
								U: 0,
								S: 0,
								i: 0
							})
						}
					}
				} else {
					var d1 = s.zu(F, fw, R, C),
						fy = null,
						cN = null;
					if (d1.type == "SoFi") {
						fy = "SoCo";
						cN = ce.QB
					}
					if (d1.type == "GrFl") {
						fy = "GdFl";
						cN = ce.Zt
					}
					if (d1.type == "patternFill") {
						fy = "PtFl";
						cN = ce.QZ
					}
					if (fy != null) {
						p.add[fy] = {
							classID: "null"
						};
						for (var w = 0; w < cN.length; w++) {
							var D = cN[w];
							p.add[fy][D] = d1.C.v[D]
						}
					}
				}
				if (Z.filter && Z.filter != "none") {
					var fP = Z.filter;
					fP = fP.slice(5, fP.length - 1);
					if (F.getElementById(fP)) {
						var du = F.getElementById(fP).children[0];
						if (du.tagName == "feGaussianBlur") {
							p.add.vmsk.bM = parseFloat(du.getAttribute("stdDeviation")) * B.X.d3(R)
						}
					}
				}
				p.h7();
				p._V(o);
				o.r.push(p)
			} else if ((v == "text" || v == "tspan") && U.textContent != "") {
				y = s.Tj(U, y);
				var g = y.clone(),
					dh = 0;
				g.concat(R);
				if (U.children.length > 0) {
					var ea = s.YX(U.children[0], Y.ms);
					for (var D in ea)
						if (t.indexOf(D) == -1) Z[D] = ea[D]
				}
				var cF = Z["xml:space"],
					gB = U.textContent;
				if (cF == "preserve") gB = gB.replace(/\t/g, " ").replace(/\n/g, " ");
				if (A == null) p.uf(gB);
				p.add.lnsr = "rend";
				p.add.TySh = bt.T_(0, 0);
				p.add.TySh.xa = new ev(0, 0, 100, 100);
				p.add.TySh.O = g.clone();
				var bp = p.add.TySh.MF;
				bt.v$(bp, 0, gB);
				var fw = Z.fill,
					hf = Z["font-weight"],
					bq = Z["font-family"],
					eY = Z["text-decoration"],
					S = Z.stroke,
					g7 = Z["stroke-width"],
					f1 = Z["dominant-baseline"];
				if (f1 == "text-before-edge") dh = q;
				else if (f1 == "middle") dh = q / 2;
				else if (f1 == "hanging") dh = q;
				if (dh != 0) p.add.TySh.O.translate(0, dh);
				var hn = bt.lW(bp, 0, 1);
				if (fw && fw != "none") {
					var e7 = CSS.HD(fw);
					hn.dS.FillColor = {
						Type: 1,
						Values: [1, e7.U / 255, e7.S / 255, e7.i / 255]
					}
				}
				if (eY == "underline") hn.dS.Underline = !0;
				hn.dS.FontSize = Math.round(q);
				bt.oi(hn, "LiberationSans");
				if (hf == "bold") bt.oi(hn, "LiberationSans-Bold");
				if (bq) {
					bq = bq.split(",")[0].trim();
					if (bq[0] == "\"") bq = bq.slice(1);
					if (bq[bq.length - 1] == "\"") bq = bq.slice(0, bq.length - 1);
					var ed = bq + ":" + (hf ? hf : "normal"),
						hP = {
							"'DejaVu Sans':normal": "AlibabaPuHuiTi-Regular",
							"'DejaVu Sans':bold": "AlibabaPuHuiTi-Bold",
							"'Nimbus Sans L':normal": "NimbusSanL-Reg",
							"'Nimbus Sans L':bold": "NimbusSanL-Bol",
							"Libre Franklin:300": "LibreFranklin-Light",
							"Libre Franklin:400": "LibreFranklin-Regular",
							"Libre Franklin:500": "LibreFranklin-Medium",
							"Libre Franklin:600": "LibreFranklin-SemiBold",
							"Libre Franklin:700": "LibreFranklin-Bold"
						};
					if (hP[ed]) bt.oi(hn, hP[ed]);
					else bt.oi(hn, bq)
				}
				if (Z["text-anchor"]) hn.eS.Justification = ["start", "end", "middle"].indexOf(Z["text-anchor"]);
				bt.Ji(bp, 0, gB.length, hn);
				if (S == null || S == "none") {} else {
					var ck = JSON.parse(ce.IW[ce.order.indexOf("FrFX")]);
					ck.Clr.v = H.j.$H(CSS.HD(S));
					ck.Sz.v.val = Math.round(parseFloat(g7) * B.X.d3(g));
					var ds = JSON.parse(ce.default);
					for (var w = 0; w < ce.order.length; w++) ds[ce.og[w]] = {
						t: "VlLs",
						v: []
					};
					ds.frameFXMulti.v.push({
						t: "Objc",
						v: ck
					});
					p.add.lmfx = ds
				}
				o.r.push(p)
			} else if (v == "image") {
				var bN = s.W5(U);
				if (bN.slice(0, 4) == "data") {
					var hB = em.ri(bN),
						bd = hB,
						d0 = o.f6(bd, p.getName(), 0, 0);
					d0.ix = p.ix;
					p = d0;
					var d$ = p.rect.clone();
					d$.x = d$.y = 0;
					var ap = U.getAttribute("width"),
						dE = U.getAttribute("height");
					if (ap) d$.Z = parseFloat(ap);
					if (dE) d$.h = parseFloat(dE);
					var fv = s.Tj(U);
					fv.concat(R);
					var c8 = H.D.z0(d$).d;
					H.D.O(c8, fv, c8);
					p.add.SoLd.Trnf = B.X.uE(c8);
					p.add.SoLd.nonAffineTransform = B.X.uE(c8);
					p.Gy(o, !1);
					o.r.push(p)
				}
			} else console.log("unknown tag: " + v, U.children.length, U.textContent.length);
			if (L != null) {
				o.r.push(L);
				z--
			}
		}
	};
	e$.Hy = function (F, P, o) {
		var X = e$,
			Y = [{
				type: 6
			}, {
				type: 8,
				all: 0
			}],
			y = P.tagName;
		if (y == "use") {
			var z = X.W5(P),
				s = F.getElementById(z.slice(1)),
				t = new cu;
			if (s.tagName != "rect") t = X.Tj(s);
			t.concat(X.Ep(s));
			Y = X.Hy(F, s, o);
			H.V.G5(Y, t)
		} else if (y == "path") {
			var d = P.getAttribute("d");
			if (d == null) return Y;
			var U = Typr.U.SVGToPath(d);
			Y = H.D.sb({
				d: U.crds,
				W: U.cmds
			}, o)
		} else if (y == "rect") {
			var v = P.getAttribute("rx"),
				A = X.Tj(P);
			Y = H.V.Ny.Rect(A.PV, A.ye, parseFloat(P.getAttribute("width")), parseFloat(P.getAttribute("height")), v ? parseFloat(v) : 0)
		} else if (y == "circle" || y == "ellipse") {
			var Z = [0, 0, 0, 0],
				D = ["cx", "cy", "rx", "ry", "r"];
			for (var w = 0; w < 5; w++) {
				var q = P.getAttribute(D[w]);
				if (q) {
					q = parseFloat(q);
					if (w < 4) Z[w] = q;
					else Z[2] = Z[3] = q
				}
			}
			Y = H.V.Ny.VO(Z[0] - Z[2], Z[1] - Z[3], 2 * Z[2], 2 * Z[3])
		} else if (y == "polygon" || y == "polyline" || y == "line") {
			var R;
			if (y == "line") R = [P.getAttribute("x1"), P.getAttribute("y1"), P.getAttribute("x2"), P.getAttribute("y2")].map(parseFloat);
			else R = P.getAttribute("points").trim().replace(/\s\s+/g, " ").split(",").join(" ").split(" ").map(parseFloat);
			Y = H.V.Ny.JF(R, 0, y != "polygon")
		}
		return Y
	};
	e$.os = function (F, P) {
		if (F.charAt(F.length - 1) == "m") return P * parseFloat(F.slice(0, F.length - 2));
		else return parseFloat(F)
	};
	e$.zu = function (F, P, o, X) {
		var Y, y, z = e$,
			s = JSON.parse(ce.IW[ce.order.indexOf("SoFi")]),
			t = P != null ? P.indexOf("(") : -1;
		if (t != -1) {
			var d = P.indexOf(")"),
				U = P.slice(0, t).trim(),
				v = P.slice(t + 1, d).trim();
			if (v.charAt(0) == "'") v = v.slice(1, v.length - 1);
			if (U == "url") {
				if (v.charAt(0) == "#") {
					var A = F.getElementById(v.slice(1));
					if (A && A.tagName.toLowerCase().endsWith("gradient")) {
						var Z = z.Qd(F, A, o, X);
						Y = "GrFl";
						y = {
							t: "Objc",
							v: Z
						}
					} else {
						Y = "SoFi";
						y = {
							t: "Objc",
							v: s
						}
					}
				} else console.log("unknown url", v)
			} else if (U == "rgb" || U == "rgba") {
				Y = "SoFi";
				y = {
					t: "Objc",
					v: s
				};
				y.v.Clr.v = H.j.$H(CSS.HD(P));
				if (U == "rgba") y.v.Opct.v.val = Math.round(100 * parseFloat(P.split(",").pop()))
			} else console.log("unknown fill", P)
		} else {
			Y = "SoFi";
			y = {
				t: "Objc",
				v: s
			};
			y.v.Clr.v = H.j.$H(CSS.HD(P))
		}
		return {
			type: Y,
			C: y
		}
	};
	e$.Ep = function (F) {
		var P = new cu,
			o = F.getAttribute("transform");
		if (o) P = e$.IX(o);
		var X = F.getAttribute("style");
		if (X != null) {
			var Y = {};
			e$.WA(Y, X, ["transform"]);
			X = Y.transform;
			if (X) P.concat(e$.IX(X))
		}
		return P
	};
	e$.Tj = function (F, P) {
		var o = new cu,
			X = F.getAttribute("x"),
			y = F.getAttribute("y");
		if (X) o.PV = parseFloat(X);
		else if (P) o.PV = P.PV;
		if (y) o.ye = parseFloat(y);
		else if (P) o.ye = P.ye;
		return o
	};
	e$.IX = function (F) {
		var P = Typr.U.SVG.readTrnf(F);
		return new cu(P[0], P[1], P[2], P[3], P[4], P[5])
	};
	e$.YX = function (F, P) {
		var o = {},
			X = "fill-rule fill stroke stroke-width stroke-dasharray stroke-opacity stroke-linejoin stroke-linecap font-size font-weight font-family text-decoration text-anchor dominant-baseline stop-color stop-opacity filter display opacity fill-opacity paint-order mix-blend-mode xml:space".split(" ");
		for (var w = 0; w < X.length; w++) {
			var Y = F.getAttribute(X[w]);
			if (Y != null && Y != "inherit") o[X[w]] = Y
		}
		var y = F.getAttribute("class");
		if (P != null && y != null && P["." + y] != null) e$.WA(o, P["." + y], X);
		var z = F.getAttribute("id");
		if (P != null && z != null && P["#" + z] != null) e$.WA(o, P["#" + z], X);
		var s = F.getAttribute("style");
		if (s != null) e$.WA(o, s, X);
		return o
	};
	e$.WA = function (F, P, o) {
		P = P.trim().split(";");
		for (var w = 0; w < P.length; w++) {
			var X = P[w].split(":"),
				Y = X[0] ? X[0].trim() : "",
				y = X[1] ? X[1].trim() : "";
			for (var z = 0; z < o.length; z++)
				if (Y == o[z] && y != "inherit") F[o[z]] = y
		}
	};
	e$.W5 = function (F) {
		var P = F.getAttribute("xlink:href");
		if (P == null) P = F.getAttribute("href");
		return P
	};
	e$.Qd = function (F, P, o, X) {
		var Y = e$,
			y = new cu,
			z = P.getAttribute("gradientTransform");
		if (z) y = Y.IX(z);
		y.concat(o);
		var s = JSON.parse(ce.IW[ce.order.indexOf("GrFl")]),
			t = s.Grad.v;
		t.Intr.v = 0;
		var d = P.tagName,
			U = new aH(0, 0),
			v = new aH(X.Z, 0);
		if (d == "linearGradient") {
			s.Type.v.GrdT = "Lnr";
			if (P.getAttribute("x1")) U.x = parseFloat(P.getAttribute("x1"));
			if (P.getAttribute("y1")) U.y = parseFloat(P.getAttribute("y1"));
			if (P.getAttribute("x2")) v.x = parseFloat(P.getAttribute("x2"));
			if (P.getAttribute("y2")) v.y = parseFloat(P.getAttribute("y2"));
			U.x = v.x + .5 * (U.x - v.x);
			U.y = v.y + .5 * (U.y - v.y)
		}
		if (d == "radialGradient") {
			s.Type.v.GrdT = "Rdl";
			if (P.getAttribute("cx")) U.x = parseFloat(P.getAttribute("cx"));
			if (P.getAttribute("cy")) U.y = parseFloat(P.getAttribute("cy"));
			v.Oh(U.x, U.y);
			if (P.getAttribute("r")) v.x += parseFloat(P.getAttribute("r"))
		}
		if (P.getAttribute("gradientUnits") == "userSpaceOnUse") {
			U = y.aT(U);
			v = y.aT(v)
		} else {
			U.x = X.x + U.x * X.Z;
			U.y = X.y + U.y * X.h;
			v.x = X.x + v.x * X.Z;
			v.y = X.y + v.y * X.h
		}
		H.j.VB(U, v, X, s);
		var A = P.children;
		if (A.length == 0) {
			var Z = Y.W5(P);
			if (Z == null) throw "gradient has no stops";
			var D = F.getElementById(Z.slice(1));
			if (D == null) {
				console.log(Z.slice(1));
				throw "e"
			}
			var q = Y.Qd(F, D, y, X);
			s.Grad = q.Grad
		} else {
			var R = [];
			for (var w = 0; w < A.length; w++) {
				var J = A[w],
					W = Y.YX(J),
					p = W["stop-color"],
					n = W["stop-opacity"],
					b = J.getAttribute("offset");
				if (p == null) p = "#000000";
				if (n == null) n = "1";
				var Q = b ? parseFloat(b) : 0;
				p = CSS.HD(p);
				R.push([Q, [p.U / 255, p.S / 255, p.i / 255], parseFloat(n)])
			}
			H.j.nO(R, t)
		}
		return s
	};
	e$.qx = function (F, P, o) {
		var X = [],
			Y = e$;
		Y.kA = P.pu ? "\t" : "";
		var y = P.ag3,
			z = P.aaW;
		X.push("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 " + F.Z + " " + F.h + "\" width=\"" + y + "\" height=\"" + z + "\">");
		var s = {
			Ns: [],
			xX: [],
			YO: 0,
			PR: 0,
			Mk: 0,
			BB: {},
			pG: {},
			S5: 0,
			hI: {},
			iR: {},
			gw: 0,
			SN: []
		};
		e$.Vb(F, s, F.root.children, 1, P, o);
		if (s.Ns.length != 0) {
			X.push(Y.RC(1) + "<defs>");
			X = X.concat(s.Ns);
			X.push(Y.RC(1) + "</defs>")
		}
		X.push(Y.RC(1) + "<style>");
		X.push(Y.RC(2) + "tspan { white-space:pre }");
		for (var t in s.hI) X.push(Y.RC(2) + "." + t + " { " + s.hI[t] + " } ");
		X.push(Y.RC(1) + "</style>");
		X = X.concat(s.xX);
		X.push("</svg>");
		X = X.join(P.pu ? "\n" : "");
		var d = H.R(Math.round(X.length * 1.5)),
			U = r.vr(X, d, 0);
		if (Y.Wc) {
			console.log(Y.Wc);
			var v = "SVGParser.gen.db = [\n";
			for (var w = 0; w < Y.Wc.length; w++) {
				var A = Y.Wc[w];
				v += "{\n\tnam: \"" + A.st + "\",\n\tpts: [\n";
				for (var Z = 0; Z < A.A2.length; Z++) {
					var D = A.A2[Z];
					v += "\t\t[\"" + D[0] + "\", { cmds: " + JSON.stringify(D[1].W) + ", crds:" + JSON.stringify(D[1].d) + " } ]" + (Z == A.A2.length - 1 ? "" : ",") + "\n"
				}
				v += "\t]\n}" + (w == Y.Wc.length - 1 ? "" : ",") + "\n"
			}
			v += "]\n";
			console.log(v)
		}
		return d.buffer.slice(0, U)
	};
	e$.kA = "";
	e$.RC = function (e) {
		var F = "";
		for (var w = 0; w < e; w++) F += e$.kA;
		return F
	};
	e$.EE = function (e) {
		return "" + parseFloat(e.toFixed(3))
	};
	e$.Vb = function (F, P, o, X, Y, y) {
		var z = e$;
		for (var s = 0; s < o.length; s++) {
			var t = o[s].n,
				d = t.add.lsct,
				U = t.add.vmsk,
				v = t.add.vstk,
				A = t.add.TySh,
				Z = [];
			if (!Y.hidden && !t.UQ()) continue;
			var D = t.opacity / 255,
				q = t.add.iOpa ? t.add.iOpa / 255 : 1;
			if (D != 1) Z.push("opacity: " + z.EE(D));
			if (q != 1) Z.push("fill-opacity: " + z.EE(q));
			if (t.sW != "norm") {
				var R = aK.Xf[aK.YA.indexOf(t.sW)];
				if (R != null) Z.push("mix-blend-mode: " + R)
			}
			if (!t.UQ()) Z.push("display: none");
			var J = [],
				W = [],
				p = t.getName(),
				n = p.indexOf(" .");
			if (n != -1) {
				W.push(p.slice(n + 2));
				p = p.slice(0, n)
			}
			if (Y.names) J.push("id=\"" + z.dC(p) + "\"");
			var b = t.add.lmfx;
			if (b) b = b.solidFillMulti.v[0];
			if (b) b = b.v;
			if (b && !b.enab.v) b = null;
			if (t.fO()) {
				if (z.Wc && t.getName().split("-").length == 3) {
					z.Wc.push({
						st: t.getName(),
						lv: 0,
						A2: []
					})
				}
				if (U || t.add.artb) {
					var Q;
					if (U) Q = H.V.j3(U.b).Q7;
					else {
						var _ = t.sc(),
							L = H.D.z0(_);
						Q = Typr.U.pathToSVG({
							crds: L.d,
							cmds: L.W
						}, 2)
					}
					P.Mk++;
					J.push("clip-path=\"url(#cp" + P.Mk + ")\"");
					P.Ns.push(z.RC(2) + "<clipPath clipPathUnits=\"userSpaceOnUse\" id=\"cp" + P.Mk + "\">");
					P.Ns.push(z.RC(3) + "<path d=\"" + Q + "\" />");
					P.Ns.push(z.RC(2) + "</clipPath>")
				}
				if (Z.length != 0) J.push("style=\"" + Z.join(";") + "\"");
				P.xX.push(z.RC(X) + "<g " + z.lN(J, W) + ">");
				z.Vb(F, P, o[s].children, X + 1, Y, y);
				P.xX.push(z.RC(X) + "</g>")
			} else if (t.ws() && U == null) {
				var m = new ev(0, 0, F.Z, F.h);
				z.kz(Z, t.add, P, m);
				if (Z.length != 0) J.push("style=\"" + Z.join(";") + "\"");
				P.xX.push(z.RC(X) + "<rect width=\"" + F.Z + "\" height=\"" + F.h + "\" " + z.lN(J, W) + " />")
			} else if (U) {
				var m = H.V.ue(U.b),
					Q = H.V.j3(U.b);
				if (Q.RL != 0) {
					J.push("fill-rule=\"evenodd\"")
				}
				var I = Q.Q7;
				z.kz(Z, t.add, P, m);
				if (Z.length != 0) {
					var c = Z.join(";"),
						u = P.iR[c];
					if (u == null) {
						u = "shp" + P.gw;
						P.gw++;
						P.iR[c] = u;
						P.hI[u] = c
					}
					W.push(u)
				}
				P.xX.push(z.RC(X) + "<path " + z.lN(J, W) + " d=\"" + I + "\" />");
				if (z.Wc && z.Wc[z.Wc.length - 1]) {
					var a = H.D.xJ(U.b);
					a.d = a.d.map(Math.round);
					var N = z.Wc[z.Wc.length - 1];
					N.lv += JSON.stringify(a).length;
					N.A2.push([Z[0].split("#").pop(), a])
				}
			} else if (A && Y.am4) {
				var V = A.MF,
					M = new dc(V, y);
				if (b) J.push("fill=\"" + CSS.O4(b.Clr.v) + "\"");
				var O = dQ.Dz(M, A),
					K = H.D.X5(O);
				for (var j in K) {
					if (b == null) J.push("fill=\"" + j + "\"");
					var L = K[j],
						I = Typr.U.pathToSVG({
							crds: L.d,
							cmds: L.W
						}, 2);
					P.xX.push(z.RC(X) + "<path " + z.lN(J, W) + " d=\"" + I + "\" />");
					if (b == null) J.pop()
				}
			} else if (A && !Y.a8L) {
				var V = A.MF,
					$ = A.O.clone(),
					C = 0,
					S = 0;
				if (bt.AW(V) == 1) {
					var x = bt.lW(V, 0, 0).eS.Justification,
						g = 0,
						T = bt.dd(V)[2];
					if (x == 2) g = T / 2;
					if (x == 1) g = T;
					$.translate(g, 0)
				}
				Z.push("transform: " + z.kO($));
				var E = bt.jn(V),
					a9 = V.EngineDict.ParagraphRun,
					ez = a9.RunArray,
					bN = a9.RunLengthArray;
				if (Z.length != 0) J.push("style=\"" + Z.join(";") + "\"");
				P.xX.push(z.RC(X) + "<text " + z.lN(J, W) + " >");
				var cg = t.add.lmfx;
				if (cg) cg = cg.frameFXMulti.v[0];
				if (cg) cg = cg.v;
				var d8 = b ? CSS.O4(b.Clr.v) : null;
				for (var w = 0; w < ez.length; w++) {
					var g_ = [],
						fw = bN[w],
						dT = E.slice(C, C + fw - 1),
						g4 = bt.lW(V, C, C),
						bB = g4.Dm[g4.dS.Font].Name;
					if (P.SN.indexOf(bB) == -1) P.SN.push(bB);
					CSS.yS(g_, g4, A.O, !0, !0, d8);
					if (cg) {
						Z.push("stroke: " + CSS.O4(cg.Clr.v));
						Z.push("stroke-width: " + cg.Sz.v.val)
					}
					var d1 = g4.dS.FontSize * 1.12;
					if (w == 0) d1 = bt.AW(V) == 0 ? 0 : g4.dS.FontSize;
					S += d1;
					if (dT != "") {
						var c = g_.join(";"),
							u = P.iR[c],
							g$ = "";
						if (u == null) {
							u = "txt" + P.gw;
							P.gw++;
							P.iR[c] = u;
							P.hI[u] = c
						}
						var f_ = g4.dS.Tracking;
						if (f_ != null && f_ != 0) {
							f_ = Math.round(f_ * g4.dS.FontSize / 1e3);
							g$ = " dx=\"0";
							for (var eT = 1; eT < dT.length; eT++) g$ += " " + f_;
							g$ += "\" "
						}
						P.xX.push(z.RC(X + 1) + "<tspan x=\"0\" y=\"" + z.EE(S) + "\" class=\"" + u + "\"" + g$ + ">" + z.dC(dT) + "</tspan>")
					}
					C += fw
				}
				P.xX.push(z.RC(X) + "</text>")
			} else if (t.add.SoLd) {
				var dz = t.add.SoLd,
					i4 = dz.Idnt.v,
					fy = 0,
					cN = dz.Crop ? dz.Crop.v : null;
				if (P.pG[i4] != null) fy = P.pG[i4];
				else {
					P.S5++;
					fy = P.S5;
					P.pG[i4] = P.S5;
					var fP = F._p(i4, cN),
						cF = "";
					if (fP == null) return;
					var du = fP.DW,
						ea = em.Xh(fP.raw.buffer);
					if (ea == "pdf") {
						var gB = new c_("h");
						em.$I("PDF").xo(fP.raw.buffer, gB);
						gB.dr();
						gB.LU();
						gB.A();
						gB.tf();
						if (dz.Crop && dz.Crop.v == 1) {
							B.$K.zy(gB, gB.root.o7(gB, !0))
						}
						var bp = em.$I("SVG").bb(gB, gB.Z, gB.h, null, {
							SN: y
						});
						cF = "data:image/svg+xml;base64," + em.gN(bp)
					} else if (ea == "jpg" || ea == "png" || ea == "gif" || ea == "svg") {
						var hf = {
							jpg: "image/jpg",
							png: "image/png",
							jpg: "image/jpg",
							svg: "image/svg+xml"
						};
						cF = "data:" + hf[ea] + ";base64," + em.gN(fP.raw.buffer)
					} else {
						cF = em.vd(du[0].buffer, du[1].Z, du[1].h)
					}
					P.Ns.push(z.RC(2) + "<image width=\"" + du[1].Z + "\" height=\"" + du[1].h + "\" id=\"img" + fy + "\" href=\"" + cF + "\"/>")
				}
				var bq = H.P.br(dz);
				if (Z.length != 0) J.push("style=\"" + Z.join(";") + "\"");
				var eY = z.lN(J, W);
				P.xX.push(z.RC(X) + "<use " + eY + " href=\"#img" + fy + "\" transform=\"" + z.kO(bq) + "\"/>")
			} else if (!t.rect.qr() && (Y.amv || A)) {
				if (Z.length != 0) J.push("style=\"" + Z.join(";") + "\"");
				var eY = z.lN(J, W),
					f1 = t.buffer;
				if (b) f1 = cr.BM(f1, b, t.rect);
				var dh = t.rect;
				P.S5++;
				var cF = em.vd(f1.buffer, dh.Z, dh.h, "png", null, !0);
				P.Ns.push(z.RC(2) + "<image width=\"" + t.rect.Z + "\" height=\"" + t.rect.h + "\" id=\"img" + P.S5 + "\" href=\"" + cF + "\"/>");
				P.xX.push(z.RC(X) + "<use " + eY + " href=\"#img" + P.S5 + "\" x=\"" + dh.x + "\" y=\"" + dh.y + "\" />")
			}
		}
	};
	e$.lN = function (F, P) {
		if (P.length != 0) F.push("class=\"" + P.join(" ") + "\"");
		return F.join(" ")
	};
	e$.dC = function (F) {
		return String(F).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/\u0022/g, "&quot;")
	};
	e$.kO = function (F) {
		var P = [F.m, F.i, F.p$, F.xA, F.PV, F.ye].map(e$.EE);
		return "matrix(" + P.join(",") + ")"
	};
	e$.kz = function (F, P, o, X) {
		var Y = e$,
			y = P.vstk,
			z = P.vmsk,
			s = P.lmfx;
		if (z && z.bM != 0) {
			var t = Y.EE(z.bM);
			if (o.BB[t] == null) {
				o.PR++;
				o.BB[t] = o.PR;
				o.Ns.push(Y.RC(2) + "<filter x=\"-50%\" y=\"-50%\" width=\"200%\" height=\"200%\" id=\"flt" + o.PR + "\"> <feGaussianBlur stdDeviation=\"" + t + "\" /> </filter>")
			}
			F.push("filter: url(#flt" + o.BB[t] + ")")
		}
		var d = cr.h4(s, P),
			U = d[0],
			v = d[1];
		if (y && !y.fillEnabled.v) F.push("fill: none");
		else if (U) {
			var A = CSS.O4(U.Clr.v);
			F.push("fill: " + A)
		} else if (v) {
			Y.Eu(v, o, X);
			F.push("fill: url(#grd" + o.YO + ")")
		}
		if (y == null || !y.strokeEnabled.v) y = cr.ig(s);
		if (y && y.strokeEnabled.v) {
			var Z = y.strokeStyleContent.v,
				D = Z.classID;
			if (D == "solidColorLayer") F.push("stroke: " + CSS.O4(Z.Clr.v));
			else {
				Y.Eu(Z, o, X);
				F.push("stroke: url(#grd" + o.YO + ")")
			}
			var q = ce.bW.Bb.indexOf(y.strokeStyleLineCapType.v.strokeStyleLineCapType),
				R = ce.bW.join.indexOf(y.strokeStyleLineJoinType.v.strokeStyleLineJoinType),
				J = y.strokeStyleOpacity.v.val / 100,
				W = y.strokeStyleLineWidth.v.val,
				p = ce.bW.Ph.indexOf(y.strokeStyleLineAlignment.v.strokeStyleLineAlignment);
			if (p == 2) {
				W *= 2;
				F.push("paint-order:stroke fill markers")
			}
			var n = y.strokeStyleLineDashSet.v,
				b = [];
			for (var w = 0; w < n.length; w++) b.push(Math.round(n[w].v.val * W));
			if (q != 0) F.push("stroke-linecap:" + ["butt", "round", "square"][q]);
			if (R != 0) F.push("stroke-linejoin:" + ["miter", "round", "bevel"][R]);
			if (J != 1) F.push("stroke-opacity:" + Y.EE(J));
			if (W != 1) F.push("stroke-width: " + Y.EE(W));
			if (b.length != 0) F.push("stroke-dasharray: " + b.join(","))
		}
	};
	e$.Eu = function (F, P, o) {
		P.YO++;
		var X = e$,
			Y = F.Grad.v,
			y = Y.Clrs.v.slice(0),
			z = Y.Trns.v.slice(0),
			s = F.Ofst.v,
			t = F.Type.v.GrdT == "Rdl" ? 1 : 0,
			d = (t == 1 ? "radial" : "linear") + "Gradient",
			U = H.j.yB(F, o);
		if (t == 0) {
			U[0].x = U[1].x + 2 * (U[0].x - U[1].x);
			U[0].y = U[1].y + 2 * (U[0].y - U[1].y)
		}
		var v = X.RC(2) + "<" + d + " id=\"grd" + P.YO + "\" gradientUnits=\"userSpaceOnUse\" ";
		if (t == 0) P.Ns.push(v + " x1=\"" + X.EE(U[0].x) + "\" y1=\"" + X.EE(U[0].y) + "\" x2=\"" + X.EE(U[1].x) + "\" y2=\"" + X.EE(U[1].y) + "\">");
		if (t == 1) P.Ns.push(v + " cx=\"" + X.EE(U[0].x) + "\" cy=\"" + X.EE(U[0].y) + "\" r=\"" + X.EE(aH.Yj(U[0], U[1])) + "\">");
		var A = F.Rvrs.v;
		if (A) {
			y.reverse();
			z.reverse()
		}
		for (var w = 0; w < y.length; w++) {
			var Z = y[w].v,
				D = w < z.length ? z[w].v.Opct.v.val / 100 : 1,
				D = D == 1 ? "" : "stop-opacity=\"" + X.EE(D) + "\"",
				q = Z.Lctn.v / 4096;
			if (A) q = 1 - q;
			P.Ns.push(X.RC(3) + "<stop offset=\"" + X.EE(q) + "\" stop-color=\"" + CSS.O4(Z.Clr.v) + "\" " + D + " />")
		}
		P.Ns.push(X.RC(2) + "</" + d + ">")
	};
	e$.Ny = function (F, P, o, X, Y) {
		var y = [],
			z = e$.Ny,
			s = !1,
			t = {
				YY: F,
				mi: P,
				_r: [!0, !0, !0],
				mU: !1,
				Og: o,
				PA: 0
			};
		t.eO = Math.round(Math.max(F, P) * (.02 + z.Jv(t) * .03));
		t.iB = z.akQ(t);
		t.DR = z.ame(t.iB, (z.Jv(t) < .5 ? -1 : 1) * (.2 + z.Jv(t) * .3));
		if (z.Jv(t) < .5) {
			var d = t.iB;
			t.iB = t.DR;
			t.DR = d
		}
		t.a33 = z.Jv(t) < .4 && z.ajF(t.DR, {
			U: 1,
			S: 1,
			i: 1
		}) > .3;
		t.agJ = z.Jv(t) < .5 ? 0 : 1;
		y.push("<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 " + F + " " + P + "\" width=\"" + F + "\" height=\"" + P + "\">");
		t.OA = X[Math.floor(z.D5(t) * X.length)];
		t.m6 = X[Math.floor(z.D5(t) * X.length)];
		y.push("<style>");
		y.push("@font-face {  font-family: " + t.OA[2] + ";  src: url(" + t.OA[5] + ");  }");
		y.push("@font-face {  font-family: " + t.m6[2] + ";  src: url(" + t.m6[5] + ");  }");
		y.push("</style>");
		var U = [0, 0, F, P],
			v = U;
		if (Y == null) y.push("<path style=\"fill: " + z.ai(t.iB) + "\" d=\"" + z.Rect(U[0], U[1], U[2] - U[0], U[3] - U[1]) + "\" id=\"Background\" />");
		else {
			t.mU = !0;
			z.mF(t, U, y, Y)
		}
		if (z.Jv(t) < .25 && !t.mU) {
			t._r[0] = t._r[2] = !1;
			z.aa5(U, t, y);
			v = U
		} else if (z.Jv(t) < .25 || t.mU) v = U;
		else {
			var A = .52 + z.Jv(t) * .2;
			if (z.Jv(t) < .5) A = 1 - A;
			var Z = U.slice(0),
				D = U.slice(0);
			if (z.Jv(t) < .5) Z[2] = D[0] = Math.round(A * F);
			else Z[3] = D[1] = Math.round(A * P);
			if (z.Jv(t) < .5) {
				var d = Z;
				Z = D;
				D = d
			}
			v = Z;
			z.a8T(t, D, y, Y)
		}
		z.a3q(t, v, y);
		y.push("</svg>");
		y = y.join("\n");
		var q = H.R(Math.round(y.length * 1.5)),
			R = r.vr(y, q, 0);
		return [q.buffer.slice(0, R), t.jX]
	};
	e$.Ny.aa5 = function (F, P, o) {
		var X = e$.Ny,
			Y = F[2] - F[0],
			y = F[3] - F[1];
		if (X.Jv(P) < .5) {
			o.push("<path id=\"Border\" style=\"fill: " + X.ai(P.DR) + "\" d=\"" + X.a00(F[0], F[1], F[2] - F[0], F[3] - F[1], P.eO) + "\" />")
		} else if (X.Jv(P) < -.4) {
			X.a6b(P, F, o)
		} else {
			var z = X.Jv(P) < .5 ? 0 : 1,
				s = (z == 0 ? y : Y) / 4,
				t = X.UM(P, z, F, o, s, !0),
				t = X.UM(P, z + 2, F, o, s, !0, t)
		}
	};
	e$.Ny.a3q = function (F, P, o) {
		var X = e$.Ny,
			Y = "Hello World!-What a beautiful day.-What Is Love?-Baby, don't hurt me.-Is This a Real Life?-Is this a fantasy?-Wake Me Up!-Before you go go.".split("-"),
			y = 2 * Math.floor(X.Jv(F) * Y.length / 2),
			z = P[2] - P[0],
			s = P[3] - P[1],
			d = 0,
			v = 0;
		F.EH = (F.YY + z) * .5 * (.04 + X.Jv(F) * .05);
		F.EH = Math.min(F.EH, s * .4, z * .12);
		F.EH = Math.round(F.EH);
		var t = Math.min(F.EH * Y[y].length * (.35 + .3 * X.Jv(F)), z * .9),
			U = (P[1] + P[3]) / 2,
			A = H.ec(F.iB) < .85 ? {
				U: 1,
				S: 1,
				i: 1
			} : {
				U: .1,
				S: .1,
				i: .1
			};
		if (X.Jv(F) < .25 && F._r[0]) {
			v = 0;
			d = P[0] + F.eO
		} else if (X.Jv(F) < .33 && F._r[2]) {
			v = 2;
			d = P[2] - F.eO
		} else {
			v = 1;
			d = (P[0] + P[2]) / 2
		}
		var Z = A.U == 1 ? "0,0,0" : "255,255,255",
			D = F.mU && X.Jv(F) < 1;
		if (D) {
			var q = P[0],
				R = z,
				J = U - F.EH * 1.1,
				W = F.EH * 2.2,
				p = .7;
			if (v == 1 && X.Jv(F) < .5) {
				q = J = .2 * Math.min(z, s);
				R = z - 2 * J;
				W = s - J - J
			} else if (X.Jv(F) < .7) {
				q = J = 0;
				R = z;
				W = s;
				p = .25
			}
			o.push("<path id=\"Strip\" style=\"fill: rgb(" + Z + "); opacity: " + p + "\" d=\"" + X.Rect(q, J, R, W) + "\" />")
		}
		if (X.Jv(F) < .4) {
			var n = F.EH * .07;
			n *= 1.5 + X.Jv(F) * 1;
			if (v == -1 && z / s < 3 && !D) {
				o.push("<path id=\"Bar-bottom\" style=\"fill: " + X.ai(A) + "\" d=\"" + X.Rect(d - t / 2, U + F.EH * 1.1 - n / 2, t, n) + "\" />");
				o.push("<path id=\"Bar-top\"    style=\"fill: " + X.ai(A) + "\" d=\"" + X.Rect(d - t / 2, U - F.EH * 1.1 - n / 2, t, n) + "\" />")
			}
			if (v != 1) {
				o.push("<path id=\"Bar\" style=\"fill: " + X.ai(A) + "\" d=\"" + X.Rect(d - n / 2, U - F.EH * .8, n, F.EH * .8 * 2) + "\" />");
				d += (v == 0 ? 1 : -1) * F.EH / 3
			}
		}
		var b = F.EH * .4;
		o.push(X.fK(Y[y + 1], d, U + b * 1.6, b, A, v, F.m6));
		o.push(X.fK(Y[y], d, U + F.EH * .04, F.EH, A, v, F.OA))
	};
	e$.Ny.a8T = function (F, P, o, X) {
		var Y = P[2] - P[0],
			y = P[3] - P[1],
			z = Math.max(Y, y),
			s = Math.min(Y, y),
			t = e$.Ny;
		if (z / s < 5 && !F.mU && !1) {
			t.mF(F, P, o, X)
		} else if (t.Jv(F) < 0) o.push("<path style=\"fill: " + t.ai(F.DR) + "\" d=\"" + t.Rect(P[0], P[1], Y, y) + "\" />");
		else {
			var d = 0;
			if (P[3] != F.mi) d = 0;
			if (P[2] != F.YY) d = 3;
			if (P[0] != 0) d = 1;
			if (P[1] != 0) d = 2;
			var U = d + 2 & 3;
			if (z / s < 3) {
				var v = t.a62(U),
					A = v[Math.round(t.Jv(F) * (v.length - 1))],
					Z = A.st.slice(0, 4),
					D = Z.indexOf(1);
				A = JSON.parse(JSON.stringify(A));
				var q = -1;
				if (Z != "0000") {
					var R = new cu;
					if (A.st[5] == "0") {
						if (D == 3 && d == 1) {
							q = 1;
							R.scale(-1, 1)
						} else q = D
					} else {
						var J = U;
						while (J == U) J = Math.floor(t.Jv(F) * 4) & 3;
						R.rotate((-D + J) * Math.PI / 2)
					}
					t.O(A, R)
				}
				var W = t.nP(A),
					p = Y - 2 * F.eO,
					n = y - 2 * F.eO;
				if (q != -1) {
					if ((q & 1) == 0) n -= F.eO;
					else p -= F.eO
				}
				var b = Math.min(p / W.Z, n / W.h),
					Q = new cu;
				Q.translate(-W.x, -W.y);
				Q.scale(b, b);
				var _ = (Y - W.Z * b) / 2,
					L = (y - W.h * b) / 2;
				if (q != -1) {
					if (q == 3) _ = 0;
					if (q == 0) L = 0;
					if (q == 1) _ = Y - W.Z * b;
					if (q == 2) L = y - W.h * b
				}
				Q.translate(P[0] + _, P[1] + L);
				t.sp(F, A, Q, F.DR, o)
			} else {
				t.UM(F, d, P, o, 1e9)
			}
		}
	};
	e$.Ny.mF = function (F, P, o, X) {
		var Y = P[2] - P[0],
			y = P[3] - P[1],
			z = Math.max(Y, y),
			s = Math.min(Y, y),
			t = e$.Ny,
			d = t.D5(F),
			U, v, A, Z = X[0] instanceof ArrayBuffer;
		if (Z) {
			U = "data:image/jpg;base64," + cz.ga(X[0]);
			v = X[1];
			A = X[2]
		} else {
			var D = Math.floor(d * X.length),
				q = X[D];
			F.jX = q;
			U = q.webformatURL;
			v = q.webformatWidth;
			A = q.webformatHeight
		}
		var R = P[0],
			J = P[1],
			W = Y,
			p = y;
		if (Y / y > v / A) {
			p = W * A / v;
			J = J - (p - y) / 2
		} else {
			W = p * v / A;
			R = R - (W - Y) / 2
		}
		if (Z) {
			o.push("<defs>");
			o.push("<image width=\"" + v + "\" height=\"" + A + "\" id=\"Background\" href=\"" + U + "\" />");
			o.push("</defs>");
			var n = W / v;
			o.push("<use href=\"#Background\" transform=\"" + e$.kO(new cu(n, 0, 0, n, R, J)) + "\" />")
		} else {
			var b = "cp" + Math.random();
			o.push("<clipPath id=\"" + b + "\">");
			o.push("<path style=\"fill: " + t.ai(F.DR) + "\" d=\"" + t.Rect(P[0], P[1], Y, y) + "\" />");
			o.push("</clipPath>");
			o.push("<image  clip-path=\"url(#" + b + ")\" xlink:href=\"" + U + "\" x=\"" + R + "\" y=\"" + J + "\" width=\"" + W + "\" height=\"" + p + "\" />")
		}
	};
	e$.Ny.fK = function (F, P, o, X, Y, y, z) {
		var s = e$.Ny;
		return "<text x=\"" + P + "\" y=\"" + o + "\" style=\"fill:" + s.ai(Y) + "; font-size:" + X + "px; text-anchor:" + ["start", "middle", "end"][y] + "; font-family:" + z[2] + ";\"><tspan>" + F + "</tspan></text>"
	};
	e$.Ny.sp = function (F, P, o, X, Y) {
		var y = e$.Ny,
			z = [];
		for (var w = 0; w < P.A2.length; w++) {
			z.push(X);
			if (F.a33) {
				X = (w & 1) == F.agJ ? {
					U: 1,
					S: 1,
					i: 1
				} : z[0]
			}
		}
		Y.push("<g id=\"" + P.st.split("-")[2] + ":::\" style=\"transform: " + e$.kO(o) + ";\" >");
		for (var w = 0; w < P.A2.length; w++) {
			var s = P.A2[w];
			X = z.pop();
			Y.push("<path style=\"fill: " + (X ? y.ai(X) : "#" + s[0]) + "\" d=\"" + Typr.U.pathToSVG({
				crds: s[1].d,
				cmds: s[1].W
			}) + "\" />")
		}
		Y.push("</g>")
	};
	e$.Ny.a6b = function (F, P, o) {
		var X = e$.Ny,
			Y = e$.Ny.rQ,
			y = [];
		for (var w = 0; w < Y.length; w++) {
			var z = Y[w],
				s = z.st.slice(0, 4);
			if (s != "1001") continue;
			y.push(z)
		}
		var z = y[Math.floor(X.Jv(F) * y.length)];
		if (X.Jv(F) < .5) X.O(z, new cu(0, 1, 1, 0, 0, 0));
		var t = P[3] - P[1],
			d = P[2] - P[0],
			U = X.nP(z),
			v = .7 * Math.min(d, t, .5 * Math.max(d, t)) / Math.max(U.Z, U.h),
			A = new cu;
		A.scale(v, v);
		if (X.Jv(F) < .5) {
			A.scale(1, -1);
			A.translate(0, t)
		}
		X.sp(F, z, A, F.DR, o);
		A.rotate(Math.PI);
		A.translate(d, t);
		X.sp(F, z, A, F.DR, o)
	};
	e$.Ny.a62 = function (F) {
		var P = e$.Ny.rQ,
			o = [];
		for (var w = 0; w < P.length; w++) {
			var X = P[w],
				Y = X.st.slice(0, 4);
			if (Y == "0000") {
				o.push(X);
				continue
			}
			if (["1000", "0100", "0010", "0001"].indexOf(Y) == -1) continue;
			var y = Y.indexOf("1");
			if (X.st[5] == "0" && F == y && y != 3) continue;
			o.push(X)
		}
		return o
	};
	e$.Ny.UM = function (F, P, o, X, Y, y, z) {
		var s = e$.Ny.rQ,
			t = e$.Ny,
			d = [],
			W, p;
		for (var w = 0; w < s.length; w++) {
			var U = s[w],
				v = U.st.slice(0, 4);
			if (["1110", "1101", "1011", "0111"].indexOf(v) == -1) continue;
			var A = v.indexOf("0") + 2 & 3;
			if (U.st[5] == "0")
				if (y == !0 || P != A && !(P == 1 && A == 3)) continue;
			d.push(U)
		}
		var Z = z != null ? z : Math.floor(t.Jv(F) * d.length),
			U = d[Z],
			U = JSON.parse(JSON.stringify(U)),
			v = U.st.slice(0, 4),
			A = v.indexOf("0") + 2 & 3;
		if (A == 3 && P == 1) H.O(U, new cu(1, 0, 0, -1, 0, 1e3));
		var D = new cu;
		D.translate(-500, -500);
		D.rotate(-A * Math.PI / 2);
		D.translate(500, 500);
		t.O(U, D);
		var q = o[3] - o[1],
			R = o[2] - o[0],
			J = t.nP(U);
		if (J.y < 0) {
			J.h += J.y;
			J.y = 0
		}
		if (J.y > 0) {
			J.h += J.y;
			J.y = 0
		}
		if ((P & 1) == 0) {
			p = q;
			W = R
		} else {
			W = q;
			p = R
		}
		var n = Math.min(Math.min(.5 + .5 * t.Jv(F)) * Math.min(R, q), Y) / J.h,
			b = Math.ceil(W / (1e3 * n)),
			Q = new cu,
			_ = new cu;
		_.scale(n, n);
		if (P == 0 || P == 2) {
			_.translate(-(R / 2), -(q / 2));
			_.rotate(-P * Math.PI / 2);
			_.translate(R / 2 + o[0], q / 2 + o[1])
		} else {
			_.rotate(Math.PI / 2);
			_.scale(1, -1);
			_.translate(o[0], o[1]);
			if (P == 1) {
				_.scale(-1, 1);
				_.translate(R, 0)
			}
		}
		X.push("<g id=\"Border-" + ["top", "right", "bottom", "left"][P] + ":::\">");
		for (var w = 0; w < b; w++) {
			var L = Q.clone();
			L.concat(_);
			t.sp(F, U, L, F.DR, X);
			Q.translate(1e3 - 2, 0)
		}
		X.push("</g>");
		return Z
	};
	e$.Ny.Rect = function (F, P, o, X) {
		return Typr.U.pathToSVG({
			crds: [F, P, F + o, P, F + o, P + X, F, P + X],
			cmds: ["M", "L", "L", "L", "Z"]
		})
	};
	e$.Ny.a00 = function (F, P, o, X, Y) {
		var y = [F, P, F + o, P, F + o, P + X, F, P + X];
		F += Y;
		P += Y;
		o -= 2 * Y;
		X -= 2 * Y;
		y.push(F, P, F, P + X, F + o, P + X, F + o, P);
		return Typr.U.pathToSVG({
			crds: y,
			cmds: "M L L L Z M L L L Z".split(" ")
		})
	};
	e$.Ny.ame = function (F, P) {
		var o = H.T4(F.U, F.S, F.i);
		o.lr = Math.max(.1, Math.min(.9, o.lr + P));
		return H.Uq(o.mi, o.Pg, o.lr)
	};
	e$.Ny.a3l = function (F, P) {
		var o = H.T4(F.U, F.S, F.i);
		o.mi += P;
		return H.Uq(o.mi, o.Pg, o.lr)
	};
	e$.Ny.al8 = function (F) {
		var P = H.T4(F.U, F.S, F.i);
		P.lr = 1 - P.lr;
		return H.Uq(P.mi, P.Pg, P.lr)
	};
	e$.Ny.ajF = function (F, P) {
		var o = F.U - P.U,
			X = F.S - P.S,
			Y = F.i - P.i;
		return Math.sqrt(o * o + X * X + Y * Y)
	};
	e$.Ny.akQ = function (F) {
		var P = e$.Ny;
		return {
			U: P.Jv(F),
			S: P.Jv(F),
			i: P.Jv(F)
		}
	};
	e$.Ny.ai = function (F) {
		return CSS.PO({
			U: F.U * 255,
			S: F.S * 255,
			i: F.i * 255
		})
	};
	e$.Ny.nP = function (F) {
		var P = F.A2,
			o = new ev;
		for (var w = 0; w < P.length; w++) o = o.s7(H.D.nP(P[w][1].d));
		return o
	};
	e$.Ny.O = function (F, P) {
		var o = F.A2;
		for (var w = 0; w < o.length; w++) H.D.O(o[w][1].d, P, o[w][1].d)
	};
	e$.Ny.Jv = function (F) {
		F.PA++;
		var P = F.PA & 3;
		if (P == 0) F.Og = e$.Ny.eT(F.Og);
		var o = F.Og >>> 8 * P & 255;
		return o * (.99999999 / 255)
	};
	e$.Ny.D5 = function (F) {
		var P = e$.Ny.eT(F.Og);
		F.Og = e$.Ny.eT(P);
		return P * (1 / 4294967295)
	};
	e$.Ny.eT = function (F) {
		F = (F ^ 61 ^ F >>> 16) >>> 0;
		F = F + (F << 3) >>> 0;
		F = (F ^ F >>> 4) >>> 0;
		F = F * 668265261 >>> 0;
		F = (F ^ F >>> 15) >>> 0;
		return F
	};
	e$.Ny.rQ = [{
		st: "0001-0-bird",
		A2: [
			["4b3c34", {
				W: "M C L C C L Z M C C L C C L Z M C L C L Z M C L C C L Z".split(" "),
				d: [208, 16, 253, 5, 247, 86, 228, 104, 218, 108, 253, 60, 235, 12, 211, 18, 210, 18, 209, 17, 208, 16, 208, 16, 187, 140, 238, 125, 326, 133, 319, 189, 318, 198, 307, 210, 299, 207, 297, 205, 307, 208, 316, 195, 317, 188, 320, 126, 208, 137, 174, 149, 187, 140, 137, 75, 156, 79, 177, 94, 164, 157, 173, 147, 177, 101, 165, 79, 142, 75, 137, 75, 368, 59, 165, 59, 182, 233, 0, 210, 0, 225, 161, 250, 194, 61, 364, 63, 367, 61, 368, 59, 368, 59, 368, 59]
			}],
			["3c7040", {
				W: "M C C C C C L Z M C C C C L Z M C C C C L Z M C C C C L Z M C C C C C L Z M C C C C L Z M C C C C Z".split(" "),
				d: [345, 123, 324, 113, 331, 70, 284, 80, 287, 79, 310, 89, 314, 103, 314, 104, 306, 90, 284, 82, 281, 81, 270, 85, 268, 86, 274, 117, 335, 119, 345, 123, 345, 123, 270, 0, 283, 29, 282, 58, 244, 66, 258, 62, 265, 40, 269, 27, 265, 37, 256, 56, 249, 58, 242, 31, 263, 18, 270, 0, 270, 0, 89, 100, 81, 136, 47, 182, 101, 196, 90, 189, 92, 157, 91, 145, 94, 160, 93, 191, 109, 195, 148, 158, 96, 129, 89, 100, 89, 100, 230, 187, 201, 240, 160, 226, 133, 198, 150, 191, 172, 197, 187, 198, 166, 193, 153, 190, 134, 193, 159, 162, 207, 194, 230, 187, 230, 187, 126, 177, 131, 159, 129, 150, 119, 139, 122, 122, 145, 112, 147, 97, 166, 128, 164, 155, 134, 168, 139, 154, 146, 142, 145, 131, 143, 145, 133, 159, 126, 177, 126, 177, 209, 86, 195, 86, 166, 91, 173, 109, 177, 102, 181, 97, 191, 96, 180, 99, 174, 113, 175, 113, 194, 114, 200, 96, 209, 86, 209, 86, 278, 175, 254, 167, 235, 168, 231, 143, 245, 143, 248, 151, 256, 158, 252, 147, 243, 144, 240, 142, 276, 147, 265, 171, 278, 175]
			}],
			["b588c1", {
				W: "M C C C C C C C C C C C C L Z".split(" "),
				d: [189, 40, 188, 42, 186, 44, 184, 47, 184, 52, 183, 55, 181, 59, 175, 70, 160, 78, 147, 79, 142, 79, 131, 78, 127, 75, 118, 74, 95, 71, 93, 70, 89, 70, 88, 70, 69, 72, 74, 66, 82, 68, 93, 65, 78, 64, 83, 62, 95, 59, 128, 50, 128, 33, 155, 29, 162, 16, 180, 13, 189, 31, 193, 31, 196, 34, 198, 37, 197, 37, 193, 39, 189, 40, 189, 40]
			}]
		]
	}, {
		st: "0001-0-bird2",
		A2: [
			["ff7f2a", {
				W: "M L L L Z M L L L Z".split(" "),
				d: [296, 0, 296, 62, 335, 62, 296, 0, 357, 0, 357, 62, 318, 62, 357, 0]
			}],
			["b588c1", {
				W: "M C C C C C C C C C C C L Z".split(" "),
				d: [321, 48, 344, 48, 379, 67, 396, 121, 408, 176, 396, 230, 337, 255, 303, 265, 265, 268, 217, 235, 191, 217, 170, 188, 186, 180, 195, 177, 199, 187, 205, 192, 203, 185, 199, 178, 207, 172, 217, 165, 224, 178, 225, 182, 227, 196, 231, 203, 250, 206, 273, 205, 290, 196, 292, 165, 289, 133, 269, 118, 268, 101, 267, 77, 288, 49, 321, 48, 321, 48]
			}],
			["74439e", {
				W: "M C C C C C C L Z M C C Z".split(" "),
				d: [337, 187, 329, 202, 317, 204, 304, 204, 293, 204, 284, 205, 293, 224, 286, 216, 278, 209, 268, 214, 257, 220, 262, 237, 269, 243, 284, 258, 310, 256, 323, 243, 337, 227, 339, 208, 337, 187, 337, 187, 340, 77, 310, 78, 287, 81, 315, 96, 269, 83, 309, 75, 340, 77]
			}],
			["000000", {
				W: "M L L L Z M L L L Z".split(" "),
				d: [326, 258, 334, 315, 323, 316, 326, 258, 298, 262, 296, 318, 286, 317, 298, 262]
			}],
			["4b3c34", {
				W: "M L C C C C C C C C L Z".split(" "),
				d: [0, 272, 0, 336, 63, 296, 119, 296, 175, 320, 205, 330, 229, 339, 278, 338, 322, 337, 354, 322, 405, 325, 443, 329, 482, 332, 501, 377, 501, 366, 502, 348, 474, 328, 464, 320, 440, 312, 384, 309, 296, 309, 300, 333, 186, 293, 118, 264, 54, 250, 0, 272, 0, 272]
			}],
			["3c7040", {
				W: "M C C C Z M C C C Z M C C C L Z M C C C L Z M C C C L Z M C C C Z".split(" "),
				d: [58, 260, 44, 247, 27, 239, 20, 208, 15, 188, 32, 182, 43, 198, 59, 227, 56, 242, 58, 260, 181, 323, 167, 336, 150, 345, 143, 375, 138, 396, 155, 401, 166, 385, 182, 356, 179, 342, 181, 323, 60, 260, 79, 249, 100, 243, 113, 214, 122, 194, 102, 186, 86, 200, 62, 227, 65, 242, 60, 260, 60, 260, 499, 378, 479, 377, 462, 372, 435, 388, 417, 399, 425, 415, 444, 411, 476, 403, 484, 390, 499, 378, 499, 378, 501, 379, 494, 397, 482, 411, 488, 442, 491, 463, 511, 461, 514, 442, 520, 410, 508, 397, 501, 379, 501, 379, 503, 378, 513, 390, 516, 402, 531, 413, 546, 421, 557, 412, 548, 401, 534, 382, 519, 379, 503, 378]
			}]
		]
	}, {
		st: "0000-1-flower",
		A2: [
			["7a59a2", {
				W: "M C C C C C C C Z M C C C C C C L Z M C C C C C C C L Z M C C C C C C L Z M C C C C C C C L Z M C C C C C C L Z M C C C C C C C L Z M C C C C C C L Z".split(" "),
				d: [468, 470, 411, 473, 371, 480, 351, 495, 332, 509, 322, 536, 325, 581, 325, 601, 328, 621, 325, 637, 346, 634, 371, 638, 397, 637, 427, 636, 456, 626, 465, 611, 478, 596, 485, 553, 489, 490, 477, 489, 470, 483, 468, 470, 445, 563, 435, 583, 425, 591, 415, 590, 401, 588, 401, 572, 410, 549, 388, 558, 375, 557, 369, 546, 366, 533, 374, 524, 390, 517, 416, 506, 441, 498, 465, 495, 463, 519, 455, 542, 445, 563, 445, 563, 489, 450, 486, 392, 480, 352, 465, 332, 451, 313, 425, 302, 380, 305, 360, 305, 340, 307, 324, 304, 327, 324, 322, 350, 323, 376, 323, 406, 332, 435, 347, 444, 362, 457, 405, 465, 468, 470, 469, 458, 476, 451, 489, 450, 489, 450, 395, 424, 376, 415, 368, 405, 369, 394, 371, 380, 387, 380, 410, 390, 402, 368, 403, 355, 414, 349, 427, 346, 436, 355, 443, 370, 454, 397, 460, 422, 463, 446, 439, 443, 417, 435, 395, 424, 395, 424, 508, 470, 566, 468, 606, 462, 626, 447, 645, 433, 656, 407, 654, 362, 654, 342, 652, 322, 655, 306, 634, 309, 609, 304, 583, 305, 553, 305, 524, 314, 514, 329, 501, 344, 493, 387, 488, 449, 500, 451, 507, 457, 508, 470, 508, 470, 534, 377, 544, 357, 554, 350, 564, 351, 578, 353, 578, 369, 568, 392, 590, 384, 604, 385, 609, 396, 612, 409, 603, 418, 588, 425, 561, 435, 536, 442, 512, 445, 515, 421, 523, 399, 534, 377, 534, 377, 488, 490, 492, 547, 499, 587, 514, 607, 528, 626, 554, 636, 600, 633, 619, 632, 640, 630, 656, 633, 652, 612, 656, 587, 655, 560, 655, 531, 645, 502, 629, 493, 614, 480, 571, 473, 508, 469, 507, 481, 501, 488, 488, 490, 488, 490, 582, 513, 602, 523, 610, 533, 609, 543, 607, 557, 591, 557, 568, 548, 577, 570, 576, 583, 565, 589, 552, 592, 542, 584, 535, 568, 524, 542, 517, 517, 514, 493, 538, 495, 560, 503, 582, 513, 582, 513]
			}]
		]
	}, {
		st: "0000-1-flower",
		A2: [
			["d13777", {
				W: "M L C L L C C C C L L Z M C C C C Z M L C L L C C C C L L Z M C C C C Z M L C L L C C C C L L Z M C C C C Z M L C L L C C C C L L Z M C C C C Z M L C L L C C C C L L Z M C C C C Z".split(" "),
				d: [474, 503, 457, 528, 452, 530, 450, 528, 450, 523, 469, 498, 464, 493, 388, 522, 332, 552, 314, 585, 297, 628, 322, 660, 372, 639, 361, 698, 421, 709, 450, 665, 467, 649, 477, 596, 482, 505, 474, 503, 474, 503, 439, 563, 431, 563, 424, 556, 424, 548, 424, 539, 431, 532, 439, 532, 447, 532, 454, 539, 454, 548, 454, 556, 447, 563, 439, 563, 462, 475, 432, 467, 429, 463, 430, 460, 435, 458, 465, 469, 468, 463, 417, 399, 371, 356, 335, 348, 288, 345, 265, 379, 300, 420, 241, 428, 249, 488, 301, 503, 321, 513, 374, 507, 462, 483, 462, 475, 462, 475, 394, 460, 391, 452, 396, 444, 404, 441, 412, 438, 420, 443, 423, 451, 426, 459, 421, 467, 413, 470, 405, 473, 396, 468, 394, 460, 484, 455, 483, 424, 486, 419, 489, 420, 492, 424, 492, 456, 498, 457, 543, 389, 570, 332, 566, 294, 554, 249, 515, 238, 487, 284, 461, 231, 406, 256, 408, 310, 405, 333, 427, 381, 477, 458, 484, 455, 484, 455, 477, 385, 484, 380, 494, 382, 499, 389, 504, 396, 502, 405, 496, 410, 489, 415, 479, 414, 474, 407, 469, 400, 471, 390, 477, 385, 511, 470, 539, 459, 545, 461, 545, 463, 542, 467, 512, 477, 513, 483, 592, 505, 654, 513, 688, 497, 728, 472, 726, 432, 674, 419, 717, 378, 675, 334, 625, 353, 602, 356, 563, 393, 506, 464, 511, 470, 511, 470, 575, 442, 581, 447, 583, 456, 578, 463, 573, 470, 563, 472, 557, 467, 550, 462, 548, 452, 553, 445, 558, 438, 568, 437, 575, 442, 505, 499, 524, 523, 524, 529, 521, 531, 517, 529, 498, 503, 492, 506, 496, 588, 508, 650, 533, 677, 570, 707, 607, 693, 603, 639, 656, 667, 685, 614, 651, 572, 641, 551, 594, 525, 509, 493, 505, 499, 505, 499, 551, 552, 548, 560, 540, 564, 532, 561, 524, 559, 519, 550, 522, 542, 524, 534, 533, 530, 541, 532, 549, 535, 554, 543, 551, 552]
			}]
		]
	}, {
		st: "0000-1-flower",
		A2: [
			["ffac42", {
				W: "M C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C Z M C C C C Z".split(" "),
				d: [646, 471, 646, 446, 626, 426, 601, 426, 599, 426, 597, 426, 595, 427, 596, 426, 598, 424, 599, 423, 616, 406, 616, 378, 599, 360, 581, 343, 553, 343, 536, 360, 534, 361, 533, 363, 532, 364, 532, 363, 532, 361, 532, 359, 532, 335, 512, 315, 488, 315, 463, 315, 443, 335, 443, 359, 443, 361, 443, 363, 443, 365, 442, 364, 441, 363, 440, 362, 422, 344, 394, 344, 377, 362, 359, 379, 359, 407, 377, 425, 378, 426, 380, 427, 381, 429, 379, 428, 378, 428, 376, 428, 351, 428, 331, 448, 331, 473, 331, 498, 351, 518, 376, 518, 378, 518, 380, 517, 382, 517, 381, 518, 379, 519, 378, 521, 361, 538, 361, 566, 378, 584, 396, 601, 424, 601, 441, 584, 443, 582, 444, 581, 445, 579, 445, 581, 445, 583, 445, 584, 445, 609, 465, 629, 490, 629, 514, 629, 534, 609, 534, 584, 534, 582, 534, 580, 534, 579, 535, 580, 536, 581, 537, 582, 555, 600, 583, 600, 600, 582, 618, 565, 618, 537, 600, 519, 599, 518, 597, 516, 596, 515, 598, 515, 599, 516, 601, 516, 626, 516, 646, 496, 646, 471, 489, 552, 444, 552, 409, 516, 409, 472, 409, 428, 444, 392, 489, 392, 533, 392, 569, 428, 569, 472, 569, 516, 533, 552, 489, 552]
			}]
		]
	}, {
		st: "0000-1-flower",
		A2: [
			["d04040", {
				W: "M C C L L C C C C L L C C L L C C C C L C C C C L Z M C C C Z M C C C L Z M C C C L Z".split(" "),
				d: [691, 424, 690, 369, 680, 330, 660, 303, 634, 320, 601, 361, 568, 406, 568, 406, 568, 327, 578, 326, 585, 317, 585, 306, 585, 294, 576, 284, 564, 284, 552, 284, 542, 294, 542, 306, 542, 317, 550, 326, 560, 327, 560, 406, 559, 406, 540, 359, 522, 311, 501, 291, 475, 319, 453, 360, 433, 407, 431, 406, 431, 327, 441, 326, 448, 317, 448, 306, 448, 294, 439, 284, 427, 284, 415, 284, 405, 294, 405, 306, 405, 317, 412, 326, 423, 327, 423, 404, 390, 363, 360, 326, 341, 308, 296, 401, 299, 489, 360, 567, 396, 613, 443, 639, 500, 638, 624, 636, 694, 524, 692, 424, 691, 424, 389, 543, 370, 514, 379, 498, 399, 504, 439, 518, 470, 564, 488, 613, 455, 600, 414, 580, 389, 543, 481, 480, 488, 445, 505, 441, 515, 459, 533, 497, 524, 552, 501, 599, 487, 567, 472, 523, 481, 480, 481, 480, 624, 523, 610, 563, 565, 595, 515, 613, 528, 580, 548, 538, 585, 514, 614, 494, 629, 503, 624, 523, 624, 523]
			}]
		]
	}, {
		st: "0000-1-flower",
		A2: [
			["ec7272", {
				W: "M C C C C Z M C C C C Z M C C C C L Z M C C C C L Z M C C C C Z M C C C C L Z".split(" "),
				d: [447, 475, 452, 450, 452, 438, 437, 423, 422, 407, 407, 412, 390, 383, 398, 418, 421, 415, 433, 434, 445, 453, 446, 474, 447, 475, 495, 446, 520, 439, 529, 433, 535, 412, 542, 390, 529, 380, 546, 351, 520, 376, 533, 394, 523, 414, 513, 434, 495, 445, 495, 446, 545, 473, 564, 490, 574, 495, 595, 490, 617, 485, 620, 469, 653, 468, 619, 459, 610, 479, 587, 480, 565, 482, 546, 472, 545, 473, 545, 473, 549, 533, 543, 558, 543, 569, 559, 585, 574, 601, 589, 596, 606, 624, 597, 590, 575, 592, 563, 573, 551, 555, 550, 534, 549, 533, 549, 533, 504, 562, 480, 570, 470, 575, 464, 596, 458, 618, 470, 628, 454, 657, 479, 632, 466, 614, 476, 594, 486, 575, 504, 563, 504, 562, 459, 536, 440, 519, 430, 513, 409, 518, 387, 524, 384, 539, 351, 540, 385, 549, 394, 529, 417, 528, 439, 527, 457, 536, 459, 536, 459, 536]
			}],
			["333333", {
				W: "M C C C C C C C C C C C C L Z M C C C C C C C C C C C C L Z M C C C C C C C C C C C C L Z M C C C C C C C C C C C C L Z M C C C C C C C C C C C C L Z M C C C C C C C C C C C C L Z".split(" "),
				d: [534, 455, 584, 415, 579, 358, 577, 335, 574, 315, 585, 304, 585, 304, 585, 304, 568, 308, 561, 312, 554, 316, 520, 333, 500, 363, 479, 392, 493, 437, 486, 456, 479, 476, 452, 485, 452, 485, 452, 485, 471, 474, 475, 454, 479, 434, 460, 402, 482, 365, 505, 328, 565, 292, 597, 294, 612, 295, 591, 298, 587, 316, 583, 333, 593, 373, 584, 404, 574, 440, 533, 456, 534, 455, 534, 455, 559, 506, 619, 530, 666, 497, 685, 483, 701, 471, 716, 475, 716, 475, 716, 475, 704, 463, 697, 459, 690, 454, 657, 434, 622, 431, 587, 428, 554, 462, 534, 465, 513, 469, 492, 451, 492, 451, 492, 451, 511, 461, 530, 455, 549, 448, 568, 416, 611, 417, 654, 418, 716, 452, 730, 481, 737, 495, 724, 478, 706, 483, 689, 489, 660, 516, 628, 524, 592, 534, 558, 506, 559, 506, 559, 506, 524, 552, 534, 615, 586, 640, 607, 649, 625, 657, 629, 672, 629, 672, 629, 672, 634, 655, 634, 647, 634, 639, 636, 601, 621, 569, 606, 537, 560, 525, 547, 509, 534, 494, 539, 466, 539, 466, 539, 466, 539, 488, 554, 501, 569, 514, 607, 514, 627, 552, 648, 590, 650, 660, 632, 687, 623, 700, 631, 680, 617, 667, 605, 656, 566, 644, 543, 621, 517, 594, 524, 551, 524, 552, 524, 552, 467, 546, 417, 585, 421, 643, 424, 665, 426, 686, 415, 697, 415, 697, 415, 697, 432, 693, 439, 689, 446, 684, 481, 667, 501, 638, 521, 609, 508, 563, 515, 544, 522, 524, 548, 515, 548, 515, 548, 515, 530, 527, 526, 546, 522, 566, 540, 598, 518, 635, 496, 672, 436, 709, 404, 706, 388, 705, 409, 702, 413, 684, 417, 667, 408, 628, 417, 596, 426, 561, 467, 544, 467, 546, 467, 546, 442, 495, 383, 472, 336, 504, 317, 518, 301, 530, 286, 526, 286, 526, 286, 526, 298, 539, 305, 543, 312, 547, 344, 568, 380, 571, 415, 574, 448, 539, 468, 536, 488, 532, 510, 551, 510, 551, 510, 551, 490, 540, 471, 547, 452, 553, 434, 585, 391, 584, 348, 583, 286, 550, 272, 521, 265, 507, 278, 524, 296, 518, 313, 513, 342, 485, 373, 477, 409, 468, 444, 495, 442, 495, 442, 495, 476, 449, 467, 386, 415, 361, 394, 352, 375, 344, 371, 329, 371, 329, 371, 329, 366, 346, 366, 354, 366, 362, 364, 400, 379, 433, 394, 465, 440, 476, 453, 492, 467, 508, 462, 535, 462, 535, 462, 535, 461, 513, 446, 500, 431, 487, 394, 487, 373, 449, 352, 411, 350, 341, 368, 314, 377, 301, 369, 321, 383, 334, 396, 345, 434, 357, 457, 380, 483, 407, 477, 450, 476, 449, 476, 449]
			}]
		]
	}, {
		st: "0000-0-hearts",
		A2: [
			["d17070", {
				W: "M C C C C C C C C C L Z".split(" "),
				d: [415, 584, 413, 585, 411, 586, 409, 587, 392, 596, 389, 620, 395, 633, 401, 647, 414, 663, 450, 668, 485, 674, 487, 681, 494, 690, 491, 679, 487, 673, 507, 643, 527, 613, 524, 593, 518, 579, 512, 566, 493, 552, 475, 558, 467, 561, 451, 566, 448, 586, 435, 578, 423, 581, 415, 584, 415, 584]
			}],
			["6bcc6b", {
				W: "M C C C C C C C C C L Z".split(" "),
				d: [595, 451, 593, 449, 590, 448, 588, 448, 563, 439, 537, 457, 529, 475, 521, 493, 516, 520, 542, 560, 568, 601, 563, 609, 559, 623, 568, 611, 571, 602, 618, 595, 666, 589, 684, 567, 692, 550, 700, 532, 697, 501, 674, 488, 665, 482, 645, 472, 622, 486, 619, 465, 606, 456, 595, 451, 595, 451]
			}],
			["5c5cc2", {
				W: "M C C C C C C C C C L Z".split(" "),
				d: [341, 362, 338, 364, 335, 366, 332, 368, 304, 385, 301, 424, 312, 446, 323, 468, 345, 494, 405, 501, 465, 508, 468, 520, 480, 534, 475, 516, 468, 506, 499, 455, 531, 404, 524, 370, 514, 348, 503, 325, 470, 304, 440, 315, 427, 320, 401, 331, 397, 364, 374, 351, 355, 356, 341, 362, 341, 362]
			}]
		]
	}, {
		st: "0000-0-anchor",
		A2: [
			["2a3b66", {
				W: "M C C C C L Z M C C C C C C C C C C C C C C L C C C C C C C C C C C C C L C C C C C C C C C C C C C L Z".split(" "),
				d: [495, 315, 490, 315, 488, 318, 489, 323, 491, 328, 502, 326, 502, 320, 502, 317, 501, 316, 497, 315, 496, 315, 496, 315, 495, 315, 495, 315, 496, 303, 509, 303, 521, 320, 514, 327, 511, 330, 513, 345, 517, 348, 519, 350, 531, 352, 546, 354, 570, 357, 572, 357, 578, 354, 588, 347, 592, 351, 592, 369, 592, 385, 588, 390, 580, 385, 576, 383, 570, 383, 552, 384, 524, 387, 519, 389, 517, 397, 515, 404, 517, 515, 520, 554, 522, 583, 525, 599, 530, 606, 534, 610, 555, 617, 565, 617, 584, 616, 607, 602, 635, 572, 639, 568, 641, 566, 644, 563, 633, 559, 616, 557, 616, 557, 675, 533, 675, 533, 671, 605, 669, 609, 667, 611, 664, 591, 658, 577, 657, 579, 657, 580, 656, 582, 628, 638, 603, 660, 565, 664, 545, 666, 521, 672, 514, 675, 512, 677, 507, 682, 504, 688, 501, 693, 497, 698, 496, 698, 494, 698, 490, 693, 487, 688, 484, 682, 480, 677, 477, 675, 471, 672, 447, 666, 427, 664, 391, 660, 367, 640, 340, 591, 335, 604, 332, 621, 331, 619, 329, 615, 325, 544, 325, 544, 384, 568, 384, 568, 368, 569, 357, 573, 385, 602, 408, 616, 426, 617, 437, 617, 458, 610, 461, 606, 466, 599, 470, 583, 472, 554, 474, 515, 476, 404, 475, 397, 473, 389, 468, 387, 440, 384, 422, 383, 416, 383, 412, 385, 403, 390, 400, 385, 400, 369, 400, 351, 403, 347, 414, 354, 419, 357, 421, 357, 446, 354, 460, 352, 473, 350, 475, 348, 478, 345, 481, 330, 478, 327, 470, 320, 483, 303, 496, 303, 496, 303]
			}]
		]
	}, {
		st: "0000-1-leaf",
		A2: [
			["fbb600", {
				W: "M L L L L L L C L L C L C L C C C C C L C C C C C C C C C L C C C C C C C C C C C C C L L L L Z".split(" "),
				d: [642, 726, 633, 723, 632, 707, 591, 631, 570, 582, 526, 521, 537, 547, 535, 579, 517, 598, 501, 619, 486, 602, 414, 634, 412, 606, 379, 609, 346, 611, 394, 557, 406, 547, 401, 539, 386, 532, 319, 519, 337, 508, 332, 493, 320, 478, 326, 464, 302, 450, 287, 436, 303, 436, 324, 441, 330, 432, 346, 434, 359, 434, 359, 415, 377, 428, 397, 431, 417, 432, 442, 440, 437, 418, 417, 416, 406, 372, 401, 370, 395, 367, 389, 355, 417, 363, 408, 339, 406, 323, 416, 312, 427, 303, 417, 276, 433, 295, 444, 297, 452, 294, 479, 321, 490, 313, 496, 294, 503, 322, 510, 329, 517, 338, 522, 353, 530, 371, 530, 379, 546, 402, 551, 389, 555, 378, 578, 333, 606, 333, 628, 304, 652, 280, 646, 306, 644, 327, 657, 329, 649, 356, 658, 374, 679, 384, 666, 392, 656, 415, 645, 432, 627, 457, 653, 451, 661, 457, 692, 460, 698, 473, 715, 481, 697, 485, 678, 488, 669, 509, 656, 523, 655, 533, 666, 539, 659, 537, 659, 542, 643, 531, 630, 535, 613, 543, 608, 539, 598, 535, 594, 542, 590, 553, 590, 566, 594, 564, 596, 569, 568, 575, 551, 543, 531, 519, 575, 577, 597, 628, 639, 708, 642, 726]
			}]
		]
	}, {
		st: "0000-1-acorn",
		A2: [
			["a05a2c", {
				W: "M C C C C C C C L Z".split(" "),
				d: [506, 453, 450, 426, 413, 422, 398, 444, 374, 480, 374, 533, 384, 573, 391, 602, 407, 625, 430, 645, 451, 658, 487, 654, 509, 647, 554, 633, 587, 605, 612, 565, 635, 527, 591, 500, 565, 482, 557, 476, 515, 457, 506, 453, 506, 453]
			}],
			["502d16", {
				W: "M C C C C C C C C C C C Z".split(" "),
				d: [640, 524, 639, 539, 623, 540, 623, 540, 627, 522, 607, 504, 583, 488, 547, 465, 507, 445, 470, 434, 439, 426, 412, 417, 400, 437, 400, 437, 391, 424, 400, 414, 434, 370, 498, 356, 551, 376, 555, 349, 583, 317, 597, 321, 612, 326, 621, 346, 620, 350, 619, 354, 594, 352, 584, 368, 580, 375, 577, 382, 575, 387, 619, 412, 649, 460, 640, 524]
			}]
		]
	}, {
		st: "0000-0-skull",
		A2: [
			["808080", {
				W: "M C L C C L C L C C C C C C C L C L C C C C C C C C L C C L C L C C C C C C C L C L C L C C C C C C Z M C C C C Z M C C C C Z M L L L Z".split(" "),
				d: [396, 410, 398, 415, 398, 420, 398, 424, 420, 437, 433, 404, 465, 382, 501, 382, 538, 382, 569, 404, 582, 435, 602, 424, 602, 419, 603, 415, 604, 410, 604, 410, 609, 392, 622, 379, 633, 382, 643, 384, 648, 402, 643, 420, 643, 421, 642, 421, 642, 422, 643, 422, 643, 422, 644, 422, 662, 427, 675, 440, 672, 450, 669, 461, 652, 465, 633, 460, 628, 459, 624, 457, 620, 455, 589, 473, 588, 491, 582, 507, 572, 520, 607, 540, 611, 538, 615, 536, 620, 535, 639, 530, 656, 535, 659, 545, 662, 556, 649, 568, 630, 573, 630, 574, 629, 574, 629, 574, 629, 574, 629, 575, 629, 575, 634, 594, 630, 611, 619, 614, 609, 617, 596, 604, 591, 585, 590, 580, 589, 576, 589, 571, 565, 557, 564, 592, 536, 619, 501, 619, 466, 619, 438, 591, 437, 557, 412, 572, 411, 576, 411, 580, 410, 585, 410, 585, 405, 604, 392, 617, 381, 614, 371, 611, 366, 593, 371, 575, 371, 574, 371, 574, 372, 574, 371, 573, 371, 573, 370, 573, 352, 568, 339, 556, 342, 545, 345, 534, 362, 530, 381, 535, 385, 536, 390, 538, 394, 540, 430, 519, 421, 507, 415, 491, 414, 475, 380, 455, 376, 457, 372, 459, 367, 460, 367, 460, 349, 465, 331, 461, 328, 450, 326, 440, 338, 427, 357, 422, 357, 422, 358, 422, 358, 422, 358, 421, 358, 421, 358, 420, 353, 402, 357, 384, 368, 381, 379, 379, 391, 391, 396, 410, 463, 439, 445, 439, 431, 453, 431, 470, 431, 488, 445, 502, 463, 502, 480, 502, 494, 488, 494, 470, 494, 453, 480, 439, 463, 439, 540, 439, 522, 439, 508, 453, 508, 470, 508, 488, 522, 502, 540, 502, 557, 502, 571, 488, 571, 470, 571, 453, 557, 439, 540, 439, 483, 528, 518, 528, 500, 503, 483, 528]
			}]
		]
	}, {
		st: "0000-0-ghost",
		A2: [
			["e6e6e6", {
				W: "M C C C C C C C C C C L Z M C C C C C C C C Z M C C Z".split(" "),
				d: [653, 486, 653, 574, 689, 597, 689, 638, 689, 661, 640, 644, 620, 656, 601, 666, 609, 682, 583, 692, 563, 700, 538, 666, 512, 666, 490, 666, 451, 695, 433, 686, 415, 677, 416, 646, 388, 644, 367, 641, 313, 671, 313, 648, 313, 619, 346, 588, 346, 486, 346, 388, 415, 308, 500, 308, 584, 308, 653, 388, 653, 486, 653, 486, 449, 396, 428, 396, 412, 415, 412, 439, 412, 462, 428, 482, 449, 482, 465, 482, 478, 470, 484, 454, 489, 470, 503, 482, 519, 482, 539, 482, 556, 462, 556, 439, 556, 415, 539, 396, 519, 396, 503, 396, 489, 407, 484, 423, 478, 407, 465, 396, 449, 396, 482, 505, 441, 505, 465, 560, 482, 560, 503, 560, 524, 505, 482, 505]
			}],
			["000000", {
				W: "M C C C C Z M C C C C Z".split(" "),
				d: [526, 446, 526, 455, 519, 462, 510, 462, 501, 462, 494, 455, 494, 446, 494, 437, 501, 430, 510, 430, 519, 430, 526, 437, 526, 446, 475, 446, 475, 455, 468, 462, 459, 462, 450, 462, 442, 455, 442, 446, 442, 437, 450, 430, 459, 430, 468, 430, 475, 437, 475, 446]
			}]
		]
	}, {
		st: "1001-1-rose",
		A2: [
			["9e1460", {
				W: "M C C C C C C C C C Z M C C C C C C C C C Z".split(" "),
				d: [568, 83, 558, 83, 548, 88, 539, 96, 538, 98, 536, 99, 535, 101, 522, 115, 513, 134, 517, 149, 522, 172, 561, 200, 592, 207, 604, 210, 611, 215, 615, 221, 622, 234, 611, 258, 611, 258, 613, 260, 615, 264, 618, 264, 627, 266, 638, 241, 640, 236, 660, 188, 614, 83, 568, 83, 526, 125, 527, 97, 567, 68, 593, 75, 616, 81, 642, 121, 649, 152, 651, 165, 656, 172, 662, 176, 675, 183, 698, 173, 698, 173, 698, 173, 698, 173, 698, 173, 704, 176, 705, 179, 705, 180, 706, 189, 681, 199, 678, 200, 678, 200, 677, 201, 677, 201, 627, 220, 524, 170, 526, 125]
			}],
			["020304", {
				W: "M C C C C C Z M C C C C C Z M C C C C C Z M C C C C Z".split(" "),
				d: [60, 151, 60, 151, 37, 125, 60, 98, 83, 72, 95, 91, 115, 66, 134, 42, 117, 26, 120, 30, 123, 34, 146, 83, 132, 114, 114, 154, 60, 151, 60, 151, 280, 70, 280, 70, 258, 97, 283, 122, 308, 147, 318, 127, 339, 150, 361, 173, 344, 190, 347, 186, 350, 182, 370, 132, 354, 101, 333, 62, 280, 70, 280, 70, 61, 150, 61, 150, 27, 143, 30, 108, 33, 73, 54, 81, 55, 50, 57, 19, 33, 16, 38, 17, 43, 19, 91, 44, 98, 78, 107, 121, 61, 150, 61, 150, -27, 185, 184, 158, 222, 43, 352, 32, 444, 24, 538, 97, 538, 97, 538, 97, 453, 45, 354, 48, 241, 51, 185, 170, -27, 185]
			}]
		]
	}, {
		st: "1001-1-curls",
		A2: [
			["53a7ab", {
				W: "M C C C C C C C C C C C C C C C C L Z M C C C C C C C C C C C C C C C C L Z M C C C C C C C C C C C C C C C C C C C C C L Z".split(" "),
				d: [68, 114, 121, 103, 159, 110, 183, 135, 212, 169, 211, 204, 189, 237, 162, 277, 124, 291, 86, 276, 52, 263, 38, 236, 47, 202, 55, 168, 79, 151, 121, 156, 147, 162, 165, 177, 160, 205, 155, 228, 135, 241, 113, 237, 97, 234, 92, 221, 96, 205, 98, 195, 105, 194, 115, 200, 124, 205, 133, 204, 135, 197, 139, 183, 122, 167, 95, 171, 68, 176, 54, 193, 68, 220, 84, 252, 131, 261, 165, 238, 201, 202, 199, 164, 158, 136, 118, 113, 52, 122, -23, 151, 2, 134, 33, 122, 68, 114, 68, 114, 71, 83, 119, 75, 163, 79, 198, 107, 226, 129, 247, 174, 271, 207, 291, 229, 316, 241, 342, 232, 370, 222, 394, 206, 418, 209, 443, 212, 461, 238, 485, 258, 500, 272, 522, 276, 543, 271, 543, 271, 524, 279, 518, 281, 500, 287, 483, 277, 466, 256, 453, 243, 441, 230, 427, 223, 413, 217, 392, 220, 372, 229, 372, 230, 371, 230, 370, 230, 354, 241, 337, 251, 315, 250, 283, 248, 253, 222, 229, 172, 209, 133, 178, 106, 137, 94, 103, 84, 52, 94, -30, 133, -3, 108, 30, 91, 71, 83, 71, 83, 83, 54, 122, 46, 166, 49, 195, 67, 219, 82, 250, 122, 290, 168, 308, 186, 330, 194, 355, 192, 393, 183, 400, 145, 383, 118, 372, 101, 355, 91, 328, 91, 313, 92, 303, 98, 300, 109, 298, 116, 299, 125, 304, 131, 315, 147, 327, 152, 340, 149, 349, 149, 354, 132, 343, 131, 330, 131, 326, 129, 328, 120, 332, 97, 355, 100, 365, 114, 381, 137, 367, 165, 343, 168, 321, 170, 289, 150, 288, 117, 290, 77, 319, 58, 352, 64, 388, 74, 405, 104, 404, 141, 403, 177, 382, 202, 345, 207, 312, 211, 284, 191, 260, 161, 245, 141, 229, 122, 213, 106, 196, 84, 166, 73, 129, 67, 80, 62, 28, 79, -26, 108, 10, 79, 46, 63, 83, 54, 83, 54]
			}],
			["bbdc54", {
				W: "M C C C C C L Z M C C C C C L Z M C C C C L Z M C C C C L Z M C C C C C C C C C L Z M C C C C C C C C C C C C C C C C C C C C C C C C C C C C C L Z".split(" "),
				d: [321, 315, 287, 324, 252, 312, 211, 219, 217, 284, 239, 326, 279, 341, 324, 352, 362, 329, 398, 291, 316, 305, 258, 269, 217, 196, 238, 284, 274, 319, 321, 315, 321, 315, 211, 261, 223, 300, 234, 345, 252, 374, 220, 378, 194, 367, 193, 324, 194, 306, 198, 288, 206, 270, 197, 315, 204, 340, 221, 351, 206, 327, 202, 297, 211, 261, 211, 261, 206, 246, 193, 301, 170, 317, 138, 297, 162, 281, 184, 254, 205, 222, 201, 246, 191, 267, 174, 283, 186, 279, 197, 267, 206, 246, 206, 246, 378, 233, 370, 286, 337, 299, 294, 270, 312, 277, 330, 276, 347, 267, 294, 278, 259, 252, 234, 203, 280, 259, 327, 278, 378, 233, 378, 233, 626, 217, 604, 273, 555, 313, 511, 315, 484, 316, 438, 289, 432, 232, 450, 253, 488, 296, 511, 291, 532, 286, 551, 277, 566, 261, 527, 269, 498, 263, 480, 243, 478, 241, 478, 237, 480, 235, 486, 230, 504, 220, 519, 226, 537, 233, 551, 242, 567, 241, 591, 236, 611, 228, 626, 217, 626, 217, 411, 192, 432, 183, 439, 166, 420, 136, 443, 144, 460, 158, 466, 182, 470, 165, 456, 149, 430, 133, 459, 136, 485, 145, 505, 165, 503, 143, 463, 133, 434, 128, 486, 127, 526, 124, 539, 118, 505, 123, 470, 124, 435, 122, 461, 111, 483, 96, 500, 76, 475, 95, 450, 110, 424, 118, 450, 96, 465, 72, 466, 48, 458, 75, 440, 98, 419, 112, 424, 106, 428, 99, 428, 91, 429, 68, 413, 57, 393, 51, 419, 70, 426, 92, 411, 110, 408, 77, 385, 58, 343, 52, 383, 26, 422, 25, 445, 62, 458, 47, 465, 29, 467, 8, 477, 27, 479, 51, 475, 76, 497, 64, 515, 49, 528, 29, 524, 57, 515, 82, 496, 103, 521, 113, 549, 111, 579, 99, 560, 122, 535, 136, 502, 137, 518, 149, 521, 173, 514, 205, 505, 181, 492, 166, 476, 158, 483, 188, 470, 205, 447, 216, 456, 183, 451, 166, 438, 157, 444, 193, 426, 211, 379, 207, 403, 193, 416, 172, 416, 140, 434, 156, 428, 173, 411, 192, 411, 192]
			}]
		]
	}, {
		st: "0111-0-pines",
		A2: [
			["e9e9e9", {
				W: "M C C C C C C C C L L L Z".split(" "),
				d: [0, 946, 0, 946, 54, 960, 99, 944, 149, 927, 182, 954, 205, 956, 245, 960, 298, 940, 382, 974, 435, 995, 478, 957, 538, 956, 571, 955, 597, 969, 631, 968, 663, 967, 701, 938, 749, 944, 805, 950, 851, 960, 893, 946, 950, 928, 1e3, 946, 1e3, 946, 1e3, 1e3, 0, 1e3, 0, 946]
			}],
			["437a26", {
				W: "M C L C C C L L C C L L L L L C Z M C L C C C L L C C L L L L L C Z M C L C C C L L C C L L L L L C Z M C L C C C L L C C L L L L L C Z M C L C C C L L C C L L L L L C Z".split(" "),
				d: [119, 801, 120, 801, 148, 859, 148, 859, 137, 853, 137, 853, 155, 890, 155, 891, 156, 892, 138, 887, 140, 888, 141, 888, 171, 925, 171, 925, 126, 924, 125, 943, 125, 943, 105, 944, 106, 944, 107, 944, 106, 924, 106, 924, 61, 925, 93, 886, 77, 891, 100, 854, 89, 860, 89, 860, 119, 801, 119, 801, 286, 871, 286, 871, 303, 905, 303, 905, 296, 902, 296, 902, 307, 924, 307, 924, 307, 925, 297, 922, 297, 922, 298, 922, 316, 944, 316, 944, 289, 944, 289, 955, 289, 955, 277, 956, 278, 956, 278, 956, 278, 944, 278, 944, 251, 944, 270, 921, 260, 924, 274, 902, 268, 906, 268, 906, 285, 871, 286, 871, 526, 863, 526, 863, 546, 903, 546, 903, 538, 899, 538, 899, 550, 924, 550, 925, 550, 926, 539, 922, 540, 922, 540, 922, 561, 948, 561, 948, 530, 947, 529, 960, 529, 960, 516, 961, 517, 961, 518, 961, 517, 947, 517, 947, 486, 948, 508, 921, 497, 925, 513, 899, 505, 903, 505, 903, 526, 863, 526, 863, 731, 841, 731, 841, 752, 883, 752, 883, 744, 879, 744, 879, 757, 907, 757, 908, 758, 908, 745, 905, 746, 905, 747, 905, 769, 932, 769, 932, 736, 932, 735, 946, 735, 946, 721, 946, 721, 946, 722, 947, 721, 932, 721, 932, 688, 932, 712, 903, 700, 908, 717, 880, 709, 884, 709, 884, 731, 841, 731, 841, 889, 826, 889, 826, 914, 876, 914, 876, 904, 871, 904, 871, 920, 904, 920, 905, 920, 906, 906, 901, 907, 902, 908, 902, 934, 934, 934, 934, 894, 933, 894, 950, 894, 950, 877, 951, 878, 951, 879, 951, 878, 933, 878, 933, 838, 934, 866, 900, 852, 905, 872, 872, 862, 877, 862, 877, 889, 826, 889, 826]
			}]
		]
	}, {
		st: "0111-0-flowers",
		A2: [
			["8cae40", {
				W: "M C L C C C L C C L C C C L C C C L C C L C C L Z M C L C C C L C C L C C C L C C C L C C L C C L Z M C L C C C L C C L C C C L C C C L C C L C C L Z M C L C C C L C C L C C C L C C C L C C L C C L Z".split(" "),
				d: [182, 866, 160, 879, 146, 903, 135, 929, 135, 844, 177, 842, 228, 831, 230, 796, 231, 770, 207, 765, 182, 779, 160, 792, 146, 816, 135, 843, 135, 713, 135, 711, 134, 710, 132, 710, 130, 710, 128, 711, 128, 713, 128, 841, 117, 815, 103, 791, 82, 779, 57, 764, 33, 769, 34, 795, 36, 830, 86, 841, 128, 844, 128, 930, 117, 903, 103, 880, 82, 867, 57, 853, 33, 858, 34, 884, 36, 919, 86, 930, 128, 932, 128, 1009, 128, 1010, 130, 1012, 132, 1012, 134, 1012, 135, 1010, 135, 1009, 135, 931, 177, 928, 228, 918, 230, 882, 231, 856, 207, 851, 182, 866, 182, 866, 447, 904, 430, 898, 412, 904, 394, 916, 394, 861, 413, 873, 431, 879, 447, 873, 458, 868, 458, 852, 447, 848, 430, 841, 412, 848, 394, 859, 394, 788, 394, 787, 393, 786, 391, 786, 389, 786, 388, 787, 388, 788, 388, 859, 370, 847, 352, 841, 336, 848, 325, 852, 325, 868, 336, 873, 352, 879, 370, 873, 388, 862, 388, 915, 370, 904, 352, 898, 336, 904, 325, 909, 325, 925, 336, 929, 352, 936, 370, 930, 388, 918, 388, 1009, 388, 1010, 389, 1011, 391, 1011, 393, 1011, 394, 1010, 394, 1009, 394, 918, 413, 930, 431, 936, 447, 929, 458, 925, 458, 909, 447, 904, 447, 904, 662, 943, 650, 954, 641, 972, 634, 993, 634, 914, 659, 907, 680, 895, 692, 873, 707, 846, 686, 836, 662, 859, 650, 870, 641, 888, 634, 909, 634, 818, 634, 816, 632, 815, 631, 815, 629, 815, 628, 816, 628, 818, 628, 908, 621, 887, 612, 870, 600, 859, 576, 836, 555, 846, 570, 873, 582, 895, 603, 907, 628, 914, 628, 992, 621, 971, 612, 954, 600, 943, 576, 920, 555, 930, 570, 957, 582, 978, 603, 990, 628, 998, 628, 1009, 628, 1010, 629, 1011, 631, 1011, 632, 1011, 634, 1010, 634, 1009, 634, 998, 659, 991, 680, 978, 692, 957, 707, 930, 686, 920, 662, 943, 662, 943, 892, 842, 875, 857, 862, 882, 850, 912, 850, 822, 874, 817, 896, 805, 908, 778, 919, 755, 896, 751, 877, 769, 866, 779, 857, 796, 850, 815, 850, 737, 850, 736, 848, 735, 847, 735, 845, 735, 844, 736, 844, 737, 844, 815, 836, 795, 828, 779, 817, 769, 798, 751, 775, 755, 785, 777, 797, 804, 820, 817, 844, 822, 844, 912, 832, 882, 818, 857, 801, 842, 772, 816, 737, 822, 753, 854, 772, 894, 806, 911, 844, 918, 844, 1009, 844, 1010, 845, 1011, 847, 1011, 848, 1011, 850, 1010, 850, 1009, 850, 918, 887, 911, 922, 894, 941, 854, 957, 822, 922, 816, 892, 842, 892, 842]
			}],
			["d13777", {
				W: "M L C L L C C C C L L Z M C C C C Z M L C L L C C C C L L Z M C C C C Z M L C L L C C C C L L Z M C C C C Z M L C L L C C C C L L Z M C C C C Z M L C L L C C C C L L Z M C C C C Z M C C C C C C C Z M C C C C C C L Z M C C C C C C C L Z M C C C C C C L Z M C C C C C C C L Z M C C C C C C L Z M C C C C C C C L Z M C C C C C C L Z M C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C Z M C C C C Z M C C L L C C C C L L C C L L C C C C L C C C C L Z M C C C Z M C C C L Z M C C C L Z".split(" "),
				d: [125, 603, 115, 617, 112, 619, 110, 618, 111, 615, 122, 600, 119, 597, 75, 614, 43, 631, 32, 650, 22, 675, 36, 694, 65, 682, 59, 716, 94, 722, 111, 696, 120, 687, 126, 657, 129, 604, 125, 603, 125, 603, 104, 638, 99, 638, 95, 634, 95, 629, 95, 624, 99, 620, 104, 620, 109, 620, 113, 624, 113, 629, 113, 634, 109, 638, 104, 638, 117, 587, 100, 582, 98, 579, 99, 578, 102, 577, 119, 583, 121, 580, 92, 543, 65, 517, 44, 513, 17, 512, 4, 531, 24, 555, -10, 560, -6, 594, 24, 603, 36, 609, 67, 605, 118, 591, 118, 587, 117, 587, 78, 578, 77, 573, 79, 568, 84, 567, 88, 565, 93, 568, 95, 573, 96, 577, 94, 582, 89, 584, 85, 585, 80, 583, 78, 578, 130, 575, 130, 557, 131, 554, 133, 555, 135, 557, 135, 575, 138, 576, 164, 537, 180, 504, 177, 482, 171, 456, 148, 449, 132, 476, 117, 445, 85, 460, 86, 491, 84, 504, 97, 532, 126, 577, 130, 575, 130, 575, 126, 535, 130, 532, 136, 533, 139, 537, 142, 541, 141, 546, 137, 549, 133, 552, 127, 551, 125, 547, 122, 543, 122, 538, 126, 535, 146, 584, 162, 577, 165, 578, 166, 580, 164, 582, 146, 588, 147, 591, 193, 604, 229, 609, 249, 600, 271, 585, 271, 562, 240, 554, 265, 530, 241, 505, 212, 516, 199, 518, 176, 539, 143, 580, 146, 584, 146, 584, 183, 567, 187, 570, 187, 576, 185, 580, 182, 584, 176, 585, 172, 582, 168, 579, 167, 573, 170, 569, 173, 565, 179, 565, 183, 567, 142, 601, 153, 615, 153, 618, 152, 619, 149, 618, 138, 603, 135, 605, 137, 652, 144, 688, 159, 704, 180, 721, 202, 713, 199, 681, 230, 698, 246, 667, 227, 643, 221, 631, 194, 616, 145, 597, 142, 601, 142, 601, 169, 631, 167, 636, 162, 638, 158, 637, 153, 635, 151, 630, 152, 625, 154, 621, 159, 618, 163, 620, 168, 621, 170, 626, 169, 631, 376, 691, 343, 693, 320, 697, 309, 706, 297, 714, 291, 729, 294, 756, 294, 767, 295, 779, 294, 788, 305, 786, 320, 788, 335, 788, 353, 787, 369, 782, 375, 773, 382, 764, 386, 739, 388, 703, 381, 702, 377, 699, 376, 691, 363, 745, 357, 757, 351, 761, 345, 761, 337, 760, 337, 751, 343, 737, 330, 742, 322, 742, 319, 735, 317, 728, 322, 723, 331, 718, 346, 712, 360, 708, 374, 706, 373, 720, 369, 733, 363, 745, 363, 745, 388, 680, 387, 646, 383, 623, 375, 612, 366, 600, 351, 594, 325, 596, 314, 596, 302, 597, 293, 595, 295, 607, 292, 622, 292, 637, 292, 654, 298, 671, 306, 676, 315, 684, 340, 689, 376, 692, 377, 684, 381, 680, 388, 680, 388, 680, 334, 665, 323, 659, 318, 654, 319, 648, 320, 639, 329, 640, 343, 645, 338, 632, 339, 625, 345, 621, 352, 620, 358, 625, 362, 634, 368, 649, 372, 664, 373, 677, 360, 676, 347, 671, 334, 665, 334, 665, 399, 691, 433, 690, 456, 686, 467, 678, 479, 670, 485, 655, 484, 629, 484, 617, 482, 606, 484, 597, 472, 598, 458, 595, 442, 596, 425, 596, 409, 601, 403, 610, 395, 618, 391, 643, 388, 679, 395, 680, 399, 684, 399, 691, 399, 691, 414, 638, 420, 626, 426, 622, 432, 622, 440, 624, 440, 633, 434, 646, 447, 641, 455, 642, 458, 648, 459, 656, 454, 661, 445, 665, 430, 671, 416, 675, 402, 677, 403, 663, 408, 650, 414, 638, 414, 638, 388, 703, 390, 736, 394, 759, 403, 770, 411, 782, 426, 788, 452, 785, 464, 785, 475, 784, 485, 785, 483, 774, 485, 759, 485, 744, 484, 726, 479, 710, 470, 704, 461, 697, 436, 693, 400, 691, 399, 698, 395, 702, 388, 703, 388, 703, 442, 716, 453, 722, 458, 728, 458, 734, 456, 742, 447, 742, 434, 736, 439, 749, 438, 757, 432, 760, 425, 762, 419, 757, 415, 748, 409, 733, 404, 719, 403, 705, 416, 706, 429, 710, 442, 716, 442, 716, 722, 716, 722, 701, 710, 690, 696, 690, 695, 690, 694, 690, 693, 690, 693, 689, 694, 689, 695, 688, 705, 678, 705, 662, 695, 651, 685, 641, 668, 641, 658, 651, 658, 652, 657, 653, 656, 654, 656, 653, 656, 652, 656, 651, 656, 637, 645, 625, 630, 625, 616, 625, 605, 637, 605, 651, 605, 652, 605, 653, 605, 654, 604, 654, 604, 653, 603, 652, 593, 642, 576, 642, 566, 652, 556, 662, 556, 679, 566, 689, 567, 690, 568, 690, 569, 691, 568, 691, 567, 691, 566, 691, 552, 691, 540, 702, 540, 717, 540, 731, 552, 743, 566, 743, 567, 743, 568, 743, 569, 742, 569, 743, 568, 744, 567, 744, 557, 754, 557, 771, 567, 781, 577, 791, 594, 791, 604, 781, 605, 780, 605, 779, 606, 778, 606, 779, 606, 780, 606, 781, 606, 795, 617, 807, 632, 807, 646, 807, 657, 795, 657, 781, 657, 780, 657, 779, 657, 778, 658, 779, 658, 779, 659, 780, 669, 790, 686, 790, 696, 780, 706, 770, 706, 754, 696, 743, 695, 743, 694, 742, 693, 741, 694, 741, 695, 741, 696, 741, 710, 741, 722, 730, 722, 716, 631, 762, 605, 762, 585, 742, 585, 716, 585, 691, 605, 670, 631, 670, 657, 670, 677, 691, 677, 716, 677, 742, 657, 762, 631, 762, 958, 602, 957, 570, 951, 547, 940, 532, 925, 541, 905, 565, 887, 591, 886, 591, 886, 546, 892, 545, 897, 540, 897, 533, 897, 527, 891, 521, 884, 521, 877, 521, 872, 527, 872, 533, 872, 540, 876, 545, 882, 546, 882, 591, 882, 591, 870, 564, 860, 536, 848, 525, 833, 541, 820, 565, 808, 592, 807, 592, 807, 546, 813, 545, 817, 540, 817, 533, 817, 527, 812, 521, 805, 521, 798, 521, 792, 527, 792, 533, 792, 540, 797, 545, 802, 546, 802, 590, 784, 567, 766, 545, 755, 534, 729, 588, 731, 639, 766, 684, 787, 711, 814, 726, 847, 725, 919, 724, 960, 659, 958, 602, 958, 602, 783, 671, 772, 653, 777, 645, 789, 648, 812, 656, 830, 682, 840, 711, 821, 704, 797, 692, 783, 671, 836, 634, 840, 614, 850, 612, 856, 622, 867, 644, 861, 676, 848, 703, 840, 684, 831, 659, 836, 634, 836, 634, 919, 659, 911, 682, 885, 701, 856, 711, 863, 692, 875, 668, 896, 654, 913, 642, 922, 647, 919, 659, 919, 659]
			}]
		]
	}, {
		st: "1101-1-confetti",
		A2: [
			["e789ff", {
				W: "M C C C C C Z M C C C C C C C Z M C C C C C C C Z M C C C C C Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z".split(" "),
				d: [170, 439, 169, 438, 59, 370, 108, 300, 152, 238, 298, 276, 318, 337, 338, 398, 265, 380, 285, 358, 312, 328, 185, 247, 121, 307, 72, 353, 171, 440, 170, 439, 318, 338, 336, 399, 262, 408, 184, 346, 138, 309, 73, 237, 112, 174, 167, 88, 345, 115, 377, 222, 393, 276, 296, 260, 335, 236, 375, 212, 236, 111, 155, 183, 73, 254, 265, 380, 285, 358, 312, 328, 318, 338, 318, 338, 377, 222, 394, 276, 318, 288, 243, 236, 187, 197, 146, 120, 201, 56, 254, -5, 365, 26, 407, 68, 407, 68, 414, 94, 378, 71, 344, 50, 258, 31, 221, 89, 178, 154, 297, 260, 336, 235, 374, 211, 377, 222, 377, 222, 406, 70, 452, 115, 432, 189, 324, 115, 214, 39, 323, -85, 322, -85, 320, -85, 229, 38, 331, 100, 439, 166, 413, 95, 377, 72, 343, 51, 364, 28, 406, 70, 346, 405, 369, 418, 356, 441, 333, 428, 346, 405, 513, 298, 536, 311, 523, 334, 500, 321, 513, 298, 891, 91, 914, 104, 901, 127, 878, 114, 891, 91, 24, 123, 47, 136, 34, 159, 11, 146, 24, 123, 664, 33, 687, 46, 674, 69, 651, 56, 664, 33, 910, 482, 933, 495, 920, 518, 897, 505, 910, 482]
			}],
			["666666", {
				W: "M C C C C C Z M C C C C C C C Z M C C C C C C C Z M C C C C C Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z".split(" "),
				d: [919, 442, 917, 443, 802, 510, 764, 432, 730, 364, 837, 250, 901, 261, 965, 272, 913, 329, 903, 301, 889, 262, 755, 338, 777, 424, 794, 490, 920, 442, 919, 442, 901, 261, 964, 274, 936, 345, 842, 386, 787, 410, 690, 435, 654, 370, 604, 279, 716, 132, 827, 153, 883, 164, 821, 244, 819, 197, 817, 150, 659, 228, 682, 335, 706, 443, 913, 329, 903, 301, 889, 262, 901, 261, 901, 261, 827, 153, 884, 163, 857, 238, 774, 281, 711, 313, 622, 313, 593, 233, 564, 157, 647, 71, 705, 54, 705, 54, 732, 60, 694, 82, 658, 102, 599, 170, 632, 231, 669, 301, 822, 244, 819, 197, 816, 150, 827, 153, 827, 153, 706, 54, 769, 34, 825, 87, 706, 149, 583, 213, 527, 56, 526, 57, 526, 59, 590, 200, 696, 137, 807, 70, 732, 60, 694, 82, 658, 102, 648, 73, 706, 54, 362, 328, 383, 340, 371, 361, 350, 349, 362, 328, 52, 189, 73, 201, 61, 222, 40, 210, 52, 189, 509, 119, 530, 131, 517, 152, 496, 140, 509, 119, 912, 16, 933, 28, 921, 49, 900, 37, 912, 16, 629, 380, 650, 392, 638, 413, 617, 401, 629, 380, 77, 414, 98, 426, 86, 447, 65, 435, 77, 414, 240, 76, 261, 88, 249, 109, 228, 97, 240, 76]
			}]
		]
	}, {
		st: "1101-1-branch",
		A2: [
			["7f500b", {
				W: "M C C C L C C Z M C C C L C C Z M C C C L C C Z M C C C L C C Z M C C C L C C Z M C C C L C C Z".split(" "),
				d: [144, -14, 144, -14, 149, -12, 150, -12, 150, -12, 106, 22, 86, 75, 63, 137, 93, 193, 69, 238, 64, 236, 89, 174, 53, 146, 80, 72, 99, 19, 144, -14, 144, -14, 280, -18, 281, -18, 276, -20, 276, -20, 276, -20, 282, 23, 264, 64, 244, 113, 196, 129, 185, 168, 189, 170, 209, 120, 244, 123, 269, 66, 288, 25, 280, -18, 280, -18, 429, -5, 429, -5, 434, -4, 434, -4, 435, -4, 405, 28, 396, 72, 386, 124, 415, 164, 402, 203, 398, 202, 410, 150, 379, 132, 391, 70, 399, 26, 429, -5, 429, -5, 514, -7, 514, -7, 519, -12, 519, -12, 520, -12, 532, 50, 577, 96, 630, 151, 703, 150, 738, 197, 733, 201, 681, 144, 635, 166, 571, 101, 526, 54, 514, -7, 514, -7, 666, -67, 666, -68, 663, -65, 662, -64, 662, -64, 704, -52, 734, -18, 768, 22, 763, 72, 793, 99, 796, 96, 760, 57, 778, 26, 737, -22, 708, -56, 666, -67, 666, -67, 936, -8, 936, -8, 932, -9, 931, -9, 931, -9, 947, 32, 938, 76, 927, 127, 884, 154, 881, 194, 886, 195, 895, 142, 930, 138, 943, 76, 952, 32, 936, -8, 936, -8]
			}],
			["5c7f0b", {
				W: "M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z".split(" "),
				d: [119, 6, 121, 16, 113, 31, 81, 33, 58, 34, 27, 27, 27, 27, 27, 27, 53, 5, 70, -1, 93, -9, 117, -4, 119, 6, 124, 8, 132, 1, 151, 12, 165, 33, 179, 54, 180, 87, 180, 87, 180, 87, 153, 75, 139, 60, 122, 41, 115, 14, 124, 8, 78, 74, 82, 83, 76, 97, 48, 103, 27, 108, -2, 105, -2, 105, -2, 105, 19, 81, 33, 74, 53, 64, 75, 65, 78, 74, 83, 75, 90, 68, 108, 76, 124, 93, 139, 110, 144, 140, 144, 140, 144, 140, 117, 132, 104, 121, 85, 105, 76, 83, 83, 75, 72, 152, 75, 159, 72, 172, 48, 179, 30, 185, 6, 185, 6, 185, 6, 185, 22, 163, 33, 156, 49, 145, 68, 145, 72, 152, 76, 153, 81, 146, 98, 151, 112, 165, 126, 178, 133, 203, 133, 203, 133, 203, 110, 199, 97, 190, 80, 178, 70, 160, 76, 153, 73, 206, 75, 213, 71, 224, 49, 228, 34, 232, 12, 230, 12, 230, 12, 230, 28, 212, 39, 206, 53, 199, 70, 200, 73, 206, 76, 207, 81, 202, 95, 207, 107, 220, 118, 233, 122, 255, 122, 255, 122, 255, 102, 250, 92, 241, 78, 230, 71, 213, 76, 207, 70, 232, 78, 236, 76, 252, 66, 269, 56, 286, 33, 297, 33, 297, 33, 297, 33, 274, 39, 260, 46, 241, 62, 228, 70, 232, 285, 3, 278, 8, 274, 21, 291, 39, 304, 52, 325, 63, 325, 63, 325, 63, 323, 36, 316, 24, 308, 7, 291, -2, 285, 3, 281, 1, 280, -7, 263, -10, 244, -5, 224, 1, 205, 20, 205, 20, 205, 20, 228, 27, 244, 25, 264, 22, 283, 10, 281, 1, 270, 65, 264, 69, 259, 80, 272, 99, 281, 112, 299, 125, 299, 125, 299, 125, 300, 100, 296, 88, 290, 72, 277, 61, 270, 65, 267, 64, 267, 56, 252, 51, 234, 53, 216, 56, 197, 71, 197, 71, 197, 71, 216, 80, 230, 80, 249, 80, 267, 72, 267, 64, 231, 116, 225, 119, 220, 128, 230, 145, 237, 157, 251, 170, 251, 170, 251, 170, 254, 148, 251, 138, 248, 123, 237, 113, 231, 116, 228, 114, 229, 108, 217, 102, 201, 103, 186, 103, 168, 115, 168, 115, 168, 115, 184, 124, 196, 126, 212, 127, 228, 121, 228, 114, 201, 148, 196, 151, 192, 160, 202, 174, 209, 184, 222, 194, 222, 194, 222, 194, 223, 175, 220, 166, 216, 154, 206, 145, 201, 148, 198, 147, 198, 141, 187, 137, 174, 139, 160, 141, 145, 152, 145, 152, 145, 152, 160, 159, 171, 159, 185, 160, 198, 153, 198, 147, 188, 165, 182, 163, 173, 174, 170, 190, 167, 205, 173, 224, 173, 224, 173, 224, 186, 210, 191, 198, 197, 183, 195, 166, 188, 165, 415, 10, 417, 18, 413, 31, 389, 36, 371, 39, 347, 37, 347, 37, 347, 37, 364, 16, 377, 9, 393, 0, 412, 2, 415, 10, 418, 11, 424, 4, 440, 11, 453, 27, 466, 43, 470, 69, 470, 69, 470, 69, 448, 62, 436, 52, 420, 38, 412, 17, 418, 11, 391, 69, 394, 76, 392, 89, 371, 96, 355, 102, 333, 103, 333, 103, 333, 103, 346, 81, 357, 74, 371, 64, 388, 63, 391, 69, 395, 70, 399, 63, 414, 68, 428, 80, 441, 92, 448, 116, 448, 116, 448, 116, 427, 113, 415, 105, 400, 94, 390, 77, 395, 70, 395, 133, 398, 139, 397, 150, 379, 158, 367, 164, 348, 167, 348, 167, 348, 167, 358, 148, 366, 140, 377, 130, 391, 128, 395, 133, 398, 134, 401, 128, 414, 130, 427, 140, 439, 149, 447, 169, 447, 169, 447, 169, 429, 167, 418, 162, 404, 154, 394, 140, 398, 134, 401, 177, 404, 182, 402, 192, 386, 198, 374, 202, 358, 203, 358, 203, 358, 203, 368, 187, 375, 181, 386, 173, 399, 172, 401, 177, 404, 178, 408, 173, 419, 176, 429, 185, 439, 194, 445, 212, 445, 212, 445, 212, 429, 210, 420, 204, 408, 196, 401, 183, 404, 178, 402, 198, 408, 201, 409, 214, 403, 229, 397, 244, 381, 255, 381, 255, 381, 255, 378, 236, 381, 224, 385, 208, 396, 196, 402, 198, 519, 23, 531, 26, 543, 42, 528, 75, 518, 99, 495, 125, 495, 125, 495, 125, 485, 87, 487, 67, 490, 40, 508, 19, 519, 23, 523, 19, 521, 7, 542, -6, 571, -8, 600, -10, 636, 6, 636, 6, 636, 6, 609, 27, 586, 32, 557, 39, 526, 32, 523, 19, 570, 100, 581, 102, 594, 115, 585, 147, 579, 170, 562, 197, 562, 197, 562, 197, 548, 163, 547, 145, 547, 120, 560, 98, 570, 100, 574, 97, 570, 86, 587, 72, 613, 66, 639, 60, 673, 71, 673, 71, 673, 71, 652, 93, 632, 101, 607, 110, 578, 107, 574, 97, 649, 149, 659, 150, 670, 160, 666, 188, 662, 208, 650, 232, 650, 232, 650, 232, 635, 205, 633, 189, 631, 168, 640, 149, 649, 149, 652, 146, 648, 137, 662, 123, 683, 116, 705, 109, 734, 116, 734, 116, 734, 116, 718, 137, 702, 145, 681, 155, 657, 155, 652, 146, 707, 178, 715, 179, 724, 189, 718, 213, 714, 230, 701, 250, 701, 250, 701, 250, 690, 225, 690, 211, 689, 193, 699, 177, 707, 178, 710, 175, 707, 167, 720, 156, 739, 151, 759, 147, 784, 155, 784, 155, 784, 155, 768, 172, 753, 177, 734, 185, 713, 183, 710, 175, 732, 194, 740, 189, 757, 199, 770, 218, 782, 237, 783, 266, 783, 266, 783, 266, 758, 254, 746, 240, 730, 223, 724, 199, 732, 194, 687, -62, 688, -54, 699, -45, 722, -53, 739, -59, 759, -73, 759, -73, 759, -73, 733, -82, 719, -82, 701, -81, 685, -71, 687, -62, 684, -60, 676, -62, 666, -48, 662, -28, 659, -9, 669, 17, 669, 17, 669, 17, 684, -1, 689, -16, 696, -35, 692, -57, 684, -60, 737, -23, 738, -15, 746, -5, 768, -9, 784, -12, 804, -23, 804, -23, 804, -23, 782, -34, 769, -36, 752, -38, 736, -30, 737, -23, 734, -20, 727, -24, 716, -13, 711, 5, 705, 22, 711, 46, 711, 46, 711, 46, 727, 33, 734, 20, 742, 3, 742, -17, 734, -20, 766, 35, 766, 41, 772, 50, 792, 48, 806, 47, 823, 40, 823, 40, 823, 40, 805, 28, 795, 26, 780, 23, 766, 28, 766, 35, 763, 37, 758, 33, 747, 42, 741, 56, 735, 70, 738, 91, 738, 91, 738, 91, 753, 81, 760, 71, 768, 57, 769, 40, 763, 37, 782, 76, 783, 82, 789, 89, 806, 86, 818, 84, 832, 76, 832, 76, 832, 76, 816, 67, 806, 66, 794, 65, 782, 70, 782, 76, 780, 78, 775, 75, 766, 84, 762, 97, 758, 110, 762, 128, 762, 128, 762, 128, 775, 118, 779, 108, 786, 95, 785, 80, 780, 78, 792, 94, 788, 100, 794, 112, 807, 122, 819, 131, 839, 133, 839, 133, 839, 133, 832, 116, 823, 107, 812, 95, 796, 89, 792, 94, 945, 11, 939, 18, 938, 31, 959, 45, 974, 55, 997, 62, 997, 62, 997, 62, 989, 36, 980, 25, 968, 11, 950, 5, 945, 11, 941, 11, 938, 3, 921, 3, 903, 13, 885, 22, 871, 45, 871, 45, 871, 45, 894, 47, 909, 42, 929, 35, 944, 19, 941, 11, 944, 75, 938, 80, 935, 93, 952, 108, 964, 119, 984, 128, 984, 128, 984, 128, 980, 104, 974, 93, 965, 78, 949, 70, 944, 75, 940, 75, 938, 67, 923, 65, 906, 71, 889, 77, 873, 96, 873, 96, 873, 96, 894, 101, 908, 99, 926, 95, 942, 82, 940, 75, 916, 133, 911, 137, 907, 147, 920, 162, 930, 172, 946, 182, 946, 182, 946, 182, 944, 160, 940, 151, 933, 137, 921, 129, 916, 133, 913, 132, 912, 125, 899, 123, 884, 127, 869, 130, 854, 145, 854, 145, 854, 145, 871, 151, 883, 150, 899, 148, 913, 139, 913, 132, 893, 171, 888, 175, 887, 184, 899, 196, 908, 204, 923, 211, 923, 211, 923, 211, 920, 193, 915, 184, 909, 173, 897, 167, 893, 171, 890, 170, 889, 165, 877, 163, 864, 168, 851, 172, 839, 187, 839, 187, 839, 187, 855, 190, 865, 188, 879, 186, 891, 176, 890, 170, 884, 190, 877, 190, 871, 202, 871, 218, 871, 234, 881, 251, 881, 251, 881, 251, 891, 234, 893, 222, 896, 206, 890, 190, 884, 190]
			}]
		]
	}, {
		st: "1101-1-sticks",
		A2: [
			["ec7272", {
				W: "M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z".split(" "),
				d: [260, 148, 297, 180, 286, 192, 249, 160, 260, 148, 114, 31, 161, 47, 155, 63, 109, 47, 114, 31, 931, 91, 902, 52, 915, 42, 945, 81, 931, 91, 711, 19, 746, -15, 758, -3, 723, 31, 711, 19, 812, 161, 782, 122, 795, 112, 825, 151, 812, 161, 389, 34, 424, 0, 436, 12, 401, 46, 389, 34, 431, 209, 465, 175, 477, 186, 442, 221, 431, 209, 282, 90, 282, 41, 299, 41, 299, 90, 282, 90, 58, 233, 29, 194, 42, 184, 72, 223, 58, 233, 574, 58, 621, 74, 615, 90, 569, 74, 574, 58]
			}],
			["0000ff", {
				W: "M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z M L L L L Z".split(" "),
				d: [722, 208, 733, 161, 717, 157, 706, 205, 722, 208, 843, 12, 797, 28, 802, 44, 849, 28, 843, 12, 31, 74, 60, 35, 47, 25, 18, 64, 31, 74, 220, 21, 185, -13, 173, -1, 208, 33, 220, 21, 140, 166, 170, 127, 157, 117, 127, 156, 140, 166, 558, 148, 523, 114, 511, 126, 546, 160, 558, 148, 562, 9, 516, 25, 521, 41, 568, 25, 562, 9, 697, 105, 726, 66, 713, 56, 684, 95, 697, 105, 961, 180, 990, 141, 977, 131, 948, 170, 961, 180, 399, 97, 353, 113, 358, 129, 405, 113, 399, 97]
			}]
		]
	}, {
		st: "1101-1-dots",
		A2: [
			["ec7272", {
				W: "M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z".split(" "),
				d: [154, 47, 144, 47, 136, 39, 136, 29, 136, 19, 144, 11, 154, 11, 164, 11, 172, 19, 172, 29, 172, 39, 164, 47, 154, 47, 272, 164, 262, 164, 254, 156, 254, 146, 254, 136, 262, 128, 272, 128, 282, 128, 290, 136, 290, 146, 290, 156, 282, 164, 272, 164, 529, 48, 519, 48, 511, 40, 511, 30, 511, 20, 519, 12, 529, 12, 539, 12, 547, 20, 547, 30, 547, 40, 539, 48, 529, 48, 696, 101, 686, 101, 678, 93, 678, 83, 678, 73, 686, 65, 696, 65, 706, 65, 714, 73, 714, 83, 714, 93, 706, 101, 696, 101, 929, 91, 919, 91, 911, 83, 911, 73, 911, 63, 919, 55, 929, 55, 939, 55, 947, 63, 947, 73, 947, 83, 939, 91, 929, 91]
			}],
			["0000ff", {
				W: "M C C C C Z M C C C C Z M C C C C Z M C C C C Z M C C C C Z".split(" "),
				d: [66, 122, 56, 122, 48, 114, 48, 104, 48, 94, 56, 86, 66, 86, 76, 86, 84, 94, 84, 104, 84, 114, 76, 122, 66, 122, 309, 55, 299, 55, 291, 47, 291, 37, 291, 27, 299, 19, 309, 19, 319, 19, 327, 27, 327, 37, 327, 47, 319, 55, 309, 55, 785, 180, 775, 180, 767, 172, 767, 162, 767, 152, 775, 144, 785, 144, 795, 144, 803, 152, 803, 162, 803, 172, 795, 180, 785, 180, 459, 147, 449, 147, 441, 139, 441, 129, 441, 119, 449, 111, 459, 111, 469, 111, 477, 119, 477, 129, 477, 139, 469, 147, 459, 147, 811, 48, 801, 48, 793, 40, 793, 30, 793, 20, 801, 12, 811, 12, 821, 12, 829, 20, 829, 30, 829, 40, 821, 48, 811, 48]
			}],
			["88a500", {
				W: ["M", "C", "C", "Z"],
				d: [389, 224, 389, 224, 410, 230, 410, 230, 410, 230, 389, 224, 389, 224]
			}]
		]
	}, {
		st: "1101-1-strips",
		A2: [
			["ffc88c", {
				W: "M L L L L Z M L L L L Z M L L L L Z".split(" "),
				d: [-40, 0, 44, 0, 137, 99, 53, 99, -40, 0, 296, 0, 380, 0, 473, 99, 389, 99, 296, 0, 632, 0, 716, 0, 809, 99, 725, 99, 632, 0]
			}],
			["88a500", {
				W: "M L L L L Z M L L L L Z M L L L L Z".split(" "),
				d: [128, 0, 212, 0, 305, 99, 221, 99, 128, 0, 464, 0, 548, 0, 641, 99, 557, 99, 464, 0, 800, 0, 884, 0, 977, 99, 893, 99, 800, 0]
			}],
			["88a500", {
				W: ["M", "C", "C", "Z"],
				d: [407, 217, 407, 217, 428, 223, 428, 223, 428, 223, 407, 217, 407, 217]
			}]
		]
	}, {
		st: "1101-1-circs",
		A2: [
			["ec7272", {
				W: "M C C C C Z M C C C C Z".split(" "),
				d: [61, 209, 27, 209, 0, 181, 0, 147, 0, 113, 27, 86, 61, 86, 96, 86, 123, 113, 123, 147, 123, 181, 96, 209, 61, 209, 551, 209, 517, 209, 489, 181, 489, 147, 489, 113, 517, 86, 551, 86, 585, 86, 612, 113, 612, 147, 612, 181, 585, 209, 551, 209]
			}],
			["217995", {
				W: "M C C C C Z M C C C C Z".split(" "),
				d: [303, 209, 269, 209, 241, 181, 241, 147, 241, 113, 269, 86, 303, 86, 337, 86, 364, 113, 364, 147, 364, 181, 337, 209, 303, 209, 799, 209, 765, 209, 738, 181, 738, 147, 738, 113, 765, 86, 799, 86, 834, 86, 861, 113, 861, 147, 861, 181, 834, 209, 799, 209]
			}],
			["88a500", {
				W: ["M", "C", "C", "Z"],
				d: [530, 273, 530, 273, 551, 279, 551, 279, 551, 279, 530, 273, 530, 273]
			}]
		]
	}, {
		st: "1101-1-squares",
		A2: [
			["014ea7", {
				W: "M L L L L Z M L L L L Z".split(" "),
				d: [0, 120, 124, 120, 124, 244, 0, 244, 0, 120, 497, 120, 621, 120, 621, 244, 497, 244, 497, 120]
			}],
			["fc54ff", {
				W: "M L L L L Z M L L L L Z".split(" "),
				d: [249, 120, 373, 120, 373, 244, 249, 244, 249, 120, 746, 120, 870, 120, 870, 244, 746, 244, 746, 120]
			}],
			["88a500", {
				W: ["M", "C", "C", "Z"],
				d: [389, 354, 389, 354, 410, 360, 410, 360, 410, 360, 389, 354, 389, 354]
			}]
		]
	}, {
		st: "1101-0-christmas",
		A2: [
			["014ea7", {
				W: "M C C C C Z M C C C C Z M L L L L Z".split(" "),
				d: [255, 480, 178, 480, 116, 418, 116, 341, 116, 264, 178, 202, 255, 202, 332, 202, 394, 264, 394, 341, 394, 418, 332, 480, 255, 480, 255, 232, 236, 232, 221, 217, 221, 198, 221, 179, 236, 164, 255, 164, 274, 164, 289, 179, 289, 198, 289, 217, 274, 232, 255, 232, 251, -152, 260, -152, 260, 248, 251, 248, 251, -152]
			}],
			["ff9518", {
				W: "M C C C C Z M C C C C Z M L L L L Z".split(" "),
				d: [746, 623, 669, 623, 607, 561, 607, 484, 607, 407, 669, 345, 746, 345, 823, 345, 885, 407, 885, 484, 885, 561, 823, 623, 746, 623, 747, 376, 728, 376, 713, 361, 713, 342, 713, 323, 728, 308, 747, 308, 766, 308, 781, 323, 781, 342, 781, 361, 766, 376, 747, 376, 742, -8, 751, -8, 751, 392, 742, 392, 742, -8]
			}]
		]
	}];
	var fm = {};
	fm.parse = function (F) {
		var P = new Uint8Array(F),
			o = null;
		if (P[0] == 80 && P[1] == 75) {
			var X = Date.now(),
				Y = UZIP.parse(P.buffer),
				o = Y["document.json"];
			o = JSON.parse(r.bc(o, 0, o.length));
			fm.z8(o, Y)
		} else {
			var y = gV.parse(F);
			o = fm.v_(y[2][0][1])
		}
		return o
	};
	fm.z8 = function (F, P) {
		var o = typeof F;
		if (o == "string" || o == "number" || o == "boolean") return F;
		if (F instanceof Array) {
			for (var w = 0; w < F.length; w++) F[w] = fm.z8(F[w], P);
			return F
		}
		var X = F._class;
		if (X == null) return F;
		if (X == "MSJSONFileReference") {
			var Y = F._ref;
			if (!1) {} else if (P[Y + ".json"] != null) {
				var y = P[Y + ".json"],
					z = y.length;
				for (var w = 0; w < z; w++)
					if (y[w] == 11 || y[w] == 3) y[w] = 32;
				var s = r.bc(y, 0, z);
				F = JSON.parse(s)
			} else if (P[Y + ".png"] != null) return {
				key: Y.split("/").pop(),
				bdata: P[Y + ".png"]
			};
			else if (P[Y + ".jpg"] != null) return {
				key: Y.split("/").pop(),
				bdata: P[Y + ".jpg"]
			};
			else if (P[Y + ".pdf"] != null) return {
				key: Y.split("/").pop(),
				bdata: P[Y + ".pdf"]
			};
			else if (P[Y] != null) return {
				key: Y.split("/").pop(),
				bdata: P[Y]
			};
			else {
				console.log(F, P);
				return
			}
		} else if (X == "MSAttributedString") {
			var s = atob(F.archivedAttributedString._archive),
				t = s.length - 1,
				d = new Uint8Array(t);
			for (var w = 0; w < t; w++) d[w] = s.charCodeAt(w);
			F.archivedAttributedString = fm.v_(d)
		}
		for (var U in F) F[U] = fm.z8(F[U], P);
		return F
	};
	fm.AJ = function (F, P, o, X) {
		if (F instanceof Uint8Array) return null;
		if (X.indexOf(F) != -1) return null;
		X.push(F);
		if (F == P) return o;
		for (var Y in F) {
			o.push(Y);
			var y = fm.AJ(F[Y], P, o, X);
			if (y) {
				console.log(F, y);
				throw "e"
			}
			o.pop()
		}
	};
	fm.v_ = function (F) {
		var P = gR.parse(F, 0),
			o = P.$objects,
			X = new Uint8Array(o.length),
			Y = fm.cD(o, X, P.$top.root);
		for (var w = 0; w < o.length; w++)
			if (X[w] == 0 && w != 0) {
				console.log(w, o[w]);
				fm.AJ(Y, w, [], [])
			} for (var w = 0; w < o.length; w++) {
			var y = o[w];
			if (y._class && (y._class == "bitmap" || y._class == "fill" && y.fillType == 4 && (y.image || y.imageSHA))) {
				var z = y.image,
					s = y.imageSHA,
					t = null,
					d = null;
				if (z == "$null") z = null;
				if (s == "$null") s = null;
				if (z && z.data) {
					d = z.sha1["NS.bytes"];
					d = btoa(r.$o(d, 0, d.length));
					t = z.data instanceof Uint8Array ? z.data : z.data["NS.bytes"]
				} else if (z == null && s == null) {
					var U = em.$I("PNG").bb([
						[H.R(4).buffer]
					], 1, 1);
					t = new Uint8Array(U)
				} else {
					var v = (Y.assets ? Y.assets.imageCollection : Y.images).images;
					if (s) d = s instanceof Uint8Array ? s : s["NS.bytes"];
					else d = z.sha1["NS.bytes"];
					d = btoa(r.$o(d, 0, d.length));
					var t = v[d].data;
					if (t["NS.bytes"]) t = t["NS.bytes"]
				}
				t = new Uint8Array(t.buffer.slice(t.byteOffset, t.byteOffset + t.length));
				delete y.imageSHA;
				y.image = {
					key: d,
					bdata: t
				}
			}
		}
		return Y
	};
	fm.a7o = function (F) {
		return F.slice(0, 11) == "MSImmutable" ? "MS" + F.slice(11) : F
	};
	fm.cD = function (F, P, o) {
		var X = F[o];
		if (P[o] == 1) {
			return X
		}
		P[o] = 1;
		if (typeof X == "string") return X;
		if (typeof X == "number") return X;
		if (typeof X == "boolean") return X;
		if (X instanceof Array) return X;
		if (X instanceof Uint8Array) {
			return X
		}
		if (F[X.$class] == null) {
			if (X.$class == null && X["NS.data"] != null) return X;
			console.log(o, X);
			throw "e"
		}
		var Y = F[X.$class],
			y = fm.a7o(Y.$classname);
		P[X.$class] = 1;
		X.$class = y;
		if (fm.po[y]) {
			delete X.$class;
			X._class = fm.po[y]
		}
		var z = fm.cD;
		if (y == "NSMutableArray" || y == "NSArray") {
			var s = [];
			if (X["NS.objects"] != null)
				for (var w = 0; w < X["NS.objects"].length; w++) s.push(z(F, P, X["NS.objects"][w]));
			else
				for (var w = 0; X["NS.object." + w] != null; w++) s.push(z(F, P, X["NS.object." + w]));
			F[o] = s;
			return s
		}
		if (y == "NSDictionary" || y == "NSMutableDictionary") {
			var t = {
				$class: y
			};
			if (X["NS.keys"] != null)
				for (var w = 0; w < X["NS.keys"].length; w++) {
					var d = z(F, P, X["NS.keys"][w]);
					if (d instanceof Uint8Array) d = btoa(fm.gu.$o(d, 0, d.length));
					else if (typeof d != "string" && typeof d != "number") d = btoa(fm.gu.$o(d["NS.bytes"], 0, d["NS.bytes"].length));
					t[d] = z(F, P, X["NS.objects"][w])
				} else
					for (var w = 0; X["NS.key." + w] != null; w++) {
						var d = z(F, P, X["NS.key." + w]);
						if (d instanceof Uint8Array) d = btoa(fm.gu.$o(d, 0, d.length));
						else if (typeof d != "string" && typeof d != "number") d = btoa(fm.gu.$o(d["NS.bytes"], 0, d["NS.bytes"].length));
						t[d] = z(F, P, X["NS.object." + w])
					}
			for (var U in X) delete X[U];
			for (var U in t) X[U] = t[U];
			return X
		}
		if (y == "NSURL") return {
			$class: y,
			base: z(F, P, X["NS.base"]),
			relative: z(F, P, X["NS.relative"])
		};
		if (fm.akY.indexOf(y) != -1) {
			F[o] = z(F, P, X.array_do);
			return F[o]
		}
		if (X.do_objectID != null) X.do_objectID = z(F, P, X.do_objectID);
		if (fm.agX.indexOf(y) != -1) return X;
		var v = fm.ab3[y];
		if (v == null) {
			console.log(F, X);
			throw "unknown class " + y
		}
		for (var w = 0; w < v.length; w++)
			if (X[v[w]] != null) X[v[w]] = z(F, P, X[v[w]]);
		if (y == "MSTextLayer") {
			var A = X,
				Z, D, q, R;
			if (A.attributedString) Z = A.attributedString.archivedAttributedString;
			else Z = A.storage;
			R = Z.NSString;
			if (typeof R != "string") R = r.bc(R["NS.bytes"], 0, R["NS.bytes"].length);
			if (Z.NSAttributeInfo) D = Z.NSAttributeInfo["NS.bytes"];
			else {
				var J = R.length,
					W = [];
				while (J > 0) {
					var p = Math.min(100, J);
					W.push(p, 0);
					J -= p
				}
				D = new Uint8Array(W)
			}
			q = Z.NSAttributes instanceof Array ? Z.NSAttributes : [Z.NSAttributes];
			var n = {
				$class: "NSAttributedString",
				NSString: R,
				NSAttributes: q
			};
			A.attributedString = {
				_class: "MSAttributedString",
				archivedAttributedString: n
			};
			n.NSAttributeInfo = {
				$class: "NSMutableData",
				"NS.data": D
			};
			delete A.storage
		}
		return X
	};
	fm.gu = {
		lU: function (F, P) {
			return F[P + 1] << 8 | F[P]
		},
		l: function (F, P) {
			return F[P + 3] << 24 | F[P + 2] << 16 | F[P + 1] << 8 | F[P]
		},
		$o: function (F, P, o) {
			var X = "";
			for (var w = 0; w < o; w++) X += String.fromCharCode(F[P + w]);
			return X
		}
	};
	fm.po = {
		MSPage: "page",
		MSArtboardGroup: "artboard",
		MSShapeGroup: "shapeGroup",
		MSLayerGroup: "group",
		MSBitmapLayer: "bitmap",
		MSTextLayer: "text",
		MSSliceLayer: "slice",
		MSSymbolMaster: "symbolMaster",
		MSSymbolInstance: "symbolInstance",
		MSStyleFill: "fill",
		MSShapePathLayer: "shapePath",
		MSRectangleShape: "rectangle",
		MSOvalShape: "oval",
		MSTriangleShape: "triangle"
	};
	fm.akY = ["MSArray", "MSFillStyleCollection", "MSBorderStyleCollection", "MSShadowStyleCollection", "MSInnerShadowStyleCollection"];
	fm.agX = "MSArchivedColor MSLayoutGrid MSSimpleGrid MSColor MSRect MSStyleColorControls MSGraphicsContextSettings NSMutableString NSMutableData NSDecimalNumberPlaceholder MSStyleReflection".split(" ");
	fm.ab3 = {
		MSAssetCollection: ["gradients", "colors", "imageCollection", "images"],
		MSImageCollection: ["images"],
		MSSharedStyleContainer: ["objects"],
		MSSharedTextStyleContainer: ["objects"],
		MSSharedLayerStyleContainer: ["objects"],
		MSSharedLayerTextStyleContainer: ["objects"],
		MSSharedLayerContainer: ["objects"],
		MSSymbolContainer: ["objects"],
		MSGradient: ["stops", "from", "to", "points"],
		MSGradientStop: ["color"],
		MSStyleFill: ["color", "gradient", "contextSettings", "image", "imageSHA"],
		MSExportFormat: ["fileFormat", "name"],
		MSExportOptions: ["exportFormats", "includedLayerIds", "sizes"],
		MSRulerData: ["guides"],
		MSStyle: "textStyle fills contextSettings sharedObjectID borders blur shadows innerShadows borderOptions colorControls reflection".split(" "),
		MSSharedStyle: ["name", "value"],
		MSSymbol: ["name", "value"],
		MSAttributedString: ["archivedAttributedString"],
		MSSharedLayerStyle: ["name", "value", "instances"],
		MSSharedLayer: ["name", "value", "instances"],
		MSDocumentData: "assets layerStyles pages layerTextStyles layerSymbols images userInfo".split(" "),
		MSShapePathLayer: "exportOptions frame name userInfo path originalObjectID".split(" "),
		MSOvalShape: "exportOptions frame name userInfo path originalObjectID".split(" "),
		MSRectangleShape: "exportOptions frame name userInfo path originalObjectID".split(" "),
		MSPolygonShape: "exportOptions frame name userInfo path originalObjectID".split(" "),
		MSTriangleShape: "exportOptions frame name userInfo path originalObjectID".split(" "),
		MSStarShape: "exportOptions frame name userInfo path originalObjectID".split(" "),
		MSBitmapLayer: "exportOptions frame name userInfo style imageSHA nineSliceCenterRect nineSliceScale image clippingMask originalObjectID".split(" "),
		MSTextLayer: "exportOptions frame name userInfo style originalObjectID attributedString glyphBounds storage".split(" "),
		MSShapeGroup: "exportOptions frame name userInfo style originalObjectID layers".split(" "),
		MSLayerGroup: "exportOptions frame name userInfo style originalObjectID layers sharedObjectID".split(" "),
		MSArtboardGroup: "exportOptions frame name userInfo style layers horizontalRulerData verticalRulerData layout grid backgroundColor".split(" "),
		MSPage: "exportOptions frame name userInfo style layers horizontalRulerData verticalRulerData layout grid scrollOrigin".split(" "),
		MSSymbolMaster: "exportOptions frame name userInfo style layers horizontalRulerData verticalRulerData layout grid originalObjectID symbolID backgroundColor".split(" "),
		MSSymbolInstance: "exportOptions frame name userInfo style symbolID overrides masterInfluenceBounds originalObjectID".split(" "),
		MSSliceLayer: ["exportOptions", "frame", "name", "userInfo", "backgroundColor"],
		MSTextStyle: ["attributes", "encodedAttributes"],
		MSShapePath: ["points"],
		MSPointArray: ["points"],
		MSImageData: ["data", "sha1", "name"],
		MSCurvePoint: ["curveFrom", "curveTo", "point"],
		MSImageProxy: ["sha1"],
		MSStyleBorder: ["color", "gradient", "contextSettings"],
		MSStyleBlur: ["center"],
		MSStyleShadow: ["color", "contextSettings"],
		MSStyleInnerShadow: ["color", "contextSettings"],
		MSExportSize: ["format", "name"],
		MSStyleBorderOptions: ["dashPattern"],
		NSFont: ["NSName", "NSDescriptor"],
		NSColor: ["NSCustomColorSpace"],
		NSFontDescriptor: ["NSFontDescriptorAttributes"],
		NSMutableParagraphStyle: ["NSTextBlocks", "NSTabStops", "NSTextLists"],
		NSAttributedString: ["NSAttributes", "NSString", "NSAttributeInfo"],
		NSTextStorage: ["NSAttributeInfo", "NSAttributes", "NSString"],
		NSColorSpace: ["NSICC"],
		NSParagraphStyle: ["NSTabStops", "NSTextBlocks", "NSTextLists"],
		NSTextList: ["NSMarkerFormat"],
		NSTextTab: ["NSTabOptions"],
		UIFontDescriptor: ["UIFontDescriptorAttributes"]
	};
	var gR = {};
	gR.parse = function (F, P) {
		var o = r.$o(F, P, 8);
		P += 8;
		var X = gR.parse.abp(F, F.length - 31),
			Y = [];
		if (X.J3 == 1) {
			var P = F.length - 31 - X.J3 * X.Gj;
			for (var w = 0; w < X.Gj; w++) Y.push(F[P + w])
		} else if (X.J3 == 2) {
			var P = F.length - 31 - X.J3 * X.Gj;
			for (var w = 0; w < X.Gj; w++) Y.push(r.lU(F, P + w * 2))
		} else if (X.J3 == 4) {
			var P = F.length - 31 - X.J3 * X.Gj;
			for (var w = 0; w < X.Gj; w++) Y.push(r.l(F, P + w * 4))
		} else {
			throw "e"
		}
		var y = gR.parse.cD(F, Y, X.root, X);
		return y
	};
	gR.parse.cD = function (F, P, o, X) {
		var Y = gR.gu,
			y = X.akG,
			z = y == 4 ? Y.l : y == 2 ? Y.lU : Y.adN,
			s = gR.parse,
			t = P[o],
			d = F[t],
			U = d >> 4,
			v = d & 15,
			Z = null;
		t += 1;
		if ([4, 5, 6, 10, 12, 13].indexOf(U) != -1 && v == 15) {
			var A = s.tF(F, t);
			t += A.lv;
			v = A.C
		}
		if (!1) {} else if (U == 0) Z = v == 8 ? !1 : v == 9 ? !0 : null;
		else if (U == 1) Z = s.tF(F, t - 1).C;
		else if (U == 2) Z = 1 << v == 4 ? r.C2(F, t) : r.VZ(F, t);
		else if (U == 3) Z = r.VZ(F, t);
		else if (U == 4) Z = new Uint8Array(F.buffer, t, v);
		else if (U == 5) Z = r.$o(F, t, v);
		else if (U == 6) Z = r.Hp(F, t, v);
		else if (U == 8) {
			Z = 0;
			for (var w = 0; w < v + 1; w++) Z = Z << 8 | F[t + w]
		} else if (U == 10) {
			Z = [];
			for (var w = 0; w < v; w++) Z.push(s.cD(F, P, z(F, t + y * w), X))
		} else if (U == 12) {
			Z = [];
			for (var w = 0; w < v; w++) Z.push(s.cD(F, P, z(F, t + y * w), X))
		} else if (U == 13) {
			Z = {};
			for (var w = 0; w < v; w++) {
				var D = s.cD(F, P, z(F, t + y * w), X),
					q = s.cD(F, P, z(F, t + y * (v + w)), X);
				Z[D] = q
			}
		} else throw "unknown mask " + U;
		return Z
	};
	gR.parse.tF = function (F, P) {
		var o = 1 << (F[P] & 15),
			X = 0;
		for (var w = 0; w < o; w++) X = X << 8 | F[P + 1 + w];
		return {
			C: X,
			lv: o + 1
		}
	};
	gR.parse.abp = function (F, P) {
		var o = {};
		P += 6;
		o.J3 = F[P];
		P++;
		o.akG = F[P];
		P++;
		P += 4;
		o.Gj = r.l(F, P);
		P += 4;
		P += 4;
		o.root = r.l(F, P);
		P += 4;
		P += 4;
		o.a22 = r.l(F, P);
		P += 4;
		return o
	};
	gR.gu = {
		adN: function (F, P) {
			return F[P]
		},
		lU: function (F, P) {
			return F[P] << 8 | F[P + 1]
		},
		l: function (F, P) {
			return F[P] << 24 | F[P + 1] << 16 | F[P + 2] << 8 | F[P + 3]
		},
		$o: function (F, P, o) {
			var X = "";
			for (var w = 0; w < o; w++) X += String.fromCharCode(F[P + w]);
			return X
		}
	};
	var gV = {
		parse: function (F) {
			var P = new Uint8Array(F),
				o = gV.o1(P),
				X = [],
				Y = new Uint8Array(P.length),
				y = [];
			X.push(y);
			gV.Ba(P, o, 1, Y, y);
			for (var w = 0; w < y.length; w++) {
				var z = [];
				X.push(z);
				gV.Ba(P, o, y[w][3], Y, z);
				y[w][3] = w + 1
			}
			return X
		},
		Ba: function (F, P, o, X, Y) {
			o--;
			var y = o * P.pr + (o == 0 ? 100 : 0),
				z = F[y],
				s = gV.lU(F, y + 1);
			if (s != 0) throw "free block in a page";
			var t = gV.lU(F, y + 3),
				d = gV.lU(F, y + 5);
			if (d == 0) d = 65536;
			var U = F[y + 7],
				v = gV.lU(F, y + 8);
			if (z == 2 || z == 5) y += 4;
			else v = 0;
			for (var A = 0; A < t; A++) {
				var Z = o * P.pr + gV.lU(F, y + 8 + 2 * A),
					D = -1,
					q = 0,
					R = 0,
					J = 0;
				if (z == 2 || z == 5) {
					D = gV.l(F, Z);
					Z += 4
				}
				if (z == 2 || z == 10 || z == 13) {
					q = gV.Rj(F, Z);
					Z += q.lv
				}
				if (z == 5 || z == 13) {
					R = gV.Rj(F, Z);
					Z += R.lv
				}
				if (z == 5) {
					gV.Ba(F, P, D, X, Y);
					continue
				}
				var W = P.pr - (o == 0 ? 100 : 0),
					p = q.pl,
					n = z == 13 ? W - 35 : Math.floor((W - 12) * 64 / 255) - 23,
					b = Math.floor((W - 12) * 32 / 255) - 23,
					Q = b + (p - b) % (W - 4);
				if (p <= n) {
					gV.Hk(F, Z, X, 0, p)
				} else {
					var _ = Q <= n ? Q : b,
						L = 0;
					gV.Hk(F, Z, X, 0, _);
					L += _;
					J = gV.l(F, Z + _);
					while (J != 0) {
						var m = (J - 1) * P.pr;
						J = gV.l(F, m);
						var I = Math.min(P.pr - 4, p - L);
						gV.Hk(F, m + 4, X, L, I);
						L += I
					}
				}
				Y.push(gV.aeL(X, p))
			}
		},
		aeL: function (F, P) {
			var o = 0,
				X = gV.Rj(F, o);
			o += X.lv;
			var Y = [],
				y = [];
			while (o < X.pl) {
				var z = gV.Rj(F, o);
				o += z.lv;
				Y.push(z.pl)
			}
			if (o != X.pl) throw "e";
			for (var w = 0; w < Y.length; w++) {
				var z = Y[w];
				if (!1) {} else if (z == 0) y.push(null);
				else if (z == 1) {
					y.push(gV.afr(F, o));
					o += 1
				} else if (z == 2) {
					y.push(gV.dx(F, o));
					o += 2
				} else if (z == 3) {
					y.push(gV.agh(F, o));
					o += 3
				} else if (z == 4) {
					y.push(gV.tF(F, o));
					o += 4
				} else if (z == 7) {
					y.push(gV.a2n(F, o));
					o += 16
				} else if (z == 8) y.push(0);
				else if (z == 9) y.push(1);
				else if (z >= 12 && (z & 1) == 0) {
					var s = z - 13 >> 1,
						t = new Uint8Array(s);
					gV.Hk(F, o, t, 0, s);
					y.push(t);
					o += s
				} else if (z >= 13 && (z & 1) == 1) {
					var s = z - 12 >> 1;
					y.push(gV.bc(F, o, s));
					o += s
				} else throw "unknonw type " + z
			}
			return y
		},
		o1: function (F) {
			if (!(F[18] == 1 && F[19] == 1 && F[20] == 0 && F[21] == 64 && F[22] == 32 && F[23] == 32)) throw "unexpected SQL3 header";
			var P = {
				mV: gV.$o(F, 0, 15),
				pr: gV.lU(F, 16),
				ahg: gV.l(F, 24),
				size: gV.l(F, 28),
				ahY: gV.l(F, 32),
				a7F: gV.l(F, 36),
				agD: gV.l(F, 40),
				a2O: gV.l(F, 44),
				aa7: gV.l(F, 48),
				afU: gV.l(F, 52),
				mA: gV.l(F, 56),
				ade: gV.l(F, 60),
				akt: gV.l(F, 64) != 0,
				a3S: gV.l(F, 68),
				aeg: gV.l(F, 92),
				amI: gV.l(F, 96)
			};
			if (P.pr == 1) P.pr = 65536;
			if (P.mA != 1) throw "unsupported text encoding " + P.mA;
			return P
		},
		acy: function (F, P) {
			return F[P] << 16 | F[P + 1] << 8 | F[P + 2]
		},
		agh: function (F, P) {
			var o = gV.acy(F, P),
				X = o & 8388608;
			return X ? -(16777215 - o + 1) : o
		},
		afr: function (F, P) {
			gV.It[0] = F[P];
			return gV.a4t[0]
		},
		tF: function (F, P) {
			var o = gV.It;
			for (var w = 0; w < 4; w++) o[w] = F[P + 3 - w];
			return gV.akC[0]
		},
		dx: function (F, P) {
			var o = gV.It;
			o[0] = F[P + 1];
			o[1] = F[P];
			return gV.akE[0]
		},
		lU: function (F, P) {
			return F[P] << 8 | F[P + 1]
		},
		l: function (F, P) {
			return F[P] << 24 | F[P + 1] << 16 | F[P + 2] << 8 | F[P + 3]
		},
		a2n: function (F, P) {
			var o = gV.It;
			for (var w = 0; w < 8; w++) o[w] = F[P + 7 - w];
			return gV.agk[0]
		},
		Rj: function (F, P) {
			var o = P,
				e = 0;
			while (!0) {
				var X = F[P];
				P++;
				e = e * 128 + (X & 127);
				if (X < 128) break
			}
			return {
				pl: e,
				lv: P - o
			}
		},
		$o: function (F, P, o) {
			var X = "";
			for (var w = 0; w < o; w++) X += String.fromCharCode(F[P + w]);
			return X
		},
		bc: function (F, P, o) {
			var X = "";
			for (var w = 0; w < o; w++) X += "%" + gV.a9V(F[P + w].toString(16));
			return decodeURIComponent(X)
		},
		Hk: function (F, P, o, X, Y) {
			if (F[P + Y - 1] == null || o[X + Y - 1] == null) {
				console.log(P, X, Y);
				throw "e"
			}
			for (var w = 0; w < Y; w++) o[X + w] = F[P + w]
		},
		a9V: function (e) {
			return e.length < 2 ? "0" + e : e
		}
	};
	gV.It = new Uint8Array(8);
	gV.a4t = new Int8Array(gV.It.buffer);
	gV.akE = new Int16Array(gV.It.buffer);
	gV.akC = new Int32Array(gV.It.buffer);
	gV.agk = new Float64Array(gV.It.buffer);

	function al(F, P, o) {
		this.mY = F;
		this.Ug = P;
		this.a5T = o;
		this.oT = new aH(0, 0);
		this.dT = -1;
		this.Zg = 0;
		this.wO = 0;
		this.lp = new ev;
		this.lP = [];
		this.Iy = null;
		this.Vn = null;
		this.$w = null;
		this.i0 = null;
		this.Hz = null;
		this.wC = null
	}
	al.prototype.StartPage = function (F, P, o, X) {
		var Y = this.Ug,
			y = Y.d3(),
			z = 1;
		while ((o - F) * (X - P) * y * y / (z * z) > 8e3 * 8e3) z++;
		Y.scale(1 / z, 1 / z);
		this.Vn = [F, P, o, X];
		var z = Y.d3();
		F = Math.round(F * z);
		P = Math.round(P * z);
		o = Math.round(o * z);
		X = Math.round(X * z);
		var s = this.mY,
			t = this.$w;
		if (t == null) {
			Y.PV = -F
		} else {
			var d = t[2] - t[0] + 30,
				U = Math.round(o - F) + 30;
			if (this.oT.x + d + U > 8192) {
				Y.PV = -F;
				this.oT.x = 0;
				this.oT.y += this.wO + 120;
				this.wO = 0
			} else {
				Y.PV += d;
				this.oT.x += d
			}
		}
		Y.ye = this.oT.y + (this.a5T ? X : -P);
		this.wO = Math.max(this.wO, Math.round(X - P));
		this.$w = [F, P, o, X];
		s.r.push(s.Px())
	};
	al.prototype.tQ = function () {
		var F = this.mY,
			P = F.r[F.r.length - 1];
		return P
	};
	al.prototype.Xz = function () {
		var F = JSON.parse(JSON.stringify(ce.bW.default));
		F.strokeStyleLineAlignment.v.strokeStyleLineAlignment = "strokeStyleAlignCenter";
		F.strokeEnabled.v = !1;
		F.fillEnabled.v = !1;
		return F
	};
	al.prototype.vT = function () {
		var F = this.mY,
			P = F.an();
		P.uf("Path " + F.r.length);
		this.mY.r.push(P);
		P.ix |= 16;
		P.add.SoCo = {
			classID: "null",
			Clr: {
				t: "Objc",
				v: H.j.$H({
					U: 0,
					S: 0,
					i: 0
				})
			}
		};
		P.add.vmsk = new h.iO;
		P.add.vstk = this.Xz();
		return P
	};
	al.prototype.Kv = function (F) {
		var P = {
				d: F.crds,
				W: F.cmds
			},
			o = H.D.sb(P, !1);
		H.V.G5(o, this.Ug);
		return o
	};
	al._A = function (F, P) {
		for (var w = 0; w < F.length; w++)
			if (F[w].IO != null) F[w].IO = P
	};
	al.abX = function (F) {
		return Math.sqrt(Math.abs(F[0] * F[3] - F[1] * F[2]))
	};
	al.yj = function (F) {
		return H.j.$H({
			U: F[0] * 255,
			S: F[1] * 255,
			i: F[2] * 255
		})
	};
	al.GO = function (F) {
		return new cu(F[0], F[1], F[2], F[3], F[4], F[5])
	};
	al.prototype.Stroke = function (F) {
		if (this.dT != -1 && this.dT != this.Zg) return;
		if (F.pth.cmds.length <= 1) return;
		var P = this.Kv(F.pth);
		if (P.length <= 2) return;
		this.CO(F);
		al._A(P, -1);
		P[2].IO = 1;
		var o = al.yj(F.COLR),
			X = this.tQ(),
			Y = this.Xz();
		Y.strokeEnabled.v = !0;
		Y.strokeStyleMiterLimit.v = F.mlimit;
		Y.strokeStyleLineDashSet.v = cr.oB(F.dash, 1 / F.lwidth);
		Y.strokeStyleLineDashOffset.v.val = F.doff;
		Y.strokeStyleLineJoinType.v.strokeStyleLineJoinType = ce.bW.join[F.ljoin];
		Y.strokeStyleLineCapType.v.strokeStyleLineCapType = ce.bW.Bb[F.lcap];
		Y.strokeStyleLineWidth.v.val = Math.max(.4, F.lwidth * al.abX(F.ctm) * this.Ug.d3());
		Y.strokeStyleContent.v.Clr.v = o;
		var y = X != null && X.add.vmsk != null && !X.fO(),
			z = y && !X.add.vstk.strokeEnabled.v && h.iO.ajg(X.add.vmsk.b, P, !0),
			s = y && !X.add.vstk.fillEnabled.v && JSON.stringify(Y) == JSON.stringify(X.add.vstk);
		if (s) {
			al._A(P, -1);
			X.add.vmsk.b = X.add.vmsk.b.concat(P.slice(2))
		} else if (z) {
			X.add.vstk = Y;
			Y.fillEnabled.v = !0
		} else {
			X = this.vT();
			X.add.vmsk.b = P;
			X.add.vstk = Y
		}
	};
	al.prototype.Fill = function (F, P) {
		if (this.dT != -1 && this.dT != this.Zg) return;
		if (F.ca == 0) return;
		var o = F.pth.cmds;
		if (o.length == 0) return;
		if (o.length == 2 && JSON.stringify(o) == "[\"M\",\"L\"]") return;
		var X = H.D.nP(F.cpth.crds),
			Y = H.D.nP(F.pth.crds);
		if (Y.$X(X).qr()) return;
		var y = F.pth;
		if (this.i0 == null && UDOC.G.isBox(y, [Y.x, Y.y, Y.x + Y.Z, Y.y + Y.h]) && Y.Qh(X)) {
			y = F.cpth
		} else this.CO(F);
		var z = this.Kv(y),
			s = H.D.z0(Y);
		H.D.O(s.d, this.Ug, s.d);
		Y = H.D.nP(s.d);
		var t = al.hm(F.colr, this.Ug, Y),
			d = this.tQ(),
			U = d != null && d.opacity == Math.round(255 * F.ca) && d.add.vstk != null && !d.add.vstk.strokeEnabled.v && d.add.SoCo && t.type == "SoFi" && JSON.stringify(d.add.SoCo.Clr.v) == JSON.stringify(t.C.v.Clr.v);
		if (U) {
			var v = !1;
			for (var w = 0; w < z.length; w++) {
				if (z[w].IO == 0 || z[w].IO == 2) v = !0
			}
			if (v) {
				var A = H.D.nP(H.V.dq(d.add.vmsk.b)),
					Z = H.D.nP(H.V.dq(z));
				U = A.$X(Z).qr()
			}
		}
		if (U) {
			var D = d.add.vmsk.b;
			for (var w = 2; w < z.length; w++) D.push(z[w])
		} else {
			d = this.vT();
			delete d.add.SoCo;
			d.add.vmsk.b = h.iO.Cm(z);
			al.ku(F.colr, d, this.Ug, Y);
			al.NM(F, d)
		}
	};
	al.ku = function (F, P, o, X) {
		var Y = al.hm(F, o, X),
			y = null,
			z = null;
		P.add.vstk.fillEnabled.v = !0;
		if (Y.type == "SoFi") {
			y = "SoCo";
			z = ce.QB
		}
		if (Y.type == "GrFl") {
			y = "GdFl";
			z = ce.Zt
		}
		if (Y.type == "patternFill") {
			y = "PtFl";
			z = ce.QZ
		}
		if (y != null) {
			P.add[y] = {
				classID: "null"
			};
			for (var w = 0; w < z.length; w++) {
				var s = z[w];
				P.add[y][s] = Y.C.v[s]
			}
		}
	};
	al.prototype.CO = function (F) {
		var P = this.mY,
			o = F.cpth,
			X = o.cmds.join(""),
			Y = o.crds,
			y = X + " " + Y.join(","),
			z = UDOC.G.isBox(o, this.Vn);
		if (z && this.i0 == null) return;
		if (y == this.i0) return;
		this.mX();
		if (!z) {
			this.i0 = y;
			P.r.push(P.Px());
			var s = P.an();
			s.uf("Mask");
			s.add.lsct = gr.kE;
			s.sW = "pass";
			s.ix = 24;
			var t = s.add.vmsk = new h.iO;
			t.b = this.Kv(F.cpth);
			if (UDOC.G.isBox(o)) {
				this.Hz = H.V.ue(t.b);
				this.Hz.PK(3, 3)
			} else this.Hz = null;
			this.wC = s
		}
	};
	al.prototype.mX = function () {
		var F = this.mY;
		if (this.i0 != null) {
			var P = F.r.length - 1,
				w = P,
				o = !1;
			while (w >= 0 && F.r[w].add.lsct != gr.Qi) w--;
			var X = this.Hz;
			if (X) {
				var Y = new ev,
					y = P;
				while (y > w) {
					Y = F.r[y].G_(this.mY, !1, !0);
					y--
				}
				o = X.Qh(Y)
			}
			if (o) {
				this.lP.splice(w, 1);
				F.r.splice(w, 1)
			} else {
				F.r.push(this.wC)
			}
			this.i0 = null
		}
	};
	al.hm = function (F, P, o) {
		var X, Y;
		if (F.length != null) {
			X = "SoFi";
			var y = JSON.parse(ce.IW[ce.order.indexOf("SoFi")]);
			Y = {
				t: "Objc",
				v: y
			};
			Y.v.Clr.v = al.yj(F)
		} else {
			var z = al.a8Z(F, P, o);
			X = "GrFl";
			Y = {
				t: "Objc",
				v: z
			}
		}
		return {
			type: X,
			C: Y
		}
	};
	al.a8Z = function (F, P, o) {
		var X = JSON.parse(ce.IW[ce.order.indexOf("GrFl")]),
			Y = X.Grad.v;
		Y.Intr.v = 0;
		var y = al.GO(F.mat);
		y.concat(P);
		var z = new aH(0, 0),
			s = new aH(o.Z, 0),
			t = F.crds;
		if (F.typ == "rad") {
			X.Type.v.GrdT = "Rdl";
			var d = .7;
			z.x = (1 - d) * t[0] + d * t[3];
			z.y = (1 - d) * t[1] + d * t[4];
			s.x = z.x;
			s.y = z.y;
			s.x += Math.max(t[2], t[5])
		} else {
			X.Type.v.GrdT = "Lnr";
			z.x = t[0];
			z.y = t[1];
			s.x = t[2];
			s.y = t[3];
			z.x = s.x + .5 * (z.x - s.x);
			z.y = s.y + .5 * (z.y - s.y)
		}
		z = y.aT(z);
		s = y.aT(s);
		H.j.VB(z, s, o, X);
		var U = F.grad;
		H.j.nO(U, Y);
		return X
	};
	al.prototype.PutText = function (F, P, o, X) {
		var Y = P.charCodeAt(0),
			A = null;
		if (this.dT != -1 && this.dT != this.Zg) return;
		if (P.length == 0 || P.length == 1 && (Y == 0 || Y == 8203)) return;
		this.CO(F);
		var y = this.mY,
			z = F.font,
			s = al.GO(F.ctm);
		s.concat(this.Ug);
		var t = al.GO(z.Tm);
		t.concat(s);
		var d = B.X.d3(t),
			U = new cu(1 / d, 0, 0, -1 / d, 0, 0);
		U.concat(t);
		var v = z.Tfs * d;
		if (z.Th != 100 || z.Trise != 0) {
			console.log(z)
		}
		var Z = y.r.length - 1;
		while (Z >= 0 && y.r[Z].add.TySh == null) Z--;
		if (U.i * U.i + U.p$ * U.p$ < .001 && X == null && Z >= 0 && y.r[Z].add.TySh && y.r[Z].opacity == Math.round(255 * F.ca)) {
			var D = y.r[Z],
				q = this.lP[Z],
				R = D.add.TySh.O,
				J = (R.PV + q.fj - U.PV) / v,
				W = Math.abs(J),
				p = P.indexOf(" ") == -1,
				n = R.m == U.m && R.i == U.i && R.p$ == U.p$ && R.xA == U.xA,
				b = n && Math.abs(q.YL - U.ye) < 1e-5 && W < .6,
				Q = U.ye - q.YL;
			if (b) {
				A = D;
				q.fj = U.PV - R.PV;
				if (J > .2 && p && [".", ",", "?", ":", "!"].indexOf(P) == -1) P = " " + P
			} else if (n && Math.abs(U.PV - R.PV) < 1e-5 && 0 < Q && Q < v * 1.7 && q.BD == v) {
				A = D;
				this.S7(q);
				q.YL = U.ye;
				P = "\n" + P
			}
		}
		if (A == null) {
			Z = y.r.length;
			this.lP[Z] = {
				Qg: [],
				fj: 0,
				YL: U.ye,
				g_: "",
				BD: v
			};
			A = y.an();
			y.r.push(A);
			A.add.lnsr = "rend";
			A.add.TySh = bt.T_(0, 0);
			A.add.TySh.O = U
		}
		var q = this.lP[Z];
		q.fj += o * v;
		q.g_ += P;
		var _ = A.add.TySh.MF,
			L = bt.jn(_);
		if (X) {
			bt.E5(_, 1);
			var m = [0, 0, Math.ceil(X[0] * d), Math.ceil(X[1] * d)];
			bt.Z1(_, m)
		}
		var I = L.length - 1,
			c = I + P.length;
		bt.v$(_, I, P);
		if (this.Iy == null) this.Iy = bt.lW(_, I, I);
		var u = this.Iy;
		u.dS.FontSize = Math.round(v);
		u.dS.Tracking = Math.round(z.Tc * 100);
		u.dS.Underline = z.Tun == 1;
		u.dS.FillColor = {
			Type: 1,
			Values: [1, F.colr[0], F.colr[1], F.colr[2]]
		};
		if (z.Tal != null) u.eS.Justification = z.Tal;
		if (q.Qg.length != 0) {
			u.dS.AutoLeading = !1;
			u.dS.Leading = q.YL - q.Qg[q.Qg.length - 1].y
		}
		var a = z.Tf;
		a = a.replace(/#2B/g, "+");
		a = a.replace(/#2C/g, "-");
		a = a.split("+").pop();
		var N = {
			"NimbusRomNo9L-Medi": "NimbusRomNo9L-Med",
			"NimbusRomNo9L-Regu": "NimbusRomNo9L-Reg",
			"NimbusRomNo9L-MediItal": "NimbusRomNo9L-MedIta",
			"NimbusRomNo9L-ReguItal": "NimbusRomNo9L-RegIta",
			CMTT9: "NimbusMono-Regular",
			Arial: "ArialMT",
			"BebasNeue-Regular": "BebasNeueRegular"
		};
		if (N[a]) a = N[a];
		bt.oi(u, a);
		bt.Ji(_, I, c - 1, u);
		A.cg();
		A.opacity = Math.round(255 * F.ca)
	};
	al.prototype.S7 = function (F) {
		F.Qg.push({
			YY: F.fj,
			wV: F.g_.slice(F.Qg.length == 0 ? 0 : 1) + "\n",
			y: F.YL,
			Pg: F.BD
		});
		F.fj = 0;
		F.g_ = ""
	};
	al.prototype.PutImage = function (F, P, o, X, Y, y, z) {
		if (this.dT != -1 && this.dT != this.Zg) return;
		var s = this.mY,
			t = F.font.Tmode;
		if (t == 7 && s.r[s.r.length - 1].add.TySh) {
			return
		}
		this.CO(F);
		var d = al.GO(F.ctm);
		d.concat(this.Ug);
		var U = new cu(1 / o, 0, 0, -1 / X, 0, 1);
		U.concat(d);
		d = U;
		P = al.NR(P, o, X);
		if (Y) Y = al.NR(Y, o, X);
		if (Y == null) {
			if (P.length == o * X * 4) P = new Uint8Array(em.$I("PNG").bb([
				[P.buffer, 0]
			], o, X))
		} else {
			P = this.mL(P, o, X, y, !1);
			Y = this.mL(Y, o, X, z, !0);
			var v = H.R(o * X);
			H.E4(Y, v, 0);
			H.Oy(v, P, 3);
			P = new Uint8Array(em.$I("PNG").bb([
				[P.buffer, 0]
			], o, X))
		}
		var A = s.f6(P, "Bitmap", 0, 0),
			Z = A.rect.clone();
		Z.x = Z.y = 0;
		var D = H.D.z0(Z).d;
		H.D.O(D, d, D);
		A.add.SoLd.Trnf = B.X.uE(D);
		A.add.SoLd.nonAffineTransform = B.X.uE(D);
		A.Gy(s, !1);
		al.NM(F, A);
		s.r.push(A)
	};
	al.NM = function (F, P) {
		P.opacity = Math.round(255 * F.ca);
		var o = al.zD[F.bmode];
		if (o == null) console.log("Unknown blend mode", o);
		else P.sW = o
	};
	al.zD = {
		"/Normal": "norm",
		"/Multiply": "mul ",
		"/Screen": "scrn",
		"/Overlay": "over",
		"/Darken": "dark",
		"/Lighten": "lite",
		"/ColorDodge": "div ",
		"/ColorBurn": "idiv",
		"/HardLight": "hLit",
		"/SoftLight": "sLit",
		"/Difference": "diff",
		"/Exclusion": "smud",
		"/Hue": "hue ",
		"/Saturation": "sat ",
		"/Color": "colr",
		"/Luminosity": "lum "
	};
	al.NR = function (F, P, o) {
		var X = em.Xh(F.buffer);
		if (X == "jpg") {
			try {
				F = new Uint8Array(em.$I("JPG").a9b(F.buffer))
			} catch (h9) {
				F = new Uint8Array(P * o * 4)
			}
		} else if (F.length != P * o * 4) {
			var Y = new Uint8Array(P * o * 4),
				y = new Uint8Array(Math.ceil(P * o / 8));
			UTIF.decode._decodeG4(F, 0, F.length, y, 0, P, 1);
			for (var w = 0; w < P * o; w++) {
				var z = w * 4,
					s = (y[w >> 3] >> 7 - (w & 7) & 1) * 255;
				Y[z] = s;
				Y[z + 1] = s;
				Y[z + 2] = s;
				Y[z + 3] = 255
			}
			F = Y
		}
		return F
	};
	al.prototype.mL = function (F, P, o, X, Y) {
		if (F.length != P * o * 4) {
			var y = em.Xh(F.buffer),
				z = em.$I(y);
			if (z == null || y == "tga") z = em.$I("jpg");
			F = new Uint8Array(z.xo(F, X, Y)[0].data)
		}
		return F
	};
	al.prototype.ShowPage = function () {
		var F = this.mY;
		this.Zg++;
		var P = this.$w;
		this.mX();
		var o = F.an();
		F.r.push(o);
		var X = new ev(Math.round(this.oT.x), Math.round(this.oT.y), Math.round(P[2] - P[0]), Math.round(P[3] - P[1]));
		this.lp = this.lp.s7(X);
		o.BE(X);
		o.uf("Page " + this.Zg);
		o.add.lsct = gr.kE;
		o.sW = "pass";
		o.ix = 24
	};
	al.prototype.Print = function (F) {
		console.log("Print:", F)
	};
	al.prototype.Done = function () {
		var F = this.mY;
		if (this.Zg == 1) F.r[F.r.length - 1].add.lsct = gr.lw;
		F.f$(this.Zg);
		for (var w = 0; w < F.r.length; w++) {
			var P = F.r[w],
				o = P.add.vmsk,
				X = P.add.TySh,
				Y = this.lP[w];
			P.h7();
			P._V(F);
			if (X && Y.Qg.length != 0) {
				this.S7(Y);
				var y = X.MF,
					z = Y.Qg.length,
					s = Y.Qg[0],
					t = 0,
					U = 0;
				for (var d = 0; d < z; d++) t = Math.max(t, Y.Qg[d].YY);
				bt.E5(y, 1);
				X.O.ye -= s.Pg * .7;
				bt.Z1(y, [0, 0, Math.ceil(t * 1.1), Math.ceil(Y.Qg[z - 1].y - s.y + s.Pg * 2)])
			}
			if (X) {
				var y = X.MF;
				bt.ach(y);
				var v = bt.jn(y).split("\n");
				for (var d = 0; d < v.length - 1; d++) {
					var A = v[d],
						Z = 0;
					for (var D = 0; D < A.length; D++) {
						var q = A.charCodeAt(D);
						if (1473 <= q && q <= 1524) Z++
					}
					if (Z > A.length / 2) {
						v[d] = A.split("").reverse().join("");
						var R = y.EngineDict.ParagraphRun.RunArray[d].ParagraphSheet.Properties;
						R._Direction = 1;
						R.Justification = bt.Wk(R)
					}
				}
				bt.jD(y, v.join("\n"))
			}
		}
		F.Lt = !0;
		F.Z = this.lp.Z;
		F.h = this.lp.h;
		F.buffer = H.R(this.lp.M() * 4)
	};
	var c5 = {};
	c5.qx = function (F, P, o, X) {
		var Y = !1,
			y = [F.root],
			z = F.root.children;
		if (F.add.artd) {
			Y = !0;
			for (var w = 0; w < z.length; w++)
				if (z[w].n.add.artb == null) Y = !1;
			if (Y) y = z
		}
		var s = new ev(0, 0, F.Z, F.h),
			t = P[0];
		t = t.replace(/,/g, " ").replace(/\-/g, " - ").replace(/  +/g, " ").trim();
		t = t.split(" ");
		var d = [];
		for (var w = 0; w < t.length; w++) {
			var U = t[w];
			if (U == "-") {
				var v = d.pop(),
					A = parseInt(t[w + 1]);
				while (v < A) {
					d.push(v);
					v++
				}
			} else d.push(parseInt(U))
		}
		t = d;
		for (var w = 0; w < t.length; w++)
			if (isNaN(t[w]) || t[w] < 1 || t[w] > y.length) {
				t.splice(w, 1);
				w--
			} var Z = 72 / F.NB;
		for (var w = 0; w < y.length; w++) {
			if (t.length != 0 && t.indexOf(w + 1) == -1) continue;
			var D = y[w],
				q = Y ? D.n.sc() : s,
				R = Math.round(q.Z * Z),
				J = Math.round(q.h * Z);
			o.StartPage(0, 0, R, J);
			var W = UDOC.getState([
					[0, 0, R, J]
				]),
				p = new cu;
			p.translate(-q.x, -q.y - q.h);
			p.scale(Z, -Z);
			if (P[2]) {
				var n = F.lD();
				if (!s.Qn(q)) {
					n = H.R(q.M() * 4);
					H.BP(F.lD(), s, n, q)
				}
				if (P[1] != 100) {
					var b = em.$I("JPG").bb([
						[n.buffer]
					], q.Z, q.h, [P[1]]);
					n = new Uint8Array(b)
				}
				var Q = new cu;
				Q.translate(q.x, q.y);
				c5.CK(W, o, n, q, Q, p)
			} else c5.Py(F, D, W, o, p, P, X);
			o.ShowPage()
		}
		o.Done()
	};
	c5.r0 = function (F) {
		F = H.j.T6(F);
		return [F.U / 255, F.S / 255, F.i / 255]
	};
	c5.Py = function (F, P, o, X, Y, y, z) {
		var s = P.n,
			t = s.add.lsct,
			d = s.add.lmfx,
			U = s.add.vmsk,
			v = s.add.vstk,
			A = s.add.TySh;
		if (!s.UQ()) return;
		var Z = s.opacity / 255,
			D = s.add.iOpa ? s.add.iOpa / 255 : 1;
		for (var q in al.zD)
			if (al.zD[q] == s.sW) o.bmode = q;
		o.ca = o.CA = Z * D;
		var R = d;
		if (R) R = R.solidFillMulti.v[0];
		if (R) R = R.v;
		if (R && !R.enab.v) R = null;
		if (s.fO()) {
			for (var w = 0; w < P.children.length; w++) c5.Py(F, P.children[w], o, X, Y, y, z)
		} else if (U) {
			var J = U.b,
				W = H.V.ue(J),
				p = H.D.xJ(J),
				n = !1,
				b = !1,
				Q = !1;
			H.D.O(p.d, Y, p.d);
			o.pth = {
				cmds: p.W,
				crds: p.d
			};
			if (v.fillEnabled.v) {
				var _ = cr.h4(d, s.add),
					L = _[0],
					m = _[1];
				if (L) {
					o.colr = c5.r0(L.Clr.v)
				} else if (m) {
					var I = m,
						c = [],
						u, a = I.Type.v.GrdT == "Rdl" ? "rad" : "lin",
						N = H.j.yB(I, W),
						V = Y.aT(N[0]),
						M = Y.aT(N[1]);
					if (a == "rad") u = [V.x, V.y, 0, V.x, V.y, aH.Yj(V, M)];
					else {
						V.Oh(M.x + (V.x - M.x) * 2, M.y + (V.y - M.y) * 2);
						u = [V.x, V.y, M.x, M.y]
					}
					var O = I.Grad.v.Clrs.v;
					for (var w = 0; w < O.length; w++) {
						var K = O[w].v;
						c.push([K.Lctn.v / 4096, c5.r0(K.Clr.v)])
					}
					o.colr = {
						typ: a,
						mat: [1, 0, 0, 1, 0, 0],
						grad: c,
						crds: u
					}
				}
				n = !0
			}
			var j = cr.ig(d);
			if (!v.strokeEnabled.v && j) v = j;
			if (v.strokeEnabled.v) {
				var $ = v.strokeStyleContent.v,
					x = v.strokeStyleLineDashSet.v,
					g = ce.bW.Ph.indexOf(v.strokeStyleLineAlignment.v.strokeStyleLineAlignment);
				if ($.Clr == null) return;
				var T = H.j.T6($.Clr.v);
				o.COLR = [T.U / 255, T.S / 255, T.i / 255];
				o.lwidth = v.strokeStyleLineWidth.v.val * (g == 2 ? 2 : 1) * Y.d3();
				o.mlimit = v.strokeStyleMiterLimit.v;
				o.doff = v.strokeStyleLineDashOffset.v.val;
				o.ljoin = ce.bW.join.indexOf(v.strokeStyleLineJoinType.v.strokeStyleLineJoinType);
				o.lcap = ce.bW.Bb.indexOf(v.strokeStyleLineCapType.v.strokeStyleLineCapType);
				o.dash = [];
				for (var w = 0; w < x.length; w++) o.dash.push(x[w].v.val * o.lwidth);
				if (o.dash.length == 1 && o.dash[0] == 0) o.dash = [];
				b = !0;
				if (g == 2) Q = !0
			}
			if (n && !Q) X.Fill(o);
			if (b) X.Stroke(o);
			if (n && Q) X.Fill(o)
		} else if (A && y[4]) {
			var E = A.MF,
				a9 = new dc(E, z),
				p = dQ.Dz(a9, A),
				ez = H.D.X5(p);
			for (var T in ez) {
				var bN = parseInt(T.slice(1), 16);
				o.colr = R ? c5.r0(R.Clr.v) : [(bN >>> 16 & 255) / 255, (bN >>> 8 & 255) / 255, (bN & 255) / 255];
				var cg = ez[T];
				H.D.O(cg.d, Y, cg.d);
				cg = H.D.akr(cg);
				o.pth = {
					cmds: cg.W,
					crds: cg.d
				};
				X.Fill(o)
			}
		} else if (A && y[3] == !1) {
			var E = A.MF,
				d8 = A.O.clone(),
				C = new cu(1, 0, 0, -1, 0, 0);
			C.concat(d8);
			C.concat(Y);
			var S = bt.jn(E),
				a9 = new dc(E, z);
			for (var w = 0; w < a9.eS.length; w++) {
				var g_ = a9.eS[w];
				if (g_.Vz.length == 1 && g_.Vz[0].nz) continue;
				for (var fw = 0; fw < g_.V8.length; fw++) {
					var dT = g_.V8[fw],
						g4 = g_.tZ.y + dT.tZ.y,
						bB = g_.Vz[dT.start].start,
						d1 = g_.Vz[dT.end - 1].end,
						f_ = bt.af$(E, bB, d1);
					for (var g$ = 0; g$ < f_.length; g$++) {
						var eT = a9.Fj(bB),
							dz = f_[g$],
							i4 = bt.lW(E, bB, bB),
							fy = i4.Dm[i4.dS.Font].Name;
						o.font.Tf = fy;
						var T = bt.T6(i4.dS);
						o.colr = R ? c5.r0(R.Clr.v) : [T.U / 255, T.S / 255, T.i / 255];
						o.font.Tfs = Math.round(i4.dS.FontSize);
						var cN = S.slice(bB, bB + dz);
						if (i4.dS.FontCaps == 2) cN = cN.toUpperCase();
						var fP = new cu;
						fP.translate(eT.T.x, -g4);
						fP.concat(C);
						o.ctm = [fP.m, fP.i, fP.p$, fP.xA, fP.PV, fP.ye];
						X.PutText(o, cN, 0);
						o.ctm = [1, 0, 0, 1, 0, 0];
						bB += dz
					}
				}
			}
		} else if (!s.rect.qr()) {
			var du, ea, cF = !1,
				gB = new cu;
			if (s.add.SoLd) {
				var bp = s.add.SoLd,
					hf = bp.Idnt.v,
					bq = F._p(hf, bp.Crop ? bp.Crop.v : null),
					dh = "";
				if (bq == null) return;
				var eY = bq.DW,
					f1 = em.Xh(bq.raw.buffer);
				if (y[5].indexOf(f1) != -1) {
					du = bq.raw;
					cF = !0
				} else du = eY[0];
				ea = eY[1];
				gB = H.P.br(bp)
			} else {
				du = s.buffer;
				ea = s.rect;
				gB.translate(ea.x, ea.y)
			}
			if (R && !cF) du = cr.BM(du, R, ea);
			c5.CK(o, X, du, ea, gB, Y);
			if (R && cF) {
				var u = [0, 0, ea.Z, 0, ea.Z, ea.h, 0, ea.h];
				H.D.O(u, gB, u);
				H.D.O(u, Y, u);
				var hn = JSON.parse(JSON.stringify(o));
				hn.ca = R.Opct.v.val / 100;
				hn.pth = {
					cmds: ["M", "L", "L", "L", "Z"],
					crds: u
				};
				hn.colr = c5.r0(R.Clr.v);
				X.Fill(hn)
			}
		}
	};
	c5.CK = function (F, P, o, X, Y, y) {
		var z = new cu;
		z.scale(X.Z, -X.h);
		z.translate(0, X.h);
		z.concat(Y);
		z.concat(y);
		F.ctm = [z.m, z.i, z.p$, z.xA, z.PV, z.ye];
		P.PutImage(F, o, X.Z, X.h);
		F.ctm = [1, 0, 0, 1, 0, 0]
	};
	var dI = {};
	dI.ee = function (F) {
		var P = new Uint8Array(F);
		return dI.fr(P, 0)
	};
	dI.fr = function (F, P) {
		var o = r.l,
			X = r.$o,
			Y = {
				Za: X(F, P, 4),
				c: P + 8,
				size: o(F, P + 4)
			},
			y = Y.Za == "FORM" || Y.Za == "LIST" || Y.Za == "CAT ";
		if (y) Y.bl = X(F, P + 8, 4);
		if (Y.size < 0 || Y.c + Y.size > F.length) throw "e";
		if (y) {
			Y.sub = [];
			P += 12;
			var z = Y.c + Y.size;
			while (P < z) {
				var s = dI.fr(F, P);
				Y.sub.push(s);
				P += 8 + s.size + (s.size & 1)
			}
		}
		return Y
	};
	var aa = {};
	aa.ee = function (F, P) {
		var o = new Uint8Array(F);
		return aa.fr(o, 0, P)
	};
	aa.fr = function (F, P, o) {
		var X = r.L6,
			Y = r.$o,
			y = {
				Za: Y(F, P, 4),
				c: P + 8,
				size: X(F, P + 4)
			};
		if (o && o[y.size] != null) y.size = o[y.size];
		if (y.Za == "RIFF" || y.Za == "LIST") {
			y.bl = Y(F, P + 8, 4)
		}
		if (y.size < 0 || y.c + y.size > F.length) throw "e";
		if (y.Za == "RIFF" || y.Za == "LIST" && (y.bl != "cmpr" && y.bl != "stlt")) {
			y.sub = [];
			P += 12;
			var z = y.c + y.size;
			while (P < z) {
				var s = aa.fr(F, P, o);
				y.sub.push(s);
				P += 8 + s.size + (s.size & 1)
			}
		}
		return y
	};
	var dI = {};
	dI.ee = function (F) {
		var P = new Uint8Array(F);
		return dI.fr(P, 0)
	};
	dI.fr = function (F, P) {
		var o = r.l,
			X = r.$o,
			Y = {
				Za: X(F, P, 4),
				c: P + 8,
				size: o(F, P + 4)
			},
			y = Y.Za == "FORM" || Y.Za == "LIST" || Y.Za == "CAT ";
		if (y) Y.bl = X(F, P + 8, 4);
		if (Y.size < 0 || Y.c + Y.size > F.length) throw "e";
		if (y) {
			Y.sub = [];
			P += 12;
			var z = Y.c + Y.size;
			while (P < z) {
				var s = dI.fr(F, P);
				Y.sub.push(s);
				P += 8 + s.size + (s.size & 1)
			}
		}
		return Y
	};

	function b7() {}
	b7.ee = function (F, P) {
		var o = new Uint8Array(F);
		P.Lt = !0;
		var X = r.$o(o, 0, 2);
		if (X == "WL") {
			alert("Unsupported CDR version")
		} else {
			var Y = b7.bV,
				y = aa.ee(o.buffer),
				z = {
					data: o,
					c: 0,
					A7: b7.alO(o[11])
				},
				A = 300;
			z.eF = z.A7 < 600 ? 16 : 32;
			b7.gW(z, y.sub, P, 0);
			var s = Y(y, "cmpr").sub,
				t = s[0],
				d = s.slice(1),
				U = Y(t, "mcfg").C,
				v = U.abH;
			A /= gX.B$(new ev(0, 0, Math.round(v.x * A), Math.round(v.y * A)), 8192 * 8192);
			var Z = Math.round(v.x * A),
				D = Math.round(v.y * A);
			P.Z = Z;
			P.h = D;
			P.buffer = H.R(P.Z * P.h * 4);
			var q = Y(t, "filt").sub,
				R = Y(t, "otlt").sub;
			t.P6 = {};
			for (var w = 0; w < q.length; w++) t.P6[q[w].sub[0].C.id] = q[w].sub[0].C;
			t.ma = {};
			for (var w = 0; w < R.length; w++) t.ma[R[w].C.id] = R[w].C;
			var J = new cu(A, 0, 0, -A, v.x * A / 2, v.y * A / 2),
				W = d[1];
			b7.xf(W, t, P, J);
			P.f$(1);
			P.r[P.r.length - 1].BE(new ev(0, 0, Z, D))
		}
	};
	b7.bV = function (F, P) {
		var o = null;
		for (var w = 0; w < F.sub.length; w++) {
			var X = F.sub[w];
			if (X.Za == P || X.bl == P) o = X
		}
		return o
	};
	b7.xf = function (F, P, o, X) {
		var Y = b7.bV,
			y = F.bl ? F.bl : F.Za,
			z = Y(F, "lgob"),
			s = Y(F, "txsm"),
			t, d;
		if (z) {
			t = Y(z, "trfl");
			d = Y(z, "loda")
		}
		var U = t ? t.sub[0].Aw.clone() : new cu;
		U.concat(X);
		var v = o.an();
		if (y == "page" || y == "layr" || y == "grp ") {
			v.uf((y == "page" ? "Page" : "Group") + " " + o.r.length);
			v.add.lsct = gr.lw;
			v.sW = "pass";
			v.ix = 24;
			var A = [];
			if (y == "page") A = Y(F, "gobj").sub;
			if (y == "layr") A = F.sub.slice(2);
			if (y == "grp ") A = F.sub.slice(4);
			if (A.length == 0) return;
			o.r.push(o.Px());
			for (var w = A.length - 1; w >= 0; w--) b7.xf(A[w], P, o, X)
		} else if (y == "obj " && d.C && d.C.path) {
			v.uf("Object " + o.r.length);
			var Z = P.P6[d.C.aiK],
				D = P.ma[d.C.a2A],
				q = v.getName(),
				R = Z && Z.type != 0,
				J = R && Z.C != null ? Z.C : [0, 0, 0];
			v.ix |= 16;
			v.add.vstk = JSON.parse(JSON.stringify(ce.bW.default));
			var W = v.add.vstk;
			W.strokeEnabled.v = !1;
			v.add.vmsk = new h.iO;
			if (D && D.a1f != 1) {
				W.strokeEnabled.v = !0;
				W.strokeStyleLineAlignment.v.strokeStyleLineAlignment = "strokeStyleAlignCenter";
				W.strokeStyleLineWidth.v.val = D.lineWidth * X.d3();
				var p = D.color;
				W.strokeStyleContent.v.Clr.v = H.j.$H({
					U: p[0] * 255,
					S: p[1] * 255,
					i: p[2] * 255
				})
			}
			var n = d.C.path;
			v.add.vmsk.b = H.D.sb(n, !1);
			H.V.G5(v.add.vmsk.b, U);
			al.ku(J, v, U, H.V.ue(v.add.vmsk.b));
			W.fillEnabled.v = R;
			v.h7();
			v._V(o)
		} else if (y == "obj " && s) {
			var b = d.C.a6P,
				Q = d.C.ajI,
				m = "";
			v.add.TySh = bt.T_(0, 0);
			var _ = U.d3();
			v.add.TySh.O.translate(U.PV, U.ye);
			var L = v.add.TySh.MF,
				I = s.C.qR;
			for (var w = 0; w < I.length; w++) {
				var c = I[w],
					u = m.length;
				m += c.text + "\n";
				bt.v$(L, u, c.text + "\n");
				var a = b7.a29(c.aei, P),
					N = bt.lW(L, u, m.length);
				if (a.align == 3) N.eS.Justification = 1;
				else N.eS.Justification = 0;
				var V = a.fill.C;
				N.dS.FillColor = {
					Type: 1,
					Values: [1, V[0], V[1], V[2]]
				};
				N.dS.FontSize = Math.round(a.a0B.fontSize * U.d3());
				bt.Ji(L, u, m.length - 1, N)
			}
			if (Q) {
				bt.E5(L, 0)
			} else {
				bt.E5(L, 1);
				bt.Z1(L, [0, 0, Math.round(b.x * U.m), Math.round(-b.y * U.xA)])
			}
			v.uf(m.slice(0, 10))
		} else {
			v = null
		}
		if (v) o.r.push(v)
	};
	b7.a29 = function (F, P) {
		var o = b7.bV(P, "stlt").C,
			X = JSON.parse(JSON.stringify(o.gg[F]));
		if (X.MB != 0) {
			var Y = o.gg[X.MB];
			for (var y in Y)
				if (X[y] == null || X[y] == 0) X[y] = Y[y];
			delete X.MB
		}
		X.align = o.a8k[X.ab1];
		X.fill = P.P6[o.aiq[X.Kf]];
		X.a1q = P.ma[o.a6R[X.O7]];
		X.a0B = o.qb[X.a1t];
		return X
	};
	b7.afD = function (w) {
		var e = w.data[w.c];
		w.c += 1;
		return e
	};
	b7.ZQ = function (w) {
		var e = r.wP(w.data, w.c);
		w.c += 2;
		return e
	};
	b7.RM = function (w) {
		var e = r.L6(w.data, w.c);
		w.c += 4;
		return e
	};
	b7.abJ = function (w) {
		var e = r.L6(w.data, w.c);
		w.c += 8;
		return e
	};
	b7.bp = function (w) {
		var e = r.XS(w.data, w.c);
		w.c += 2;
		return e
	};
	b7.cP = function (w) {
		var e = r.K8(w.data, w.c);
		w.c += 4;
		return e
	};
	b7.VZ = function (w) {
		var e = r.a8o(w.data, w.c);
		w.c += 8;
		return e
	};
	b7.aB = function (w) {
		if (w.c >= w.data.length) throw "e";
		var F = 0;
		while (w.data[w.c + F] != 0) F++;
		var P = r.$o(w.data, w.c, F);
		w.c += F + 1;
		return P
	};
	b7.a65 = function (F) {
		if (F.A7 < 600) return Math.PI * b7.bp(F) / 1800;
		return Math.PI * b7.cP(F) / 18e7
	};
	b7.a5r = function (F) {
		if (F.A7 < 1500) return b7.L4(F);
		else return b7.VZ(F) / 254e3
	};
	b7.L4 = function (F) {
		if (F.A7 < 600) return b7.bp(F) / 1e3;
		else return b7.cP(F) / 254e3
	};
	b7.a2a = function (F) {
		if (F.A7 < 600) return CRDParser.ZQ(F);
		else return b7.RM(F)
	};
	b7.ahv = function (F) {
		if (F.A7 < 600) return CRDParser.bp(F);
		else return b7.cP(F)
	};
	b7.gW = function (F, P, o, X) {
		var Y = b7,
			y = Y.afD,
			z = Y.ZQ,
			s = Y.RM,
			t = Y.abJ,
			d = Y.bp,
			U = Y.cP,
			v = Y.VZ,
			A = Y.L4,
			Z = Y.a5r,
			D = Y.a65,
			q = Y.a2a,
			R = Y.ahv;
		for (var J = 0; J < P.length; J++) {
			var W = F.A7,
				p = P[J];
			F.c = p.c + (p.Za == "LIST" ? 4 : 0);
			if (p.Za == "vrsn") {
				var n = z(F);
				F.A7 = n;
				console.log("Version", n);
				F.eF = n < 600 ? 16 : 32
			} else if (p.Za == "DISP") {} else if (p.Za == "LIST" && p.bl == "cmpr") {
				var b = s(F),
					Q = s(F),
					_ = s(F),
					L = s(F),
					m = new Uint8Array(F.data.buffer, F.c + 8 + 2, b - 6 - 8),
					I = pako.inflateRaw(m),
					N = 0;
				F.c += b;
				m = new Uint8Array(F.data.buffer, F.c + 8 + 2);
				var c = pako.inflateRaw(m),
					u = [];
				for (var a = 0; a < c.length; a += 4) u.push(r.L6(c, a));
				p.sub = [];
				while (N < I.length) {
					var V = aa.fr(I, N, u);
					N = V.c + V.size;
					p.sub.push(V)
				}
				var M = {
					data: I,
					c: 0,
					A7: W,
					eF: F.eF
				};
				b7.gW(M, p.sub, o, X + 1)
			} else if (p.Za == "LIST" && p.bl == "stlt") {
				var O = F.c,
					g7 = 32;
				p.C = {};
				var K = s(F);
				if (K == 0) return;
				p.C.aiq = b7.TQ(F, W >= 1300);
				p.C.a6R = b7.TQ(F);
				p.C.qb = {};
				var j = s(F);
				for (var w = 0; w < j; w++) {
					var $ = s(F);
					F.c += W < 1e3 ? 12 : 20;
					var x = z(F),
						g = z(F);
					F.c += 8;
					var T = A(F);
					F.c += W < 1e3 ? 12 : 20;
					p.C.qb[$] = {
						a0e: x,
						acm: g,
						fontSize: T
					}
				}
				p.C.a8k = b7.TQ(F);
				var E = s(F);
				F.c += 52 * E;
				var a9 = s(F);
				F.c += 152 * a9;
				var ez = s(F);
				F.c += 784 * ez;
				var bN = s(F);
				for (var w = 0; w < bN; w++) {
					F.c += 40;
					if (W > 1300) F.c += 4;
					if (W >= 1300) {
						if (s(F)) F.c += 68;
						else F.c += 12
					} else {
						F.c += 20;
						if (W >= 1e3) F.c += 8;
						if (s(F)) F.c += 8;
						F.c += 8
					}
				}
				var cg = s(F);
				p.C.ag4 = {};
				for (var w = 0; w < cg; w++) {
					var d8 = s(F),
						C = {};
					F.c += 12;
					C.right = A(F);
					C.abn = A(F);
					C.left = A(F);
					p.C.ag4[d8] = C
				}
				var S = s(F);
				if (W >= 1300) g7 += 4;
				F.c += g7 * S;
				var g_ = s(F);
				F.c += 28 * g_;
				if (W > 800) {
					var fw = s(F);
					F.c += 12 * fw
				}
				p.C.gg = {};
				for (var w = 0; w < K; w++) {
					var dT = s(F),
						g4 = s(F),
						bB = {};
					bB.MB = s(F);
					F.c += 8;
					var d1 = s(F);
					if (W >= 1200) d1 *= 2;
					F.c += d1;
					bB.Kf = s(F);
					bB.O7 = s(F);
					if (dT > 1) {
						bB.a1t = s(F);
						bB.ab1 = s(F);
						bB.akJ = s(F);
						bB.a47 = s(F);
						if (W > 800) bB.ah_ = s(F)
					}
					if (dT > 2) {
						bB.agm = s(F);
						bB.a9T = s(F);
						bB.aas = s(F);
						bB.ad6 = s(F);
						bB.a9d = s(F)
					}
					p.C.gg[g4] = bB
				}
			} else if (p.Za == "LIST") b7.gW(F, p.sub, o, X + 1);
			else if (p.Za == "txsm") {
				p.C = {};
				if (W < 600) throw "e";
				if (W < 700) throw "e";
				if (W >= 1600) throw "e";
				if (W >= 1500) F.c += 37;
				else F.c += 36;
				if (s(F)) {
					if (W < 800) F.c += 32
				}
				if (W < 800) F.c += 4;
				p.C.a7D = s(F);
				p.C.qR = [];
				F.c += 48;
				if (W >= 800) {
					if (s(F)) {
						F.c += 32;
						if (W >= 1300) F.c += 8
					}
				}
				if (W >= 1500) F.c += 12;
				var dT = s(F),
					f_ = 1,
					g$ = !1;
				if (!dT) {
					if (W >= 800) F.c += 4;
					if (W > 800) F.c += 2;
					if (W >= 1400) F.c += 2;
					F.c += 24;
					if (W < 800) F.c += 8;
					f_ = s(F)
				}
				for (var a = 0; a < f_; a++) {
					var eT = s(F),
						w = 0;
					if (W >= 1300 && dT) F.c++;
					F.c++;
					var K = s(F),
						dz = [];
					for (w = 0; w < K; w++) {
						var i4 = y(F),
							cN = 0;
						y(F);
						var fy = y(F);
						if (W >= 800) cN = y(F);
						var bB = {};
						if (fy & 1) {
							bB.a0e = z(F);
							var fP = z(F);
							if (fP) bB.agv = fP
						}
						if (fy & 2) F.c += 4;
						if (fy & 4) bB.a7i = A(F);
						if (fy & 8) F.c += 4;
						if (fy & 16) F.c += 4;
						if (fy & 32) F.c += 4;
						if (fy & 64) {
							bB.Kf = s(F);
							if (W >= 1500) F.c += 48
						}
						if (fy & 128) {
							bB.O7 = s(F)
						}
						if (cN & 8) {
							if (W >= 1300) {
								var du = s(F);
								if (F.c + du * 2 >= F.data.length) {
									g$ = !0;
									break
								}
								F.c += du * 2
							} else F.c += 4
						}
						if (cN & 32) {
							var ea = y(F);
							if (ea) F.c += 52
						}
						if (i4 == 2)
							if (W >= 1300) F.c += 48;
						dz.push(bB)
					}
					if (g$) {
						break
					}
					var cF = s(F);
					if (F.c + cF * 4 > F.data.length) break;
					var gB = [];
					for (w = 0; w < cF; w++) {
						var bp = 0;
						if (W >= 1200) bp = t(F) & 4294967295;
						else bp = s(F);
						gB[w] = bp >> 16 | bp & 1
					}
					var hf = cF;
					if (W >= 1200) hf = s(F);
					var bq = b7.aB(F);
					p.C.qR.push({
						aei: eT,
						text: bq,
						gg: dz
					})
				}
			} else if (p.Za == "font") {
				var eY = z(F),
					f1 = z(F);
				F.c += 14;
				var dh = b7.aB(F);
				p.C = {
					id: eY,
					ai2: f1,
					name: dh
				}
			} else if (["IKEY", "ICMT", "pfrd", "bcfg"].indexOf(p.Za) != -1) {} else if (p.Za == "flgs") p.C = s(F);
			else if (p.Za == "bbox") {
				var hn = A(F),
					e7 = A(F),
					ed = A(F),
					hP = A(F);
				p.C = new ev(hn, e7, ed - hn, hP - e7)
			} else if (p.Za == "fild") {
				var ck = s(F),
					ds = 0,
					bd;
				if (W >= 1300) {
					F.c += 4;
					ds = z(F);
					F.c += 2
				}
				var hB = z(F);
				if (hB == 0) {} else if (hB == 1) {
					F.c += W >= 1300 ? 13 : 2;
					bd = b7.HD(F)
				} else if (hB == 2) {
					F.c += W >= 1300 ? 8 : 2;
					var d0 = y(F),
						d$ = 0;
					if (W >= 1300) {
						F.c += 17;
						d$ = d(F)
					} else if (W >= 600) {
						F.c += 19;
						d$ = U(F)
					} else {
						F.c += 11;
						d$ = d(F)
					}
					var ap = D(F),
						dE = .5 + R(F),
						fv = .5 + R(F) - .5;
					if (W >= 600) F.c += 2;
					var c8 = q(F) & 255,
						bT = y(F) / 100;
					F.c++;
					var bi = q(F) & 65535;
					if (W >= 1300) F.c += 3;
					var i7 = [];
					for (var w = 0; w < bi; w++) {
						var ec = b7.HD(F);
						if (W >= 1300) {
							if (ds == 158 || W >= 1600 && ds == 150) F.c += 26;
							else F.c += 5
						}
						var eg = q(F) / 100;
						if (W >= 1300) F.c += 3;
						i7.push([eg, ec])
					}
					bd = {
						typ: d0 == 1 ? "lin" : "rad",
						crds: [dE - Math.cos(ap) / 2, fv - Math.sin(ap) / 2, dE, fv],
						grad: i7,
						mat: [1, 0, 0, 1, 0, 0]
					}
				} else console.log("Unknown fill type", hB);
				p.C = {
					id: ck,
					type: hB,
					C: bd
				}
			} else if (p.Za == "outl") {
				var hZ = s(F);
				if (W >= 1300) {
					var fu = 0,
						bg = 0;
					while (fu != 1) {
						F.c += bg;
						fu = s(F);
						bg = s(F)
					}
				}
				var co = z(F),
					ga = z(F),
					e5 = z(F);
				if (W < 1300 && W >= 600) F.c += 2;
				var fM = A(F),
					bb = z(F) / 100;
				if (W >= 600) F.c += 2;
				var hp = D(F);
				if (W >= 1300) F.c += 46;
				else if (W >= 600) F.c += 52;
				var bd = b7.HD(F, hZ == 270963208 || hZ == 276198e3, hZ);
				p.C = {
					id: hZ,
					a1f: co,
					ak0: ga,
					ae1: e5,
					lineWidth: fM,
					color: bd
				}
			} else if (p.Za == "mcfg") {
				if (1300 <= W) F.c += 12;
				else if (900 <= W) F.c += 4;
				else if (600 <= W && W < 700) F.c += 28;
				var fT = 0,
					aE = 0;
				if (W < 400) throw "e";
				else {
					fT = A(F);
					aE = A(F)
				}
				p.C = {
					abH: new aH(fT, aE)
				}
			} else if (p.Za == "loda") {
				var O = F.c,
					cs = q(F),
					hL = q(F),
					fR = q(F),
					cd = q(F),
					ih = q(F),
					aV = [],
					dw = [];
				F.c = O + fR;
				for (var w = 0; w < hL; w++) aV[w] = q(F);
				F.c = O + cd;
				for (var w = hL - 1; w >= 0; w--) dw[w] = q(F);
				p.C = {};
				for (var w = 0; w < hL; w++) {
					F.c = O + aV[w];
					var cM = dw[w];
					if (cM == 10) p.C.a2A = s(F);
					else if (cM == 20) p.C.aiK = s(F);
					else if (cM == 200) p.C.alG = q(F);
					else if (cM == 30) {
						if (W < 400) ih--;
						if (ih == 1) {
							var hn = Z(F),
								e7 = Z(F),
								bZ = 0,
								ht = 0,
								fZ = 0,
								b0 = 0;
							if (W < 1500) {
								b0 = Z(F);
								fZ = W < 900 ? b0 : Z(F);
								ht = W < 900 ? b0 : Z(F);
								bZ = W < 900 ? b0 : Z(F)
							} else throw "e";
							p.C.path = H.D.xJ(H.V.Ny.Rect(0, 0, hn, e7, bZ))
						} else if (ih == 2) {
							var aX = A(F),
								fQ = A(F),
								bQ = D(F),
								fO = D(F),
								hA = Math.abs(aX),
								ij = Math.abs(fQ);
							p.C.path = H.D.xJ(H.V.Ny.VO(0, 0, hA, -ij))
						} else if (ih == 3) {
							p.C.path = b7.alc(F)
						} else if (ih == 4) {
							p.C.ajI = b7.a1x(F)
						} else if (ih == 6) {
							p.C.a6P = b7.a3O(F)
						} else if (ih == 37) {
							p.C.path = b7.SK(F)
						} else console.log(ih)
					}
				}
			} else if (p.Za == "trfd") {
				var O = F.c,
					cs = q(F),
					hL = q(F),
					fR = q(F);
				F.c = O + fR;
				var aV = [];
				for (var w = 0; w < hL; w++) aV[w] = q(F);
				for (var w = 0; w < hL; w++) {
					F.c = O + aV[w];
					if (W >= 1300) F.c += 8;
					var e1 = z(F);
					if (e1 == 8) {
						var fx, cA, hn, hF, cD, e7;
						if (W >= 600) F.c += 6;
						if (W >= 500) {
							fx = v(F);
							cA = v(F);
							hn = v(F) / (W < 600 ? 1e3 : 254e3);
							hF = v(F);
							cD = v(F);
							e7 = v(F) / (W < 600 ? 1e3 : 254e3)
						} else throw "e";
						p.Aw = new cu(fx, hF, cA, cD, hn, e7)
					} else console.log(e1)
				}
			} else if (!1) {
				console.log(p);
				var hX = Math.min(p.size, 32);
				console.log(r.h$(data, p.c, hX));
				console.log(r.afH(data, p.c, hX))
			}
		}
	};
	b7.TQ = function (F, P) {
		var o = b7.RM,
			X = {},
			Y = o(F);
		for (var w = 0; w < Y; w++) {
			var y = o(F);
			F.c += 4;
			var z = o(F);
			X[y] = z;
			if (P) F.c += 48
		}
		return X
	};
	b7.a1x = function (F) {
		var P = b7,
			o = P.L4,
			X = o(F),
			Y = o(F);
		return new aH(X, Y)
	};
	b7.a3O = function (F) {
		var P = b7,
			o = P.L4;
		F.c += 4;
		var X = o(F),
			Y = o(F);
		return new aH(X, Y)
	};
	b7.SK = function (F) {
		var P = b7,
			o = P.RM,
			X = P.ZQ,
			Y = P.L4;
		F.c += 4;
		var y = X(F) + X(F);
		F.c += 16;
		var z = b7.FS(F, y);
		return z
	};
	b7.alc = function (F) {
		var P = b7.ZQ(F);
		F.c += 2;
		return b7.FS(F, P)
	};
	b7.FS = function (F, P) {
		var o = b7,
			X = o.L4,
			Y = F.A7 < 600 ? 2 : 4,
			y = F.c,
			z = {
				d: [],
				W: []
			},
			s = 0,
			t = 0,
			d = 0;
		for (var w = 0; w < P; w++) {
			var s = X(F),
				t = X(F),
				U = F.data[y + P * Y * 2 + w];
			if (!(U & 64) && !(U & 128)) {
				z.d.push(s, t);
				z.W.push("M");
				d += 2
			} else if (U & 64 && !(U & 128)) {
				z.d.push(s, t);
				z.W.push("L");
				d += 2
			} else if (!(U & 64) && U & 128) {
				z.d.push(s, t);
				z.W.push("C");
				d += 6
			} else if (U & 64 && U & 128) {
				z.d.push(s, t)
			}
		}
		if (d != z.d.length) throw "e";
		return z
	};
	b7.a4W = function (F, P) {
		var o = r.L6;
		P += 8;
		var X = o(F, P);
		P += 4;
		var Y = o(F, P);
		P += 4;
		P += 4 * 7;
		var y = P,
			z = H.R(X * Y * 4);
		P += 1024;
		for (var s = 0; s < Y; s++)
			for (var t = 0; t < X; t++) {
				var w = s * X + t,
					d = (Y - s - 1) * X + t,
					U = F[P + w] << 2,
					v = d << 2;
				z[v + 0] = F[y + U + 2];
				z[v + 1] = F[y + U + 1];
				z[v + 2] = F[y + U + 0];
				z[v + 3] = 255
			}
		return {
			Ww: z,
			rect: new ev(0, 0, X, Y)
		}
	};
	b7.alO = function (F) {
		if (F == 32) return 300;
		else if (F < 49) return 0;
		else if (F < 58) return 100 * (F - 48);
		else if (F < 65) return 0;
		return 100 * (F - 55)
	};
	b7.HD = function (F, P, o) {
		var X = b7.ZQ,
			Y = b7.RM,
			y = F.A7,
			z = 0,
			s = 0;
		if (y >= 500) {
			z = X(F);
			if (z == 1 && y >= 1300) z = 25;
			if (z == 25 || z == 30) {
				var t = 0;
				if (z == 30) {
					z = 25;
					t = 30
				} else {
					t = X(F);
					F.c += 4
				}
				var d = X(F),
					U = X(F)
			} else if (z == 14) throw "e";
			else {
				F.c += 6;
				s = Y(F)
			}
		} else throw "e";
		var v = [];
		if (z == 2 || z == 9 || z == 17) {
			var A = [s >>> 0 & 255, s >>> 8 & 255, s >>> 16 & 255, s >>> 24 & 255];
			if (z == 2)
				for (var w = 0; w < 4; w++) A[w] = Math.round(255 * A[w] / 100);
			for (var w = 0; w < 4; w++) A[w] /= 255;
			v = UDOC.C.cmykToRgb(A)
		} else if (z == 1 || z == 5) {
			v = [s >>> 0 & 255, s >>> 8 & 255, s >>> 16 & 255];
			for (var w = 0; w < 3; w++) v[w] = v[w] / 255
		} else console.log("Unknown color model " + z, s, s.toString(16));
		return v
	};
	var dW = {};
	dW.rX = function () {
		var F = new ArrayBuffer(4);
		return [new Uint8Array(F), new Uint32Array(F), new Float32Array(F)]
	}();
	dW.ur = function (F, P, o, X, Y) {
		function y(N, V) {
			for (var M = 0; M < N.length; M++)
				if (N[M][0] == V) return N[M]
		}

		function z() {
			var L = 0,
				N = 0,
				V = 0;
			do {
				V = F[P++];
				L |= (V & 127) << N;
				N += 7
			} while (V & 128 && N < 35);
			return L >>> 0
		}
		var s = dW.rX,
			t = s[0],
			d = s[1],
			U = s[2],
			v = "",
			q = 1;
		for (var w = 0; w < Y; w++) v += "    ";
		var A = X[0] == "mesg",
			Z = X[2],
			D = {},
			R = A ? 1e9 : Z.length;
		while (q <= R) {
			var J = q;
			if (A) {
				J = F[P++];
				if (J > 127) {
					if (F[P] != 1) throw "e";
					P++
				}
				if (J == 0) break
			}
			var W = y(Z, J),
				p = W[2],
				n = W[1] == 1,
				b = n ? z() : 1,
				Q = new Array(b);
			if (p == 3) {
				if (!n) throw "e";
				Q = F.slice(P, P + b);
				P += b
			} else
				for (var w = 0; w < b; w++) {
					var _;
					if ((p & 1) == 1) {
						if (p == 1) _ = F[P++] == 1;
						else if (p == 3) _ = F[P++];
						else if (p == 5) {
							var L = z();
							_ = L & 1 ? ~(L >>> 1) : L >>> 1
						} else if (p == 7) _ = z();
						else if (p == 9) {
							if (F[P] == 0) {
								_ = 0;
								P++
							} else {
								t[0] = F[P];
								t[1] = F[P + 1];
								t[2] = F[P + 2];
								t[3] = F[P + 3];
								var m = d[0];
								d[0] = m << 23 | m >>> 9;
								_ = U[0];
								P += 4
							}
						} else if (p == 11) {
							var I = dW.ah0(F, P);
							_ = I[0];
							P += I[1] + 1
						} else throw p
					} else {
						var c = o[p >>> 1];
						if (c[0] == "enum") {
							var u = F[P++];
							if (u > 127) throw "e";
							_ = c[2][u]
						} else {
							var a = dW.ur(F, P, o, c, Y + 1);
							_ = a[0];
							P = a[1]
						}
					}
					Q[w] = _
				}
			D[W[3]] = n ? Q : Q[0];
			q++
		}
		return [D, P]
	};
	dW.ah0 = function (F, P) {
		var o = P;
		while (F[o] != 0) o++;
		return [r.bc(F, P, o - P), o - P]
	};
	dW.a1n = function (F, P) {
		var o = P;
		while (F[o] != 0) o++;
		for (var w = P; w < o; w++)
			if (F[w] > 127) throw "e";
		return r.$o(F, P, o - P)
	};
	dW.aj2 = function (F, P) {
		var o = dW.a1n,
			X = 1,
			Y = [];
		while (X < F.length) {
			var y = X,
				z = Y.length,
				s = o(F, X);
			X += s.length + 1;
			var t = F[X++];
			if (t == 0) {
				var d = F[X++];
				if (d > 127) X++;
				var U = [];
				for (var w = 0; w < d; w++) {
					var v = o(F, X);
					X += v.length + 1;
					var A = F[X++];
					if (A != 0) throw A;
					var Z = F[X++];
					if (Z != 0) throw Z;
					var D = F[X++];
					if (D > 127) {
						if (F[X] != 1) throw "e";
						X++
					}
					if (D != w) throw D;
					U.push(v)
				}
				Y.push(["enum", s, U])
			} else if (t == 1) {
				var d = F[X++],
					U = [];
				for (var w = 0; w < d; w++) {
					var v = o(F, X);
					X += v.length + 1;
					var A = F[X++];
					if (A > 127) {
						if (F[X] != 1) throw "e";
						X++
					}
					var Z = F[X++];
					if (Z > 127) {
						if (F[X] != 1) throw "e";
						X++
					}
					var D = F[X++];
					if (D > 127) {
						if (F[X] != 1) throw "e";
						X++
					}
					U.push([D, Z, A, v])
				}
				Y.push(["strc", s, U])
			} else if (t == 2) {
				var d = F[X++];
				if (d > 127) X++;
				var U = [];
				for (var w = 0; w < d; w++) {
					var v = o(F, X);
					X += v.length + 1;
					var A = F[X++];
					if (A > 127) {
						if (F[X] != 1) throw "e";
						X++
					}
					var Z = F[X++];
					if (Z > 127) {
						if (F[X] != 1) throw "e";
						X++
					}
					var D = F[X++];
					if (D > 127) {
						if (F[X] != 1) throw "e";
						X++
					}
					U.push([D, Z, A, v])
				}
				Y.push(["mesg", s, U])
			} else throw t
		}
		return Y
	};

	function da() {}
	da.ee = function (F, P) {
		var o = new Uint8Array(F),
			X = 8,
			Y = r.L6(o, X),
			V = 0;
		X += 4;
		var y = [];
		while (X < o.length) {
			var z = r.L6(o, X);
			X += 4;
			var s = o.slice(X, X + z);
			if (o[X] == 137 && o[X + 1] == 80) {} else s = UZIP.inflateRaw(s);
			y.push(s);
			X += z
		}
		var t = dW.aj2(y[0]),
			d = dW.ur(y[1], 0, t, t[t.length - 1], 0)[0],
			U = {
				_2: {},
				Mo: {},
				u6: {}
			},
			v = d.nodeChanges;
		for (var A = 0; A < v.length; A++) {
			var Z = v[A],
				D = Z.guid;
			U.Mo[D.sessionID + "," + D.localID] = Z
		}
		for (var A = 0; A < v.length; A++) {
			var Z = v[A],
				D = Z.parentIndex;
			if (D) {
				var q = da.Ye(U.Mo, D.guid);
				if (q.children == null) q.children = [];
				q.children.push(Z)
			}
		}
		var R = v[0],
			J = R.children,
			W = new ev,
			p = [],
			n = [];
		for (var D = 0; D < J.length; D++) {
			var b = J[D],
				Q = b.children;
			if (b.name == "Internal Only Canvas" || Q == null) continue;
			var _ = new ev;
			for (var w = 0; w < Q.length; w++) {
				var L = Q[w],
					m = L.transform,
					I = L.size;
				if (m.m00 == 1 && m.m10 == 0 && m.m01 == 0 && m.m11 == 1) {
					var c = new ev(m.m02, m.m12, I.x, I.y);
					_ = _.s7(c)
				}
			}
			var u = W.h == 0 ? 0 : W.h + 100,
				a = _.clone();
			a.x = 0;
			a.y = u;
			W = W.s7(a);
			p[D] = _;
			n[D] = u
		}
		var N = gX.B$(new ev(0, 0, W.Z, W.h), 8192 * 8192);
		P.Z = Math.round(W.Z / N);
		P.h = Math.round(W.h / N);
		P.buffer = H.R(P.Z * P.h * 4);
		for (var D = 0; D < J.length; D++) {
			var b = J[D],
				Q = b.children;
			if (b.name == "Internal Only Canvas" || Q == null) continue;
			Q.sort(da.Xw);
			var M = new cu(1, 0, 0, 1, -p[D].x, n[D] - p[D].y);
			M.scale(1 / N, 1 / N);
			for (var w = 0; w < Q.length; w++) {
				var L = Q[w];
				da.xf(L, [], M, d.blobs, P, 0, U);
				V++
			}
		}
		P.f$(V);
		P.Lt = !0;
		if (N != 1) alert("File scaled down " + N + "x")
	};
	da.xf = function (F, P, o, X, Y, y, z) {
		var s = da,
			m = !1,
			I, c, a, N, V;
		for (var w = 0; w < P.length; w++) {
			var t = P[w],
				d = t.guidPath.guids[0];
			if (s.agC(d, F.guid)) {
				var U = {};
				for (var v in F) U[v] = t[v] != null ? t[v] : F[v];
				F = U
			}
		}
		var A = F.type,
			Z = F.children,
			D = F.size,
			q = F.effects,
			R = Y.an();
		R.uf(F.name);
		R.vR(F.visible);
		R.opacity = Math.round(F.opacity * 255);
		var J = s.FB(F.transform),
			W = J.clone();
		W.concat(o);
		var p = new ev(Math.round(W.PV), Math.round(W.ye), Math.round(D.x * W.d3()), Math.round(D.y * W.d3())),
			n = F.fillPaints,
			b = F.inheritFillStyleID;
		if (b) {
			var U = s.Ye(z.Mo, b);
			if (U) n = U.fillPaints
		}
		if (n == null) n = [];
		var n = s.bH(n),
			Q = n[0],
			_ = F.strokePaints,
			b = F.inheritFillStyleIDForStroke;
		if (b) {
			var U = s.Ye(z.Mo, b);
			if (U) _ = U.fillPaints
		}
		if (_ == null) _ = [];
		var _ = s.bH(_),
			L = "BOOLEAN_OPERATION LINE RECTANGLE ROUNDED_RECTANGLE ELLIPSE VECTOR REGULAR_POLYGON".split(" ").indexOf(A) != -1;
		if (L || A == "FRAME") {
			I = new h.iO;
			c = [];
			s.uW(F, X, I, c);
			m = H.V.wY(I.b);
			H.V.G5(I.b, W);
			p = H.V.ue(I.b);
			if (z._2.PS && Q) {
				var u = h.iO.Cm(z._2.PS.b);
				for (var w = 2; w < u.length; w++)
					if (u[w].IO != null) u[w].IO = 3;
				I.b = I.b.concat(u.slice(2));
				c = c.concat(JSON.parse(JSON.stringify(z._2.P$)))
			}
		}
		if (Q && Q.type == "IMAGE") {
			V = Q.imageScaleMode;
			a = s.lD(X, Q.image.dataBlob);
			var M = a.ym.Z / a.ym.h,
				O = D.x / D.y;
			N = Math.abs(M - O)
		}
		if (A == "FRAME") {} else if (L && m && a && (V == "FIT" || V == "FILL" && N <= .05)) {
			var K = X[Q.image.dataBlob].bytes,
				j = Y.f6(K, R.getName(), 0, 0);
			j.ix = R.ix;
			j.opacity = R.opacity;
			R = j;
			var $ = new ev(0, 0, D.x, D.y);
			if (V == "FIT") {
				var x = a.ym.Z,
					g = a.ym.h,
					T = Math.min(D.x / x, D.y / g),
					E = x * T,
					a9 = g * T;
				$ = new ev($.x + ($.Z - E) / 2, $.y + ($.h - a9) / 2, E, a9)
			}
			var ez = H.D.z0($).d;
			H.D.O(ez, W, ez);
			R.add.SoLd.Trnf = B.X.uE(ez);
			R.add.SoLd.nonAffineTransform = B.X.uE(ez);
			var bN = [],
				q = F.effects,
				cg = Q.paintFilter;
			if (q)
				for (var w = 0; w < q.length; w++)
					if (q[w].type == "FOREGROUND_BLUR") {
						var d8 = q[w],
							C = bv.Sb("GsnB", {});
						bN.push(C);
						C.v.enab.v = d8.visible;
						C.v.Fltr.v.Rds.v.val = d8.radius / 2.4
					} if (cg && cg.exposure != 0) {
				var C = bv.Sb("brit", {});
				bN.push(C);
				C.v.Fltr.v.Brgh.v = Math.round(cg.exposure * 160);
				C.v.Fltr.v.useLegacy.v = !0
			}
			if (bN.length != 0) {
				R.add.SoLd.filterFX = bv.U$();
				Y.Bq({
					id: R.add.SoLd.placed.v,
					rect: new ev,
					buffer: H.R(1),
					g: new h.vm
				});
				R.add.SoLd.filterFX.v.filterFXList.v = bN
			}
			R.Gy(Y, !1);
			s.WS(z, R, Y)
		} else if (L) {
			R.ix |= 16;
			R.add.vogk = c;
			R.add.vmsk = I;
			var S = R.add.vstk = JSON.parse(JSON.stringify(ce.bW.default)),
				g7 = s.Zx(F, Q, W, p, X, Y, z);
			if (g7[0] == "None") {
				S.fillEnabled.v = !1;
				R.add.SoCo = g7[1]
			} else {
				var g_ = g7[1].Opct.v.val;
				if (g_ != 100) R.opacity = Math.round(R.opacity / 255 * (g_ / 100) * 255);
				R.add[g7[0]] = g7[1]
			}
			var g7 = s.Zx(F, _[0], W, p, X, Y, z);
			if (g7[0] != "None") {
				S.strokeEnabled.v = !0;
				S.strokeStyleLineWidth.v.val = F.strokeWeight * W.d3();
				S.strokeStyleLineAlignment.v.strokeStyleLineAlignment = ce.bW.Ph[["INSIDE", "CENTER", "OUTSIDE"].indexOf(F.strokeAlign)];
				var dT = {
						SoCo: "SoFi",
						GdFl: "GrFl"
					} [g7[0]],
					g4 = ["SoFi", "GrFl", "patternFill"].indexOf(dT),
					bB = [ce.QB, ce.Zt, ce.QZ][g4];
				S.strokeStyleContent.v = {
					classID: ce.bW.bl[0]
				};
				S.strokeStyleLineDashSet.v = cr.oB(F.dashPattern, 1 / F.strokeWeight);
				var d1 = S.strokeStyleContent.v = {
					classID: ce.bW.bl[g4]
				};
				for (var w = 0; w < bB.length; w++) d1[bB[w]] = g7[1][bB[w]]
			}
			if (q)
				for (var w = 0; w < q.length; w++) {
					var d8 = q[w];
					if (d8.type != "FOREGROUND_BLUR") continue;
					I.bM = d8.radius / 2.4
				}
			R._V(Y)
		} else if (A == "TEXT") {
			var f_ = F.textData,
				g$ = f_.layoutSize,
				eT = ["LEFT", "RIGHT", "CENTER"].indexOf(F.textAlignHorizontal);
			R.add.lnsr = "rend";
			R.add.TySh = bt.T_(0, 0);
			R.add.TySh.xa = new ev(0, 0, 100, 100);
			var dz = W.clone();
			R.add.TySh.O = dz;
			var i4 = R.add.TySh.MF,
				fy = f_.characters;
			if (F.textCase == "TITLE") {
				for (var w = 0; w < fy.length; w++)
					if (w == 0 || fy[w - 1] == " ") {
						var cN = fy.slice(0, w),
							fP = fy.slice(w + 1);
						fy = cN + fy[w].toUpperCase() + fP
					}
			}
			fy = fy.replace(/\u2028/g, "\n");
			fy = fy.replace(/\u2029/g, "\n");
			fy = fy.replace(/\r/g, "\n");
			bt.v$(i4, 0, fy);
			var du = F.textAutoResize,
				ea = f_.baselines;
			if (du == "WIDTH_AND_HEIGHT") {
				var cF = eT == 0 ? 0 : eT == 1 ? g$.x : g$.x / 2,
					gB = ea ? ea[0].position.y : 0;
				dz.translate(cF * W.d3(), gB * W.d3());
				bt.E5(i4, 0)
			} else if (du == "HEIGHT" || du == "NONE" || du == null) {
				var gB = ea ? ea[0].position.y - F.fontSize * .7 : 0;
				dz.translate(0, gB * W.d3());
				bt.E5(i4, 1);
				bt.Z1(i4, [0, 0, Math.round(g$.x), Math.round(1.2 * g$.y)])
			} else throw du;
			if (fy != "") {
				var bp = bt.lW(i4, 0, 1);
				s.In(F, W, D, bp, R, X, Y, z);
				bt.Ji(i4, 0, fy.length, bp);
				var hf = f_.characterStyleIDs,
					bq = f_.styleOverrideTable;
				if (hf)
					for (var w = 0; w < hf.length; w++) {
						var eY = hf[w];
						if (fy[w] == "\n") continue;
						if (eY != 0) {
							var f1;
							for (var dh = 0; dh < bq.length; dh++)
								if (bq[dh].styleID == eY) f1 = bq[dh];
							var bp = bt.lW(i4, w, w + 1);
							s.In(f1, W, D, bp, R, X, Y, z);
							bt.Ji(i4, w, w + 1, bp)
						}
					}
			}
		} else if (A == "SYMBOL") {} else if (A == "INSTANCE") {
			var hn = F.symbolData,
				e7 = hn.symbolOverrides,
				U = s.Ye(z.Mo, hn.symbolID);
			if (U) Z = U.children;
			else console.log(F.name, "symbol not found", hn.symbolID);
			P = P.slice(0);
			for (var w = 0; w < e7.length; w++) P.push(e7[w])
		} else console.log(A);
		if (!1) {} else if (Z && !L) {
			Z.sort(s.Xw);
			if (y == 0 && A != "SYMBOL" && A != "INSTANCE") {
				R.BE(p);
				var ed = n ? n[0] : null;
				if (ed && ed.type == "SOLID") {
					var hP = ed.color;
					R.add.artb.artboardBackgroundType.v = 4;
					R.add.artb.Clr = s.HD(hP)
				}
			}
			Y.r.push(Y.Px());
			var ck = z._2;
			z._2 = {};
			for (var ds = 0; ds < Z.length; ds++) s.xf(Z[ds], P, W, X, Y, y + 1, z);
			z._2 = ck;
			R.add.lsct = !1 ? gr.lw : gr.kE;
			R.sW = "pass";
			var hB = R.UQ();
			R.ix = 24;
			R.vR(hB);
			var bd = y != 0 && n.length != 0 && !F.frameMaskDisabled && F.containerSupportsFillStrokeAndCorners;
			if (bd && I) {
				R.add.vmsk = I;
				R.add.vogk = c;
				R._V(Y)
			} else s.WS(z, R, Y);
			Y.r.push(R)
		} else if (F.mask) {
			if (I) {
				z._2.PS = I;
				z._2.P$ = c
			}
		} else {
			var d0 = [],
				bi = 1;
			if (q)
				for (var d$ = 0; d$ < q.length; d$++) {
					var d8 = q[d$],
						ap = d8.color,
						dE = d8.type,
						fv = ["DROP_SHADOW", "INNER_SHADOW"].indexOf(dE);
					if (fv != -1) {
						var c8 = ["DrSh", "IrSh"][fv],
							bT = JSON.parse(ce.IW[ce.order.indexOf(c8)]);
						d0.push([c8, bT]);
						bT.enab.v = d8.visible;
						bT.Md.v.BlnM = aK.Kl(s.aja(d8.blendMode));
						bT.Opct.v.val = Math.round(100 * ap.a);
						bT.blur.v.val = Math.round(d8.radius * W.d3());
						bT.Clr = s.HD(ap);
						var cF = d8.offset.x,
							gB = d8.offset.y;
						bT.uglg.v = !1;
						bT.lagl.v.val = Math.round(180 / Math.PI * Math.atan2(gB, -cF));
						bT.Dstn.v.val = Math.round(Math.sqrt(cF * cF + gB * gB) * W.d3())
					}
				}
			if (A == "TEXT" && n[0] && n[0].type != "SOLID") bi = 0;
			for (var w = bi; w < n.length; w++) {
				var i7 = n[w],
					ec = s.Zx(F, i7, W, p, X, Y, z);
				if (ec[0] == "GdFl") d0.push(["GrFl", ec[1]]);
				else if (ec[0] == "SoCo") d0.push(["SoFi", ec[1]]);
				else if (ec[0] == "PtFl") d0.push(["patternFill", ec[1]]);
				else throw ec
			}
			if (d0.length != 0) {
				var eg = JSON.parse(ce.default);
				for (var w = 0; w < ce.order.length; w++) eg[ce.og[w]] = {
					t: "VlLs",
					v: []
				};
				for (var w = 0; w < d0.length; w++) {
					var hZ = d0[w],
						c8 = ce.og[ce.order.indexOf(hZ[0])];
					eg[c8].v.unshift({
						t: "Objc",
						v: hZ[1]
					})
				}
				if (Z == null) R.add.lmfx = eg
			}
			Y.r.push(R)
		}
	};
	da.Xw = function (F, P) {
		var o = F.parentIndex.position,
			X = P.parentIndex.position;
		return o > X ? 1 : -1
	};
	da.bH = function (F) {
		for (var w = 1; w < F.length; w++) {
			var P = F[w];
			if (P.type == "IMAGE" && P.opacity == 1) {
				F = F.slice(w);
				break
			}
		}
		for (var w = 0; w < F.length; w++) {
			var P = F[w],
				o = P.imageThumbnail;
			if (P.type == "IMAGE" && P.image.dataBlob == null && o && o.dataBlob) P.image = o;
			if (!P.visible || P.type == "IMAGE" && P.image.dataBlob == null) {
				F.splice(w, 1);
				w--
			}
		}
		return F
	};
	da.WS = function (F, P, o) {
		if (F._2.PS) {
			P.add.vmsk = F._2.PS.clone();
			P.add.vogk = JSON.parse(JSON.stringify(F._2.P$));
			P._V(o)
		}
	};
	da.In = function (F, P, o, X, Y, y, z, s) {
		var t = F.fontSize,
			d = F.lineHeight,
			U = F.fontName,
			v = F.textAlignHorizontal,
			A = F.textTracking,
			Z = F.textCase;
		if (t == null) t = X.dS.FontSize;
		if (U) bt.oi(X, U.postscript);
		if (t != null) X.dS.FontSize = Math.round(t);
		if (A) X.dS.Tracking = Math.round(A * 1e3);
		if (Z) X.dS.FontCaps = Z == "UPPER" ? 2 : 0;
		if (d && (d.units != "PERCENT" || d.value != 100)) {
			var D = d.value;
			if (d.units == "PERCENT") D = 1 * t * D / 100;
			if (d.units == "RAW") D = 1 * t * D;
			X.dS.AutoLeading = !1;
			X.dS.Leading = Math.round(D)
		}
		if (v) X.eS.Justification = ["LEFT", "RIGHT", "CENTER"].indexOf(v);
		var q = F.fillPaints,
			R = F.inheritFillStyleID;
		if (R) {
			var J = da.Ye(s.Mo, R);
			if (J) q = J.fillPaints
		}
		if (q && q[0]) {
			var W = da.Zx(F, q[0], P, o, y, z, s);
			if (W[0] == "SoCo") {
				var p = H.j.T6(W[1].Clr.v);
				X.dS.FillColor = {
					Type: 1,
					Values: [1, p.U / 255, p.S / 255, p.i / 255]
				};
				Y.opacity = Math.round(Y.opacity / 255 * (W[1].Opct.v.val / 100) * 255)
			}
		}
	};
	da.Zx = function (F, P, o, X, Y, y, z) {
		var s = da,
			t, d, U = F.size;
		if (P) {
			var v = P.type,
				A = ["GRADIENT_LINEAR", "GRADIENT_RADIAL", "GRADIENT_DIAMOND", "GRADIENT_ANGULAR"].indexOf(v);
			if (v == "SOLID") {
				t = "SoCo";
				var Z = P.color;
				d = JSON.parse(ce.IW[ce.order.indexOf("SoFi")]);
				d.Clr = s.HD(Z)
			} else if (A != -1) {
				var D = JSON.parse(ce.IW[ce.order.indexOf("GrFl")]),
					q = D.Grad.v;
				q.Intr.v = 0;
				D.Type.v.GrdT = ["Lnr", "Rdl", "Dmnd", "Angl"][A];
				var R = [],
					J = P.stops;
				for (var w = 0; w < J.length; w++) {
					var W = J[w],
						p = W.color;
					R.push([W.position, [p.r, p.g, p.b], p.a])
				}
				H.j.nO(R, q);
				var n = s.FB(P.transform);
				n.nJ();
				var b = n.clone();
				b.scale(U.x, U.y);
				b.concat(o);
				var Q = new aH(0, .5),
					_ = new aH(1, .5);
				Q = b.aT(Q);
				_ = b.aT(_);
				if (!0) {
					Q.x = _.x + .5 * (Q.x - _.x);
					Q.y = _.y + .5 * (Q.y - _.y)
				}
				H.j.VB(Q, _, X, D);
				if (A == 3) {
					if (b.m * b.xA - b.i * b.p$ < 0) D.Rvrs.v = !D.Rvrs.v
				}
				t = "GdFl";
				d = D
			} else if (v == "IMAGE") {
				var D = JSON.parse(ce.IW[ce.order.indexOf("patternFill")]),
					L = D.phase.v,
					m = P.image.dataBlob,
					I = z.u6[m],
					j = 1;
				if (I == null) {
					var c = s.lD(Y, m);
					I = z.u6[m] = {};
					I.id = c_.vs() + "-d71c-11e5-b1ae-a548a96e5f9f";
					I.Jx = [new Uint8Array(c.data), c.ym];
					I.name = "someImage";
					y.e6(I)
				}
				D.Algn.v = !0;
				D.Ptrn.v.Idnt.v = I.id;
				var u = o.PV,
					a = o.ye,
					N = P.imageScaleMode,
					n = s.FB(P.transform);
				n.nJ();
				var V = X.Z,
					M = X.h,
					O = I.Jx[1].Z,
					K = I.Jx[1].h;
				if (N == "FILL") {
					j = Math.max(V / O, M / K);
					j = Math.round(j * 100) / 100
				} else if (N == "FIT") {
					j = Math.min(V / O, M / K);
					j = Math.round(j * 100) / 100
				} else if (N == "STRETCH") {
					var $ = V * n.m,
						x = M * n.xA;
					j = .5 * ($ / O + x / K);
					j = Math.round(j * 100) / 100;
					u += ($ - V) / 2 + n.PV * V;
					a += (x - M) / 2 + n.ye * M
				} else if (N == "TILE") {
					j = P.scale;
					j = Math.round(j * 100) / 100;
					u += ($ - V) / 2;
					a += (x - M) / 2
				}
				var g = j * O,
					T = j * K;
				u += -(g - V) / 2;
				a += -(T - M) / 2;
				D.Scl.v.val = Math.round(100 * j);
				L.Hrzn.v = Math.round(u);
				L.Vrtc.v = Math.round(a);
				t = "PtFl";
				d = D
			} else throw v;
			if (d) d.Opct = {
				t: "UntF",
				v: {
					type: "#Prc",
					val: Math.round(P.opacity * 100)
				}
			}
		} else {
			t = "None";
			d = {
				classID: "null",
				Clr: {
					t: "Objc",
					v: H.j.$H({
						U: 0,
						S: 0,
						i: 0
					})
				}
			}
		}
		return [t, d]
	};
	da.lD = function (F, P) {
		var o = F[P];
		if (o.rslt) return o.rslt;
		var X = o.bytes.buffer,
			Y = em.Xh(X),
			y = em.$I(Y);
		try {
			o.rslt = y.xo(X)[0]
		} catch (h9) {
			o.rslt = {
				data: H.R(4),
				ym: new ev(0, 0, 1, 1)
			}
		}
		return o.rslt
	};
	da.uW = function (F, P, o, X) {
		var Y = F.type,
			y = F.size,
			z = F.cornerRadius,
			v;
		if (z == null) z = 0;
		var s = H.P$.Zm(),
			t = y.x,
			d = y.y,
			U = [z, z, z, z],
			A = ["rectangleTopLeftCornerRadius", "rectangleTopRightCornerRadius", "rectangleBottomRightCornerRadius", "rectangleBottomLeftCornerRadius"];
		for (var w = 0; w < 4; w++)
			if (F[A[w]] != null) U[w] = F[A[w]];
		if (Y == "RECTANGLE" || Y == "ROUNDED_RECTANGLE" || Y == "FRAME") {
			v = H.V.Ny.Rect(0, 0, t, d, U)
		} else if (Y == "ELLIPSE") {
			var Z = F.arcData,
				D = Z ? Z.startingAngle : 0,
				q = Z ? Z.endingAngle : 2 * Math.PI,
				R = Z ? Z.innerRadius : 0;
			if (D == 0 && q > 1.999 * Math.PI) v = H.V.Ny.VO(0, 0, t, d, 0);
			else v = H.V.Ny.a8Y(t / 2, d / 2, d / 2, D, q);
			if (R != 0 && R != 1) {
				var J = h.iO.Cm(v).slice(3);
				J.reverse();
				for (var w = 0; w < J.length; w++) {
					var W = J[w],
						p = W.wU;
					W.wU = W.dv;
					W.dv = p
				}
				var n = new cu;
				n.translate(-t / 2, -d / 2);
				n.scale(R, R);
				n.translate(t / 2, d / 2);
				H.V.G5(J, n);
				v = v.concat(J);
				v[2].length *= 2
			}
		} else if (Y == "LINE") {
			v = H.V.Ny.Rect(0, 0, t, d, 0);
			v.pop();
			v.pop();
			v[2].length = 2
		} else if (Y == "REGULAR_POLYGON") {
			v = H.V.Ny.qF(.5, .5, .5, Math.PI / 2, F.count, 0);
			var b = new cu;
			b.scale(t, d);
			H.V.G5(v, b)
		} else if (Y == "BOOLEAN_OPERATION") {
			v = [{
				type: 6
			}, {
				type: 8,
				all: 0
			}];
			var Q = F.children,
				_ = ["XOR", "UNION", "SUBTRACT", "INTERSECT"].indexOf(F.booleanOperation);
			if (_ == -1) throw F;
			if (Q == null) Q = [];
			for (var w = 0; w < Q.length; w++) {
				var L = Q[w],
					m = new h.iO,
					I = [],
					c = da.uW(L, P, m, I);
				if (m.b == null) continue;
				H.V.G5(m.b, da.FB(L.transform));
				v = v.concat(m.b.slice(2));
				for (var u = 0; u < I.length; u++) X.push(I[u])
			}
			for (var w = 3; w < v.length; w++)
				if (v[w].IO != null) v[w].IO = _;
			s = null
		} else if (Y == "VECTOR") {
			var a, N;
			if (!0) {
				var V = F.vectorData;
				a = V.normalizedSize;
				N = V.vectorNetworkBlob
			} else {
				a = y;
				N = aX[0].commandsBlob;
				console.log(aX)
			}
			var M = P[N].bytes,
				O = new Uint32Array(M.buffer),
				K = new Float32Array(M.buffer),
				j = O[0],
				$ = O[1],
				x = [];
			for (var w = 0; w < j; w++) {
				var g = 3 + w * 3,
					T = new aH(K[g + 1], K[g + 2]);
				x.push(T)
			}
			var E = [],
				a9 = 3 + j * 3;
			for (var w = 0; w < $; w++) {
				var ez = a9 + w * 7,
					bN = O[ez + 1],
					cg = O[ez + 4];
				E.push([bN, cg, K[ez + 2], K[ez + 3], K[ez + 5], K[ez + 6]])
			}
			var C = -1;
			for (var w = 0; w < $; w++) {
				if (C == -1) {} else {
					var S = -1;
					for (var u = w; u < $; u++)
						if (E[u][1] == C) S = u;
					for (var u = w; u < $; u++)
						if (E[u][0] == C) S = u;
					if (S != -1) {
						var g7 = 0,
							p = E[S];
						E[S] = E[w];
						E[w] = p;
						if (p[0] != C) {
							g7 = p[0];
							p[0] = p[1];
							p[1] = g7;
							g7 = p[2];
							p[2] = p[4];
							p[4] = g7;
							g7 = p[3];
							p[3] = p[5];
							p[5] = g7
						}
					}
				}
				C = E[w][1]
			}
			var g_ = [],
				fw = [],
				dT = -1;
			C = -1;
			for (var w = 0; w < $; w++) {
				var g4 = E[w],
					bN = g4[0],
					cg = g4[1],
					bB = x[bN],
					d1 = x[cg];
				if (C != bN) {
					fw.push("M");
					g_.push(bB.x, bB.y);
					dT = bN
				}
				g_.push(bB.x + g4[2], bB.y + g4[3]);
				g_.push(d1.x + g4[4], d1.y + g4[5]);
				fw.push("C");
				g_.push(d1.x, d1.y);
				C = cg;
				if (dT == cg) {
					fw.push("Z");
					dT = C = -1
				}
			}
			v = H.D.sb({
				d: g_,
				W: fw
			}, !0);
			if (z != 0) {
				var U = [],
					f_ = v[2].length;
				for (var w = 0; w < f_; w++) U.push(z);
				if (H.V.BG(v)) H.V.FN(v, 2, U)
			}
			var g$ = new cu;
			g$.scale(a.x == 0 ? 1 : y.x / a.x, a.y == 0 ? 1 : y.y / a.y);
			H.V.G5(v, g$)
		}
		o.b = v;
		if (s) X.push(s)
	};
	da.Ye = function (F, P) {
		return F[P.sessionID + "," + P.localID]
	};
	da.agC = function (F, P) {
		return F.sessionID == P.sessionID && F.localID == P.localID
	};
	da.aja = function (F) {
		var P = {
			NORMAL: "norm",
			MULTIPLY: "mul ",
			SCREEN: "scrn"
		} [F];
		if (P == null) throw F;
		return P
	};
	da.HD = function (F) {
		return {
			t: "Objc",
			v: H.j.$H({
				U: F.r * 255,
				S: F.g * 255,
				i: F.b * 255
			})
		}
	};
	da.FB = function (F) {
		var P = [F.m00, F.m10, F.m01, F.m11, F.m02, F.m12];
		for (var w = 0; w < 6; w++)
			if (Math.abs(P[w]) < 1e-20) P[w] = 0;
		return new cu(P[0], P[1], P[2], P[3], P[4], P[5])
	};
	var B = {};
	B.An = function (F, P, o) {
		this.name = F;
		this.id = P;
		this.JW = null;
		if (o != null) this.CE = o
	};
	B.An.prototype.XZ = function (F, P, o, X, Y) {};
	B.An.prototype.enable = function (F, P, o, X, Y, y) {
		var z = new l(i.E.L, !0);
		z.data = {
			e: i.B.Ik,
			rr: "default"
		};
		P.w(z)
	};
	B.An.prototype.disable = function (F, P, o, X, Y) {};
	B.An.prototype.SV = function (F, P, o, X, Y) {
		return !1
	};
	B.An.prototype.R$ = function (F, P, o, X, Y) {};
	B.An.prototype.xg = function (F, P, o, X, Y) {};
	B.An.prototype.$E = function (F, P, o, X, Y) {};
	B.An.prototype.NL = function (F, P, o, X, Y) {};
	B.An.prototype.FT = function (F, P, o, X, Y) {};
	B.An.prototype.gU = function (F, P, o, X) {};
	B.An.prototype.RR = function (F, P, o, X) {};
	B.An.prototype.oF = function (F, P) {};
	B.An.prototype.tO = function (F, P) {};
	B.An.prototype.zT = function (F, P, o, X, Y) {};
	B.An.prototype.AK = function (F, P) {};
	B.An.prototype.aU = function (F, P) {
		return !1
	};
	B.An.prototype.Vc = function (F, P) {
		return !1
	};
	B.An.prototype.go = function () {
		return !1
	};
	B.An.prototype.QA = function (F, P) {
		return !0
	};
	B.An.prototype.Nn = function () {
		return null
	};
	B.An.prototype.O0 = function (F, P, o) {};
	B.An.prototype.zX = function () {
		return !1
	};
	B.An.prototype.Ip = function (F, P, o, X) {};
	B.An.prototype.track = function (F) {
		var P = new l(i.E.QJ, !0);
		P.data = F;
		F.Ke = !0;
		this.JW.w(P)
	};
	B.An.Wf = function (F, P, o, X, Y) {
		B.An.fo(F, P, [h9.get([12, 41]).charAt(0) + ": " + H.t$.Rq(o.Z, X.NB, Y, X.Z, !0), h9.get([12, 42]).charAt(0) + ": " + H.t$.Rq(o.h, X.NB, Y, X.h, !0)], X)
	};
	B.An.fo = function (F, P, o, X) {
		var Y = 14,
			y = 130,
			z = o.length * 17 + 8,
			s = new ev(F, P - z, y, z),
			t = B.An.Sj;
		if (t == null) t = B.An.Sj = document.createElement("canvas");
		t.width = y;
		t.height = z;
		var d = t.getContext("2d");
		d.fillStyle = "rgba(0,0,1,1)";
		d.fillRect(0, 0, y, z);
		d.font = Y + "px monospace";
		d.fillStyle = "rgba(255,255,255,1)";
		for (var w = 0; w < o.length; w++) d.fillText(o[w], 6, (w + 1) * 17);
		X.v.Tw = [
			[d.getImageData(0, 0, y, z).data, s.clone()]
		]
	};
	B.An.Sj = null;
	B.fb = "0";
	B.j1 = "1";
	B.akK = "2";
	B.aeq = "3";
	B.IV = "5";
	B.a6q = "6";
	B.a9j = "7";
	B.eK = "8";
	B.a2Z = "9";
	B.Uj = "10";
	B.Hd = "11";
	B.Xy = "12";
	B.tB = "13";
	B.V5 = "14";
	B.a4g = "16";
	B.re = "18";
	B.af = "19";
	B.cs = "20";
	B.N0 = "22";
	B.Sm = "23";
	B.o9 = "24";
	B.pJ = "25";
	B.MS = "27";
	B.um = "31";
	B.a0R = "32";
	B.a2F = "34";
	B.a82 = "35";
	B.oZ = "36";
	B.hW = "37";
	B.nD = "38";
	B.oR = "39";
	B.uh = "40";
	B.oo = "41";
	B.wu = "42";
	B.Rw = "43";
	B.OX = "47";
	B.lL = "51";
	B.C1 = "52";
	B.wg = "54";
	B.nA = "55";
	B.S3 = "56";
	B.rG = "57";
	B.SM = "58";
	B.Al = "59";
	B.a7J = "60";
	B.QS = "61";
	B.DV = "100";
	B.SH = "101";
	B.UK = "120";
	B.Vd = "230";
	B.afs = "231";
	B.Kb = "232";
	B.xC = "233";
	B.FA = "234";
	B._q = "235";
	B.Jc = "236";
	B.iH = function (F) {
		var P = B.er,
			o = null;
		for (var X in P)
			if (P[X][1].indexOf(F[1].classID) != -1) o = X;
		return o
	};
	B.er = {};
	B.er[B.Sm] = ["tools/brush", ["PbTl"]];
	B.er[B.o9] = ["tools/pencil", ["PcTl"]];
	B.er[B.um] = ["tools/eraser", ["ErTl"]];
	B.gn = function (F, P, o) {
		B.An.call(this, F, P, o);
		this.fT = {
			brush: F ? ct.Jl() : null,
			bmode: "norm",
			opacity: 1,
			flow: 1,
			smth: 0,
			samp: 0,
			prsr: [!1, !0],
			emode: 0,
			wconf: [40, !0, !0],
			algnd: !1,
			sfrom: 0,
			alt: [!1],
			expo: .5,
			rng: 1,
			strn: .5,
			pdetail: !0,
			smode: 1,
			qsmode: 0,
			setop: "front",
			patch: 0
		};
		this.yH = null;
		this.A4 = null;
		this.KO = null;
		this.Mi = null;
		this.P_ = null;
		this.w6 = null;
		this.MD = null;
		this.lC = null;
		this.R6 = null;
		this.Pv = null;
		this.zd = null;
		this.b6 = null;
		this.la = null;
		this.gT = 1;
		this.oN = !1;
		this.mo = null;
		this.caller = null
	};
	B.gn.prototype = new B.An;
	B.gn.prototype.Vc = function (F, P) {
		return F.Ku && P.s(G.cm)
	};
	B.gn.prototype.xg = function (F, P, o, X, Y) {
		if (X.s(G.ze)) {
			this.w6 = new aH(Y.x, Y.y);
			var y = this.fT.brush.Brsh.v,
				z = y.Dmtr.v.val,
				s = y.Hrdn != null ? y.Hrdn.v.val : -1;
			this.MD = [z, s, !0, JSON.parse(JSON.stringify(this.fT.brush)), Y];
			this.b9(o)
		}
	};
	B.gn.prototype.rg = function (F, P, o) {
		var X = this.MD,
			Y = F.a.F,
			y = o.x - X[4].x,
			z = o.y - X[4].y,
			s = X[0],
			t = X[1],
			d = Math.abs(y) > Math.abs(z);
		if (d && X[2]) {
			var U = Math.round(2 * y / Y);
			s += U;
			o.x -= y - .5 * U * Y
		}
		if (!d && !X[2] && t != -1) {
			var U = Math.round(.25 * z);
			t += U;
			o.y -= z - 4 * U
		}
		s = Math.max(1, s);
		t = X[1] == -1 ? -1 : Math.max(0, Math.min(100, t));
		var v = X[3];
		v.Brsh.v.Dmtr.v.val = s;
		if (t != -1) v.Brsh.v.Hrdn.v.val = t;
		this.MD = [s, t, d, v, o];
		var A = am.ug(v, P.aF.Xu, Y),
			Z = A[1];
		Z.x = Math.round(this.w6.x - Z.Z / 2);
		Z.y = Math.round(this.w6.y - Z.h / 2);
		F.v.bU = [A];
		var D = F.a.PY(this.w6.x, this.w6.y);
		F.v.bX = {
			od: [],
			K3: [D.x - s / 2, D.y, D.x + s / 2, D.y]
		};
		if (t != -1) F.v.bX.K3.push(D.x + 50 / Y, D.y - t / 2, D.x + 50 / Y, D.y + t / 2);
		F.Vg = !0
	};
	B.gn.prototype.FT = function (F, P, o, X, Y) {
		if (this.id == B.cs) return;
		if (this.w6) {
			this.w6 = null;
			this.Rk(JSON.parse(JSON.stringify(this.MD[3])));
			F.v.bU = [];
			F.v.bX = null;
			F.Vg = !0;
			return
		}
		var y = new l(i.E.L, !0);
		y.data = {
			e: i.B.Zo,
			Q: this.id,
			aeE: "showBrushOpts",
			cQ: new aH(Y.Bx + 4, Y.yG)
		};
		P.w(y)
	};
	B.gn.prototype.Rk = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.Sl,
			S9: ge.SO,
			S1: F
		};
		this.caller.w(P)
	};
	B.gn.XL = function (F, P, o, X) {
		if (F == null) F = "FrgC";
		if (P == null) P = "norm";
		if (o == null) o = 1;
		var Y = {
			classID: "Fl",
			Usng: {
				t: "enum",
				v: {
					FlCn: F
				}
			},
			Opct: {
				t: "UntF",
				v: {
					type: "#Prc",
					val: Math.round(o * 100)
				}
			},
			Md: {
				t: "enum",
				v: {
					BlnM: aK.Kl(P)
				}
			}
		};
		if (F == "Clr") Y.Clr = {
			t: "Objc",
			v: X
		};
		if (F == "contentAware") Y.contentAwareColorAdaptationFill = {
			t: "bool",
			v: !0
		};
		return {
			Bm: "fill",
			w1: Y
		}
	};
	B.gn.prototype.XZ = function (F, P, o, X, Y) {
		this.JW = P;
		var y = o.oD.length;
		if (y == 0 && !o.FD()) return;
		var z = y != 0 ? -1 - o.oD[0] : o.p[0],
			s = o.r[z];
		if (F.e == "fromAction") {
			var t = F.WR,
				d = t.w1;
			if (t.Bm == "fill") {
				var U = (d.Opct ? d.Opct.v.val : 100) / 100,
					v = d.Md ? aK.pT(d.Md.v.BlnM) : "norm",
					A = d.Usng.v.FlCn,
					Z;
				if (A == "contentAware") {
					if (o.K == null) {
						alert("Select an area to heal first.");
						return
					}
					if (!o.FD()) return;
					this.qO(o);
					var D = o.K,
						q = H.R(D.rect.M() * 4);
					H.Oy(D.channel, q, 3);
					this.vM(o, "sheal", q, D.rect, D.rect);
					this.A(o, D.rect);
					this.finish(o, D.rect)
				} else {
					if (A == "FrgC") Z = Y.GY;
					else if (A == "BckC") Z = Y.Ty;
					else if (A == "Blck") Z = 0;
					else if (A == "Wht") Z = 16777215;
					else if (A == "Gry") Z = 8421504;
					else if (A == "Clr") {
						var R = H.j.T6(d.Clr.v);
						Z = R.U << 16 | R.S << 8 | R.i
					}
					var J = Z >> 16 & 255,
						W = Z >> 8 & 255,
						p = Z >> 0 & 255;
					this.Fb(o, s, o.K, J, W, p, Math.round(255 * U), v, [2, 3])
				}
			} else if (t.Bm == "delete") {
				var n = z < 0 ? 1 : s.kB,
					D = o.K,
					m;
				if (D == null) return;
				var b = z < 0 ? o.Yq[-z - 1] : n <= 0 ? null : n == 1 ? s.jk() : s.yg(o).g,
					Q = n <= 0 ? s.rect : b.rect,
					_ = n <= 0 ? D.rect.$X(Q) : D.rect.clone();
				if (_.qr()) return;
				var L = _.M();
				if (n <= 0) {
					m = H.R(L * 4);
					H.BP(s.buffer, s.rect, m, _)
				} else {
					m = H.R(L);
					b.extend(_);
					H.Lj(b.channel, b.rect, m, _)
				}
				if (0 <= z && s.Je(o, D)) {
					if (n <= 0) {
						H.XB(m, 0);
						H.BP(s.rD.gx, s.rD.OJ, m, _)
					} else {
						H.set(m, 255);
						H.Lj(s.rD.gx, s.rD.OJ, m, _)
					}
				} else {
					if (n <= 0) {
						var I = H.R(m.length >> 2);
						H.E4(m, I, 3);
						H.N.fG(H.Zm(D.rect.M()), D.rect, I, _, D.channel, _, 1);
						H.Oy(I, m, 3)
					} else {
						var c = H.R(D.rect.M()),
							J = Y.Ty >> 16 & 255,
							W = Y.Ty >> 8 & 255,
							p = Y.Ty >> 0 & 255;
						H.set(c, Math.round(H.ou(J, W, p)));
						H.N.fG(c, D.rect, m, _, D.channel, _, 1)
					}
				}
				this.Nr(o, !0, [2, 2], z, n, _, m)
			}
		}
		if (F.e == "stroke") {
			var u = F.a3I,
				D = o.K;
			if (D == null) {
				D = {
					rect: s.rect.clone(),
					channel: H.R(s.rect.M())
				};
				H.E4(s.buffer, D.channel, 3)
			}
			var a = cr.Uo(u),
				N = B.hl.dt(D, Math.ceil(a[0]), Math.ceil(a[1])),
				Z = H.j.T6(u.Clr.v),
				J = Math.round(Z.U),
				W = Math.round(Z.S),
				p = Math.round(Z.i);
			this.Fb(o, s, N, J, W, p, Math.round(255 * u.Opct.v.val / 100), aK.pT(u.Md.v.BlnM), [14, 9])
		}
		if (F.e == "fillBMP") {
			this.c8(o, s, o.K, F.mu, F.Si, F.tP)
		}
		if (F.e == "draw") {
			var V = F.pL,
				M = V.rect;
			this.qO(o);
			var O = o.r[o.p[0]];
			if (F.wd && O && O.kB <= 0) {
				M = cj.T8.I3(V, o);
				O.buffer = V.buffer.slice(0);
				O.rect = M.clone()
			} else {
				var K = this.fT.bmode;
				this.fT.bmode = "norm";
				this.vM(o, "draw", V.buffer, M, M.$X(new ev(0, 0, o.Z, o.h)));
				this.fT.bmode = K
			}
			this.A(o, M);
			o.Vf = !0;
			this.finish(o, M, F.tP, F.wd)
		}
	};
	B.gn.prototype.Fb = function (F, P, o, X, Y, y, z, s, t) {
		var d = o == null ? new ev(0, 0, F.Z, F.h) : o.rect,
			U = z << 24 | y << 16 | Y << 8 | X << 0,
			v = H.R(d.M() * 4);
		H.XB(v, U);
		this.c8(F, P, o, v, s, t)
	};
	B.gn.prototype.c8 = function (F, P, o, X, Y, y) {
		var z = F.oD.length != 0 ? -1 - F.oD[0] : F.p[0],
			s = z < 0 ? 1 : P.kB,
			t = z < 0 ? F.Yq[-1 - z] : s <= 0 ? null : s == 1 ? P.jk() : P.yg(F).g,
			d = s <= 0 ? P.rect : t.rect,
			U = o == null ? new ev(0, 0, F.Z, F.h) : o.rect,
			v = o == null ? H.AA(F.Z * F.h) : o.channel,
			A = U.M(),
			Z, D = null;
		if (s <= 0) {
			Z = H.R(A * 4);
			H.BP(P.buffer, P.rect, Z, U)
		} else {
			Z = H.R(A);
			t.extend(U);
			H.Lj(t.channel, t.rect, Z, U)
		}
		if (o != null) H.v0(v, X);
		if (s > 0) {
			D = H.R(A);
			H.np(X, D)
		}
		if (0 <= z && o && P.Je(F, o)) {
			var q = P.rD.zU,
				R = H.clone(P.rD.zU);
			if (s <= 0) H.Hk(X, R);
			else H.Hk(D, R);
			var J = new bV([2, 3], this);
			J.data = {
				e: "drawtemp",
				n: F.p[0],
				qf: s,
				a3u: q,
				abZ: R
			};
			F.TX(J);
			this.oF(J.data, F)
		} else {
			if (s <= 0) {
				var W;
				if (P.k6(0)) {
					W = H.R(U.M());
					H.E4(Z, W, 3)
				}
				H.N.DO(Y, X, U, Z, U, U, 1);
				if (P.k6(0)) H.Oy(W, Z, 3)
			} else H.N.fG(D, U, Z, U, v, U, 1);
			this.Nr(F, !0, y, z, s, U, Z)
		}
	};
	B.gn.prototype.aU = function (F) {
		if (G.Ed.indexOf(F) != -1) return !0;
		return !1
	};
	B.gn.prototype.gU = function (F, P, o, X) {
		var Y = this.fT.brush,
			y = X.s(G.ze),
			z = y != this.oN,
			s = B.gn.gp(Y, X);
		if (s != null) this.Rk(s);
		if (!X.s(G.Bl) && X.gL() != -1) {
			var t = i.Wd(Math.round(this.fT.opacity * 100), X.gL()) / 100;
			this.SC({
				opacity: t
			}, P)
		}
		if (this.id == B.eK && z && F != null) {
			var d = this.fT.qsmode;
			if (d == 2) d = F.K == null ? 0 : 1;
			else d = 2;
			this.SC({
				qsmode: d
			}, P)
		}
		this.oN = y;
		if (z) {
			if (F) this.gT = F.a.F;
			this.b9(o, X)
		}
	};
	B.gn.gp = function (F, P) {
		var o = F.Brsh.v.Dmtr.v.val,
			X = F.Brsh.v.Hrdn != null ? F.Brsh.v.Hrdn.v.val : -1,
			Y = o,
			y = X,
			z = P.s(G.cm);
		if (P.s(G.VR)) {
			if (z) X = 25 * Math.floor((X - 1) / 25);
			else {
				if (o <= 10) o--;
				else if (o <= 50) o = 5 * Math.floor((o - 1) / 5);
				else if (o <= 100) o = 10 * Math.floor((o - 1) / 10);
				else if (o <= 200) o = 25 * Math.floor((o - 1) / 25);
				else if (o <= 400) o = 50 * Math.floor((o - 1) / 50);
				else o = 100 * Math.floor((o - 1) / 100)
			}
		}
		if (P.s(G.nH)) {
			if (z) X = 25 * Math.ceil((X + 1) / 25);
			else {
				if (o < 10) o++;
				else if (o < 50) o = 5 * Math.ceil((o + 1) / 5);
				else if (o < 100) o = 10 * Math.ceil((o + 1) / 10);
				else if (o < 200) o = 25 * Math.ceil((o + 1) / 25);
				else if (o < 400) o = 50 * Math.ceil((o + 1) / 50);
				else o = 100 * Math.ceil((o + 1) / 100)
			}
		}
		o = Math.max(1, o);
		X = Math.max(0, Math.min(100, X));
		if (y == -1) X = -1;
		if (o != Y || X != y) {
			var s = JSON.parse(JSON.stringify(F));
			s.Brsh.v.Dmtr.v.val = o;
			if (y != -1) s.Brsh.v.Hrdn.v.val = X;
			return s
		}
		return null
	};
	B.gn.prototype.b9 = function (F, P, o, X) {
		if (F.aF.list.length == 0) return;
		var Y = this.id,
			y;
		if ((Y == B.MS || Y == B.af || Y == B.Sm || Y == B.o9) && (P != null && P.s(G.ze) || this.fT.alt[0])) y = "crosshair";
		else {
			var z = this.gT,
				s = this.fT.brush,
				t;
			if (o && o.p.length != 0) t = o.r[o.p[0]];
			if ((Y == B.MS || Y == B.af) && t != null && t.kB <= 0 && this.b6) {
				var d = o.a.PY(X.x, X.y),
					U = this.zN(d),
					v = this.b6,
					A = this.zd,
					Z = new ev(A.x + U.x, A.y + U.y, A.Z, A.h),
					D = am.ug(s, F.aF.Xu, z),
					q = D[0],
					R = D[1],
					J = Math.ceil(R.Z / z),
					W = new ev(Math.round(d.x - J / 2), Math.round(d.y - J / 2), J, J),
					p = H.R(W.M() * 4),
					n, b;
				H.BP(v, Z, p, W);
				if (z == 1) {
					n = p;
					b = W
				} else if (z < 1) {
					var Q = H.NP(p, W, z);
					n = Q.Ww;
					b = Q.rect;
					if (b.M() != R.M()) {
						b = R.clone();
						b.x = Q.rect.x;
						b.y = Q.rect.y;
						n = H.R(b.M() * 4);
						H.BP(Q.Ww, Q.rect, n, b)
					}
				} else {
					n = q.slice(0);
					b = R;
					H.scale.sI(p, W.Z, W.h, n, b.Z, b.h, z)
				}
				var _ = this.fT.opacity / 255;
				for (var w = 0; w < n.length; w += 4) n[w + 3] = _ * (q[w + 3] * n[w + 3]);
				y = {
					jX: n,
					T: b,
					bP: new aH(b.Z / 2, b.h / 2)
				}
			} else y = am.b_(s, F.aF.Xu, z, Y == B.pJ)
		}
		var L = new l(i.E.L, !0);
		L.data = {
			e: i.B.Ik,
			rr: y
		};
		if (this.caller) this.caller.w(L)
	};
	B.gn.prototype.enable = function (F, P, o, X) {
		this.yH = o;
		this.caller = P;
		this.Rk(JSON.parse(JSON.stringify(this.fT.brush)));
		if (F && F.a.F != 0) this.gT = F.a.F;
		this.b9(o, X)
	};
	B.gn.prototype.AK = function (F, P) {
		if (P == ge.SO) {
			this.fT.brush = F.aF.Y5;
			this.b9(F)
		}
	};
	B.gn.prototype.zT = function (F, P, o, X, Y) {
		for (var y in F) this.fT[y] = F[y];
		if (this.fT.alt[0]) this.b9(Y, X, o)
	};
	B.gn.prototype.O1 = function (F) {
		var P = F.oD.length != 0 ? -1 - F.oD[0] : F.p[0],
			o = F.r[P],
			X = P < 0 ? 1 : o.kB,
			Y = P < 0 ? F.Yq[-P - 1] : X <= 0 ? null : X == 1 ? o.jk() : o.yg(F).g,
			y = Y ? Y.channel : o.buffer,
			z = (Y ? Y.rect : o.rect).clone();
		return [o, X, Y, y, z]
	};
	B.gn.prototype.qO = function (F, P) {
		this.la = F.K == null ? null : {
			rect: F.K.rect.clone(),
			channel: H.clone(F.K.channel)
		};
		var o = this.O1(F),
			X = o[0],
			Y = o[1],
			y = o[2];
		this.Pv = o[3];
		this.R6 = o[4];
		var z = new ev(0, 0, F.Z, F.h),
			s = z.s7(this.R6);
		if ((this.cC() && Y <= 0 || s.Qn(this.R6)) && P != !0) this.Pv = this.Pv.slice(0);
		else {
			if (y) y.extend(s);
			else X.extend(s)
		}
	};
	B.gn.prototype.Rc = function (F) {
		var P = this.O1(F),
			o = P[1],
			X = P[3],
			Y = P[4],
			y = [X, Y],
			z = this.fT.sfrom;
		if (o <= 0 && z != 0) {
			y[1] = new ev(0, 0, F.Z, F.h);
			y[0] = H.clone(F.lD(z == 1 && F.p[0] != F.r.length - 1 ? F.p[0] : null))
		}
		this.b6 = y[0].slice(0);
		this.zd = y[1].clone()
	};
	B.gn.prototype.Z4 = function (F, P, o) {
		if (F.s(G.ze)) {
			var X = new l(i.E.H, !0);
			X.Q = B.V5;
			X.data = {
				e: "pickhere",
				a4y: o
			};
			P.w(X);
			return !0
		}
		return !1
	};
	B.gn.prototype.yC = function (F, P, o, X, Y, y) {
		if (!F.FD(this.caller)) {
			this.A4 = null;
			return
		}
		this.qO(F);
		var z = new ev(0, 0, F.Z, F.h),
			s = null;
		if (y != null) {
			var t = F.oD.length != 0 ? -1 - F.oD[0] : F.p[0],
				d = F.r[t],
				U = t < 0 ? F.Yq[-t - 1] : d.kB <= 0 ? null : d.kB == 1 ? d.jk() : d.yg(F).g;
			s = H.R(z.M() * 4);
			if (U) B.gn.Jy(this.Pv, this.R6, U.color, s, z);
			else H.BP(this.Pv, this.R6, s, z)
		}
		var v = this.fT;
		if (this.A4 && this.id == B.eK && v.qsmode != 0 && F.K != null) {} else {
			var A = P.GY,
				Z = P.Ty;
			if (this.mo == "erase") {
				var D = A;
				A = Z;
				Z = D
			}
			var q = this.id == B.eK ? this.R6 : z;
			this.A4 = new am(v.brush, P.aF.Xu, P.aF.A6, {
				Jf: Y,
				p9: y,
				a2k: v.smth * 50 * i.J() / F.a.F,
				mc: this.id == B.o9 || v.emode == 1,
				lx: v.prsr
			}, A, Z, q, s)
		}
		if (this.id == B.eK) {
			this.A4.ST(v.brush, v.qsmode == 2 ? 0 : 16777215)
		}
		var R = F.a.PY(X.x, X.y);
		R = B.qT.aE(F, R, P);
		if (o.s(G.cm) && this.KO) {
			this.A4.moveTo(this.KO.x, this.KO.y, X.kH);
			this.A4.lineTo(R.x, R.y, X.kH)
		} else this.A4.moveTo(R.x, R.y, X.kH);
		this.KO = R;
		this.Mi = R.clone();
		this.P_ = new af(R)
	};
	B.gn.prototype.yP = function (F, P, o) {
		if (F && F.a.F != 0 && F.a.F != this.gT) {
			this.gT = F.a.F;
			this.b9(o)
		}
	};
	B.gn.prototype.Td = function (F, P, o, X) {
		if (this.A4 == null) return;
		var Y = F.r[F.p[0]],
			y = F.a.PY(X.x, X.y);
		y = B.qT.aE(F, y, P);
		var z = this.P_.ki(y, o);
		if (z.Qn(this.KO)) return 1;
		this.A4.lineTo(z.x, z.y, X.kH);
		this.KO = z;
		if (this.id == B.MS || this.id == B.af) {
			var s = this.vh(),
				t = 11;
			s = F.a._R(y.x - s.x, y.y - s.y);
			var d = t >>> 1,
				U = new ev(Math.round(s.x) - d, Math.round(s.y) - d, t, t),
				v = H.R(U.M() * 4);
			H.XB(16777215);
			for (var w = 0; w < t; w++) v[(w * t + d) * 4 + 3] = v[(t * d + w) * 4 + 3] = 255;
			F.v.Tw = [
				[v, U]
			];
			F.Vg = !0
		}
	};
	B.gn.prototype.RR = function (F, P, o, X) {
		if (o.Mp != this.id) return;
		if (this.id != B.eK || F == null) return;
		if (F.K == null || F.p[0] != this.a0D) {
			this.a0D = F.p[0];
			this.SC({
				qsmode: 0
			}, P)
		}
	};
	B.gn.prototype.A = function (F, P) {
		if (F.oD.length != 0) {
			F.Vg = !0;
			return
		}
		var o = F.r[F.p[0]];
		if (P == null) {
			P = this.A4.Oo();
			if (this.cC() && o.kB <= 0) P = P.$X(this.R6)
		}
		if (P.qr()) return;
		if (o.kB <= 0) {
			o.A(P)
		}
		if (o.kB == 1) {
			o.jk().G2 = !0;
			o._V(F)
		}
		if (o.kB == 3) {
			o.A()
		}
		F.A(F.root.Ch(P, F, F.p[0], !0))
	};
	B.gn.prototype.NL = function (F, P, o, X, Y) {
		if (this.A4 == null) return;
		this.A4.finish();
		if (this.id != B.re && this.id != B.af && this.id != B.eK) this.km(F);
		if (this.id == B.MS || this.id == B.af) {
			F.v.Tw = [];
			F.Vg = !0
		}
		if (this.id == B.eK) {
			var y = F.K;
			F.K = this.la;
			var z = new l(i.E.H, !0);
			z.data = {
				e: "setsel",
				tP: this.name,
				K: y
			};
			z.Q = B.j1;
			P.w(z);
			if (this.fT.qsmode == 0) this.SC({
				qsmode: 1
			}, P)
		} else {
			this.finish(F, this.A4.J0());
			this.A4 = null;
			this.lC = null
		}
		this.dir = 0
	};
	B.gn.prototype.SC = function (F, P) {
		for (var o in F) this.fT[o] = F[o];
		var X = new l(i.E.L, !0);
		X.data = {
			e: i.B.Zo,
			Q: this.id,
			KK: F
		};
		P.w(X)
	};
	B.gn.prototype.cC = function () {
		var F = this.id;
		return F == B.eK || F == B.um || F == B.oR || F == B.uh || F == B.oo || F == B.N0
	};
	B.gn.prototype.finish = function (F, P, o, X) {
		var Y = F.oD.length != 0 ? -1 - F.oD[0] : F.p[0],
			y = F.r[Y],
			z = Y < 0 ? 1 : y.kB,
			s = Y < 0 ? F.Yq[-Y - 1] : z <= 0 ? null : z == 1 ? y.jk() : y.yg(F).g,
			t = s ? s.rect : y.rect,
			v;
		if (this.cC() || !t.Qn(this.R6)) {
			if (s == null) {
				if (this.cC()) y.HZ();
				else {
					var d = P.s7(this.R6),
						U = H.R(d.M() * 4);
					H.BP(y.buffer, y.rect, U, d);
					y.buffer = U;
					y.rect = d
				}
			} else s.HZ();
			this.A(F, t)
		}
		if (z <= 0) {
			v = H.R(P.M() * 4);
			H.BP(this.Pv, this.R6, v, P)
		} else {
			v = H.R(P.M());
			H.set(v, s.color);
			H.Lj(this.Pv, this.R6, v, P)
		}
		this.Nr(F, !1, o ? o : this.name, Y, z, P, v, X)
	};
	B.gn.prototype.Nr = function (F, P, o, X, Y, y, z, s) {
		var t = z;
		if (Y > 0) {
			t = H.R(y.M() * 4);
			B.gn.Jy(z, y, 0, t, y)
		}
		var d = new bV(o, this);
		d.data = [{
			n: X,
			qf: Y,
			T: y,
			Tr: t
		}];
		if (s) d.data.zY = [F.K, null];
		F.TX(d);
		if (P) this.oF(d.data, F);
		else if (s) F.K = null;
		cj.Dt.Gh(F, d.data)
	};
	B.gn.prototype.tO = function (F, P) {
		this.qg(F, P, !1)
	};
	B.gn.prototype.oF = function (F, P) {
		this.qg(F, P, !0)
	};
	B.gn.prototype.qg = function (F, P, o) {
		if (F.e == "drawtemp") {
			var X = o ? F.abZ : F.a3u,
				Y = P.r[F.n];
			Y.rD.zU = X;
			Y.CH(P, 0, 0, P.K);
			Y.A();
			P.Vf = !0
		} else {
			cj.Dt.Cb(P, F);
			if (F.zY) {
				P.K = F.zY[o ? 1 : 0];
				P.Es = !0
			}
		}
		P.A()
	};
	B.gn.prototype.km = function (F) {
		this.vM(F, this.mo, this.A4.qq(), this.A4.o7(), this.A4.Oo());
		this.A(F)
	};
	B.gn.prototype.vM = function (F, P, o, X, Y) {
		var y = this.fT,
			z = F.r[F.p[0]],
			s = F.oD.length != 0 ? F.Yq[F.oD[0]] : z.kB <= 0 ? null : z.kB == 1 ? z.jk() : z.yg(F).g,
			t = H.R(Y.M() * 4),
			d, U = z.k6(0);
		if (s == null) {
			H.BP(this.Pv, this.R6, t, Y);
			if (U) {
				d = H.R(Y.M());
				H.E4(t, d, 3)
			}
		} else {
			B.gn.Jy(this.Pv, this.R6, s.color, t, Y)
		}
		if (F.K && P != "qselect") {
			var v = Y.$X(F.K.rect),
				A = H.R(v.M() * 4);
			if (P == "copy") {
				var Z = H.R(v.M());
				H.Lj(F.K.channel, F.K.rect, Z, v);
				H.BP(t, Y, A, v);
				H.N.$e(o, X, A, v, Z, v, 0, v, 1, !1)
			} else {
				H.BP(o, X, A, v);
				H.pa(F.K.channel, F.K.rect, A, v)
			}
			o = A;
			X = v
		}
		if (P == "idraw" || P == "ierase") {
			if (this.lC == null) this.lC = H.R(this.R6.M());
			var D = this.fT.samp,
				q = this.yH.Ty,
				R = D == 0 ? this.KO : this.Mi,
				J = R.x,
				W = R.y,
				p = B.C6.$i(this.Pv, this.R6, [R, new aH(J - 2, W), new aH(J + 2, W), new aH(J, W - 2), new aH(J, W + 2)]);
			if (D == 2) p = [
				[q >>> 16 & 255, q >>> 8 & 255, q >>> 0 & 255, 255]
			];
			var n = B.C6.XF(t, Y, this.KO, p, this.fT.wconf),
				b = H.R(Y.M());
			H.Lj(this.lC, this.R6, b, Y);
			H.pv.s7(n, b, b);
			H.Lj(b, Y, this.lC, this.R6);
			H.pa(b, Y, o, X);
			P = P.slice(1)
		}
		if (P == "erase" && (cj.Dt.Uv(F) != 16777215 || s)) P = "draw";
		if (P == "draw") H.N.DO(y.bmode, o, X, t, Y, Y, y.opacity);
		else if (P == "erase") {
			var Q = H.R(Y.M() * 4);
			H.BP(o, X, Q, Y);
			if (s == null) {
				var _ = H.R(Y.M());
				H.E4(Q, _, 3);
				H.WI(_, y.opacity);
				H.nJ(_);
				H.pa(_, Y, t, Y)
			} else {
				H.XB(Q, 0, 4278190080);
				H.N.DO("norm", Q, Y, t, Y, Y, y.opacity)
			}
		} else if (P == "clone" || P == "heal") {
			var L = this.vh(),
				m = this.zd.clone();
			m.offset(L.x, L.y);
			var I = Y.clone();
			I.PK(1, 1);
			var c = H.R(I.M() * 4),
				u = H.R(I.M());
			H.BP(o, X, c, I);
			H.E4(c, u, 3);
			H.XB(c, 0);
			if (s == null) {
				H.BP(this.b6, m, c, I);
				var a = H.R(I.M());
				H.E4(c, a, 3);
				H.vB(a, u)
			} else B.gn.Jy(this.Pv, m, s.color, c, I);
			if (P == "clone") {
				H.Oy(u, c, 3);
				H.N.DO(y.bmode, c, I, t, Y, Y, y.opacity)
			}
			if (P == "heal") {
				var N = H.clone(u);
				H.round(N, 20);
				var V = H.R(I.M() * 4);
				H.BP(this.Pv, this.R6, V, I);
				H.N.$e(c, I, V, I, N, I, 0, I, 1, !1);
				H.w9.I4(V, N, I);
				H.N.$e(V, I, t, Y, u, I, 0, Y, 1, !1)
			}
		} else if (P == "dodge" || P == "burn") {
			var c = H.R(Y.M() * 4),
				K = 1,
				j = 0,
				$ = 0,
				x = 0;
			H.BP(o, X, c, Y);
			var M = Y.M() * 4,
				O = B.gn.ff;
			if (this.oN) {
				if (P == "dodge") P = "burn";
				else P = "dodge"
			}
			var g = y.rng;
			if (P == "dodge") {
				j = [1 - K / 2, 1, 1 + K][g];
				$ = [1, 1 / (1 + K), 1][g];
				x = [K / 2, 0, 0][g]
			}
			if (P == "burn") {
				j = [1 / (1 - K / 2), 1, 1 - K / 2][g];
				$ = [1, 1 + K, 1][g];
				x = [-(K / 2) / (1 - K / 2), 0, 0][g]
			}
			for (var w = 0; w < M; w += 4) {
				var T = c[w + 3];
				t[w + 0] = O(t[w + 0], j, $, x, T);
				t[w + 1] = O(t[w + 1], j, $, x, T);
				t[w + 2] = O(t[w + 2], j, $, x, T)
			}
		} else if (P == "sponge" || P == "redeye") {
			var c = H.R(Y.M() * 4),
				u = H.R(Y.M());
			H.BP(o, X, c, Y);
			H.E4(c, u, 3);
			H.Hk(t, c);
			var E = y.smode;
			if (this.oN) E = 1 - E;
			var a9 = bv.tt("hue2");
			if (P == "sponge") az._j(a9, 0, [0, [-50, 46][E],
				[6, 5][E]
			]);
			else az._j(a9, 1, {
				Ej: [265, 305, 25, 55],
				qh: [0, -90, -70]
			});
			var ez = b_.VM("hue2", a9);
			b_.t5(ez, c, c, Y);
			H.N.$e(c, Y, t, Y, u, Y, 0, Y, 1, !1)
		} else if (P == "copy") H.BP(o, X, t, Y);
		else if (P == "sheal") {
			var c = H.R(Y.M() * 4),
				u = H.R(Y.M());
			H.BP(o, X, c, Y);
			H.E4(c, u, 3);
			H.mC.I4(this.Pv, this.R6, u, t, Y)
		} else if (P == "qselect") {
			var bN = this.R6,
				cg = bN.Z,
				d8 = bN.h,
				C = cg * d8,
				S = this.A4.qq(),
				p = this.Pv,
				g7 = B.hl.Et,
				u = g7.px;
			u.fill(128);
			for (var w = 0; w < C; w++) {
				var g_ = S[w << 2],
					fw = S[(w << 2) + 3];
				if (fw == 255 && (g_ == 0 || g_ == 255)) u[w] = g_
			}
			u[0] = u[cg - 1] = 0;
			u[(d8 >>> 1) * cg] = u[(d8 >>> 1) * cg + cg - 1] = 0;
			B.J4.DM(g7, !0);
			F.K = {
				rect: bN,
				channel: g7.K.slice(0)
			};
			F.Es = !0
		}
		if (s == null) {
			if (U) H.Oy(d, t, 3);
			H.BP(t, Y, z.buffer, z.rect)
		} else B.gn.uF(t, Y, s)
	};
	B.gn.vh = function () {
		return null
	};
	B.gn.ff = function (F, P, o, X, Y) {
		var y = F * (1 / 255),
			z = X + P * Math.pow(y, o),
			s = Math.round(z * Y + y * (255 - Y));
		return Math.max(0, Math.min(255, s))
	};
	B.gn.Jy = function (F, P, o, X, Y) {
		var y = H.R(Y.M());
		H.set(y, o);
		H.Lj(F, P, y, Y);
		H.XB(X, 4278190080);
		H.Sv(y, X)
	};
	B.gn.uF = function (F, P, o) {
		var X = H.R(P.M());
		H.np(F, X);
		H.Lj(X, P, o.channel, o.rect)
	};
	B.hl = function (F, P, o) {
		B.An.call(this, F, P, o);
		this.fT = {
			hw: "front",
			bM: 0,
			H7: {
				wV: 0,
				x: 3,
				y: 2
			},
			dU: [10, !0, !0]
		};
		this.k7 = new aH(-1, -1);
		this.H9 = new aH(-1, -1);
		this.qy = "default";
		this.JW = null;
		this.e3 = !1;
		this.qw = !1;
		this.oN = !1;
		this.LX = 0;
		this.y0 = 0;
		this.vi = !1;
		this.Zp = null;
		this.ot = null;
		this.sY = !1
	};
	B.hl.prototype = new B.An;
	B.hl.Et = {
		key: ""
	};
	B.hl.L8 = function (F, P) {
		var o = {
			Bm: F,
			w1: {
				classID: "setd",
				null: {
					t: "obj ",
					v: [{
						t: "prop",
						v: {
							classID: "Chnl",
							keyID: "fsel"
						}
					}]
				}
			}
		};
		if (P) o.w1.T = P;
		return o
	};
	B.hl.FL = function (F, P) {
		return B.hl.L8("set", {
			t: "Objc",
			v: {
				classID: F,
				Top: {
					t: "UntF",
					v: {
						type: "#Pxl",
						val: P.y
					}
				},
				Left: {
					t: "UntF",
					v: {
						type: "#Pxl",
						val: P.x
					}
				},
				Btom: {
					t: "UntF",
					v: {
						type: "#Pxl",
						val: P.y + P.h
					}
				},
				Rght: {
					t: "UntF",
					v: {
						type: "#Pxl",
						val: P.x + P.Z
					}
				}
			}
		})
	};
	B.hl.mT = function (F, P) {
		var o = [],
			X = [],
			y = "set";
		for (var w = 0; w < F.length; w += 2) {
			o.push(F[w]);
			X.push(F[w + 1])
		}
		var Y = {
			t: "Objc",
			v: {
				classID: "Plgn",
				Pts: {
					t: "ObAr",
					v: {
						classID: "Pnt",
						arr: [{
							id: "Hrzn",
							type: "UnFl",
							uID: "#Pxl",
							arr: o
						}, {
							id: "Vrtc",
							type: "UnFl",
							uID: "#Pxl",
							arr: X
						}]
					}
				}
			}
		};
		if (P) y = {
			front: "set",
			union: "addTo",
			difference: "subtractFrom",
			intersection: "interfaceWhite"
		} [P];
		return B.hl.L8(y, Y)
	};
	B.hl.aaY = function (F, P) {
		var o = {
				t: "Objc",
				v: {
					classID: "Pnt",
					Hrzn: {
						t: "UntF",
						v: {
							type: "#Pxl",
							val: F.x
						}
					},
					Vrtc: {
						t: "UntF",
						v: {
							type: "#Pxl",
							val: F.y
						}
					}
				}
			},
			X = B.hl.L8("set", o);
		X.w1.Tlrn = {
			t: "long",
			v: P[0]
		};
		X.w1.AntA = {
			t: "bool",
			v: P[1]
		};
		X.w1.Cntg = {
			t: "bool",
			v: P[2]
		};
		return X
	};
	B.hl.cA = function (F) {
		return B.hl.L8("set", {
			t: "enum",
			v: {
				Ordn: F ? "Al" : "None"
			}
		})
	};
	B.hl.abI = function (F, P, o) {
		var X = {
			classID: "null"
		};
		if (F != "border") X.selectionModifyEffectAtCanvasBounds = {
			t: "bool",
			v: o
		};
		var Y = {
			e: "By",
			c: "By",
			b: "Wdth",
			f: "Rds",
			s: "Rds"
		} [F[0]];
		X[Y] = {
			t: "UntF",
			v: {
				type: "#Pxl",
				val: P
			}
		};
		return {
			Bm: F,
			w1: X
		}
	};
	B.hl.amp = function (F, P, o) {
		var X = {
				t: "obj ",
				v: [{
					t: "prop",
					v: {
						classID: "Chnl",
						keyID: "fsel"
					}
				}]
			},
			Y = {
				t: "obj ",
				v: [{
					t: "Enmr",
					v: {
						classID: "Chnl",
						typeID: "Chnl",
						enum: ["Trsp", "Msk"][o]
					}
				}, {
					t: "name",
					v: {
						classID: "Lyr",
						val: F
					}
				}]
			},
			y = [{
				classID: "null",
				null: X,
				T: Y
			}, {
				classID: "null",
				null: Y,
				T: X
			}, {
				classID: "null",
				null: Y,
				From: X
			}, {
				classID: "null",
				null: Y,
				With: X
			}],
			z = ["set", "add", "subtract", "interfaceIconFrameDimmed"];
		return {
			Bm: z[P],
			w1: y[P]
		}
	};
	B.hl.RE = function (F, P) {
		var o = new l(i.E.L, !0);
		o.data = {
			e: i.B.Sl,
			S9: ge.Kw
		};
		if (!P.IT) F.w(o);
		o.data = {
			e: i.B.Sl,
			S9: ge.KZ
		};
		if (!P.Np.X0) F.w(o)
	};
	B.hl.prototype.XZ = function (F, P, o, X, Y) {
		B.hl.RE(P, Y);
		this.JW = P;
		var y = F.e,
			z, s, t = new ev(0, 0, o.Z, o.h),
			bB = !1,
			d1, f_, g$, eT;
		if (y == "fromAction") {
			var d = F.WR,
				U = d.Bm,
				v = d.w1,
				A = v ? v.selectionModifyEffectAtCanvasBounds : null,
				Z = A && A.v;
			if (U == "inverse") {
				if (o.K == null) {
					alert("No selection!");
					return
				}
				z = {
					channel: H.R(t.M()),
					rect: t
				};
				H.Lj(o.K.channel, o.K.rect, z.channel, z.rect);
				H.nJ(z.channel);
				s = [7, 2]
			} else if (U == "expand") {
				var D = v.By.v.val,
					q = o.K.rect.clone();
				q.PK(D, D);
				var R = H.R(q.M()),
					J = H.R(q.M());
				H.Lj(o.K.channel, o.K.rect, J, q);
				H.style.stroke(J, R, q, D);
				z = {
					channel: R,
					rect: q
				};
				s = [7, 4]
			} else if (U == "contract") {
				var D = v.By.v.val,
					W = o.K.rect.clone();
				W.PK(1, 1);
				if (!Z) W = W.$X(t);
				var J = H.R(W.M()),
					p = H.R(J.length);
				H.Lj(o.K.channel, o.K.rect, J, W);
				H.nJ(J);
				H.style.stroke(J, p, W, D);
				H.nJ(p);
				z = {
					channel: p,
					rect: W
				};
				H.HZ(z);
				s = [7, 5]
			} else if (U == "border") {
				var D = v.Wdth.v.val;
				z = B.hl.dt(o.K, D / 2, D / 2);
				s = [7, 9]
			} else if (U == "feather" || U == "smoothness") {
				var D = v.Rds.v.val;
				z = B.hl.nj(o.K, D, U == "smoothness", t, Z);
				s = U == "feather" ? [7, 6] : [19, 3, 0]
			} else {
				var n = v.null.v;

				function b(hn) {
					var e7 = hn.Top.v.val,
						du = hn.Left.v.val;
					return new ev(du, e7, hn.Rght.v.val - du, hn.Btom.v.val - e7)
				}

				function Q(hn) {
					var e7 = hn[0].arr,
						ed = hn[1].arr,
						hP = {
							d: [],
							W: []
						};
					for (var w = 0; w < e7.length; w++) {
						hP.W.push(w == 0 ? "M" : "L");
						hP.d.push(e7[w], ed[w])
					}
					hP.W.push("Z");
					return hP
				}
				var _ = ["set", "addTo", "subtractFrom", "interfaceWhite"].indexOf(U),
					L = v.T ? v.T.v : null;
				if (L && L.classID == "Elps") {
					z = this.Q2(B.Ou.P2(b(L)));
					s = [10, 4]
				} else if (L && L.classID == "Rctn") {
					var m = b(L);
					z = {
						channel: H.R(m.M()),
						rect: m.clone()
					};
					H.set(z.channel, 255);
					s = [10, 15]
				} else if (L && L.classID == "ObSl") {
					var m = b(L),
						I = B.hl.Et,
						c = I.rect,
						u = I.px,
						a = c.Z,
						N = c.h,
						V = m.x - c.x,
						M = V + m.Z - 1,
						O = Math.max(V, Math.min(M, V + M >>> 1)),
						K = m.y - c.y,
						j = K + m.h - 1,
						$ = Math.max(K, Math.min(j, K + j >>> 1)),
						x = Math.max(V, 0),
						g = Math.min(M, a),
						T = Math.max(K, 0),
						E = Math.min(j, N);
					u.fill(128);
					if (0 <= K)
						for (var a9 = x; a9 < g; a9++) u[K * a + a9] = 0;
					if (j < N)
						for (var a9 = x; a9 < g; a9++) u[j * a + a9] = 0;
					if (0 <= V)
						for (var ez = T; ez < E; ez++) u[ez * a + V] = 0;
					if (M < a)
						for (var ez = T; ez < E; ez++) u[ez * a + M] = 0;
					var bN = B._u.l0,
						cg = Math.round(m.Z * bN),
						d8 = Math.round(m.h * bN);
					for (var a9 = Math.max(0, O - cg); a9 < Math.min(a, O + cg); a9++) u[$ * a + a9] = 255;
					for (var ez = Math.max(0, $ - d8); ez < Math.min(N, $ + d8); ez++) u[ez * a + O] = 255;
					B.J4.DM(I, !0);
					z = {
						channel: I.K.slice(0),
						rect: c.clone()
					};
					s = [10, 44]
				} else if (L && L.classID == "Plgn") {
					z = this.Q2(Q(L.Pts.v.arr));
					s = [10, 9]
				} else if (L && L.classID == "Pnt") {
					z = B.C6.tU(o, new aH(L.Hrzn.v.val, L.Vrtc.v.val), [v.Tlrn.v, v.AntA == null || v.AntA.v, v.Cntg == null || v.Cntg.v]);
					s = [10, 12]
				} else if (L && L.Ordn == "None") {
					z = null;
					s = [7, 1]
				} else if (L && L.Ordn == "Al") {
					z = {
						channel: H.R(t.M()),
						rect: t
					};
					H.set(z.channel, 255);
					s = [7, 0]
				} else {
					var C = o.p[0],
						fw;
					if (n.length == 2) C = gY.iv(o, n[1]);
					else if (L.length == 2) C = gY.iv(o, L[1]);
					var S = (L ? L : n)[0].v.enum,
						g7 = ["Trsp", "Msk", "vectorMask"].indexOf(S);
					console.log(g7);
					var g_ = _ != -1 ? _ : ["set", "add", "subtract", "interfaceIconFrameDimmed"].indexOf(U);
					if (L && L[0].t == "name") {
						for (var w = 0; w < o.Yq.length; w++)
							if (o.Yq[w].name == L[0].v.val) C = w;
						fw = {
							e: "fromchannel",
							oI: [-5 - C, 0, g_]
						}
					} else if (S == "RGB") fw = {
						e: "fromchannel",
						oI: [-1, 0, g_]
					};
					else fw = {
						e: "fromlayer",
						oI: [C, g7, g_]
					};
					this.XZ(fw, P, o, X, Y);
					return
				}
				if (v.Fthr) z = B.hl.nj(z, v.Fthr.v.val, !1);
				if (U != "set" && o.K != null) z = H.pv.f7(z, o.K, ["", "union", "difference", "intersection"][_])
			}
			if (U == "expand" || U == "contract")
				if (!Z && !t.contains(z.rect)) {
					var dT = z.rect.$X(t),
						g4 = H.R(dT.M());
					H.Lj(z.channel, z.rect, g4, dT);
					z.channel = g4;
					z.rect = dT
				}
		}
		if (y == "qmask") {
			bB = !0;
			var dz = o.ET(),
				i4 = new ev(0, 0, o.Z, o.h);
			if (dz) {
				z = dz.rect.Qn(i4) && H.wq(dz.channel, 255) ? null : {
					rect: dz.rect.clone(),
					channel: dz.channel.slice(0)
				};
				d1 = dz
			} else {
				z = null;
				f_ = new h.vm;
				f_.color = 0;
				f_.name = "Quick Mask";
				f_.gG = !0;
				if (o.K) {
					f_.rect = o.K.rect.clone();
					f_.channel = o.K.channel.slice(0)
				} else {
					f_.rect = i4;
					f_.channel = H.R(f_.rect.M());
					H.set(f_.channel, 255)
				}
			}
			s = [6, 6, 1]
		}
		if (y == "setsel") {
			z = F.K;
			s = F.tP
		}
		if (y == "crange") {
			var fy = F.c7,
				cN = F.Aa;
			z = B.hl.sv(o, fy, cN, F.aI);
			s = [7, 8];
			fy = {
				t: "Objc",
				v: {
					classID: "LbCl",
					Lmnc: {
						t: "doub",
						v: fy.Ov
					},
					A: {
						t: "doub",
						v: fy.m
					},
					B: {
						t: "doub",
						v: fy.i
					}
				}
			};
			cN = {
				t: "Objc",
				v: {
					classID: "LbCl",
					Lmnc: {
						t: "doub",
						v: cN.Ov
					},
					A: {
						t: "doub",
						v: cN.m
					},
					B: {
						t: "doub",
						v: cN.i
					}
				}
			};
			this.track({
				Bm: "colorRange",
				w1: {
					__name: "Color Range",
					classID: "ClrR",
					Fzns: {
						t: "long",
						v: Math.round(F.aI * 200)
					},
					Mnm: fy,
					Mxm: cN,
					colorModel: {
						t: "long",
						v: 0
					}
				}
			})
		}
		if (y == "fromlayer" || y == "fromchannel" || y == "frompath") {
			var fP = F.oI[0],
				g7 = F.oI[1],
				_ = F.oI[2];
			if (y == "fromlayer") {
				if (fP == null) fP = o.p[0];
				var du = o.r[fP];
				if (g7 == 0) {
					var ea = du.rect,
						cF = du.buffer;
					if (ea.qr()) return;
					var gB = H.R(cF.length >>> 2);
					H.E4(cF, gB, 3);
					z = {
						channel: gB,
						rect: ea.clone()
					}
				} else {
					if (du.g == null) du._V(o);
					var bp = g7 == 1 ? du.jk() : du.g;
					z = B.hl.Jk(bp, t)
				}
				this.track(B.hl.amp(du.getName(), _, g7))
			} else if (y == "frompath") {
				var hf = o.Cj(),
					bq = hf[1],
					hf = hf[0];
				if (hf.length == 0 || bq.length == 0) return;
				var eY = hf[bq[0]];
				if (fP != null)
					for (var w = 0; w < hf.length; w++)
						if (hf[w].XN == fP) eY = hf[w];
				var bp = eY.add.vmsk.jk(),
					f1 = bp.o7();
				if (f1.M() == 0) return;
				var gB = bp.yX();
				g$ = [JSON.stringify(o.QP), JSON.stringify(o.mb)];
				eT = ["[]", "[]"];
				o.QP = [];
				o.mb = [];
				z = {
					channel: gB,
					rect: f1
				}
			} else {
				if (fP == null) fP = B.hl.E0(o);
				z = B.hl.nh(o, fP)
			}
			if (_ != 0 && o.K) z = H.pv.f7(z, o.K, ["", "union", "difference", "intersection"][_]);
			s = [14, 11]
		}
		if (z != null && H.wq(z.channel, 0)) {
			z = null;
			s = [7, 1]
		}
		if (z) H.HZ(z);
		var dh = new bV(s, this);
		dh.data = {
			e: "changesel",
			la: o.K,
			Od: z,
			ET: bB,
			K2: d1,
			i$: f_,
			Gt: g$,
			O6: eT
		};
		o.TX(dh);
		this.oF(dh.data, o)
	};
	B.hl.E0 = function (F) {
		var P = 0;
		if (F.oD.length != 0) P = -5 - F.oD[0];
		else if (JSON.stringify(F.a.qa) == "[1,1,1]") P = -1;
		else P = -2 - F.a.qa.indexOf(1);
		return P
	};
	B.hl.nh = function (F, P) {
		var o, X = new ev(0, 0, F.Z, F.h);
		if (-5 < P & P < 0) {
			var Y = -P - 1,
				y = F.lD(),
				z = H.R(X.M());
			if (Y == 0) H.np(y, z);
			else H.E4(y, z, Y - 1);
			o = {
				channel: z,
				rect: X.clone()
			}
		}
		if (P < -4) {
			o = B.hl.Jk(F.Yq[-P - 5], X)
		}
		return o
	};
	B.hl.Jk = function (F, P) {
		var o, X;
		if (F.T6() == 0) {
			X = F.o7();
			if (X.M() == 0) return;
			o = F.yX()
		} else {
			X = P;
			o = H.R(X.M());
			F.kx(X, o)
		}
		return {
			channel: o,
			rect: X
		}
	};
	B.hl.prototype.Vc = function (F) {
		return this.vi || F.Ku && this.id != B.IV
	};
	B.hl.prototype.fF = function (F, P, o) {
		var X = new l(P, !0);
		X.data = o;
		F.w(X)
	};
	B.hl.prototype.Ie = function (F, P) {
		var o = new l(i.E.L, !0);
		o.data = {
			e: i.B.Ik,
			rr: P
		};
		F.w(o)
	};
	B.hl.prototype.o7 = function (F, P, o) {
		P = F.K == null || this.LX > 1 || this.y0 > 1 ? P : null;
		var X = this.k7,
			Y = this.H9;
		if (o) {
			X.x = Math.max(0, Math.min(F.Z, X.x));
			X.y = Math.max(0, Math.min(F.h, X.y));
			Y.x = Math.max(0, Math.min(F.Z, Y.x));
			Y.y = Math.max(0, Math.min(F.h, Y.y))
		}
		var y = B.sp.en(X, Y, P, !0, this.fT.H7),
			z = y[0].x,
			s = y[0].y;
		return new ev(z, s, y[1].x - z, y[1].y - s)
	};
	B.hl.prototype.R$ = function (F, P, o, X, Y) {
		if (this.II()) return;
		this.JW = P;
		this.e3 = !1;
		this.qw = X.s(G.cm);
		this.oN = X.s(G.ze);
		this.LX = this.qw ? 0 : 1;
		this.y0 = this.oN ? 0 : 1;
		this.k7 = F.a.PY(Y.x, Y.y);
		this.k7 = B.qT.aE(F, this.k7, o);
		if (this.hU(F, this.k7, X)) {
			this.vi = !0;
			this.Zp = F.K.rect.clone();
			return
		}
		this.Qf(F, o, X, Y);
		F.a.GW = new ev
	};
	B.hl.prototype.hU = function (F, P, o) {
		var X = o.s(G.cm),
			Y = o.s(G.ze);
		if (F.K && !X && !Y && this.fT.hw == "front") return H.cp(P, F.K.channel, F.K.rect);
		return !1
	};
	B.hl.prototype.$E = function (F, P, o, X, Y) {
		this.JW = P;
		if (this.sY) return;
		var y = F.a.PY(Y.x, Y.y);
		if (aH.Yj(this.k7, y) * F.a.F > 5) this.e3 = !0;
		if (X.s(G.fd)) {
			if (this.ot == null) this.ot = new aH(y.x - this.k7.x, y.y - this.k7.y);
			this.k7.x = y.x - this.ot.x;
			this.k7.y = y.y - this.ot.y
		} else this.ot = null;
		this.H9 = y;
		if (!this.vi) this.H9 = B.qT.aE(F, this.H9, o);
		if (this.hU(F, this.H9, X)) this.Ie(P, "move");
		else this.Ie(P, this.qy);
		if (this.vi) {
			var z = this.Zp.clone();
			z.x += this.H9.x - this.k7.x;
			z.y += this.H9.y - this.k7.y;
			var s = B.qT.hx(F, z, o);
			F.K.rect.x = Math.round(this.H9.x - this.k7.x + this.Zp.x + s[0]);
			F.K.rect.y = Math.round(this.H9.y - this.k7.y + this.Zp.y + s[1]);
			F.Es = !0;
			B.qT.rz(F, z, s);
			return
		}
		this.Ap(F, o, X, Y);
		if (F.a.GW) F.a.GW = this.o7(F, X)
	};
	B.hl.prototype.II = function () {
		return !1
	};
	B.hl.prototype.NL = function (F, P, o, X, Y) {
		F.a.GW = null;
		this.H9 = F.a.PY(Y.x, Y.y);
		this.H9 = B.qT.aE(F, this.H9, o);
		if (this.vi) {
			this.vi = !1;
			if (this.H9.Qn(this.k7) && this.Xs() == "front") {
				this.fF(P, i.E.QJ, B.hl.cA());
				return
			}
			this.Uy(F, this.Zp, F.K.rect.clone());
			if (F != null && F.v.zK) {
				F.v.zK = null;
				F.Vg = !0
			}
			return
		}
		this.sj(F, o, X, Y);
		B.hl.RE(P, o)
	};
	B.hl.prototype.Uy = function (F, P, o) {
		var X = F.a1();
		if (X != null && X.Q == this && X.data.e == "movesel") {} else {
			X = new bV([7, 7], this);
			X.data = {
				e: "movesel",
				f_: P
			};
			F.TX(X)
		}
		X.data.Lb = o;
		this.oF(X.data, F)
	};
	B.hl.prototype.xg = function (F, P, o, X, Y) {
		this.sY = !0
	};
	B.hl.prototype.FT = function (F, P, o, X, Y) {
		var y = new l(i.E.L, !0);
		y.data = {
			e: i.B.Zo,
			Q: this.id,
			jE: Y,
			mY: F,
			s0: o
		};
		P.w(y);
		this.sY = !1
	};
	B.hl.prototype.gU = function (F, P, o, X) {
		var Y = X.s(G.cm),
			y = X.s(G.ze);
		if (this.e3) {
			if (this.LX == 0 && !Y) this.LX++;
			if (this.LX == 1 && Y) this.LX++;
			if (this.y0 == 0 && !y) this.y0++;
			if (this.y0 == 1 && y) this.y0++
		}
		if (F != null && F.K != null) {
			var z = X.Ef();
			if (z.x != 0 || z.y != 0) {
				var s = F.K.rect.clone();
				s.x += z.x;
				s.y += z.y;
				this.Uy(F, F.K.rect.clone(), s)
			}
		}
		var t = B.hl.Le(this.fT.hw, Y, y),
			d = new l(i.E.L, !0);
		d.data = {
			e: i.B.Zo,
			Q: this.id,
			hw: t
		};
		P.w(d)
	};
	B.hl.prototype.finish = function (F, P, o, X) {
		var Y = F.K,
			y = this.getSelection(F, P, o, X);
		if (y == null) y = B.hl.cA();
		else {
			var z = this.fT.bM,
				s = this.Xs();
			if (z != 0) y.w1.Fthr = {
				t: "UntF",
				v: {
					type: "#Pxl",
					val: z
				}
			};
			if (s != "front" && s != "xor") y.Bm = {
				union: "addTo",
				difference: "subtractFrom",
				intersection: "interfaceWhite"
			} [s]
		}
		this.fF(this.JW, i.E.QJ, y);
		this.k7.Oh(-1, -1);
		this.H9.Oh(-1, -1)
	};
	B.hl.prototype.Xs = function () {
		return B.hl.Le(this.fT.hw, this.qw, this.oN)
	};
	B.hl.Le = function (F, P, o) {
		if (P) F = "union";
		if (o) F = "difference";
		if (P && o) F = "intersection";
		return F
	};
	B.hl.prototype.getSelection = function (F, P, o, X) {
		return null
	};
	B.hl.prototype.Qf = function (F, P, o, X) {};
	B.hl.prototype.Ap = function (F, P, o, X) {};
	B.hl.prototype.sj = function (F, P, o, X) {};
	B.hl.prototype.tO = function (F, P) {
		var o = F.e;
		if (o == "changesel") P.K = F.la;
		if (o == "movesel") P.K.rect = F.f_;
		if (F.ET) {
			if (F.K2) {
				P.oD = [P.Yq.length];
				P.Yq.push(F.K2)
			} else {
				P.Yq.pop();
				P.oD = []
			}
		}
		if (F.Gt) {
			P.QP = JSON.parse(F.Gt[0]);
			P.mb = JSON.parse(F.Gt[1])
		}
		P.Es = !0
	};
	B.hl.prototype.oF = function (F, P) {
		var o = F.e;
		if (o == "changesel") P.K = F.Od;
		if (o == "movesel") P.K.rect = F.Lb;
		if (F.ET) {
			if (F.i$) {
				P.oD = [P.Yq.length];
				P.Yq.push(F.i$)
			} else {
				P.Yq.pop();
				P.oD = []
			}
		}
		if (F.Gt) {
			P.QP = JSON.parse(F.O6[0]);
			P.mb = JSON.parse(F.O6[1])
		}
		P.Es = !0
	};
	B.hl.prototype.zT = function (F) {
		this.fT = F
	};
	B.hl.prototype.Q2 = function (F) {
		var P = H.D.YI(F.d);
		if (P.qr()) return null;
		var o = i.z("canvas", "");
		o.width = P.Z;
		o.height = P.h;
		var X = o.getContext("2d");
		X.beginPath();
		X.translate(-P.x, -P.y);
		Typr.U.pathToContext({
			cmds: F.W,
			crds: F.d
		}, X);
		X.closePath();
		X.fill();
		var Y = H.R(P.M()),
			y = X.getImageData(0, 0, o.width, o.height);
		H.E4(y.data, Y, 3);
		return {
			rect: P,
			channel: Y
		}
	};
	B.hl.nj = function (F, P, o, X, Y) {
		if (o) P = Math.round(P * .7);
		var y = Math.ceil(2.6 * P),
			z = F.rect.clone();
		z.PK(y, y);
		if (X && !Y) z = z.$X(X);
		var s = H.R(z.M()),
			t = H.R(s.length);
		H.Lj(F.channel, F.rect, t, z);
		H.ni.et(t, s, z, P);
		if (o) {
			var d = s.length;
			for (var w = 0; w < d; w++) {
				var U = (s[w] - 128) * P * 2.5;
				s[w] = Math.max(0, Math.min(255, Math.round(128 + U)))
			}
		}
		return {
			channel: s,
			rect: z
		}
	};
	B.hl.dt = function (F, P, o) {
		var X = Math.max(1, Math.ceil(o)),
			Y = F.rect.clone();
		Y.PK(X, X);
		var y = Y.M(),
			z = {
				channel: H.R(y),
				rect: Y
			},
			s = H.R(y);
		H.Lj(F.channel, F.rect, s, z.rect);
		if (o != 0) H.style.stroke(s, z.channel, z.rect, o);
		else H.Hk(s, z.channel);
		var t = H.R(y);
		H.nJ(s);
		if (P != 0) H.style.stroke(s, t, z.rect, P);
		else H.Hk(s, t);
		H.pv.$X(z.channel, t, z.channel);
		return z
	};
	B.hl.sv = function (F, P, o, X) {
		var Y = new ev(0, 0, F.Z, F.h),
			y = F.lD();
		if (F.K) {
			var z = F.K.rect.$X(Y),
				s = H.R(z.M() * 4);
			H.BP(y, Y, s, z);
			Y = z;
			y = s
		}
		var t = Y.M(),
			d = H.R(t),
			U = 1 / X;
		for (var w = 0; w < t; w++) {
			var v = w << 2,
				A = H.tm(y[v], y[v + 1], y[v + 2]),
				Z = H.LZ(A, P, o, X, U);
			d[w] = 255 * Z
		}
		return {
			rect: Y,
			channel: d
		}
	};
	B.Iu = function () {
		B.gn.call(this, [10, 18], B.oZ, "tools/blur");
		this.mo = "copy"
	};
	B.Iu.prototype = new B.gn;
	B.Iu.prototype.R$ = function (F, P, o, X, Y) {
		var y = X.s(G.ze) ? am.jB : am.oZ;
		this.yC(F, o, X, Y, this.fT.strn, y);
		if (this.A4 == null) return;
		this.km(F)
	};
	B.Iu.prototype.$E = function (F, P, o, X, Y) {
		this.yP(F, P, o);
		if (this.w6) this.rg(F, o, Y);
		if (this.A4 == null) return;
		if (!Y.Ku) return;
		this.Td(F, o, X, Y);
		this.km(F)
	};
	B.lu = function () {
		B.gn.call(this, [10, 0], B.Sm, "tools/brush");
		this.mo = "draw"
	};
	B.lu.prototype = new B.gn;
	B.lu.prototype.R$ = function (F, P, o, X, Y) {
		if (this.Z4(X, P, Y)) return;
		this.yC(F, o, X, Y, this.fT.flow);
		if (this.A4 == null) return;
		this.km(F)
	};
	B.lu.prototype.$E = function (F, P, o, X, Y) {
		this.yP(F, P, o);
		if (this.w6) this.rg(F, o, Y);
		if (this.A4 == null) return;
		if (!Y.Ku) return;
		this.Td(F, o, X, Y);
		this.km(F)
	};
	B.Yn = function () {
		B.gn.call(this, [10, 42], B.pJ, "tools/crepl");
		this.mo = "idraw";
		this.fT.bmode = "hue "
	};
	B.Yn.prototype = new B.gn;
	B.Yn.prototype.R$ = function (F, P, o, X, Y) {
		if (this.Z4(X, P, Y)) return;
		this.yC(F, o, X, Y, this.fT.flow);
		if (this.A4 == null) return;
		this.km(F)
	};
	B.Yn.prototype.$E = function (F, P, o, X, Y) {
		this.yP(F, P, o);
		if (this.w6) this.rg(F, o, Y);
		if (this.A4 == null) return;
		if (!Y.Ku) return;
		this.Td(F, o, X, Y);
		this.km(F)
	};
	B.k_ = function () {
		B.gn.call(this, [10, 43], B.N0, "tools/redeye");
		this.fT.smode = 0;
		this.mo = "redeye"
	};
	B.k_.prototype = new B.gn;
	B.k_.prototype.R$ = function (F, P, o, X, Y) {
		this.yC(F, o, X, Y, this.fT.flow);
		if (this.A4 == null) return;
		this.km(F)
	};
	B.k_.prototype.$E = function (F, P, o, X, Y) {
		this.yP(F, P, o);
		if (this.w6) this.rg(F, o, Y);
		if (this.A4 == null) return;
		if (!Y.Ku) return;
		this.Td(F, o, X, Y);
		this.km(F)
	};
	B.jZ = function () {
		B.gn.call(this, [10, 38], B.o9, "tools/pencil");
		this.mo = "draw"
	};
	B.jZ.prototype = new B.gn;
	B.jZ.prototype.R$ = function (F, P, o, X, Y) {
		if (this.Z4(X, P, Y)) return;
		this.yC(F, o, X, Y, this.fT.flow);
		if (this.A4 == null) return;
		this.km(F)
	};
	B.jZ.prototype.$E = function (F, P, o, X, Y) {
		this.yP(F, P, o);
		if (this.w6) this.rg(F, o, Y);
		if (this.A4 == null) return;
		if (!Y.Ku) return;
		this.Td(F, o, X, Y);
		this.km(F)
	};
	B.o4 = function () {
		B.gn.call(this, [10, 22], B.uh, "tools/burn");
		this.mo = "burn"
	};
	B.o4.prototype = new B.gn;
	B.o4.prototype.R$ = function (F, P, o, X, Y) {
		this.yC(F, o, X, Y, this.fT.expo / Math.E);
		if (this.A4 == null) return;
		this.km(F)
	};
	B.o4.prototype.$E = function (F, P, o, X, Y) {
		this.yP(F, P, o);
		if (this.w6) this.rg(F, o, Y);
		if (this.A4 == null) return;
		if (!Y.Ku) return;
		this.Td(F, o, X, Y);
		this.km(F)
	};
	B.FH = function (F, P, o) {
		B.gn.call(this, F == "" ? null : F ? F : [10, 1], P ? P : B.MS, o ? o : "tools/clone");
		this.mo = "clone";
		this.Ld = null;
		this.c = null
	};
	B.FH.prototype = new B.gn;
	B.FH.prototype.R$ = function (F, P, o, X, Y) {
		var y = this.fT,
			z = y.alt[0];
		if (X.s(G.ze) || X.s(G.zo) || z) {
			this.Ld = F.a.PY(Y.x, Y.y);
			this.c = null;
			if (z) this.SC({
				alt: [!1]
			}, P);
			this.Rc(F);
			this.b9(o, X, F, Y);
			return
		}
		if (this.Ld == null) {
			alert(h9.get([15, 7, 0]));
			return
		}
		this.b9(o, X);
		this.yC(F, o, X, Y, this.fT.flow);
		if (this.A4 == null) return;
		this.c = this.zN(F.a.PY(Y.x, Y.y));
		this.km(F)
	};
	B.FH.prototype.zN = function (F) {
		var P = this.c;
		if (P == null || !this.fT.algnd) P = new aH(Math.round(F.x - this.Ld.x), Math.round(F.y - this.Ld.y));
		return P
	};
	B.FH.prototype.$E = function (F, P, o, X, Y) {
		this.yP(F, P, o);
		if (this.w6) this.rg(F, o, Y);
		if (this.A4 == null) {
			if (this.Ld != null) this.b9(o, X, F, Y);
			return
		}
		if (!Y.Ku || this.Ld == null) return;
		this.Td(F, o, X, Y);
		this.km(F)
	};
	B.FH.prototype.vh = function () {
		return this.c
	};
	B.$K = function (F, P, o) {
		B.An.call(this, F, P, o);
		this.yx = {
			TG: {
				wV: 0,
				x: 0,
				y: 0
			}
		};
		this.JE = null;
		this.cursor = null;
		this.wc = 0;
		this.NW = null;
		this.k7 = null;
		this.DQ = null
	};
	B.$K.prototype = new B.An;
	B.$K.prototype.go = function () {
		return this.JE != null
	};
	B.$K.prototype.Vc = function (F) {
		return this.JE && this.JE.mN()
	};
	B.$K.prototype.R$ = function (F, P, o, X, Y) {
		this.NW = Y;
		var y = F.a.PY(Y.x, Y.y);
		y.x = Math.round(y.x);
		y.y = Math.round(y.y);
		var z = this.yx.TG,
			s = z.wV != 0 ? z.x / z.y : null;
		if (this.JE) this.JE.R$(F, o, X, y, s, !1);
		else this.k7 = B.qT.aE(F, y, o)
	};
	B.$K.prototype.Kj = function (F, P) {
		var o = [F.x, F.y, F.x + F.Z, F.y, F.x + F.Z, F.y + F.h, F.x, F.y + F.h];
		return new i3(o, !0, !1, this.id == B.Hd, !0, P, this.id == B.Hd ? 2 : 0, this.id == B.Hd)
	};
	B.$K.prototype.b9 = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.Ik,
			rr: this.cursor
		};
		F.w(P)
	};
	B.$K.prototype.enable = function (F, P, o, X) {
		this.cursor = "crosshair";
		this.b9(P);
		if (F != null && F.K) {
			var Y = this.yx.TG = {
				wV: 0,
				x: 0,
				y: 0
			};
			this.fF(P, i.E.L, {
				e: i.B.Zo,
				Q: this.id,
				hk: !1,
				H7: Y
			});
			this.zT({
				He: "cropby",
				Z3: 3
			}, P, F, X, o)
		}
	};
	B.$K.prototype.$E = function (F, P, o, X, Y) {
		this.NW = Y;
		var y = F.a.PY(Y.x, Y.y);
		if (!Y.Ku) {
			var z = "crosshair";
			if (this.JE) {
				var s = this.JE.Eb(y, F.a.F);
				if (s) z = s;
				else z = "default"
			}
			if (z != this.cursor) {
				this.cursor = z;
				this.b9(P)
			}
		}
		if (this.JE) this.JE.$E(F, o, X, y);
		else if (this.k7) {
			var t = B.sp.en(this.k7, B.qT.aE(F, y, o), X, !0, this.yx.TG),
				d = t[0].x,
				U = t[0].y,
				v = this.DQ = new ev(d, U, t[1].x - d, t[1].y - U);
			F.v.hK = H.D.z0(v);
			F.Vg = !0;
			B.An.Wf(Y.x + 10, Y.y - 10, v, F, o)
		}
	};
	B.$K.prototype.NL = function (F, P, o, X, Y) {
		this.NW = Y;
		if (this.JE == null) {
			if (this.k7) {
				var y = this.DQ;
				if (y) {
					var z = this.yx.TG;
					this.JE = this.Kj(y, z.wV != 0);
					this.JE.b4(F, o);
					this.DQ = null;
					this.fF(P, i.E.L, {
						e: i.B.Zo,
						Q: this.id,
						hk: !0
					})
				}
				this.k7 = null;
				F.v.Tw = [];
				F.Vg = !0
			}
			return
		}
		var s = F.a.PY(Y.x, Y.y);
		this.JE.NL(F, o, X, s);
		this.fF(P, i.E.L, {
			e: i.B.Zo,
			Q: this.id,
			hk: !0
		});
		var t = this.JE._4();
		if (Math.abs(t[0] - t[4]) < 2 || Math.abs(t[1] - t[5]) < 2) {
			this.disable(F, P, null, X);
			return
		}
		if (Date.now() - this.wc < 200 && this.JE.kl(s)) {
			this.cU(F, o);
			this.disable(F, P, o, X);
			return
		}
		this.wc = Date.now()
	};
	B.$K.prototype.gU = function (F, P, o, X) {
		var Y = this.JE;
		if (Y == null || this.NW && this.NW.Ku) return;
		if (X.s(G.Xr)) {
			this.cU(F, o);
			this.disable(F, P, o, X)
		} else if (X.s(G.yc)) {
			this.disable(F, P, o, X)
		} else Y.gU(F, o, X)
	};
	B.$K.W$ = function (F, P) {
		if (P == null) P = [!0, !0, !0, !0];
		var o = {
				classID: "trim",
				trimBasedOn: {
					t: "enum",
					v: {
						trimBasedOn: ["topLeftPixelColor", "bottomRightPixelColor", "Trns"][F]
					}
				}
			},
			X = ["Top", "Left", "Btom", "Rght"];
		for (var w = 0; w < 4; w++) o[X[w]] = {
			t: "bool",
			v: P[w]
		};
		return {
			Bm: "trim",
			w1: o
		}
	};
	B.$K.cn = function (F, P, o, X) {
		var Y = {
			classID: "null"
		};
		if (X != null) {
			Y.Wdth = {
				t: "UntF",
				v: {
					type: "#Pxl",
					val: F
				}
			};
			Y.Hght = {
				t: "UntF",
				v: {
					type: "#Pxl",
					val: P
				}
			};
			Y.Intr = {
				t: "enum",
				v: {
					Intp: ["Nrst", "Blnr", "bicubicSharper"][X]
				}
			}
		}
		if (o != null) Y.Rslt = {
			t: "UntF",
			v: {
				type: "#Rsl",
				val: o
			}
		};
		return {
			Bm: "imageSize",
			w1: Y
		}
	};
	B.$K.$W = function (F, P, o) {
		if (o == null) o = 4;
		var X = Math.floor(o / 3),
			Y = o % 3;
		return {
			Bm: "canvasSize",
			w1: {
				classID: "null",
				Wdth: {
					t: "UntF",
					v: {
						type: "#Pxl",
						val: F
					}
				},
				Hght: {
					t: "UntF",
					v: {
						type: "#Pxl",
						val: P
					}
				},
				Hrzn: {
					t: "enum",
					v: {
						HrzL: ["Left", "Cntr", "Rght"][Y]
					}
				},
				Vrtc: {
					t: "enum",
					v: {
						VrtL: ["Top", "Cntr", "Btom"][X]
					}
				}
			}
		}
	};
	B.$K.prototype.XZ = function (F, P, o, X, Y) {
		var y = new ev(0, 0, o.Z, o.h),
			z = [11, 3],
			s = o.NB,
			t = o.Z / 2,
			d = o.h / 2,
			U = 1,
			j, $;
		if (F.e == "fromAction") {
			var v = F.WR,
				A = v.Bm,
				Z = v.w1,
				D = o.Z / o.h,
				q = Z.Wdth ? Z.Wdth.v.val : -1,
				R = Z.Hght ? Z.Hght.v.val : -1,
				s = Z.Rslt ? Z.Rslt.v.val : null,
				J = Z.Wdth ? Z.Wdth.v.type : Z.Hght ? Z.Hght.v.type : -1,
				W = 1,
				p;
			if (A == "imageSize") {
				if (Z.Intr) {
					if (Z.Intr.v.Intp == "Nrst") W = 0;
					if (Z.Intr.v.Intp == "bicubicSharper") W = 2;
					if (q == -1 && R == -1) {
						var n = s / o.NB;
						q = Math.round(o.Z * n);
						R = Math.round(o.h * n)
					} else if (J == "#Prc") {
						if (q != -1) q = Math.round(o.Z * q / 100);
						if (R != -1) R = Math.round(o.h * R / 100)
					}
					if (Z.CnsP && Z.CnsP.v) {
						if (q == -1) q = Math.round(R * D);
						if (R == -1) R = Math.round(q / D)
					}
				} else {
					if (J == "#Prc") s = Math.round(o.NB / ((q != -1 ? q : R) / 100));
					else if (J == -1) s = Math.round(s);
					else throw "e";
					q = o.Z;
					R = o.h
				}
				p = {
					e: "imgsize",
					Mt: q,
					dK: R,
					zI: s,
					_o: W
				}
			} else if (A == "canvasSize") {
				if (q == -1) q = o.Z;
				if (R == -1) R = o.h;
				if (Z.Rltv && Z.Rltv.v == !0) {
					if (Z.Wdth) q += o.Z;
					if (Z.Hght) R += o.h
				}
				var b = Z.Vrtc ? Z.Vrtc.v.VrtL : "Cntr",
					Q = Z.Hrzn ? Z.Hrzn.v.HrzL : "Cntr";
				p = {
					e: "canvsize",
					Mt: q,
					dK: R,
					cX: 3 * ["Top", "Cntr", "Btom"].indexOf(b) + ["Left", "Cntr", "Rght"].indexOf(Q)
				}
			} else if (A == "revealAll") {
				p = {
					e: "revealAll"
				}
			} else if (A == "trim") {
				var _ = {
					topLeftPixelColor: 0,
					bottomRightPixelColor: 1,
					Trns: 2
				} [Z.trimBasedOn.v.trimBasedOn];
				if (_ == null) throw "e";
				var L = ["Top", "Left", "Btom", "Rght"],
					m = [!0, !0, !0, !0];
				for (var w = 0; w < 4; w++)
					if (Z[L[w]]) m[w] = Z[L[w]].v;
				p = {
					e: "trim",
					no: _,
					H7: m
				}
			}
			if (p) this.XZ(p, P, o, X, Y);
			return
		} else if (F.e == "imgsize") {
			y = new ev(0, 0, F.Mt, F.dK);
			if (F.zI) s = F.zI;
			U = F._o
		} else if (F.e == "canvsize") {
			var I = F.cX != null ? F.cX : 0;
			y = new ev(0, 0, F.Mt, F.dK);
			var c = o.Z - F.Mt,
				u = o.h - F.dK,
				a = Math.round(c / 2),
				N = Math.round(u / 2);
			if (I == 1 || I == 4 || I == 7) y.x = a;
			if (I == 2 || I == 5 || I == 8) y.x = c;
			if (I == 3 || I == 4 || I == 5) y.y = N;
			if (I == 6 || I == 7 || I == 8) y.y = u;
			if (F.c) {
				y.x = F.c.x;
				y.y = F.c.y
			}
		} else if (F.e == "rot" && (F.C + 2 * Math.PI) % (Math.PI / 2) != 0) {
			var V = H.D.z0(y).d,
				M = new cu;
			M.translate(-t, -d);
			M.rotate(F.C);
			M.translate(t, d);
			H.D.O(V, M, V);
			y = H.D.YI(V)
		} else if (F.e == "rot" && F.C != Math.PI && F.C != -Math.PI) {
			y = new ev(t - o.h / 2, d - o.Z / 2, o.h, o.Z);
			if ((o.Z + o.h & 1) == 1) {
				t = Math.floor(t);
				d = Math.floor(d);
				y = new ev(t - Math.floor(o.h / 2), d - Math.floor(o.Z / 2), o.h, o.Z);
				if ((o.Z & 1) == 1 && F.C != -Math.PI / 2) y.y--;
				if ((o.h & 1) == 1 && F.C == -Math.PI / 2) y.x--
			}
		} else if (F.e == "trim") {
			z = [11, 12, 0];
			var O = o.lD(),
				K = new ev(0, 0, o.Z, o.h);
			y = H.cR(O, K, F.no, F.H7);
			if (y.qr()) y = K
		} else if (F.e == "cropbysel") {
			z = [11, 12, 1];
			y = o.K.rect.clone()
		} else if (F.e == "revealAll") {
			z = [11, 12, 2];
			y = o.root.o7(o, !0)
		}
		if (F.e == "imgsize" || F.e == "rot" || F.e == "scl") {
			var x = new cu;
			if (F.e == "imgsize") {
				z = [11, 10];
				x.scale(F.Mt / o.Z, F.dK / o.h)
			} else {
				x.translate(-t, -d);
				if (F.e == "rot") x.rotate(F.C);
				if (F.e == "scl") x.scale(F.C.x, F.C.y);
				x.translate(t, d);
				z = F.tP
			}
			$ = H.P.Jb(x);
			j = this.LY(o, Y, !0, $, U)
		} else if (F.e == "auto-align") {
			if (o.p.length < 2) {
				alert("Select two or more layers.");
				return
			}
			var g = [];
			for (var w = 0; w < o.p.length; w++) {
				var T = o.r[o.p[w]];
				if (!T.Mq() && T.add.SoLd == null) {
					alert("Unsupported layer selected.");
					return
				}
				if (T.rect.qr()) {
					alert("Empty layer selected.");
					return
				}
				g.push([T.buffer, T.rect])
			}
			var E = H.Hn.q1(g, 0);
			if (E == null) {
				alert("No similarity found.");
				return
			}
			$ = E[1];
			var a9 = o.p;
			o.p = o.p.slice(1);
			j = this.LY(o, Y, !1, E.slice(1), U);
			o.p = a9;
			y = o.root.o7(o, !0);
			z = [2, 10, 1]
		}
		var ez = new ev(0, 0, o.Z, o.h);
		if (!y.qr() && (!y.Qn(ez) || j != null)) {
			var bN = new bV(z, this);
			bN.data = {
				f_: ez,
				Lb: y,
				YF: o.NB,
				zI: s,
				A3: j,
				rV: $,
				c1: B.$K.Or(o, y, ez, j != null)
			};
			o.TX(bN);
			this.oF(bN.data, o)
		}
	};
	B.$K.Or = function (F, P, o, X) {
		if (F.P0.length == 0) return null;
		var Y = JSON.stringify(F.P0),
			y = JSON.parse(Y);
		B.e9.abx(y, P, o, X);
		y = JSON.stringify(y);
		return [Y, y]
	};
	B.$K.prototype.LY = function (F, P, o, X, Y, y) {
		var z = {
			r: [],
			s6: null,
			EB: null
		};
		if (o) {
			for (var w = 0; w < F.r.length; w++) z.r.push(w);
			for (var w = 0; w < F.VW.length; w++) z.r.push(-1 - w);
			for (var w = 0; w < F.Yq.length; w++) z.r.push(-1e3 - w)
		} else z.r = F.p.slice(0);
		z.s6 = B.X.HS(F, z.r, !0);
		B.X.Br(F, P, z.r, z.s6, Y, X, null, !0, y);
		z.EB = B.X.HS(F, z.r, !0);
		return z
	};
	B.$K.prototype.oF = function (F, P) {
		if (F.zI) P.NB = F.zI;
		if (F.c1) P.P0 = JSON.parse(F.c1[1]);
		if (F.A3) {
			B.$K.MM(P, H.P.z5(F.rV));
			B.X.Pi(P, F.A3.r, F.A3.EB)
		}
		B.$K.zy(P, F.Lb)
	};
	B.$K.prototype.tO = function (F, P) {
		if (F.YF) P.NB = F.YF;
		if (F.c1) P.P0 = JSON.parse(F.c1[0]);
		var o = F.f_.clone();
		o.offset(-F.Lb.x, -F.Lb.y);
		B.$K.zy(P, o);
		if (F.lf) P.a.c.fa(F.lf);
		P.tT();
		if (F.A3) {
			var X = H.P.z5(F.rV).clone();
			X.nJ();
			B.$K.MM(P, X);
			B.X.Pi(P, F.A3.r, F.A3.s6)
		}
	};
	B.$K.MM = function (F, P) {
		for (var w = 0; w < F.r.length; w++) {
			var o = F.r[w];
			if (o.add.artb == null) continue;
			var X = H.D.z0(o.sc()).d;
			H.D.O(X, P, X);
			var Y = H.D.YI(X);
			o.BE(Y)
		}
	};
	B.$K.zy = function (F, P) {
		F.Z = P.Z;
		F.h = P.h;
		var o = [];
		for (var w = 0; w < F.r.length; w++) o.push(w);
		B.qT.IR(F, o, null, -P.x, -P.y);
		for (var w = 0; w < F.r.length; w++) {
			F.r[w]._V(F)
		}
		F.tT();
		F.a.c.Oh(0, 0);
		if (F.K) F.K.rect.offset(-P.x, -P.y);
		for (var w = 0; w < F.Yq.length; w++) F.Yq[w].rect.offset(-P.x, -P.y)
	};
	B.$K.prototype.zT = function (F, P, o, X, Y) {
		if (F.He == "commit") {
			this.cU(o, Y);
			this.disable(o, P, null, X)
		} else if (F.He == "cancel") {
			this.disable(o, P, null, X)
		}
		var y = null,
			z = this.yx.TG;
		if (F.He == "config") {
			this.yx = F.yx;
			z = this.yx.TG;
			if (o == null) return;
			y = new ev(0, 0, o.Z, o.h);
			if (z.wV == 1) {
				var s = z.x / z.y;
				y.h = Math.round(y.Z / s)
			}
			if (z.wV == 2) {
				y.Z = z.x;
				y.h = z.y
			}
			y.x = Math.round((o.Z - y.Z) / 2);
			y.y = Math.round((o.h - y.h) / 2)
		}
		if (F.He == "cropby") {
			if (o == null) return;
			var t = F.Z3,
				y;
			if (t == 0) y = o.root.o7(o, !0);
			if (t == 1) {
				if (o.p.length == 0) alert("No layer is selected.");
				else {
					var d = o.root.V$(o.p[0]);
					y = d.o7(o, !0)
				}
			}
			if (t == 2) {
				if (o.p.length == 0) alert("No layer is selected.");
				else {
					var U = o.r[o.p[0]];
					y = H.cR(U.buffer, U.rect, 0);
					if (y.qr()) y = U.rect.clone()
				}
			}
			if (t == 3) {
				if (o.K != null) y = o.K.rect;
				else alert("There is no selection.")
			}
		}
		if (y && y.qr()) y = null;
		if (y != null) {
			this.JE = this.Kj(y, z.wV != 0);
			this.JE.b4(o, Y);
			this.fF(P, i.E.L, {
				e: i.B.Zo,
				Q: this.id,
				hk: !0
			})
		}
	};
	B.$K.prototype.cU = function (F, P) {
		var o = this.JE._4(),
			X = H.D.YI(o),
			Y = this.a5P(F, o),
			y = !1,
			z = this.yx.TG,
			s = z.x,
			t = z.y,
			v;
		if (this.id == B.Uj && z.wV == 2 && Y.M() != s * t) {
			Y = new ev(Y.x, Y.y, s, t);
			y = !0
		}
		var d = H.P.bg(o, Y);
		d = H.P.nJ(d);
		var U = H.P.LS(d),
			A = Math.atan2(d[3], d[0]);
		if (Math.abs(A) > 1e-9 || !U || y) v = this.LY(F, P, !0, d, 1, X);
		var Z = new bV(this.name, this),
			D = new ev(0, 0, F.Z, F.h);
		Z.data = {
			f_: D,
			Lb: Y,
			A3: v,
			rV: d,
			lf: F.a.c.clone(),
			c1: B.$K.Or(F, Y, D, !1)
		};
		F.TX(Z);
		this.oF(Z.data, F)
	};
	B.$K.prototype.a5P = function (F, P) {
		var o = H.P.bg(P),
			X = H.P.LS(o),
			Y = H.P.z5(o),
			y = Y.PV,
			z = Y.ye,
			s = Math.atan2(Y.i, Y.m);
		Y.rotate(s);
		var t = new ev(y, z, Y.m, Y.xA);
		if (!X) {
			function d(p, w, n) {
				var b = p[w] - p[n],
					Q = p[w + 1] - p[n + 1];
				return Math.sqrt(b * b + Q * Q)
			}
			var U = d(P, 0, 2),
				v = d(P, 4, 6),
				A = Math.max(U, v),
				Z = d(P, 2, 4),
				D = d(P, 6, 0),
				q = Math.max(Z, D),
				R = B.$K.a2f(P, F.Z / 2, F.h / 2),
				J, W;
			if (isNaN(R) || R == Infinity || R == -Infinity || Math.min(R, 1 / R) < .1) R = (U + v) / (Z + D);
			if (A / q > R) {
				J = A * 1;
				W = J / R
			} else {
				W = q * 1;
				J = W * R
			}
			t.Z = J;
			t.h = W
		}
		t.x = Math.round(t.x);
		t.y = Math.round(t.y);
		t.Z = Math.round(t.Z);
		t.h = Math.round(t.h);
		return t
	};
	B.$K.a2f = function (F, P, o) {
		var X = F[0] - P,
			Y = F[1] - o,
			y = F[2] - P,
			z = F[3] - o,
			s = F[6] - P,
			t = F[7] - o,
			d = F[4] - P,
			U = F[5] - o,
			v = ((Y - U) * s - (X - d) * t + X * U - Y * d) / ((z - U) * s - (y - d) * t + y * U - z * d),
			A = ((Y - U) * y - (X - d) * z + X * U - Y * d) / ((t - U) * y - (s - d) * z + s * U - t * d),
			Z = -((A * t - Y) * (v * z - Y) + (A * s - X) * (v * y - X)) / ((A - 1) * (v - 1));

		function D(R) {
			return R * R
		}
		var q = Math.sqrt((D(v - 1) + D(v * z - Y) / Z + D(v * y - X) / Z) / (D(A - 1) + D(A * t - Y) / Z + D(A * s - X) / Z));
		if (v == 1 && A == 1) q = Math.sqrt((D(z - Y) + D(y - X)) / (D(t - Y) + D(s - X)));
		return q
	};
	B.$K.prototype.disable = function (F, P, o, X) {
		if (F == null) return;
		if (this.JE) this.JE.clear(F);
		this.JE = null;
		this.fF(P, i.E.L, {
			e: i.B.Zo,
			Q: this.id,
			hk: !1
		})
	};
	B.$K.prototype.fF = function (F, P, o, X) {
		var Y = new l(P, !0);
		Y.data = o;
		if (X) Y.Q = X;
		F.w(Y)
	};
	B.nT = function () {
		B.$K.call(this, [10, 2], B.Uj, "tools/rcrop")
	};
	B.nT.prototype = new B.$K;
	B.m$ = function () {
		B.$K.call(this, [10, 39], B.Hd, "tools/pcrop")
	};
	B.m$.prototype = new B.$K;
	B.ZW = function () {
		B.gn.call(this, [10, 21], B.oR, "tools/dodge");
		this.mo = "dodge"
	};
	B.ZW.prototype = new B.gn;
	B.ZW.prototype.R$ = function (F, P, o, X, Y) {
		this.yC(F, o, X, Y, this.fT.expo / Math.PI);
		if (this.A4 == null) return;
		this.km(F)
	};
	B.ZW.prototype.$E = function (F, P, o, X, Y) {
		this.yP(F, P, o);
		if (this.w6) this.rg(F, o, Y);
		if (this.A4 == null) return;
		if (!Y.Ku) return;
		this.Td(F, o, X, Y);
		this.km(F)
	};
	B.uC = function () {
		B.gn.call(this, [10, 3], B.um, "tools/eraser");
		this.mo = "erase"
	};
	B.uC.prototype = new B.gn;
	B.uC.prototype.R$ = function (F, P, o, X, Y) {
		this.yC(F, o, X, Y, this.fT.flow);
		if (this.A4 == null) return;
		this.km(F)
	};
	B.uC.prototype.$E = function (F, P, o, X, Y) {
		this.yP(F, P, o);
		if (this.w6) this.rg(F, o, Y);
		if (this.A4 == null) return;
		if (!Y.Ku) return;
		var y = this.Td(F, o, X, Y);
		this.km(F)
	};
	B.rl = function () {
		B.gn.call(this, [10, 45], B.a0R, "tools/beraser");
		this.mo = "ierase"
	};
	B.rl.prototype = new B.gn;
	B.rl.prototype.R$ = function (F, P, o, X, Y) {
		if (this.Z4(X, P, Y)) return;
		this.yC(F, o, X, Y, this.fT.flow);
		if (this.A4 == null) return;
		this.km(F)
	};
	B.rl.prototype.$E = function (F, P, o, X, Y) {
		this.yP(F, P, o);
		if (this.w6) this.rg(F, o, Y);
		if (this.A4 == null) return;
		if (!Y.Ku) return;
		this.Td(F, o, X, Y);
		this.km(F)
	};
	B.kZ = function () {
		B.hl.call(this, [10, 15], B.j1, "tools/rselect");
		this.qy = "crosshair"
	};
	B.kZ.prototype = new B.hl;
	B.kZ.prototype.Ap = function (F, P, o, X) {
		if (!X.Ku || !this.e3) return;
		var Y = this.o7(F, o, !0);
		F.v.hK = H.D.z0(Y);
		F.Vg = !0;
		B.An.Wf(X.x + 10, X.y - 10, Y, F, P)
	};
	B.kZ.prototype.sj = function (F, P, o, X) {
		F.v.hK = null;
		F.v.Tw = [];
		F.Vg = !0;
		this.finish(F, P, o, X)
	};
	B.kZ.prototype.getSelection = function (F, P, o, X) {
		if (this.k7.Qn(this.H9) || !this.e3) return null;
		var Y = this.o7(F, o, !0);
		if (Y.qr()) return null;
		return B.hl.FL("Rctn", Y)
	};
	B.Ou = function () {
		B.hl.call(this, [10, 4], B.akK, "tools/eselect");
		this.qy = "crosshair"
	};
	B.Ou.prototype = new B.hl;
	B.Ou.prototype.Ap = function (F, P, o, X) {
		if (!X.Ku || !this.e3) return;
		var Y = this.o7(F, o);
		F.v.hK = B.Ou.P2(Y);
		F.Vg = !0;
		B.An.Wf(X.x + 10, X.y - 10, Y, F, P)
	};
	B.Ou.prototype.sj = function (F, P, o, X) {
		F.v.hK = null;
		F.v.Tw = [];
		F.Vg = !0;
		this.finish(F, P, o, X)
	};
	B.Ou.prototype.getSelection = function (F, P, o, X) {
		if (this.k7.Qn(this.H9) || !this.e3) return null;
		var Y = this.o7(F, o);
		if (!Y.dg(new ev(0, 0, F.Z, F.h))) return null;
		return B.hl.FL("Elps", Y)
	};
	B.Ou.P2 = function (F) {
		var P = F.x,
			o = F.y,
			X = F.x + F.Z,
			Y = F.y + F.h,
			y = (P + X) / 2,
			z = (o + Y) / 2,
			s = (P - X) / 2,
			t = (o - Y) / 2,
			d = .5522848,
			U = {
				d: [y, z - t],
				W: ["M", "C", "C", "C", "C"]
			};
		U.d.push(y + d * s, z - t, y + s, z - d * t, y + s, z);
		U.d.push(y + s, z + d * t, y + d * s, z + t, y, z + t);
		U.d.push(y - d * s, z + t, y - s, z + d * t, y - s, z);
		U.d.push(y - s, z - d * t, y - d * s, z - t, y, z - t);
		return U
	};
	B.yY = function () {
		B.An.call(this, [10, 5], B.V5, "tools/eyedropper");
		this.AX = !1;
		this.Ky = 1
	};
	B.yY.prototype = new B.An;
	B.yY.prototype.Vc = function (F) {
		return F.Ku
	};
	B.yY.prototype.XZ = function (F, P, o, X, Y) {
		if (F.e == "pickhere") this.r$(o, P, Y, X, F.a4y)
	};
	B.yY.prototype.R$ = function (F, P, o, X, Y) {
		this.AX = !0;
		this.r$(F, P, o, X, Y)
	};
	B.yY.prototype.$E = function (F, P, o, X, Y) {
		if (this.AX) this.r$(F, P, o, X, Y)
	};
	B.yY.prototype.NL = function (F, P, o, X, Y) {
		this.AX = !1
	};
	B.yY.prototype.r$ = function (F, P, o, X, Y) {
		var y = B.yY.Js(F, Y, this.Ky),
			z = new l(i.E.L);
		z.data = {
			e: i.B.Sl,
			S9: ge.Io,
			mQ: 0,
			C: y
		};
		P.w(z)
	};
	B.yY.Js = function (F, P, o) {
		var X = F.a.PY(P.x, P.y),
			Y = Math.floor(X.x),
			y = Math.floor(X.y),
			z = (o - 1) / 2,
			s = Math.max(0, Y - z),
			t = Math.max(0, y - z),
			d = Math.min(F.Z, Y + z + 1),
			U = Math.min(F.h, y + z + 1),
			v = (d - s) * (U - t),
			A = F.lD(),
			Z = 0,
			D = 0,
			q = 0;
		for (var Y = s; Y < d; Y++)
			for (var y = t; y < U; y++) {
				var w = 4 * (y * F.Z + Y);
				Z += A[w];
				D += A[w + 1];
				q += A[w + 2]
			}
		Z = Math.round(Z / v);
		D = Math.round(D / v);
		q = Math.round(q / v);
		return Z << 16 | D << 8 | q
	};
	B.yY.prototype.zT = function (F) {
		this.Ky = F.Ky
	};
	B.T7 = function () {
		B.An.call(this, [10, 6], B.a2F, "tools/gradient");
		this.fT = {
			j: JSON.parse(ce.Bf.mR).v,
			rB: "Lnr",
			mt: !1,
			AN: !1,
			xQ: "norm",
			Jf: 1
		};
		this.h6 = !1;
		this.KE = null
	};
	B.T7.prototype = new B.An;
	B.T7.prototype.enable = function (F, P, o, X) {
		var Y = new l(i.E.L, !0);
		Y.data = {
			e: i.B.Ik,
			rr: "default"
		};
		P.w(Y)
	};
	B.T7.prototype.zT = function (F) {
		this.fT = F.S9
	};
	B.T7.prototype.R$ = function (F, P, o, X, Y) {
		if (!F.FD()) return;
		this.KE = F.a.PY(Y.x, Y.y);
		this.KE = B.qT.aE(F, this.KE, o);
		this.h6 = !0
	};
	B.T7.prototype.$E = function (F, P, o, X, Y) {
		if (!this.h6) return;
		var y = F.a.PY(Y.x, Y.y);
		y = B.qT.aE(F, y, o);
		if (X.s(G.cm)) y = B.T7.M$(this.KE, y);
		F.v.hK = {
			d: [this.KE.x, this.KE.y, y.x, y.y],
			W: ["M", "L"]
		};
		F.v.CL = [this.KE.x, this.KE.y, y.x, y.y];
		F.Vg = !0
	};
	B.T7.prototype.NL = function (F, P, o, X, Y) {
		if (!this.h6) return;
		var y = F.r[F.p[0]],
			z = F.a.PY(Y.x, Y.y);
		z = B.qT.aE(F, z, o);
		if (X.s(G.cm)) z = B.T7.M$(this.KE, z);
		var s = z.gI(this.KE),
			t = aH.bu(this.KE, z, .5),
			d = Math.atan2(s.y, s.x),
			U = aH.Yj(this.KE, z),
			v = Math.sin(d),
			A = Math.cos(d);
		if (U > 2) {
			var Z;
			if (F.K) Z = F.K.rect;
			else Z = new ev(0, 0, F.Z, F.h);
			var D = H.R(Z.M() * 4),
				q = this.fT,
				R = q.rB;
			if (R != "Lnr") {
				U *= 2;
				t = this.KE
			}
			H.j.ao(q.j, D, Z, [A * 1 / U, v * 1 / U, -v * 1 / U, A * 1 / U], t.x, t.y, q.mt, ce.j.types.indexOf(R), o.GY, o.Ty, null, q.AN);
			var J = Math.round(q.Jf * 256),
				W = D.length;
			if (J != 256)
				for (var w = 0; w < W; w += 4) D[w + 3] = D[w + 3] * J >>> 8;
			var p = new l(i.E.H);
			p.Q = B.um;
			p.data = {
				e: "fillBMP",
				mu: D,
				Si: q.xQ,
				tP: this.name
			};
			P.w(p)
		}
		F.v.hK = null;
		F.v.CL = [];
		F.Vg = !0;
		this.h6 = !1
	};
	B.T7.M$ = function (F, P) {
		if (F.Qn(P)) return F;
		var o = P.x - F.x,
			X = P.y - F.y,
			z = Math.abs(o),
			s = Math.abs(X);
		if (z > s) s = z / 2 > s ? 0 : z;
		if (s > z) z = s / 2 > z ? 0 : s;
		z = o > 0 ? z : -z;
		s = X > 0 ? s : -s;
		var t = Math.sqrt(o * o + X * X) / Math.sqrt(z * z + s * s);
		return new aH(F.x + z * t, F.y + s * t)
	};
	B.T7.m2 = function (F, P, o, X, Y, y, z) {
		if (z == null) z = i.z("canvas", "");
		var s = z.getContext("2d");
		z.width = P;
		z.height = o;
		var t = new ev(0, 0, P, o),
			d = H.R(P * o * 4);
		H.RK(d, P, o, 4, 0, 0);
		var U = Math.sin(X),
			v = Math.cos(X),
			A = H.R(P * o * 4);
		H.j.ao(F, A, t, [v * 1 / P, U * 1 / P, -U * 1 / o, v * 1 / o], P / 2, o / 2, !1, 0, Y, y);
		H.N.DO("norm", A, t, d, t, t, 1);
		var Z = s.getImageData(0, 0, P, o);
		H.Hk(d, Z.data);
		s.putImageData(Z, 0, 0);
		return z.toDataURL()
	};
	B.T7.aa8 = function (F, P, o) {
		var X = JSON.parse(JSON.stringify(F));
		for (var w = 0; w < X.Clrs.v.length; w++) {
			var Y = X.Clrs.v[w].v,
				y = Y.Type.v.Clry;
			if (y == "UsrS") continue;
			var z = y == "FrgC" ? P : o;
			Y.Type.v.Clry = "UsrS";
			Y.Clr = {
				t: "Objc",
				v: H.j.$H({
					U: z >> 16 & 255,
					S: z >> 8 & 255,
					i: z & 255
				})
			}
		}
		return X
	};
	B.DB = function () {
		B.An.call(this, [10, 7], B.Al, "tools/hand");
		this.C0 = new aH(0, 0);
		this.Mf = null
	};
	B.DB.prototype = new B.An;
	B.DB.prototype.XZ = function (F, P, o, X, Y) {
		var y = F.e;
		if (y == "setcls") {
			o.a.qa = F.qa;
			o.Vg = !0;
			o.Ob = !0
		}
		if (y == "scroll" && !X.s(G.ze)) {
			if (X.s(G.Bl)) B.DB.Qq(o, o.a.c.x - F.Dk.y, o.a.c.y - F.Dk.x);
			else B.DB.Qq(o, o.a.c.x - F.Dk.x, o.a.c.y - F.Dk.y)
		}
	};
	B.DB.prototype.enable = function (F, P, o, X) {
		this.Mf = null;
		var Y = new l(i.E.L, !0);
		Y.data = {
			e: i.B.Ik,
			rr: "grab"
		};
		P.w(Y)
	};
	B.DB.prototype.R$ = function (F, P, o, X, Y) {
		this.Mf = F.a.c.clone();
		this.C0.Oh(Y.x, Y.y)
	};
	B.DB.prototype.$E = function (F, P, o, X, Y) {
		if (!Y.Ku) return;
		if (this.Mf == null) this.R$(F, P, o, X, Y);
		B.DB.Qq(F, this.Mf.x + (Y.x - this.C0.x), this.Mf.y + (Y.y - this.C0.y))
	};
	B.DB.prototype.NL = function (F, P, o, X, Y) {
		this.Mf = null
	};
	B.DB.Qq = function (F, P, o) {
		var X = F.a.F;
		if (F.Z * X < F.a.xX.Z && F.h * X < F.a.xX.h) F.a.c.Oh(0, 0);
		else {
			F.a.c.x = P;
			F.a.c.y = o
		}
		F.Ob = !0
	};
	B.I0 = function () {
		B.An.call(this, [10, 47], B.a7J, "tools/rview");
		this.C0 = new aH(0, 0);
		this.KO = null;
		this.JY = null
	};
	B.I0.prototype = new B.An;
	B.I0.prototype.enable = function (F, P, o, X) {
		this.Mf = null;
		var Y = new l(i.E.L, !0);
		Y.data = {
			e: i.B.Ik,
			rr: "grab"
		};
		P.w(Y);
		if (F) this.r4(F, P)
	};
	B.I0.prototype.disable = function (F, P, o, X, Y) {
		if (F) this.r4(F, P)
	};
	B.I0.prototype.Ip = function (F, P, o, X) {
		if (F) this.r4(F, P)
	};
	B.I0.prototype.R$ = function (F, P, o, X, Y) {
		this.C0.Oh(Y.x, Y.y);
		var y = F.a;
		this.KO = y.PY(y.xX.Z / 2, y.xX.h / 2);
		this.JY = y.c5()
	};
	B.I0.prototype.$E = function (F, P, o, X, Y) {
		if (!Y.Ku) return;
		var y = F.a,
			z = this.KO,
			s = this.C0,
			t = new aH(y.xX.Z / 2, y.xX.h / 2),
			d = Math.atan2(Y.y - t.y, Y.x - t.x),
			U = Math.atan2(s.y - t.y, s.x - t.x);
		this.xb(F, P, this.JY.clone(), z, d - U)
	};
	B.I0.prototype.zT = function (F, P, o, X) {
		this.xb(o, P, null, null, F.Fu - o.a.D8);
		o.a.D8 = F.Fu
	};
	B.I0.prototype.xb = function (F, P, o, X, Y) {
		var y = F.a;
		if (o == null) o = y.c5();
		if (X == null) X = y.PY(y.xX.Z / 2, y.xX.h / 2);
		o.translate(-X.x, -X.y);
		o.rotate(Y);
		o.translate(X.x, X.y);
		y.rE(o);
		if (F.Z * y.F < y.xX.Z && F.h * y.F < y.xX.h) y.c.Oh(0, 0);
		F.Vg = !0;
		this.r4(F, P)
	};
	B.I0.prototype.r4 = function (F, P) {
		var o = new l(i.E.L, !0);
		o.data = {
			e: i.B.Zo,
			Q: this.id,
			Fu: F.a.D8
		};
		P.w(o)
	};
	B.K_ = function () {
		B.FH.call(this, [10, 25], B.af, "tools/hbrush")
	};
	B.K_.prototype = new B.FH("");
	B.K_.prototype.NL = function (F, P, o, X, Y) {
		if (this.A4 == null) return;
		this.vM(F, "heal", this.A4.qq(), this.A4.o7(), this.A4.J0());
		this.A(F, this.A4.J0());
		B.gn.prototype.NL.call(this, F, P, o, X, Y);
		if (!this.fT.algnd) this.c = null
	};
	B.aq = function () {
		B.An.call(this, [10, 8], B.OX, "tools/htype");
		this.Ic = [];
		this.EA = null;
		this.s0 = null;
		this.caller = null;
		this.RG = 1;
		this.sl = null;
		this.Bd = 0;
		this.hN = 0;
		this.hO = null;
		this.kD = null;
		this._1 = null;
		this.U7 = null;
		this.AS = null;
		this.RN = null;
		this.Ir = null;
		this.s1 = null;
		this.JE = null;
		this.YW = null;
		this.LM = null;
		this.eC = !1;
		this.NK = !1;
		this.EO = !1;
		this.Kq = null;
		this.HG = null;
		this.oM = null;
		this.DH = !1;
		this.rk = !1;
		this.J$ = -1;
		this.MI = -1;
		this.YK = document.createElement("textarea");
		this.YK.setAttribute("style", "font-family:Arial; font-size:14px; z-index:-1;  position:absolute; top:0px; left:0px;  pointer-events: none; opacity:0; width:200px; height:150px;");
		this.YK.addEventListener("input", this.jo.bind(this), !1);
		this.YK.addEventListener("keydown", this.a7q.bind(this), !1)
	};
	B.aq.prototype = new B.An;
	B.aq.prototype.Vc = function (F) {
		return F.Ku
	};
	B.aq.prototype.RR = function (F, P, o, X) {
		if (this._1 != null) return;
		this.caller = P;
		this.EA = F;
		var Y = this.FZ(F);
		if (Y.length != 0) {
			var y = null,
				z = [],
				s = [];
			for (var w = 0; w < Y.length; w++) {
				var t = F.r[Y[w]],
					d = t.add.TySh,
					U = 0,
					v = bt.jn(d.MF).length - 2,
					A = bt.lW(d.MF, U, v);
				bt.eQ(A, B.X.d3(d.O));
				if (A.dS.Font != null) A.dS.Font = A.Dm[A.dS.Font].Name;
				y = A.Dm;
				z.push(A.dS);
				s.push(A.eS)
			}
			var A = {
				Dm: y,
				dS: bt.$T(z),
				eS: bt.$T(s)
			};
			if (A.dS.Font) bt.oi(A, A.dS.Font);
			this.xk(P, A, d)
		}
	};
	B.aq.prototype.FZ = function (F) {
		var P = [];
		for (var w = 0; w < F.p.length; w++)
			if (F.r[F.p[w]].add.TySh) P.push(F.p[w]);
		return P
	};
	B.aq.prototype.XZ = function (F, P, o, X, Y) {
		if (F.e == "insertText" && this._1) {
			var y = this.YK,
				z = y.value,
				s = y.selectionStart,
				t = y.selectionEnd;
			y.value = z.slice(0, s) + F.C + z.slice(t);
			y.selectionStart = y.selectionEnd = s + F.C.length;
			this.jo(null);
			y.focus()
		}
		if (F.e == "updateStyles") {
			if (this._1 == null) {
				var d = this.FZ(o),
					U = !1;
				if (d.length != 0) {
					this.oy(o, P, Y, d);
					for (var w = 0; w < d.length; w++) {
						var v = o.r[d[w]],
							A = v.add.TySh;
						bt.LE(A, this.RG);
						this._1 = v;
						var Z = bt.jn(A.MF);
						this.J$ = 0;
						this.MI = Z.length - 1;
						bt.Ji(A.MF, this.J$, this.MI, this.RQ(Y, A));
						var D = this.vU(o, Y);
						if (D == !1) U = !0
					}
					if (U) {
						this.DH = !0;
						return
					}
					this.BU(o, P)
				}
				return
			}
			this.X_(Y)
		}
		if (F.e.startsWith("warp")) {
			var q = this.rk;
			if (F.e == "warp" || F.e == "warpCancel") {
				if (F.e == "warp") this._1.add.TySh.VU = F.mD;
				else this._1.add.TySh.VU = this.Ir;
				var o = this.EA;
				this.vU(o, Y);
				if (!q) this.K$(o)
			}
			if (F.e != "warp") this.YK.focus();
			if ((F.e == "warpConfirm" || F.e == "warpCancel") && q) {
				this.rk = !1;
				if (F.e == "warpConfirm") this.BU(o, P);
				else this.OZ(o, P)
			}
		}
		if (F.e == "editCurr") {
			if (Y.Mp != B.OX) {
				this.sl = Y.Mp;
				var R = new l(i.E.L, !0);
				R.data = {
					e: i.B.MR,
					Q: B.OX
				};
				P.w(R)
			}
			if (this._1 != null) this.disable(o, P, Y, X);
			this.EA = o;
			this.s0 = Y;
			this.caller = P;
			this.oy(o, P, Y, [F.z3]);
			var Z = bt.jn(this._1.add.TySh.MF);
			this.J$ = 0;
			this.MI = Z.length - 1;
			this.K$(o);
			this.zx();
			this.YK.focus()
		}
		if (F.e == "switchPntPrgr") {
			var v = o.r[o.p[0]],
				A = v.add.TySh,
				J = A.O.d3(),
				W = JSON.parse(JSON.stringify(A.MF)),
				p = bt.AW(W),
				n = p == 1 ? bt.dd(W) : [0, 0, Math.round(v.rect.Z * 1.05 / J), Math.round(v.rect.h * 1.25 / J)],
				b = bt.lW(W, 0, 0),
				Q = b.Dm[b.dS.Font].Name,
				_ = Y.SN.VV(Q),
				L = [0, n[2], n[2] / 2][b.eS.Justification % 3],
				m = _ ? dc.hq(_, Q) * (1 / _.head.unitsPerEm) * b.dS.FontSize : b.dS.FontSize * .8;
			bt.E5(W, 1 - p);
			if (p == 0) {
				L = -L;
				m = -m;
				bt.Z1(W, [0, 0, n[2], n[3]])
			}
			var I = new cu(1, 0, 0, 1, L, m);
			I.concat(A.O);
			this.XZ({
				vS: o.p[0],
				e: "newED",
				e1: W,
				O: I
			}, P, o, X, Y)
		}
		if (F.e == "newED") {
			var v = o.r[F.vS],
				A = v.add.TySh,
				c = this.Fn(o, [F.vS]);
			A.MF = F.e1;
			if (F.O) A.O = F.O;
			var u = new dc(A.MF, Y.SN),
				a = dQ.ti(u, A);
			v.rect = a.T;
			v.buffer = a.Ww;
			v.A();
			o.A();
			var N = new bV(this.name, this);
			N.data = {
				hC: c,
				B2: this.Fn(o, [F.vS])
			};
			o.TX(N)
		}
		if (F.e == "fromAction") {
			var V = F.WR.w1.Usng.v,
				M = V.TxtC.v,
				O = [];
			for (var w = 0; w < 2; w++) {
				var K = M[w == 0 ? "Hrzn" : "Vrtc"].v,
					j = K.val;
				if (K.type == "#Prc") j = (w == 0 ? o.Z : o.h) * (j / 100);
				O[w] = j
			}
			this.m5(o, P, Y, X, o.a._R(O[0], O[1]));
			var v = o.r[o.p[0]],
				A = v.add.TySh,
				$ = A.MF,
				z = bt.jn($);
			bt.Iw($, 0, z.length - 1);
			bt.v$($, 0, V.Txt.v.replace(/\r/g, "\n"));
			for (var p = 0; p < 2; p++) {
				var x = V[p == 0 ? "Txtt" : "paragraphStyleRange"].v;
				for (var w = 0; w < x.length; w++) {
					var g = x[w].v,
						s = g.From.v,
						t = g.T.v - 1;
					g = g[p == 0 ? "TxtS" : "paragraphStyle"].v;
					var T = bt.lW($, s, t),
						E = p == 0 ? T.dS : T.eS;
					for (var a9 in g) {
						var ez = g[a9].v;
						if (a9 == "Sz") E.FontSize = Math.round(ez.val);
						if (a9 == "fontPostScriptName") bt.oi(T, ez);
						if (a9 == "Algn") E.Justification = {
							Cntr: 2
						} [ez.Alg]
					}
					bt.Ji($, s, t, T)
				}
			}
			var u = new dc(A.MF, Y.SN),
				a = dQ.ti(u, A);
			v.rect = a.T;
			v.buffer = a.Ww;
			v.A();
			o.A();
			this.BU(o, P)
		}
	};
	B.aq.prototype.X_ = function (F) {
		var P = Math.min(this.J$, this.MI),
			o = Math.max(this.J$, this.MI),
			X = this._1.add.TySh;
		bt.LE(X, this.RG);
		bt.Ji(X.MF, P, o - 1, this.RQ(F, X));
		var Y = this.EA,
			y = this.vU(Y, F);
		if (y) this.K$(Y);
		if (document.activeElement.tagName.toLowerCase() != "input") this.YK.focus()
	};
	B.aq.prototype.aU = function (F) {
		return this.Ic.indexOf(F) != -1
	};
	B.aq.prototype.enable = function (F, P, o, X) {
		var Y = this.YK;
		if (!i.WW(Y)) P.u.appendChild(Y);
		this.s1 = "default";
		this.b9(P)
	};
	B.aq.prototype.go = function () {
		return this._1 != null
	};
	B.aq.aj = function (F, P) {
		for (var w = F.r.length - 1; w >= 0; w--) {
			var o = F.r[w];
			if (o.add.TySh && o.rect.oz(P) && F.i7(w)) {
				var X = o.k6(2) || o.k6(31);
				return X ? -2 : w
			}
		}
		return -1
	};
	B.aq.prototype.R$ = function (F, P, o, X, Y) {
		this.EA = F;
		this.s0 = o;
		this.caller = P;
		var y = F.a.PY(Y.x, Y.y),
			z = this._1 == null;
		if (z) {
			var s = B.aq.aj(F, y);
			if (s == -2) {
				alert(h9.get([6, 57, 0]));
				return
			}
			if (s >= 0) {
				if (!dQ.SR(F.r[s].add.TySh, o.SN)) {
					alert("Fonts not loaded yet");
					return
				}
				this.oy(F, P, o, [s])
			} else {
				this.EO = !0;
				this.Kq = Y;
				return
			}
		}
		var t = z ? -1 : bt.AW(this._1.add.TySh.MF),
			d = this.YW ? this.YW : this.JE;
		if (d && d.R$(F, o, X, y) && H.mD.O8(this._1.add.TySh.VU) || !z && H.D.QX(y, this._1.rect) > 20 / F.a.F && (t == 0 || t == 1)) {
			this.eC = !0;
			this.HG = y;
			this.oM = this._1.add.TySh.O.clone();
			if (this.J$ == -1 && this.MI == -1) this.J$ = this.MI = this.QG(y)
		} else {
			if (this.AS == null) {
				alert("Fonts not loaded yet");
				return
			}
			this.NK = !0;
			this.J$ = this.MI = this.QG(y);
			var U = Date.now();
			if (U - this.Bd > 300) this.hN = 0;
			this.hN++;
			this.Bd = U;
			if (this.hN == 2) this.a7f();
			if (this.hN == 3) this.a73();
			if (this.hN > 1) {
				this.NK = !1
			}
		}
		this.zx();
		this.K$(F)
	};
	B.aq.prototype.oy = function (F, P, o, X) {
		var Y = F.r[X[0]];
		this._1 = Y;
		this.fF(P, i.E.L, {
			e: i.B.Zo,
			Q: this.id,
			He: "showactive"
		});
		this.U7 = X;
		F.p = X.slice(0);
		F.HP();
		F.Mv = !0;
		this.RN = this.Fn(F, X);
		this.yz(Y.add.TySh);
		this.vU(F, o)
	};
	B.aq.prototype.yz = function (F) {
		if (bt.AW(F.MF) != 1) return;
		var P = bt.dd(F.MF);
		P = new ev(0, 0, P[2] - P[0], P[3] - P[1]);
		var o = [P.x, P.y, P.x + P.Z, P.y, P.x + P.Z, P.y + P.h, P.x, P.y + P.h];
		H.D.O(o, F.O, o);
		this.JE = new i3(o, !1, !1, !1, !0)
	};
	B.aq.prototype.a7f = function () {
		var F = bt.jn(this._1.add.TySh.MF);
		this.J$ = this.e_(F, this.J$);
		this.MI = this.Nt(F, this.J$)
	};
	B.aq.prototype.e_ = function (F, P) {
		var o = " \t\n,.?!_-+=@#$%^&*'\"(){}[]\\/<>:;|",
			X = [];
		for (var w = 0; w < o.length; w++) X.push(o.charAt(w));
		var Y = X.indexOf(F[P]) == -1 ? !0 : !1;
		for (var w = P - 1; w >= 0; w--)
			if (X.indexOf(F.charAt(w)) != -1 == Y) return w + 1;
		return 0
	};
	B.aq.prototype.Nt = function (F, P) {
		var o = " \t\n,.?!_-+=@#$%^&*'\"(){}[]\\/<>:;|",
			X = [];
		for (var w = 0; w < o.length; w++) X.push(o.charAt(w));
		var Y = X.indexOf(F[P]) == -1 ? !0 : !1;
		for (var w = P + 1; w < F.length; w++)
			if (X.indexOf(F.charAt(w)) != -1 == Y) return w;
		return F.length - 1
	};
	B.aq.prototype.a73 = function () {
		var F = this.AS.agM(this.J$);
		this.J$ = F[0];
		this.MI = F[1]
	};
	B.aq.prototype.b9 = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.Ik,
			rr: this.s1
		};
		F.w(P)
	};
	B.aq.prototype.$E = function (F, P, o, X, Y) {
		var y = F.a.PY(Y.x, Y.y),
			z = this._1;
		if (!Y.Ku) {
			var s = "default",
				t = this.JE,
				d = this.YW ? this.YW : t;
			if (d && H.mD.O8(z.add.TySh.VU)) {
				var U = d.Eb(y, F.a.F);
				if (U) s = U;
				else if (d == t && t.kl(y)) s = "text"
			} else if (z && H.D.QX(y, z.rect) > 20 / F.a.F) s = "move";
			else if (B.aq.aj(F, y) >= 0) s = "text";
			if (s != this.s1) {
				this.s1 = s;
				this.b9(P)
			}
		}
		var v = this.Kq;
		if (this.EO && Math.min(Y.x - v.x, Y.y - v.y) > 4 / F.a.F) {
			this.EO = !1;
			this.m5(F, P, o, X, Y);
			z = this._1;
			this.eC = !0;
			this.JE = new i3(null, !1, !1, !1, !0);
			var A = F.a.PY(this.Kq.x, this.Kq.y);
			A.x = Math.round(A.x);
			A.y = Math.round(A.y);
			this.JE.R$(F, o, X, A)
		}
		if (this.eC) {
			var Z = z.add.TySh;
			if (this.YW) {
				this.YW.$E(F, o, X, y);
				var D = H.P.z5(H.P.bg(this.YW._4(), this.LM));
				Z.O = D;
				this.vU(F, o);
				bt.SK(Z)
			} else if (this.JE) {
				this.JE.$E(F, o, X, y);
				var q = Z.O.clone(),
					R = Math.atan2(q.i, q.m);
				q.rotate(R);
				var D = H.P.z5(H.P.bg(this.JE._4())),
					J = Math.atan2(D.i, D.m);
				D.rotate(J);
				if (!isNaN(D.m) && D.m * D.xA - D.i * D.p$ != 0) {
					var W = new ev(0, 0, D.m / q.m, D.xA / q.xA),
						p = Math.round(W.Z),
						n = Math.round(W.h),
						b = Z.MF.Curve;
					if (b) {
						var Q = bt.dd(Z.MF),
							_ = new cu(p / Q[2], 0, 0, n / Q[3], 0, 0);
						H.D.O(b.Points, _, b.Points);
						bt.SK(Z)
					}
					bt.Z1(Z.MF, [0, 0, p, n]);
					Z.O = H.P.z5(H.P.bg(this.JE._4(), W));
					this.vU(F, o);
					bt.SK(Z)
				}
			} else {
				var L = y.x - this.HG.x,
					m = y.y - this.HG.y;
				Z.O = this.oM.clone();
				var I = new aH(Z.O.PV + L, Z.O.ye + m);
				I = B.qT.aE(F, I, o);
				Z.O.PV = I.x;
				Z.O.ye = I.y;
				this.vU(F, o)
			}
		}
		if (this.NK) this.MI = this.QG(y);
		if (this.eC || this.NK) this.K$(F)
	};
	B.aq.prototype.m5 = function (F, P, o, X, Y) {
		var y = F.Cj(),
			z = y[0],
			s = y[1],
			t = F.an();
		t.add.lnsr = "rend";
		var d = F.r.slice(0);
		t.uf("Text layer " + d.length);
		this._1 = t;
		var U = F.p.length == 0 ? F.r.length - 1 : F.p[F.p.length - 1],
			v = U + 1;
		if (d[U].add.lsct == gr.lw) v--;
		this.RN = {
			Q1: d.slice(0),
			la: F.p.slice(0)
		};
		d.splice(v, 0, t);
		F.p = [v];
		this.J$ = this.MI = 0;
		F.wG(d);
		this.RN.L_ = d.slice(0);
		this.RN.Od = F.p.slice(0);
		this.fF(P, i.E.L, {
			e: i.B.Zo,
			Q: this.id,
			He: "showactive"
		});
		var A = F.a.PY(Y.x, Y.y);
		t.add.TySh = bt.T_(A.x, A.y, o.T2);
		var Z = t.add.TySh,
			D = Z.MF;
		bt.LE(Z, this.RG);
		if (Y.Ku) bt.E5(D, 1);
		else {
			bt.E5(D, 0);
			var q = z[s.pop()],
				R = q ? q.add.vmsk : null;
			if (R) {
				R = R.clone();
				var J = R.b,
					p, n;
				for (var w = 0; w < J.length; w++)
					if (J[w].IO != null) J[w].IO = 0;
				var W = 4 * i.J() / F.a.F;
				p = H.V.cp(R.b, A, !0, W);
				if (p.XN == -1) p = H.V.cp(R.b, A);
				if (p.XN != -1) {
					bt.E5(D, 1);
					var b = H.V.cx(J, p.XN),
						Q = H.V.SD(J, p.XN) - 1;
					J = R.b = J.slice(0, 2).concat(J.slice(b, b + Q + 1));
					R.p = [];
					Z.add = {
						vmsk: R,
						vogk: h.h7(J)
					};
					D.Curve = {};
					bt.jj(Z);
					if (p._2 != null) {
						var _ = dc.Pr(D.Curve);
						H.D.O(_[0], Z.O, _[0]);
						var L = H.D.n0(_[0], A.x, A.y),
							m = o.T2.eS.Justification;
						if (m == 2 || m == 5) {
							var I = (_[2][L] + _[3] * .5) % _[3];
							L = dc.Ec(I, _[2])
						}
						var c = _[1][L];
						c = c % Q;
						R.A2 = [c, c];
						bt.jj(Z)
					} else this.yz(Z)
				}
			}
		}
		return t
	};
	B.aq.prototype.NL = function (F, P, o, X, Y) {
		var y = F.a.PY(Y.x, Y.y),
			z = this.EO;
		if (this.EO) {
			this.EO = !1;
			this.m5(F, P, o, X, Y);
			this.NK = !0
		}
		if (this.eC || this.NK) {
			this.K$(F);
			this.zx();
			if (z) this.X_(o)
		}
		if (this.eC && this.JE) this.JE.NL(F, o, X, y);
		this.eC = this.NK = !1;
		this.UD(F, o, X);
		this.YK.focus()
	};
	B.aq.prototype.zx = function () {
		var F = this._1.add.TySh,
			P = Math.min(this.J$, this.MI),
			o = Math.max(this.J$, this.MI),
			X, Y;
		if (P == o) {
			var y = bt.jn(F.MF);
			if (P == 0 || y.charAt(P - 1) == "\n") X = Y = P;
			else X = Y = P - 1
		} else {
			X = P;
			Y = o - 1
		}
		var z = bt.lW(F.MF, X, Y);
		bt.eQ(z, B.X.d3(F.O));
		this.xk(this.caller, z, F)
	};
	B.aq.prototype.xk = function (F, P, o) {
		this.fF(F, i.E.L, {
			e: i.B.Sl,
			S9: ge.Ol,
			T2: P
		});
		var X = this.RG = bt.oQ(o);
		this.fF(this.caller, i.E.L, {
			e: i.B.Zo,
			Q: this.id,
			He: "changeAA",
			uB: X
		})
	};
	B.aq.prototype.gU = function (F, P, o, X) {
		if (X.s(G.yc)) this.OZ(F, P);
		var Y = this._1;
		if (Y)
			if (this.YW == null && X.s(G.Bl)) {
				var y = Y.add.TySh,
					z = bt.AW(y.MF),
					s;
				if (z == 1) {
					s = bt.dd(y.MF);
					s = new ev(0, 0, s[2] - s[0], s[3] - s[1])
				} else s = this.AS.yD();
				var t = [s.x, s.y, s.x + s.Z, s.y, s.x + s.Z, s.y + s.h, s.x, s.y + s.h];
				H.D.O(t, y.O, t);
				this.YW = new i3(t, !0, !0, !1, !1);
				this.LM = s;
				this.K$(this.EA)
			} else this.UD(F, o, X)
	};
	B.aq.prototype.UD = function (F, P, o) {
		var X = this._1;
		if (X && !this.eC && this.YW != null && !o.s(G.Bl)) {
			this.YW.NL(F, P, o, null);
			this.YW = null;
			this.yz(X.add.TySh);
			this.K$(this.EA)
		}
	};
	B.aq.prototype.disable = function (F, P, o, X) {
		var Y = this._1;
		this.BU(F, P)
	};
	B.aq.prototype.zT = function (F, P, o, X, Y) {
		if (this.rk) return;
		if (F.He == "commit") this.BU(o, P);
		if (F.He == "cancel") this.OZ(o, P);
		if (F.He == "changeAA") {
			this.RG = F.uB;
			if (o != null) this.XZ({
				e: "updateStyles"
			}, P, o, X, Y)
		}
		if (F.He == "showwarp") {
			if (o == null) return;
			if (this._1 == null) {
				var y = o.r[o.p[0]],
					z = y.add.TySh;
				if (z == null) return;
				this.oy(o, P, Y, [o.p[0]]);
				this.YK.focus();
				this.rk = !0
			}
			this.Ir = this._1.add.TySh.VU;
			var s = new l(i.E.L, !0);
			s.data = {
				e: i.B.uH,
				W2: "textwarp"
			};
			P.w(s)
		}
	};
	B.aq.prototype.AK = function (F, P) {
		if (P != ge.Du) return;
		if (this.DH) {
			this.DH = !1;
			var o = this.EA,
				X = this.U7;
			for (var w = 0; w < X.length; w++) {
				this._1 = o.r[X[w]];
				this.vU(o, F)
			}
			this.BU(o, this.caller);
			return
		}
		if (this._1) this.X_(F)
	};
	B.aq.prototype.RQ = function (F, P) {
		var o = JSON.parse(JSON.stringify(F.T2));
		bt.eQ(o, 1 / B.X.d3(P.O));
		return o
	};
	B.aq.prototype.oF = function (F, P) {
		if (F.hC != null) this.rw(P, F.B2);
		else this.Xg(P, F.L_, F.Od)
	};
	B.aq.prototype.tO = function (F, P) {
		if (F.hC != null) this.rw(P, F.hC);
		else this.Xg(P, F.Q1, F.la)
	};
	B.aq.prototype.rw = function (F, P) {
		for (var w = 0; w < P.length; w++) {
			var o = P[w],
				X = o.vS,
				Y = F.r[X];
			Y.buffer = o.Tr;
			Y.rect = o.T.clone();
			Y.A();
			var y = Y.add.TySh;
			y.VU = o.mD;
			y.xa = o.xa.clone();
			y.O = o.O.clone();
			y.MF = JSON.parse(JSON.stringify(o.MF));
			Y.cg()
		}
		F.A()
	};
	B.aq.prototype.Fn = function (F, P) {
		var o = [];
		for (var w = 0; w < P.length; w++) {
			var X = P[w],
				Y = F.r[X],
				y = Y.add.TySh;
			o.push({
				vS: X,
				O: y.O.clone(),
				mD: JSON.parse(JSON.stringify(y.VU)),
				xa: y.xa.clone(),
				MF: JSON.parse(JSON.stringify(y.MF)),
				Tr: H.clone(Y.buffer),
				T: Y.rect.clone()
			})
		}
		return o
	};
	B.aq.prototype.Xg = function (F, P, o) {
		F.p = o;
		F.wG(P);
		F.A();
		F.Vf = !0
	};
	B.aq.prototype.vU = function (F, P, o) {
		if (o == null) o = !1;
		var X = this._1.add.TySh;
		if (!dQ.SR(X, P.SN)) return !1;
		this.AS = new dc(X.MF, P.SN);
		if (!o) {
			var Y = bt.jn(X.MF);
			this.YK.value = Y.slice(0, Y.length - 1)
		}
		var y = dQ.ti(this.AS, X);
		if (H.mD.O8(X.VU)) X.xa = new ev;
		else {
			if (bt.AW(X.MF) == 1) {
				var z = bt.dd(X.MF),
					e = y.xa.y;
				X.xa = new ev(0, e, z[2] - z[0], z[3] - z[1] - e)
			} else {
				X.xa = y.xa
			}
		}
		var s = this._1.rect;
		this._1.rect = y.T;
		this._1.buffer = y.Ww;
		this._1.A();
		F.dr();
		F.A(F.root.Ch(y.T.s7(s), F, F.r.indexOf(this._1)));
		return !0
	};
	B.aq.prototype.jo = function (F) {
		if (this._1 == null || this.rk) return;
		var P = this.YK.selectionStart,
			o = this._1.add.TySh,
			X = bt.jn(o.MF),
			Y = this.YK.value + "\n",
			y = Math.min(this.J$, this.MI),
			z = Math.max(this.J$, this.MI),
			v = !1;
		this.J$ = Math.min(P, y);
		if (Y.length - P < X.length - this.MI) this.MI = X.length - Y.length + P;
		if (X != Y) {
			while (this.J$ > 0 && X.charAt(this.J$ - 1) != Y.charAt(this.J$ - 1)) this.J$--
		}
		var s = X.substring(0, this.J$),
			t = X.substring(this.MI, X.length),
			d = Y.substring(this.J$, Y.length - t.length);
		bt.Iw(o.MF, this.J$, this.MI);
		bt.v$(o.MF, this.J$, d);
		var U = this.RQ(this.s0, o),
			A = -1,
			Z = Array.from(d);
		for (var w = 0; w < Z.length; w++) A = Math.max(A, Z[w].codePointAt(0));
		if (A != -1 && A > 128 && U.dS.Font != null) {
			var D = U.Dm[U.dS.Font].Name,
				q = this.s0.SN.Jd(A, D, U.Dm);
			if (D != q) {
				bt.oi(U, q);
				v = !0
			}
		}
		if (this.kD != null && d == this.kD) {
			var R = JSON.parse(this.hO);
			U.dS = R.dS;
			U.Dm = R.Dm;
			v = !0
		}
		bt.Ji(o.MF, this.J$, this.J$ + d.length - 1, U);
		this.J$ = this.MI = s.length + d.length;
		var J = this.EA,
			W = this.vU(J, this.s0, !0);
		if (W) this.K$(J, !0);
		if (v) this.zx()
	};
	B.aq.prototype.a7q = function (F) {
		if (this._1 == null || this.rk) return;
		if (this._1 == null) return;
		var P = G,
			o = 0,
			X = 0,
			p = !1;
		if (P.be(F.code, P.rc)) o = 1;
		if (P.be(F.code, P.Nf)) o = -1;
		if (P.be(F.code, P.DY)) X = -1;
		if (P.be(F.code, P.yF)) X = 1;
		var z = F.ctrlKey || F.metaKey,
			s = P.be(F.code, G.adv),
			t = P.be(F.code, G.agd);
		if (P.be(F.code, G.Xr) && z) {
			this.BU(this.EA, this.caller);
			return
		}
		if (P.be(F.code, G.gP)) {
			F.preventDefault();
			var d = this.YK,
				U = d.value,
				v = d.selectionStart,
				A = d.selectionEnd;
			d.value = U.substring(0, v) + "\t" + U.substring(A);
			d.selectionStart = d.selectionEnd = v + 1;
			this.jo(null);
			return
		}
		if ((P.be(F.code, P.qS) || P.be(F.code, P.ej)) && z) {
			var Z = this.J$,
				D = this.MI;
			if (Z > D) {
				var q = Z;
				Z = D;
				D = q
			}
			var R = this._1.add.TySh,
				J = bt.jn(R.MF);
			if (Z != D) {
				this.kD = J.slice(Z, D);
				this.hO = JSON.stringify(this.s0.T2)
			}
		}
		var W = bt.jn(this._1.add.TySh.MF);
		if (o != 0 || X != 0 || s || t) {
			F.preventDefault();
			var n = this.J$;
			if (o != 0) {
				if (z && o == -1) n = this.e_(W, this.J$ - 1);
				else if (z && o == 1) n = this.Nt(W, this.J$);
				else {
					var d = this.YK,
						U = d.value;
					n = this.J$ + o;
					if (n != 0 && U.codePointAt(n - 1) > 65535) n += o
				}
			} else if (X != 0) {
				var b = this.AS.Fj(this.J$);
				if (X == -1 && b.Kc == 0) n = 0;
				else if (X == 1 && b.Kc == this.AS.aaP() - 1) n = 99999999999;
				else n = this.AS.iT(new aH(b.T.x + b.T.Z / 2, 0), b.Kc + X)
			} else if (s) {
				var Q = this.J$ - 1;
				while (Q > 0 && W.charCodeAt(Q) != 10) Q--;
				n = Q == 0 ? 0 : Q + 1
			} else if (t) {
				var Q = this.J$;
				while (Q < W.length - 1 && W.charCodeAt(Q) != 10) Q++;
				n = Q
			}
			n = Math.max(0, Math.min(W.length - 1, n));
			if (F.shiftKey) this.J$ = n;
			else this.J$ = this.MI = n;
			p = !0
		}
		if (P.be(F.code, G.B) && z) {
			this.J$ = 0;
			this.MI = W.length - 1;
			p = !0
		}
		if (p) {
			this.zx();
			this.K$(this.EA)
		}
	};
	B.aq.ae$ = function (F, P) {
		var o = F.length;
		if (o != P.length) return !1;
		for (var w = 0; w < o; w++)
			if (F[w].vS != P[w].vS) return !1;
		return !0
	};
	B.aq.prototype.BU = function (F, P) {
		if (this._1 == null) return;
		this._1.cg();
		var o = this.RN;
		if (o instanceof Array) {
			var X = this.Fn(F, this.U7),
				Y = F.a1();
			if (Y != null && Y.Q == this && Y.data.hC && B.aq.ae$(Y.data.hC, o)) Y.data.B2 = X;
			else {
				var y = new bV(this.name, this);
				y.data = {
					hC: o,
					B2: X
				};
				F.TX(y)
			}
		} else {
			var y = new bV(this.name, this);
			y.data = {
				Q1: o.Q1,
				L_: o.L_,
				la: o.la,
				Od: o.Od
			};
			F.TX(y)
		}
		this.escape(F, P)
	};
	B.aq.prototype.OZ = function (F, P) {
		if (this._1 == null) return;
		if (this.RN instanceof Array) {
			this.rw(F, this.RN);
			if (this._1) bt.SK(this._1.add.TySh)
		} else {
			F.p = this.RN.la;
			F.wG(this.RN.Q1)
		}
		F.A();
		this.escape(F, P)
	};
	B.aq.prototype.escape = function (F, P) {
		this._1 = null;
		this.U7 = null;
		this.AS = null;
		this.JE = null;
		this.YK.blur();
		F.v.hK = null;
		F.v.Kp = null;
		F.v.CL = [];
		F.Vg = !0;
		this.eC = !1;
		this.NK = !1;
		this.J$ = this.MI = -1;
		this.fF(P, i.E.L, {
			e: i.B.Zo,
			Q: this.id,
			He: "hideactive"
		});
		if (this.sl) {
			var o = new l(i.E.L, !0);
			o.data = {
				e: i.B.MR,
				Q: this.sl
			};
			P.w(o);
			this.sl = null
		}
	};
	B.aq.prototype.fF = function (F, P, o, X) {
		var Y = new l(P, !0);
		Y.data = o;
		if (X) Y.Q = X;
		F.w(Y)
	};
	B.aq.prototype.QG = function (F) {
		var P = this._1.add.TySh,
			o = this.AS,
			X = P.O.clone();
		X.nJ();
		var Y = X.aT(F),
			y = bt.o7(P, o),
			z = H.mD.ij(P.VU, y),
			s = H.ea.G.LJ(z, 0, 1, 0, 1),
			t = new Uint32Array(30),
			d = H.ea.G.a0i(s.IC, s.$x, Y.x, Y.y, t),
			U = H.ea.cp(z, Y.x, Y.y, s.IC, t, d, !1),
			v = H.ea.EZ;
		if (v == null) v = new Float64Array(2);
		Y = new aH(y.x + v[0] * y.Z, y.y + v[1] * y.h);
		var A = o.iT(Y);
		return A
	};
	B.aq.prototype.K$ = function (F, P) {
		if (P == null) P = !1;
		var o = this._1.add.TySh,
			X = bt.AW(o.MF),
			Y = this.AS,
			y = Y ? bt.o7(o, Y) : null;
		F.v.CL = [];
		F.v.hK = null;
		F.v.Kp = null;
		var z = this.YW ? this.YW : this.JE;
		if (z) {
			z.b4(F, this.s0, !H.mD.O8(o.VU));
			var s = o.O.clone();
			s.nJ();
			H.D.O(F.v.CL, s, F.v.CL);
			H.D.O(F.v.hK.d, s, F.v.hK.d);
			if (Y && Y.a7j()) {
				var t = y.Z - 20,
					d = y.h + 8;
				F.v.hK.d.push(t, d, t + 10, d, t + 5, d - 5, t + 5, d + 5);
				F.v.hK.W.push("M", "L", "M", "L")
			}
		} else if (X == 0) this.afl(F, o, Y);
		else F.v.hK = {
			d: [],
			W: []
		};
		var U = Math.min(this.J$, this.MI),
			v = Math.max(this.J$, this.MI);
		if (!P) {
			this.YK.selectionStart = U;
			this.YK.selectionEnd = v
		}
		if (Y != null) {
			var A = function (z, b) {
				var Q = z.x,
					_ = z.y + z.h,
					L = new cu;
				L.translate(-Q, -_);
				L.rotate(-b);
				L.translate(Q, _);
				z.y += z.h * .27;
				var W = H.D.z0(z);
				H.D.O(W.d, L, W.d);
				return W
			};
			if (U == v) {
				U = Math.max(U, 0);
				var Z = Y.Fj(U);
				if (Z) {
					var D = Z.T,
						q = this.s0.T2.dS.FontSize;
					if (q != null && q != 0) {
						q /= o.O.d3();
						D.y += D.h - q;
						D.h = q
					}
					var R = Y.a71(U);
					if (R != null && R.kU == 1) D.x += D.Z;
					var J = A(D, Z.D8).d;
					F.v.hK.W.push("M", "L");
					F.v.hK.d.push(J[0], J[1], J[6], J[7])
				}
			} else {
				F.v.Kp = {
					d: [],
					W: []
				};
				for (var w = U; w < v; w++) {
					var Z = Y.Fj(w),
						W = A(Z.T, Z.D8);
					H.D.concat(F.v.Kp, W)
				}
			}
		}
		if (Y != null) {
			if (!y.qr()) {
				var p = H.mD.ij(o.VU, y),
					n = Math.min(y.Z, y.h) / 10;
				if (F.v.hK) {
					F.v.hK = H.D.pP(F.v.hK);
					F.v.hK = H.D.Tm(F.v.hK, n);
					H.ea.apply(p, F.v.hK.d, y)
				}
				if (F.v.Kp) {
					F.v.Kp = H.D.pP(F.v.Kp);
					F.v.Kp = H.D.Tm(F.v.Kp, n);
					H.ea.apply(p, F.v.Kp.d, y)
				}
				H.ea.apply(p, F.v.CL, y)
			}
		}
		if (F.v.hK) H.D.O(F.v.hK.d, o.O, F.v.hK.d);
		if (F.v.Kp) H.D.O(F.v.Kp.d, o.O, F.v.Kp.d);
		H.D.O(F.v.CL, o.O, F.v.CL);
		F.Vg = !0
	};
	B.aq.prototype.afl = function (F, P, o) {
		if (o == null) return;
		F.v.CL.push(0, 0);
		if (F.v.hK == null) F.v.hK = {
			W: [],
			d: []
		};
		for (var w = 0; w < o.eS.length; w++) {
			var X = o.eS[w];
			for (var Y = 0; Y < X.V8.length; Y++) {
				var y = X.V8[Y],
					z = X.tZ.x + y.tZ.x + y.T.x,
					s = X.tZ.y + y.tZ.y + y.T.y + y.T.h;
				F.v.hK.W.push("M", "L");
				F.v.hK.d.push(z, s, z + y.T.Z, s)
			}
		}
		F.Vg = !0
	};
	B.Cw = function () {
		B.hl.call(this, [10, 9], B.IV, "tools/lasso");
		this.qy = "crosshair";
		this.BV = null;
		this.ic = null;
		this.HG = null
	};
	B.Cw.prototype = new B.hl;
	B.Cw.prototype.Qf = function (F, P, o, X) {
		this.BV = this.k7;
		this.ic = {
			d: [this.BV.x, this.BV.y],
			W: ["M"]
		}
	};
	B.Cw.prototype.Ap = function (F, P, o, X) {
		this.HG = X;
		var Y = this.ic;
		if (Y == null) return;
		if (!X.Ku) {
			if (this.ic != null && this.y0 > 1 && o.s(G.ze)) {
				Y.d.pop();
				Y.d.pop();
				Y.d.push(this.H9.x, this.H9.y);
				F.v.hK = Y;
				F.Vg = !0
			}
			return
		}
		Y.W.push("L");
		Y.d.push(this.H9.x, this.H9.y);
		this.BV = this.H9;
		if (this.e3) {
			F.v.hK = Y;
			F.Vg = !0
		}
	};
	B.Cw.prototype.go = function () {
		return this.ic != null
	};
	B.Cw.prototype.II = function () {
		return this.ic != null
	};
	B.Cw.prototype.gU = function (F, P, o, X) {
		B.hl.prototype.gU.call(this, F, P, o, X);
		if (this.ic && this.y0 > 1 && this.HG && !this.HG.Ku && !X.s(G.ze)) this.o6(F, o, X)
	};
	B.Cw.prototype.sj = function (F, P, o, X) {
		this.HG = X;
		var Y = this.ic;
		if (Y == null) return;
		if (this.y0 > 1 && o.s(G.ze)) {
			Y.W.push("L");
			Y.d.push(this.H9.x, this.H9.y);
			return
		}
		this.o6(F, P, o)
	};
	B.Cw.prototype.o6 = function (F, P, o) {
		this.finish(F, P, o, this.HG);
		this.ic = null;
		F.v.hK = null;
		F.Vg = !0
	};
	B.Cw.prototype.getSelection = function (F, P, o, X) {
		if (this.k7.Qn(this.H9) || !this.e3) return null;
		return B.hl.mT(this.ic.d)
	};
	B.qT = function () {
		B.An.call(this, [10, 11], B.fb, "tools/move");
		this.LV = new aH(0, 0);
		this.mM = new aH(0, 0);
		this.yZ = null;
		this.P_ = null;
		this.ZI = new aH(0, 0);
		this.PJ = null;
		this.yH = null;
		this.JW = null;
		this.Gn = 0;
		this.Hs = null;
		this.zF = [];
		this.Qx = null;
		this.h6 = !1;
		this.e = 0;
		this.I2 = null;
		this.r2 = null;
		this.M8 = null;
		this.qJ = !1;
		this.fT = {
			qc: !1,
			Vo: !1,
			bX: !1
		};
		this.nB = !1;
		this.hD = !1;
		this.JE = null;
		this.E1 = null;
		this.ge = null;
		var F = [];
		for (var w = 0; w < H.t$.bs.length; w++) F.push({
			name: H.t$.bs[w],
			Y: function (P, o, X) {
				return {
					Rb: o.Np.Md == X
				}
			}
		});
		this.X7 = new ba(F);
		this.X7.$("select", this._m, this)
	};
	B.qT.prototype = new B.An;
	B.An.prototype.Vc = function (F) {
		return this.h6 && this.e != 2
	};
	B.qT.prototype.zX = function () {
		return this.h6 && this.e == 0
	};
	B.qT.prototype.Ip = function (F, P, o, X) {
		this.ht(F, -this.ZI.x, -this.ZI.y);
		this.ZI.Oh(0, 0);
		this.vE(F, null, o);
		this.IG(F)
	};
	B.qT.prototype.Nn = function () {
		var F = this.fT;
		return [F.qc ? 1 : 0, F.Vo ? 1 : 0, F.bX ? 1 : 0]
	};
	B.qT.prototype.O0 = function (F, P, o) {
		var X = this.fT;
		if (F && F[0] != null) X.qc = F[0] == 1;
		if (F && F[1] != null) X.Vo = F[1] == 1;
		if (F && F[2] != null) X.bX = F[2] == 1;
		var Y = new l(i.E.L, !0);
		Y.data = {
			e: i.B.Zo,
			Q: this.id,
			iF: X,
			ajh: P
		};
		o.w(Y)
	};
	B.qT.$C = function (F, P, o, X, Y, y, z) {
		if (z == null) z = [!1, !0];
		var s = new ev(0, 0, F.Z, F.h),
			t = F.JU(null, Y, !0),
			d = F.zr(t, z[0] ? s : null, z[1] ? null : s)[0];
		if (o != 1) {
			var U = new ev(0, 0, Math.round(d.Z * o), Math.round(d.h * o));
			B.$K.zy(d, U);
			var v = [];
			for (var w = 0; w < d.r.length; w++) v.push(w);
			var A = B.X.HS(d, v, !0);
			B.X.Br(d, X, v, A, 1, H.P.Jb(new cu(o, 0, 0, o, 0, 0)), null, !0);
			d.tf()
		}
		var Z = [];
		for (var w = 0; w < P.length; w++) Z.push(em.eX(d, P[w].toUpperCase(), null, null, y ? y[w] : null, X));
		return Z
	};
	B.qT.prototype.tK = function (F, P, o, X, Y) {
		if (F == null || F.p.length == 0) return;
		var y = B.qT.$C(F, [P], o, X, null)[0],
			z = new l(i.E.L, !0);
		z.data = {
			e: i.B.QL,
			data: y,
			name: F.r[F.p[0]].getName() + (o == 1 ? "" : "@" + o + "x") + "." + P
		};
		Y.w(z)
	};
	B.qT.prototype.zT = function (F, P, o, X, Y) {
		if (F.mQ == "getPNG") {
			this.tK(o, "png", F.I6, Y, P)
		} else if (F.mQ == "getSVG") {
			this.tK(o, "svg", F.I6, Y, P)
		}
		if (F.mQ == "prms") {
			this.fT = F;
			this.IG(o)
		}
	};
	B.qT.a6A = function (F) {
		var e = F.length,
			o = 0;
		F.sort(function (y, z) {
			return y[0] + y[1] / 2 - (z[0] + z[1] / 2)
		});
		var P = F[e - 1][0] + F[e - 1][1] - F[0][0];
		for (var w = 0; w < e; w++) o += F[w][1];
		var X = Math.round((P - o) / (e - 1)),
			Y = F[0][0];
		for (var w = 0; w < e; w++) {
			F[w][0] = Y;
			Y += F[w][1] + X
		}
	};
	B.qT.prototype.XZ = function (F, P, o, X, Y) {
		var y = F.e;
		if (y == "trsl") {
			var z = Math.round(F.a8t),
				s = Math.round(F.a24);
			this.ZI.Oh(z, s);
			this.wz(o, P, X, Y, !1, F.n);
			this.ht(o, z, s);
			this.vE(o, null, Y)
		} else if (y == "gids" || y == "gidsFromLayer") {
			var t = F.r2,
				d, U;
			if (t == null) t = JSON.parse(JSON.stringify(o.ei));
			if (y == "gids") {
				d = F.lZ;
				var v = t[0].length + t[1].length,
					A = d[0].length + d[1].length;
				U = v == A ? [23, 2] : v > A ? [23, 3] : [23, 4];
				if (A == 0) U = [11, 15, 0]
			} else if (y == "gidsFromLayer") {
				var Z = [
					[],
					[]
				];
				for (var w = 0; w < o.p.length; w++) {
					var D = o.r[o.p[w]].rect;
					if (D.qr()) continue;
					Z[0].push(D.x, D.x + D.Z);
					Z[1].push(D.y, D.y + D.h)
				}
				U = [11, 15, 1];
				d = JSON.parse(JSON.stringify(o.ei));
				B.qT.Zk(d, Z)
			}
			if (JSON.stringify(t) == JSON.stringify(d)) return;
			var y = new bV(U, this);
			y.data = {
				e: 2,
				r2: t,
				lZ: d
			};
			o.TX(y);
			this.oF(y.data, o)
		} else if (y == "algn") {
			var q = F.C;
			if (o == null) return;
			if (o.p.length < 2 && !(o.K != null && q != 3 && q != 7)) {
				alert(h9.get([15, 7, 5]));
				return
			}
			var R = o.K;
			o.K = null;
			var D = R ? R.rect : B.X.o7(o);
			this.wz(o, P, X, Y, !1);
			if (!this.h6) return;
			var J = this.Hs,
				W = {},
				p = [],
				n = [],
				b = [];
			for (var w = 0; w < J.length; w++) {
				var Q = J[w];
				while (o.r[Q].getName() == "</Layer group>") Q++;
				var _ = o.root.V$(Q),
					L = _;
				while (_.parent != null) {
					_ = _.parent;
					if (J.indexOf(_.index) != -1) L = _
				}
				var m = n.indexOf(L.index);
				if (m == -1) {
					m = n.length;
					n.push(L.index)
				}
				p[w] = m
			}
			var I = [],
				c = [],
				u = [];
			for (var w = 0; w < n.length; w++) {
				var a = B.X.o7(o, o.JU(!0, n[w]));
				u.push(a);
				var N = q == 3 ? [a.y, a.h] : [a.x, a.Z];
				I[w] = N;
				c.push(N)
			}
			B.qT.a6A(c);
			for (var w = 0; w < n.length; w++) {
				var a = u[w],
					V = a.x,
					M = a.y;
				if (q == 0) V = D.x;
				if (q == 1) V = D.x + (D.Z - a.Z) / 2;
				if (q == 2) V = D.x + (D.Z - a.Z);
				if (q == 3) M = I[w][0];
				if (q == 4) M = D.y;
				if (q == 5) M = D.y + (D.h - a.h) / 2;
				if (q == 6) M = D.y + (D.h - a.h);
				if (q == 7) V = I[w][0];
				b.push(Math.round(V - a.x), Math.round(M - a.y))
			}
			var O = [];
			for (var w = 0; w < J.length; w++) {
				var K = p[w];
				O[2 * w] = b[2 * K];
				O[2 * w + 1] = b[2 * K + 1]
			}
			this.ht(o, 0, 0, null, O);
			var j = q == 3 || q == 7 ? [20, 4, 6] : [20, 4, q < 3 ? q : q - 1];
			this.vE(o, null, Y, O, j);
			o.K = R
		}
	};
	B.qT.Zk = function (F, P) {
		for (var w = 0; w < P.length; w++)
			for (var o = 0; o < P[w].length; o++)
				if (F[w].indexOf(P[w][o]) == -1) F[w].push(P[w][o])
	};
	B.qT.prototype.enable = function (F, P, o, X, Y) {
		this.yH = o;
		this.JW = P;
		this.qJ = Y ? !0 : !1;
		this.IG(F);
		this.b9("default", P)
	};
	B.qT.prototype.disable = function (F, P, o, X) {
		this.UF(F)
	};
	B.qT.prototype.UF = function (F) {
		if (F == null) return;
		if (this.JE) {
			this.JE.clear(F);
			this.JE = null
		}
		if (F.v.bX) {
			F.v.bX = null;
			F.Vg = !0
		}
		if (F.v.zK) {
			F.v.zK = null;
			F.Vg = !0
		}
		if (F.v.wR[this.id]) {
			delete F.v.wR[this.id];
			F.Vg = !0
		}
		if (F.v.Tw.length != 0) {
			F.v.Tw = [];
			F.Vg = !0
		}
	};
	B.qT.prototype.RR = function (F, P, o, X) {
		if (o.Mp != this.id) return;
		this.IG(F)
	};
	B.qT.prototype.IG = function (F, P) {
		if (F == null) return;
		var o = this.fT;
		this.UF(F);
		if (!this.qJ) {
			var X;
			if (o.Vo || o.bX) X = H.D.pd(B.X.o7(F));
			if (o.Vo && !X.qr()) {
				this.JE = new i3([X.x, X.y, X.x + X.Z, X.y, X.x + X.Z, X.y + X.h, X.x, X.y + X.h], !0);
				this.JE.b4(F, this.yH)
			}
			if (o.bX) {
				var Y = F.Xb(F.p[0]),
					U = null,
					v = !1;
				if (Y == null) Y = new ev(0, 0, F.Z, F.h);
				F.v.bX = {
					od: [X],
					K3: []
				};
				var y = F.v.bX.K3,
					z = X.x + X.Z,
					s = X.y + X.h,
					t = X.x + Math.floor(X.Z / 2),
					d = X.y + Math.floor(X.h / 2);
				if (P) {
					var A = F.root.cp(new aH(Math.floor(P.x), Math.floor(P.y)));
					if (A) {
						U = H.D.pd(A.n.G_(F));
						if (U.dg(X)) {
							v = (U.Qh(X) || X.Qh(U)) && !X.Qn(U);
							if (!v) U = null
						}
					}
				}
				this.Xq(X, y);
				if (U != null) {
					F.v.bX.od.push(U);
					var Z = U.x + U.Z,
						D = U.y + U.h,
						q = U.x + Math.floor(U.Z / 2),
						R = U.y + Math.floor(U.h / 2);
					if (v) {
						var J = t,
							W = d;
						if (X.Qh(U)) {
							J = q;
							W = R
						}
						y.push(X.x, W, U.x, W);
						y.push(z, W, Z, W);
						y.push(J, X.y, J, U.y);
						y.push(J, s, J, D)
					} else {
						this.Xq(U, y);
						var p = s < U.y || D < X.y,
							n = z < U.x || Z < X.x;
						if (z < U.x) y.push(z, d, U.x, d);
						if (Z < X.x) y.push(Z, d, X.x, d);
						if (s < U.y) y.push(t, s, t, U.y);
						if (D < X.y) y.push(t, D, t, X.y);
						if (p && !n) {
							if (X.x < U.x) y.push(X.x, R, U.x, R);
							if (U.x < X.x) y.push(U.x, d, X.x, d)
						}
					}
				} else {
					if (X.y > Y.y) y.push(t, Y.y, t, X.y);
					if (s < Y.y + Y.h) y.push(t, s, t, Y.y + Y.h);
					if (X.x > Y.x) y.push(Y.x, d, X.x, d);
					if (z < Y.x + Y.Z) y.push(z, d, Y.x + Y.Z, d)
				}
				F.Vg = !0
			}
		}
		if (this.e == 2 && this.h6) {
			var b = this.Hs,
				Q = b[0],
				_ = (Q == 0 ? "X" : "Y") + ": " + H.t$.Rq(F.ei[Q][b[1]], F.NB, this.yH, Q == 0 ? F.Z : F.h, !0);
			B.An.fo(Math.round(this.yZ.x) + 10, Math.round(this.yZ.y) - 10, [_], F);
			F.Vg = !0
		}
		if (this.e == 3 && this.h6) {
			var L = H.D.z0(this.I2);
			F.v.wR[this.id] = {
				hK: L
			};
			F.Vg = !0
		}
	};
	B.qT.prototype.Xq = function (F, P) {
		var o = F.Z,
			X = F.h,
			Y = F.x + Math.floor(o * .2),
			y = F.y + Math.floor(X * .2);
		P.push(Y, F.y, Y, F.y + X);
		P.push(F.x, y, F.x + o, y)
	};
	B.qT.prototype.b9 = function (F, P) {
		var o = {
				e: i.B.Ik,
				rr: F
			},
			X = new l(i.E.L, !0);
		X.data = o;
		P.w(X)
	};
	B.qT.prototype.zf = function (F) {
		var P = this.E1.oe()[0],
			o = this.PJ,
			X = this.ge[P];
		this.BY(o, X)
	};
	B.qT.prototype._m = function (F) {
		var P = JSON.parse(JSON.stringify(this.yH.Np));
		P.Md = this.X7.oe()[0];
		var o = new l(i.E.L, !0);
		o.data = {
			e: i.B.Sl,
			S9: ge.HI,
			uB: P
		};
		this.JW.w(o)
	};
	B.qT.prototype.FT = function (F, P, o, X, Y) {
		if (this.h6) this.NL(F, P, o, X, Y);
		this.PJ = F;
		this.yH = o;
		this.JW = P;
		var y = F.a.PY(Y.x, Y.y),
			z;
		if (B.qT.l1(o, Y)) {
			z = this.X7
		} else {
			if (this.E1) this.E1.removeEventListener("select", this.zf);
			var s = [];
			F.root.cp(y, s);
			if (s.length == 0) return;
			var t = [];
			this.ge = s;
			for (var w = 0; w < s.length; w++) t.push({
				name: F.r[s[w]].getName()
			});
			z = this.E1 = new ba(t);
			z.$("select", this.zf, this)
		}
		z.parent = P;
		z.t();
		z.update(F, o);
		var d = new l(i.E.L, !0);
		d.data = {
			e: i.B.VX,
			Nc: z,
			x: Y.Bx + 2,
			y: Y.yG + 1
		};
		P.w(d)
	};
	B.qT.prototype.SV = function (F, P, o, X, Y) {
		return B.qT.l1(o, Y)
	};
	B.qT.prototype.R$ = function (F, P, o, X, Y) {
		this.yZ = Y;
		this.LV.Oh(Y.x, Y.y);
		this.mM = F.a.PY(Y.x, Y.y);
		this.P_ = new af(this.mM);
		this.wz(F, P, X, o, !0)
	};
	B.qT.l1 = function (F, P) {
		return F.bt && (0 < P.x && P.x < H.t$.Tn || 0 < P.y && P.y < H.t$.Tn)
	};
	B.qT.prototype.wz = function (F, P, o, X, Y, y) {
		var z, s = this.mM,
			t = !1;
		if (Y) {
			var d = X.IT && X.Np.ei;
			if (B.qT.l1(X, this.LV)) {
				z = JSON.parse(JSON.stringify(F.ei));
				if (this.LV.x < H.t$.Tn) F.ei[0].push(s.x);
				if (this.LV.y < H.t$.Tn) F.ei[1].push(s.y);
				if (!d) {
					var U = new l(i.E.L);
					if (!X.Np.ei) {
						U.data = {
							e: i.B.Sl,
							S9: ge.gb
						};
						P.w(U)
					}
					if (!X.IT) {
						U.data = {
							e: i.B.Sl,
							S9: ge.Kw
						};
						P.w(U)
					}
					d = !0
				}
			}
			var v = this.X3(F, s);
			if (d && v) {
				this.e = 2;
				this.r2 = z ? z : JSON.parse(JSON.stringify(F.ei));
				this.Hs = v;
				this.h6 = !0;
				this.Qx = B.X.o7(F);
				return
			}
			if (F.oD.length != 0) {
				this.e = 4;
				this.Qx = F.Yq[F.oD[0]].rect.clone();
				this.h6 = !0;
				return
			}
			if (this.JE && this.JE.Eb(s, F.a.F, !0) != null) {
				var U = new l(i.E.L);
				U.data = {
					e: i.B.MR,
					Q: B.DV
				};
				P.w(U);
				var A = new l(i.E.H);
				A.Q = B.DV;
				A.data = {
					e: "doMouseDown",
					yZ: this.LV
				};
				P.w(A);
				return
			}
			if (F.K && F.K.rect.oz(s)) {
				var Z = Math.round(s.x),
					D = Math.round(s.y),
					q = F.K.rect;
				t = F.K.channel[(D - q.y) * q.Z + Z - q.x] > 128
			}
			if (!t && (!this.qJ && this.fT.qc || this.qJ && this.fT.qc && (o.s(G.cm) || F.p.length < 2))) {
				var R = this.a49(F, s, o);
				if (!R) {
					F.p = [];
					F.mb = null;
					F.Vf = F.mO = !0;
					this.e = 3;
					this.I2 = new ev;
					this.h6 = !0;
					return
				}
			}
			if (o.s(G.ze) && !t) {
				var A = new l(i.E.H);
				A.Q = B.xC;
				A.data = {
					e: h.xm,
					akZ: !0
				};
				P.w(A)
			}
		}
		if (F.oD.length != 0) {
			this.e = 4;
			this.Qx = F.Yq[F.oD[0]].rect.clone();
			this.h6 = !0;
			return
		}
		this.Hs = F.JU(y == null, y, null, !0);
		for (var w = 0; w < this.Hs.length; w++) {
			var J = F.r[this.Hs[w]];
			if (J.k6(2) || J.k6(31)) {
				alert(h9.get([6, 57, 0]));
				return
			}
		}
		this.zF = B.qT.a9C(F, this.Hs);
		this.e = 0;
		if (F.K && (!Y || t) && F.p.length == 1 && F.FD(!1)) {
			if (!F.mx()) {
				this.h6 = !1;
				return
			}
			var W = F.r[F.p[0]],
				p = o.s(G.ze);
			this.e = 1;
			var n = F.history[F.xG];
			if (n.Q == this && n.data.e == 1 && n.data.n == F.p[0] && W.kB == W.rD.kB && !p) {
				this.M8 = n
			} else {
				var b = W.rD,
					Q = !1,
					_;
				if (!W.Je(F, F.K) || p) {
					Q = !0;
					W.WC(F, F.K, p)
				}
				if (W.rD.kB <= 0) {
					_ = H.R(W.rD.zU.length >> 2);
					H.E4(W.rD.zU, _, 3)
				} else _ = H.clone(F.K.channel);
				var L = {
					rect: W.rD.RL.clone(),
					channel: _
				};
				this.M8 = new bV(p ? [12, 53] : [12, 54], this);
				this.M8.data = {
					e: 1,
					n: F.p[0],
					rD: W.rD,
					vg: b,
					o3: Q,
					la: F.K,
					Od: L,
					xA: new aH(0, 0)
				};
				F.TX(this.M8);
				F.K = L;
				F.Es = !0
			}
		}
		this.h6 = !0;
		this.Qx = B.X.o7(F)
	};
	B.qT.prototype.a49 = function (F, P, o) {
		var X = F.root.cp(new aH(Math.floor(P.x), Math.floor(P.y)));
		if (X) {
			if (X.n.add.vmsk) F.Vg = !0;
			var Y = F.r.indexOf(X.n);
			if (o.s(G.cm)) {
				var y = F.p.indexOf(Y);
				if (y == -1) F.p.push(Y);
				else if (F.p.length > 1) F.p.splice(y, 1)
			} else if (F.p.indexOf(Y) == -1) {
				this.BY(F, Y)
			}
		}
		return X != null
	};
	B.qT.prototype.BY = function (F, P) {
		F.r[P].kB = 0;
		F.p = [P];
		F.mb = null;
		F.HP();
		F.Mv = !0;
		F.Vf = !0
	};
	B.qT.prototype.$E = function (F, P, o, X, Y) {
		this.yZ = Y;
		var y = F.a.PY(Y.x, Y.y),
			A, Z;
		if (this.P_ && this.e < 2) y = this.P_.ki(y, X);
		if (!this.h6) {
			if (o.IT && o.Np.ei) {
				var z = this.X3(F, y),
					s = "default";
				if (z) s = ["col-resize", "row-resize"][z[0]];
				else if (this.JE) {
					var t = this.JE.Eb(y, F.a.F);
					if (t) s = t
				}
				this.b9(s, P)
			}
			this.IG(F, y);
			return
		}
		var d = this.mM,
			U = Math.round(y.x - d.x) - this.ZI.x,
			v = Math.round(y.y - d.y) - this.ZI.y;
		if (this.Qx) {
			if (this.e == 2) {
				y = B.qT.aE(F, y, o, [!1, F.K ? F.K.rect : this.Qx, !0])
			} else {
				Z = this.Qx.clone();
				Z.offset(this.ZI.x + U, this.ZI.y + v);
				A = B.qT.hx(F, Z, o);
				U += Math.round(A[0]);
				v += Math.round(A[1])
			}
		}
		this.ZI.x += U;
		this.ZI.y += v;
		this.ht(F, U, v, y, null, X.s(G.cm));
		this.IG(F, y);
		if (A) B.qT.rz(F, Z, A)
	};
	B.qT.prototype.X3 = function (F, P) {
		P = [P.x, P.y];
		for (var w = 0; w < 2; w++)
			for (var o = 0; o < F.ei[w].length; o++)
				if (Math.abs(F.ei[w][o] - P[w]) * F.a.F < 4) return [w, o];
		return null
	};
	B.qT.prototype.ht = function (F, P, o, X, z, s) {
		if (this.e == 0) {
			if (z) B.qT.g2(F, this.Hs, this.zF, z);
			else B.qT.IR(F, this.Hs, this.zF, P, o)
		} else if (this.e == 1) {
			var t = this.M8.data;
			t.xA.offset(P, o);
			B.qT.EL(F, t.n, P, o)
		} else if (this.e == 2) {
			var d = 1e-5;
			if (s) d = F.a.F <= 1 ? 10 : 1;
			else if (F.a.F <= 1) d = 1;
			var U = d * Math.round(X.x / d),
				v = d * Math.round(X.y / d),
				A = [U, v],
				Z = this.Hs;
			F.ei[Z[0]][Z[1]] = A[Z[0]]
		} else if (this.e == 3) {
			var D = this.mM,
				q = H.D.YI([D.x, D.y, X.x, X.y]);
			this.I2 = q;
			var R = [];
			F.root.k$(q, R);
			if (JSON.stringify(F.p) != JSON.stringify(R)) {
				F.p = R;
				F.Vf = F.mO = !0
			}
		} else if (this.e == 4) {
			for (var w = 0; w < F.oD.length; w++) F.Yq[F.oD[w]].rect.offset(P, o);
			F.Vg = !0
		}
	};
	B.qT.EL = function (F, P, o, X) {
		var z = F.r[P];
		F.K.rect.offset(o, X);
		z.CH(F, o, X, F.K);
		F.Es = !0;
		F.A()
	};
	B.qT.prototype.NL = function (F, P, o, X, Y) {
		this.vE(F, Y, o);
		this.IG(F);
		if (Date.now() - this.Gn < 300) {
			var y = B.aq.aj(F, F.a.PY(Y.x, Y.y));
			if (y != -1) {
				var z = new l(i.E.H, !0);
				z.Q = B.OX;
				z.data = {
					e: "editCurr",
					z3: y
				};
				P.w(z)
			}
		}
		this.Gn = Date.now()
	};
	B.qT.prototype.vE = function (F, P, o, X, Y) {
		if (!this.h6) return;
		this.h6 = !1;
		if (this.e == 0) {
			if (X) {
				this.MT(F, null, X, Y)
			} else {
				if (this.ZI.x == 0 && this.ZI.y == 0) return;
				this.MT(F, this.ZI.clone())
			}
			F.Ob = !0
		} else if (this.e == 2) {
			var y = 0;
			P = [P.x, P.y];
			var z = this.Hs,
				cS = this.r2[0].length + this.r2[1].length,
				s = F.ei[0].length + F.ei[1].length;
			if (o.bt && P[z[0]] < H.t$.Tn) {
				F.ei[z[0]].splice(z[1], 1);
				y = 1;
				if (cS == s - 1) return
			}
			if (cS < s) y = 2;
			var t = new bV([
				[23, 2],
				[23, 3],
				[23, 4]
			][y], this);
			t.data = {
				e: 2,
				r2: this.r2,
				lZ: JSON.parse(JSON.stringify(F.ei))
			};
			F.TX(t)
		} else if (this.e == 4) {
			var t = new bV([12, 54], this);
			t.data = {
				e: 4,
				p: F.oD.slice(0),
				c: this.ZI.clone()
			};
			F.TX(t)
		}
		this.ZI.Oh(0, 0)
	};
	B.qT.prototype.gU = function (F, P, o, X) {
		var Y = X.Ef();
		if (F != null && (Y.x != 0 || Y.y != 0)) {
			this.ZI.Oh(Y.x, Y.y);
			this.wz(F, P, X, o, !1);
			if (!this.h6) return;
			this.ht(F, Y.x, Y.y);
			this.vE(F, null, o);
			this.IG(F)
		}
		var y = X.s(G.Bl);
		if (!this.qJ && this.hD != y) {
			if (y) {
				this.nB = this.fT.qc;
				this.fT.qc = !0
			} else {
				this.fT.qc = this.nB
			}
			this.hD = y;
			var z = new l(i.E.L, !0);
			z.data = {
				e: i.B.Zo,
				Q: this.id,
				iF: this.fT
			};
			P.w(z)
		}
	};
	B.qT.prototype.tO = function (F, P) {
		if (F.e == 0) B.qT.g2(P, F.p, F.kq, F.WU, !0);
		else if (F.e == 2) {
			P.ei = JSON.parse(JSON.stringify(F.r2));
			P.Vg = !0
		} else if (F.e == 4) {
			for (var w = 0; w < F.p.length; w++) P.Yq[F.p[w]].rect.offset(-F.c.x, -F.c.y);
			P.Vg = !0
		} else {
			var o = P.r[F.n];
			if (F.o3) {
				o.Z9(P, F.vg);
				P.K = F.la;
				P.Es = !0;
				P.A();
				o.A()
			} else {
				B.qT.EL(P, F.n, -F.xA.x, -F.xA.y)
			}
		}
	};
	B.qT.prototype.oF = function (F, P) {
		if (F.e == 0) B.qT.g2(P, F.p, F.kq, F.WU);
		else if (F.e == 2) {
			P.ei = JSON.parse(JSON.stringify(F.lZ));
			P.Vg = !0
		} else if (F.e == 4) {
			for (var w = 0; w < F.p.length; w++) P.Yq[F.p[w]].rect.offset(F.c.x, F.c.y);
			P.Vg = !0
		} else {
			var o = P.r[F.n];
			if (F.o3) {
				o.rD = F.rD;
				P.K = F.Od;
				B.qT.EL(P, F.n, 0, 0);
				o.A()
			} else {
				B.qT.EL(P, F.n, F.xA.x, F.xA.y)
			}
		}
	};
	B.qT.prototype.MT = function (F, P, o, X) {
		if (o) {
			var Y = !0;
			for (var w = 0; w < o.length; w++)
				if (o[w] != 0) Y = !1;
			if (Y) return
		}
		var y = F.history[F.xG];
		if (y.data && y.Q == this && y.data.e == 0 && o == null && JSON.stringify(y.data.p) == JSON.stringify(this.Hs) && JSON.stringify(y.data.kq) == JSON.stringify(this.zF)) {
			var z = y.data.WU,
				s = y.data.afL.w1.T.v;
			s.Hrzn.v.val += P.x;
			s.Vrtc.v.val += P.y;
			for (var w = 0; w < z.length; w += 2) {
				z[w] += P.x;
				z[w + 1] += P.y
			}
		} else {
			if (P == null) P = new aH(o[0], o[1]);
			var t = {
					Bm: "move",
					w1: {
						classID: "null",
						null: gY.Pe("Lyr", !0),
						T: {
							t: "Objc",
							v: {
								classID: "Ofst",
								Hrzn: {
									t: "UntF",
									v: {
										type: "#Rlt",
										val: P.x
									}
								},
								Vrtc: {
									t: "UntF",
									v: {
										type: "#Rlt",
										val: P.y
									}
								}
							}
						}
					}
				},
				d = new bV(X ? X : [12, 54], this);
			if (o) d.data = {
				e: 0,
				p: this.Hs,
				kq: this.zF,
				WU: o
			};
			else d.data = {
				e: 0,
				p: this.Hs,
				kq: this.zF,
				WU: B.qT.wb(this.Hs, P.x, P.y)
			};
			d.data.afL = t;
			F.TX(d);
			this.track(t)
		}
	};
	B.qT.wb = function (F, P, o) {
		var X = [];
		for (var w = 0; w < F.length; w++) X.push(P, o);
		return X
	};
	B.qT.IR = function (F, P, o, X, y) {
		B.qT.g2(F, P, o, B.qT.wb(P, X, y))
	};
	B.qT.g2 = function (F, P, o, X, Y) {
		if (P.length == 0) return;
		if (o == null) {
			o = [];
			for (var w = 0; w < P.length; w++) {
				o.push(F.r[P[w]].Ys(F, !0))
			}
		}
		var y = new ev,
			z = new ev(0, 0, F.Z, F.h);
		for (var w = 0; w < P.length; w++) {
			var s = X[2 * w],
				t = X[2 * w + 1];
			if (Y) {
				s = -s;
				t = -t
			}
			var d = F.r[P[w]],
				U = o[w];
			if (d.add.fxrp && (U.indexOf(0) != -1 || d.ws())) d.add.fxrp.offset(s, t);
			for (var v = 0; v < U.length; v++) {
				var A = U[v];
				if (A == 0) {
					d.rect.offset(s, t);
					if (d.gO() && d.yg(F)) d.yg(F).rect.offset(s, t);
					if (d.add.artb) {
						var Z = d.sc();
						Z.offset(s, t);
						d.BE(Z)
					}
					if (d.add.TySh) {
						d.add.TySh.O.translate(s, t);
						if (d.add.TySh.add) {
							d.add.TySh.add.vmsk.offset(s, t)
						}
					}
					if (d.add.SoLd) {
						var D = new cu(1, 0, 0, 1, s, t),
							q = d.add.SoLd,
							R = B.X.AC(q.Trnf),
							J = B.X.AC(q.nonAffineTransform);
						H.D.O(R, D, R);
						H.D.O(J, D, J);
						q.Trnf = B.X.uE(R);
						q.nonAffineTransform = B.X.uE(J)
					}
				}
				if (A == 1) d.jk().rect.offset(s, t);
				if (A == 2) {
					d.add.vmsk.offset(s, t);
					if (d.add.vogk) H.P$.O(d.add.vogk, [1, 0, s, 0, 1, t, 0, 0], [])
				}
				if (A == 3) {
					d.yg(F).g.rect.offset(s, t);
					if (U.length == 1) d.A()
				}
			}
			if (U.length > 0) {
				var W = d.add.GdFl;
				if (W == null) W = d.add.PtFl;
				if (d.ws() && !d.UW() && d.add.vmsk != null && H.V.vq(d.add.vmsk.b) && d.add.vmsk.au == 255 && (W == null || W.Algn && W.Algn.v)) {
					d.rect.offset(s, t)
				} else d._V(F);
				var p = F.root.Ch(d.G_(F), F, P[w]);
				y = y.s7(p);
				p.offset(-s, -t);
				y = y.s7(p);
				if (d.add.SoCo || d.add.GdFl || d.add.PtFl || b_.get(d.add) != null) y = y.s7(z);
				d.pc()
			}
		}
		F.A(y)
	};
	B.qT.a9C = function (F, P) {
		var o = [];
		for (var w = 0; w < P.length; w++) {
			var X = F.r[P[w]];
			o.push(X.Ys(F))
		}
		return o
	};
	B.qT.rz = function (F, P, o) {
		var X = F.v.zK = {
				d: [],
				W: []
			},
			Y = P.x + o[0],
			y = P.y + o[1];
		if (o[2] != 1e9) {
			X.W.push("M", "L");
			X.d.push(o[2], y, o[2], y + P.h)
		}
		if (o[3] != 1e9) {
			X.W.push("M", "L");
			X.d.push(Y, o[3], Y + P.Z, o[3])
		}
		F.Vg = !0
	};
	B.qT.aE = function (F, P, o, X) {
		var Y = B.qT.zk(F, [
			[P.x],
			[P.y]
		], o, X);
		return new aH(P.x + Y[0], P.y + Y[1])
	};
	B.qT.hx = function (F, P, o, X, Y) {
		var y = Y == !0 ? 0 : 1,
			z = B.qT.zk(F, [
				[P.x, P.x + (P.Z >>> y), P.x + P.Z],
				[P.y, P.y + (P.h >>> y), P.y + P.h]
			], o, X);
		return z
	};
	B.qT.zk = function (F, P, o, X) {
		if (X == null) X = [!0, null, !0];
		var Y = [0, 0, 1e9, 1e9];
		if (!o.dl) return Y;
		var y = JSON.parse(JSON.stringify(P));
		for (var z = 0; z < 2; z++) {
			var s = 1e9,
				t = P[z],
				d = 0;
			for (var U = 0; U < t.length; U++) {
				var v = B.qT.a6E(F, t[U], y[1 - z][U], z, o, X);
				if (v != 1e9) y[z][U] = v;
				if (v != 1e9 && Math.abs(v - t[U]) < Math.abs(s)) {
					s = v - t[U];
					d = v
				}
			}
			if (s != 1e9) {
				Y[z] = s;
				Y[z + 2] = d
			}
		}
		return Y
	};
	B.qT.a6E = function (F, P, o, X, Y, y) {
		var z = 1e9,
			s = Y.a4,
			t = Y.Np;
		if (y[0] && s[0] && t.ei && Y.IT) {
			var d = F.ei[X];
			for (var w = 0; w < d.length; w++)
				if (Math.abs(d[w] - P) < Math.abs(z - P)) z = d[w]
		}
		if (s[1] && t.aG && Y.IT) {
			var U = Math.round(H.t$.Cc(t.vZ, F, t.pO));
			if (X == 1 && t.QI == 1) {
				var v = o * .5 * Math.sqrt(4 / 3),
					A;
				U *= Math.sqrt(4 / 3);
				A = Math.round((P - v) / U) * U + v;
				if (Math.abs(A - P) < Math.abs(z - P)) z = A;
				A = Math.round((P + v) / U) * U - v;
				if (Math.abs(A - P) < Math.abs(z - P)) z = A
			} else {
				var A = Math.round(P / U) * U;
				if (Math.abs(A - P) < Math.abs(z - P)) z = A
			}
		}
		var Z = F.P0;
		if (s[3] && t.P0 && Y.IT && Z.length != 0) {
			for (var w = 0; w < Z.length; w++) {
				if (!y[2] && F.xR.indexOf(w) != -1) continue;
				var D = B.e9.rF(Z, w);
				for (var q = 0; q < 3; q += 2)
					if (D[q + X] != P && Math.abs(D[q + X] - P) < Math.abs(z - P)) z = D[q + X]
			}
		}
		if (y[1]) {
			var R = y[1],
				J = R.Z,
				W = R.h,
				p = [R.x, R.y, R.x + (J >>> 1), R.y + (W >>> 1), R.x + J, R.y + W];
			for (var w = 0; w < 6; w += 2)
				if (Math.abs(p[w + X] - P) < Math.abs(z - P)) z = p[w + X]
		}
		if (s[4]) {
			var J = F.Z,
				W = F.h,
				p = [0, 0, J >>> 1, W >>> 1, J, W];
			for (var w = 0; w < 6; w += 2)
				if (Math.abs(p[w + X] - P) < Math.abs(z - P)) z = p[w + X]
		}
		var n = Math.abs(z - P) <= 4 * i.J() / F.a.F ? z : 1e9;
		return n
	};
	B.C6 = function () {
		B.hl.call(this, [10, 12], B.a2Z, "tools/mwand")
	};
	B.C6.prototype = new B.hl;
	B.C6.prototype.Qf = function (F, P, o, X) {
		this.finish(F, P, o, X)
	};
	B.C6.prototype.getSelection = function (F, P, o, X) {
		var Y = this.H9,
			y = B.hl.aaY(new aH(Math.floor(Y.x), Math.floor(Y.y)), this.fT.dU);
		return y
	};
	B.C6.tU = function (F, P, o) {
		if (F.p.length != 1) {
			alert("More than one layer selected.");
			return null
		}
		var X = F.r[F.p[0]],
			Y;
		if (X.add.lsct != null && X.add.lsct != gr.eZ) {
			alert("No layer selected.");
			return null
		}
		if (P.x < 0 || P.x > F.Z || P.y < 0 || P.y > F.h) return null;
		var y = new ev(0, 0, F.Z, F.h),
			z = X.kB <= 0 ? null : X.kB == 1 ? X.jk() : X.yg(F).g;
		if (z == null && y.Qn(X.rect)) Y = X.buffer;
		else {
			Y = H.R(y.M() * 4);
			if (z == null) H.BP(X.buffer, X.rect, Y, y);
			else B.gn.Jy(z.channel, z.rect, z.color, Y, y)
		}
		var s = B.C6.XF(Y, y, P, null, o),
			t = H.xw(s, y),
			d = H.R(t.M());
		H.Lj(s, y, d, t);
		return {
			rect: t,
			channel: d
		}
	};
	B.C6.$i = function (F, P, o) {
		var X = P.Z,
			y = 0,
			z = 0,
			s = 0,
			t = 0;
		F = new Uint32Array(F.buffer);
		var Y = [],
			d = o.length;
		for (var w = 0; w < d; w++) {
			var U = o[w],
				v = Math.round(U.x - .5 - P.x),
				A = Math.round(U.y - .5 - P.y);
			if (!P.oz(U)) v = A = 0;
			var Z = A * X + v,
				D = F[Z];
			Y.push([D & 255, D >> 8 & 255, D >> 16 & 255, D >>> 24])
		}
		return Y
	};
	B.C6.XF = function (F, P, o, X, Y) {
		F = new Uint32Array(F.buffer);
		var y = P.Z,
			z = P.h,
			s = y * z;
		if (X == null) X = B.C6.$i(F, P, [o]);
		var t = Math.round(o.x - .5 - P.x),
			d = Math.round(o.y - .5 - P.y),
			U = d * y + t,
			v = Date.now(),
			A = H.R(y * z),
			Z = Y[0],
			D = 1 / Z,
			q = Y[1] && Z > 0 ? 255 : 0;
		if (Y[2]) {
			var R = H.R(A.length),
				J = new Uint32Array(s),
				W = 1;
			J[0] = t << 16 | d;
			R[U] = 1;
			while (W > 0) {
				var p = J[W - 1];
				W--;
				var n = p >>> 16,
					b = p & 65535,
					w = b * y + n,
					Q = B.C6.uD(F[w], X);
				if (Q > Z) {
					var _ = q * (1 - Math.max(0, Math.min(1, (Q - Z) * D)));
					A[w] = ~~_
				} else {
					A[w] = 255;
					if (b != z - 1 && R[w + y] == 0) {
						J[W++] = n << 16 | b + 1;
						R[w + y] = 1
					}
					if (b != 0 && R[w - y] == 0) {
						J[W++] = n << 16 | b - 1;
						R[w - y] = 1
					}
					if (n != y - 1 && R[w + 1] == 0) {
						J[W++] = n + 1 << 16 | b;
						R[w + 1] = 1
					}
					if (n != 0 && R[w - 1] == 0) {
						J[W++] = n - 1 << 16 | b;
						R[w - 1] = 1
					}
				}
			}
		} else {
			for (var w = 0; w < s; w++) {
				var Q = B.C6.uD(F[w], X);
				if (Q <= Z) A[w] = 255
			}
			for (var b = 0; b < z; b++)
				for (var n = 0; n < y; n++) {
					var w = b * y + n;
					if (A[w] == 0 && (n > 0 && (A[w - 1] == 255 || b > 0 && A[w - y - 1] == 255 || b < z - 1 && A[w + y - 1] == 255) || n < y - 1 && (A[w + 1] == 255 || b > 0 && A[w - y + 1] == 255 || b < z - 1 && A[w + y + 1] == 255) || b > 0 && A[w - y] == 255 || b < z - 1 && A[w + y] == 255)) {
						var Q = B.C6.uD(F[w], X),
							_ = q * (1 - Math.max(0, Math.min(1, (Q - Z) * D)));
						A[w] = ~~_
					}
				}
		}
		return A
	};
	B.C6.uD = function (F, P) {
		var o = P.length,
			X = B.C6.Sh(F, P[0]),
			w = 1;
		while (w != o) {
			X = Math.min(X, B.C6.Sh(F, P[w]));
			w++
		}
		return X
	};
	B.C6.Sh = function (F, P) {
		var o = F & 255,
			X = F >>> 8 & 255,
			Y = F >>> 16 & 255,
			y = F >>> 24 & 255;
		if (P[3] == 0) return y < 5 ? 0 : 255;
		var z = Math.max(Math.abs(o - P[0]), Math.max(Math.abs(X - P[1]), Math.abs(Y - P[2])));
		return y == 0 ? 255 : z
	};
	B.Eq = function () {
		B.gn.call(this, [10, 26], B.cs, "tools/patch");
		this.BV = null;
		this.ic = null;
		this.c = null;
		this.tZ = null;
		this._U = new aH;
		this.Dd = null
	};
	B.Eq.prototype = new B.gn;
	B.Eq.prototype.R$ = function (F, P, o, X, Y) {
		var y = F.a.PY(Y.x, Y.y);
		if (F.K && H.cp(y, F.K.channel, F.K.rect)) {
			var z = new ev(0, 0, F.Z, F.h),
				s = z.$X(F.K.rect);
			if (!F.FD() || s.qr()) return;
			if (!s.Qn(F.K.rect)) {
				var t = H.R(s.M());
				H.Lj(F.K.channel, F.K.rect, t, s);
				F.K = {
					channel: t,
					rect: s
				}
			}
			this.qO(F);
			this.Rc(F);
			this.tZ = y;
			this._U = new aH(y.x - F.K.rect.x, y.y - F.K.rect.y);
			this.Dd = H.R(F.K.rect.M() * 4);
			H.set(this.Dd, 4294967295);
			if (this.fT.patch == 1) {
				var d = F.r[F.p[0]];
				d.WC(F, F.K, !0);
				if (d.rD == null) this.tZ = null
			}
		} else {
			this.ic = {
				d: [y.x, y.y],
				W: ["M"]
			};
			this.BV = y
		}
	};
	B.Eq.prototype.$E = function (F, P, o, X, Y) {
		var y = F.a.PY(Y.x, Y.y);
		if (this.tZ) {
			if (this.fT.patch == 1) {
				var z = F.r[F.p[0]].rD,
					s = y.x - this._U.x,
					t = y.y - this._U.y;
				B.qT.EL(F, F.p[0], Math.round(s - z.RL.x), Math.round(t - z.RL.y))
			} else this.W7(F, y, "clone")
		}
		if (this.BV) {
			this.ic.W.push("L");
			this.ic.d.push(y.x, y.y);
			this.BV = y;
			F.v.hK = this.ic;
			F.Vg = !0
		}
	};
	B.Eq.prototype.NL = function (F, P, o, X, Y) {
		var y = F.a.PY(Y.x, Y.y);
		if (this.tZ) {
			this.W7(F, y, "heal");
			this.finish(F, F.K.rect);
			this.tZ = null
		}
		if (this.BV) {
			var z = B.hl.Le(this.fT.setop, X.s(G.cm), X.s(G.ze)),
				s = new l(i.E.QJ, !0);
			if (this.ic.d.length <= 4) s.data = B.hl.cA();
			else s.data = B.hl.mT(this.ic.d, z);
			P.w(s);
			this.BV = null;
			F.v.hK = null;
			F.Vg = !0
		}
	};
	B.Eq.prototype.vh = function () {
		return this.c
	};
	B.Eq.prototype.zT = function (F, P, o, X, Y) {
		B.gn.prototype.zT.call(this, F, P, o, X, Y);
		this.b9(Y, X)
	};
	B.Eq.prototype.b9 = function (F, P) {
		var o = "auto;";
		if (P != null && P.s(G.cm) && !P.s(G.ze) || this.fT.setop == "union") o = "copy";
		var X = new l(i.E.L, !0);
		X.data = {
			e: i.B.Ik,
			rr: o
		};
		if (this.caller) this.caller.w(X)
	};
	B.Eq.prototype.W7 = function (F, P, o) {
		var X = new aH(Math.round(this.tZ.x - P.x), Math.round(this.tZ.y - P.y));
		if (this.fT.patch == 1) X.Oh(-X.x, -X.y);
		this.c = X;
		this.vM(F, o, this.Dd, F.K.rect, F.K.rect);
		this.A(F, F.K.rect)
	};
	B.Qb = function () {
		B.gn.call(this, [10, 13], B.a82, "tools/pbucket")
	};
	B.Qb.prototype = new B.gn;
	B.Qb.prototype.enable = function (F, P, o, X) {
		var Y = new l(i.E.L, !0);
		Y.data = {
			e: i.B.Ik,
			rr: "default"
		};
		P.w(Y)
	};
	B.Qb.prototype.AK = function (F, P) {};
	B.Qb.prototype.NL = function (F, P, o, X, Y) {
		if (!F.FD()) return;
		var y = F.a.PY(Y.x, Y.y),
			z = B.C6.tU(F, y, this.fT.wconf);
		if (z == null) return;
		var s = H.R(z.rect.M() * 4);
		H.XB(s, (o.GY & 255) << 16 | (o.GY >> 8 & 255) << 8 | (o.GY >> 16 & 255) << 0);
		H.Oy(z.channel, s, 3);
		this.qO(F);
		this.vM(F, "draw", s, z.rect, z.rect);
		this.A(F, z.rect);
		this.finish(F, z.rect)
	};
	B.BK = function () {
		B.hl.call(this, [10, 14], B.a6q, "tools/plasso");
		this.qy = "crosshair";
		this.Ic = [];
		this._M = null;
		this.ic = null;
		this.ak2 = 0
	};
	B.BK.prototype = new B.hl;
	B.BK.prototype.disable = function (F, P, o, X) {
		this.bJ(F)
	};
	B.BK.prototype.Qf = function (F, P, o, X) {
		this.Ic = [G.Yk, G.Yp]
	};
	B.BK.prototype.aU = function (F) {
		return this.Ic.indexOf(F) != -1
	};
	B.BK.prototype.Vc = function (F) {
		return this.ic != null
	};
	B.BK.prototype.II = function () {
		return this.ic != null
	};
	B.BK.prototype.go = function () {
		return this.ic != null
	};
	B.BK.prototype.Ap = function (F, P, o, X) {
		if (this.ic == null) return;
		var Y = this.ic,
			y = Y.d,
			z = y.length - 2,
			s = this.H9;
		if (this.y0 > 1 && o.s(G.ze) && X.Ku) {
			y.push(0, 0);
			Y.W.push("L");
			z += 2
		} else if (o.s(G.cm)) s = B.T7.M$(new aH(y[z - 2], y[z - 1]), s);
		y[z] = s.x;
		y[z + 1] = s.y;
		F.v.hK = Y;
		F.Vg = !0
	};
	B.BK.prototype.sj = function (F, P, o, X) {
		var Y = Date.now();
		if (this.ic == null) this.ic = {
			d: [this.H9.x, this.H9.y, this.H9.x, this.H9.y],
			W: ["M", "L"]
		};
		else {
			this.Ap(F, P, o, X);
			if (Y - this.ak2 < 250 || aH.Yj(this.H9, new aH(this.ic.d[0], this.ic.d[1])) < 5 * i.J() / F.a.F) {
				this._M = this.ic;
				this.finish(F, P, o, X);
				this.bJ(F);
				return
			}
			this.ic.W.push("L");
			this.ic.d.push(this.H9.x, this.H9.y)
		}
		this.ak2 = Y;
		F.v.hK = this.ic
	};
	B.BK.prototype.bJ = function (F) {
		this.ic = null;
		this.Ic = [];
		if (F != null) {
			F.v.hK = null;
			F.Vg = !0
		}
	};
	B.BK.prototype.gU = function (F, P, o, X) {
		B.hl.prototype.gU.call(this, F, P, o, X);
		if (X.s(G.yc) && this.ic == null && this._M && F.K != null) {
			var Y = new l(i.E.H);
			Y.Q = B.Kb;
			Y.data = {
				e: "h_stepbck"
			};
			P.w(Y);
			this.Qf(F, o, X, null);
			this.ic = this._M;
			return
		}
		if (this.ic == null) return;
		if (X.s(G.Yk) || X.s(G.Yp)) {
			this.ic.d.pop();
			this.ic.d.pop();
			this.ic.W.pop();
			this.Ap(F, o, X)
		}
		if (X.s(G.Xr)) {
			if (this.ic.d.length > 4) {
				this._M = this.ic;
				this.finish(F, o, X)
			}
			this.ic = null
		}
		if (X.s(G.yc)) {
			this.ic = null
		}
		F.v.hK = this.ic;
		F.Vg = !0
	};
	B.BK.prototype.getSelection = function (F, P, o, X) {
		return B.hl.mT(this.ic.d)
	};
	B.zZ = function () {
		B.hl.call(this, [10, 10], B.a9j, "tools/mlasso");
		this.qy = "crosshair";
		this.Ic = [];
		this.b = [];
		this.LT = [];
		this.V8 = [];
		this.Ue = null;
		this.i1 = null;
		this.I$ = null;
		this.Gn = 0;
		this.y9 = 0
	};
	B.zZ.prototype = new B.hl;
	B.zZ.prototype.disable = function (F, P, o, X) {
		this.clear(F)
	};
	B.zZ.prototype.Vc = function (F) {
		return this.b.length != 0
	};
	B.zZ.prototype.go = function () {
		return this.b.length != 0
	};
	B.zZ.prototype.aU = function (F) {
		return this.Ic.indexOf(F) != -1
	};
	B.zZ.prototype.Qf = function (F, P, o, X) {
		this.Ic = [G.Yk, G.Yp];
		var Y = this.h2(this.k7, F);
		if (this.b.length != 0 && (aH.Yj(Y, this.b[0]) < 4 * i.J() / F.a.F || Date.now() - this.Gn < 300)) {
			this.uy(F, this.b[0]);
			this.finish(F, P, o);
			this.clear(F);
			return
		}
		this.Gn = Date.now();
		if (this.b.length != 0) Y = this.ra(Y, F);
		else {
			var y = F.Z,
				z = F.h,
				s = H.R(y * z),
				t = F.lD(),
				d = y * z * 4;
			for (var w = 0; w < d; w += 4) s[w >>> 2] = ~~(.5 + H.ou(t[w], t[w + 1], t[w + 2]) * (t[w + 3] * (1 / 255)));
			this.Ue = H.Pn.akw(s, y, z);
			this.I$ = new Uint16Array(s.length)
		}
		this.uy(F, Y);
		this.y9 = o.s(G.ze) ? 1 : 0;
		this.U5(F)
	};
	B.zZ.prototype.uy = function (F, P) {
		var o = this.b;
		this.LT[o.length] = this.V8.length;
		if (o.length != 0) {
			H.Pn.T9(this.i1, P.y * F.Z + P.x);
			var X = this.bO(F, P);
			X.reverse();
			var Y = B.zZ.Ew(F, X);
			this.V8 = this.V8.concat(Y)
		}
		o.push(P);
		this.n7(F)
	};
	B.zZ.prototype.n7 = function (F) {
		var P = this.b[this.b.length - 1],
			o = P.y * F.Z + P.x;
		this.i1 = H.Pn.ajf(this.Ue.g8, this.Ue.lr, o);
		this.I$.fill(0)
	};
	B.zZ.prototype.h2 = function (F, P) {
		return new aH(Math.floor(Math.max(0, Math.min(P.Z - 1, F.x))), Math.floor(Math.max(0, Math.min(P.h - 1, F.y))))
	};
	B.zZ.prototype.clear = function (F) {
		this.V8 = [];
		this.b = [];
		this.LT = [];
		this.Ue = null;
		this.i1 = null;
		this.I$ = null;
		if (F != null) {
			F.v.hK = null;
			F.v.CL = [];
			F.Vg = !0
		}
		this.Ic = []
	};
	B.zZ.prototype.Ap = function (F, P, o, X) {
		var Y = this.b,
			y = Y.length;
		if (y == 0) return;
		var z = this.ra(this.h2(this.H9, F), F),
			s = this.bO(F, z);
		for (var w = 0; w < s.length; w++) {
			var t = s[w],
				d = new aH(t % F.Z, Math.floor(t / F.Z));
			if (this.I$[t] > 30 && aH.Yj(d, Y[y - 1]) > 20) {
				this.uy(F, d);
				return
			}
			this.I$[t]++
		}
		if (this.y9 == 1 && X.Ku) this.uy(F, z);
		this.U5(F)
	};
	B.zZ.prototype.U5 = function (F) {
		var P = this.b;
		if (P.length != 0) {
			var o = this.ra(this.h2(this.H9, F), F),
				X = this.bO(F, o);
			X.reverse();
			var Y = B.zZ.Ew(F, X),
				y = this.V8.concat(Y),
				z = F.v.hK = {
					d: y,
					W: ["M"]
				};
			for (var w = 2; w < y.length; w += 2) z.W.push("L")
		}
		F.v.CL = [];
		for (var w = 0; w < P.length; w++) F.v.CL.push(P[w].x + .5, P[w].y + .5);
		F.Vg = !0
	};
	B.zZ.prototype.sj = function (F, P, o, X) {};
	B.zZ.prototype.gU = function (F, P, o, X) {
		if (this.b.length == 0) return;
		if (X.s(G.Yk) || X.s(G.Yp)) {
			this.b.pop();
			this.V8 = this.V8.slice(0, this.LT[this.b.length]);
			this.LT.pop();
			if (this.b.length == 0) this.clear(F);
			else this.n7(F);
			this.U5(F)
		}
		if (X.s(G.Xr)) {
			var Y = this.h2(this.H9, F);
			this.uy(F, Y);
			this.finish(F, o, X);
			this.clear(F)
		}
		if (X.s(G.yc)) {
			this.clear(F)
		}
	};
	B.zZ.prototype.getSelection = function (F, P, o, X) {
		return B.hl.mT(this.V8)
	};
	B.zZ.prototype.bO = function (F, P) {
		var o = this.b[this.b.length - 1],
			X = o.y * F.Z + o.x,
			Y = P.y * F.Z + P.x;
		if (this.y9 == 1) return [Y, X];
		var y = [Y];
		while (Y != X) {
			Y = this.i1.fP[Y];
			y.push(Y);
			if (y.length > 5e3) {
				console.log(y);
				throw "e"
			}
		}
		return y
	};
	B.zZ.Ew = function (F, P) {
		var o = [],
			X = F.Z;
		for (var w = 0; w < P.length; w++) {
			var Y = P[w];
			o.push(Y % X + .5, Math.floor(Y / X) + .5)
		}
		return o
	};
	B.zZ.prototype.ra = function (F, P) {
		var o = P.Z,
			X = P.h,
			Y = F.clone(),
			z = 3;
		H.Pn.T9(this.i1, F.y * o + F.x);
		var y = this.i1.xy[F.y * o + F.x];
		for (var s = -z + 1; s < z; s++)
			for (var t = -z + 1; t < z; t++) {
				var d = F.x + t,
					U = F.y + s;
				if (d < 0 || d >= o || U < 0 || U >= X) continue;
				H.Pn.T9(this.i1, U * o + d);
				if (this.i1.xy[U * o + d] < y) Y.Oh(d, U)
			}
		return Y
	};
	B.X2 = function () {
		B.An.call(this, [10, 36], B.a4g, "tools/ruler");
		this.A2 = null;
		this.zV = null;
		this.C3 = null;
		this.oh = null
	};
	B.X2.prototype = new B.An;
	B.X2.prototype.Vc = function (F) {
		return F.Ku
	};
	B.X2.prototype.disable = function (F, P, o, X) {
		this.A2 = this.zV = null;
		if (F) this.IG(F)
	};
	B.X2.prototype.R$ = function (F, P, o, X, Y) {
		var y = F.a.F / i.J(),
			z = F.a.PY(Y.x, Y.y);
		z.x = Math.round(z.x);
		z.y = Math.round(z.y);
		var s = this.A2;
		if (s && aH.Yj(z, s[0]) * y < 6) this.zV = [0];
		else if (s && aH.Yj(z, s[1]) * y < 6) this.zV = [1];
		else if (s && B.X2.ajr(s[0], s[1], z) * y < 6 && Math.min(s[0].x, s[1].x) - 5 <= z.x && z.x <= Math.max(s[0].x, s[1].x) + 5 && Math.min(s[0].y, s[1].y) - 5 <= z.y && z.y <= Math.max(s[0].y, s[1].y) + 5) {
			this.zV = [0, 1];
			this.oh = [s[0].clone(), s[1].clone()];
			this.C3 = z
		} else {
			this.A2 = [z.clone(), z.clone()];
			this.zV = [1]
		}
	};
	B.X2.prototype.$E = function (F, P, o, X, Y) {
		if (this.zV == null) return;
		var y = this.A2,
			z = this.zV,
			s = F.a.PY(Y.x, Y.y);
		s.x = Math.round(s.x);
		s.y = Math.round(s.y);
		if (z.length == 2) {
			var t = s.x - this.C3.x,
				d = s.y - this.C3.y;
			y[0] = this.oh[0].clone();
			y[0].offset(t, d);
			y[1] = this.oh[1].clone();
			y[1].offset(t, d)
		} else {
			y[z[0]].Oh(s.x, s.y);
			if (X.s(G.cm)) {
				y[z[0]] = B.T7.M$(y[1 - z[0]], y[z[0]])
			}
		}
		this.IG(F);
		this.fF(P, i.E.L, {
			e: i.B.Zo,
			Q: this.id,
			aa3: y[0],
			sk: y[1]
		})
	};
	B.X2.prototype.NL = function (F, P, o, X, Y) {
		this.zV = null
	};
	B.X2.prototype.fF = function (F, P, o) {
		var X = new l(P, !0);
		X.data = o;
		F.w(X)
	};
	B.X2.prototype.IG = function (F) {
		var P = this.A2;
		if (P == null) {
			F.v.hK = null;
			F.v.CL = []
		} else {
			var o = [P[0].x, P[0].y, P[1].x, P[1].y];
			F.v.hK = {
				W: ["M", "L"],
				d: o
			};
			F.v.CL = o
		}
		F.Vg = !0
	};
	B.X2.ajr = function (F, P, o) {
		var X = P.x - F.x,
			y = P.y - F.y,
			z = Math.abs(y * o.x - X * o.y + P.x * F.y - P.y * F.x),
			s = Math.sqrt(X * X + y * y);
		return z / s
	};
	B.Vl = function () {
		B.gn.call(this, [10, 19], B.hW, "tools/sharpen");
		this.mo = "copy"
	};
	B.Vl.prototype = new B.gn;
	B.Vl.prototype.R$ = function (F, P, o, X, Y) {
		var y = this.fT.pdetail ? am.jB : am.hW;
		if (X.s(G.ze)) y = am.oZ;
		this.yC(F, o, X, Y, this.fT.strn, y);
		if (this.A4 == null) return;
		this.km(F)
	};
	B.Vl.prototype.$E = function (F, P, o, X, Y) {
		this.yP(F, P, o);
		if (this.w6) this.rg(F, o, Y);
		if (this.A4 == null) return;
		if (!Y.Ku) return;
		this.Td(F, o, X, Y);
		this.km(F)
	};
	B.Ll = function () {
		B.gn.call(this, [10, 24], B.re, "tools/shbrush");
		this.mo = "draw";
		this.fT.opacity = .5
	};
	B.Ll.prototype = new B.gn;
	B.Ll.prototype.R$ = function (F, P, o, X, Y) {
		this.yC(F, o, X, Y, 1);
		if (this.A4 == null) return;
		this.km(F)
	};
	B.Ll.prototype.$E = function (F, P, o, X, Y) {
		this.yP(F, P, o);
		if (this.w6) this.rg(F, o, Y);
		if (this.A4 == null) return;
		if (!Y.Ku) return;
		this.Td(F, o, X, Y);
		this.km(F)
	};
	B.Ll.prototype.NL = function (F, P, o, X, Y) {
		if (this.A4 == null) return;
		this.vM(F, "sheal", this.A4.qq(), this.A4.o7(), this.A4.J0(), null);
		this.A(F, this.A4.J0());
		B.gn.prototype.NL.call(this, F, P, o, X, Y)
	};
	B.Tg = function () {
		B.gn.call(this, [10, 20], B.nD, "tools/smudge");
		this.mo = "copy"
	};
	B.Tg.prototype = new B.gn;
	B.Tg.prototype.R$ = function (F, P, o, X, Y) {
		this.yC(F, o, X, Y, this.fT.strn, am.nD);
		if (this.A4 == null) return;
		this.km(F)
	};
	B.Tg.prototype.$E = function (F, P, o, X, Y) {
		this.yP(F, P, o);
		if (this.w6) this.rg(F, o, Y);
		if (this.A4 == null) return;
		if (!Y.Ku) return;
		this.Td(F, o, X, Y);
		this.km(F)
	};
	B.FU = function () {
		B.gn.call(this, [10, 23], B.oo, "tools/sponge");
		this.mo = "sponge"
	};
	B.FU.prototype = new B.gn;
	B.FU.prototype.R$ = function (F, P, o, X, Y) {
		this.yC(F, o, X, Y, this.fT.flow);
		if (this.A4 == null) return;
		this.km(F)
	};
	B.FU.prototype.$E = function (F, P, o, X, Y) {
		this.yP(F, P, o);
		if (this.w6) this.rg(F, o, Y);
		if (this.A4 == null) return;
		if (!Y.Ku) return;
		this.Td(F, o, X, Y);
		this.km(F)
	};
	B.$h = function () {
		B.An.call(this, [10, 17], B.QS, "tools/zoom");
		this.nJ = !1;
		this.Wu = !0;
		this._7 = 0;
		this.wf = null;
		this.KE = null;
		this.Ju = 0;
		this.lf = null;
		this.i6 = 0;
		this.X7 = new ba([{
			name: [8, 0],
			n8: "Ctrl + +"
		}, {
			name: [8, 1],
			n8: "Ctrl + -",
			aD: !0
		}, {
			name: [20, 3],
			n8: "Ctrl + 0"
		}, {
			name: ["VAR0: 100%", [20, 2]],
			n8: "Ctrl + 1"
		}], [{
			f: i.E.H,
			Q: B.QS,
			o: {
				e: "zoom",
				Wu: !0
			}
		}, {
			f: i.E.H,
			Q: B.QS,
			o: {
				e: "zoom",
				Wu: !1
			}
		}, {
			f: i.E.H,
			Q: B.QS,
			o: {
				e: "adapt",
				C: "fitscr"
			}
		}, {
			f: i.E.H,
			Q: B.QS,
			o: {
				e: "adapt",
				C: "pixel"
			}
		}])
	};
	B.$h.prototype = new B.An;
	B.$h.prototype.FT = function (F, P, o, X, Y) {
		var y = this.X7;
		y.t();
		y.parent = P;
		y.update(F, o);
		var z = new l(i.E.L, !0);
		z.data = {
			e: i.B.VX,
			Nc: y,
			x: Y.Bx + 2,
			y: Y.yG + 1
		};
		P.w(z)
	};
	B.$h.prototype.enable = function (F, P, o, X) {
		this.k4(P, X);
		if (F && Date.now() - this._7 < 300) this.XZ({
			e: "adapt",
			C: "pixel"
		}, P, F, X, o);
		this._7 = Date.now()
	};
	B.$h.prototype.R$ = function (F, P, o, X, Y) {
		this.KE = new aH(Y.x, Y.y);
		this.Ju = F.a.F;
		this.lf = F.a.c.clone()
	};
	B.$h.prototype.$E = function (F, P, o, X, Y) {
		if (this.KE == null) return;
		var y = Math.round((Y.x - this.KE.x) / 16);
		if (y == 0) return;
		var z = B.$h.gd(this.Ju),
			s = B.$h.dc[Math.max(0, Math.min(B.$h.dc.length - 1, z - y))];
		F.a.F = this.Ju;
		F.a.c = this.lf.clone();
		this.XZ({
			e: "zoom",
			F: s,
			yZ: this.KE
		}, P, F, X, o)
	};
	B.$h.prototype.NL = function (F, P, o, X, Y) {
		if (aH.Yj(this.KE, Y) < 4) {
			var y = this.ys(X);
			this.XZ({
				e: "zoom",
				Wu: y,
				yZ: Y
			}, P, F, X, o)
		}
		this.KE = null
	};
	B.$h.dc = [32, 16, 12, 8, 7, 6, 5, 4, 3, 2, 1, 2 / 3, 1 / 2, 1 / 2 * (2 / 3), 1 / 4, 1 / 4 * (2 / 3), 1 / 8, 1 / 8 * (2 / 3), 1 / 16, 1 / 16 * (2 / 3), 1 / 32, 1 / 32 * (2 / 3), 1 / 64];
	B.$h.P9 = function (F, P, o, X) {
		var Y = 1;
		while (F * Y * 1 / 2 > o || P * Y * 1 / 2 > X) Y *= 1 / 2;
		if (F * Y * 2 / 3 > o || P * Y * 2 / 3 > X) Y *= 1 / 2;
		else if (F * Y > o || P * Y > X) Y *= 2 / 3;
		return Y
	};
	B.$h.ajR = function (F, P) {
		var o = B.$h.gd(F);
		if (P && o == 0) return F;
		if (!P && o == B.$h.dc.length - 1) return F;
		return B.$h.dc[P ? o - 1 : o + 1]
	};
	B.$h.gd = function (F) {
		var P = 0;
		while (B.$h.dc[P] > F) P++;
		return P
	};
	B.$h.dX = function (F, P, o, X) {
		var Y = F.EA;
		if (X == 0 || X == null) {
			X = B.$h.ajR(F.F, o);
			if (X == F.F) return
		}
		var y = F.PY(P.x, P.y);
		if (Y.Z * X <= F.xX.Z && Y.h * X <= F.xX.h) {
			F.c.Oh(0, 0);
			F.F = X
		} else {
			var z = F.c5(),
				s = F.F / X;
			z.translate(-y.x, -y.y);
			z.scale(s, s);
			z.translate(y.x, y.y);
			F.rE(z)
		}
	};
	B.$h.prototype.XZ = function (F, P, o, X, Y) {
		var y = 0,
			z = !1,
			s = null;
		if (F.e == "adapt") {
			var t = 0;
			if (F.C == "pixel") t = 1;
			if (F.C == "fitscr") {
				var t = 0,
					d = o.a.xX.Z,
					U = o.a.xX.h;
				if (o.Z <= d && o.h <= U) {
					var v = 1;
					while (o.Z * (v + 1) <= d && o.h * (v + 1) <= U) v++;
					t = v
				} else {
					t = B.$h.P9(o.Z, o.h, d, U)
				}
			}
			s = new aH(Math.round(o.a.xX.Z / 2), Math.round(o.a.xX.h / 2));
			y = t;
			B.$h.dX(o.a, s, z, y);
			o.Ob = !0
		}
		if (F.e.startsWith("multi")) {
			function A(I) {
				var c = I[0].x - I[1].x,
					u = I[0].y - I[1].y;
				return Math.sqrt(c * c + u * u)
			}

			function Z(I) {
				return new aH((I[0].x + I[1].x) / 2, (I[0].y + I[1].y) / 2)
			}
			var D = F.vD,
				q = Z(D);
			if (F.e == "multidown") {
				this.wf = [D, o.a.F, o.a.PY(q.x, q.y)]
			} else {
				y = this.wf[1] * A(D) / A(this.wf[0]);
				if (y >= 1) y = Math.min(32, Math.round(y));
				else {
					var R = 0,
						J = 1e9,
						W = B.$h.dc;
					for (var w = 0; w < W.length; w++) {
						var p = Math.abs(1 - y / W[w]);
						if (p < J) {
							J = p;
							R = w
						}
					}
					y = W[R]
				}
				if (y != o.a.F) B.$h.dX(o.a, q, z, y);
				var n = this.wf[2],
					b = o.a._R(n.x, n.y),
					Q = o.a.c;
				Q.x = Math.round(Q.x + q.x - b.x);
				Q.y = Math.round(Q.y + q.y - b.y);
				o.Ob = !0
			}
		}
		if (F.e == "scroll") {
			s = F.yZ;
			this.i6 += F.Dk.y;
			var _ = 14;
			if (this.i6 < -_) {
				z = !0;
				this.i6 = Math.max(this.i6 + _, -(_ - 1))
			} else if (this.i6 > _) {
				z = !1;
				this.i6 = Math.min(this.i6 - _, _ - 1)
			} else return;
			B.$h.dX(o.a, s, z, y);
			o.Ob = !0
		}
		if (F.e == "zoom") {
			s = F.yZ ? F.yZ : new aH(Math.round(o.a.xX.Z / 2), Math.round(o.a.xX.h / 2));
			if (F.F != null) y = F.F;
			else z = F.Wu;
			B.$h.dX(o.a, s, z, y);
			o.Ob = !0
		}
		if (F.e == "mskView") {
			var L = o.r[o.p[0]],
				m = L.kB == 3 ? L.yg(o).g : L.jk();
			if (F.C == 0) {
				o.a.qa = [1, 1, 1];
				m.gG = !1
			}
			if (F.C == 1) {
				o.a.qa = [1, 1, 1];
				m.gG = !0
			}
			if (F.C == 2) {
				o.a.qa = [0, 0, 0];
				m.gG = !0
			}
			for (var w = 0; w < o.Yq.length; w++) o.Yq[w].gG = !1;
			o.oD = [];
			o.Vg = !0
		}
	};
	B.$h.prototype.gU = function (F, P, o, X) {
		if (this.nJ != X.s(G.ze)) {
			this.nJ = X.s(G.ze);
			var Y = {
					e: i.B.Zo,
					Q: this.id,
					nJ: this.nJ
				},
				y = new l(i.E.L, !0);
			y.data = Y;
			P.w(y);
			this.k4(P, X)
		}
	};
	B.$h.prototype.k4 = function (F, P) {
		var o = new l(i.E.L, !0),
			X = this.ys(P);
		o.data = {
			e: i.B.Ik,
			rr: X ? "zoom-in" : "zoom-out"
		};
		F.w(o)
	};
	B.$h.prototype.zT = function (F, P, o, X) {
		this.Wu = F.Wu;
		this.k4(P, X)
	};
	B.$h.prototype.ys = function (F) {
		var P = this.Wu;
		if (F.s(G.fd) && F.s(G.Bl)) P = !0;
		if (this.nJ) P = !P;
		return P
	};
	B.Y2 = function (F, P, o) {
		B.An.call(this, F, P, o);
		this.cz = null;
		this.yH = null;
		this.JW = null;
		this.a6t = 0
	};
	B.Y2.prototype = new B.An;
	B.Y2.prototype.enable = function (F, P, o, X, Y) {
		this.yH = o;
		var y = new l(i.E.L, !0);
		y.data = {
			e: i.B.Ik,
			rr: "default"
		};
		P.w(y)
	};
	B.Y2.prototype.FT = function (F, P, o, X, Y) {
		if (F.Cj()[0].length == 0) return;
		var y = new l(i.E.L, !0);
		y.data = {
			e: i.B.Zo,
			Q: this.id,
			jE: Y,
			mY: F,
			s0: o
		};
		P.w(y)
	};
	B.Y2.prototype.v4 = function (F, P) {
		var o = new l(i.E.L, !0);
		o.data = {
			e: i.B.Sl,
			S9: ge.Kw
		};
		if (!P.IT) F.w(o);
		o.data = {
			e: i.B.Sl,
			S9: ge.t4
		};
		if (!P.Np.VW) F.w(o)
	};
	B.Y2.prototype.RR = function (F, P, o, X) {
		if (o.Mp != this.id) return;
		if (F.p.length == 0) return;
		var Y = F.r[F.p[0]],
			y = Y.add.vmsk,
			z = Y.add.vstk,
			s = B.Y2.Un(F, F.p[0]);
		this.cz = F;
		this.JW = P;
		if (Y.ws() && y != null && (JSON.stringify(z) != JSON.stringify(o.n2) || JSON.stringify(s) != JSON.stringify(o.wI))) {
			this.a6t = Date.now();
			var t = new l(i.E.L, !0);
			t.data = {
				e: i.B.Sl,
				S9: ge.l2,
				C: s
			};
			P.w(t);
			t.data = {
				e: i.B.Sl,
				S9: ge.Bh,
				C: z
			};
			P.w(t)
		}
	};
	B.Y2.prototype.AK = function (F, P) {
		if (this.cz == null) return;
		if (P == ge.oc || P == ge.l2 || P == ge.Bh) {
			if (Date.now() - this.a6t < 50) return;
			var o = P == ge.l2,
				X = this.cz,
				Y = o ? F.wI : F.n2,
				y = [];
			for (var w = 0; w < X.p.length; w++) {
				var z = X.p[w],
					s = X.r[z];
				if (!s.ws() || s.add.vmsk == null) continue;
				y.push(z)
			}
			var t = new l(i.E.H, !0);
			t.Q = B.xC;
			t.data = {
				e: h.WF,
				Ev: y,
				jK: o,
				C: Y
			};
			if (y.length != 0) this.JW.w(t)
		}
	};
	B.Y2.prototype.aj$ = function (F) {
		if (typeof F == "number") {
			var P = new l(i.E.QJ, !0);
			P.data = B.sp.XL(0);
			P.data.w1.Usng.v.Type.v.Clr.v = H.j.$H({
				U: F >>> 16 & 255,
				S: F >>> 8 & 255,
				i: F >>> 0 & 255
			});
			this.JW.w(P)
		}
	};
	B.Y2.prototype.XZ = function (F, P, o, X, Y) {
		this.JW = P;
		if (F.e == "newfill") {
			if (F.iy == 0) {
				var y = new l(i.E.L, !0);
				y.data = {
					e: i.B.uH,
					W2: "colorpicker",
					u9: Y.GY,
					jz: this.aj$.bind(this)
				};
				P.w(y)
			}
		} else if (F.e == "pathedit") {
			var z = F.mQ,
				s = "",
				t = o.VW.slice(0),
				d = o.QP.slice(0),
				U = o.VW.slice(0),
				v = o.QP.slice(0);
			if (z == "rnm") {
				var A = -1 - F.XN,
					Z = t[A],
					D = c_.GG(F.name, Z.add);
				U[A] = D;
				s = "Rename"
			} else if (z == "new") {
				U.push(c_.GG("Path " + t.length));
				v = [U.length - 1];
				s = "New"
			} else if (z == "del") {
				if (v.length == 0) return;
				v.sort(function (m, O) {
					return m - O
				});
				if (v[0] == 0) {
					U[0] = c_.GG(t[0].name);
					v = v.slice(1)
				}
				var q = 0;
				while (v.length != 0) {
					U.splice(v[0] - q, 1);
					v = v.slice(1);
					q++
				}
				s = "Delete"
			} else if (z == "fromsel") {
				var R = U[0] = c_.GG("Work Path");
				v = [0];
				if (o.K == null) return;
				var J = o.K.channel.slice(0);
				for (var w = 0; w < J.length; w++) J[w] = J[w] > 128 ? 2 : 1;
				var W = o.K.rect.clone();
				W.PK(1, 1);
				var p = H.R(W.M());
				H.Lj(J, o.K.rect, p, W);
				var n = hY.ih(p, W.Z, W.h, Math.round(W.M() * 5e-4)),
					b = hY.Cj(n),
					Q = new cu(1, 0, 0, 1, -1 + o.K.rect.x, -1 + o.K.rect.y);
				for (var w = 0; w < b.length; w++) H.D.O(b[w].path.d, Q, b[w].path.d);
				for (var w = 0; w < b.length; w++) {
					var _ = b[w];
					if (_.color == 1 && _.parent == -1) continue;
					var L = H.D.sb(b[w].path, !1);
					R.add.vmsk.b = R.add.vmsk.b.concat(L.slice(2))
				}
				R.add.vogk = h.h7(R.add.vmsk.b);
				s = "Selection to"
			}
			var m = new bV(s + " Path", this);
			m.data = {
				wT: t,
				jt: d,
				abR: U,
				JA: v
			};
			if (z == "fromsel") {
				m.data.la = o.K;
				m.data.Od = null
			}
			o.TX(m);
			this.oF(m.data, o)
		} else {
			var I = o.Cj(F.e == "append"),
				b = I[0],
				c = I[1],
				R = b[c[0]],
				u = R.add.vmsk,
				a = R.add.vogk,
				N = u.clone(),
				V = u.clone(),
				M = JSON.stringify(a);
			if (F.e == "remove") {
				if (V.p.length == 0) return;
				var q = 0;
				for (var w = 0; w < V.p.length; w++) {
					a.splice(V.p[w] + q, 1);
					q--
				}
				V.b = H.V.acI(V.b, V.p);
				V.p = [];
				V.s_ = []
			}
			if (F.e == "append") {
				B.Y2.j6(F.abP, V, a)
			}
			this.YC(o, R.XN, V, a);
			this.ww(o, F.tP, R.XN, N, V.clone(), null, M, JSON.stringify(a))
		}
	};
	B.Y2.G8 = function (F, P) {
		var o = H.V.aa4(F.b, F.p),
			X = [];
		for (var w = 0; w < F.p.length; w++) X.push(JSON.parse(JSON.stringify(P[F.p[w]])));
		return [o, X]
	};
	B.Y2.j6 = function (F, P, o) {
		var X = H.V.k3(P.b),
			Y = H.V.k3(F[0]);
		P.b = P.b.concat(F[0].slice(2));
		P.p = [];
		for (var w = 0; w < Y; w++) P.p.push(X + w);
		for (var w = 0; w < Y; w++) o.push(JSON.parse(JSON.stringify(F[1][w])))
	};
	B.Y2.prototype.aU = function (F, P) {
		if (P == null) return !1;
		var o = P.Cj(),
			X = o[0],
			Y = o[1];
		if (Y.length == 0) return !1;
		var y = X[Y[0]],
			z = y.add.vmsk;
		if (z && z.p.length + z.s_.length != 0) return [G.Yk, G.Yp].indexOf(F) != -1
	};
	B.Y2.prototype.gU = function (F, P, o, X) {
		if (F == null) return;
		var Y = F.Cj(),
			y = Y[0],
			z = Y[1];
		if (z.length == 0) return;
		var s = y[z[0]],
			t = s.add.vmsk;
		if (X.s(G.yc) || X.s(G.Xr)) {
			t.s_ = [];
			F.Vg = !0
		}
		if (t.p.length != 0) {
			var d = X.Ef();
			if (d.x != 0 || d.y != 0) {
				var U = t.clone(),
					v = t.clone(),
					A = new cu(1, 0, 0, 1, d.x, d.y),
					Z = s.add.vogk,
					D = JSON.stringify(Z);
				H.V.G5(v.b, A, v.p);
				H.P$.O(Z, H.P.Jb(A), v.p);
				this.YC(F, s.XN, v, Z);
				this.ww(F, "Move Paths", s.XN, U, v.clone(), !0, D, JSON.stringify(Z))
			}
			if (X.s(G.Yk) || X.s(G.Yp)) this.XZ({
				e: "remove",
				tP: "Delete Paths"
			}, P, F, X, o)
		}
	};
	B.Y2.prototype.ww = function (F, P, o, X, Y, y, z, s) {
		var t = new bV(P, this);
		t.data = {
			XY: o,
			jL: X,
			Bj: Y,
			aaE: y,
			abt: z,
			TC: s
		};
		F.TX(t)
	};
	B.Y2.prototype.oF = function (F, P) {
		if (F.XY != null) this.YC(P, F.XY, F.Bj.clone(), JSON.parse(F.TC));
		else {
			P.VW = F.abR.slice(0);
			P.QP = F.JA.slice(0);
			P.Vg = P.Vf = !0
		}
		if (F.la || F.Od) {
			P.K = F.Od;
			P.Es = !0
		}
	};
	B.Y2.prototype.tO = function (F, P) {
		if (F.XY != null) this.YC(P, F.XY, F.jL.clone(), JSON.parse(F.abt));
		else {
			P.VW = F.wT.slice(0);
			P.QP = F.jt.slice(0);
			P.Vg = P.Vf = !0
		}
		if (F.la || F.Od) {
			P.K = F.la;
			P.Es = !0
		}
	};
	B.Y2.prototype.YC = function (F, P, o, X) {
		var Y = P < 0 ? F.VW[-1 - P] : P < 1e6 ? F.r[P] : F.r[P - 1e6].add.TySh;
		Y.add.vmsk = o;
		Y.add.vogk = X;
		if (1e6 <= P) {
			bt.jj(Y);
			var y = F.r[P - 1e6],
				z = Y,
				s = this.yH,
				t = new dc(z.MF, s.SN),
				d = dQ.ti(t, z);
			y.rect = d.T;
			y.buffer = d.Ww;
			y.A();
			F.A()
		} else if (0 <= P) {
			o.G2 = !0;
			Y._V(F);
			F.A()
		}
		F.Vg = F.Vf = !0
	};
	B.Y2.Un = function (F, P) {
		var o = F.r[P],
			X = o.add.vstk,
			Y = null;
		if (X && !X.fillEnabled.v) Y = {
			d1: 0
		};
		else if (o.add.SoCo) Y = {
			d1: 1,
			qA: o.add.SoCo
		};
		else if (o.add.GdFl) Y = {
			d1: 2,
			qA: o.add.GdFl
		};
		else if (o.add.PtFl) Y = {
			d1: 3,
			qA: o.add.PtFl
		};
		return Y
	};
	B.Y2.ov = function (F, P) {
		var o = F.add.vmsk,
			X = F.add.vstk,
			Y = P.d1;
		if (X) X.fillEnabled.v = Y != 0;
		if (Y > 0) {
			var y = ["SoCo", "GdFl", "PtFl"][Y - 1];
			for (var w = 0; w < 3; w++) delete F.add[["SoCo", "GdFl", "PtFl"][w]];
			F.add[y] = P.qA
		}
	};
	B.sp = function (F, P, o, X) {
		B.Y2.call(this, F, P, o);
		this.fT = {
			tmode: 1,
			shape: gN.tt(),
			pshape: 0,
			binop: 0,
			crad: 0,
			irad: 40,
			length: 4,
			sides: 5,
			width: 5,
			tolr: 5,
			cstr: {
				wV: 0
			}
		};
		this.ad8 = X;
		this.Y0 = null;
		this.JL = null;
		this.a0 = null
	};
	B.sp.prototype = new B.Y2;
	B.sp.prototype.Vc = function (F) {
		return F.Ku && this.id != B.Rw
	};
	B.sp.prototype.enable = function (F, P, o, X, Y) {
		this.yH = o;
		var y = new l(i.E.L, !0);
		y.data = {
			e: i.B.Ik,
			rr: "crosshair"
		};
		P.w(y)
	};
	B.sp.prototype.Rr = function (F, P, o, X) {};
	B.sp.prototype.R$ = function (F, P, o, X, Y) {
		this.v4(P, o);
		var y = this.fT.tmode;
		if (y == 2 && !F.FD()) return;
		var z = F.a.PY(Y.x, Y.y);
		z = B.qT.aE(F, z, o);
		this.a0 = [z.x, z.y];
		this.Y0 = z;
		this.JL = new aH(0, 0)
	};
	B.sp.prototype.tR = function (F, P, o) {
		var X = [this.Y0.clone(), P.clone()];
		if (this.ad8) X = B.sp.en(X[0], X[1], o, !0, this.fT.cstr);
		if (F) F.a.GW = new ev(X[0].x, X[0].y, X[1].x - X[0].x, X[1].y - X[0].y);
		return this.Rr(X[0], X[1], o.s(G.cm), this.a0)
	};
	B.sp.prototype.xF = function (F, P, o) {
		var X = F.a.PY(P.x, P.y),
			Y = this.fT.cstr;
		if (Y.wV == 2) {
			var y = new ev(X.x - Y.x, X.y - Y.y, Y.x, Y.y),
				z = B.qT.hx(F, y, o);
			X.x += z[0];
			X.y += z[1];
			B.qT.rz(F, y, z)
		} else X = B.qT.aE(F, X, o);
		return X
	};
	B.sp.prototype.$E = function (F, P, o, X, Y) {
		if (this.Y0 == null) return;
		var y = this.xF(F, Y, o);
		if (X.s(G.fd)) this.Y0 = y.gI(this.JL);
		else this.JL = y.gI(this.Y0);
		this.a0.push(y.x, y.y);
		if (this.fT.shape == null) this.fT.shape = o.KQ[0];
		var z = this.tR(F, y, X)[0],
			s = H.D.xJ(z);
		F.v.hK = s;
		if (this.id != B.Rw && this.id != B.S3 && this.id != B.rG) B.An.Wf(Y.x + 10, Y.y - 10, F.a.GW, F, o);
		F.Vg = !0
	};
	B.sp.prototype.afM = function (F, P, o, X) {
		var Y = F[4].clone();
		if (X) {
			Y.x -= P / 2;
			Y.y -= o / 2
		}
		var y = this.Rr(Y, new aH(Y.x + P, Y.y + o), !1, this.a0);
		this.Kd(F[0], F[1], F[2], y)
	};
	B.sp.prototype.Kd = function (F, P, o, X) {
		var Y = new l(i.E.QJ, !0);
		Y.data = B.sp.HV(X[1], o);
		P.w(Y);
		if (X[1].v.classID == "customShape" && X[1].v.Nm.v.startsWith("--")) {
			var y = F.Cj(),
				z = y[0],
				s = y[1],
				t = z[s.pop()],
				d = t.add.vmsk,
				U = t.add.vogk,
				v = d.clone();
			v.b = X[0];
			this.YC(F, t.XN, v, U)
		}
	};
	B.sp.prototype.NL = function (F, P, o, X, Y) {
		if (this.Y0 == null) return;
		var y = this.xF(F, Y, o),
			z = this.fT.binop,
			s = this.fT.tmode,
			t = this.a0,
			d = t.length;
		if (this.id == B.Rw && d <= 4) {} else if (d <= 4) {
			y.x = Math.round(y.x);
			y.y = Math.round(y.y);
			var U = new l(i.E.L);
			U.data = {
				e: i.B.uH,
				W2: "createshape",
				a25: this.afM.bind(this),
				a9p: this.name,
				a9i: [F, P, o, X, y]
			};
			P.w(U)
		} else if (d != 2) {
			var v = this.tR(F, y, X),
				A = v[0];
			if (s == 0 && A.length > 2) {
				A[2].IO = [1, 2, 3, 0][z];
				var Z = F.Cj(!0),
					D = Z[0],
					q = Z[1],
					R = D[q.pop()],
					J = R.add.vmsk,
					W = R.add.vogk,
					p = J.clone(),
					n = J.clone(),
					b = JSON.stringify(W);
				n.b = n.b.concat(A.slice(2));
				n.p = [H.V.k3(n.b) - 1];
				var Q = H.P$.ND(v[1]);
				W.push(Q ? Q : H.P$.Zm());
				this.YC(F, R.XN, n, W);
				this.ww(F, this.name, R.XN, p, n, null, b, JSON.stringify(W))
			} else if (s == 1) {
				this.Kd(F, P, o, v)
			} else if (s == 2) {
				var n = new h.iO;
				n.b = n.b.concat(A.slice(2));
				var _ = n.jk(),
					L = H.R(_.rect.M() * 4);
				H.XB(L, (o.GY & 255) << 16 | (o.GY >> 8 & 255) << 8 | (o.GY >> 16 & 255) << 0);
				H.Oy(_.channel, L, 3);
				var m = new l(i.E.H, !0);
				m.Q = B.Sm;
				m.data = {
					e: "draw",
					pL: {
						buffer: L,
						rect: _.rect.clone()
					},
					tP: this.name
				};
				P.w(m)
			}
		}
		this.Y0 = null;
		F.v.hK = null;
		F.v.zK = null;
		F.v.Tw = [];
		F.a.GW = null;
		F.Vg = !0
	};
	B.sp.prototype.zT = function (F, P, o, X, Y) {
		for (var o in F) this.fT[o] = F[o]
	};
	B.sp.en = function (F, P, o, X, Y) {
		var y = F.x,
			z = F.y,
			s = P.x,
			t = P.y;
		if (Y && Y.wV == 2) {
			if (X) {
				s = Math.round(s);
				t = Math.round(t)
			}
			y = s - Y.x;
			z = t - Y.y
		} else {
			var d = 0;
			if (Y && Y.wV == 1) d = Y.y / Y.x;
			else if (o && o.s(G.cm)) d = 1;
			if (d != 0) {
				if (X) {
					if (y < s) y = Math.floor(y);
					else y = Math.ceil(y);
					if (z < t) z = Math.floor(z);
					else z = Math.ceil(z)
				}
				var U = Math.abs(s - y),
					v = Math.abs(t - z),
					A = U;
				if (v / U < d) A *= v / U / d;
				s = s > y ? y + A : y - A;
				t = t > z ? z + A * d : z - A * d
			}
			if (o && o.s(G.ze)) {
				y -= s - y;
				z -= t - z
			}
		}
		var F = new aH(y, z),
			P = new aH(s, t);
		if (X) B.sp.am8(F, P);
		return [F, P]
	};
	B.sp.am8 = function (F, P) {
		if (F.x > P.x) {
			var o = F.x;
			F.x = P.x;
			P.x = o
		}
		if (F.y > P.y) {
			var o = F.y;
			F.y = P.y;
			P.y = o
		}
		F.x = Math.floor(F.x);
		F.y = Math.floor(F.y);
		P.x = Math.ceil(P.x);
		P.y = Math.ceil(P.y)
	};
	B.sp.a4A = function () {
		return {
			classID: "Mk",
			null: {
				t: "obj ",
				v: [{
					t: "Clss",
					v: {
						classID: "contentLayer"
					}
				}]
			},
			Usng: {
				t: "Objc",
				v: {
					classID: "contentLayer",
					Type: {
						t: "Objc",
						v: {}
					}
				}
			}
		}
	};
	B.sp.XL = function (F, P) {
		var o = B.sp.a4A();
		if (P == null) P = JSON.parse(JSON.stringify(ce._G[F]));
		cj.T8.CR(P, o.Usng.v.Type.v, F);
		return {
			Bm: "make",
			w1: o
		}
	};
	B.sp.HV = function (F, P) {
		var o = P.wI,
			X = JSON.parse(JSON.stringify(P.n2));
		if (o.d1 == 0) X.fillEnabled.v = !1;
		var Y = B.sp.XL(Math.max(0, o.d1 - 1), o.qA);
		Y.w1.Usng.v.Shp = F;
		Y.w1.Usng.v.strokeStyle = {
			t: "Objc",
			v: X
		};
		return Y
	};
	B.bz = function () {
		B.Y2.call(this, [10, 29], B.wu, "tools/pen");
		this.Q9 = null;
		this.D1 = null;
		this.SW = 1;
		this.a1B = 0;
		this.hX = null;
		this.VK = !1
	};
	B.bz.prototype = new B.Y2;
	B.bz.prototype.Vc = function (F) {
		return this.Q9 != null
	};
	B.bz.prototype.R$ = function (F, P, o, X, Y) {
		this.v4(P, o);
		var y = F.a.PY(Y.x, Y.y),
			Z, D;
		y.x = Math.round(y.x);
		y.y = Math.round(y.y);
		var z = B.qT.aE(F, y, o),
			s = F.Cj(this.SW == 0),
			t = s[0],
			d = s[1],
			U = t[d.pop()],
			v = U ? U.add.vmsk : null,
			A = 4 * i.J() / F.a.F;
		if (v) Z = H.V.cp(v.b, y, !0, A);
		if (this.SW == 1 && (v == null || (v.s_.length == 0 || v.s_[0] != v.b.length - 1) && Z.XN == -1)) {
			var q = new l(i.E.QJ, !0),
				R = H.P$.Sn("customShape", [0, 0, 1, 1], null, null, null, "--");
			q.data = B.sp.HV(R, o);
			P.w(q);
			s = F.Cj(!0);
			t = s[0];
			d = s[1];
			U = t[d.pop()];
			v = U.add.vmsk;
			v.b = v.b.slice(0, 2)
		}
		var J = U.add.vogk;
		this.Q9 = v.clone();
		this.D1 = JSON.stringify(J);
		var W = v.b,
			p = H.V.k3(W);
		D = H.V.Wh(v.b, new ev(y.x - A, y.y - A, A * 2, A * 2));
		Z = H.V.cp(v.b, y, !0, A);
		if (Z.XN != -1 && D[0].length == 0) {
			var n = H.V.cx(W, Z.XN);
			while (W[n].length <= Z._2) {
				Z._2 -= W[n].length;
				n += W[n].length + 1
			}
			W[n].length++;
			W.splice(n + 2 + Z._2, 0, {
				type: 4,
				wU: z.clone(),
				_: z.clone(),
				dv: z.clone()
			});
			v.s_ = [n + 2 + Z._2]
		} else if (D[0].length == 1 && X.s(G.ze)) {
			var b = D[0],
				Q = v.b.length - 1,
				_ = v.b[b];
			_.dv = _._.clone();
			if (b != Q) _.wU = _._.clone()
		} else {
			var L = 0;
			if (v.s_.length != 1) {
				v.p = [p];
				W.push({
					type: 3,
					length: 1,
					IO: [1, 2, 3, 0][this.a1B],
					yU: 0,
					Oj: 0,
					UB: 0
				});
				L = W.length;
				J.push(H.P$.Zm())
			} else {
				var m = v.s_[0],
					I = H.V.o_(W, m),
					n = H.V.cx(W, I);
				if (m == n + W[n].length && aH.Yj(y, W[n + 1]._) < A) {
					W[n].type = 0;
					v.s_ = [n + 1];
					this.hX = z;
					this.VK = !0;
					this.YC(F, U.XN, v, J);
					F.Vg = !0;
					return
				}
				W[n].length++;
				L = m + 1
			}
			if (X.s(G.cm) && W[L - 1] && W[L - 1]._) z = B.T7.M$(W[L - 1]._, z);
			W.splice(L, 0, {
				type: 4,
				wU: z.clone(),
				_: z.clone(),
				dv: z.clone()
			});
			v.s_ = [L];
			this.hX = z
		}
		this.YC(F, U.XN, v, J);
		F.Vg = !0
	};
	B.bz.prototype.$E = function (F, P, o, X, Y) {
		if (this.Q9 == null) return;
		var y = F.a.PY(Y.x, Y.y),
			z = B.qT.aE(F, y, o),
			s = F.Cj(this.SW == 0),
			t = s[0],
			d = s[1],
			U = t[d.pop()],
			v = U.add.vmsk,
			A = v.b,
			Z = A[v.s_[0]];
		if (X.s(G.fd)) {
			if (X.s(G.cm)) z = B.T7.M$(this.hX, z);
			var D = Z._.gI(Z.dv),
				q = Z.wU.gI(Z._);
			Z.dv = z;
			Z._ = z.add(D);
			Z.wU = Z._.add(q)
		} else {
			if (X.s(G.cm)) z = B.T7.M$(Z._, z);
			if (this.VK) {
				var R = aH.Yj(Z._, z),
					J = R == 0 ? 0 : aH.Yj(Z._, Z.dv) / R;
				Z.dv.x = Z._.x + J * (z.x - Z._.x);
				Z.dv.y = Z._.y + J * (z.y - Z._.y)
			} else Z.dv = z;
			if (X.s(G.ze)) Z.type = 5;
			else {
				Z.type = 4;
				Z.wU = Z._.add(Z._.gI(z))
			}
			this.hX = z
		}
		this.YC(F, U.XN, v, U.add.vogk);
		F.Vg = !0
	};
	B.bz.prototype.NL = function (F, P, o, X, Y) {
		if (this.Q9 == null) return;
		var y = F.Cj(this.SW == 0),
			z = y[0],
			s = y[1],
			t = z[s.pop()],
			d = t.add.vmsk,
			U = t.add.vogk;
		this.ww(F, this.VK ? "Close Path" : "Add Anchor Point", t.XN, this.Q9, d.clone(), null, this.D1, JSON.stringify(U));
		this.VK = !1;
		this.Q9 = null
	};
	B.bz.prototype.zT = function (F, P, o, X, Y) {
		this.SW = F.tmode;
		this.a1B = F.binop
	};
	B.O2 = function () {
		B.sp.call(this, [10, 30], B.Rw, "tools/fpen", !1)
	};
	B.O2.prototype = new B.sp;
	B.O2.prototype.Rr = function (F, P, o, X) {
		return [H.V.bY(X, this.fT.tolr), H.P$.Sn("customShape", [0, 0, 1, 1], null, null, null, "--")]
	};
	B.YR = function () {
		B.Y2.call(this, [10, 27], B.lL, "tools/pselect");
		this.Qv = null;
		this.UU = !1;
		this.ic = null;
		this.Q9 = null;
		this.dR = null;
		this.D1 = null;
		this.Vr = null;
		this.Qx = null;
		this.c9 = null;
		this.P_ = null
	};
	B.YR.prototype = new B.Y2;
	B.YR.prototype.Vc = function (F) {
		return F.Ku
	};
	B.YR.prototype.R$ = function (F, P, o, X, Y) {
		var y = F.a.PY(Y.x, Y.y),
			z = F.Cj(),
			s = z[0],
			t = z[1],
			d, U;
		for (var w = 0; w < t.length; w++) {
			var v = s[t[w]],
				A = v.add.vmsk,
				Z = H.V.cp(A.b, y).XN;
			if (Z != -1) {
				this.ic = d = v;
				U = Z
			}
			for (var D = 0; D < A.A2.length; D++) {
				var q = H.V.rJ(A.b, A.A2[D]);
				if (q == null) continue;
				var R = aH.Yj(q, y);
				if (R < 4 * i.J() / F.a.F) {
					var J = F.r[v.XN - 1e6].add.TySh,
						W = J.MF.Curve,
						p = J.O,
						n = W.Reversed;
					W.Reversed = !1;
					var W = dc.Pr(J.MF.Curve);
					W.Reversed = n;
					H.D.O(W[0], p, W[0]);
					this.c9 = [W, D, p.m * p.xA - p.i * p.p$];
					this.ic = d = v;
					U = 0
				}
			}
			if (this.c9) break
		}
		if (d != null) {
			var A = d.add.vmsk;
			A.s_ = [];
			var b = A.p.indexOf(U);
			if (X.s(G.cm)) {
				if (b == -1) {
					A.p.push(U);
					this.UU = !0
				} else A.p.splice(b, 1)
			} else {
				if (b == -1) A.p = [U];
				this.UU = !0
			}
			this.Qx = H.V.ue(A.b, A.p)
		}
		this.Qv = y;
		this.P_ = new af(y);
		F.Vf = !0;
		F.Vg = !0
	};
	B.YR.prototype.$E = function (F, P, o, X, Y) {
		if (this.Qv == null) return;
		var y = F.a.PY(Y.x, Y.y);
		if (this.UU) {
			y = this.P_.ki(y, X);
			var z = this.ic;
			if (this.Q9 == null) {
				this.Q9 = this.dR = z.add.vmsk.clone();
				this.D1 = this.Vr = JSON.stringify(z.add.vogk);
				if (X.s(G.ze)) {
					var s = this.Q9.clone(),
						t = JSON.parse(this.D1),
						d = B.Y2.G8(s, t);
					B.Y2.j6(d, s, t);
					this.dR = s;
					this.Vr = JSON.stringify(t)
				}
			}
			var s = this.dR.clone(),
				t = JSON.parse(this.Vr);
			if (this.c9) {
				var U = this.c9,
					v = U[0][0],
					A = H.D.n0(v, y.x, y.y);
				s.A2[U[1]] = U[0][1][A];
				var Z = v[A * 2],
					D = v[A * 2 + 1],
					q = (v[A * 2 + 2] - Z) * (y.y - D) - (v[A * 2 + 3] - D) * (y.x - Z);
				if (U[2] < 0) q = -q;
				s.mt = q > 0
			} else {
				var R = this.Qx.clone(),
					J = R.x,
					W = R.y;
				R.offset(y.x - this.Qv.x, y.y - this.Qv.y);
				R.x = Math.round(R.x);
				R.y = Math.round(R.y);
				var p = B.qT.hx(F, R, o),
					n = new cu(1, 0, 0, 1, R.x - J + p[0], R.y - W + p[1]);
				H.V.G5(s.b, n, s.p);
				H.P$.O(t, H.P.Jb(n), s.p);
				B.qT.rz(F, R, p)
			}
			this.YC(F, z.XN, s, t)
		} else {
			var b = this.Qv;
			F.v.hK = H.D.z0(new ev(b.x, b.y, y.x - b.x, y.y - b.y));
			F.Vg = !0
		}
	};
	B.YR.prototype.NL = function (F, P, o, X, Y) {
		if (this.Qv == null) return;
		var y = F.a.PY(Y.x, Y.y),
			z = this.ic,
			s = z ? z.add.vmsk : null;
		if (this.UU) {
			var t = JSON.stringify(z.add.vogk);
			if (!this.Qv.Qn(y)) this.ww(F, "Move Paths", z.XN, this.Q9, s, null, this.D1, t);
			if (F != null && F.v.zK) {
				F.v.zK = null;
				F.Vg = !0
			}
		} else {
			if (s) {
				var d = this.Qv,
					U = new ev(d.x, d.y, y.x - d.x, y.y - d.y),
					v = H.V.aiz(s.b, U);
				if (X.s(G.cm)) {
					for (var w = 0; w < v.length; w++)
						if (s.p.indexOf(v[w]) == -1) s.p.push(v[w])
				} else s.p = v
			}
			F.v.hK = null;
			F.Vg = !0
		}
		this.Qv = null;
		this.Q9 = null;
		this.c9 = null;
		this.UU = !1;
		this.P_ = null
	};
	B.YR.prototype.RR = function (F, P, o, X) {
		B.Y2.prototype.RR.call(this, F, P, o, X);
		if (o.Mp != this.id) return;
		if (F.p.length == 0) return;
		var Y = F.Cj(),
			y = Y[0],
			z = Y[1];
		if (z.length == 0) return;
		var s = y[z[0]],
			t = s.add.vmsk,
			d = s.add.vstk,
			U = s.add.vogk,
			v = new l(i.E.L, !0);
		v.data = {
			e: i.B.Zo,
			Q: this.id,
			He: "main",
			PS: t ? t : null,
			P$: U
		};
		P.w(v)
	};
	B.YR.prototype.zT = function (F, P, o, X, Y) {
		var y = F.oI;
		if (y.PS) {
			var z = o.Cj(),
				s = z[0],
				t = z[1],
				d = s[t[0]],
				U = d.add.vmsk.clone(),
				v = JSON.stringify(d.add.vogk),
				A = y.PS;
			this.YC(o, d.XN, A, y.P$);
			var Z = [18, 5];
			if (U.b.length == A.b.length) Z = U.p[0] == A.p[0] ? "Fill Rule" : "Path Order";
			this.ww(o, Z, d.XN, U, A, null, v, JSON.stringify(y.P$))
		}
	};
	B.HA = function () {
		B.Y2.call(this, [10, 28], B.C1, "tools/dselect");
		this.ZZ = -1;
		this.d0 = -1;
		this.xi = null;
		this.Qv = null;
		this.ic = null;
		this.Q9 = null;
		this.D1 = null;
		this.cz = null;
		this.Gn = 0;
		this.a28 = {
			psnap: !1
		};
		this.P_ = null
	};
	B.HA.prototype = new B.Y2;
	B.HA.prototype.Vc = function (F) {
		return F.Ku
	};
	B.HA.prototype.zT = function (F) {
		this.a28 = F
	};
	B.HA.prototype.XZ = function (F, P, o, X, Y) {
		if (F.e == "crnr") {
			if (o == null) return;
			var y = o.Cj(),
				z = y[0],
				s = y[1];
			if (s.length == 0) {
				alert("No paths selected");
				return
			}
			var t = z[s[0]],
				d = t.add.vmsk;
			if (d.s_.length == 0) {
				alert("No corners selected");
				return
			}
			for (var w = 0; w < d.s_.length; w++) {
				var U = d.b[d.s_[w]];
				if (!U._.Qn(U.dv) || !U._.Qn(U.wU)) {
					alert("Only sharp corners can be rounded");
					return
				}
			}
			if (this.Q9 == null) {
				this.Q9 = t.add.vmsk.clone();
				this.D1 = JSON.stringify(t.add.vogk);
				this.ic = t;
				this.cz = o
			}
			var v = new l(i.E.L, !0);
			v.data = {
				e: i.B.uH,
				W2: "cornerradius",
				Ub: 5,
				j4: this.ahU.bind(this)
			};
			P.w(v)
		} else B.Y2.prototype.XZ.call(this, F, P, o, X, Y)
	};
	B.HA.prototype.ahU = function (F) {
		if (F == "confirm") {
			var P = this.cz,
				o = this.ic,
				X = o.add.vmsk,
				Y = o.add.vogk;
			this.ww(P, [12, 94, 0], o.XN, this.Q9, X, null, this.D1, JSON.stringify(Y));
			this.bJ();
			return
		}
		var X = this.Q9.clone(),
			Y = JSON.parse(this.D1),
			y = X.s_;
		if (F == "cancel") {} else {
			var z = [];
			for (var w = 0; w < y.length; w++) {
				var s = y[w],
					t = H.V.o_(X.b, s, !0),
					v = 0;
				if (z.indexOf(t) != -1) continue;
				z.push(t);
				var d = H.V.cx(X.b, t, !0),
					U = X.b[d].length,
					A = [];
				for (var Z = 0; Z < U; Z++) {
					var D = X.s_.indexOf(d + Z + 1) == -1 ? 0 : F;
					A.push(D);
					if (D != 0) v++
				}
				H.V.FN(X.b, d, A);
				for (var Z = 0; Z < y.length; Z++)
					if (y[Z] > d + U) y[Z] += v
			}
			this.V_(X, Y);
			X.s_ = []
		}
		this.YC(this.cz, this.ic.XN, X, Y);
		if (F == "cancel") this.bJ()
	};
	B.HA.prototype.disable = function (F, P, o, X) {
		this.Fa(F)
	};
	B.HA.prototype.R$ = function (F, P, o, X, Y) {
		this.Fa(F);
		var y = F.a.PY(Y.x, Y.y),
			v, A, Z;
		this.xi = y.clone();
		var z = F.Cj(),
			s = z[0],
			t = z[1];
		if (t.length == 0) return;
		var d = 4 * i.J() / F.a.F,
			U = new ev(y.x - d, y.y - d, d * 2, d * 2);
		for (var D = 0; D < t.length; D++) {
			v = this.ic = s[t[D]];
			A = v.add.vmsk;
			Z = H.V.Wh(A.b, U);
			if (Z[0].length + Z[1].length + Z[2].length != 0) break
		}
		var q = [!1, !1, !1];
		for (var w = 0; w < 3; w++) {
			for (var R = 0; R < Z[w].length; R++)
				if (A.s_.indexOf(Z[w][R]) != -1) {
					Z[w] = [Z[w][R]];
					q[w] = !0;
					break
				}
		}
		if (Z[0].length != 0 && (q[0] || !q[1] && !q[2])) {
			var J = Z[0][0],
				W = A.s_.indexOf(J);
			if (X.s(G.cm)) {
				if (W == -1) A.s_.push(J);
				else {
					A.s_.splice(W, 1);
					F.Vg = !0;
					return
				}
			} else if (W == -1) A.s_ = [J];
			this.ZZ = J;
			this.d0 = 0
		} else if (Z[1].length != 0 && (q[1] || !q[2])) {
			this.ZZ = Z[1][0];
			this.d0 = 1
		} else if (Z[2].length != 0) {
			this.ZZ = Z[2][0];
			this.d0 = 2
		} else {
			var p = H.V.cp(A.b, y, !0, d);
			if (p.XN == -1) this.Qv = y;
			else {
				A.p = [p.XN];
				A.s_ = []
			}
		}
		if (this.Q9 == null) {
			this.Q9 = v.add.vmsk.clone();
			this.D1 = JSON.stringify(v.add.vogk)
		}
		this.P_ = new af(y);
		F.Vg = !0
	};
	B.HA.prototype.$E = function (F, P, o, X, Y) {
		if (F == null) return;
		var y = F.a.PY(Y.x, Y.y),
			z = this.ic;
		if (this.ZZ != -1) {
			var s = this.Q9.clone(),
				t = z.add.vogk,
				d = s.b[this.ZZ];
			d = [d._, d.wU, d.dv][this.d0];
			if (X.s(G.cm)) {
				y = this.P_.ki(y, X);
				y.x += d.x - this.xi.x;
				y.y += d.y - this.xi.y
			} else {
				if (this.a28.psnap) {
					y.x = Math.round(y.x);
					y.y = Math.round(y.y)
				}
				y = B.qT.aE(F, y, o)
			}
			if (this.d0 == 0) {
				var U = new cu(1, 0, 0, 1, y.x - d.x, y.y - d.y);
				H.V.G5(s.b, U, null, s.s_)
			} else {
				var v = s.b[this.ZZ],
					A = v.wU,
					Z = v.dv;
				if (this.d0 == 2) {
					A = v.dv;
					Z = v.wU
				}
				A.Oh(y.x, y.y);
				if (v.type == 1 || v.type == 4) {
					var D = aH.Yj(A, v._),
						q = aH.Yj(Z, v._);
					if (q != 0) {
						Z.x = v._.x - (A.x - v._.x) * (q / D);
						Z.y = v._.y - (A.y - v._.y) * (q / D)
					}
				}
			}
			this.V_(s, t);
			this.YC(F, z.XN, s, t)
		} else if (this.Qv != null) {
			var R = this.Qv;
			F.v.hK = H.D.z0(new ev(R.x, R.y, y.x - R.x, y.y - R.y));
			F.Vg = !0
		} else {
			var J = F.Cj(),
				W = J[0],
				p = J[1],
				z, s, Q;
			if (p.length == 0) return;
			var n = 4 * i.J() / F.a.F,
				b = new ev(y.x - n, y.y - n, n * 2, n * 2);
			for (var _ = 0; _ < p.length; _++) {
				z = W[p[_]];
				s = z.add.vmsk;
				Q = H.V.Wh(s.b, b);
				if (Q[0].length + Q[1].length + Q[2].length != 0) break
			}
			this.Fa(F);
			for (var w = 0; w < 3; w++) {
				for (var L = 0; L < Q[w].length; L++) {
					var m = Q[w][L],
						I = s.b[m];
					I = w == 0 ? I._ : w == 1 ? I.wU : I.dv;
					F.v.Cs.push(F.v.z6.length >>> 1);
					F.v.z6.push(I.x, I.y);
					F.Vg = !0
				}
			}
		}
	};
	B.HA.prototype.Fa = function (F) {
		if (F && F.v.z6.length != 0) {
			F.v.z6 = [];
			F.v.Cs = [];
			F.Vg = !0
		}
	};
	B.HA.prototype.NL = function (F, P, o, X, Y) {
		var y = F.a.PY(Y.x, Y.y),
			z = this.ic,
			s = z ? z.add.vmsk : null,
			t = z ? z.add.vogk : null;
		if (this.ZZ != -1) {
			if (Date.now() - this.Gn < 300) {
				var d = s.b[this.ZZ],
					U = this.d0,
					v = null;
				if (U == 0) {
					var A = d.wU.Qn(d._),
						Z = d.dv.Qn(d._);
					if (!A && !Z) {
						v = "Anchor Type";
						if (d.type == 1 || d.type == 4) d.type++;
						else {
							d.type--;
							d.dv = d._.add(d._.gI(d.wU))
						}
					} else {
						v = "Add Handles";
						if (A && Z) {
							d.wU.x -= 30;
							d.dv.x += 30
						} else if (A) d.wU = d._.add(d._.gI(d.dv));
						else if (Z) d.dv = d._.add(d._.gI(d.wU))
					}
				} else {
					v = "Remove Handle";
					if (U == 1) d.wU.fa(d._);
					else d.dv.fa(d._)
				}
				this.V_(s, t);
				this.YC(F, z.XN, s, t);
				this.ww(F, v, z.XN, this.Q9, s, null, this.D1, JSON.stringify(t))
			} else if (!this.xi.Qn(y)) {
				this.ww(F, "Drag Anchors", z.XN, this.Q9, s, null, this.D1, JSON.stringify(t))
			}
			this.Gn = Date.now()
		} else if (this.Qv != null) {
			var D = this.Qv,
				q = new ev(D.x, D.y, y.x - D.x, y.y - D.y);
			if (q.Z < 0) q.x += q.Z;
			if (q.h < 0) q.y += q.h;
			q.Z = Math.abs(q.Z);
			q.h = Math.abs(q.h);
			var R = H.V.Wh(s.b, q);
			s.s_ = R[0];
			F.v.hK = null
		}
		this.bJ();
		F.Vg = !0
	};
	B.HA.prototype.bJ = function () {
		this.ic = null;
		this.Q9 = null;
		this.Qv = null;
		this.ZZ = this.d0 = -1;
		this.P_ = null
	};
	B.HA.prototype.V_ = function (F, P) {
		for (var w = 0; w < F.s_.length; w++) {
			var o = H.V.o_(F.b, F.s_[w]);
			H.P$.tq(P, o)
		}
	};
	B.HA.prototype.gU = function (F, P, o, X) {
		if (F == null) return;
		var Y = F.Cj(),
			y = Y[0],
			z = Y[1];
		if (z.length == 0) return;
		var s = y[z[0]],
			t = s.add.vmsk;
		if (t == null || t.s_.length == 0) return;
		var d = s.add.vogk,
			U = JSON.stringify(d),
			v = X.Ef();
		if (v.x != 0 || v.y != 0) {
			var A = t.clone(),
				Z = t.clone(),
				D = new cu(1, 0, 0, 1, v.x, v.y);
			H.V.G5(Z.b, D, null, Z.s_);
			this.V_(Z, d);
			this.YC(F, s.XN, Z, d);
			this.ww(F, "Move Anchors", F.p[0], A, Z.clone(), !0, U, JSON.stringify(d))
		}
		if (X.s(G.Yk) || X.s(G.Yp)) {
			var A = t.clone(),
				Z = t.clone();
			Z.b = H.V.a2x(Z.b, Z.s_, d);
			Z.s_ = [];
			this.YC(F, s.XN, Z, d);
			this.ww(F, "Delete Anchors", s.XN, A, Z.clone(), !0, U, JSON.stringify(d))
		}
	};
	B.HA.prototype.ww = function (F, P, o, X, Y, y, z, s) {
		var t = F.a1();
		if (y && t != null && t.Q == this && t.data.aaE && t.data.XY == o && JSON.stringify(t.data.jL.s_) == JSON.stringify(X.s_)) {
			t.data.Bj = Y;
			t.data.TC = s
		} else {
			var t = new bV(P, this);
			t.data = {
				XY: o,
				jL: X,
				Bj: Y,
				aaE: y,
				abt: z,
				TC: s
			};
			F.TX(t)
		}
	};
	B.Rect = function () {
		B.sp.call(this, [10, 32], B.wg, "tools/rect", !0)
	};
	B.Rect.prototype = new B.sp;
	B.Rect.prototype.Rr = function (F, P, o) {
		var X = this.fT.crad,
			Y = P.x - F.x,
			y = P.y - F.y;
		return [H.V.Ny.Rect(F.x, F.y, Y, y, X), H.P$.Sn("Rctn", [F.x, F.y, P.x, P.y], [X, X, X, X])]
	};
	B.VO = function () {
		B.sp.call(this, [10, 33], B.nA, "tools/ellipse", !0)
	};
	B.VO.prototype = new B.sp;
	B.VO.prototype.Rr = function (F, P, o) {
		var X = P.x - F.x,
			Y = P.y - F.y;
		return [H.V.Ny.VO(F.x, F.y, X, Y), H.P$.Sn("Elps", [F.x, F.y, P.x, P.y])]
	};
	B.x_ = function () {
		B.sp.call(this, [10, 34], B.S3, "tools/pshape", !1)
	};
	B.x_.prototype = new B.sp;
	B.x_.prototype.Rr = function (F, P, o) {
		var X = this.fT.pshape,
			Y = this.fT.crad,
			y = this.fT.irad / 100,
			z = this.fT.sides,
			s = this.fT.width,
			t = this.fT.tsiz,
			d = this.fT.length,
			R;
		P = P.clone();
		if (o) {
			if (Math.abs(P.x - F.x) < Math.abs(P.y - F.y)) P.x = F.x;
			else P.y = F.y
		}
		var U = F.x,
			v = F.y,
			A = P.x,
			Z = P.y,
			D = Math.sqrt((A - U) * (A - U) + (Z - v) * (Z - v)),
			q = Math.atan2(-Z + v, A - U);
		if (X == 0) R = H.V.Ny.qF(U, v, D, q, z, Y);
		if (X == 1) R = H.V.Ny.alV(U, v, D, q, z, Y, y);
		if (X == 2) R = H.V.Ny.ago(F.x, F.y, P.x, P.y, s, t / 100);
		if (X == 3) R = H.V.Ny.a79(U, v, D, q, d);
		return [R, H.P$.Sn("customShape", [F.x, F.y, P.x, P.y], null, null, null, "--")]
	};
	B.Qe = function () {
		B.sp.call(this, [10, 35], B.rG, "tools/line", !1)
	};
	B.Qe.prototype = new B.sp;
	B.Qe.prototype.Rr = function (F, P, o) {
		var X = this.fT.width;
		P = P.clone();
		if (o) {
			P = B.T7.M$(F, P)
		}
		return [H.V.Ny.Qe(F.x, F.y, P.x, P.y, X), H.P$.Sn("Ln", null, null, [F.x, F.y, P.x, P.y], X)]
	};
	B.a3 = function () {
		B.sp.call(this, [10, 31], B.SM, "tools/cshape", !0)
	};
	B.a3.prototype = new B.sp;
	B.a3.prototype.Rr = function (F, P, o) {
		var X = this.fT.shape,
			Y = X.gx.Z / X.gx.h,
			y = h.iO.Cm(X.b);
		P = P.clone();
		if (o) {
			P.y = F.y + (P.x - F.x) / Y
		}
		var z = P.x - F.x,
			s = P.y - F.y;
		H.V.G5(y, new cu(z, 0, 0, s, F.x, F.y));
		return [y, H.P$.Sn("customShape", [F.x, F.y, P.x, P.y], null, null, null, X.s3)]
	};
	B.X = function (F, P, o) {
		B.An.call(this, F, P, o);
		this.oU = 0;
		this.r = null;
		this.zB = null;
		this.s0 = null;
		this._o = 1;
		this.WE = !1;
		this.cursor = null;
		this.vg = null;
		this.la = null;
		this.o3 = !1;
		this.s6 = null;
		this.ahJ = 0;
		this.el = null;
		this.y9 = 0;
		this.f_ = null;
		this.JE = null;
		this.gr = null;
		this.d4 = null;
		this.al9 = null
	};
	B.X.prototype = new B.An;
	B.X.JZ = function (F, P) {
		var o = {
			classID: "null",
			null: gY.Pe("Dcmn", !0)
		};
		if (F) o.Angl = {
			t: "UntF",
			v: {
				type: "#Ang",
				val: P
			}
		};
		else o.Axis = {
			t: "enum",
			v: {
				Ornt: P
			}
		};
		return {
			Bm: F ? "rotateEventEnum" : "flip",
			w1: o
		}
	};
	B.X.prototype.FT = function (F, P, o, X, Y) {
		var y = new l(i.E.L, !0);
		y.data = {
			e: i.B.Zo,
			Q: this.id,
			jE: Y,
			mY: F,
			s0: o
		};
		P.w(y);
		this.sY = !1
	};
	B.X.prototype.Vc = function (F) {
		return this.JE && this.JE.mN()
	};
	B.X.prototype.XZ = function (F, P, o, X, Y) {
		this.s0 = Y;
		if (F.e == "again" && this.el == null) return;
		if (F.e == "doMouseDown") {
			if (this.JE == null) return;
			this.R$(o, P, Y, X, F.yZ);
			return
		}
		if (!this.QA(o, Y)) return;
		if (this.JE) {
			this.uT(F, this.JE.B3());
			this.TT(o, Y, 0, !0);
			this.se(o);
			return
		}
		this.uu(o, F.n == null, F.n);
		this.c3(o);
		this.uT(F);
		this.BU(o, P, F.tP, !1)
	};
	B.X.prototype.uT = function (F, P) {
		var o = this.f_;
		if (P == null) {
			var X = F.cX != null ? F.cX : 4;
			P = this.JE.ac1()[X]
		}
		var Y = P.x,
			y = P.y;
		if (F.e == "rot" && F.C != Math.PI && (o.Z + o.h & 1) == 1) {
			Y = Math.floor(Y);
			y = Math.floor(y)
		}
		var z = new cu;
		z.translate(-Y, -y);
		if (F.e == "rot") z.rotate(F.C);
		if (F.e == "scl") z.scale(F.C.x, F.C.y);
		if (F.e == "mat") z.concat(F.C);
		z.translate(Y, y);
		if (F.e == "again") z = this.el;
		var s = this.JE._4();
		H.D.O(s, z, s);
		this.JE.ZD(s)
	};
	B.X.prototype.go = function () {
		return !0
	};
	B.X.prototype.QA = function (F, P) {
		if (F == null) return !1;
		if (this.id == B.SH) return F.K != null;
		var o = F.JU(!0, null, null, !0);
		for (var w = 0; w < o.length; w++) {
			var X = F.r[o[w]];
			if (X.k6(2) || X.k6(31)) {
				alert(h9.get([6, 57, 0]));
				return !1
			}
			if (X.add.artb) {
				alert("You can not transform the whole artboard");
				return !1
			}
			if (X.add.TySh)
				if (!dQ.SR(X.add.TySh, P.SN)) return !1;
			if (X.add.SoLd) {
				if (o.length == 1 && !H.mD.O8(X.add.SoLd.warp.v) && (X.jk() && X.jk().AU || X.add.vmsk && X.add.vmsk.AU)) {
					alert("Unlink masks before transforming Smart Object");
					return !1
				}
				if (!F.a8e(X.add.SoLd.Idnt.v)) {
					alert("Unsupported format of the smart object (" + F.AB(X.add.SoLd.Idnt.v).Z5 + ")");
					return !1
				}
			}
		}
		if (F.K == null) return !0;
		if (!F.FD()) return !1;
		return F.mx()
	};
	B.X.prototype.R$ = function (F, P, o, X, Y) {
		var y = F.a.PY(Y.x, Y.y);
		if (this.y9 == 1) {
			var z = H.P.nJ(H.P.bg(this.JE._4(), this.f_));
			y = H.P.GL(z, y)
		}
		var s = this.y9 == 0 ? this.JE : this.gr;
		this.WE = s.R$(F, o, X, y);
		if (this.WE && s.kl(y)) {
			if (Date.now() - this.ahJ < 250) this.BU(F, P, null, !0);
			this.ahJ = Date.now()
		}
	};
	B.X.prototype.b9 = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.Ik,
			rr: this.cursor
		};
		F.w(P)
	};
	B.X.prototype.$E = function (F, P, o, X, Y) {
		var y = F.a.PY(Y.x, Y.y);
		if (this.y9 == 1) {
			var z = H.P.nJ(H.P.bg(this.JE._4(), this.f_));
			y = H.P.GL(z, y)
		}
		var s = this.y9 == 0 ? this.JE : this.gr;
		if (!Y.Ku) {
			var t = "default";
			if (s) {
				var d = s.Eb(y, F.a.F);
				if (d) t = d
			}
			if (t != this.cursor) {
				this.cursor = t;
				this.b9(P)
			}
		}
		if (!this.WE) return;
		s.$E(F, o, X, y);
		this.TT(F, o, 0, !0);
		this.se(F);
		this.oj(P)
	};
	B.X.prototype.NL = function (F, P, o, X, Y) {
		var y = F.a.PY(Y.x, Y.y);
		this.JE.NL(F, o, X, y);
		this.WE = !1
	};
	B.X.prototype.gU = function (F, P, o, X) {
		if (X.s(G.Xr)) this.BU(F, P, null, !0);
		else if (X.s(G.yc)) this.OZ(F, P);
		else {
			var Y = this.JE.gU(F, o, X);
			if (Y) {
				this.TT(F, o, 0, !0);
				this.oj(P)
			}
		}
	};
	B.X.prototype.zT = function (F, P, o, X) {
		if (F.He == "commit") this.BU(o, P, null, !0);
		else if (F.He == "cancel") this.OZ(o, P);
		else if (F.He == "switchWarp") {
			this.y9 = 1 - this.y9;
			this.a4P();
			this.se(o);
			this.oj(P)
		} else if (F.He == "wrp") {
			this.gr.E$(F.H4);
			this.se(o);
			this.TT(o, this.s0, 0, !0)
		} else if (F.He == "ctyp") {
			this.JE.acB(F.d8);
			this.se(o);
			this.oj(P)
		} else if (F.He == "cen") {
			this.JE.ab8(F.bP);
			this.se(o);
			this.TT(o, this.s0, 0, !0);
			this.oj(P)
		} else if (F.He == "trn") {
			var Y = H.P.Jb(F.Zu),
				y = this.f_,
				z = H.P.bg(this.JE._4(), this.f_);
			Y[6] = z[6], Y[7] = z[7];
			var s = [y.x, y.y, y.x + y.Z, y.y, y.x + y.Z, y.y + y.h, y.x, y.y + y.h];
			H.P.apply(Y, s);
			this._o = F._o;
			this.JE.ZD(s);
			this.se(o);
			this.TT(o, this.s0, 0, !0)
		}
	};
	B.X.prototype.se = function (F) {
		if (this.y9 == 0) this.JE.b4(F, this.s0);
		else {
			this.gr.b4(F);
			var P = H.P.bg(this.JE._4(), this.f_);
			H.P.apply(P, F.v.hK.d);
			H.P.apply(P, F.v.CL)
		}
	};
	B.X.prototype.BU = function (F, P, o, X) {
		this.TT(F, this.s0, this._o);
		var Y = new bV(o ? o : this.name, this);
		if (this.oU == 0) Y.data = {
			type: this.oU,
			r: this.r,
			s6: this.zB,
			EB: B.X.HS(F, this.r)
		};
		else if (this.oU == 1) {
			var y = F.r[this.r[0]],
				z;
			if (y.rD.kB <= 0) {
				z = H.R(y.rD.RL.M());
				H.E4(y.rD.zU, z, 3)
			} else z = F.K.channel;
			var s = {
				rect: y.rD.RL.clone(),
				channel: z
			};
			Y.data = {
				type: this.oU,
				n: this.r[0],
				la: this.la,
				Od: s,
				vg: this.vg,
				o3: this.o3,
				rD: y.rD,
				s6: this.s6,
				EB: {
					T: y.rD.RL,
					Tr: y.rD.zU
				}
			}
		} else if (this.oU == 2) {
			Y.data = {
				type: this.oU,
				la: this.la,
				Od: {
					rect: F.K.rect.clone(),
					channel: H.clone(F.K.channel)
				}
			}
		}
		F.TX(Y);
		var t = this.f_,
			d = new aH(t.x + t.Z / 2, t.y + t.h / 2),
			U = H.P.bg(this.JE._4(), t),
			v = H.P.z5(U),
			A = new cu;
		A.translate(d.x, d.y);
		A.concat(v);
		A.translate(-d.x, -d.y);
		v = A.clone();
		var Z = -Math.atan2(-v.i, v.m),
			D = new cu;
		D.rotate(Z);
		v.concat(D);

		function q(J, W) {
			return {
				t: "UntF",
				v: {
					type: ["#Pxl", "#Prc", "#Ang"][W],
					val: J
				}
			}
		}
		var R = {
			classID: "null",
			null: gY.Pe("Lyr", !0),
			FTcs: {
				t: "enum",
				v: {
					QCSt: "Qcsa"
				}
			},
			Intr: {
				t: "enum",
				v: {
					Intp: "Bcbc"
				}
			},
			Ofst: {
				t: "Objc",
				v: {
					__name: "Offset",
					classID: "Ofst",
					Hrzn: q(A.PV, 0),
					Vrtc: q(A.ye, 0)
				}
			},
			Skew: {
				t: "Objc",
				v: {
					classID: "Pnt",
					Hrzn: q(Math.atan(v.p$) * 180 / Math.PI, 2),
					Vrtc: q(0, 2)
				}
			},
			Wdth: q(v.m * 100, 1),
			Hght: q(v.xA * 100, 1),
			Angl: q(Z * 180 / Math.PI, 2)
		};
		this.JW = P;
		this.track({
			Bm: "transform",
			w1: R
		});
		this.escape(F, P, X)
	};
	B.X.prototype.OZ = function (F, P) {
		if (this.oU == 0) B.X.Pi(F, this.r, this.zB);
		else if (this.oU == 1) {
			var o = F.r[this.r[0]];
			F.K = this.la;
			if (!this.o3) {
				o.rD.RL = this.s6.T;
				o.rD.zU = this.s6.Tr;
				o.CH(F, 0, 0, F.K)
			} else {
				o.Z9(F, this.vg)
			}
			F.A();
			F.Es = !0
		} else if (this.oU == 2) {
			F.K = this.la;
			F.Es = !0
		}
		this.escape(F, P, !0)
	};
	B.X.prototype.escape = function (F, P, o) {
		this.JE.clear(F);
		this.JE = null;
		this.gr = null;
		this.y9 = 0;
		if (o) this.fF(P, i.E.L, {
			e: i.B._g
		})
	};
	B.X.prototype.oF = function (F, P) {
		if (F.type == 0) B.X.Pi(P, F.r, F.EB);
		else {
			if (F.type == 1) {
				var o = P.r[F.n];
				if (F.o3) {
					o.rD = F.rD
				} else {
					o.rD.RL = F.EB.T;
					o.rD.zU = F.EB.Tr
				}
				o.CH(P, 0, 0, P.K);
				P.A()
			}
			P.K = {
				rect: F.Od.rect.clone(),
				channel: H.clone(F.Od.channel)
			};
			P.Es = !0
		}
	};
	B.X.prototype.tO = function (F, P) {
		if (F.type == 0) B.X.Pi(P, F.r, F.s6);
		else {
			if (F.type == 1) {
				var o = P.r[F.n];
				if (F.o3) {
					o.Z9(P, F.vg)
				} else {
					o.rD.RL = F.s6.T;
					o.rD.zU = F.s6.Tr;
					o.CH(P, 0, 0, P.K)
				}
				P.A()
			}
			P.K = F.la;
			P.Es = !0
		}
	};
	B.X.prototype.uu = function (F, P, o) {
		F.Cj();
		var X = [];
		if (o == null)
			for (var w = 0; w < F.QP.length; w++)
				if (F.VW[F.QP[w]].add.vmsk.b.length > 2) X.push(-1 - F.QP[w]);
		var Y = [],
			y = F.a.qa;
		if (y[0] + y[1] + y[2] == 3)
			if (o != null || X.length == 0 || F.mb != null && F.mb.length != 0) Y = F.JU(P, o, null, !0);
		Y = Y.concat(X);
		for (var w = 0; w < F.oD.length; w++) Y.push(-1e3 - F.oD[w]);
		this.r = Y
	};
	B.X.prototype.enable = function (F, P, o, X, Y, y, z) {
		if (this.cursor == null) this.cursor = "default";
		this.b9(P);
		if (this.JE) return;
		this.s0 = o;
		this.uu(F, !0);
		this.c3(F, y && y.wi != null && y.wi != -1 ? y.wi : null, z);
		this.oj(P);
		this.se(F);
		if (y && y.wi == -1) this.zT({
			He: "switchWarp"
		}, P, F, X)
	};
	B.X.prototype.oj = function (F) {
		var P = {
			e: i.B.Zo,
			Q: this.id
		};
		if (this.y9 == 0) {
			var o = H.P.bg(this.JE._4(), this.f_),
				X = H.P.z5(o);
			P.Zu = {
				Aw: X,
				d8: this.JE.abo(),
				bP: this.JE.B3(),
				T: this.f_.clone()
			}
		} else {
			P.H4 = this.gr.qN()
		}
		P.a5E = this.gr != null;
		this.fF(F, i.E.L, P)
	};
	B.X.prototype.c3 = function (F, P, o) {
		var X = this.id == B.SH,
			Y = !0,
			y = this.r[0],
			z = F.r[y],
			t = null;
		if (X) {
			this.oU = 2;
			this.la = F.K
		} else if (F.K && this.r.length == 1 && y >= 0 && !z.rect.qr()) {
			this.oU = 1;
			this.la = F.K;
			this.vg = z.rD;
			this.o3 = !1;
			if (!z.Je(F, F.K)) {
				this.o3 = !0;
				z.WC(F, F.K, !1)
			}
			this.s6 = {
				Tr: z.rD.zU,
				T: z.rD.RL
			}
		} else {
			this.oU = 0;
			this.zB = B.X.HS(F, this.r, null, o);
			for (var w = 0; w < this.zB.length; w++)
				if (this.zB[w][3] != null) Y = !1
		}
		var s = this.oU == 1;
		if (this.zB && this.zB.length == 1) {
			var d = this.zB[0];
			if (d[3] == null) s = !0;
			if (d[4] != null) {
				t = F.r[this.r[0]].add.SoLd;
				if (d[1] || d[2]) s = !1
			}
		}
		var U = X ? F.K.rect.clone() : B.X.o7(F, this.r, o);
		this.f_ = U;
		if (!X && t) {
			var v = B.X.AC(t.nonAffineTransform);
			this.f_ = H.D.nP(H.mD.ij(t.warp.v));
			if (s) this.gr = new cp(t.warp.v);
			this.d4 = H.P.bg(v, this.f_);
			this.JE = new i3(v, !0, !0, Y, !1, !1, P)
		} else {
			if (s || X) this.gr = new cp(H.mD.R(this.f_));
			this.d4 = [1, 0, 0, 0, 1, 0, 0, 0];
			this.JE = new i3([U.x, U.y, U.x + U.Z, U.y, U.x + U.Z, U.y + U.h, U.x, U.y + U.h], !0, !0, Y, !1, !1, P)
		}
		this.al9 = [1, 0, 0, 0, 1, 0, 0, 0]
	};
	B.X.o7 = function (F, P, o) {
		if (P == null) P = F.JU(!0, null, null, !0);
		var X = new ev;
		if (F.K && P.length == 1 && P[0] >= 0) X = F.K.rect.clone();
		else
			for (var w = 0; w < P.length; w++) {
				var Y = P[w],
					y = 0 <= Y ? F.r[Y] : -1e3 < Y ? F.VW[-1 - Y] : F.Yq[-1e3 - Y],
					z = y.add ? y.add.vmsk : null,
					s = 0 <= Y ? y.G_(F, P.length == 1, !1, o) : -1e3 < Y ? H.V.ue(z.b, P.length == 1 && z.p.length != 0 ? z.p : null) : y.rect.clone();
				X = X.s7(s)
			}
		return X
	};
	B.X.prototype.fF = function (F, P, o, X) {
		var Y = new l(P, !0);
		Y.data = o;
		if (X) Y.Q = X;
		F.w(Y)
	};
	B.X.HS = function (F, P, o, X) {
		var Y = [];
		for (var w = 0; w < P.length; w++) {
			var y = P[w],
				z, s;
			if (y >= 0) {
				z = F.r[y];
				s = z.Ys(F, o, X)
			} else if (y > -1e3) {
				z = F.VW[-1 - y];
				s = [2]
			} else {
				Y.push([null, null, null, null, null, null, null, F.Yq[-1e3 - y].clone()]);
				continue
			}
			var t = [];
			if (s.indexOf(0) != -1) {
				var d = {
					ia: [H.clone(z.buffer), z.rect.clone()]
				};
				t.push(d);
				if (z.gO()) {
					var U = z.yg(F);
					d.a8i = H.clone(U.buffer);
					d.aae = U.rect.clone()
				}
			} else t.push(null);
			if (s.indexOf(1) != -1) t.push(z.jk().clone());
			else t.push(null);
			if (s.indexOf(2) != -1) t.push({
				PS: z.add.vmsk.clone(),
				bW: z.add.vstk ? JSON.parse(JSON.stringify(z.add.vstk)) : null,
				qA: z.add.vstk ? B.Y2.Un(F, y) : null,
				P$: z.add.vogk ? JSON.parse(JSON.stringify(z.add.vogk)) : null
			});
			else t.push(null);
			if (z.add.TySh && t[0]) {
				bt.jj(z.add.TySh);
				t.push(z.add.TySh.O.clone())
			} else t.push(null);
			if (z.add.SoLd && t[0]) t.push(JSON.parse(JSON.stringify(z.add.SoLd)));
			else t.push(null);
			if (s.indexOf(3) != -1) t.push(z.yg(F).g.clone());
			else t.push(null);
			if (z.add.lmfx) t.push(JSON.stringify(z.add.lmfx));
			else t.push(null);
			Y.push(t)
		}
		return Y
	};
	B.X.Pi = function (F, P, o) {
		for (var w = 0; w < P.length; w++) {
			var X = P[w],
				Y = 0 <= X ? F.r[X] : -1e3 < X ? F.VW[-1 - X] : F.Yq[-1e3 - X],
				y = o[w];
			if (y[0]) {
				Y.rect = y[0].ia[1].clone();
				Y.buffer = H.clone(y[0].ia[0]);
				if (Y.gO()) {
					var z = Y.yg(F);
					z.buffer = H.clone(y[0].a8i);
					z.rect = y[0].aae.clone()
				}
			}
			if (y[1]) {
				Y.jk().channel = H.clone(y[1].channel);
				Y.jk().rect = y[1].rect.clone();
				Y.jk().G2 = !0
			}
			if (y[2]) {
				Y.add.vmsk = y[2].PS.clone();
				if (y[2].qA) B.Y2.ov(Y, y[2].qA);
				if (y[2].bW) Y.add.vstk = JSON.parse(JSON.stringify(y[2].bW));
				if (y[2].P$) Y.add.vogk = JSON.parse(JSON.stringify(y[2].P$))
			}
			if (y[3]) {
				Y.add.TySh.O = y[3].clone();
				bt.SK(Y.add.TySh)
			}
			if (y[4]) {
				Y.add.SoLd = JSON.parse(JSON.stringify(y[4]))
			}
			if (y[5]) {
				var s = Y.yg(F).g;
				s.channel = H.clone(y[5].channel);
				s.rect = y[5].rect.clone()
			}
			if (y[6]) {
				Y.add.lmfx = JSON.parse(y[6])
			}
			if (y[7]) {
				Y.channel = H.clone(y[7].channel);
				Y.rect = y[7].rect.clone();
				Y.G2 = !0
			}
			if (0 <= X) {
				Y._V(F);
				Y.A()
			}
		}
		F.A()
	};
	B.X.d3 = function (F) {
		var P = F.clone(),
			o = Math.atan2(-P.i, P.m),
			X = new cu;
		X.rotate(-o);
		P.concat(X);
		return (Math.abs(P.m) + Math.abs(P.xA)) / 2
	};
	B.X.Br = function (F, P, o, X, Y, y, z, s, t, d) {
		if (typeof y[0] == "number") {
			var U = [];
			for (var w = 0; w < o.length; w++) U[w] = y;
			y = U
		}
		for (var w = 0; w < o.length; w++) {
			var v = y[w],
				A = H.P.z5(v),
				Z = B.X.d3(A),
				D = o[w],
				q = 0 <= D ? F.r[D] : -1e3 < D ? F.VW[-1 - D] : F.Yq[-1e3 - D],
				R = X[w];
			if (R[0] && q.add.lmfx && s) cr.QE(q.add.lmfx, Z);
			if (R[0] && !R[3] && !R[4] && !R[5]) {
				var J = R[0].ia;
				if (t) {
					var W = t.clone(),
						p = H.R(W.M() * 4);
					H.BP(J[0], J[1], p, W);
					J = [p, W]
				}
				var n = B.X.rx(J, Y, v, z, Y == 0 ? q.buffer.buffer : null, null, null, d);
				if (n) {
					q.rect = n.rect;
					q.buffer = n.buffer
				}
			}
			if (R[1]) B.X.W8(F, R[1], q.jk(), Y, v, z);
			if (R[2]) {
				var b = z && !H.mD.O8(z),
					Q = R[2].PS.clone(),
					_ = o.length == 1 && Q.p.length != 0,
					L = o.length == 1 && Q.s_.length > 1;
				if (L) _ = !1;
				var m = _ ? Q.p : null,
					I = L ? Q.s_ : null;
				if (b) {
					var c = H.mD.ij(z);
					H.P.apply(v, c);
					H.V.af3(Q.b, c, m, I)
				} else H.V.ajB(Q.b, v, m, I);
				if (q.add.vstk && s) {
					q.add.vstk.strokeStyleLineWidth.v.val = R[2].bW.strokeStyleLineWidth.v.val * Z;
					var u = R[2].qA;
					if (u.d1 == 3) {
						u = JSON.parse(JSON.stringify(u));
						var a = u.qA.phase.v;
						u.qA.Scl.v.val = Math.round(u.qA.Scl.v.val * Z);
						a.Hrzn.v = Math.round(a.Hrzn.v * Z);
						a.Vrtc.v = Math.round(a.Vrtc.v * Z);
						B.Y2.ov(q, u)
					}
				}
				if (q.add.vogk) {
					q.add.vogk = JSON.parse(JSON.stringify(R[2].P$));
					if (b || L) H.P$.acG(q.add.vogk);
					else H.P$.O(q.add.vogk, v, o.length > 1 ? [] : Q.p, s)
				}
				Q.bM *= Z;
				q.add.vmsk = Q;
				if (q.add.vogk) H.P$.xc(q.add.vogk, q.add.vmsk)
			}
			if (R[3]) {
				var N = R[3].clone();
				N.concat(A);
				q.add.TySh.O = N;
				bt.SK(q.add.TySh);
				var V = new dc(q.add.TySh.MF, P.SN),
					M = dQ.ti(V, q.add.TySh);
				q.rect = M.T;
				q.buffer = M.Ww
			}
			if (R[4]) {
				var O = q.add.SoLd,
					K = B.X.AC(R[4].nonAffineTransform);
				H.P.apply(v, K);
				var j = H.D.YI(K);
				if (i3.le(K)) {
					if (z) {
						var $ = H.D.nP(H.mD.ij(R[4].warp.v)),
							x = H.P.bg(K, $),
							g = H.D.nP(H.mD.ij(z));
						K = [g.x, g.y, g.x + g.Z, g.y, g.x + g.Z, g.y + g.h, g.x, g.y + g.h];
						H.P.apply(x, K);
						O.warp.v = z
					}
					var T = H.P.bg(K),
						E = K;
					if (!H.P.LS(T)) {
						T[6] = T[7] = 0;
						E = [0, 0, 1, 0, 1, 1, 0, 1];
						H.P.apply(T, E)
					}
					O.Trnf = B.X.uE(E);
					O.nonAffineTransform = B.X.uE(K);
					q.Gy(F, Y == 0)
				}
			}
			if (R[5]) B.X.W8(F, R[5], q.yg(F).g, Y, v, z);
			if (R[7]) B.X.W8(F, R[7], q, Y, v, z);
			if (0 <= D) {
				if (Y != 0) q.HZ();
				q._V(F);
				q.A()
			}
		}
		F.A()
	};
	B.X.Z6 = function (F, P, o, X, Y, y) {
		if (o == null) o = !1;
		return B.X.rx(F, o ? 0 : 1, H.P.Jb(P), null, X, Y, y, o)
	};
	B.X.rx = function (F, P, o, X, Y, y, z, s) {
		if (s == null) s = !1;
		if (s && z) throw "e";
		var t = {},
			A = 0,
			Z = .3;
		if (X && !H.mD.O8(X)) {
			var d = H.mD.ij(X);
			H.P.apply(o, d);
			t.rect = H.D.YI(d);
			t.buffer = H.R(t.rect.M() * 4);
			H.ea.drawImage(d, F[0], F[1].Z, F[1].h, t.buffer, t.rect, P == 0);
			return t
		}
		H.hE(F);
		var U = F[0],
			v = F[1],
			D = v.M() * B.X.d3(H.P.z5(o));
		if (s && D > 4e6) Z = D > 8e6 ? 2.2 : 1.2;
		while (A + 3 < F.length && F[A + 3].M() > 16 && H.P.LS(o) && B.X.d3(H.P.z5(o)) < Z) {
			A += 2;
			var q = F[A],
				R = F[A + 1],
				J = v.Z / R.Z,
				W = v.h / R.h;
			o = H.P.$T(o, [1, 0, v.x, 0, 1, v.y, 0, 0]);
			o = H.P.$T(o, [J, 0, 0, 0, W, 0, 0, 0]);
			o = H.P.$T(o, [1, 0, -v.x, 0, 1, -v.y, 0, 0]);
			v = R;
			U = q
		}
		var p = H.P.$T(o, H.P.Jb(new cu(v.Z, 0, 0, v.h, v.x, v.y))),
			n = [0, 0, 1, 0, 1, 1, 0, 1];
		H.P.apply(p, n);
		t.rect = H.D.YI(n);
		if (z) t.rect = t.rect.$X(z);
		if (s) {
			while ((t.rect.Z & 3) != 0) t.rect.Z++;
			while ((t.rect.h & 3) != 0) t.rect.h++
		}
		if (!i3.le(n) || t.rect.Z > 1e5 || t.rect.h > 1e5 || t.rect.M() > 3e4 * 3e4) return null;
		var b = t.rect.M() * 4;
		if (Y && Y.byteLength >= b && b >= Y.byteLength >> 2) {
			t.buffer = new Uint8Array(Y)
		} else {
			t.buffer = H.R(b)
		}
		H.P.drawImage(p, U, v.Z, v.h, t.buffer, t.rect, P == 0, y, s);
		if (P == 2 && t.buffer) {
			var Q = t.rect.Z,
				_ = t.rect.h,
				L;
			L = [0, -1, 0, -1, 16, -1, 0, -1, 0];
			L = H.Ai.h5(L);
			var m = t.buffer.slice(0);
			H.l7(m);
			H.Ai.or(m, t.buffer, Q, _, L, 0);
			H.hc(t.buffer);
			H.gl(t.buffer)
		}
		if (t.buffer) return t
	};
	B.X.W8 = function (F, P, o, X, Y, y) {
		if (P.color == 255) H.nJ(P.channel);
		var z = P.rect,
			s = H.R(z.M() * 4);
		H.Oy(P.channel, s, 3);
		var t = B.X.rx([s, z], X, Y, y);
		if (t) {
			o.rect = t.rect;
			o.channel = H.R(t.rect.M());
			H.E4(t.buffer, o.channel, 3);
			o.G2 = !0
		}
		if (P.color == 255) {
			H.nJ(P.channel);
			if (t) H.nJ(o.channel)
		}
	};
	B.X.AC = function (F) {
		var P = [],
			o = F.v.length;
		for (var w = 0; w < o; w++) P.push(F.v[w].v);
		return P
	};
	B.X.uE = function (F) {
		var P = {
				t: "VlLs",
				v: []
			},
			o = F.length;
		for (var w = 0; w < o; w++) P.v.push({
			t: "doub",
			v: F[w]
		});
		return P
	};
	B.X.prototype.a4P = function () {
		var F = H.D.nP(H.mD.ij(this.gr.qN())),
			P = H.P.bg(this.JE._4(), this.f_),
			o = [F.x, F.y, F.x + F.Z, F.y, F.x + F.Z, F.y + F.h, F.x, F.y + F.h];
		H.P.apply(P, o);
		this.JE.ZD(o);
		this.f_ = F
	};
	B.X.prototype.TT = function (F, P, o, X) {
		var Y = H.P.bg(this.JE._4(), this.f_);
		Y = H.P.$T(Y, H.P.nJ(this.d4));
		var y = this.gr ? this.gr.qN() : null;
		if (this.oU == 0) {
			this.el = H.P.z5(Y);
			B.X.Br(F, P, this.r, this.zB, o, Y, y, null, null, X)
		} else if (this.oU == 1) {
			var z = F.r[this.r[0]],
				s = this.s6.T;
			if (z.kB <= 0) {
				var t = this.s6.Tr,
					d = this.la;
				if (y && !H.mD.O8(y) && !d.rect.Qn(s)) {
					var U = H.R(d.rect.M() * 4);
					H.BP(t, s, U, d.rect);
					t = U;
					s = d.rect
				}
				var v = B.X.rx([t, s], o, Y, y);
				if (v) {
					z.rD.zU = v.buffer;
					z.rD.RL = v.rect;
					var A = H.R(v.rect.M());
					H.E4(z.rD.zU, A, 3);
					F.K = {
						channel: A,
						rect: z.rD.RL.clone()
					}
				}
			} else {
				var Z = H.R(s.M() * 4);
				H.Oy(this.s6.Tr, Z, 3);
				var v = B.X.rx([Z, s], o, Y, y);
				if (v) {
					z.rD.zU = H.R(v.rect.M());
					H.E4(v.buffer, z.rD.zU, 3);
					z.rD.RL = v.rect
				}
				this.ci(F, o, Y, y)
			}
			z.CH(F, 0, 0, F.K);
			if (o != 0) {
				z.HZ();
				H.HZ(F.K)
			}
			F.Es = !0;
			F.A()
		} else if (this.oU == 2) this.ci(F, o, Y, y)
	};
	B.X.prototype.ci = function (F, P, o, X) {
		var Y = this.la.rect,
			y = H.R(Y.M() * 4);
		H.Oy(this.la.channel, y, 3);
		var z = B.X.rx([y, Y], P, o, X),
			s = H.R(z.rect.M());
		H.E4(z.buffer, s, 3);
		F.K = {
			channel: s,
			rect: z.rect
		};
		F.Es = !0
	};
	B.X.prototype.disable = function (F, P, o, X) {
		if (this.JE) this.BU(F, P, null, !0)
	};
	B.RW = function () {
		B.X.call(this, [10, 16], B.DV, "tools/transform")
	};
	B.RW.prototype = new B.X;
	B.r7 = function () {
		B.X.call(this, [7, 10], B.SH, "tools/transform")
	};
	B.r7.prototype = new B.X;
	B.LW = function (F, P, o) {
		B.An.call(this, [10, 46], B.UK, "tools/transform");
		this.Of = [1, 1, 2, !0];
		this.k9 = "rigidTransform";
		this.nI = null;
		this.alY = null;
		this.hH = null;
		this.rX = null;
		this.HG = null;
		this.Xi = null;
		this.R4 = []
	};
	B.LW.prototype = new B.An;
	B.LW.prototype.go = function () {
		return !0
	};
	B.LW.wM = function (F) {
		if (F == null) return !1;
		if (F.p.length != 1) return !1;
		var P = F.r[F.p[0]];
		return P.add.SoLd || F.FD(!1)
	};
	B.LW.prototype.QA = function (F, P) {
		return B.LW.wM(F)
	};
	B.LW.prototype.enable = function (F, P, o, X, Y, y, z) {
		this.alY = y.mE;
		var s = y.mE,
			t, q = null;
		if (s) {
			var d = F.r[s.n];
			if (d.add.SoLd.filterFX != null) {
				var U = d.add.SoLd.filterFX.v.filterFXList.v;
				if (U[s.index]) t = JSON.parse(JSON.stringify(U[s.index].v.Fltr.v))
			}
		}
		var v = t == null,
			d = F.r[F.p[0]],
			A = d.buffer,
			Z = d.rect,
			D = d.add.SoLd;
		if (D) {
			var R = D.nonAffineTransform.v;
			q = [];
			for (var w = 0; w < 4; w++) q.push(R[w * 2].v, R[w * 2 + 1].v);
			if (v) this.jS("edit", P);
			var J = d.yg(F);
			A = J.buffer;
			Z = J.rect
		}
		this.nI = {
			buffer: A.slice(0),
			rect: Z.clone(),
			alX: q
		};
		if (v) t = B.LW.Tf(this.nI, this.Of);
		this.hH = t;
		this.rX = B.LW.iV(this.hH, this.Of);
		this.GQ();
		this.IG(F);
		if (v) this.qK(P);
		var W = new l(i.E.L, !0);
		W.data = {
			e: i.B.Zo,
			Q: this.id,
			S9: this.Of
		};
		P.w(W);
		W.data = {
			e: i.B.Ik,
			rr: "default"
		};
		P.w(W)
	};
	B.LW.prototype.disable = function (F, P, o, X) {
		if (this.rX) this.BU(F, P, !0)
	};
	B.LW.prototype.GQ = function (F) {
		var P = this.rX;
		this.R4 = [];
		for (var w = 0; w < P.length; w++) {
			var o = P[w];
			for (var X = 0; X < o.p.length; X++) this.R4.push([w, o.p[w]]);
			o.n$ = H.s8.DN(o);
			if (F) H.s8.xI(o)
		}
	};
	B.LW.prototype.zT = function (F, P, o, X) {
		if (F.He == "commit") this.BU(o, P, !0);
		else if (F.He == "cancel") this.OZ(o, P, !0);
		else if (F.He == "prm") {
			var Y = !1;
			for (var w = 0; w < 3; w++)
				if (this.Of[w] != F.S9[w]) Y = !0;
			this.Of = F.S9;
			if (Y) {
				this.hH = B.LW.Tf(this.nI, this.Of, this.hH);
				this.rX = B.LW.iV(this.hH, this.Of);
				this.GQ(!0);
				this.qK(P)
			}
			this.IG(o)
		} else if (F.He == "moveDepth") {
			var y = this.rX;
			for (var z = 0; z < y.length; z++) {
				var s = y[z];
				for (var w = 0; w < s.p.length; w++) {
					var t = s.p[w];
					s.CJ[t] += F.alu ? 1 : -1
				}
			}
			this.qK(P)
		}
	};
	B.LW.prototype.aU = function (F, P) {
		return F == G.Yk || F == G.Yp
	};
	B.LW.prototype.gU = function (F, P, o, X) {
		var Y = X.Ef();
		if (X.s(G.Xr)) this.BU(F, P, !0);
		else if (X.s(G.yc)) this.OZ(F, P, !0);
		else if (X.s(G.Yk) || X.s(G.Yp)) {
			var y = this.rX;
			for (var z = 0; z < y.length; z++) {
				var s = y[z];
				s.p.sort(function (U, v) {
					return v - U
				});
				for (var w = 0; w < s.p.length; w++) {
					var t = s.p[w],
						d = t * 2;
					s.CJ.splice(t, 1);
					s.UI.splice(t, 1);
					s.X$.splice(t, 1);
					s.Q6.splice(t, 1);
					s.us.splice(d, 2);
					s.VE.splice(d, 2)
				}
				s.p = [];
				if (s.Q6.length == 0) {
					s.qH = s.Zc.slice(0);
					s.fU = s.Zc.slice(0)
				}
			}
			this.GQ(!0);
			this.qK(P);
			this.IG(F)
		} else if (Y.x != 0 || Y.y != 0) {
			this.xt(F, Y.x, Y.y, P);
			this.j2 = null
		}
	};
	B.LW.prototype.BU = function (F, P, o) {
		this.jS("confirm", P);
		this.escape(F, P, o)
	};
	B.LW.prototype.OZ = function (F, P, o) {
		this.jS("cancel", P);
		this.escape(F, P, o)
	};
	B.LW.prototype.escape = function (F, P, o) {
		F.v.hK = null;
		F.v.z6 = [];
		F.Vg = !0;
		this.rX = null;
		var X = new l(i.E.L, !0);
		X.data = {
			e: i.B._g
		};
		if (o) P.w(X)
	};
	B.LW.prototype.R$ = function (F, P, o, X, Y) {
		var y = F.a.PY(Y.x, Y.y),
			z = y.x,
			s = y.y,
			t = this.rX,
			d = null,
			U = [0, 2, 4, 1.2, 1.2, 1.2],
			v = -1,
			A = i.J() * 5 / F.a.F;
		for (var w = 0; w < t.length; w++) {
			var Z = t[w],
				D = H.D.n0(Z.VE, z, s, A);
			if (D != -1) d = [w, D];
			if (v == -1 && H.s8.Is.a7N(Z.fU, Z.zM, z, s)) v = w
		}
		if (d == null && v != -1) {
			var Z = t[v];
			B.LW.xV(Z, z, s, z, s, 0);
			d = [v, Z.Q6.length - 1];
			Z.n$ = H.s8.DN(Z)
		}
		this.HG = y;
		if (d) {
			var q = t[d[0]].p.indexOf(d[1]) != -1;
			if (X.s(G.cm) && !q) {
				t[d[0]].p.push(d[1]);
				this.R4.push(d)
			} else if (!q) {
				t[d[0]].p = [d[1]];
				this.R4 = [d]
			}
		}
		this.IG(F)
	};
	B.LW.xV = function (F, P, o, X, Y, y) {
		var z = H.D.n0(F.fU, P, o);
		F.Q6.push(z);
		F.VE.push(X, Y);
		F.us.push(F.fU[z * 2] - P, F.fU[z * 2 + 1] - o);
		F.X$.push(0);
		F.UI.push(!1);
		F.CJ.push(y)
	};
	B.LW.prototype.$E = function (F, P, o, X, Y) {
		var y = F.a.PY(Y.x, Y.y),
			z = this.HG;
		if (z) this.xt(F, y.x - z.x, y.y - z.y, P)
	};
	B.LW.prototype.xt = function (F, P, o, X) {
		var z = {},
			s = this.R4,
			t = this.rX;
		if (this.j2 == null) {
			this.j2 = [];
			for (var w = 0; w < t.length; w++) this.j2.push(t[w].VE.slice(0))
		}
		for (var w = 0; w < s.length; w++) {
			var d = this.R4[w],
				U = d[0],
				v = t[d[0]],
				A = d[1] * 2;
			v.VE[A + 0] = this.j2[U][A + 0] + P;
			v.VE[A + 1] = this.j2[U][A + 1] + o;
			z[U] = U
		}
		for (var U in z) H.s8.xI(this.rX[z[U]]);
		this.IG(F);
		this.qK(X)
	};
	B.LW.prototype.jS = function (F, P) {
		var o = new l(i.E.H, !0);
		o.Q = B._q;
		o.data = {
			e: F,
			mE: this.alY,
			k9: this.k9,
			pl: this.hH
		};
		P.w(o)
	};
	B.LW.prototype.NL = function (F, P, o, X, Y) {
		this.HG = null;
		this.j2 = null
	};
	B.LW.prototype.qK = function (F) {
		B.LW.Ya(this.rX, this.Of, this.hH);
		this.jS("edit", F)
	};
	B.LW.prototype.IG = function (F) {
		var P = this.rX,
			o = this.hH;
		F.v.hK = {
			d: [],
			W: []
		};
		F.v.z6 = [];
		F.v.Cs = [];
		for (var w = 0; w < P.length; w++) {
			var X = P[w];
			for (var Y = 0; Y < X.p.length; Y++) F.v.Cs.push((F.v.z6.length >>> 1) + X.p[Y]);
			F.v.z6 = F.v.z6.concat(X.VE);
			if (this.Of[3]) H.D.concat(F.v.hK, H.D.ae7(X.fU, X.zM))
		}
		F.Vg = !0
	};
	B.LW.Tf = function (F, P, o) {
		var X = F.buffer,
			Y = F.rect,
			y = F.alX,
			z = bv.tt("rigidTransform");
		if (y)
			for (var w = 0; w < 4; w++) {
				z["PuX" + w].v = y[w * 2];
				z["PuY" + w].v = y[w * 2 + 1]
			}
		var s = z.puppetShapeList.v,
			t = H.s8.acF(X, Y.Z, Y.h, P[1], P[2]),
			d = [];
		for (var U = 0; U < t.length; U++) {
			var v = {
				classID: "puppetShape",
				rigidType: {
					t: "bool",
					v: !0
				},
				VrsM: {
					t: "long",
					v: 1
				},
				VrsN: {
					t: "long",
					v: 0
				},
				originalVertexArray: {
					t: "tdta",
					v: []
				},
				deformedVertexArray: {
					t: "tdta",
					v: []
				},
				indexArray: {
					t: "tdta",
					v: []
				},
				pinOffsets: {
					t: "VlLs",
					v: []
				},
				posFinalPins: {
					t: "VlLs",
					v: []
				},
				pinVertexIndices: {
					t: "VlLs",
					v: []
				},
				PinP: {
					t: "VlLs",
					v: []
				},
				PnRt: {
					t: "VlLs",
					v: []
				},
				PnOv: {
					t: "VlLs",
					v: []
				},
				PnDp: {
					t: "VlLs",
					v: []
				},
				meshQuality: {
					t: "long",
					v: 2
				},
				meshExpansion: {
					t: "long",
					v: 2
				},
				meshRigidity: {
					t: "long",
					v: 2
				},
				imageResolution: {
					t: "doub",
					v: 72
				},
				selectedPin: {
					t: "VlLs",
					v: []
				}
			};
			v.meshBoundaryPath = {
				t: "Objc",
				v: {
					classID: "pathClass",
					pathComponents: {
						t: "VlLs",
						v: [{
							t: "Objc",
							v: {
								classID: "PaCm",
								shapeOperation: {
									t: "enum",
									v: {
										shapeOperation: "xor"
									}
								},
								SbpL: {
									t: "VlLs",
									v: [{
										t: "Objc",
										v: {
											classID: "Sbpl",
											Clsp: {
												t: "bool",
												v: !0
											},
											Pts: {
												t: "VlLs",
												v: []
											}
										}
									}]
								}
							}
						}]
					}
				}
			};
			var A = t[U];
			s.push({
				t: "Objc",
				v: v
			});
			var Z = A.Zc.slice(0);
			H.D.O(Z, new cu(1, 0, 0, 1, Y.x, Y.y), Z);
			var D = A.zM;
			for (var w = 0; w < D.length; w += 3) {
				var q = D[w + 1];
				D[w + 1] = D[w + 2];
				D[w + 2] = q
			}
			d.push({
				zM: D,
				Zc: Z,
				qH: Z,
				fU: Z,
				Q6: [],
				us: [],
				VE: [],
				n$: null,
				p: [],
				X$: [],
				UI: [],
				CJ: []
			})
		}
		if (o) {
			var R = B.LW.iV(o, []),
				J = d[0];
			for (var w = 0; w < R.length; w++) {
				var W = R[w];
				for (var p = 0; p < W.p.length; p++) J.p.push((J.VE.length >>> 1) + W.p[p]);
				for (var p = 0; p < W.Q6.length; p++) {
					var n = W.Q6[p] * 2,
						b = W.Zc[n] - W.us[p * 2],
						Q = W.Zc[n + 1] - W.us[p * 2 + 1];
					B.LW.xV(J, b, Q, W.VE[p * 2], W.VE[p * 2 + 1], W.CJ[p])
				}
			}
		}
		B.LW.Ya(d, P, z);
		return z
	};
	B.LW.iV = function (F, P) {
		function o(Q) {
			var _ = [];
			for (var w = 0; w < Q.length; w++) _.push(Q[w].v);
			return _
		}
		var X = F.puppetShapeList.v,
			Y = [];
		for (var y = 0; y < X.length; y++) {
			var z = X[y].v;
			P[0] = z.meshRigidity.v - 1;
			P[1] = z.meshQuality.v - 1;
			P[2] = z.meshExpansion.v;
			var s = z.pinVertexIndices.v.length,
				t = z.meshBoundaryPath.v.pathComponents.v[0].v.SbpL.v[0].v.Pts;
			t.v = [];
			var d = new Uint32Array(new Uint8Array(z.indexArray.v).buffer),
				U = new Float32Array(new Uint8Array(z.originalVertexArray.v).buffer),
				v = new Float32Array(new Uint8Array(z.deformedVertexArray.v).buffer),
				A = [],
				Z = [],
				D = [];
			for (var w = 0; w < d.length; w++) A.push(d[w]);
			for (var w = 0; w < U.length; w++) {
				Z.push(U[w]);
				D.push(v[w])
			}
			var q = o(z.pinVertexIndices.v),
				R = o(z.pinOffsets.v),
				J = o(z.posFinalPins.v),
				W = o(z.PnRt.v),
				p = o(z.PnOv.v),
				n = o(z.PnDp.v),
				b = o(z.selectedPin.v);
			Y.push({
				zM: A,
				Zc: Z,
				qH: D.slice(0),
				fU: D,
				Q6: q,
				us: R,
				VE: J,
				n$: null,
				X$: W,
				UI: p,
				CJ: n,
				p: b
			})
		}
		return Y
	};
	B.LW.Ya = function (F, P, o) {
		function X(A, Z) {
			var D = [];
			for (var w = 0; w < A.length; w++) D.push({
				t: Z,
				v: A[w]
			});
			return D
		}

		function Y(A, Z, D) {
			var q = new(D ? Uint32Array : Float32Array)(A),
				R = new Uint8Array(q.buffer);
			for (var w = 0; w < R.length; w++) Z[w] = R[w]
		}
		var y = o.puppetShapeList.v;
		for (var z = 0; z < y.length; z++) {
			var s = F[z],
				t = y[z].v;
			t.meshRigidity.v = P[0] + 1;
			t.meshQuality.v = P[1] + 1;
			t.meshExpansion.v = P[2];
			Y(s.zM, t.indexArray.v, !0);
			Y(s.Zc, t.originalVertexArray.v);
			Y(s.fU, t.deformedVertexArray.v);
			var d = [];
			for (var w = 0; w < s.Q6.length; w++) {
				var U = s.Q6[w] * 2,
					v = w * 2;
				d[v] = s.Zc[U] - s.us[v];
				d[v + 1] = s.Zc[U + 1] - s.us[v + 1]
			}
			t.PinP.v = X(d, "doub");
			t.pinVertexIndices.v = X(s.Q6, "long");
			t.pinOffsets.v = X(s.us, "doub");
			t.posFinalPins.v = X(s.VE, "doub");
			t.PnRt.v = X(s.X$, "long");
			t.PnOv.v = X(s.UI, "bool");
			t.PnDp.v = X(s.CJ, "doub");
			t.selectedPin.v = X(s.p, "long")
		}
	};
	B.e9 = function (F, P, o) {
		B.An.call(this, F ? F : [10, 40], P ? P : B.Xy, o ? o : "tools/slice");
		this.nc = null;
		this.JW = null;
		this.Pd = null;
		this.a18 = null;
		this.E3 = null;
		this.X7 = null
	};
	B.e9.prototype = new B.An;
	B.e9.cp = function (F, P) {
		var o = -1;
		for (var w = 0; w < F.length; w++) {
			var X = B.e9.rF(F, w);
			if (X[0] <= P.x && P.x <= X[2] && X[1] <= P.y && P.y <= X[3]) {
				o = w;
				break
			}
		}
		return o
	};
	B.e9.prototype.XZ = function (F, P, o, X, Y) {
		this.vn(o);
		o.P0[o.xR[0]].v = F;
		o.Vg = !0;
		this.Ry(o)
	};
	B.e9.prototype.enable = function (F, P, o, X, Y, y) {
		B.An.prototype.enable.call(this, F, P, o, X, Y, y);
		if (!o.Np.P0) {
			var z = new l(i.E.L, !0);
			z.data = {
				e: i.B.Sl,
				S9: ge.qk
			};
			P.w(z)
		}
	};
	B.e9.prototype.disable = function () {
		this.nc = null;
		this.JW = null
	};
	B.e9.prototype.FT = function (F, P, o, X, Y) {
		var y = F.a.PY(Y.x, Y.y),
			z = B.e9.cp(F.P0, y);
		if (z == -1) return;
		this.nc = F;
		this.JW = P;
		F.xR = [z];
		F.Vg = !0;
		if (this.X7 == null) {
			this.X7 = new ba([{
				name: [5, 4]
			}, {
				name: [8, 11, 1],
				sD: !0
			}]);
			this.X7.$("select", this._m, this)
		}
		var s = this.X7;
		s.parent = P;
		s.t();
		s.update(F, o);
		var t = new l(i.E.L, !0);
		t.data = {
			e: i.B.VX,
			Nc: s,
			x: Y.Bx + 2,
			y: Y.yG + 1
		};
		P.w(t)
	};
	B.e9.prototype._m = function (F) {
		var P = this.X7.oe()[0],
			o = this.nc;
		if (P == 0) {
			this.vn(o);
			o.P0.splice(o.xR[0], 1);
			o.xR = [];
			o.Vg = !0;
			this.Ry(o)
		}
		if (P == 1) {
			var X = new l(i.E.L, !0);
			X.data = {
				e: i.B.uH,
				W2: "soptions",
				C: o.P0[o.xR[0]].v
			};
			this.JW.w(X)
		}
	};
	B.e9.prototype.R$ = function (F, P, o, X, Y) {
		if (F == null) return;
		this.vn(F);
		var y = F.a.PY(Y.x, Y.y);
		y = B.qT.aE(F, y, o, [!0, null, !1]);
		y.x = Math.round(y.x);
		y.y = Math.round(y.y);
		this.E3 = y;
		F.P0.unshift(B.e9.Mm());
		F.xR = [0];
		B.e9.EG(F.P0, 0, [y.x, y.y, y.x + 20, y.y + 20]);
		F.Vg = !0
	};
	B.e9.prototype.$E = function (F, P, o, X, Y) {
		if (this.Pd == null) return;
		var y = F.a.PY(Y.x, Y.y),
			z = this.E3;
		y = B.qT.aE(F, y, o, [!0, null, !1]);
		y.x = Math.round(y.x);
		y.y = Math.round(y.y);
		var s = [z.x, z.y, y.x, y.y];
		B.e9.IA(s);
		B.e9.EG(F.P0, 0, s);
		F.Vg = !0
	};
	B.e9.prototype.NL = function (F, P, o, X, Y) {
		this.Ry(F);
		this.E3 = null
	};
	B.e9.prototype.vn = function (F) {
		this.Pd = JSON.stringify(F.P0);
		this.a18 = JSON.stringify(F.xR)
	};
	B.e9.prototype.Ry = function (F) {
		var P = JSON.stringify(F.P0);
		if (P != this.Pd) {
			var o = new bV(this.name, this);
			o.data = {
				s6: this.Pd,
				EB: P,
				aeH: this.a18,
				afJ: JSON.stringify(F.xR)
			};
			F.TX(o)
		}
		this.Pd = null
	};
	B.e9.prototype.tO = function (F, P) {
		P.P0 = JSON.parse(F.s6);
		P.xR = JSON.parse(F.aeH);
		P.Vg = !0
	};
	B.e9.prototype.oF = function (F, P) {
		P.P0 = JSON.parse(F.EB);
		P.xR = JSON.parse(F.afJ);
		P.Vg = !0
	};
	B.e9.prototype.aU = function (F, P) {
		return P != null && P.xR.length != 0 && (F == G.Yk || F == G.Yp)
	};
	B.e9.prototype.gU = function (F, P, o, X) {
		if (F == null) return;
		this.vn(F);
		var Y = X.Ef();
		if (Y.x != 0 || Y.y != 0) B.e9.NK(F, Y);
		if (X.s(G.Yk) || X.s(G.Yp)) {
			var y = F.P0.slice(0);
			for (var w = 0; w < F.xR.length; w++) F.P0.splice(F.P0.indexOf(y[F.xR[w]]), 1);
			F.xR = []
		}
		this.Ry(F)
	};
	B.e9.prototype.zT = function (F, P, o, X, Y) {
		if (o == null || o.xR.length == 0) return;
		this.vn(o);
		var y = o.P0,
			z = o.xR;
		z.sort(function (Z, D) {
			return Z - D
		});
		console.log(z);
		var s = y.slice(0),
			t = [],
			d = [];
		for (var w = 0; w < z.length; w++) {
			var U = z[w],
				v = y[U];
			d.push(v);
			s.splice(s.indexOf(v), 1)
		}
		var A = Math.max(0, Math.min(s.length, z[0] - F.dir));
		for (var w = 0; w < d.length; w++) {
			s.splice(A + w, 0, d[w]);
			t.push(A + w)
		}
		o.P0 = s;
		o.xR = t;
		this.Ry(o)
	};
	B.e9.abx = function (F, P, o, X) {
		var Y = new aH(-P.x, -P.y),
			y = P.Z / o.Z,
			z = P.h / o.h,
			s = [0, 0, P.Z, P.h];
		for (var w = 0; w < F.length; w++) {
			var t = B.e9.rF(F, w);
			if (X) {
				t[0] = Math.round(t[0] * y);
				t[1] = Math.round(t[1] * z);
				t[2] = Math.round(t[2] * y);
				t[3] = Math.round(t[3] * z)
			} else {
				B.e9.OQ(t, Y);
				B.e9.ajw(t, s)
			}
			if (t[0] >= t[2] || t[1] >= t[3]) {
				F.splice(w, 1);
				w--;
				continue
			}
			B.e9.EG(F, w, t)
		}
	};
	B.e9.NK = function (F, P) {
		var o = F.P0;
		for (var w = 0; w < F.xR.length; w++) {
			var X = B.e9.rF(o, F.xR[w]);
			B.e9.OQ(X, P);
			B.e9.EG(o, F.xR[w], X)
		}
	};
	B.e9.ajw = function (F, P) {
		if (F[0] < P[0]) F[0] = P[0];
		if (F[1] < P[1]) F[1] = P[1];
		if (P[2] < F[2]) F[2] = P[2];
		if (P[3] < F[3]) F[3] = P[3]
	};
	B.e9.OQ = function (F, P) {
		F[0] = Math.round(F[0] + P.x);
		F[2] = Math.round(F[2] + P.x);
		F[1] = Math.round(F[1] + P.y);
		F[3] = Math.round(F[3] + P.y)
	};
	B.e9.EG = function (F, w, P) {
		var o = F[w].v.bounds.v;
		o.Left.v = P[0];
		o.Top.v = P[1];
		o.Rght.v = P[2];
		o.Btom.v = P[3]
	};
	B.e9.rF = function (F, w) {
		var P = F[w].v.bounds.v;
		return [P.Left.v, P.Top.v, P.Rght.v, P.Btom.v, w]
	};
	B.e9.IA = function (F) {
		if (F[2] < F[0]) {
			var P = F[0];
			F[0] = F[2];
			F[2] = P
		}
		if (F[2] == F[0]) F[2]++;
		if (F[3] < F[1]) {
			var P = F[1];
			F[1] = F[3];
			F[3] = P
		}
		if (F[3] == F[1]) F[3]++
	};
	B.e9.nP = function (F, P) {
		var o = 1e9,
			X = -1e9,
			Y = 1e9,
			y = -1e9;
		for (var w = 0; w < P.length; w++) {
			var z = B.e9.rF(F, P[w]);
			o = Math.min(o, z[0]);
			Y = Math.min(Y, z[1]);
			X = Math.max(X, z[2]);
			y = Math.max(y, z[3])
		}
		return [o, Y, X, y]
	};
	B.e9.Mm = function () {
		return {
			t: "Objc",
			v: {
				classID: "slice",
				sliceID: {
					t: "long",
					v: 0
				},
				groupID: {
					t: "long",
					v: 0
				},
				origin: {
					t: "enum",
					v: {
						ESliceOrigin: "userGenerated"
					}
				},
				Type: {
					t: "enum",
					v: {
						ESliceType: "Img"
					}
				},
				bounds: {
					t: "Objc",
					v: {
						classID: "Rct1",
						Top: {
							t: "long",
							v: 0
						},
						Left: {
							t: "long",
							v: 0
						},
						Btom: {
							t: "long",
							v: 0
						},
						Rght: {
							t: "long",
							v: 0
						}
					}
				},
				url: {
					t: "TEXT",
					v: ""
				},
				null: {
					t: "TEXT",
					v: ""
				},
				Msge: {
					t: "TEXT",
					v: ""
				},
				altTag: {
					t: "TEXT",
					v: ""
				},
				cellTextIsHTML: {
					t: "bool",
					v: !0
				},
				cellText: {
					t: "TEXT",
					v: ""
				},
				horzAlign: {
					t: "enum",
					v: {
						ESliceHorzAlign: "default"
					}
				},
				vertAlign: {
					t: "enum",
					v: {
						ESliceVertAlign: "default"
					}
				},
				bgColorType: {
					t: "enum",
					v: {
						ESliceBGColorType: "None"
					}
				},
				topOutset: {
					t: "long",
					v: 0
				},
				leftOutset: {
					t: "long",
					v: 0
				},
				bottomOutset: {
					t: "long",
					v: 0
				},
				rightOutset: {
					t: "long",
					v: 0
				}
			}
		}
	};
	B.Kt = function () {
		B.e9.call(this, [10, 41], B.tB, "tools/sselect");
		this.E3 = null;
		this.S8 = null;
		this.sm = null;
		this.Xi = null;
		this.$q = !1
	};
	B.Kt.prototype = new B.e9;
	B.Kt.prototype.R$ = function (F, P, o, X, Y) {
		if (F == null) return;
		var y = F.a.PY(Y.x, Y.y),
			z = B.Kt.nU(y, 4 / F.a.F, F.P0, F.xR);
		z.pop();
		if (z.length != 0) {
			this.E3 = y;
			this.sm = z;
			this.vn(F);
			return
		}
		var s = F.P0,
			t = B.e9.cp(s, y);
		if (t == -1) F.xR = [];
		else {
			var d = F.xR.indexOf(t);
			if (X.s(G.cm)) {
				if (d == -1) F.xR.push(t);
				else F.xR.splice(d, 1)
			} else {
				F.xR.sort(function (q, R) {
					return q - R
				});
				if (d == -1) F.xR = [t];
				this.E3 = y;
				this.vn(F);
				this.S8 = B.e9.nP(s, F.xR);
				this.Xi = [];
				for (var w = 0; w < F.xR.length; w++) this.Xi.push(B.e9.rF(s, F.xR[w]));
				if (X.s(G.ze)) {
					var U = s.slice(0),
						v = F.xR,
						A = [];
					for (var w = 0; w < v.length; w++) {
						var t = v[w],
							Z = U[t],
							D = s.indexOf(Z);
						A.push(D);
						s.splice(D, 0, JSON.parse(JSON.stringify(Z)))
					}
					F.xR = A
				}
			}
		}
		F.Vg = !0
	};
	B.Kt.prototype.$E = function (F, P, o, X, Y) {
		var y = F.a.PY(Y.x, Y.y);
		if (this.E3 == null) {
			var z = B.Kt.nU(y, 4 / F.a.F, F.P0, F.xR),
				s = z.pop(),
				t = z.length == 0 ? "default" : ["ew", "nwse", "ns", "nesw"][s] + "-resize",
				d = new l(i.E.L, !0);
			d.data = {
				e: i.B.Ik,
				rr: t
			};
			P.w(d);
			return
		}
		if (!this.$q && y.Qn(this.E3)) return;
		this.$q = !0;
		var U = F.P0,
			z = this.sm;
		if (z) {
			y = B.qT.aE(F, y, o, [!0, null, !1]);
			var v = Math.round(y.x),
				A = Math.round(y.y);
			for (var w = 0; w < z.length; w += 2) {
				var Z = B.e9.rF(U, z[w]),
					D = z[w + 1];
				Z[D] = (D & 1) == 0 ? v : A;
				B.e9.IA(Z);
				B.e9.EG(U, z[w], Z)
			}
		} else {
			var q = y.gI(this.E3),
				R = this.S8.slice(0);
			B.e9.OQ(R, q);
			var J = new ev(R[0], R[1], R[2] - R[0], R[3] - R[1]),
				W = B.qT.hx(F, J, o, [!0, null, !1], !0);
			B.qT.rz(F, J, W);
			q.x += W[0];
			q.y += W[1];
			for (var w = 0; w < F.xR.length; w++) B.e9.EG(U, F.xR[w], this.Xi[w]);
			B.e9.NK(F, q)
		}
		F.Vg = !0
	};
	B.Kt.prototype.NL = function (F, P, o, X, Y) {
		if (this.E3 == null) return;
		this.Ry(F);
		F.v.zK = null;
		F.Vg = !0;
		this.E3 = null;
		this.sm = null;
		this.Xi = null;
		this.$q = !1
	};
	B.Kt.nU = function (F, P, o, X) {
		var Y = F.x,
			y = F.y,
			z = [],
			s = -1,
			t = [];
		for (var w = 0; w < X.length; w++) {
			var d = X[w],
				U = B.e9.rF(o, d),
				v = U[0],
				A = U[1],
				Z = U[2],
				D = U[3];
			if (Y < v - P || Z + P < Y || y < A - P || D + P < y) continue;
			var q = [Y < v + P, y < A + P, Z - P < Y, D - P < y],
				R = -1;
			for (var J = 0; J < 4; J++) {
				if (q[J] && q[J + 1 & 3]) R = 1 + 2 * (J & 1);
				if (q[J]) z.push(d, J)
			}
			if (R == -1) {
				if (q[0] || q[2]) R = 0;
				if (q[1] || q[3]) R = 2
			}
			if (R != -1) {
				s = R;
				t.push(d)
			}
		}
		var W = z.length;
		for (var w = 0; w < W; w += 2) {
			var d = z[w],
				p = z[w + 1],
				n = B.e9.rF(o, d)[p];
			for (var J = 0; J < X.length; J++) {
				var b = X[J];
				if (t.indexOf(b) != -1) continue;
				var U = B.e9.rF(o, b);
				if (U[p & 1] == n) z.push(b, p & 1);
				if (U[2 + (p & 1)] == n) z.push(b, 2 + (p & 1))
			}
		}
		z.push(s);
		return z
	};
	B._u = function () {
		B.hl.call(this, [10, 44], B.aeq, "tools/oselect");
		this.qy = "crosshair";
		this.aaL = 0
	};
	B._u.prototype = new B.hl;
	B._u.prototype.Qf = function (F, P, o, X) {
		if (Math.random() < 1 / (1 + this.aaL)) {
			alert("The cross should be fully inside the object.", 3500);
			this.aaL++
		}
	};
	B._u.prototype.Ap = function (F, P, o, X) {
		B.J4.bE(F, B.hl.Et, this.JW);
		if (!X.Ku || !this.e3) return;
		var Y = this.o7(F, o, !1),
			y = Y.Z,
			z = Y.h,
			s = Y.x,
			t = Y.y,
			d = Y.x + y,
			U = Y.y + z,
			v = s + y / 2,
			A = t + z / 2,
			Z = B._u.l0;
		F.v.hK = {
			d: [s, t, d, t, d, U, s, U, v - y * Z, A, v + y * Z, A, v, A - z * Z, v, A + z * Z],
			W: "M L L L Z M L M L".split(" ")
		};
		F.Vg = !0
	};
	B._u.l0 = .12;
	B._u.prototype.sj = function (F, P, o, X) {
		F.v.hK = null;
		F.Vg = !0;
		this.finish(F, P, o, X)
	};
	B._u.prototype.getSelection = function (F, P, o, X) {
		if (this.k7.Qn(this.H9) || !this.e3) return null;
		var Y = this.o7(F, o, !1),
			y = F.r[F.p[0]];
		if (Y.qr() || !Y.dg(y.rect)) return null;
		return B.hl.FL("ObSl", Y)
	};
	B.J4 = function () {
		B.gn.call(this, [10, 37], B.eK, "tools/qselect");
		this.mo = "qselect"
	};
	B.J4.prototype = new B.gn;
	B.J4.prototype.R$ = function (F, P, o, X, Y) {
		this.yC(F, o, X, Y, 1);
		if (this.A4 == null) return;
		this.km(F)
	};
	B.J4.prototype.$E = function (F, P, o, X, Y) {
		this.yP(F, P, o);
		B.J4.bE(F, B.hl.Et, P);
		if (this.w6) this.rg(F, o, Y);
		if (this.A4 == null) return;
		if (!Y.Ku) return;
		var y = this.Td(F, o, X, Y);
		if (y != 1) this.km(F)
	};
	B.J4.bE = function (F, P, o) {
		if (F && P.key != B.J4.KA(F)) {
			P.key = B.J4.KA(F);
			var X = F.r[F.p[0]].rect.M(),
				y = "Image Analysis ...";
			if (X == 0) return;
			var Y = X > 1e6,
				z = new l(i.E.L, !0);
			z.data = {
				e: i.B.Uw,
				kr: y
			};
			if (Y) o.w(z);
			setTimeout(function () {
				var s = B.J4.t2(F);
				for (var t in s) P[t] = s[t];
				var z = new l(i.E.L, !0);
				z.data = {
					e: i.B.p7,
					kr: y
				};
				if (Y) o.w(z)
			}, 30)
		}
	};
	B.J4.KA = function (F) {
		var P = F.p[0],
			o = F.r[P],
			X = o.rect,
			Y = X.Z,
			y = X.h,
			z = Y * y,
			s = o.buffer;
		return [P, X.x, X.y, Y, y, s[0], s[1], s[2], s[3]].join(",")
	};
	B.J4.t2 = function (F) {
		var P = F.p[0],
			o = F.r[P],
			X = o.rect,
			Y = X.Z,
			y = X.h,
			z = Y * y,
			s = o.buffer,
			t = Date.now(),
			d = H.R(z);
		d.fill(128);
		var U = H.Hr.xH(s, Y, y);
		var v = {
			key: B.J4.KA(F),
			ap: s,
			rect: X.clone(),
			YY: Y,
			mi: y,
			aI: 12,
			aea: !1,
			px: d,
			As: U,
			K: H.R(z),
			a2: null,
			HX: null,
			LA: null
		};
		B.J4.DM(v);
		return v
	};
	B.J4.DM = function (F, P) {
		var o = F.YY,
			X = F.mi,
			Y = 0,
			y = 0,
			z = Date.now(),
			s = F.a2 != null && H.Hr.tW(F.As.zM, F.a2.zM, F.a2.zo, F.px);
		Y = Date.now() - z;
		z = Date.now();
		if (!s && !F.aea) {
			F.a2 = H.Hr.bY(F.As, o, X, F.px, F.aI);
			if (!H.Hr.tW(F.As.zM, F.a2.zM, F.a2.zo, F.px)) {
				F.aea = !0;
				console.log("conflict")
			}
			F.HX = H.Hr.a1o(F.ap, o, X, F.a2.zM, F.a2.zo);
			F.LA = [F.HX[0].slice(0), []];
			y = Date.now() - z;
			z = Date.now()
		}
		var z = Date.now();
		if (P) {
			F.LA[0].set(F.HX[0]);
			var t = F.HX[1],
				d = F.LA[1];
			for (var U = 0; U < t.length; U++) d[U] = t[U].slice(0);
			H.Hr.a7$(F.a2.zM, o, X, F.a2.zo, F.px, F.K, F.LA)
		}
	};

	function i3(F, P, o, X, Y, y, z, s) {
		this.wT = null;
		this.A2 = F ? F.slice(0) : null;
		this.nC = 4;
		this.H9 = null;
		this.rO = null;
		this.fz = null;
		this.Y1 = -1;
		this.AF = null;
		this.agy = !1;
		this.a6$ = [];
		for (var w = 0; w < 8; w++) this.a6$.push(em.a04(0, PIMG.rotate, -.5, -.5, -45 - w * 45));
		this.a23 = P;
		this.ag5 = o;
		this.aeG = X;
		this.a0g = Y;
		this.a5s = y;
		this.wi = z;
		this.a7Q = s
	}
	i3.prototype.mN = function () {
		return this.Y1 != -1
	};
	i3.prototype._4 = function () {
		return this.A2.slice(0)
	};
	i3.prototype.ZD = function (F) {
		this.A2 = F
	};
	i3.prototype.ac1 = function () {
		return this.b2(this.A2)
	};
	i3.prototype.abo = function () {
		return this.nC
	};
	i3.prototype.acB = function (F) {
		this.nC = F
	};
	i3.prototype.B3 = function (F) {
		if (F == null) F = this.A2;
		if (this.nC == 9) return this.H9;
		else return this.b2(F)[this.nC]
	};
	i3.prototype.ab8 = function (F) {
		if (this.nC == 9) this.H9 = F.clone();
		else {
			var P = this.B3(),
				o = new cu(1, 0, 0, 1, F.x - P.x, F.y - P.y);
			H.D.O(this.A2, o, this.A2)
		}
	};
	i3.prototype.Eb = function (F, P, o) {
		var X = this.aA(F, P),
			Y;
		if (X == 9) return "default";
		if (X == 10) {
			if (o) return null;
			return !this.a23 ? "move" : null
		}
		if (X == -1 || X == 4) return null;
		if (X == 11) {
			var y = this.B3().gI(F);
			Y = 90 - Math.atan2(y.y, y.x) * 180 / Math.PI;
			var z = Math.round(8 * (Y / 360));
			z = (z + 8) % 8;
			return this.a6$[z]
		} else {
			var s = this.DS(F, this.A2);
			Y = [135, 90, 45, 180, 0, 0, 225, 270, 315][X];
			var t = H.P.bg(this.A2);
			Y += Math.atan2(-t[3], t[0]) * 180 / Math.PI;
			var d = "ew nesw ns nwse ew nesw ns nwse".split(" "),
				z = Math.round(8 * (Y / 360));
			z = (z + 8) % 8;
			return d[z] + "-resize"
		}
	};
	i3.prototype.DS = function (F, P) {
		var o = H.P.nJ(H.P.bg(P)),
			X = new Float64Array(2);
		H.P.MC(F.x, F.y, o, X);
		return new aH(X[0], X[1])
	};
	i3.prototype.kl = function (F) {
		var P = this.DS(F, this.A2);
		return 0 <= P.x && P.x <= 1 && 0 <= P.y && P.y <= 1
	};
	i3.prototype.R$ = function (F, P, o, X, Y, y) {
		this.agy = y;
		this.AF = X;
		var z = F.a.F,
			s;
		if (this.A2 == null) X = B.qT.aE(F, X, P);
		this.fz = X.clone();
		if (this.A2 == null) {
			this.fz.offset(1, 1);
			var t = Y == null ? 1 : 1 / Y;
			this.A2 = [X.x, X.y, X.x + 1, X.y, X.x + 1, X.y + t, X.x, X.y + t];
			s = 8
		} else {
			s = this.aA(X, z);
			if (0 <= s && s <= 8) this.fz = this.b2(this.A2)[s]
		}
		this.wT = this.A2.slice(0);
		this.Y1 = s;
		this.b4(F, P);
		this.rO = this.B3();
		return s != -1
	};
	i3.prototype.aA = function (F, P) {
		var o = -1,
			X = this.b2(),
			Y = 6 * i.J() / P;
		if (o == -1)
			if (aH.Yj(this.B3(), F) < Y) o = 9;
		if (o == -1)
			for (var w = 0; w < X.length; w++)
				if (w != 4 && aH.Yj(X[w], F) < Y) o = w;
		if (o == -1 || this.wi == 4) {
			if (this.kl(F)) {
				if (this.a23) o = 10
			} else {
				var y = this.DS(F, this.A2),
					z = new ev(0, 0, 1, 1);
				z.PK(.2, .2);
				o = z.oz(y) && this.wi != 3 ? 11 : 10
			}
		}
		return o
	};
	i3.prototype.$E = function (F, P, o, X) {
		if (this.Y1 == -1) return;
		this.AF = X;
		var Y = o.s(G.cm),
			y = o.s(G.ze),
			z = o.s(G.Bl),
			s = F.a.F,
			t = this.fz,
			d = this.Y1,
			U = this.b2(),
			v = B.qT.aE(F, t, P),
			A = B.qT.aE(F, X, P),
			Z, D;
		if (d == 9) {
			var U = this.b2(),
				q = -1;
			for (var w = 0; w < U.length; w++)
				if (aH.Yj(U[w], A) * s < 10) q = w;
			this.nC = q == -1 ? 9 : q;
			this.H9 = Y ? B.T7.M$(v, A) : A.clone()
		} else if (d == 10) {
			D = H.D.nP(this.wT);
			var R = D.x,
				J = D.y;
			D.offset(X.x - t.x, X.y - t.y);
			if (this.nw()) {
				D.x = Math.round(D.x);
				D.y = Math.round(D.y)
			}
			Z = B.qT.hx(F, D, P);
			var W = new cu(1, 0, 0, 1, D.x - R + Z[0], D.y - J + Z[1]);
			H.D.O(this.wT, W, this.A2)
		} else if (d == 11) {
			var p = this.B3(this.wT),
				n = p.gI(X),
				b = p.gI(t),
				Q = Math.atan2(n.y, n.x),
				_ = Math.atan2(b.y, b.x),
				W = new cu(1, 0, 0, 1, -p.x, -p.y),
				L = Math.PI / 12;
			if (Y) W.rotate(Math.round((_ - Q) / L) * L);
			else W.rotate(_ - Q);
			W.translate(p.x, p.y);
			H.D.O(this.wT, W, this.A2)
		} else {
			var m, I = this.wT,
				c = d == 0 || d == 2 || d == 6 || d == 8;
			if (this.wi == 1) {
				if (c) Y = y = z = !0
			} else if (this.wi == 2 && c && this.agy != !0) z = !0;
			if (this.wi == 3) z = !1;
			if (this.aeG && c && z) {
				var w = [0, 0, 2, 0, 0, 0, 6, 0, 4, 0][d],
					u = -1,
					a = A.x,
					N = A.y;
				if (Y) {
					var V = w + 6 & 7,
						M = w + 10 & 7,
						O = i3.qV(I[w], I[w + 1], I[V], I[V + 1], A.x, A.y),
						K = i3.qV(I[w], I[w + 1], I[M], I[M + 1], A.x, A.y),
						j = O[2] < K[2] ? O : K;
					a = j[0];
					N = j[1];
					if (y) u = O[2] < K[2] ? V : M
				} else if (y) u = w + 4 & 7;
				m = I.slice(0);
				if (u != -1) {
					var $ = I[u],
						x = I[u + 1],
						g = (I[w] + $) / 2,
						T = (I[w + 1] + x) / 2;
					m[u] = g - (a - g);
					m[u + 1] = T - (N - T)
				}
				m[w] = a;
				m[w + 1] = N
			} else if (c && y) {
				var p = this.rO,
					E = p.x,
					a9 = p.y,
					ez = v.x - E,
					bN = v.y - a9,
					cg = 1,
					d8 = 1;
				if (Math.abs(ez) >= 1) cg = (A.x - E) / ez;
				if (Math.abs(bN) >= 1) d8 = (A.y - a9) / bN;
				if (Y) cg = d8 = (cg + d8) / 2;
				var C = new cu;
				C.translate(-E, -a9);
				C.scale(cg, d8);
				C.translate(E, a9);
				m = I.slice(0);
				H.D.O(m, C, m)
			} else {
				if (this.nw()) {
					A.x = Math.round(A.x);
					A.y = Math.round(A.y)
				}
				var S = [0, 1, 2, 5, 8, 7, 6, 3],
					g7 = S[(S.indexOf(d) + 4) % 8],
					g_ = [];
				for (var w = 0; w < 3; w++)
					for (var u = 0; u < 3; u++) g_.push(new aH(u / 2, w / 2));
				var p = this.rO,
					fw = this.DS(A, I),
					dT = this.DS(t, I),
					g4 = y && (this.nC == 4 || this.nC == 9) ? this.DS(p, I) : g_[g7],
					bB = new cu,
					d1 = new cu,
					cg = (fw.x - g4.x) / (dT.x - g4.x);
				if (cg == 0) cg = 1e-4;
				var d8 = (fw.y - g4.y) / (dT.y - g4.y);
				if (d8 == 0) d8 = 1e-4;
				if (this.a0g) {
					cg = Math.max(cg, 0);
					d8 = Math.max(d8, 0)
				}
				if (d == 0 || d == 2 || d == 6 || d == 8) {
					if (Y || this.a5s) bB.scale(cg, cg);
					else bB.scale(cg, d8)
				}
				if (d == 1 || d == 3 || d == 5 || d == 7) {
					var f_ = this.a5s;
					if (d == 1 || d == 7) bB.scale(f_ ? d8 : 1, d8);
					else bB.scale(cg, f_ ? cg : 1);
					if (this.ag5 && z) {
						if (d == 1 || d == 7) d1.p$ = (fw.x - g4.x) / (fw.y - g4.y);
						else d1.i = (fw.y - g4.y) / (fw.x - g4.x)
					}
				}
				var C = new cu;
				C.translate(-g4.x, -g4.y);
				C.concat(bB);
				C.concat(d1);
				C.translate(g4.x, g4.y);
				m = [0, 0, 1, 0, 1, 1, 0, 1];
				H.D.O(m, C, m);
				var j = H.P.bg(I);
				H.P.apply(j, m)
			}
			if (i3.le(m)) this.A2 = m
		}
		this.b4(F, P);
		if (Z) B.qT.rz(F, D, Z)
	};
	i3.qV = function (F, P, o, X, Y, y) {
		var z = o - F,
			s = X - P,
			t = Y - F,
			d = y - P,
			U = z * z + s * s,
			v = t * z + d * s,
			A = v / U,
			Z = F + A * z,
			D = P + A * s,
			q = Y - Z,
			R = y - D;
		return [Z, D, Math.sqrt(q * q + R * R)]
	};
	i3.prototype.nw = function () {
		var F = this.A2;
		return Math.abs(F[1] - F[3]) < 1e-6 && Math.abs(F[2] - F[4]) < 1e-6 || Math.abs(F[0] - F[2]) < 1e-6 && Math.abs(F[3] - F[5]) < 1e-6
	};
	i3.le = function (F) {
		return H.D.xu(F) || H.D.xu([F[6], F[7], F[4], F[5], F[2], F[3], F[0], F[1]])
	};
	i3.prototype.NL = function (F, P, o, X) {
		this.Y1 = -1;
		this.AF = null;
		F.v.zK = null;
		F.v.Tw = [];
		F.Vg = !0
	};
	i3.prototype.gU = function (F, P, o) {
		var X = o.Ef();
		if (X.x || X.y) {
			var Y = new cu(1, 0, 0, 1, X.x, X.y);
			H.D.O(this.A2, Y, this.A2);
			this.b4(F, P);
			return !0
		}
		return !1
	};
	i3.prototype.b2 = function (F) {
		if (F == null) F = this.A2;
		var P = F[6] - F[0],
			o = F[7] - F[1],
			X = F[4] - F[2],
			Y = F[5] - F[3],
			y = [F[0], F[1], F[2], F[3], F[0] + P / 2, F[1] + o / 2, F[2] + X / 2, F[3] + Y / 2, F[6], F[7], F[4], F[5]],
			z = [];
		for (var w = 0; w < 3; w++) {
			var s = w * 4,
				t = y[s + 0],
				d = y[s + 1],
				U = y[s + 2],
				v = y[s + 3];
			z.push(new aH(t, d));
			z.push(new aH(t + (U - t) / 2, d + (v - d) / 2));
			z.push(new aH(U, v))
		}
		return z
	};
	i3.prototype.b4 = function (F, P, o) {
		if (o == null) o = !1;
		var X = this.b2(),
			Y = X[0],
			y = X[2],
			z = X[6],
			s = X[8];
		F.v.hK = {
			W: [],
			d: []
		};
		F.v.hK.W.push("M", "L", "L", "L", "Z");
		F.v.hK.d.push(Y.x, Y.y, y.x, y.y, s.x, s.y, z.x, z.y);
		if (this.a7Q) {
			var t = y.gI(Y),
				d = z.gI(Y),
				U = s.gI(y),
				v = s.gI(z);
			for (var w = 0; w < 3; w++) {
				F.v.hK.W.push("M", "L", "M", "L");
				var A = (w + 1) * .25;
				F.v.hK.d.push(Y.x + t.x * A, Y.y + t.y * A, z.x + v.x * A, z.y + v.y * A);
				F.v.hK.d.push(Y.x + d.x * A, Y.y + d.y * A, y.x + U.x * A, y.y + U.y * A)
			}
		}
		F.a.GW = new ev(0, 0, aH.Yj(X[0], X[2]), aH.Yj(X[0], X[6]));
		if (this.Y1 != -1 && this.Y1 < 9 && this.AF) {
			var Z = F.a._R(this.AF.x, this.AF.y);
			B.An.Wf(Z.x + 10, Z.y - 10, F.a.GW, F, P)
		}
		if (!o) {
			F.v.CL = [];
			for (var w = 0; w < X.length; w++)
				if (w != 4) F.v.CL.push(X[w].x, X[w].y);
			var D = this.B3();
			F.v.CL.push(D.x, D.y)
		}
		F.Vg = !0
	};
	i3.prototype.clear = function (F) {
		F.a.GW = null;
		F.v.zK = null;
		F.v.hK = null;
		F.v.CL = [];
		F.Vg = !0
	};

	function cp(F, P) {
		this.mD = null;
		this.Y1 = -1;
		this.E$(F)
	}
	cp.prototype.qN = function () {
		return JSON.parse(JSON.stringify(this.mD))
	};
	cp.prototype.E$ = function (F) {
		this.mD = JSON.parse(JSON.stringify(F))
	};
	cp.prototype.kl = function (F) {
		return !0
	};
	cp.prototype.Eb = function (F, P) {
		var o = this.aA(F, P);
		if (o == -1) return "default";
		return "pointer"
	};
	cp.prototype.R$ = function (F, P, o, X) {
		this.Y1 = this.aA(X, F.a.F);
		return this.Y1 != -1
	};
	cp.prototype.aA = function (F, P) {
		var o = -1,
			X = 20 * i.J(),
			Y = this.$F();
		for (var w = 0; w < Y.length; w++)
			if (aH.Yj(Y[w], F) * P < X) o = w;
		return o
	};
	cp.prototype.$E = function (F, P, o, X) {
		if (this.Y1 == -1) return;
		var Y = F.a.F,
			y = this.Y1,
			z = H.mD.ij(this.mD);
		z[y * 2] = X.x;
		z[y * 2 + 1] = X.y;
		H.mD.SL(z, this.mD)
	};
	cp.prototype.NL = function (F, P, o, X) {
		this.Y1 = -1;
		F.Vg = !0
	};
	cp.prototype.gU = function (F, P, o) {
		var X = o.Ef();
		if (X.x || X.y) {
			var Y = new cu(1, 0, 0, 1, X.x, X.y);
			H.D.O(this.A2, Y, this.A2);
			this.b4(F)
		}
	};
	cp.prototype.$F = function (F) {
		var P = H.mD.ij(this.mD),
			o = [];
		for (var w = 0; w < P.length; w += 2) o.push(new aH(P[w], P[w + 1]));
		return o
	};
	cp.prototype.b4 = function (F) {
		var P = this.$F();
		F.v.hK = {
			W: [],
			d: []
		};
		F.v.hK.W.push("M", "C", "C", "C", "C");
		var o = [0, 1, 2, 3, 7, 11, 15, 14, 13, 12, 8, 4, 0];
		for (var w = 0; w < o.length; w++) F.v.hK.d.push(P[o[w]].x, P[o[w]].y);
		F.v.hK.W.push("M", "L", "L", "M", "L", "L", "M", "L", "L", "M", "L", "L");
		o = [4, 0, 1, 2, 3, 7, 11, 15, 14, 13, 12, 8];
		for (var w = 0; w < o.length; w++) F.v.hK.d.push(P[o[w]].x, P[o[w]].y);
		F.v.CL = [];
		for (var w = 0; w < P.length; w++) F.v.CL.push(P[w].x, P[w].y);
		F.Vg = !0
	};
	cp.prototype.clear = function (F) {
		F.v.hK = null;
		F.v.CL = [];
		F.Vg = !0
	};
	var cj = {};
	cj.Dg = function (F) {
		this.id = F;
		this.JW = null
	};
	cj.Dg.prototype.XZ = function (F, P, o, X, Y) {};
	cj.Dg.prototype.oF = function (F, P) {};
	cj.Dg.prototype.tO = function (F, P) {};
	cj.Dg.prototype.track = function (F) {
		var P = new l(i.E.QJ, !0);
		P.data = F;
		F.Ke = !0;
		this.JW.w(P)
	};
	cj.History = function () {
		cj.Dg.call(this, B.Kb);
		this.Q$ = !0;
		this.afd = 0
	};
	cj.History.prototype = new cj.Dg;
	cj.History.prototype.XZ = function (F, P, o, X) {
		o.Ob = !0;
		if (F.e == "h_itemchange") {
			if (F.index < o.xG)
				for (var w = o.xG; w > F.index; w--) this.ip(o);
			if (F.index > o.xG)
				for (var w = o.xG; w < F.index; w++) this.Bw(o)
		}
		if (F.e == "h_stepfwd") this.Bw(o);
		if (F.e == "h_stepbck") this.ip(o);
		if (F.e == "h_undoredo") {
			var Y = this.Q$ || this.afd != o.xG;
			if (Y) {
				this.ip(o);
				Y = !1
			} else {
				this.Bw(o);
				Y = !0
			}
			this.Q$ = Y;
			this.afd = o.xG
		} else this.Q$ = !0
	};
	cj.History.prototype.ip = function (F) {
		if (F.xG == 0) return;
		var P = F.history[F.xG];
		P.Q.tO(P.data, F);
		F.xG--
	};
	cj.History.prototype.Bw = function (F) {
		if (F.xG == F.history.length - 1) return;
		var P = F.history[F.xG + 1];
		P.Q.oF(P.data, F);
		F.xG++
	};
	cj.T8 = function () {
		cj.Dg.call(this, B.xC);
		this.JW = null
	};
	cj.T8.prototype = new cj.Dg;
	cj.T8.prototype.XZ = function (F, P, o, X, Y) {
		this.JW = P;
		var y = F.e,
			z = F.n != null ? F.n : o.p.length != 0 ? o.p[0] : o.r.length - 1,
			s = o.r[z];
		o.Vf = !0;
		if (y == h.qZ && o.K == null) y = h.xm;
		if (y == h.N1) {
			var t = new bV([6, 33], this),
				d = s.fO() ? ["pass"].concat(aK.YA) : aK.YA,
				U = F.n != null ? [F.n] : o.p,
				v = JSON.stringify(U),
				A = [];
			for (var w = 0; w < U.length; w++) A.push(o.r[U[w]].sW);
			t.data = {
				e: y,
				Ev: v,
				AR: A,
				uB: d[F.uB]
			};
			o.TX(t);
			this.oF(t.data, o);
			this.track(gY.JK("Md", {
				t: "enum",
				v: {
					BlnM: aK.zn[F.uB]
				}
			}))
		}
		if (y == h.Ot) {
			var t, Z = o.a1(),
				U = F.n != null ? [F.n] : o.p,
				v = JSON.stringify(U);
			if (Z && Z.data && Z.data.e == y && Z.data.Ev == v) t = Z;
			else {
				var D = gY.JK("Opct", {
					t: "UntF",
					v: {
						type: "#Prc",
						val: 0
					}
				});
				this.track(D);
				var A = [];
				for (var w = 0; w < U.length; w++) A.push(o.r[U[w]].opacity);
				t = new bV([6, 32], this);
				t.data = {
					e: y,
					Ev: v,
					AR: A,
					uB: F.uB,
					ay: D.w1
				};
				o.TX(t)
			}
			t.data.uB = F.uB;
			t.data.ay.T.v.Opct.v.val = Math.round(F.uB * 100 / 255);
			this.oF(t.data, o)
		}
		if (y == h.Ib) {
			if (s.add.iOpa == null) s.add.iOpa = 255;
			var t, Z = o.a1();
			if (Z && Z.data && Z.data.e == y && Z.data.n == z) t = Z;
			else {
				t = new bV("Fill Opacity Change", this);
				t.data = {
					e: y,
					n: z,
					AR: s.add.iOpa,
					uB: F.uB
				};
				o.TX(t)
			}
			t.data.uB = F.uB;
			this.oF(t.data, o)
		}
		if (y == h.Lm) {
			var q = F.uB,
				R = F.n != null ? [F.n] : o.p.slice(0),
				J = [],
				W = [],
				t;
			for (var p = 0; p < R.length; p++) {
				var n = o.r[R[p]];
				if (n.add.lspf == null) n.add.lspf = 0;
				var A = n.add.lspf,
					b = A;
				for (var w = 0; w < q[0].length; w++) {
					var Q = q[1][w],
						_ = 1 << Q;
					if ((b & _) == 0 && q[0][w]) b ^= _;
					else if ((b & _) != 0 && !q[0][w]) b ^= _
				}
				J.push(A);
				W.push(b)
			}
			var Z = o.a1(),
				U = JSON.stringify(R);
			if (Z && Z.data && Z.data.e == y && JSON.stringify(Z.data.Ev) == U) {
				t = Z;
				t.data.uB = W
			} else {
				var t = new bV([6, 57, 1], this);
				t.data = {
					e: y,
					Ev: U,
					AR: J,
					uB: W
				};
				o.TX(t)
			}
			this.oF(t.data, o)
		}
		if (y == h.t_) {
			var L = "----",
				m = F.x9,
				b = null;
			for (var w = 0; w < df.Tz.m_.length; w++)
				if (s.add[df.Tz.m_[w]]) L = df.Tz.m_[w];
			var I = s.add[L];
			if (m == "TySh") b = bt.T_(50, 50, Y.T2);
			var t = new bV("Layer Type", this);
			t.data = {
				e: y,
				n: z,
				a6z: [L, I],
				x9: [m, b]
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.K7) {
			var R = [];
			if (X.s(G.ze)) {
				var c = o.a1(),
					u = c ? c.data : null;
				if (c != null && c.Q == this && u.e == h.K7 && u.Ev.length != 1) {
					var a = new l(i.E.H);
					a.Q = B.Kb;
					a.data = {
						e: "h_stepbck"
					};
					P.w(a);
					if (u.n == z) return
				}
				var N = o.root.V$(z),
					V = o.JU(null, z);
				while (N.parent != o.root) {
					V.push(N.parent.index);
					N = N.parent
				}
				for (var w = 0; w < o.r.length; w++) {
					var M = o.r[w],
						O = M.UQ(),
						K = V.indexOf(w) != -1;
					if (!K && O) R.push(w);
					if (w == z && !O) R.push(w)
				}
			} else {
				R.push(z);
				var O = o.r[z].UQ(),
					D = {
						Bm: O ? "hide" : "show",
						w1: {
							classID: O ? "Hd" : "Shw",
							null: {
								t: "VlLs",
								v: [gY.Pe("Lyr", !0)]
							}
						}
					};
				this.track(D)
			}
			var t = new bV("Layer visibility", this, !0);
			t.data = {
				e: y,
				Ev: R,
				n: z
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.Tq) {
			var D = {
					Bm: "select",
					w1: {
						classID: "null",
						MkVs: {
							t: "bool",
							v: !1
						}
					}
				},
				j, escape = !1;
			if (o.a.qa.join("") != "111") {
				o.a.qa = [1, 1, 1];
				o.Vg = !0
			}
			if (X.s(G.Bl) || F.akM == 0) {
				var $ = o.p.indexOf(z);
				if ($ == -1) o.p.push(z);
				else if (o.p.length > 1) o.p.splice($, 1);
				o.p.sort(function (t, hX) {
					return t - hX
				});
				D.w1.selectionModifier = {
					t: "enum",
					v: {
						selectionModifierType: "addToSelection"
					}
				};
				j = z
			} else if (X.s(G.cm) && !X.s(G.ze) && F.wH > 0) {
				y = F.wH == 1 ? h.kX : F.wH == 2 ? h.OT : h.yV;
				escape = !0
			} else if ((X.s(G.cm) || F.akM == 1) && o.p.length > 0) {
				var x = Math.min(z, o.p[0]),
					g = Math.max(z, o.p[o.p.length - 1]);
				o.p = [];
				for (var w = x; w <= g; w++)
					if (o.r[w].add.lsct != gr.Qi) o.p.push(w);
				D.w1.selectionModifier = {
					t: "enum",
					v: {
						selectionModifierType: "addToSelectionContinuous"
					}
				};
				j = z
			} else {
				j = z;
				var M = o.r[z];
				if (M.fO() && F.a6x) M.add.lsct = gr.lw;
				else if (o.p.length == 1 && o.p[0] == z && F.wH == M.kB) {
					return
				}
				o.p = [z];
				o.HP()
			}
			if (j != null) {
				D.w1.null = {
					t: "obj ",
					v: [{
						t: "name",
						v: {
							classID: "Lyr",
							val: o.r[j].getName()
						}
					}]
				}, this.track(D)
			}
			if (!escape) {
				if (o.p.length == 1) {
					var T = o.p[0];
					for (var w = 0; w < o.r.length; w++) {
						if (w == T) continue;
						var n = o.r[w];
						n.kB = 0;
						n.yb = !1
					}
					var s = o.r[T];
					if (F.wH == 2) {
						s.yb = !s.yb;
						o.QP = []
					} else {
						s.kB = F.wH <= 0 ? 0 : F.wH;
						if (F.wH == 1 || F.wH == 3) {
							var E = F.wH == 3 ? s.yg(o).g : s.jk();
							E.gG = !1
						}
					}
				} else
					for (var w = 0; w < o.r.length; w++) {
						var n = o.r[w];
						n.kB = 0;
						n.yb = !1
					}
				o.mb = null;
				o.Ob = !0
			}
		}
		if (y == h.kX || y == h.yV) {
			var a9 = y == h.kX,
				E = a9 ? s.jk() : s.yg(o).g;
			if (E == null) return;
			var t = new bV(E.isEnabled ? a9 ? [6, 15] : [6, 42] : a9 ? [6, 14] : [6, 41], this);
			t.data = {
				e: y,
				n: z
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.OT) {
			var E = s.add.vmsk;
			if (E == null) return;
			var t = new bV(E.isEnabled ? [6, 17] : [6, 16], this);
			t.data = {
				e: y,
				n: z
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.cJ) {
			if (s.add.lsct == gr.lw) s.add.lsct = gr.kE;
			else s.add.lsct = gr.lw;
			o.Ob = !0
		}
		if (y == h.zO) {
			if (!o.Uu(z)) return;
			var t = new bV(s.rd ? [6, 19] : [6, 18], this);
			t.data = {
				e: y,
				n: z
			};
			o.TX(t);
			if (F.uB == null || F.uB != s.rd) this.oF(t.data, o);
			this.track({
				Bm: "groupEvent",
				w1: {
					classID: "GrpL",
					null: {
						t: "obj ",
						v: [gY.Pe("Lyr", !0)]
					}
				}
			})
		}
		if (y == h.yf) {
			if (s.dL()) s.ix -= 32;
			else s.ix += 32;
			o.Ob = !0
		}
		if (y == h.r5 || y == h.Hl) {
			var t;
			if (y == h.r5) t = new bV(s.add.lmfx.masterFXSwitch.v ? [6, 30] : [6, 29], this);
			if (y == h.Hl) t = new bV(s.add.SoLd.filterFX.v.enab.v ? [6, 44] : [6, 43], this);
			t.data = {
				e: y,
				n: z
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.Dv || y == h.y6) {
			var T = F.index,
				t;
			if (y == h.Dv) t = new bV(s.add.lmfx[ce.og[T[0]]].v[T[1]].v.enab.v ? [6, 30] : [6, 29], this);
			if (y == h.y6) t = new bV(s.add.SoLd.filterFX.v.filterFXList.v[T].v.enab.v ? [6, 44] : [6, 43], this);
			t.data = {
				e: y,
				n: z,
				index: F.index
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.Fv) {
			if (F.src == F.Fi) return;
			var ez = o.r[F.src],
				bN = o.r[F.Fi],
				cg = ez.add.lmfx ? JSON.stringify(ez.add.lmfx) : "",
				d8 = bN.add.lmfx ? JSON.stringify(bN.add.lmfx) : "";
			if (bN.add.lmfx == null) {
				bN.add.lmfx = JSON.parse(ce.default);
				for (var w = 0; w < ce.order.length; w++) bN.add.lmfx[ce.og[w]] = {
					t: "VlLs",
					v: []
				}
			}
			if (F.sG == null) {
				bN.add.lmfx = JSON.parse(cg);
				if (!F.HO) delete ez.add.lmfx
			} else {
				var C = F.sG[0],
					S = ce.og[C];
				if (ce.eB.indexOf(ce.order[C]) == -1) bN.add.lmfx[S].v = [];
				bN.add.lmfx[S].v.push(ez.add.lmfx[S].v[F.sG[1]]);
				if (!F.HO) ez.add.lmfx[S].v.splice(F.sG[1], 1)
			}
			var g7 = ez.add.lmfx ? JSON.stringify(ez.add.lmfx) : "",
				g_ = bN.add.lmfx ? JSON.stringify(bN.add.lmfx) : "";
			if (!bN.dL()) bN.ix += 32;
			var t = new bV("Move Layer Styles", this);
			t.data = {
				e: y,
				ae9: F.src,
				a5o: F.Fi,
				agF: cg,
				aj7: d8,
				ahh: g7,
				a74: g_
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.kF) {
			var n = o.r[F.src],
				fw = JSON.stringify(n.add.SoLd),
				dT = JSON.parse(fw),
				g4 = dT.filterFX.v.filterFXList.v;
			g4.splice(F.sG, 1);
			var t = new bV([6, 53], this);
			t.data = {
				e: h.bj,
				kq: [{
					XY: F.src,
					rZ: [fw, JSON.stringify(dT)]
				}]
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.Op) {
			var ez = o.r[F.src],
				bN = o.r[F.Fi],
				bB = [];
			if (ez != bN && bN.add.SoLd == null) {
				alert("Target layer is not a smart object!");
				return
			}
			if (ez == bN && !F.HO && (F.sG == F.ON || F.sG == -1)) return;
			var d1 = ez.yg(o),
				fw = JSON.stringify(ez.add.SoLd),
				dT = JSON.parse(fw),
				g4 = dT.filterFX.v.filterFXList.v;
			if (ez == bN) {
				g4.splice(F.ON, 0, g4[F.sG]);
				if (!F.HO) g4.splice(F.sG + (F.sG < F.ON ? 0 : 1), 1);
				bB.push({
					XY: F.src,
					rZ: [fw, JSON.stringify(dT)]
				})
			} else if (F.sG == -1) {
				var f_ = dT.filterFX;
				if (!F.HO) {
					delete dT.filterFX;
					bB.push({
						XY: F.src,
						rZ: [fw, JSON.stringify(dT)],
						DD: [d1, null]
					})
				}
				var g$ = bN.gO() ? bN.yg(o) : null,
					eT = c_.HU(d1),
					dz = JSON.stringify(bN.add.SoLd),
					i4 = JSON.parse(dz);
				i4.placed.v = eT.id;
				i4.filterFX = f_;
				bB.push({
					XY: F.Fi,
					rZ: [dz, JSON.stringify(i4)],
					DD: [g$, eT]
				})
			} else {
				var fy = g4[F.sG];
				if (!F.HO) {
					g4.splice(F.sG, 1);
					bB.push({
						XY: F.src,
						rZ: [fw, JSON.stringify(dT)]
					})
				}
				var dz = JSON.stringify(bN.add.SoLd),
					i4 = JSON.parse(dz);
				if (i4.filterFX == null) i4.filterFX = bv.U$();
				var cN = i4.filterFX.v.filterFXList.v;
				cN.splice(F.ON, 0, fy);
				var fP = {
					XY: F.Fi,
					rZ: [dz, JSON.stringify(i4)]
				};
				if (!bN.gO()) {
					var eT = c_.eg(bN.add.SoLd.placed.v);
					fP.DD = [null, eT]
				}
				bB.push(fP)
			}
			var t = new bV([6, 52], this);
			t.data = {
				e: h.bj,
				kq: bB
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.dh) {
			var E = s.jk(),
				t = new bV(E.AU ? [6, 26] : [6, 25], this);
			t.data = {
				e: y,
				n: z
			};
			o.TX(t);
			this.oF(t.data, o);
			this.track({
				Bm: "set",
				w1: {
					classID: "setd",
					null: {
						t: "obj ",
						v: [gY.Pe("Lyr", !0)]
					},
					T: {
						t: "Objc",
						v: {
							classID: "Lyr",
							Usrs: {
								t: "bool",
								v: E.AU
							}
						}
					}
				}
			})
		}
		if (y == h.t7) {
			var E = s.add.vmsk,
				t = new bV(E.AU ? [6, 28] : [6, 27], this);
			t.data = {
				e: y,
				n: z
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.I8) {
			var du = [],
				t;
			for (var w = 0; w < o.p.length; w++) {
				var p = o.p[w],
					M = o.r[p];
				if (M.add.vogk) du.push(p, JSON.stringify(M.add.vogk))
			}
			for (var w = 0; w < o.QP.length; w++) {
				var p = o.QP[w],
					M = o.VW[p];
				if (M.add.vogk) du.push(-1 - p, JSON.stringify(M.add.vogk))
			}
			H.P$.a5g(o, F.gx, F.ahs);
			var ea = [];
			for (var w = 0; w < o.p.length; w++) {
				var p = o.p[w],
					M = o.r[p];
				if (M.add.vogk) ea.push(p, JSON.stringify(M.add.vogk))
			}
			for (var w = 0; w < o.QP.length; w++) {
				var p = o.QP[w],
					M = o.VW[p];
				if (M.add.vogk) ea.push(-1 - p, JSON.stringify(M.add.vogk))
			}
			var Z = o.a1();
			if (Z && Z.data && Z.data.e == y) {
				var cF = !0;
				for (var w = 0; w < du.length; w += 2)
					if (du[w] != Z.data.HL[w]) cF = !1;
				if (cF) {
					t = Z;
					t.data.KK = ea
				}
			}
			if (t == null) {
				var t = new bV([12, 91, 1], this);
				t.data = {
					e: y,
					HL: du,
					KK: ea
				};
				o.TX(t)
			}
			this.oF(t.data, o)
		}
		if (y == h.K6) {
			var t, Z = o.a1();
			if (Z && Z.data && Z.data.e == y && Z.data.n == z) {
				t = Z;
				t.data.eR = JSON.stringify(F.eR)
			}
			if (t == null) {
				var t = new bV("Editing Artboard", this);
				t.data = {
					e: y,
					n: z,
					ah$: JSON.stringify(s.add.artb),
					eR: JSON.stringify(F.eR)
				};
				o.TX(t)
			}
			this.oF(t.data, o)
		}
		if (y == h.IB) {
			var ea = o.Yq.slice(0),
				bp = o.oD.slice(0),
				hf = o.K,
				bq = o.K;
			if (F.mQ == "fromAction") {
				var eY = F.C.Bm,
					f1 = F.C.w1;
				if (eY == "make" || eY == "duplicate") {
					var dh = ea.length,
						e7 = !1,
						ed = !1;
					if (o.ET()) dh--;
					var hn = new h.vm;
					hn.name = "Alpha " + (dh + 1);
					if (eY == "make") {
						var hP = f1.Nw.v;
						hn.color = 255;
						bp = [dh];
						hn.gG = !0;
						hn.oE = hP.Opct.v;
						if (hP.Nm) hn.name = hP.Nm.v;
						if (hP.classID == "SCch") {
							e7 = !0;
							bq = null;
							hn.iy = 1
						}
					} else {
						var ck = f1.null.v[0].v;
						if (ck.keyID == "fsel") e7 = !0;
						else {
							var ds = B.hl.E0(o);
							bq = B.hl.nh(o, ds);
							hn.color = 0;
							hn.rect = bq.rect;
							hn.channel = bq.channel
						}
					}
					if (e7) {
						hn.color = 0;
						if (o.K) {
							hn.rect = o.K.rect.clone();
							hn.channel = o.K.channel.slice(0)
						}
						if (ed) {
							hn.color = 255 - hn.color;
							H.nJ(hn.channel)
						}
					}
					ea.splice(dh, 0, hn)
				} else if (eY == "delete") {
					var V = o.oD;
					V.sort(function (t, hX) {
						return hX - t
					});
					if (V.length == 0) return;
					for (var w = 0; w < V.length; w++) ea.splice(V[w], 1);
					bp = []
				} else if (eY == "hide") {
					ea[bp[0]] = ea[bp[0]].clone();
					ea[bp[0]].gG = !1
				}
			}
			if (F.mQ == "rnm") {
				ea[F.XN] = ea[F.XN].clone();
				ea[F.XN].name = F.name
			}
			var t = new bV("Channel Edit", this);
			t.data = {
				e: y,
				HL: o.Yq.slice(0),
				jt: o.oD.slice(0),
				KK: ea,
				JA: bp,
				la: hf,
				Od: bq
			};
			this.oF(t.data, o);
			o.TX(t)
		}
		if (y == h.Pj) {
			var t = new bV(F.tP, this);
			t.data = {
				e: h.Pj,
				Q1: o.r.slice(0),
				L_: F.L_,
				NA: o.p.slice(0),
				Vk: F.Od
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.R0) {
			var hB = o.JU(null, F.n),
				d0 = 1e10;
			if (hB.length == 0) return;
			if (o.r.length == hB.length) {
				alert("Project must have at least 1 layer");
				return
			}
			var bd = [];
			for (var w = 0; w < o.r.length; w++)
				if (hB.indexOf(w) == -1) bd.push(o.r[w]);
			for (var w = 0; w < hB.length; w++) d0 = Math.min(d0, hB[w]);
			d0 = Math.max(d0 - 1, 0);
			while (bd[d0].name == "</Layer group>") d0++;
			this.track({
				Bm: "delete",
				w1: {
					classID: "Dlt",
					null: gY.Pe("Lyr", !0)
				}
			});
			var t = new bV([6, 31], this);
			t.data = {
				e: h.Pj,
				Q1: o.r.slice(0),
				L_: bd,
				NA: o.p.slice(0),
				Vk: [d0]
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.IQ) {
			var V = F.agl ? F.agl : o.p,
				d$ = 0,
				fv = !1;
			if (V.length == 0) return;
			if (V.length == 1 && o.r[V[0]].Qk == 0) {
				alert(h9.get([15, 7, 5]));
				return
			}
			var ap = [];
			for (var w = 0; w < o.r.length; w++) {
				var dE = o.r[w].Qk;
				ap.push(dE);
				d$ = Math.max(d$, dE)
			}
			var c8 = -1,
				bT = -1;
			for (var w = 0; w < V.length; w++) {
				var dE = o.r[V[w]].Qk;
				if (dE == 0) fv = !0;
				else if (c8 == -1 || c8 == dE) c8 = dE;
				else bT = dE
			}
			if (!fv)
				for (var w = 0; w < V.length; w++) o.r[V[w]].Qk = 0;
			else if (c8 != -1 && bT == -1)
				for (var w = 0; w < V.length; w++) o.r[V[w]].Qk = c8;
			else
				for (var w = 0; w < V.length; w++) o.r[V[w]].Qk = d$ + 1;
			var bi = [];
			for (var w = 0; w < o.r.length; w++) {
				var dE = o.r[w].Qk;
				if (bi[dE] == null) bi[dE] = 0;
				bi[dE]++
			}
			for (var w = 0; w < o.r.length; w++) {
				var dE = o.r[w].Qk;
				if (bi[dE] == 1) o.r[w].Qk = 0
			}
			var i7 = ap;
			ap = [];
			for (var w = 0; w < o.r.length; w++) {
				var dE = o.r[w].Qk;
				ap.push(dE);
				d$ = Math.max(d$, dE)
			}
			var t = new bV(fv ? [6, 54, 0] : [6, 54, 1], this);
			t.data = {
				e: h.IQ,
				afv: i7,
				acc: ap
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.xm && (F.n != null || o.p.length != 0) || y == h.RO) {
			var ec = o.FQ(y == h.xm ? F.n : z, null, F.akZ);
			if (y == h.RO) {
				var n = ec[0],
					eY = n.add.SoLd.Idnt.v,
					eg = o.AB(eY).clone();
				n.add.SoLd.Idnt.v = eg.Za = c_.vs() + eY.slice(8);
				o.add.lnk2.push(eg)
			}
			if (y == h.xm) {
				var hZ = {
					Bm: "duplicate",
					w1: {
						classID: "null",
						null: gY.Pe("Lyr", !0)
					}
				};
				if (F.gA) {
					ec[0].uf(F.gA);
					hZ.Nm = {
						t: "TEXT",
						v: F.gA
					}
				}
				this.track(hZ);
				F.aga = F.n
			}
			y = h.uP;
			F.r = ec;
			F.kM = o;
			F.qW = o
		}
		if (y == h.uP) {
			var fu, bg, co = F.kM,
				ga = F.qW;
			if (co != ga) {
				console.log("ADDLAYERS different projs");
				var fu = new ev(0, 0, co.Z, co.h),
					bg = new ev(0, 0, ga.Z, ga.h),
					e5 = [],
					fM = [];
				for (var w = 0; w < F.r.length; w++) {
					var n = F.r[w];
					if (n.add.SoLd == null) continue;
					var eY = n.add.SoLd.Idnt.v;
					if (e5.indexOf(eY) == -1) {
						e5.push(eY);
						fM.push(c_.vs() + eY.slice(8))
					}
					n.add.SoLd.Idnt.v = fM[e5.indexOf(eY)];
					var d1 = n.yg(co);
					if (d1) {
						co.OW(d1);
						ga.Bq(d1)
					}
				}
				if (e5.length > 0) {
					if (ga.add.lnk2 == null) ga.add.lnk2 = [];
					for (var w = 0; w < e5.length; w++) {
						var bb = co.AB(e5[w]),
							eg = bb.clone();
						eg.Za = fM[w];
						ga.add.lnk2.push(eg)
					}
				}
			}
			var hf = ga.p.slice(0);
			hf.sort(function (t, hX) {
				return t - hX
			});
			var bd = ga.r.slice(0),
				bq = [],
				hp = -1;
			for (var w = 0; w < hf.length; w++) hp = Math.max(hp, hf[w]);
			if (F.aga != null) hp = F.aga;
			hp++;
			for (var w = 0; w < F.r.length; w++) {
				var M = F.r[w];
				bd.splice(hp, 0, M);
				bq.push(hp);
				hp++
			}
			if (F.r[F.r.length - 1].fO()) bq = [hp - 1];
			var t = new bV([6, 0], this);
			t.data = {
				e: h.Pj,
				Q1: ga.r.slice(0),
				L_: bd,
				NA: hf,
				Vk: bq
			};
			ga.TX(t);
			this.oF(t.data, ga)
		}
		if (y == h.Bo) {
			var fT = F.n != null ? [F.n] : o.JU(),
				bd = o.r.slice(0);
			for (var w = 0; w < fT.length; w++) {
				var M = o.r[fT[w]].clone();
				M.Um(o);
				bd.splice(fT[w], 1, M)
			}
			var t = new bV([6, 8], this);
			t.data = {
				e: h.Pj,
				Q1: o.r.slice(0),
				L_: bd,
				NA: o.p.slice(0),
				Vk: o.p.slice(0)
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.eH) {
			var bd = o.r.slice(0),
				M = bd[o.p[0]] = bd[o.p[0]].clone(),
				aE = M.add.lmfx,
				fR = 0;
			delete M.add.lmfx;
			var cs = H.R(M.rect.M());
			H.E4(M.buffer, cs, 3);
			var hL = cr.n6(aE, null, cs, M.rect, o, M.rect).type;
			for (var w = 0; w < ce.order.length; w++) {
				var cd = ce.order[w],
					ih = hL[cd],
					aV = w > 7;
				for (var dw = 0; dw < ih.length; dw++) {
					var cM = ih[dw],
						U = o.an();
					U.sW = cM.Si;
					U.opacity = Math.round(255 * cM.hw);
					U.rd = !aV;
					U.buffer = cM.Ww;
					U.rect = cM.Xc;
					U.rect.offset(M.rect.x, M.rect.y);
					U.uf(M.getName() + "'s " + h9.get(ce.names[w]));
					bd.splice(o.p[0] + (aV ? 0 : 1), 0, U);
					if (aV) fR++
				}
			}
			var t = new bV("Styles to Layers", this);
			t.data = {
				e: h.Pj,
				Q1: o.r.slice(0),
				L_: bd,
				NA: o.p.slice(0),
				Vk: [o.p[0] + fR]
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.cl) {
			var fT = o.JU(),
				bd = o.r.slice(0),
				bZ = new ev(0, 0, o.Z, o.h);
			for (var w = 0; w < fT.length; w++) {
				var ht = o.r[fT[w]],
					fZ = ht.UQ();
				ht.vR(!0);
				var b0 = o.root.V$(fT[w]);
				if (ht.fO()) continue;
				if (b0 == null) continue;
				var M = ht.clone();
				M.Um(o);
				var aX = b0.o7(o, !0),
					fQ = o.r;
				o.wG([ht]);
				o.A();
				o.tf();
				M.buffer = H.R(aX.M() * 4);
				H.BP(o.lD(), bZ, M.buffer, aX);
				M.rect = aX;
				M.opacity = 255;
				M.add.iOpa = 255;
				M.sW = "norm";
				M.A();
				M.G.Zf = !0;
				o.wG(fQ);
				if (M.add.lmfx) delete M.add.lmfx;
				M.g = M.NY = null;
				bd.splice(fT[w], 1, M);
				M.vR(fZ);
				ht.vR(fZ)
			}
			var t = new bV([6, 34], this);
			t.data = {
				e: h.Pj,
				Q1: o.r.slice(0),
				L_: bd,
				NA: o.p.slice(0),
				Vk: o.p.slice(0)
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.M_) {
			var fT = o.JU(),
				bd = o.r.slice(0);
			for (var w = 0; w < fT.length; w++) {
				var M = o.r[fT[w]],
					bQ = M.add.TySh;
				if (bQ == null) continue;
				var n = new dc(bQ.MF, Y.SN),
					fO = H.D.X5(dQ.Dz(n, bQ));
				for (var hA in fO) {
					var ij = fO[hA],
						e1 = M.clone();
					delete e1.add.TySh;
					e1.ix = e1.ix | 1 << 4;
					e1.add.SoCo = JSON.parse(JSON.stringify(ce._G[0]));
					var fx = e1.add.SoCo.Clr.v;
					fx.Rd.v = parseInt(hA.slice(1, 3), 16);
					fx.Grn.v = parseInt(hA.slice(3, 5), 16);
					fx.Bl.v = parseInt(hA.slice(5, 7), 16);
					var cA = new h.iO;
					cA.b = H.D.sb(ij, !1);
					if (e1.add.vmsk != null) {
						e1.add.vmsk.ahk();
						cA.concat(e1.add.vmsk)
					}
					e1.add.vmsk = cA;
					e1.add.vstk = JSON.parse(JSON.stringify(ce.bW.default));
					e1.h7();
					e1._V(o);
					bd.splice(bd.indexOf(M), 0, e1)
				}
				bd.splice(bd.indexOf(M), 1)
			}
			var bq = o.p.slice(0);
			for (var w = bq.length - 1; w >= 0; w--)
				if (bq[w] >= bd.length) bq.splice(w, 1);
			var t = new bV([6, 40], this);
			t.data = {
				e: h.Pj,
				Q1: o.r.slice(0),
				L_: bd,
				NA: o.p.slice(0),
				Vk: bq
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.$Z) {
			var hF = o.p.length;
			if (hF < 2) {
				alert("Select two or more layers.");
				return
			}
			if (!o.vx()) return;
			var e1 = o.r[o.p[0]].clone(),
				bd = [];
			for (var w = 0; w < o.r.length; w++)
				if (o.p.indexOf(w) == -1) bd.push(o.r[w]);
			bd.splice(o.p[0], 0, e1);
			for (var w = 1; w < hF; w++)
				if (o.r[o.p[w]].rect.M() > 2e6) {
					alert("Blended areas are too large.");
					return
				} for (var w = 1; w < hF; w++) {
				var M = o.r[o.p[w]],
					cD = M.rect.clone();
				cD.PK(1, 1);
				var hX = H.R(cD.M() * 4);
				H.BP(M.buffer, M.rect, hX, cD);
				e1.extend(cD);
				var i9 = H.R(cD.M() * 4);
				H.BP(e1.buffer, e1.rect, i9, cD);
				var t = H.R(cD.M());
				H.E4(hX, t, 3);
				H.round(t, 200);
				H.Oy(t, hX, 3);
				H.N.DO("norm", hX, cD, i9, cD, cD, 1);
				H.w9.I4(i9, t, cD);
				H.BP(i9, cD, e1.buffer, e1.rect)
			}
			var t = new bV([2, 10, 0], this);
			t.data = {
				e: h.Pj,
				Q1: o.r.slice(0),
				L_: bd,
				NA: o.p.slice(0),
				Vk: [o.p[0]]
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h._S) {
			var bd = o.r.slice(0),
				bp = o.p.slice(0);
			for (var w = 0; w < bd.length; w++) {
				var M = bd[w],
					aJ = M.add.vmsk;
				if (M.ws() && aJ && M.add.vstk.strokeEnabled.v && !M.add.vstk.fillEnabled.v) {
					var bM = aJ.b,
						cG = 0,
						f5 = -1;
					for (var dw = 0; dw < bM.length; dw++) {
						if ((bM[dw].type == 0 || bM[dw].type == 3) && bM[dw].IO != -1) {
							cG++;
							if (bM[dw].type == 3 && f5 == -1) {
								bM[dw].yU = bM[dw].IO = 1;
								f5 = dw
							}
						}
					}
					if (cG > 1 && f5 != -1) {
						console.log("separating an open path into a new layer");
						M = M.clone();
						aJ = M.add.vmsk;
						bM = aJ.b;
						var U = bM[f5].length,
							gT = M.clone();
						gT.add.lyid = o.kV();
						aJ.b = bM.slice(0, 2).concat(bM.slice(f5, f5 + U + 1));
						aJ.p = [];
						M._V(o);
						M.A();
						var bF = gT.add.vmsk.b;
						gT.add.vmsk.b = bF.slice(0, f5).concat(bF.slice(f5 + U + 1, bF.length));
						gT.add.vmsk.p = [];
						gT._V(o);
						bd[w] = M;
						bd.splice(w + 1, 0, gT);
						for (var dw = 0; dw < bp.length; dw++)
							if (bp[dw] > w) bp[dw]++;
						var a1 = bp.indexOf(w);
						if (a1 != -1) {
							bp.splice(a1 + 1, 0, w + 1)
						}
					}
				}
			}
			if (bd.length != o.r.length) {
				var t = new bV("Splitting open paths", this);
				t.data = {
					e: h.Pj,
					Q1: o.r.slice(0),
					L_: bd,
					NA: o.p.slice(0),
					Vk: bp
				};
				o.TX(t);
				this.oF(t.data, o)
			}
		}
		if (y == h.eV) {
			this.XZ({
				e: h._S
			}, P, o, X, Y);
			var hf = o.p.slice(0),
				fQ = o.r.slice(0),
				fT = o.JU();
			if (fT.length == 0) return;
			o.fM(fT);
			var t = new bV([6, 36, 0], this);
			t.data = {
				e: h.Pj,
				Q1: fQ,
				L_: o.r.slice(),
				NA: hf,
				Vk: o.p.slice(0)
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.ps) {
			var bb = F.EA.AB(F.id),
				eg = bb.clone();
			eg.raw = F.data;
			eg.EC = "8BIM";
			eg.d1 = "8BPB";
			eg.Z5 = eg.Z5 + ".psd";
			eg.lD(!1);
			bb.lD(!1);
			var t = new bV([6, 36, 1], this);
			t.data = {
				e: h.ps,
				id: F.id,
				GJ: bb,
				XT: eg
			};
			F.EA.TX(t);
			this.oF(t.data, F.EA)
		}
		if (y == h.Eg) {
			var t = new bV([6, 36, 4], this);
			t.data = {
				e: y,
				n: z,
				Ub: s.add.SoLd.Impr.v.classID,
				uB: F.uB
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.Ml) {
			var hV, eb;
			if (F.lO) {
				hV = F.EA;
				eb = F.lO
			} else {
				F.EA.dr();
				F.EA.LU();
				F.EA.A();
				F.EA.tf();
				F.EA.lD();
				hV = em.$I("PSD").bb(F.EA, 0, 0, [!0, !0]);
				eb = F.EA.name
			}
			if (!(hV instanceof ArrayBuffer)) throw "e";
			hV = new Uint8Array(hV);
			var $ = F.z3 != null ? F.z3 : o.p[o.p.length - 1] + 1,
				gp = o.f6(hV, eb, 0, 0, !0),
				bd = o.r.slice(0);
			bd.splice($, 0, gp);
			var t = new bV([6, 36, 2], this);
			t.data = {
				e: h.Pj,
				Q1: o.r.slice(),
				L_: bd,
				NA: o.p.slice(0),
				Vk: [bd.indexOf(gp)]
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.Hj) {
			var cb = [],
				cR = o.root.children,
				ak = 0;
			for (var w = 0; w < cR.length; w++) {
				var N = cR[w],
					M = N.n,
					dU = N.children,
					hK = !0;
				if (!M.fO() || dU.length == 0) continue;
				for (var dw = 0; dw < dU.length; dw++)
					if (!dU[dw].n.getName().startsWith("_a_")) {
						hK = !1;
						break
					} if (hK) cb.push(o.r.indexOf(M))
			}
			var gO = [];
			for (var w = 0; w < cb.length; w++)
				if (o.p.indexOf(cb[w]) != -1) gO.push(cb[w]);
			if (gO.length >= 2) cb = gO;
			if (cb.length < 2) {
				alert("At least two animation folders needed (whose layers start with \"_a_\").", 3500);
				return
			}
			var eA = [];
			for (var w = 0; w < cb.length; w++) eA.push(o.r[cb[w]].getName());
			var ih = [];
			for (var fD = 0; fD < cb.length; fD++) {
				var N = o.root.V$(cb[fD]),
					fP = [
						[],
						[], 0, fD
					];
				ih.push(fP);
				for (var w = 0; w < N.children.length; w++) {
					var p = N.children[w].index,
						M = N.children[w].n,
						hn = M.getName(),
						d5 = 20,
						ir = hn.split(",");
					if (ir.length > 1) {
						var f$ = parseInt(ir.pop());
						if (!isNaN(f$) && f$ != 0) d5 = f$
					}
					fP[0].push(M);
					fP[1].push(d5);
					fP[2] += d5
				}
			}
			ih.sort(function (t, hX) {
				return hX[2] - t[2]
			});
			var eU = ih[0],
				bw = eU[2];
			for (var dn = 1; dn < ih.length; dn++) {
				var fP = ih[dn],
					aI = 1,
					fa = fP[1].slice(0),
					c6 = 0;
				while ((aI + 1) * fP[2] <= eU[2]) {
					aI++;
					fa = fa.concat(fP[1])
				}
				fP[1] = fa;
				fP[2] *= aI;
				var gh = eU[2] / fP[2];
				for (var w = 0; w < fP[1].length; w++) {
					var ad = Math.floor(fP[1][w] * gh);
					fP[1][w] = ad;
					c6 += ad
				}
				while (c6 < bw) {
					c6++;
					fP[1][fP[1].length - 1]++
				}
				fP[2] = c6
			}
			var eS = [],
				cI = [],
				ad = [];
			for (var w = 0; w < ih.length; w++) {
				eS.push(0);
				cI.push(0)
			}
			while (ak < bw) {
				var de = 1e9,
					dh = -1;
				for (var w = 0; w < ih.length; w++) {
					var h_ = ih[w][1],
						a6 = eS[w];
					if (a6 != h_.length && cI[w] + h_[a6] < ak + de) {
						dh = w;
						de = cI[w] + h_[a6] - ak
					}
				}
				cI[dh] += ih[dh][1][eS[dh]];
				eS[dh]++;
				if (de != 0) {
					ad.push(de);
					ak += de
				}
			}
			for (var w = 0; w < ad.length; w++) {
				var cn = ad[w],
					h5 = cn >>> 1;
				if (cn < 17) {
					var p = ad.length - 1;
					if (w == 0) ad[1] += cn;
					else if (w == ad.length - 1) ad[p - 1] += cn;
					else {
						ad[w - 1] += h5;
						ad[w + 1] += cn - h5
					}
					ad.splice(w, 1);
					w--
				}
			}
			var fZ = [],
				bZ = new ev(0, 0, o.Z, o.h);
			for (var w = 0; w < o.r.length; w++) {
				fZ[w] = o.r[w].UQ();
				o.r[w].vR(!1)
			}
			var cw = o.p.slice(0);
			o.p = cb;
			var hB = o.JU();
			hB.sort(function (t, hX) {
				return t - hX
			});
			var bd = [];
			for (var w = 0; w < o.r.length; w++) {
				if (hB.indexOf(w) == -1) bd.push(o.r[w])
			}
			ih.sort(function (t, hX) {
				return t[3] - hX[3]
			});

			function cL(h_, cE) {
				var w = 0,
					bR = 0;
				while (bR + h_[w] <= cE) {
					bR += h_[w];
					w++
				}
				return w
			}
			ak = 0;
			bd.splice(hB[0], 0, o.Px());
			for (var db = 0; db < ad.length; db++) {
				var R = [];
				for (var w = 0; w < ih.length; w++) {
					var a6 = cL(ih[w][1], ak) % ih[w][0].length,
						M = ih[w][0][a6];
					R.push(M)
				}
				var M = o.an();
				for (var w = 0; w < ih.length; w++) {
					var dq = R[w],
						dp = o.r[cb[w]];
					dq.vR(!0);
					dp.vR(!0)
				}
				o.A();
				o.tf();
				var aP = o.lD();
				M.rect = H.cR(aP, bZ);
				M.buffer = H.R(M.rect.M() * 4);
				H.BP(aP, bZ, M.buffer, M.rect);
				for (var w = 0; w < ih.length; w++) {
					var dq = R[w],
						dp = o.r[cb[w]];
					dq.vR(!1);
					dp.vR(!1)
				}
				M.vR(db == 0);
				M.uf("_a_frm" + db + "," + ad[db]);
				bd.splice(hB[0] + 1 + db, 0, M);
				ak += ad[db]
			}
			var M = o.an();
			M.uf(eA.join(" + "));
			M.sW = "pass";
			M.add.lsct = gr.kE;
			M.ix = 24;
			bd.splice(hB[0] + 1 + ad.length, 0, M);
			for (var w = 0; w < o.r.length; w++) o.r[w].vR(fZ[w]);
			var t = new bV([6, 12, 0], this);
			t.data = {
				e: h.Pj,
				Q1: o.r,
				L_: bd,
				NA: cw,
				Vk: [hB[0] + 1 + ad.length]
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.SG || y == h.FI || y == h.iQ) {
			var fQ = o.r.slice(0),
				hf = o.p.slice(0),
				g8 = !0,
				gp, bq;
			if (y == h.SG) o.p = [z, z - 1];
			if (y == h.iQ) {
				o.p = [];
				for (var w = 0; w < o.r.length; w++)
					if (o.r[w].UQ()) o.p.push(w)
			}
			var fT = o.JU();
			fT.sort(function (t, hX) {
				return t - hX
			});
			var f3 = new ev,
				bZ = new ev(0, 0, o.Z, o.h);
			for (var w = 0; w < fT.length; w++) {
				var p = fT[w],
					M = o.r[p];
				g8 = g8 && M.ws() && M.add.vmsk != null;
				f3 = f3.s7(o.root.V$(p).o7(o, !0))
			}
			if (g8) {
				gp = o.r[fT[0]].clone();
				var aJ = gp.add.vmsk;
				for (var w = 1; w < fT.length; w++) {
					var U = o.r[fT[w]],
						bF = h.iO.Cm(U.add.vmsk.b);
					aJ.b = aJ.b.concat(bF.slice(2));
					gp.add.vogk = gp.add.vogk.concat(JSON.parse(JSON.stringify(U.add.vogk)))
				}
				gp.add.vmsk.G2 = !0;
				gp._V(o)
			} else if (bZ.Qh(f3)) {
				gp = o.an();
				gp.uf(o.r[fT[fT.length - 1]].getName());
				gp.rect = f3;
				gp.buffer = H.R(f3.M() * 4);
				var cT = o.lD(fT);
				H.BP(cT, bZ, gp.buffer, f3);
				gp.A()
			} else {
				o.fM(fT, !0);
				gp = o.r[o.p[0]];
				o.r.splice(o.p[0], 1);
				var hj = o.AB(gp.add.SoLd.Idnt.v);
				o.add.lnk2.splice(o.add.lnk2.indexOf(hj), 1);
				delete gp.add.SoLd
			}
			var a3 = X.s(G.ze),
				c0 = -1;
			if (F.w1 && F.w1.Dplc && F.w1.Dplc.v) a3 = !0;
			if (a3 && y == h.iQ && o.r[hf[0]].Mq() && o.r[hf[0]].rect.qr()) {
				c0 = hf[0];
				gp.uf(o.r[c0].getName())
			}
			var bd = [];
			for (var w = 0; w < o.r.length; w++)
				if (a3 || fT.indexOf(w) == -1)
					if (w != c0) bd.push(o.r[w]);
			var by = fT[fT.length - 1],
				gx = by == o.r.length - 1 ? null : o.r[by + 1],
				ik = gx ? bd.indexOf(gx) : bd.length;
			bd.splice(ik, 0, gp);
			bq = [ik];
			var t = new bV([6, 12, 0], this);
			t.data = {
				e: h.Pj,
				Q1: fQ,
				L_: bd,
				NA: hf,
				Vk: bq
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.ck) {
			var e1 = o.an();
			e1.rect = new ev(0, 0, o.Z, o.h);
			e1.buffer = H.R(e1.rect.M() * 4);
			H.XB(e1.buffer, 4294967295);
			H.N.DO("norm", o.lD(), e1.rect, e1.buffer, e1.rect, e1.rect, 1);
			e1.uf("Background");
			e1.add.lspf = 1 << 2;
			var t = new bV([6, 12, 1], this);
			t.data = {
				e: h.Pj,
				Q1: o.r.slice(),
				L_: [e1],
				NA: o.p.slice(0),
				Vk: [0]
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.Nm || y == h.uv || y == h.F0 || y == h.yn || y == h.qZ) {
			var M = y == h.qZ ? o.r[o.p[0]].clone() : o.an(),
				bs = h9.get([0, 3]),
				fI = F.gA,
				hQ = !1,
				bA, he;
			if (y == h.F0) bs = h9.get([12, 76, 1]);
			if (y == h.qZ) {
				var ht = o.r[o.p[0]],
					hS = ht.zp(o, o.K);
				if (hS == null) {
					alert("Copied area is empty");
					return
				}
				M.rect = hS.rect, M.buffer = hS.Tr
			}
			if (y == h.yn) {
				M.rect = cj.T8.I3(F.pL, o);
				M.buffer = H.clone(F.pL.buffer)
			}
			if (y == h.Nm) {
				this.track({
					Bm: "make",
					w1: {
						classID: "Mk",
						null: gY.Pe("Lyr")
					}
				})
			}
			if (y == h.uv) {
				M.ix |= 16;
				var eB = F.w1.Usng.v,
					cx = eB.Type.v,
					cy = b_.om[cx.classID];
				bs = h9.get(b_.names[cy]);
				if (eB.Nm) fI = eB.Nm.v;
				M.add[cy] = bv.tt(cy);
				if (M.add[cy] == null) M.add[cy] = {};
				for (var ac in cx) M.add[cy][ac] = JSON.parse(JSON.stringify(cx[ac]));
				M.g = cj.T8.Ne(o)
			}
			if (y == h.F0) {
				M.ix |= 16;
				var f1 = F.w1,
					eB = f1.Usng.v,
					fk = eB.Type.v,
					fc = eB.Shp;
				if (fc == null) {
					var gv = o.Cj(),
						fO = gv[0],
						dX = gv[1];
					if (dX.length != 0) {
						var d2 = fO[dX[0]].add;
						M.add.vmsk = d2.vmsk.clone();
						M.add.vstk = JSON.parse(JSON.stringify(ce.bW.default));
						M.add.vogk = JSON.parse(JSON.stringify(d2.vogk));
						o.QP = []
					} else M.g = cj.T8.Ne(o)
				} else {
					console.log(eB);
					M.add.vmsk = new h.iO;
					M.add.vstk = JSON.parse(JSON.stringify(eB.strokeStyle ? eB.strokeStyle.v : ce.bW.default));
					M.add.vogk = [];
					if (fc) {
						var g9 = H.P$.ND(fc);
						if (g9) {
							M.add.vogk = [g9];
							M.add.vmsk.b.push({
								type: 0,
								IO: 1,
								length: 0
							});
							H.P$.xc(M.add.vogk, M.add.vmsk)
						} else {
							fc = fc.v;
							var fd = fc.classID;
							if (fd == "Plgn") {
								var bf = fc.Cntr.v,
									dY = fc.corner.v;
								bf = new aH(bf.Hrzn.v.val, bf.Vrtc.v.val);
								dY = new aH(dY.Hrzn.v.val, dY.Vrtc.v.val);
								M.add.vmsk.b = H.V.Ny.qF(bf.x, bf.y, Math.sqrt(dY.x * dY.x + dY.y * dY.y), Math.atan2(dY.y, dY.x), fc.sides.v, 0)
							} else if (fd == "customShape") {
								var e_ = H.P$.QO(fc),
									ie = e_[2] - e_[0],
									fG = e_[3] - e_[1],
									cP = Y.KQ,
									er, dg;
								for (var w = 0; w < cP.length; w++)
									if (cP[w].s3 == fc.Nm.v) er = cP[w];
								if (er) {
									dg = h.iO.Cm(er.b);
									H.V.G5(dg, new cu(ie, 0, 0, fG, e_[0], e_[1]))
								} else dg = H.V.Ny.Rect(e_[0], e_[1], ie, fG, 0);
								M.add.vmsk.b = dg
							}
							M.h7()
						}
					}
				}
				var eP = {
						solidColorLayer: 0,
						gradientLayer: 1,
						patternLayer: 2
					} [fk.classID],
					eO = ["SoCo", "GdFl", "PtFl"][eP];
				M.add[eO] = JSON.parse(JSON.stringify(ce._G[eP]));
				cj.T8.CR(fk, M.add[eO], eP);
				if (fc == null) bs = h9.get([6, 48, 0, eP]);
				if (eO == "PtFl") o.e6(cr.tc(M.add[eO].Ptrn.v, Y.WB));
				M._V(o)
			}
			var hF = cj.T8.yR(o, bs + " ");
			M.uf(bs + " " + (hF + 1));
			if (fI) M.uf(fI);
			var eL = o.p.length == 0 ? o.r.length - 1 : o.p[o.p.length - 1],
				bo = o.r[eL];
			if (y == h.F0 && bo.Mq() && bo.rect.qr()) {
				hQ = !0;
				M.uf(bo.getName());
				bA = eL
			} else {
				bA = eL + 1;
				if (bo.add.lsct == gr.lw) bA--
			}
			var bd = o.r.slice(0);
			bd.splice(bA, hQ ? 1 : 0, M);
			var gw = [5, 2];
			if (y == h.Nm) gw = [6, 13];
			if (y == h.uv) gw = [6, 1];
			if (y == h.F0) {
				gw = [6, 48, 1];
				var fc = F.w1.Usng.v.Shp;
				if (fc) {
					var bD = {
						Rctn: [10, 32],
						Ln: [10, 35],
						Elps: [10, 33],
						Plgn: [12, 93, 0],
						customShape: [10, 31]
					} [fc.v.classID];
					if (bD) gw = bD
				}
			}
			if (y == h.qZ) {
				gw = [6, 49]
			}
			if (y == h.qZ || y == h.F0 || y == h.yn)
				if (o.K) he = [o.K, null];
			var t = new bV(gw, this);
			t.data = {
				e: h.Pj,
				Q1: o.r.slice(0),
				L_: bd,
				NA: o.p.slice(0),
				Vk: [bA],
				tp: he
			};
			o.TX(t);
			this.oF(t.data, o);
			if (y == h.F0 && fc == null && eP != 0 || y == h.uv) {
				var hH = new l(i.E.L);
				hH.data = {
					e: i.B.xS,
					W2: c$.YP.Qm
				};
				P.w(hH)
			}
		}
		if (y == h.QR) {
			var M = o.an();
			M.uf(h9.get([0, 4]) + " " + o.r.length);
			M.sW = "pass";
			M.add.lsct = gr.lw;
			M.ix = 24;
			var gC = o.Px(),
				eL = z,
				bA = eL + 1,
				bd = o.r.slice(0);
			bd.splice(bA, 0, gC, M);
			var t = new bV([6, 20], this);
			t.data = {
				e: h.Pj,
				Q1: o.r.slice(0),
				L_: bd,
				NA: o.p.slice(0),
				Vk: [bA + 1]
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.iN || y == h.Aj) {
			var ab = y == h.iN ? F.source : o.p[0],
				eK, ag, d6 = o.p.indexOf(ab) != -1,
				hI = X.s(G.ze) | F.a2e,
				ew;
			if (d6) ew = o.JU();
			else ew = o.Co(ab);
			ew.sort(function (t, hX) {
				return t - hX
			});
			if (y == h.iN) {
				eK = F.target;
				ag = F.Pf > .5
			} else if (F.target != null) {
				eK = F.target;
				ag = !0;
				o.Mv = !0
			} else {
				var eF = F.mQ;
				ag = eF > 1;
				if (eF == 0) {
					eK = o.r.length - 1
				}
				if (eF == 1) {
					eK = ew[ew.length - 1] + 1;
					var U = o.Co(eK);
					if (U.indexOf(ab) == -1) eK += U.length - 1
				}
				if (eF == 2) {
					eK = ew[0] - 1;
					var U = o.Co(eK);
					if (U.indexOf(ab) == -1) eK -= U.length - 1
				}
				if (eF == 3) {
					eK = 0
				}
				if (eK < 0 || eK > o.r.length - 1) return;
				o.Mv = !0
			}
			if (ew.indexOf(eK) != -1) return;
			var eX = o.r[eK],
				bd = [];
			if (hI) bd = o.r.slice(0);
			else
				for (var w = 0; w < o.r.length; w++)
					if (ew.indexOf(w) == -1) bd.push(o.r[w]);
			var gD = bd.indexOf(eX);
			if (y == h.iN && eX.fO() && eX.add.lsct == gr.kE && F.Pf > .8) gD -= o.Co(eK).length - 1;
			var hd = [],
				dF = hI ? o.FQ(d6 ? null : ab) : null;
			for (var w = 0; w < ew.length; w++) {
				var dJ = gD + (ag ? 0 : 1) + w,
					n = hI ? dF[w] : o.r[ew[w]];
				bd.splice(dJ, 0, n);
				hd.push(dJ)
			}
			var t = new bV(hI ? [6, 0] : [6, 35], this);
			t.data = {
				e: h.Pj,
				Q1: o.r.slice(0),
				L_: bd,
				NA: o.p.slice(0),
				Vk: hd
			};
			o.TX(t);
			this.oF(t.data, o);
			var f1 = {
				classID: "move",
				null: gY.Pe("Lyr", !0),
				T: {
					t: "obj ",
					v: [{
						t: "indx",
						v: {
							classID: "Lyr",
							val: gD + (ag ? 0 : 1)
						}
					}]
				},
				Adjs: {
					t: "bool",
					v: !1
				},
				Vrsn: {
					t: "long",
					v: 5
				},
				Dplc: {
					t: "long",
					v: hI
				}
			};
			this.track({
				Bm: "move",
				w1: f1
			})
		}
		if (y == h.$t) {
			var M = o.an(),
				gE = h9.get([0, 4]) + " ";
			M.uf(gE + (cj.T8.yR(o, gE) + 1));
			M.sW = "pass";
			if (F.gA) M.uf(F.gA);
			M.add.lsct = o.p.length == 1 ? gr.lw : gr.kE;
			M.ix = 24;
			var gC = o.Px(),
				ew = o.JU();
			if (ew.length == 0) return;
			ew.sort(function (t, hX) {
				return t - hX
			});
			var bd = [];
			for (var w = 0; w < o.r.length; w++)
				if (ew.indexOf(w) == -1) bd.push(o.r[w]);
			var eL = o.p[o.p.length - 1] - ew.length;
			bd.splice(eL + 1, 0, gC);
			for (var w = 0; w < ew.length; w++) bd.splice(eL + 2 + w, 0, o.r[ew[w]]);
			bd.splice(eL + 2 + ew.length, 0, M);
			var t = new bV([6, 9], this);
			t.data = {
				e: h.Pj,
				Q1: o.r.slice(0),
				L_: bd,
				NA: o.p.slice(0),
				Vk: [bd.indexOf(M)]
			};
			o.TX(t);
			this.oF(t.data, o);
			var D = {
				Bm: "make",
				Ke: !0
			};
			D.w1 = {
				classID: "Mk",
				null: gY.Pe("layerSection"),
				From: gY.Pe("Lyr", !0),
				Usng: {
					t: "Objc",
					v: {
						classID: "layerSection",
						Nm: {
							t: "TEXT",
							v: M.getName()
						}
					}
				}
			};
			this.track(D)
		}
		if (y == h.Ax) {
			if (o.p.length != 1) return;
			var $ = o.p[0],
				aG = X.s(G.ze);
			if (o.r[$].jk() == null) {
				y = h.cN;
				F.wi = o.K ? !aG ? "RvlS" : "HdSl" : !aG ? "RvlA" : "HdAl"
			} else y = h.yN
		}
		if (y == h.cN) {
			if (o.p.length != 1) return;
			var $ = o.p[0],
				M = o.r[$];
			if (M.add.vmsk && M.g == null) M._V(o);
			var cm = M.jk();
			if (cm == null || F.aaF) {
				var t = new bV([6, 21], this),
					gb = new h.vm,
					bL = F.wi,
					eQ = bL == "RvlS" || bL == "HdSl";
				if (bL == "RvlS" || bL == "HdAl" || bL == "Trns") gb.color = 0;
				if (eQ) {
					gb.channel = H.clone(o.K.channel);
					gb.rect = o.K.rect.clone();
					if (bL == "HdSl") H.nJ(gb.channel)
				}
				if (bL == "Trns") {
					gb.rect = M.rect.clone();
					gb.channel = H.R(M.rect.M());
					H.E4(M.buffer, gb.channel, 3)
				}
				t.data = {
					e: y,
					n: $,
					g: gb,
					h3: cm,
					tp: eQ ? [o.K, null] : null
				};
				o.TX(t);
				this.oF(t.data, o);
				o.r[$].kB = 1;
				this.track({
					Bm: "make",
					w1: {
						__name: "Make",
						classID: "Mk",
						Nw: {
							t: "type",
							v: {
								classID: "Chnl"
							}
						},
						At: {
							t: "obj ",
							v: [{
								t: "Enmr",
								v: {
									classID: "Chnl",
									typeID: "Chnl",
									enum: "Msk"
								}
							}]
						},
						Usng: {
							t: "enum",
							v: {
								UsrM: bL
							}
						}
					}
				})
			}
		} else if (y == h.gk) {
			var ez = o.r[F.src],
				bN = o.r[F.Fi];
			if (bN.jk()) return;
			var t = new bV([6, 21], this),
				gb = ez.jk();
			if (F.HO) {
				t.data = {
					e: h.cN,
					n: F.Fi,
					g: gb.clone()
				}
			} else {
				t.data = {
					e: y,
					src: F.src,
					Fi: F.Fi,
					g: gb
				}
			}
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.tN) {
			if (o.p.length != 1) return;
			var $ = z;
			if (o.r[$].jk() != null) {
				var t = new bV([6, 22], this);
				t.data = {
					e: y,
					n: $,
					g: o.r[$].jk()
				};
				o.TX(t);
				this.oF(t.data, o)
			}
		}
		if (y == h.rb) {
			var fQ = o.r.slice(0),
				e1 = s.clone(),
				bn = e1.jk();
			H.pa(bn.kx(e1.rect), e1.rect, e1.buffer, e1.rect);
			cj.T8.oW(o, e1);
			o.r[o.p[0]] = e1;
			var t = new bV([5, 8], this);
			t.data = {
				e: h.Pj,
				Q1: fQ,
				L_: o.r.slice(),
				NA: o.p.slice(0),
				Vk: o.p.slice(0)
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.s4) {
			if (o.p.length != 1) return;
			var $ = o.p[0];
			if (o.r[$].yg(o).g == null) {
				var t = new bV([6, 45], this);
				t.data = {
					e: y,
					n: $,
					g: new h.vm
				};
				o.TX(t);
				this.oF(t.data, o)
			}
		}
		if (y == h.BI) {
			if (o.p.length != 1) return;
			var $ = o.p[0];
			if (o.r[$].yg(o).g != null) {
				var t = new bV([6, 46], this);
				t.data = {
					e: y,
					n: $,
					g: o.r[$].yg(o).g
				};
				o.TX(t);
				this.oF(t.data, o)
			}
		}
		if (y == h.cB) {
			if (F.n == null && o.p.length != 1) return;
			if (o.r[z].gO()) {
				var t = new bV([6, 47], this),
					fw = JSON.stringify(o.r[z].add.SoLd),
					dT = JSON.parse(fw);
				delete dT.filterFX;
				t.data = {
					e: h.bj,
					kq: [{
						XY: z,
						rZ: [fw, JSON.stringify(dT)],
						DD: [o.r[z].yg(o), null]
					}]
				};
				o.TX(t);
				this.oF(t.data, o)
			}
		}
		if (y == h.yN) {
			if (o.p.length != 1) return;
			if (s.add.vmsk == null) {
				var t = new bV([6, 23], this),
					bM = o.Cj(),
					V = bM[1],
					bM = bM[0],
					gb, g9;
				if (F.agW && V.length != 0) {
					var d2 = bM[V[0]].add;
					gb = d2.vmsk.clone();
					g9 = d2.vogk
				} else {
					gb = new h.iO;
					g9 = [];
					gb.b[1].all = F.afe ? 0 : 1
				}
				t.data = {
					e: y,
					n: z,
					pK: !0,
					g: gb,
					P$: JSON.stringify(g9),
					bW: null
				};
				if (s.ws()) {
					t.data.bW = JSON.stringify(ce.bW.default)
				}
				o.TX(t);
				this.oF(t.data, o)
			}
		}
		if (y == h.aY) {
			var ez = o.r[F.src],
				bN = o.r[F.Fi];
			if (bN.add.vmsk) return;
			var t = new bV([6, 23], this),
				aJ = ez.add.vmsk;
			t.data = {
				n: F.Fi,
				pK: ez.yb,
				g: aJ.clone(),
				P$: JSON.stringify(ez.add.vogk),
				bW: ez.add.vstk ? JSON.stringify(ez.add.vstk) : null
			};
			if (F.HO) {
				t.data.e = h.yN
			} else {
				t.data.e = y;
				t.data.src = F.src;
				t.data.Fi = F.Fi
			}
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.hy) {
			if (o.p.length != 1) return;
			var M = o.r[z],
				aJ = M.add.vmsk;
			if (aJ != null) {
				var t = new bV([6, 24], this);
				t.data = {
					e: y,
					n: z,
					pK: M.yb,
					g: aJ,
					P$: JSON.stringify(M.add.vogk),
					bW: M.add.vstk ? JSON.stringify(M.add.vstk) : null
				};
				o.TX(t);
				this.oF(t.data, o)
			}
		}
		if (y == h.Sc) {
			var t = new bV("Metadata", this);
			t.data = {
				e: y,
				s6: JSON.stringify(o.ZT),
				EB: JSON.stringify(F.EB)
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.FW) {
			var an = F.Fi ? F.Fi : o,
				hu = an.name,
				fI = F.C + ".psd";
			if (hu == fI) return;
			var t = new bV([6, 37], this);
			t.data = {
				e: y,
				wS: hu,
				gA: fI
			};
			if (F.ad2 != !0) an.TX(t);
			this.oF(t.data, an)
		}
		if (y == h.u$) {
			var hu = s.getName(),
				fI = F.name.substring(0, 255);
			if (hu == fI) return;
			var t = new bV([6, 37], this);
			t.data = {
				e: y,
				n: z,
				wS: hu,
				gA: fI,
				a6X: s.add.lnsr,
				ahG: null
			};
			o.TX(t);
			this.oF(t.data, o);
			this.track(gY.JK("Nm", {
				t: "TEXT",
				v: fI
			}))
		}
		if (y == h.FO) {
			var eJ = o.JU(),
				dZ = [],
				hN = [];
			for (var w = 0; w < eJ.length; w++) {
				dZ.push(o.r[eJ[w]].add.lclr);
				hN.push(F.ait)
			}
			var t = new bV([6, 38], this);
			t.data = {
				e: y,
				r: eJ,
				alr: dZ,
				abr: hN
			};
			o.TX(t);
			this.oF(t.data, o)
		}
		if (y == h.IM) {
			var t = o.history[o.xG];
			if (t != null && t.Q == this && t.data.e == y && t.data.n == F.Sa && t.data.uB.SA == F.j$.SA) t.data.uB = F.j$;
			else {
				t = new bV("Mask Density / Feather", this);
				t.data = {
					e: y,
					n: F.Sa,
					Ub: o.r[F.Sa].rq(F.j$.SA),
					uB: F.j$
				};
				o.TX(t)
			}
			this.oF(t.data, o)
		}
		if (y == h.WF) {
			var eR = JSON.stringify(F.C),
				dP = JSON.parse(eR),
				t = o.history[o.xG];
			if (t != null && t.Q == this && t.data.e == y && t.data.jK == F.jK && t.data.Ev.join(",") == F.Ev.join(",")) {
				for (var w = 0; w < F.Ev.length; w++) t.data.nd[w] = dP;
				if (t.data.w1 && dP.d1 != 0) cj.T8.CR(dP.qA, t.data.w1.T.v, dP.d1 - 1)
			} else {
				t = new bV([11, 6], this);
				t.data = {
					e: y,
					Ev: F.Ev,
					jK: F.jK,
					a1Y: [],
					nd: []
				};
				var eM = !1;
				for (var w = 0; w < F.Ev.length; w++) {
					var p = F.Ev[w],
						M = o.r[p],
						gU = F.jK ? B.Y2.Un(o, p) : JSON.parse(JSON.stringify(M.add.vstk));
					t.data.a1Y.push(gU);
					t.data.nd.push(dP);
					if (JSON.stringify(gU) != eR) eM = !0
				}
				if (!eM) return;
				o.TX(t);
				if (F.jK && dP.d1 > 0) {
					var f1 = t.data.w1 = {
							classID: "setd",
							null: gY.Pe("contentLayer", !0),
							T: {
								t: "Objc",
								v: {}
							}
						},
						eO = ["SoCo", "GdFl", "PtFl"][dP.d1 - 1];
					cj.T8.CR(dP.qA, f1.T.v, dP.d1 - 1);
					this.track({
						Bm: "set",
						w1: f1
					})
				}
			}
			if (F.jK && dP.d1 == 3) o.e6(cr.tc(dP.qA.Ptrn.v, Y.WB));
			if (!F.jK) {
				var ip = dP.strokeStyleContent.v;
				if (ip.classID == ce.bW.bl[2]) o.e6(cr.tc(ip.Ptrn.v, Y.WB))
			}
			this.oF(t.data, o)
		}
	};
	cj.T8.CR = function (F, P, o) {
		var X = [ce.QB, ce.Zt, ce.QZ][o];
		if (P.classID == null) P.classID = ["solidColorLayer", "gradientLayer", "patternLayer"][o];
		for (var w = 0; w < X.length; w++)
			if (F[X[w]]) P[X[w]] = JSON.parse(JSON.stringify(F[X[w]]))
	};
	cj.T8.Ne = function (F) {
		var P = new h.vm;
		if (F.K != null) {
			P.color = 0;
			P.channel = H.clone(F.K.channel);
			P.rect = F.K.rect.clone()
		}
		return P
	};
	cj.T8.Fk = function (F, P, o, X) {
		var Y = X.Z / o.Z,
			y = X.h / o.h,
			z = X.Z / 2,
			s = X.h / 2,
			t = H.D.z0(X).d;
		for (var w = 0; w < F.r.length; w++) {
			var d = F.r[w],
				U = d.add.SoLd;
			if (U == null || U.Idnt.v != P) continue;
			if (Y != 1 || y != 1) {
				var v = B.X.AC(U.nonAffineTransform),
					A = H.P.bg(v, X),
					Z = new cu;
				Z.translate(-z, -s);
				Z.scale(Y, y);
				Z.translate(z, s);
				var D = H.P.$T(A, H.P.Jb(Z)),
					q = t.slice(0);
				H.P.apply(D, q);
				U.Trnf = B.X.uE(q);
				U.nonAffineTransform = B.X.uE(q)
			}
			d.Gy(F)
		}
		F.A()
	};
	cj.T8.ai0 = function (F, P, o) {
		P.color = 255 - P.color;
		H.nJ(P.channel);
		P.G2 = !0;
		F._V(o);
		o.A()
	};
	cj.T8.prototype.tO = function (F, P) {
		var o = F.e,
			X = P.r[F.n];
		P.Vf = !0;
		if (o == h.ps) {
			P.add.lnk2.splice(P.add.lnk2.indexOf(F.XT), 1, F.GJ);
			cj.T8.Fk(P, F.id, F.XT.DW[1], F.GJ.DW[1])
		}
		if (o == h.Eg) {
			X.add.SoLd.Impr.v.classID = F.Ub;
			X.Gy(P)
		}
		if (o == h.N1) {
			var Y = JSON.parse(F.Ev);
			for (var w = 0; w < Y.length; w++) P.r[Y[w]].sW = F.AR[w];
			P.A()
		}
		if (o == h.Ot) {
			var Y = JSON.parse(F.Ev);
			for (var w = 0; w < Y.length; w++) P.r[Y[w]].opacity = F.AR[w];
			P.A()
		}
		if (o == h.Lm) {
			var Y = JSON.parse(F.Ev);
			for (var w = 0; w < Y.length; w++) P.r[Y[w]].add.lspf = F.AR[w]
		}
		if (o == h.t_) {
			var y = F.x9,
				z = F.a6z;
			delete X.add[y[0]];
			if (z[0] != "----") X.add[z[0]] = z[1]
		}
		if (o == h.Ib) {
			X.add.iOpa = F.AR;
			P.A()
		}
		if (o == h.K7) {
			for (var w = 0; w < F.Ev.length; w++) {
				var s = P.r[F.Ev[w]];
				s.vR(!s.UQ())
			}
			P.A()
		}
		if (o == h.kX) {
			var t = X.jk();
			t.isEnabled = !t.isEnabled;
			X._V(P);
			P.A()
		}
		if (o == h.yV) {
			var t = X.yg(P).g;
			t.isEnabled = !t.isEnabled;
			X.A();
			P.A()
		}
		if (o == h.OT) {
			var t = X.add.vmsk;
			t.isEnabled = !t.isEnabled;
			if (!t.isEnabled) {
				if (X.NY) {
					X.g = X.NY;
					X.NY = null
				} else X.g = null
			} else if (X.g) {
				X.NY = X.g;
				X.g = null
			}
			X._V(P);
			P.A()
		}
		if (o == h.zO) {
			X.rd = !X.rd;
			P.A()
		}
		if (o == h.r5) {
			X.add.lmfx.masterFXSwitch.v = !X.add.lmfx.masterFXSwitch.v;
			X.G.Zf = !0;
			P.A()
		}
		if (o == h.Hl) {
			X.add.SoLd.filterFX.v.enab.v = !X.add.SoLd.filterFX.v.enab.v;
			X.jc(P);
			P.A()
		}
		if (o == h.Dv) {
			var d = F.index,
				U = X.add.lmfx[ce.og[d[0]]].v[d[1]].v;
			U.enab.v = !U.enab.v;
			X.G.Zf = !0;
			P.A()
		}
		if (o == h.Fv) {
			var v = P.r[F.ae9],
				A = P.r[F.a5o],
				Z = F.agF,
				D = F.aj7;
			if (Z == "") delete v.add.lmfx;
			else v.add.lmfx = JSON.parse(Z);
			if (D == "") delete A.add.lmfx;
			else A.add.lmfx = JSON.parse(D);
			v.G.Zf = !0;
			A.G.Zf = !0;
			P.A()
		}
		if (o == h.y6) {
			var q = X.add.SoLd.filterFX.v.filterFXList.v[F.index].v;
			q.enab.v = !q.enab.v;
			X.jc(P);
			P.A()
		}
		if (o == h.k2) {
			X.add.SoLd.filterFX.v = JSON.parse(JSON.stringify(F.a3a));
			X.jc(P);
			P.A()
		}
		if (o == h.dh) {
			var t = X.jk();
			t.AU = !t.AU
		}
		if (o == h.t7) {
			var t = X.add.vmsk;
			t.AU = !t.AU
		}
		if (o == h.I8) {
			var R = F.HL;
			for (var w = 0; w < R.length; w += 2) {
				var J = R[w],
					s = J >= 0 ? P.r[J] : P.VW[-1 - J];
				s.add.vogk = JSON.parse(R[w + 1]);
				H.P$.xc(s.add.vogk, s.add.vmsk);
				if (J >= 0) s._V(P)
			}
			P.A()
		}
		if (o == h.K6) {
			X.add.artb = JSON.parse(F.ah$);
			P.A()
		}
		if (o == h.IB) {
			P.K = F.la;
			P.Yq = F.HL.slice(0);
			P.oD = F.jt.slice(0);
			P.Vg = P.Ob = !0
		}
		if (o == h.IQ) {
			var W = F.afv;
			for (var w = 0; w < W.length; w++) P.r[w].Qk = W[w]
		}
		if (o == h.Pj) {
			if (F.NA) P.p = F.NA;
			if (F.tp) P.K = F.tp[0];
			P.mb = null;
			P.A();
			P.wG(F.Q1)
		}
		if (o == h.cN) {
			cj.T8.oW(P, X);
			if (F.h3) cj.T8.je(P, X, F.h3);
			if (F.tp) {
				var p = F.tp[0];
				if (p == null) delete P.K;
				else P.K = p
			}
		}
		if (o == h.gk) {
			cj.T8.oW(P, P.r[F.Fi]);
			cj.T8.je(P, P.r[F.src], F.g)
		}
		if (o == h.tN) {
			cj.T8.je(P, X, F.g)
		}
		if (o == h.s4) {
			X.yg(P).g = null;
			X.A();
			P.A()
		}
		if (o == h.BI) {
			X.yg(P).g = F.g;
			X.A();
			P.A()
		}
		if (o == h.bj) {
			cj.T8.tg(P, F.kq, 0)
		}
		if (o == h.yN) {
			cj.T8.py(P, X, !0)
		}
		if (o == h.aY) {
			cj.T8.py(P, P.r[F.Fi], F.g.isEnabled);
			cj.T8.fA(P, P.r[F.src], F)
		}
		if (o == h.hy) {
			cj.T8.fA(P, X, F)
		}
		if (o == h.Sc) {
			P.ZT = JSON.parse(F.s6)
		}
		if (o == h.FW) {
			P.name = F.wS
		}
		if (o == h.u$) {
			X.uf(F.wS);
			if (F.a6X) X.add.lnsr = F.a6X;
			else delete X.add.lnsr
		}
		if (o == h.FO) {
			for (var w = 0; w < F.r.length; w++) P.r[F.r[w]].add.lclr = F.alr[w]
		}
		if (o == h.WF) {
			var n = F.a1Y;
			for (var w = 0; w < F.Ev.length; w++) {
				var s = P.r[F.Ev[w]],
					b = n[w];
				if (!F.jK) s.add.vstk = JSON.parse(JSON.stringify(b));
				else B.Y2.ov(s, JSON.parse(JSON.stringify(b)));
				s.fe(P)
			}
			P.A()
		}
		if (o == h.IM) {
			X.tC(F.Ub);
			X._V(P);
			P.A()
		}
		P.Ob = !0
	};
	cj.T8.prototype.oF = function (F, P) {
		var o = F.e,
			X = P.r[F.n];
		P.Vf = !0;
		if (o == h.ps) {
			P.add.lnk2.splice(P.add.lnk2.indexOf(F.GJ), 1, F.XT);
			cj.T8.Fk(P, F.id, F.GJ.DW[1], F.XT.DW[1])
		}
		if (o == h.Eg) {
			X.add.SoLd.Impr.v.classID = F.uB;
			X.Gy(P)
		}
		if (o == h.N1) {
			var Y = JSON.parse(F.Ev);
			for (var w = 0; w < Y.length; w++) P.r[Y[w]].sW = F.uB;
			P.A()
		}
		if (o == h.Ot) {
			var Y = JSON.parse(F.Ev);
			for (var w = 0; w < Y.length; w++) P.r[Y[w]].opacity = F.uB;
			P.A()
		}
		if (o == h.Lm) {
			var Y = JSON.parse(F.Ev);
			for (var w = 0; w < Y.length; w++) P.r[Y[w]].add.lspf = F.uB[w]
		}
		if (o == h.t_) {
			var y = F.a6z,
				z = F.x9;
			delete X.add[y[0]];
			if (z[0] != "----") X.add[z[0]] = z[1]
		}
		if (o == h.Ib) {
			X.add.iOpa = F.uB;
			P.A()
		}
		if (o == h.K7) {
			for (var w = 0; w < F.Ev.length; w++) {
				var s = P.r[F.Ev[w]];
				s.vR(!s.UQ())
			}
			P.A()
		}
		if (o == h.kX) {
			var t = X.jk();
			t.isEnabled = !t.isEnabled;
			X._V(P);
			P.A()
		}
		if (o == h.yV) {
			var t = X.yg(P).g;
			t.isEnabled = !t.isEnabled;
			X.A();
			P.A()
		}
		if (o == h.OT) {
			var t = X.add.vmsk;
			t.isEnabled = !t.isEnabled;
			if (!t.isEnabled) {
				if (X.NY) {
					X.g = X.NY;
					X.NY = null
				} else X.g = null
			} else if (X.g) {
				X.NY = X.g;
				X.g = null
			}
			X._V(P);
			P.A()
		}
		if (o == h.zO) {
			X.rd = !X.rd;
			P.A()
		}
		if (o == h.r5) {
			X.add.lmfx.masterFXSwitch.v = !X.add.lmfx.masterFXSwitch.v;
			X.G.Zf = !0;
			P.A()
		}
		if (o == h.Hl) {
			X.add.SoLd.filterFX.v.enab.v = !X.add.SoLd.filterFX.v.enab.v;
			X.jc(P);
			P.A()
		}
		if (o == h.Dv) {
			var d = F.index,
				U = X.add.lmfx[ce.og[d[0]]].v[d[1]].v;
			U.enab.v = !U.enab.v;
			X.G.Zf = !0;
			P.A()
		}
		if (o == h.Fv) {
			var v = P.r[F.ae9],
				A = P.r[F.a5o],
				Z = F.ahh,
				D = F.a74;
			if (Z == "") delete v.add.lmfx;
			else v.add.lmfx = JSON.parse(Z);
			if (D == "") delete A.add.lmfx;
			else A.add.lmfx = JSON.parse(D);
			v.G.Zf = !0;
			A.G.Zf = !0;
			P.A()
		}
		if (o == h.y6) {
			var q = X.add.SoLd.filterFX.v.filterFXList.v[F.index].v;
			q.enab.v = !q.enab.v;
			X.jc(P);
			P.A()
		}
		if (o == h.k2) {
			X.add.SoLd.filterFX.v = JSON.parse(JSON.stringify(F.a4Y));
			X.jc(P);
			P.A()
		}
		if (o == h.dh) {
			var t = X.jk();
			t.AU = !t.AU
		}
		if (o == h.t7) {
			var t = X.add.vmsk;
			t.AU = !t.AU
		}
		if (o == h.I8) {
			var R = F.KK;
			for (var w = 0; w < R.length; w += 2) {
				var J = R[w],
					s = J >= 0 ? P.r[J] : P.VW[-1 - J];
				s.add.vogk = JSON.parse(R[w + 1]);
				H.P$.xc(s.add.vogk, s.add.vmsk);
				if (J >= 0) s._V(P)
			}
			P.A()
		}
		if (o == h.K6) {
			X.add.artb = JSON.parse(F.eR);
			P.A()
		}
		if (o == h.IB) {
			P.K = F.Od;
			P.Yq = F.KK.slice(0);
			P.oD = F.JA.slice(0);
			P.Vg = P.Ob = !0
		}
		if (o == h.IQ) {
			var W = F.acc;
			for (var w = 0; w < W.length; w++) P.r[w].Qk = W[w]
		}
		if (o == h.Pj) {
			var p = F.L_,
				n = 0,
				b;
			for (var w = 0; w < p.length; w++) {
				var s = p[w],
					Q = s.add.lsct;
				if (Q == gr.Qi) n++;
				else if (Q == gr.lw || Q == gr.kE) n--;
				if (s.add.artb && n != 0) b = "Artboards can not be inside folders."
			}
			if (b) {
				P.history.pop();
				P.xG--;
				alert(b);
				return
			}
			if (F.Vk) P.p = F.Vk;
			if (F.tp) P.K = F.tp[1];
			P.mb = null;
			P.A();
			P.wG(F.L_)
		}
		if (o == h.cN) {
			if (F.h3) cj.T8.oW(P, X);
			cj.T8.je(P, X, F.g);
			if (F.tp) {
				var _ = F.tp[1];
				if (_ == null) delete P.K;
				else P.K = _
			}
		}
		if (o == h.gk) {
			cj.T8.oW(P, P.r[F.src]);
			cj.T8.je(P, P.r[F.Fi], F.g)
		}
		if (o == h.tN) {
			cj.T8.oW(P, X)
		}
		if (o == h.s4) {
			X.yg(P).g = F.g;
			X.kB = 0;
			X.A();
			P.A()
		}
		if (o == h.BI) {
			X.yg(P).g = null;
			X.kB = 0;
			X.A();
			P.A()
		}
		if (o == h.bj) {
			cj.T8.tg(P, F.kq, 1)
		}
		if (o == h.yN) {
			cj.T8.fA(P, X, F)
		}
		if (o == h.aY) {
			cj.T8.py(P, P.r[F.src], F.g.isEnabled);
			cj.T8.fA(P, P.r[F.Fi], F)
		}
		if (o == h.hy) {
			cj.T8.py(P, X, F.g.isEnabled)
		}
		if (o == h.Sc) {
			P.ZT = JSON.parse(F.EB)
		}
		if (o == h.FW) {
			P.name = F.gA
		}
		if (o == h.u$) {
			X.uf(F.gA);
			if (F.ahG) X.add.lnsr = F.ahG;
			else delete X.add.lnsr
		}
		if (o == h.FO) {
			for (var w = 0; w < F.r.length; w++) P.r[F.r[w]].add.lclr = F.abr[w]
		}
		if (o == h.WF) {
			var L = F.nd;
			for (var w = 0; w < F.Ev.length; w++) {
				var s = P.r[F.Ev[w]],
					m = L[w];
				if (!F.jK) s.add.vstk = JSON.parse(JSON.stringify(m));
				else B.Y2.ov(s, JSON.parse(JSON.stringify(m)));
				s.fe(P)
			}
			P.A()
		}
		if (o == h.IM) {
			X.tC(F.uB);
			X._V(P);
			P.A()
		}
		P.Ob = !0
	};
	cj.T8.yR = function (F, P) {
		var o = 0;
		for (var w = 0; w < F.r.length; w++) {
			var X = F.r[w].getName();
			if (X.startsWith(P)) {
				var Y = X.slice(P.length).trim(),
					y = parseInt(Y);
				if (!isNaN(y) && y + "" == Y) o = y
			}
		}
		return o
	};
	cj.T8.tg = function (F, P, o) {
		for (var w = 0; w < P.length; w++) {
			var X = P[w],
				Y = F.r[X.XY];
			if (X.rZ) {
				Y.add.SoLd = JSON.parse(X.rZ[o])
			}
			if (X.DD) {
				if (X.DD[1 - o] != null) F.OW(X.DD[1 - o]);
				if (X.DD[o] != null) F.Bq(X.DD[o]);
				else Y.kB = 0
			}
			Y.Gy(F)
		}
	};
	cj.T8.I3 = function (F, P) {
		var o = F.R6,
			X = F.rect.clone();
		if (o != null && (o.x != P.Z || o.y != P.h)) {
			X.x = Math.floor((P.Z - X.Z) / 2);
			X.y = Math.floor((P.h - X.h) / 2)
		}
		return X
	};
	cj.T8.oW = function (F, P) {
		if (P.NY) P.NY = null;
		else P.g = null;
		P._V(F);
		F.A();
		P.kB = 0
	};
	cj.T8.je = function (F, P, o) {
		if (P.g) P.NY = o;
		else P.g = o;
		P._V(F);
		F.A()
	};
	cj.T8.py = function (F, P, o) {
		if (P.NY && o) {
			P.g = P.NY;
			P.NY = null
		} else if (P.g && o) {
			P.g = null
		}
		delete P.add.vogk;
		delete P.add.vstk;
		delete P.add.vmsk;
		P._V(F);
		P.yb = !1;
		F.mb = [];
		F.A()
	};
	cj.T8.fA = function (F, P, o) {
		P.add.vogk = JSON.parse(o.P$);
		if (o.bW) P.add.vstk = JSON.parse(o.bW);
		else delete P.add.vstk;
		P.add.vmsk = o.g.clone();
		if (P.g && P.add.vmsk.isEnabled) P.NY = P.g;
		P._V(F);
		P.yb = o.pK;
		F.mb = [F.r.indexOf(P)];
		F.QP = [];
		F.A()
	};
	cj.NO = function () {
		cj.Dg.call(this, B.FA);
		this.VA = null;
		this.OE = null;
		this.Tc = null;
		this.IW = [];
		this.Vj = null
	};
	cj.NO.prototype = new cj.Dg;
	cj.NO.prototype.XZ = function (F, P, o, X, Y) {
		var y = F.n;
		if (y == null) y = o.p[0];
		var z = o.r[y],
			s = F.XN;
		if (this.VA == null) {
			this.Tc = cj.NO.CX(o, z);
			this.VA = JSON.stringify(this.Tc);
			if (z.add.lmfx) this.OE = JSON.stringify(z.add.lmfx)
		}
		if (z.add.lmfx == null) {
			z.add.lmfx = JSON.parse(ce.default);
			for (var w = 0; w < ce.order.length; w++) z.add.lmfx[ce.og[w]] = {
				t: "VlLs",
				v: []
			}
		}
		if (F.e == "scaleeffects") {
			if (F.C == "confirm" || F.C == "cancel") {
				this.XZ({
					e: F.C
				}, P, o, X, Y);
				return
			}
			z.add.lmfx = JSON.parse(this.OE);
			cr.QE(z.add.lmfx, F.C / 100)
		} else if (F.e == "changeprop") {
			var t = null;
			if (s != 0) {
				var d = this.IW[s[0]];
				if (d == null) d = ce.IW[s[0]];
				d = JSON.parse(d);
				var U = z.add.lmfx[ce.og[s[0]]].v;
				if (U[s[1]] == null) U[s[1]] = {
					t: "Objc",
					v: d
				};
				t = U[s[1]].v;
				for (var v in d)
					if (t[v] == null) t[v] = d[v]
			}
			if (F.e == "changeprop") {
				if (s == 0) {
					this.Tc[F.lg].v = F.C;
					cj.NO.Jh(o, z, this.Tc)
				} else if (F.lg == "lagl") {
					if (t.uglg && t.uglg.v) {
						o.U9(F.C.val);
						this.Tc.a4i = o.Rp()
					} else t[F.lg].v = F.C
				} else if (F.lg == "Lald") {
					if (t.uglg.v) {
						o.Q3(F.C.val);
						this.Tc.aek = o.$p()
					} else t[F.lg].v = F.C
				} else if ((s[0] == 3 || s[0] == 8) && (F.lg == "Clr" || F.lg == "Grad")) {
					if (F.lg == "Clr") {
						t.Clr = {
							t: "Objc",
							v: F.C
						};
						delete t.Grad
					}
					if (F.lg == "Grad") {
						t.Grad = {
							t: "Objc",
							v: F.C
						};
						delete t.Clr
					}
				} else {
					t[F.lg].v = F.C
				}
				if (s != 0) this.IW[s[0]] = JSON.stringify(t)
			}
			if (s != 0)
				if (t.Ptrn) o.e6(cr.tc(t.Ptrn.v, Y.WB))
		} else if (F.e == "setstl") {
			var A = F.C.Lefx;
			if (A) cr.PB(A, o, Y.WB);
			cr.a5(F.C, z);
			this.Tc = cj.NO.CX(o, z)
		} else if (F.e == "st_dupsingle") {
			var Z = z.add.lmfx[ce.og[F.q_[0]]].v;
			if (Z[F.q_[1]] == null) return;
			var D = JSON.parse(JSON.stringify(Z[F.q_[1]]));
			Z.splice(F.q_[1], 0, D)
		} else if (F.e == "st_movsingle") {
			var q = F.q_[1],
				Z = z.add.lmfx[ce.og[F.q_[0]]].v;
			if (Z[F.q_[1]] == null) return;
			var R = Math.max(0, Math.min(Z.length - 1, q + F.agj)),
				J = Z[R];
			Z[R] = Z[q];
			Z[q] = J
		} else if (F.e == "cancel") {
			if (this.OE == null) delete z.add.lmfx;
			else z.add.lmfx = JSON.parse(this.OE);
			cj.NO.Jh(o, z, JSON.parse(this.VA));
			this.VA = null;
			this.OE = null
		} else if (F.e == "confirm") {
			var W = new bV([11, 6], this);
			W.data = {
				r: [y],
				eW: [this.OE],
				XH: [JSON.stringify(z.add.lmfx)],
				Qz: [this.VA],
				SP: [JSON.stringify(this.Tc)]
			};
			o.TX(W);
			this.VA = null;
			this.OE = null
		} else if (F.e == "st_copy") {
			this.Vj = [this.VA, this.OE];
			this.VA = null;
			this.OE = null
		} else if (F.e == "st_paste" || F.e == "st_clear") {
			if (F.e == "st_paste" && this.Vj == null) return;
			var p = F.n != null ? [F.n] : o.p.slice(0),
				n = [],
				b = [],
				Q = [],
				_ = [];
			for (var w = 0; w < p.length; w++) {
				var z = o.r[p[w]],
					L = cj.NO.CX(o, z);
				n.push(z.add.lmfx ? JSON.stringify(z.add.lmfx) : null);
				Q.push(JSON.stringify(L));
				if (F.e == "st_paste") {
					b.push(this.Vj[1]);
					_.push(this.Vj[0])
				} else {
					b.push(null);
					L.lrMd.v = 0;
					L.Opct.v.val = 100;
					L.iOpa.v.val = 100;
					L.blIf = {
						v: []
					};
					for (var m = 0; m < 10; m++) L.blIf.v.push(0, 0, 255, 255);
					_.push(JSON.stringify(L))
				}
			}
			var W = new bV([11, 6], this);
			W.data = {
				r: p,
				eW: n,
				XH: b,
				Qz: Q,
				SP: _
			};
			this.oF(W.data, o);
			o.TX(W);
			this.VA = null;
			this.OE = null
		} else {
			var I = this.Tc,
				c = null;
			if (F.e == "st_delsingle") {
				c = JSON.parse(this.OE);
				c[ce.og[F.q_[0]]].v.splice(F.q_[1], 1);
				c = JSON.stringify(c)
			}
			if (c == null) delete z.add.lmfx;
			else z.add.lmfx = JSON.parse(c);
			if (I != null) cj.NO.Jh(o, z, I);
			var W = new bV([11, 6], this);
			W.data = {
				r: [F.n],
				eW: [this.OE],
				XH: [c],
				Qz: [this.VA],
				SP: [JSON.stringify(I)]
			};
			o.TX(W);
			this.VA = null;
			this.OE = null
		}
		z.G.Zf = !0;
		o.Vf = !0;
		o.A()
	};
	cj.NO.CX = function (F, P) {
		if (P.add.iOpa == null) P.add.iOpa = 255;
		if (P.add.brst == null) P.add.brst = [1, 1, 1];
		var o = P.fO() ? ["pass"].concat(aK.YA) : aK.YA;
		return {
			lrMd: {
				v: o.indexOf(P.sW)
			},
			Opct: {
				v: {
					type: "#Prc",
					val: Math.round(P.opacity * 100 / 255)
				},
				t: "UntF"
			},
			iOpa: {
				v: {
					type: "#Prc",
					val: Math.round(P.add.iOpa * 100 / 255)
				},
				t: "UntF"
			},
			blIf: {
				v: P.LL.slice(0)
			},
			brst: {
				v: P.add.brst
			},
			a4i: F.Rp(),
			aek: F.$p(),
			fO: P.fO()
		}
	};
	cj.NO.Jh = function (F, P, o) {
		var X = P.fO() ? ["pass"].concat(aK.YA) : aK.YA;
		P.sW = X[o.lrMd.v];
		P.opacity = Math.round(o.Opct.v.val * 255 / 100);
		P.add.iOpa = Math.round(o.iOpa.v.val * 255 / 100);
		P.LL = o.blIf.v.slice(0);
		P.add.brst = o.brst.v.slice(0);
		F.U9(o.a4i);
		F.Q3(o.aek)
	};
	cj.NO.prototype.tO = function (F, P) {
		for (var w = 0; w < F.r.length; w++) {
			var o = P.r[F.r[w]],
				X = F.eW[w];
			if (X == null) delete o.add.lmfx;
			else o.add.lmfx = JSON.parse(X);
			cj.NO.Jh(P, o, JSON.parse(F.Qz[w]));
			o.G.Zf = !0
		}
		P.Vf = !0;
		P.A()
	};
	cj.NO.prototype.oF = function (F, P) {
		for (var w = 0; w < F.r.length; w++) {
			var o = P.r[F.r[w]],
				X = F.XH[w];
			if (X == null) delete o.add.lmfx;
			else o.add.lmfx = JSON.parse(X);
			cj.NO.Jh(P, o, JSON.parse(F.SP[w]));
			o.G.Zf = !0
		}
		P.Vf = !0;
		P.A()
	};
	cj.ln = function () {
		cj.Dg.call(this, B.Jc)
	};
	cj.ln.prototype = new cj.Dg;
	cj.ln.prototype.XZ = function (F, P, o, X) {
		var Y = JSON.parse(JSON.stringify(o.e5)),
			y = JSON.parse(JSON.stringify(o.e5)),
			z = null,
			s = null,
			t = null,
			d = -1,
			U = !1;
		if (F.e == "delLC") {
			var v = cj.ln.vF(o.e5, F.XN),
				A = o.e5.lastAppliedComp ? o.e5.lastAppliedComp.v : 0;
			y.list.v.splice(v, 1);
			if (A == F.XN) delete y.lastAppliedComp;
			z = "Delete Layer Comp"
		}
		if (F.e == "editLC") {
			var v = cj.ln.vF(o.e5, F.XN),
				Z = y.list.v[v].v;
			if (F.gA != null) Z.Nm.v = F.gA;
			if (F.ahW != null) {
				var D = F.ahW,
					q = Z.capturedInfo.v,
					R = q & (1 << D) - 1;
				q = q >> D;
				if ((q & 1) == 1) q--;
				else q++;
				Z.capturedInfo.v = (q << D) + R
			}
			z = "Layer Comp properties"
		}
		if (F.e == "setLC") {
			cj.ln.VL(o);
			if (F.XN == 0) delete y.lastAppliedComp;
			else y.lastAppliedComp = {
				t: "long",
				v: F.XN
			};
			z = "Switch Layer Comp";
			U = !0
		}
		if (F.e == "updLC") {
			cj.ln.VL(o);
			s = cj.ln.akf(o, F.XN);
			t = cj.ln.H$(o, F.XN);
			y.lastAppliedComp = {
				t: "long",
				v: F.XN
			};
			z = "Update Layer Comp";
			d = F.XN;
			U = !0
		}
		if (F.e == "addLC") {
			cj.ln.VL(o);
			var J = 1;
			for (var w = 0; w < y.list.v.length; w++) J = Math.max(J, y.list.v[w].v.compID.v) + 1;
			J += Math.floor(Math.random() * 1e4);
			var W = {
				t: "Objc",
				v: {
					classID: "Comp",
					Nm: {
						t: "TEXT",
						v: "New Comp " + (y.list.v.length + 1)
					},
					compID: {
						t: "long",
						v: J
					},
					capturedInfo: {
						t: "long",
						v: 7
					}
				}
			};
			y.list.v.push(W);
			y.lastAppliedComp = {
				t: "long",
				v: J
			};
			z = "New Layer Comp";
			var p = cj.ln.H$(o, J);
			cj.ln.W6(o, p, J)
		}
		var n = new bV(z, this);
		n.data = {
			abD: Y,
			ajb: y,
			aln: s,
			alE: t,
			XN: d,
			U5: U
		};
		this.oF(n.data, o);
		o.TX(n)
	};
	cj.ln.prototype.oF = function (F, P) {
		P.e5 = F.ajb;
		P.Vf = !0;
		if (F.alE) cj.ln.W6(P, F.alE, F.XN);
		if (F.U5) {
			var o = P.e5.lastAppliedComp ? P.e5.lastAppliedComp.v : 0,
				X = cj.ln.vF(P.e5, o),
				Y = X == -1 ? null : P.e5.list.v[X].v,
				y = Y ? Y.capturedInfo.v : 7;
			cj.ln.YB(P, o, y);
			P.A()
		}
	};
	cj.ln.prototype.tO = function (F, P) {
		P.e5 = F.abD;
		P.Vf = !0;
		if (F.aln) cj.ln.W6(P, F.aln, F.XN);
		if (F.U5) {
			var o = P.e5.lastAppliedComp ? P.e5.lastAppliedComp.v : 0,
				X = cj.ln.vF(P.e5, o),
				Y = X == -1 ? null : P.e5.list.v[X].v,
				y = Y ? Y.capturedInfo.v : 7;
			cj.ln.YB(P, o, y);
			P.A()
		}
	};
	cj.ln.VL = function (F) {
		if (F.e5.lastAppliedComp != null || !F.Kg) return;
		var P = cj.ln.H$(F, 0);
		cj.ln.W6(F, P, 0);
		F.Kg = !1
	};
	cj.ln.SF = function (F, P, o) {
		F.v.Hrzn.v += P;
		F.v.Vrtc.v += o
	};
	cj.ln.vF = function (F, P) {
		var o = F.list.v;
		for (var w = 0; w < o.length; w++)
			if (o[w].v.compID.v == P) return w;
		return -1
	};
	cj.ln.a3i = function (F) {
		var P = F.layerSettings.v,
			Y = null;
		if (P.length == 0) return;
		var o = "compList enab Ofst blendOptions Lefx FXRefPoint imageMask vectorMask layerSpecific".split(" "),
			X = P[0].v;
		if (X.enab == null) X.enab = {
			t: "bool",
			v: !0
		};
		if (X.Ofst == null) X.Ofst = {
			t: "Objc",
			v: {
				classID: "null",
				Hrzn: {
					t: "long",
					v: 0
				},
				Vrtc: {
					t: "long",
					v: 0
				}
			}
		};
		for (var w = 0; w < P.length; w++) {
			var y = P[w].v;
			if (Y == null) Y = JSON.parse(JSON.stringify(y));
			else
				for (var z = 0; z < o.length; z++) {
					var s = o[z];
					if (y[s]) Y[s] = JSON.parse(JSON.stringify(y[s]))
				}
			P[w].v = JSON.parse(JSON.stringify(Y))
		}
	};
	cj.ln.Fz = function (F, P) {
		var o = F.add.shmd.cmls,
			X = o.layerSettings.v;
		for (var Y = 0; Y < X.length; Y++) {
			var y = X[Y].v,
				z = y.compList.v[0].v;
			if (z == P) return Y
		}
		return -1
	};
	cj.ln.S0 = function (F, P) {
		var o = cj.ln.Fz(F, P);
		return o == -1 ? null : F.add.shmd.cmls.layerSettings.v[o].v
	};
	cj.ln.YB = function (F, P, o) {
		for (var w = 0; w < F.r.length; w++) {
			var X = F.r[w],
				Y = X.add.shmd.cmls;
			if (Y == null) continue;
			var y = Y.layerSettings.v,
				z = cj.ln.S0(X, P);
			if (z == null) {
				X.vR(!1);
				continue
			}
			if ((o & 1) != 0) {
				if (z.enab) X.vR(z.enab.v);
				else X.vR(!0)
			}
			if ((o & 2) != 0) {
				if (z.Ofst) {
					var s = z.Ofst.v,
						t = X.G_(F),
						d = Math.round(s.Hrzn.v - t.x),
						U = Math.round(s.Vrtc.v - t.y);
					if (d != 0 || U != 0) B.qT.IR(F, [w], null, d, U)
				}
			}
			if ((o & 4) != 0) {
				if (z.Lefx) {
					var v = JSON.parse(JSON.stringify(z.Lefx.v));
					ff.lm(v);
					if (JSON.stringify(v) != JSON.stringify(X.add.lmfx)) {
						X.add.lmfx = v;
						X.G.Zf = !0
					}
				} else delete X.add.lmfx;
				if (z.blendOptions) {
					var A = z.blendOptions.v;
					if (A.Opct) X.opacity = Math.round(255 * A.Opct.v.val / 100);
					if (A.Md) X.sW = X.add.lsct == gr.Qi ? "norm" : aK.pT(A.Md.v.BlnM)
				} else {
					X.opacity = 255;
					X.sW = X.fO() ? "pass" : "norm"
				}
			}
		}
	};
	cj.ln.akf = function (F, P) {
		var o = {};
		for (var w = 0; w < F.r.length; w++) {
			var X = F.r[w];
			if (X.add.shmd == null || X.add.shmd.cmls == null) continue;
			o["l" + X.add.lyid] = JSON.parse(JSON.stringify(cj.ln.S0(X, P)))
		}
		return o
	};
	cj.ln.H$ = function (F, P) {
		var o = {};
		for (var w = 0; w < F.r.length; w++) {
			var X = F.r[w],
				Y = X.add.lyid;
			o["l" + Y] = cj.ln.Ve(F, X, P)
		}
		return o
	};
	cj.ln.Ve = function (F, P, o) {
		var X = P.add.shmd ? P.add.shmd.cmls : null,
			Y = {
				classID: "null"
			},
			y = P.G_(F),
			z = {
				t: "Objc",
				v: {
					classID: "null",
					Hrzn: {
						t: "long",
						v: y.x
					},
					Vrtc: {
						t: "long",
						v: y.y
					}
				}
			};
		Y.compList = {
			t: "VlLs",
			v: [{
				t: "long",
				v: o
			}]
		};
		Y.enab = {
			t: "bool",
			v: P.UQ()
		};
		Y.Ofst = JSON.parse(JSON.stringify(z));
		Y.FXRefPoint = JSON.parse(JSON.stringify(X && X.origFXRefPoint ? X.origFXRefPoint : z));
		Y.blendOptions = {
			t: "Objc",
			v: {
				classID: "null",
				Md: {
					t: "enum",
					v: {
						BlnM: aK.Kl(P.sW)
					}
				},
				Opct: {
					t: "UntF",
					v: {
						type: "#Prc",
						val: 100 * P.opacity / 255
					}
				}
			}
		};
		if (P.add.vmsk) {
			Y.vectorMask = {
				t: "Objc",
				v: {
					classID: "null"
				}
			};
			Y.vectorMask.v.Ofst = JSON.parse(JSON.stringify(z))
		}
		if (P.add.lmfx) {
			Y.Lefx = {
				t: "Objc",
				v: JSON.parse(JSON.stringify(P.add.lmfx))
			};
			ff._k(Y.Lefx.v)
		}
		return Y
	};
	cj.ln.agV = function (F, P) {
		var o = P.add.lyid;
		if (P.add.shmd == null) P.add.shmd = {};
		if (P.add.shmd.cmls == null) {
			P.add.shmd.cmls = {
				classID: "null",
				LyrI: {
					t: "long",
					v: o
				},
				layerSettings: {
					t: "VlLs",
					v: [{
						t: "Objc",
						v: cj.ln.Ve(F, P, 0)
					}]
				}
			}
		}
	};
	cj.ln.W6 = function (F, P, o) {
		for (var w = 0; w < F.r.length; w++) {
			var X = F.r[w],
				Y = X.add.lyid;
			cj.ln.agV(F, X);
			var y = X.add.shmd.cmls,
				z = y.layerSettings.v,
				s = P["l" + Y];
			if (s != null) s = {
				t: "Objc",
				v: JSON.parse(JSON.stringify(s))
			};
			var t = cj.ln.Fz(X, o);
			if (t == -1) {
				if (s == null) continue;
				else z.push(s)
			} else {
				if (s == null) z.splice(t, 1);
				else z[t] = s
			}
		}
	};
	cj.ln.vc = function (F, P) {
		for (var w = 0; w < F.r.length; w++) {
			var o = F.r[w],
				X = o.add.lyid;
			if (o.add.shmd == null || o.add.shmd.cmls == null) continue;
			var Y = o.G_(F),
				y = Math.round(Y.x),
				z = Math.round(Y.y);
			if (!P) {
				y = -y;
				z = -z
			}
			var s = o.add.shmd.cmls,
				t = s.layerSettings.v;
			if (s.origFXRefPoint) cj.ln.SF(s.origFXRefPoint, -y, -z);
			for (var d = 0; d < t.length; d++) {
				var U = t[d].v;
				cj.ln.SF(U.Ofst, y, z);
				var v = U.imageMask,
					A = U.vectorMask;
				if (v && v.v.Ofst) cj.ln.SF(v.v.Ofst, y, z);
				if (A && A.v.Ofst) cj.ln.SF(A.v.Ofst, y, z)
			}
		}
	};
	cj.Dt = function () {
		cj.Dg.call(this, B.Vd);
		this.EB = null;
		this.G9 = null
	};
	cj.Dt.prototype = new cj.Dg;
	cj.Dt.t8 = function (F, P, o, X) {
		if (X) P /= 4;
		var Y = 0,
			y = 0,
			z = 255,
			s = 0,
			t = 0,
			d = 255;
		while (y + F[Y] < P) {
			y += F[Y];
			Y++
		}
		while (s + F[z] < P) {
			s += F[z];
			z--
		}
		if (X) {
			Y -= Math.round(F[Y] / (o / 32));
			z += Math.round(F[z] / (o / 32));
			if (Y < 0) t = Math.round(-Y * 255 / (z - Y));
			if (z > 255) d = 255 - Math.round((z - 255) * 255 / (z - Y))
		}
		return [Math.max(Y, 0), Math.min(z, 255), t, d, 100]
	};
	cj.Dt.prototype.XZ = function (F, P, o, X, Y) {
		var y = F.e;
		if (y == "auto") {
			var z = F.fN,
				s = cj.Dt.getData(o);
			for (var w = 0; w < s.length; w++) {
				var t = s[w],
					d;
				if (z < 3) {} else {
					var U = bv.tt("hue2");
					az._j(U, 0, [0, -100, 0]);
					d = b_.VM("hue2", U)
				}
				b_.t5(d, t.Tr, t.BF, t.T)
			}
			cj.Dt.N_(o, s);
			cj.Dt.$Q(o, s, z < 3 ? [4, 16, z] : [19, 7, 0], this);
			o.A()
		}
		if (y == "edit_layer") this.abj(F, P, o, X);
		if (y == "edit" || y == "confirm" || y == "cancel") this.pN(F, P, o, Y, !0);
		if (y == "start") {
			if (o.p.length == 0) return;
			var v = o.r[o.p[0]];
			if (v.add.SoLd && v.kB <= 0) {
				var A = new l(i.E.H, !0);
				A.Q = B._q;
				A.data = {
					e: "start",
					k9: F.MY
				};
				P.w(A);
				return
			}
			if (!o.vx(P, null, !0)) return;
			if (f[F.MY] && F.pl == null) {
				if (o.p.length != 1) alert("Will be applied to " + o.p.length + " layers.");
				var A = new l(i.E.L, !0);
				A.data = {
					e: i.B.uH,
					W2: "afw_" + F.MY
				};
				P.w(A)
			} else {
				this.pN({
					e: "edit",
					pl: F.pl,
					k9: F.MY
				}, P, o, Y);
				this.pN({
					e: "confirm",
					k9: F.MY
				}, P, o, Y)
			}
		}
	};
	cj.Dt.prototype.abj = function (F, P, o, X) {
		var Y = F.e,
			y = o.p[0],
			z = o.r[y],
			s = b_.get(z.add),
			t = JSON.parse(JSON.stringify(F.C)),
			v;
		for (var d in b_.om)
			if (b_.om[d] == s) t.classID = d;
		var U = o.history[o.xG];
		if (U && U.Q == this && U.data.Ub != null && U.data.n == y) v = U;
		else {
			var A = new l(i.E.QJ, !0),
				Z = {
					classID: "setd",
					null: gY.Pe("AdjL", !0),
					T: {
						t: "Objc",
						v: t
					}
				};
			A.data = {
				Ke: !0,
				Bm: "set",
				w1: Z
			};
			P.w(A);
			var v = new bV([6, 39], this);
			v.data = {
				n: y,
				Ub: z.add[s],
				uB: F.C,
				ay: Z
			};
			o.TX(v)
		}
		v.data.uB = F.C;
		v.data.ay.T.v = t;
		this.oF(v.data, o)
	};
	cj.Dt.getData = function (F, P, o) {
		var X = [],
			Y = new ev(0, 0, F.Z, F.h),
			y = F.oD.length != 0 ? [-1 - F.oD[0]] : F.p;
		for (var w = 0; w < y.length; w++) {
			var z = y[w],
				s = z < 0 ? null : F.r[z],
				t = {
					n: z,
					qf: z < 0 ? 1 : s.kB
				};
			X.push(t);
			var d = F.Yq[-1 - z];
			if (0 <= z) d = s.kB <= 0 ? null : s.kB == 1 ? s.jk() : s.yg(F).g;
			var U = d ? d.rect : s.rect;
			if (F.K) t.T = d != null ? F.K.rect.$X(Y) : F.K.rect.$X(U);
			else t.T = P || d != null ? U.s7(Y) : U.clone();
			if (o) t.T = o[w].T.clone();
			var v = t.T.M();
			t.Tr = H.R(v * 4);
			if (d) B.gn.Jy(d.channel, d.rect, d.color, t.Tr, t.T);
			else H.BP(s.buffer, U, t.Tr, t.T);
			t.BF = t.Tr.slice(0);
			if (F.K) {
				t._b = H.R(v);
				H.Lj(F.K.channel, F.K.rect, t._b, t.T)
			}
		}
		return X
	};
	cj.Dt.ab2 = function (F, P, o) {
		if (P == null) return P;
		var X = b_.hA(F, P),
			y;
		if (X == -1) return P;
		var Y = o.length >>> 2,
			z = H.NC(o),
			s = .001 * Y;
		if (X == 0 || X == 2) y = [
			[0, 255, 0, 255, 100], cj.Dt.t8(z[1], s, Y, X == 2), cj.Dt.t8(z[2], s, Y, X == 2), cj.Dt.t8(z[3], s, Y, X == 2)
		];
		if (X == 1) y = [cj.Dt.t8(z[0], s * .33, Y, !1), [0, 255, 0, 255, 100],
			[0, 255, 0, 255, 100],
			[0, 255, 0, 255, 100]
		];
		var t = bv.tt("levl");
		for (var w = 0; w < 4; w++) gm._j(t, w, y[w]);
		return t
	};
	cj.Dt.prototype.pN = function (F, P, o, X) {
		if (this.EB == null) this.EB = cj.Dt.getData(o, null, F.k9 == "fade" ? o.a1().data : null);
		if (F.e == "edit") {
			this.G9 = [F.k9, F.pl];
			var Y = this.EB[0],
				y = cj.Dt.ab2(F.k9, F.pl, Y.Tr),
				z = b_.VM(F.k9, y);
			if (F.k9 == "fade") z = F.pl;
			if (z != null) {
				for (var w = 0; w < this.EB.length; w++) {
					var s = this.EB[w];
					if (F.mw) H.Hk(s.Tr, s.BF);
					else if (F.k9 == "fade") {
						var t = aK.pT(F.pl.Md.v.BlnM),
							d = F.pl.Opct.v.val / 100,
							U = o.a1().data[w];
						H.Hk(U.Tr, s.BF);
						if (t == "norm") H.N.$e(s.Tr, s.T, s.BF, s.T, null, null, null, s.T, d);
						else {
							var v = cr.jx();
							v.YU = !0;
							for (var w = 0; w < U.Tr.length; w += 4)
								if (U.Tr[w + 3] != s.Tr[w + 3]) {
									v = null;
									break
								} H.N.DO(t, s.Tr, s.T, s.BF, s.T, s.T, d, v)
						}
					} else b_.t5(z, s.Tr, s.BF, s.T)
				}
				cj.Dt.N_(o, this.EB)
			}
		}
		if (F.e == "cancel") {
			cj.Dt.SQ(o, this.EB);
			this.EB = null
		}
		if (F.e == "confirm") {
			var A = F.k9 == "fade" ? [2, 11] : b_.names[F.k9],
				Z = b_.hA(F.k9, this.G9[1]);
			if (Z != -1) A = [4, 16, Z];
			cj.Dt.$Q(o, this.EB, A, this);
			this.EB = null;
			if (Z == -1) cj.Dt.s9(P, this.G9)
		}
		o.A()
	};
	cj.Dt.s9 = function (F, P) {
		var o = P[0],
			X = P[1],
			Y, y;
		if (b_.l6[o]) {
			Y = b_.l6[o];
			if (f[o]) y = X
		}
		if (bv.l6[o]) {
			Y = bv.l6[o];
			if (f[o]) y = X
		}
		if (Y == null) return;
		var z = new l(i.E.QJ, !0);
		z.data = {
			Ke: !0,
			Bm: Y
		};
		if (y) {
			y = JSON.parse(JSON.stringify(y));
			y.classID = "null";
			delete y.__name;
			z.data.w1 = y
		}
		F.w(z)
	};
	cj.Dt.SQ = function (F, P) {
		cj.Dt.Cb(F, P)
	};
	cj.Dt.$Q = function (F, P, o, X) {
		for (var w = 0; w < P.length; w++) {
			var Y = P[w],
				y = F.r[Y.n],
				z = Y.n < 0 ? F.Yq[-1 - Y.n] : Y.qf <= 0 ? null : Y.qf == 1 ? y.jk() : y.yg(F).g;
			if (z) {
				z.HZ();
				z.G2 = !0;
				if (y) y._V(F)
			} else {
				y.HZ();
				y.A()
			}
			delete Y.BF;
			delete Y._b
		}
		var s = new bV(o, X);
		s.data = P;
		F.TX(s);
		F.Vf = !0
	};
	cj.Dt.N_ = function (F, P, o) {
		for (var w = 0; w < P.length; w++) {
			var X = P[w],
				Y = F.r[X.n],
				y = o ? X.Tr : X.BF,
				z = X.T;
			if (X.qf == 0) {
				Y.extend(z);
				if (X._b) {
					H.BP(X.Tr, z, Y.buffer, Y.rect);
					H.N.$e(y, z, Y.buffer, Y.rect, X._b, z, 0, z, 1)
				} else H.BP(y, z, Y.buffer, Y.rect)
			} else {
				var s = X.n < 0 ? F.Yq[-1 - X.n] : X.qf == 1 ? Y.jk() : Y.yg(F).g;
				s.extend(z);
				if (X._b) {
					var t = H.R(z.M() * 4);
					H.Hk(X.Tr, t);
					H.N.$e(y, z, t, z, X._b, z, 0, z, 1);
					B.gn.uF(t, z, s)
				} else B.gn.uF(y, z, s);
				s.G2 = !0;
				if (Y) Y._V(F)
			}
			if (Y) Y.A()
		}
		if (!o) cj.Dt.Gh(F, P)
	};
	cj.Dt.Cb = function (F, P) {
		for (var w = 0; w < P.length; w++) {
			var o = P[w],
				X = F.r[o.n],
				Y = o.T,
				y = H.R(Y.M() * 4);
			if (o.qf == 0) {
				H.BP(X.buffer, X.rect, y, Y);
				X.extend(Y);
				H.BP(o.Tr, Y, X.buffer, X.rect);
				X.HZ()
			} else {
				var z = o.n < 0 ? F.Yq[-1 - o.n] : o.qf == 1 ? X.jk() : X.yg(F).g;
				B.gn.Jy(z.channel, z.rect, z.color, y, Y);
				z.extend(Y);
				B.gn.uF(o.Tr, Y, z);
				z.HZ();
				z.G2 = !0;
				if (X) X._V(F)
			}
			o.Tr = y;
			if (X) X.A()
		}
		F.Vf = !0
	};
	cj.Dt.Gh = function (F, P) {
		var o = cj.Dt.Uv(F),
			X = ~o;
		if (o == 16777215) return;
		for (var w = 0; w < P.length; w++) {
			var Y = P[w],
				y = F.r[Y.n],
				z = Y.T;
			if (Y.qf != 0) continue;
			y.extend(z);
			var s = z.x - y.rect.x,
				t = z.y - y.rect.y,
				d = y.rect.Z,
				U = new Uint32Array(Y.Tr.buffer),
				v = new Uint32Array(y.buffer.buffer);
			for (var A = 0; A < z.h; A++)
				for (var Z = 0; Z < z.Z; Z++) {
					var D = A * z.Z + Z,
						q = (A + t) * d + (Z + s);
					v[q] = v[q] & o | U[D] & X
				}
			y.HZ();
			y.A()
		}
		F.A()
	};
	cj.Dt.Uv = function (F) {
		var P = F.a.qa;
		return P[2] * 16711680 | P[1] * 65280 | P[0] * 255
	};
	cj.Dt.prototype.tO = function (F, P) {
		var o = P.r[F.n];
		if (F.Ub != null) o.add[b_.get(o.add)] = F.Ub;
		else cj.Dt.Cb(P, F);
		P.A()
	};
	cj.Dt.prototype.oF = function (F, P) {
		var o = P.r[F.n];
		if (F.Ub != null) o.add[b_.get(o.add)] = F.uB;
		else cj.Dt.Cb(P, F);
		P.A()
	};
	cj.Fr = function () {
		cj.Dg.call(this, B._q);
		this.EB = null;
		this.S$ = null;
		this.e = null;
		this.G9 = null
	};
	cj.Fr.prototype = new cj.Dg;
	cj.Fr.prototype.XZ = function (F, P, o, X, Y) {
		if (F.e == "start") {
			if (o.p.length == 0) return;
			var y = o.r[o.p[0]];
			if (y.add.SoLd && y.kB <= 0) {} else if (!o.vx(P, null, !0)) return;
			var z = F.k9;
			if ((f[z] || bv.lt[z]) && F.pl == null) {
				if (o.p.length != 1) alert("Will be applied to " + o.p.length + " layers.");
				var s = new l(i.E.L, !0);
				s.data = cj.Fr.Dl(z, this.CN(o, z));
				P.w(s)
			} else {
				var t = {
					e: "edit",
					k9: z,
					pl: F.pl,
					mE: this.CN(o)
				};
				this.XZ(t, P, o, X, Y);
				t.e = "confirm";
				delete t.pl;
				this.XZ(t, P, o, X, Y)
			}
		}
		if (F.e == "edit" || F.e == "cancel" || F.e == "confirm") {
			if (F.e == "edit") this.G9 = [F.k9, F.pl];
			if (F.mE) this.a2r(F, o, Y);
			else this.ac6(F, P, o, Y)
		}
		if (F.e == "applylast" && this.G9 != null) {
			var t = {
				e: "edit",
				k9: this.G9[0],
				pl: this.G9[1],
				mE: this.CN(o)
			};
			this.XZ(t, P, o, X, Y);
			t.e = "confirm";
			delete t.pl;
			this.XZ(t, P, o, X, Y)
		}
	};
	cj.Fr.Dl = function (F, P) {
		var o = bv.lt[F];
		if (o) return {
			e: i.B.MR,
			Q: o,
			iF: {
				mE: P
			}
		};
		else return {
			e: i.B.uH,
			W2: "afw_" + F,
			mE: P
		}
	};
	cj.Fr.prototype.CN = function (F, P) {
		var o = F.r[F.p[0]],
			X;
		if (o.add.SoLd && o.kB <= 0) {
			X = {
				n: F.p[0],
				index: 0
			};
			if (o.add.SoLd.filterFX != null) {
				var Y = o.add.SoLd.filterFX.v.filterFXList.v;
				X.index = Y.length;
				for (var w = 0; w < Y.length; w++)
					if (bv.l$(Y[w].v) == P && bv.lt[P]) X.index = w
			}
		}
		return X
	};
	cj.Fr.prototype.a2r = function (F, P, o) {
		var X = P.r[F.mE.n],
			Y = F.k9;
		if (F.e == "edit") {
			if (this.e == null) {
				var y = bv.names[Y];
				if (y == null) y = b_.names[Y];
				this.e = new bV(y, this);
				this.e.data = {
					mE: F.mE,
					a0h: JSON.parse(JSON.stringify(X.add.SoLd))
				}
			}
			if (!X.gO()) {
				X.add.SoLd.filterFX = bv.U$();
				this.e.data.DD = c_.eg(X.add.SoLd.placed.v);
				P.Bq(this.e.data.DD);
				X.Gy(P)
			}
			var z = X.add.SoLd.filterFX.v.filterFXList.v;
			if (z[F.mE.index] == null) {
				z.push(bv.Sb(Y, o))
			}
			if (F.pl) {
				z[F.mE.index].v.enab.v = F.mw != !0;
				z[F.mE.index].v.Fltr.v = F.pl
			}
			this.e.data.agB = JSON.parse(JSON.stringify(X.add.SoLd));
			this.oF(this.e.data, P)
		}
		if (F.e == "cancel") {
			if (this.e) this.tO(this.e.data, P);
			this.e = null
		}
		if (F.e == "confirm") {
			if (this.e) P.TX(this.e);
			this.e = null
		}
	};
	cj.Fr.prototype.qS = function (F) {
		return {
			U: F >>> 16,
			S: F >>> 8 & 255,
			i: F & 255
		}
	};
	cj.Fr.prototype.ac6 = function (F, P, o, X) {
		if (this.EB == null) {
			var Y = bv.Oe(F.k9, F.pl);
			this.EB = cj.Dt.getData(o, Y.x != 0 || Y.y != 0)
		}
		if (F.e == "edit") {
			var y = JSON.stringify(F.pl);
			if ((F.pl == null || y != this.S$) && F.mw != !0)
				for (var w = 0; w < this.EB.length; w++) {
					var z = this.EB[w],
						s = {
							rect: z.T,
							buffer: z.Tr
						},
						t = {
							rect: z.T,
							buffer: z.BF
						};
					bv.t5(F.k9, s, F.pl, this.qS(X.GY), this.qS(X.Ty), t, [o.add.lnk2 ? o.add.lnk2 : [], o.r[o.p[0]].jk(), o.Yq]);
					this.S$ = y
				}
			cj.Dt.N_(o, this.EB, F.mw)
		}
		if (F.e == "cancel") {
			cj.Dt.SQ(o, this.EB);
			this.EB = null;
			this.S$ = null
		}
		if (F.e == "confirm") {
			cj.Dt.$Q(o, this.EB, bv.names[F.k9], this);
			this.EB = null;
			this.S$ = null;
			cj.Dt.s9(P, this.G9)
		}
		o.A();
		o.Vf = !0
	};
	cj.Fr.prototype.tO = function (F, P) {
		if (F.mE) {
			var o = P.r[F.mE.n];
			if (F.DD) P.OW(F.DD);
			o.add.SoLd = JSON.parse(JSON.stringify(F.a0h));
			if (o.gO()) o.jc(P);
			else {
				o.Gy(P);
				o.kB = 0
			}
		} else cj.Dt.Cb(P, F);
		P.A();
		P.Vf = !0
	};
	cj.Fr.prototype.oF = function (F, P) {
		if (F.mE) {
			var o = P.r[F.mE.n];
			if (F.DD) P.Bq(F.DD);
			o.add.SoLd = JSON.parse(JSON.stringify(F.agB));
			if (o.gO()) o.jc(P);
			else o.Gy(P);
			if (!o.dL()) o.ix += 32
		} else cj.Dt.Cb(P, F);
		P.A();
		P.Vf = !0
	};
	var ge = {
		oc: "0",
		Sm: "1",
		uw: "2",
		wj: "3",
		Ym: "4",
		AT: "5",
		jq: "6",
		Mg: "7",
		H: "8",
		o8: "8.5",
		rn: "8.8",
		yE: "9",
		Du: "10",
		Ol: "11",
		l2: "12",
		Bh: "13",
		SO: "14",
		mj: "15",
		Io: "21",
		td: "22",
		Kw: "23",
		HI: "23.0",
		gb: "23.1",
		tr: "23.2",
		t4: "23.3",
		nn: "23.4",
		qk: "23.5",
		KZ: "23.6",
		$b: "30",
		GV: "31",
		Mu: "40",
		z_: "41",
		gq: "42"
	};
	ge.Vv = {};
	ge.Vv[ge.Sm] = ["abr", "brushes", i8, [9, 3]];
	ge.Vv[ge.uw] = ["grd", "gradients", dv, [12, 37]];
	ge.Vv[ge.wj] = ["shc", "contours", hc, [12, 21]];
	ge.Vv[ge.Ym] = ["asl", "styles", gA, [12, 22]];
	ge.Vv[ge.AT] = ["pat", "patterns", d9, [12, 62]];
	ge.Vv[ge.jq] = ["csh", "shapes", gN, [12, 77]];
	ge.Vv[ge.Mg] = ["aco", "swatches", gL, [9, 8]];
	ge.Vv[ge.H] = ["atn", "actions", fb, [9, 9]];
	ge.Vv[ge.o8] = ["tpl", "tpresets", a8, [9, 12]];
	ge.Vv[ge.rn] = ["icc", "profiles", ao, "ICCs"];

	function bV(F, P, o) {
		if (o == null) o = !1;
		this.name = F;
		this.Q = P;
		this.vb = o;
		this.data = null
	}
	var gY = {};
	gY.Pe = function (F, P) {
		var o = {
			t: "Clss",
			v: {
				classID: F
			}
		};
		if (P) o = {
			t: "Enmr",
			v: {
				classID: F,
				typeID: "Ordn",
				enum: "Trgt"
			}
		};
		return {
			t: "obj ",
			v: [o]
		}
	};
	gY.JK = function (F, P) {
		var o = {
			classID: "Lyr"
		};
		o[F] = P;
		return {
			Bm: "set",
			w1: {
				classID: "null",
				null: gY.Pe("Lyr", !0),
				T: {
					t: "Objc",
					v: o
				}
			}
		}
	};
	gY.a2H = function (F, P, o, X, Y) {
		var y = new l(i.E.QJ, !0),
			z = [],
			w = 0,
			s = gY.Mj(P, o, X, z);
		while (z.length != 0) {
			var t = z.pop();
			w++;
			if (!t.Y) continue;
			if (t.Bm == "conditional") {
				var d = F.r[F.p[0]],
					U = t.w1.null.v.Cndt,
					v = !1;
				if (U == "Bckg") v = !1;
				else if (U == "Pxel" && F.FD(!1)) v = !0;
				else if (U == "Adjs" && b_.get(d.add)) v = !0;
				else if (U == "Shp" && d.add.vogk) v = !0;
				else if (U == "Grup" && d.fO()) v = !0;
				var A = t.w1.then.v;
				if (v) gY.Mj(P, A[0].v.val, A[1].v.val, z)
			} else if (t.Bm == "stop") {
				if (t.w1.Cntn && t.w1.Cntn.v == !0) window.confirm(t.w1.Msge.v);
				else {
					alert(t.w1.Msge.v);
					break
				}
			} else {
				y.data = {
					Bm: t.Bm,
					w1: t.w1
				};
				Y.w(y)
			}
		}
	};
	gY.Mj = function (F, P, o, X) {
		var Y;
		for (var w = 0; w < F.length; w++) {
			if (F[w].tP != o) continue;
			var y = F[w].xX;
			for (var z = 0; z < y.length; z++) {
				if (y[z].tP != P) continue;
				Y = y[z].xX
			}
		}
		var s = Y.length;
		for (var w = 0; w < s; w++) X.push(Y[s - 1 - w])
	};
	gY.adU = function (F) {
		var P = F.Bm,
			o = F.w1,
			X, z, s, t, d, U;
		if (o && o.null) X = o.null.v[0];
		if (o && X == null && o.At) X = o.At.v[0];
		if (X && X.t == "obj ") X = X.v[0];
		var Y = X ? X.v.classID : null,
			y = ["purge"];
		if (y.indexOf(P) != -1) return P[0].toUpperCase() + P.slice(1);
		U = b_.l6;
		for (z in U)
			if (U[z] == P) s = z;
		U = bv.l6;
		for (z in U)
			if (U[z] == P) t = z;
		U = fK.l6;
		for (z in U)
			if (U[z] == P) d = z;
		if (s) {
			var v = b_.hA(s, o);
			if (v != -1) return [4, 16, v];
			return b_.names[s]
		}
		if (t) return bv.names[t];
		if (d) return fK.names[d];
		var A = gY.tY;
		if (P == "make") {
			if (X) {
				if (Y == "AdjL") return [6, 1];
				else if (Y == "layerSection") return [6, 9];
				else if (Y == "Lyr") return [6, 13];
				else if (Y == "Chnl" && X.v.enum == "Msk") return [6, 2];
				else if (Y == "contentLayer") return [6, 48, 1];
				else if (Y == "BckL") return "Make Background Layer";
				else if (Y == "Path") return "Make Path";
				else if (Y == "TxLr") return "Make Text Layer"
			}
			if (o.Nw) {
				Y = o.Nw.v.classID;
				if (Y == "Dcmn") return [11, 7];
				else if (Y == "Chnl" || Y == "SCch") return "New Channel"
			}
		} else if (P == "select") {
			if (Y == "Chnl") return "Select " + (X.v.enum == "Msk" ? "Mask " : "") + "Channel";
			else if (Y == "Mn") return "Select Panel \"" + X.v.enum + "\"";
			else if (Y == "Lyr") return "Select Layer \"" + X.v.val + "\""
		} else if (A[P] && Y == "Chnl") {
			var Z = X.v.keyID == "fsel";
			return A[P] + " " + (Z ? "Selection" : "Channel")
		} else if (P == "set") {
			if (Y == "Lyr") return "Set Current Layer";
			else if (Y == "AdjL") return [6, 39];
			else if (Y == "contentLayer") return [6, 48, 2];
			else if (Y == "Prpr") return [11, 6];
			else if (Y == "Clr") return "Set " + (X.v.keyID == "FrgC" ? "Foreground" : "Background") + " color";
			else console.log(Y)
		} else if (P == "move") {
			if (Y == "Lyr") return "Move Layer"
		} else if (P == "show" || P == "hide") {
			var D = "";
			if (Y == "Lyr") + "Layer";
			if (Y == "Chnl") + "Channel";
			return (P == "show" ? "Show" : "Hide") + " " + D
		} else if (P == "reset") {
			if (Y == "Clr") return "Reset Colors"
		} else if (P == "exchange") {
			if (Y == "Clr") return [22, 7, 0]
		} else if (P == "rotateEventEnum") return [2, 5];
		else if (P == "flip") {
			var q = o.Axis.v.Ornt == "Hrzn";
			return [
				[2, 6],
				[22, 4, q ? 2 : 3]
			]
		}
		if (Y == "Chnl") {
			if (P == "duplicate") {
				if (X.v.keyID == "fsel") return "Selection to Channel";
				else return "Duplicate Channel"
			}
			if (P == "delete") return "Delete Channel"
		}
		var R = {
				cut: [5, 0],
				copyEvent: [5, 1],
				copyToLayer: [6, 49],
				copyMerged: [5, 7],
				paste: [5, 2],
				close: [1, 12],
				groupEvent: [6, 18],
				duplicate: [6, 0],
				mergeLayersNew: [6, 12, 0],
				mergeVisible: "Merge Visible",
				flattenImage: [6, 12, 1],
				updatePlacedLayer: [6, 36, 1],
				fill: [2, 3],
				colorRange: [7, 8],
				desaturate: [19, 7, 0],
				transform: [10, 16],
				delete: o ? [6, 31] : [2, 2],
				align: [20, 4, 0],
				placedLayerEditContents: "Edit Contents",
				newPlacedLayer: [6, 7],
				canvasSize: [11, 3],
				imageSize: [11, 10],
				rasterizeLayer: [6, 8],
				revealAll: [11, 12, 2],
				conditional: "If"
			},
			J = R[P];
		if (J == null) J = gY.qE[P];
		if (J) return J;
		return P
	};
	gY.qE = {
		border: [7, 9],
		smoothness: [19, 3, 0],
		expand: [7, 4],
		contract: [7, 5],
		feather: [7, 6],
		inverse: [7, 2]
	};
	gY.tY = {
		set: "Set",
		add: "Add Transparency",
		addTo: "Add To",
		subtract: "Subtract Transparency",
		subtractFrom: "Subtract From",
		interfaceIconFrameDimmed: "Intersect Transparency",
		interfaceWhite: "Intersect With"
	};
	gY.af4 = function (F, P, o, X) {
		var Y = F.Bm,
			y = F.w1,
			z = new l(i.E.H, !0),
			d, U, v, A, Z, J;
		z.Q = B.xC;
		var s = new l(i.E.L, !0),
			t = ["purge", "updatePlacedLayer"];
		if (t.indexOf(Y) != -1) return;
		Z = b_.l6;
		for (d in Z)
			if (Z[d] == Y) U = d;
		Z = bv.l6;
		for (d in Z)
			if (Z[d] == Y) v = d;
		Z = fK.l6;
		for (d in Z)
			if (Z[d] == Y) A = d;
		if (U) {
			z.Q = B.Vd;
			z.data = {
				e: "start",
				MY: U,
				pl: y
			}
		} else if (v) {
			z.Q = B._q;
			z.data = {
				e: "start",
				k9: v,
				pl: y
			}
		} else if (A) {
			z.Q = B._q;
			z.data = {
				e: "start",
				k9: "GEfc",
				pl: y
			}
		} else if (Y == "imageSize" || Y == "canvasSize" || Y == "revealAll" || Y == "trim") {
			z.Q = B.Uj;
			z.data = {
				e: "fromAction",
				WR: F
			}
		} else if (Y == "fill" || Y == "delete" && y == null) {
			z.Q = B.Sm;
			z.data = {
				e: "fromAction",
				WR: F
			}
		} else if (Y == "colorRange") {
			var D = y.Mnm.v,
				q = y.Mxm.v;
			z.Q = B.j1;
			z.data = {
				e: "crange",
				c7: {
					Ov: D.Lmnc.v,
					m: D.A.v,
					i: D.B.v
				},
				Aa: {
					Ov: q.Lmnc.v,
					m: q.A.v,
					i: q.B.v
				},
				aI: y.Fzns.v / 200
			}
		} else if (gY.qE[Y] || gY.tY[Y] && (!1 || y.With && y.With.v[0].v.keyID == "fsel" || y.From && y.From.v[0].v.keyID == "fsel" || y.null && y.null.v[0].v.keyID == "fsel" || y.T.v[0] && y.T.v[0].v.keyID == "fsel")) {
			z.Q = B.j1;
			z.data = {
				e: "fromAction",
				WR: F
			}
		}
		var R = {
			copyToLayer: h.qZ,
			mergeLayersNew: X && X.p.length == 1 ? h.SG : h.FI,
			rasterizeLayer: h.Bo,
			mergeVisible: h.iQ,
			flattenImage: h.ck,
			newPlacedLayer: h.eV
		};
		if (R[Y]) z.data = {
			e: R[Y],
			w1: y
		};
		if (z.data) {
			P.w(z);
			return
		}
		if (Y == "desaturate") {
			z.Q = B.Vd;
			z.data = {
				e: "auto",
				fN: 3
			};
			if (X && X.r[X.p[0]].add.SoLd == null) P.w(z);
			return
		}
		if (Y == "close") {
			if (y.Svng.v.YsN == "Ys") {
				s.data = {
					e: i.B.tG
				};
				P.w(s)
			}
			s.data = {
				e: i.B.vz,
				Fe: X
			};
			P.w(s);
			return
		}
		var R = {
			placedLayerEditContents: i.B.At,
			copyEvent: i.B.c_,
			paste: i.B.bx
		};
		if (R[Y]) s.data = {
			e: R[Y]
		};
		if (s.data) {
			P.w(s);
			return
		}
		if (y.null || y.At) J = (y.null ? y.null : y.At).v;
		else J = [{
			t: "----",
			v: y
		}];
		if (J[0].t == "obj ") {
			if (J.length != 1) throw "e";
			J = J[0].v
		}
		for (var W = 0; W < J.length; W++) {
			var p = J[W],
				n = p.v.classID;
			z.data = null;
			if (Y == "make") {
				if (y.null == null && y.Nw) n = y.Nw.v.classID;
				if (n == "AdjL") {
					z.data = {
						e: h.uv,
						w1: y
					}
				} else if (n == "layerSection") {
					z.data = {
						e: h.$t
					};
					if (y.Usng) z.data.gA = y.Usng.v.Nm.v
				} else if (n == "Lyr") {
					if (y.Usng && y.Usng.v.length == 2) z.data = {
						e: h.eH
					};
					else {
						z.data = {
							e: h.Nm
						};
						if (y.Usng) z.data.gA = y.Usng.v.Nm.v
					}
				} else if (n == "Chnl" && p.v.enum == "Msk") {
					z.data = {
						e: h.cN,
						wi: y.Usng.v.UsrM
					}
				} else if (n == "Chnl" || n == "SCch") {
					z.data = {
						e: h.IB,
						mQ: "fromAction",
						C: F
					}
				} else if (n == "contentLayer") {
					z.data = {
						e: h.F0,
						w1: y
					}
				} else if (n == "BckL") {
					X.r[X.p[0]].a5u();
					continue
				} else if (n == "Dcmn") {
					var b = y.Nw.v;
					s.data = {
						e: i.B.qD,
						EA: c_.akv(b, o)
					}
				} else if (n == "Ptrn") s.data = {
					e: i.B.kj,
					S9: 0
				};
				else if (n == "Path") {
					z.Q = B.lL;
					z.data = {
						e: "pathedit",
						mQ: "fromsel"
					}
				} else if (n == "TxLr") {
					z.Q = B.OX;
					z.data = {
						e: "fromAction",
						WR: F
					}
				} else {
					console.log(Y, n, y);
					throw "e"
				}
			} else if (Y == "select") {
				if (n == "Lyr") {
					var Q = y.selectionModifier,
						_ = Q ? Q.v.selectionModifierType : null,
						L = gY.iv(X, p);
					z.data = {
						e: h.Tq,
						n: L,
						akM: _ ? ["addToSelection", "addToSelectionContinuous"].indexOf(_) : null,
						wH: 0,
						a6x: !0
					}
				} else if (n == "Chnl") {
					z.data = {
						e: h.Tq,
						n: L,
						wH: 1
					}
				}
			} else if ((Y == "set" || Y == "reset" || Y == "exchange") && n == "Clr") {
				s.data = {
					e: i.B.Sl,
					S9: ge.Io,
					mQ: Y == "reset" ? 3 : 2
				};
				if (Y == "set") {
					s.data.mQ = p.v.keyID == "FrgC" ? 0 : 1;
					var m = H.j.T6(y.T.v);
					s.data.C = m.U << 16 | m.S << 8 | m.i
				}
			} else if (Y == "set") {
				if (n == "AdjL") {
					var I = y.T.v.classID;
					I = b_.om[I];
					z.Q = B.Vd;
					if (I) z.data = {
						e: "edit_layer",
						C: y.T.v
					}
				} else if (n == "Lyr") {
					var c = y.T.v,
						L = gY.iv(X, p);
					if (c.Nm) z.data = {
						e: h.u$,
						name: c.Nm.v
					};
					else if (c.Opct) z.data = {
						e: h.Ot,
						uB: Math.round(c.Opct.v.val * 255 / 100)
					};
					else if (c.fillOpacity) z.data = {
						e: h.Ib,
						uB: Math.round(c.fillOpacity.v.val * 255 / 100)
					};
					else if (c.Md) z.data = {
						e: h.N1,
						uB: aK.zn.indexOf(c.Md.v.BlnM)
					};
					else if (c.Usrs) z.data = {
						e: h.dh,
						n: L
					};
					else if (c.Blnd) {
						z.Q = B.FA;
						z.data = {
							e: "setstl",
							n: L,
							C: {
								blendOptions: {
									t: "objc",
									v: c
								}
							}
						};
						P.w(z);
						z.data = {
							e: "confirm",
							n: L
						}
					} else if (c.Clr) {
						var u = {
							Ylw: 3
						} [c.Clr.v.Clr];
						if (u == null) throw "e";
						z.data = {
							e: h.FO,
							ait: u
						}
					} else if (J[0].t == "prop") continue;
					else {
						console.log(y);
						throw "e"
					}
					var a = X.r[L];
					a.a4z()
				} else if (n == "Prpr") {
					var c = JSON.parse(JSON.stringify(y.T.v));
					if (p.v.keyID == "TxtS") {
						var L = gY.iv(X, y.null.v[1]),
							a = X.r[L],
							N = a.add.TySh,
							V = JSON.parse(JSON.stringify(N.MF)),
							M = bt.jn(V),
							O = bt.lW(V, 0, M.length - 2);
						if (c.Undl && c.Undl.v.Undl == "underlineOnLeftInVertical") O.dS.Underline = !0;
						bt.Ji(V, 0, M.length - 1, O);
						z.Q = B.OX;
						z.data = {
							e: "newED",
							vS: L,
							e1: V
						};
						W = 1e9
					} else {
						for (var K in c)
							if (c[K].v) {
								if (K == "Scl") c[K].v.val = 100;
								if (c[K].v.TrnS && c[K].v.TrnS.v.Crv == null) {
									c[K].v.TrnS = JSON.parse(ce.IW[9]).TrnS
								}
							} ff.lm(c);
						if (c.masterFXSwitch == null) c.masterFXSwitch = {
							t: "bool",
							v: !0
						};
						var L = gY.iv(X, y.null.v[1]);
						z.Q = B.FA;
						z.data = {
							e: "setstl",
							n: L,
							C: {
								Lefx: {
									t: "objc",
									v: c
								}
							}
						};
						P.w(z);
						z.data = {
							e: "confirm",
							n: L
						}
					}
				} else if (n == "contentLayer") {
					var L = gY.iv(X, p),
						c = y.T.v;
					if (c.classID == "shapeStyle") c = c.FlCn.v;
					var j = {
							solidColorLayer: 0,
							gradientLayer: 1,
							patternLayer: 2
						} [c.classID],
						v = JSON.parse(JSON.stringify(ce._G[j]));
					cj.T8.CR(c, v, j);
					z.data = {
						e: h.WF,
						Ev: [L],
						jK: !0,
						C: {
							d1: j + 1,
							qA: v
						}
					}
				} else {
					console.log(p, y);
					throw n
				}
			} else if (Y == "move") {
				if (n == "Lyr") {
					var c = y.T.v;
					if (c.classID == "Ofst") {
						z.data = {
							e: "trsl",
							a8t: c.Hrzn.v.val,
							a24: c.Vrtc.v.val
						};
						z.Q = B.fb
					} else {
						var $, x;
						if (c[0].t == "Enmr") {
							if (c[0].v.enum == "Frnt") x = 0;
							else if (c[0].v.enum == "Prvs") x = 2;
							else if (c[0].v.enum == "Back") x = 3;
							else throw "e"
						} else $ = c[0].v.val;
						z.data = {
							e: h.Aj,
							target: $,
							mQ: x,
							a2e: y.Dplc ? y.Dplc.v : !1
						}
					}
				}
			} else if (Y == "groupEvent") z.data = {
				e: h.zO
			};
			else if (Y == "show" || Y == "hide") {
				if (n == "Lyr") {
					var L = gY.iv(X, p);
					if (L == -1) continue;
					var g = X.r[L].UQ();
					if (Y == "show" && g || Y == "hide" && !g) continue;
					z.data = {
						e: h.K7,
						n: L
					}
				} else if (n == "Chnl") {
					z.data = {
						e: h.IB,
						mQ: "fromAction",
						C: F
					}
				}
			} else if (Y == "rotateEventEnum") {
				z.Q = B.Uj;
				var T = y.Angl.v.val;
				z.data = {
					e: "rot",
					tP: [2, 5],
					C: -T * Math.PI / 180
				}
			} else if (Y == "flip") {
				z.Q = B.Uj;
				var E = y.Axis.v.Ornt == "Hrzn",
					a9 = E ? new aH(-1, 1) : new aH(1, -1);
				z.data = {
					e: "scl",
					tP: [
						[2, 6],
						[22, 4, E ? 2 : 3]
					],
					C: a9
				}
			} else if (Y == "transform") {
				var ez = 1,
					bN = 1,
					cg = 0,
					d8 = 0,
					C = 0,
					S = 0,
					g_ = 0;
				if (y.Wdth) ez = y.Wdth.v.val / 100;
				if (y.Hght) bN = y.Hght.v.val / 100;
				if (y.Skew) {
					var fw = y.Skew.v;
					cg = fw.Hrzn.v.val;
					d8 = fw.Vrtc.v.val
				}
				if (y.Ofst) {
					var dT = y.Ofst.v;
					S = dT.Hrzn.v.val;
					g_ = dT.Vrtc.v.val
				}
				if (y.Angl) C = y.Angl.v.val;
				var g4 = new cu;
				g4.concat(new cu(ez, ez * Math.tan(d8 * Math.PI / 180), bN * Math.tan(cg * Math.PI / 180), bN, 0, 0));
				g4.rotate(-C * Math.PI / 180);
				g4.translate(S, g_);
				var bB = {
					Qcsa: 4,
					Qcs0: 0,
					Qcs1: 2,
					Qcs2: 8,
					Qcs3: 6,
					Qcs4: 1,
					Qcs5: 5,
					Qcs6: 7,
					Qcs7: 3
				} [y.FTcs.v.QCSt];
				if (bB == null) throw y.FTcs.v.QCSt;
				var L = y.null ? gY.iv(X, p) : null;
				z.Q = B.DV;
				z.data = {
					e: "mat",
					cX: bB,
					C: g4,
					n: L
				}
			} else if (n == "Chnl") {
				z.data = {
					e: h.IB,
					mQ: "fromAction",
					C: F
				}
			} else if (Y == "duplicate") z.data = {
				e: h.xm,
				gA: y.Nm ? y.Nm.v : null
			};
			else if (Y == "delete") z.data = {
				e: h.R0
			};
			else if (Y == "align") {
				if (y.Aply && y.Aply.v.projection == "Auto") {
					z.Q = B.Uj;
					z.data = {
						e: "auto-align"
					}
				} else {
					z.Q = B.fb;
					var U = {
						AdLf: 0
					} [y.Usng.v.ADSt];
					if (U == null) throw "e";
					z.data = {
						e: "algn",
						C: U
					}
				}
			}
			if (z.data) P.w(z);
			else if (s.data) P.w(s);
			else {
				console.log(F);
				alert("Unknown action \"" + Y + "\"");
				throw "e"
			}
		}
	};
	gY.iv = function (F, P) {
		var o = P.t,
			X = -1;
		if (o == "name") {
			var Y = P.v.val,
				X = -1;
			for (var w = 0; w < F.r.length; w++)
				if (F.r[w].getName() == Y) {
					X = w;
					break
				}
		}
		if (o == "Enmr" && F.p.length != 0) X = F.p[0];
		if (o == "Enmr" && P.v.enum == "Frwr") X = F.p[0] - 1;
		if (o == "prop") {
			if (P.v.keyID == "Bckg") X = 0
		}
		return X
	};
	var b_ = {};
	b_.get = function (F) {
		for (var P in b_.names)
			if (F[P] != null) return P;
		return null
	};
	b_.VM = function (F, P) {
		var o = b_.vo,
			X;
		if (F == "brit") {
			var Y = P.Brgh ? P.Brgh.v : 0,
				y = P.Cntr ? P.Cntr.v : 0,
				z = P.useLegacy ? P.useLegacy.v : !1;
			if (z) {
				var s = Y / 255,
					t = 1 + y / 100;
				if (t > 1) t = 1 + Math.tan(Math.PI / 2 * y / 101);
				var d = (1 - t) / 2,
					U = H.t1.$_(s, s, s),
					v = [t, 0, 0, d, 0, t, 0, d, 0, 0, t, d, 0, 0, 0, 1],
					A = H.t1.multiply(U, v),
					Z = new H._B(256);
				for (var w = 0; w < 256; w++) Z.U[w] = w;
				H.t1.transform(Z, Z, A);
				X = {
					type: o.u1,
					KW: Z.U,
					mf: Z.U,
					Si: Z.U,
					Ak: !1,
					qi: !1
				}
			} else {
				var D = 1024,
					q = -30 + 60 * (y + 100) / 200,
					R = [];
				for (var w = 0; w < 4; w++) R.push(H.JH.Rn(w / 3 * 255, w / 3 * 255, !0));
				R[1].v.Hrzn.v = 64;
				R[1].v.Vrtc.v = 64 - q;
				R[2].v.Hrzn.v = 128 + 64;
				R[2].v.Vrtc.v = 128 + 64 + q;
				R.sort(function (cA, hF) {
					return cA.v.Hrzn.v - hF.v.Hrzn.v
				});
				var J = H.JH.QV(R, D);

				function W(cA, D) {
					var R = [],
						e = 3;
					for (var w = 0; w < e + 1; w++) R.push(H.JH.Rn(w / e * 255, w / e * 255, !0));
					R[1].v.Hrzn.v = 130 - cA * 26;
					R[1].v.Vrtc.v = 130 + cA * 51;
					R[2].v.Hrzn.v = 233 - cA * 48;
					R[2].v.Vrtc.v = 233 + cA * 10;
					return H.JH.QV(R, D)
				}
				var p = W(Math.abs(Y) / 100, D);
				if (Y < 0) {
					var n = [],
						b = 1 / D;
					for (var w = 0; w < D; w++) {
						var Q = w * b,
							_ = w;
						while (p[_] > Q && _ > 1) _--;
						n[w] = _ * b
					}
					p = n
				}
				var L = new Uint8Array(D);
				for (var w = 0; w < D; w++) {
					var m = Math.round((D - 1) * p[w]);
					L[w] = Math.round(255 * J[m])
				}
				X = {
					type: o.u1,
					KW: L,
					mf: L,
					Si: L,
					Ak: !1,
					qi: !1
				}
			}
		}
		if (F == "levl") {
			var I = [],
				c, u, U, a, N, V;
			for (var w = 0; w < 4; w++) I.push(gm.Yl(P, w));
			c = -I[0][0] / 255;
			u = 1 / (I[0][1] / 255 - I[0][0] / 255);
			U = H.t1.multiply(H.t1.$O(u, u, u), H.t1.$_(c, c, c));
			a = H.t1.$O(1 / (I[1][1] / 255 - I[1][0] / 255), 1 / (I[2][1] / 255 - I[2][0] / 255), 1 / (I[3][1] / 255 - I[3][0] / 255));
			N = H.t1.$_(-I[1][0] / 255, -I[2][0] / 255, -I[3][0] / 255);
			V = H.t1.multiply(a, N);
			var L = new H._B(256);
			for (var w = 0; w < 256; w++) L.U[w] = L.S[w] = L.i[w] = w;
			var M = 1 / (I[0][4] / 100),
				O = 1 / (I[1][4] / 100),
				K = 1 / (I[2][4] / 100),
				j = 1 / (I[3][4] / 100);
			H.t1.transform(L, L, V);
			for (var w = 0; w < 256; w++) {
				L.U[w] = Math.round(Math.max(0, Math.min(255, 255 * Math.pow(L.U[w] / 255, O))));
				L.S[w] = Math.round(Math.max(0, Math.min(255, 255 * Math.pow(L.S[w] / 255, K))));
				L.i[w] = Math.round(Math.max(0, Math.min(255, 255 * Math.pow(L.i[w] / 255, j))))
			}
			H.t1.transform(L, L, U);
			for (var w = 0; w < 256; w++) {
				L.U[w] = Math.round(Math.max(0, Math.min(255, 255 * Math.pow(L.U[w] / 255, M))));
				L.S[w] = Math.round(Math.max(0, Math.min(255, 255 * Math.pow(L.S[w] / 255, M))));
				L.i[w] = Math.round(Math.max(0, Math.min(255, 255 * Math.pow(L.i[w] / 255, M))))
			}
			c = I[0][2] / 255;
			u = I[0][3] / 255 - I[0][2] / 255;
			U = H.t1.multiply(H.t1.$_(c, c, c), H.t1.$O(u, u, u));
			a = H.t1.$O(I[1][3] / 255 - I[1][2] / 255, I[2][3] / 255 - I[2][2] / 255, I[3][3] / 255 - I[3][2] / 255);
			N = H.t1.$_(I[1][2] / 255, I[2][2] / 255, I[3][2] / 255);
			V = H.t1.multiply(N, a);
			H.t1.transform(L, L, H.t1.multiply(U, V));
			X = {
				type: o.u1,
				KW: L.U,
				mf: L.S,
				Si: L.i,
				Ak: !1,
				qi: !1
			}
		}
		if (F == "curv") {
			var $ = e2.Yl(P, 0).length == 256 ? 1 : 0,
				x = [];
			if ($ == 0) {
				var g = H.JH.AQ(e2.Yl(P, 0), 256);
				for (var w = 1; w < 4; w++) {
					var T = H.JH.AQ(e2.Yl(P, w), 256);
					x.push(H.JH.OY(T, g))
				}
			} else {
				var E = [];
				for (var w = 0; w < 4; w++) {
					var a9 = new Uint8Array(256);
					E.push(a9);
					var ez = e2.Yl(P, w);
					for (var _ = 0; _ < 256; _++) a9[_] = ez[_]
				}
				for (var w = 1; w < 4; w++) x.push(H.JH.OY(E[w], E[0]))
			}
			X = {
				type: o.u1,
				KW: x[0],
				mf: x[1],
				Si: x[2],
				Ak: !1,
				qi: !1
			}
		}
		if (F == "expA") {
			var bN = P.Exps.v,
				cg = P.Ofst.v,
				d8 = P.gammaCorrection.v,
				L = new Uint8Array(256);
			for (var w = 0; w < 256; w++) {
				var P = w / 255,
					S = Math.pow(Math.abs(cg), 1 / (Math.PI / 2));
				if (cg > 0) {
					P = Math.max(cg / Math.E, P);
					P = P * Math.exp(cg / 1.75 + bN / Math.PI);
					P = (1 - S) * P + S * 1
				} else {
					P = P * Math.exp(-cg * 1.75 + bN / Math.PI);
					P = P + -S * 1.14
				}
				P = Math.pow(P, 1 / d8);
				P = Math.max(0, Math.min(1, P));
				L[w] = Math.round(P * 255)
			}
			X = {
				type: o.u1,
				KW: L,
				mf: L,
				Si: L,
				Ak: !1,
				qi: !1
			}
		}
		if (F == "vibA") {
			X = {
				type: o.tn,
				S9: [P.vibrance ? P.vibrance.v : 0, P.Strt ? P.Strt.v : 0]
			}
		}
		if (F == "hue2") {
			var g7 = [],
				g_ = [],
				fw = [],
				g4 = P.Clrz ? P.Clrz.v : !1;
			for (var w = 0; w < 256; w++) {
				g7[w] = w / 255;
				g_[w] = 0;
				fw[w] = 0
			}
			var bB = az.Yl(P, 0),
				d1 = b_.GM(bB[1] / 100);
			if (g4) {
				var f_ = bB[0] / 360;
				for (var w = 0; w < 256; w++) {
					g7[w] = f_;
					g_[w] = d1
				}
			} else {
				for (var w = 0; w < 256; w++) {
					var g$ = g7[w],
						eT = g_[w];
					g7[w] += bB[0] / 360;
					for (var _ = 0; _ < 6; _++) {
						var dz = az.Yl(P, _ + 1),
							i4 = dz.qh,
							fy = dz.Ej,
							S = 0;
						for (var cN = 1; cN < 4; cN++)
							if (fy[cN] < fy[0]) fy[cN] += 360;
						var du = fy[0],
							ea = fy[1],
							cF = fy[2],
							gB = fy[3],
							bp = g$ * 360;
						if (bp < fy[0]) bp += 360;
						var hf = (bp - du) / (ea - du),
							bq = (bp - cF) / (gB - cF);
						if (hf < 0) S = 0;
						else if (hf < 1) S = hf;
						else if (bq < 0) S = 1;
						else if (bq < 1) S = 1 - bq;
						else S = 0;
						var t = b_.GM(i4[1] / 100);
						g7[w] += S * i4[0] / 360;
						g_[w] += S * t;
						fw[w] += S * i4[2] / 100
					}
				}
				for (var w = 0; w < 256; w++) {
					g_[w] = (1 + g_[w]) * (1 + d1) - 1;
					fw[w] = Math.max(-1, Math.min(1, fw[w]))
				}
			}
			var eY = new Uint8Array(256),
				f1 = new Uint8Array(256),
				dh = new Uint8Array(256);
			for (var w = 0; w < 256; w++) {
				var hn = g7[w],
					e7 = g_[w],
					ed = fw[w];
				if (hn > 1) hn--;
				if (hn < 0) hn++;
				e7 = b_.acb(e7);
				e7 = (1 + e7) * .5;
				ed = (1 + ed) * .5;
				eY[w] = Math.round(255 * hn);
				f1[w] = Math.round(255 * e7);
				dh[w] = Math.round(255 * ed)
			}
			var hP = bB[2] / 100,
				ck = hP < 0 ? -hP : hP,
				ds = hP < 0 ? 0 : 1;
			X = {
				type: o.xj,
				Fp: eY,
				fQ: f1,
				J7: dh,
				L3: ck * ds,
				Ds: 1 - ck,
				amz: bB[2] / 100,
				vY: g4 ? 1 : 0
			}
		}
		if (F == "nvrt") {
			var L = new Uint8Array(256);
			for (var w = 0; w < 256; w++) L[w] = 255 - w;
			X = {
				type: o.u1,
				KW: L,
				mf: L,
				Si: L,
				Ak: !1,
				qi: !1
			}
		}
		if (F == "post") {
			var hB = P.Lvls.v,
				L = new Uint8Array(256),
				S = hB / 255.001,
				bd = 255 / (hB - 1);
			for (var w = 0; w < 256; w++) L[w] = Math.floor(w * S) * bd;
			X = {
				type: o.u1,
				KW: L,
				mf: L,
				Si: L,
				Ak: !1,
				qi: !1
			}
		}
		if (F == "grdm") {
			var d0 = P.Grad.v,
				d$ = P.Rvrs,
				ap = H.j.j0(d0.Clrs.v, 0, 0),
				D = 1024,
				dE = H.j.qP(d0, ap, D, d$ ? d$.v : !1),
				fv = H.R(D),
				c8 = H.R(D),
				bT = H.R(D);
			H.E4(dE, fv, 0);
			H.E4(dE, c8, 1);
			H.E4(dE, bT, 2);
			X = {
				type: o.u1,
				KW: fv,
				mf: c8,
				Si: bT,
				Ak: !0,
				qi: !1
			}
		}
		if (F == "selc") {
			var bi = new Float32Array(9 * 3 * 2),
				i7 = P.ju,
				ec = P.Mthd ? P.Mthd.v.CrcM == "Absl" : !1;
			for (var _ = 0; _ < 9; _++) {
				var eg = _ * 6,
					hZ = bu.Yl(P, _),
					fu = hZ[0] / 100,
					bg = hZ[1] / 100,
					co = hZ[2] / 100,
					ga = hZ[3] / 100;
				if (ec) {
					bi[eg] = bi[eg + 1] = bi[eg + 2] = 1;
					bi[eg + 3] = fu * (1 + ga) + ga;
					bi[eg + 4] = bg * (1 + ga) + ga;
					bi[eg + 5] = co * (1 + ga) + ga
				} else {
					bi[eg + 0] = (1 + fu) * (1 + ga);
					bi[eg + 1] = (1 + bg) * (1 + ga);
					bi[eg + 2] = (1 + co) * (1 + ga)
				}
			}
			X = {
				type: o.Lr,
				e$: bi
			}
		}
		if (F == "blwh") {
			var e5 = "Rd Yllw Grn Cyn Bl Mgnt".split(" "),
				X = [],
				aE = 0,
				cs = 0;
			for (var w = 0; w < 6; w++) X.push(P[e5[w]].v);
			X.push(P.useTint.v, P.tintColor.v);
			var fM = [];
			for (var w = 0; w < 6; w++) fM.push((X[w] - 50) / 50);
			var bb = H.j.T6(X[7]);
			bb.U /= 255;
			bb.S /= 255;
			bb.i /= 255;
			var hp = H.eE(bb.U, bb.S, bb.i),
				ed = H.ec(H.Uq(hp.mi, 1, .5)),
				fT = hp.Pg * hp.pl;
			if (ed == .5) aE = cs = .5;
			else {
				aE = fT * (.5 - ed) / (.5 / ed - 1);
				cs = 1 - fT * (.5 - ed) - 1 / (2 * (1 - ed));
				cs /= 1 - 1 / (2 * (1 - ed))
			}
			X = {
				type: o.ta,
				_5: fM,
				Ro: X[6] ? 1 : 0,
				uI: hp.mi,
				ec: ed,
				ZJ: fT,
				sw: aE,
				pm: cs
			}
		}
		if (F == "blnc") {
			var I = [],
				hL = ["ShdL", "MdtL", "HghL"];
			for (var w = 0; w < 3; w++) {
				var hB = P[hL[w]].v,
					fR = hB[0].v / 100,
					cd = hB[1].v / 100,
					ih = hB[2].v / 100,
					aV = P.PrsL.v ? aV = (Math.min(fR, cd, ih) + Math.max(fR, cd, ih)) / 2 : 0;
				I[w] = [fR - aV, cd - aV, ih - aV]
			}
			var x = [H.R(256), H.R(256), H.R(256)];
			for (var _ = 0; _ < 3; _++)
				for (var w = 0; w < 256; w++) {
					var Q = w * (1 / 255),
						dw = 0,
						q = 0,
						cM = 0;
					q = I[2][_];
					cM = Math.abs(q);
					if (q < 0) dw = Math.pow(Q, Math.SQRT2);
					else dw = 1.63 * (Math.pow(Q + .04, .5) - .2);
					Q = cM * dw + (1 - cM) * Q;
					q = I[1][_];
					cM = Math.abs(q);
					if (q < 0) dw = Math.pow(Q, 2);
					else dw = Math.min(2.35 * (Math.pow(Q + .09, .5) - .3), Math.pow(Q, 1 / 2));
					Q = cM * dw + (1 - cM) * Q;
					q = I[0][_];
					cM = Math.abs(q);
					if (q < 0) dw = Q < .4 ? 0 : Math.pow((Q - .4) / .6, Math.SQRT2);
					else dw = Math.pow(Q, Math.SQRT2 / 2);
					Q = cM * dw + (1 - cM) * Q;
					Q = Math.max(0, Math.min(1, Q));
					x[_][w] = Math.round(Q * 255)
				}
			X = {
				type: o.u1,
				KW: x[0],
				mf: x[1],
				Si: x[2],
				Ak: !1,
				qi: !1
			}
		}
		if (F == "phfl") {
			var bZ = H.j.T6(P.Clr.v),
				ht = [bZ.U / 255, bZ.S / 255, bZ.i / 255],
				fZ = P.Dnst.v / 100,
				x = [H.R(256), H.R(256), H.R(256)];
			for (var _ = 0; _ < 3; _++)
				for (var w = 0; w < 256; w++) {
					var Q = w * (1 / 255),
						b0 = Q * ht[_];
					b0 = Math.max(0, Math.min(1, b0));
					Q = fZ * b0 + (1 - fZ) * Q;
					x[_][w] = Math.round(Q * 255)
				}
			X = {
				type: o.u1,
				KW: x[0],
				mf: x[1],
				Si: x[2],
				Ak: !1,
				qi: P.PrsL.v
			}
		}
		if (F == "thrs") {
			var L = H.R(256);
			for (var w = P.Lvl.v; w < 256; w++) L[w] = 255;
			X = {
				type: o.u1,
				KW: L,
				mf: L,
				Si: L,
				Ak: !0,
				qi: !1
			}
		}
		if (F == "mixr") {
			var aX = b_.FX(P),
				A = [];
			for (var w = 0; w < aX.C.length; w++)
				if (w % 5 != 3) A.push(aX.C[w] / 100);
			if (aX._W) {
				for (var fQ = 1; fQ < 3; fQ++)
					for (var Q = 0; Q < 4; Q++) A[fQ * 4 + Q] = A[Q]
			}
			X = {
				type: o.I9,
				Aw: A
			}
		}
		if (F == "rplc") {
			var bQ = P.Mnm.v,
				fO = P.Mxm.v;
			X = {
				type: o.Ki,
				c7: [bQ.Lmnc.v, bQ.A.v, bQ.B.v],
				Aa: [fO.Lmnc.v, fO.A.v, fO.B.v],
				shift: [P.H.v / 360, P.Strt.v / 100, P.Lght.v / 100],
				aI: P.Fzns.v / 200
			}
		}
		if (F == "clrL" && P.profile) {
			var hA = new Uint8Array(P.profile.v),
				ij = ICC.R(hA.buffer),
				e1 = [],
				fx = 17,
				e1 = ICC.U.sampleLUT(ij, fx);
			X = {
				type: o.$g,
				Tr: ICC.U.rgba8LUT(e1, fx),
				a0r: e1,
				g8: fx
			}
		}
		return X
	};
	b_.hA = function (F, P) {
		var o = -1;
		if (F != "levl" || P == null) o = -1;
		else if (P.Auto) o = 0;
		else if (P.AuCo) o = 1;
		else if (P.autoBlackWhite) o = 2;
		return o
	};
	b_.vo = {
		u1: 0,
		xj: 1,
		tn: 2,
		Lr: 3,
		ta: 4,
		I9: 5,
		Ki: 6,
		$g: 7
	};
	b_.GM = function (F) {
		if (F < 0) return F;
		return Math.pow(Math.tan(Math.PI / 2 * F), 1.3)
	};
	b_.acb = function (F) {
		if (F < 0) return F;
		F = Math.pow(F, 1 / 1.3);
		return Math.atan2(F, 1) / (Math.PI / 2)
	};
	b_.t5 = function (F, P, o, X) {
		var Y = b_.vo,
			y = Date.now();
		if (k.pQ && X.M() > 300 * 300 && F.type != Y.u1 && F.type != Y.$g) {
			X = X.clone();
			X.x = X.y = 0;
			var z = k.Wb(0, X.Z, X.h);
			z.set(P);
			k.k1(z, X);
			z.ke(X);
			b_.WD(F, z.z2, X);
			z.get(o);
			return
		}
		if (F.type == Y.$g) {
			var s = F.a0r,
				t = F.g8;
			ICC.U.applyLUT(s, t, P, o)
		}
		if (F.type == Y.I9) H.t1.at(P, o, F.Aw);
		if (F.type == Y.ta) {
			var d = F.ZJ,
				U = F.ec,
				v = F.sw,
				A = F.pm,
				Z = P.length;
			for (var w = 0; w < Z; w += 4) {
				var X = P[w] * (1 / 255),
					D = P[w + 1] * (1 / 255),
					q = P[w + 2] * (1 / 255),
					R = H.T4(X, D, q),
					J = 0;
				for (var W = 0; W < 6; W++) J += Math.min(1, 1.7 * (1 - R.lr)) * R.Pg * F._5[W] * b_.KB(R.mi, W * (1 / 6));
				var p = Math.max(0, Math.min(1, R.lr * (1 + J)));
				if (F.Ro == 1) {
					var n = 0;
					if (p < v) n = p * (.5 / U);
					else if (p < A) n = p + d * (.5 - U);
					else n = 1 - (1 - p) * .5 / (1 - U);
					R.mi = F.uI;
					R.Pg = Math.min(1, d + 3 * d * Math.abs(p - .5 * (v + A)));
					R.lr = n
				} else {
					R.mi = 0;
					R.Pg = 0;
					R.lr = p
				}
				var b = H.Uq(R.mi, R.Pg, R.lr);
				o[w] = Math.round(b.U * 255);
				o[w + 1] = Math.round(b.S * 255);
				o[w + 2] = Math.round(b.i * 255)
			}
		}
		if (F.type == Y.Lr) {
			var Q = F.e$,
				Z = P.length,
				_ = 1 / 255;
			for (var w = 0; w < Z; w += 4) {
				var X = P[w] * _,
					D = P[w + 1] * _,
					q = P[w + 2] * _,
					R = H.T4(X, D, q),
					L = Math.max(X, Math.max(D, q)),
					m = Math.min(X, Math.min(D, q)),
					I = 1 - X,
					c = 1 - D,
					u = 1 - q,
					a = 0,
					N = 0,
					V = 0;
				for (var W = 0; W < 9; W++) {
					var M = W * 6,
						$ = 0;
					if (Q[M] == 1 && Q[M + 1] == 1 && Q[M + 2] == 1 && Q[M + 3] == 0 && Q[M + 4] == 0 && Q[M + 5] == 0) continue;
					var O = I * Q[M] + Q[M + 3],
						K = c * Q[M + 1] + Q[M + 4],
						j = u * Q[M + 2] + Q[M + 5];
					if (W < 6) $ = b_.KB(R.mi, W * (1 / 6)) * R.Pg * 2 * Math.min(R.lr, 1 - R.lr);
					else if (W == 6) $ = Math.max(0, m - .5) * 2;
					else if (W == 7) $ = 1 - (Math.abs(L - .5) + Math.abs(m - .5));
					else $ = Math.max(0, .5 - L) * 2;
					a += (Math.max(0, Math.min(1, O)) - I) * $;
					N += (Math.max(0, Math.min(1, K)) - c) * $;
					V += (Math.max(0, Math.min(1, j)) - u) * $
				}
				I = Math.max(0, Math.min(1, I + a));
				c = Math.max(0, Math.min(1, c + N));
				u = Math.max(0, Math.min(1, u + V));
				X = 1 - I;
				D = 1 - c;
				q = 1 - u;
				o[w] = Math.round(X * 255);
				o[w + 1] = Math.round(D * 255);
				o[w + 2] = Math.round(q * 255)
			}
		}
		if (F.type == Y.u1) {
			H.amA(P, o, F.KW, F.mf, F.Si, F.Ak, F.qi)
		}
		if (F.type == Y.xj) {
			var x = new Uint32Array(P.buffer),
				g = new Uint32Array(o.buffer),
				Z = x.length;
			if (b_.r3 == null) {
				b_.r3 = new Float64Array(256);
				for (var w = 0; w < 256; w++) b_.r3[w] = b_.GM(-1 + 2 * w / 255)
			}
			var T = b_.r3;
			for (var w = 0; w < Z; w++) {
				var E = x[w],
					X = (E & 255) * (1 / 255),
					D = (E >>> 8 & 255) * (1 / 255),
					q = (E >>> 16 & 255) * (1 / 255),
					a9 = E >>> 24,
					ez = Math.min(X, D, q),
					bN = Math.max(X, D, q),
					cg = 0,
					d8 = 0,
					C = 0;
				if (bN != ez) {
					var S = bN - ez;
					switch (bN) {
						case X:
							cg = (D - q) / S + (D < q ? 6 : 0);
							break;
						case D:
							cg = (q - X) / S + 2;
							break;
						case q:
							cg = (X - D) / S + 4;
							break
					}
					cg = cg * (1 / 6)
				}
				var g7 = ~~(cg * 255 + .5),
					g_ = F.Fp[g7] * (1 / 255),
					fw = F.fQ[g7] * (1 / 255) * 2 - 1,
					dT = F.J7[g7] * (1 / 255) * 2 - 1,
					J = -dT,
					g4 = ez;
				if (0 < dT) {
					J = dT;
					g4 = bN
				}
				var bB = F.L3 + F.Ds * J * g4,
					d1 = F.Ds * (1 - J);
				X = bB + d1 * X;
				D = bB + d1 * D;
				q = bB + d1 * q;
				bN = Math.max(X, D, q);
				ez = Math.min(X, D, q);
				C = (bN + ez) * .5;
				if (bN != ez) {
					var S = bN - ez;
					d8 = C > .5 ? S / (2 - (bN + ez)) : S / (bN + ez)
				}
				var f_ = fw;
				if (F.vY == 0) {
					fw = T[Math.floor((1 + fw) * 127.5)];
					f_ = Math.min(d8 * (1 + fw), 1)
				}
				cg = g_;
				d8 = f_;
				if (d8 == 0) X = D = q = C;
				else {
					var g$ = C < .5 ? C * (1 + d8) : C + d8 - C * d8,
						eT = 2 * C - g$;
					X = H.C7(eT, g$, cg + 1 / 3);
					D = H.C7(eT, g$, cg);
					q = H.C7(eT, g$, cg - 1 / 3)
				}
				g[w] = a9 << 24 | q * 255 << 16 | D * 255 << 8 | X * 255
			}
		}
		if (F.type == Y.Ki) {
			H.Hk(P, o);
			var x = new Uint32Array(P.buffer),
				g = new Uint32Array(o.buffer),
				Z = x.length,
				dz = F.aI,
				i4 = 1 / dz,
				fy = {
					Ov: F.c7[0],
					m: F.c7[1],
					i: F.c7[2]
				},
				cN = {
					Ov: F.Aa[0],
					m: F.Aa[1],
					i: F.Aa[2]
				};
			for (var w = 0; w < Z; w++) {
				var E = x[w],
					fP = E & 255,
					du = E >>> 8 & 255,
					ea = E >>> 16 & 255,
					X = fP * (1 / 255),
					D = du * (1 / 255),
					q = ea * (1 / 255),
					a9 = E >>> 24,
					cF = H.tm(fP, du, ea),
					gB = H.LZ(cF, fy, cN, dz, i4);
				if (gB == 0) continue;
				var R = H.T4(X, D, q),
					g_ = 2 + R.mi + gB * F.shift[0];
				R.mi = g_ - ~~g_;
				R.Pg = Math.max(0, Math.min(1, R.Pg + gB * F.shift[1]));
				R.lr = Math.max(0, Math.min(1, R.lr + gB * F.shift[2]));
				var b = H.Uq(R.mi, R.Pg, R.lr);
				X = b.U;
				D = b.S;
				q = b.i;
				g[w] = a9 << 24 | q * 255 << 16 | D * 255 << 8 | X * 255
			}
		}
		if (F.type == Y.tn) {
			var x = new Uint32Array(P.buffer),
				g = new Uint32Array(o.buffer),
				Z = x.length,
				bp = F.S9[0] / 100,
				hf = F.S9[1] / 100;
			for (var w = 0; w < Z; w++) {
				var E = x[w],
					X = (E & 255) * (1 / 255),
					D = (E >>> 8 & 255) * (1 / 255),
					q = (E >>> 16 & 255) * (1 / 255),
					a9 = E >>> 24,
					R = H.eE(X, D, q),
					cg = R.mi,
					d8 = R.Pg,
					C = R.pl,
					bq = 0,
					eY = 45 / 360,
					f1 = cg < eY ? Math.cos(Math.PI / 2 * (cg - eY / 2) / (eY / 2)) : 0;
				d8 = d8 + .2 * (1 - .4 * f1) * bp * Math.max(0, Math.sin(d8 * Math.PI));
				d8 = d8 * (1 + hf);
				d8 = Math.max(0, Math.min(1, d8));
				var b = H.ul(cg, d8, C);
				X = b.U;
				D = b.S;
				q = b.i;
				g[w] = a9 << 24 | q * 255 << 16 | D * 255 << 8 | X * 255
			}
		}
	};
	b_.WD = function (F, P, o) {
		k.MY.WD(F, P)
	};
	b_.KB = function (F, P) {
		var o = H.iP(P, F) * 6;
		return Math.max(0, Math.min(1, o < 0 ? 1 + o : 1 - o))
	};
	b_.names = {
		brit: [4, 0],
		levl: [4, 1],
		curv: [4, 2],
		expA: [4, 3],
		vibA: [4, 4],
		hue2: [4, 5],
		blnc: [4, 6],
		blwh: [4, 7],
		phfl: [4, 8],
		mixr: [4, 9],
		clrL: [4, 10],
		nvrt: [4, 11],
		post: [4, 12],
		thrs: [4, 13],
		grdm: [4, 14],
		selc: [4, 15],
		rplc: [4, 17]
	};
	b_.wZ = ["expA", "clrL", "selc"];
	b_.OD = [
		[13, 1, 1],
		[13, 1, 3],
		[13, 1, 4],
		[13, 1, 11],
		[13, 1, 5],
		[13, 1, 12]
	];
	b_.a1j = [
		[13, 1, 11],
		[13, 1, 12],
		[13, 1, 3],
		[13, 1, 10]
	];
	b_.Nx = [
		[13, 1, 1],
		[13, 1, 4],
		[13, 1, 5]
	];
	b_.NS = {
		BrgC: "brit",
		Lvls: "levl",
		Crvs: "curv",
		Exps: "expA",
		vibrance: "vibA",
		HStr: "hue2",
		ClrB: "blnc",
		BanW: "blwh",
		photoFilter: "phfl",
		Invr: "nvrt",
		Pstr: "post",
		Thrs: "thrs",
		GrMp: "grdm",
		SlcC: "selc",
		ChnM: "mixr",
		colorLookup: "clrL",
		rplc: "rplc"
	};
	b_.om = function () {
		var F = JSON.parse(JSON.stringify(b_.NS));
		delete F.GrMp;
		F.GdMp = "grdm";
		return F
	}();
	b_.l6 = {
		brit: "brightnessEvent",
		levl: "levels",
		curv: "curves",
		expA: "exposure",
		vibA: "vibrance",
		hue2: "hueSaturation",
		blnc: "colorBalance",
		blwh: "blackAndWhite",
		phfl: "photoFilter",
		mixr: "channelMixer",
		clrL: "colorLookup",
		nvrt: "invert",
		post: "posterization",
		thrs: "thresholdClassEvent",
		grdm: "gradientMapEvent",
		selc: "selectiveColor",
		rplc: "replaceColor"
	};
	b_.keys = {
		levl: [G.Bl, G.Ov],
		curv: [G.Bl, G.eO],
		hue2: [G.Bl, G.B6],
		nvrt: [G.Bl, G.vu],
		blnc: [G.Bl, G.ZA]
	};
	b_.Dn = function (F) {
		var P = bv.tt("mixr");
		P.Mnch = {
			t: "bool",
			v: F._W
		};

		function o(X, w) {
			var Y = {
					classID: "ChMx"
				},
				y = {
					Rd: 0,
					Grn: 1,
					Bl: 2,
					Cnst: 4
				};
			for (var z in y) Y[z] = {
				t: "UntF",
				v: {
					type: "#Prc",
					val: X[w + y[z]]
				}
			};
			return {
				t: "Objc",
				v: Y
			}
		}
		if (F._W) P.Gry = o(F.C, 0);
		else {
			P.Rd = o(F.C, 0);
			P.Grn = o(F.C, 5);
			P.Bl = o(F.C, 10)
		}
		return P
	};
	b_.FX = function (F) {
		function P(X, Y, w) {
			var y = {
				Rd: 0,
				Grn: 1,
				Bl: 2,
				Cnst: 4
			};
			for (var z in y)
				if (X[z]) Y[w + y[z]] = X[z].v.val
		}
		var o = {
			_W: !1,
			C: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
		};
		if (F.Mnch && F.Mnch.v) o._W = !0;
		if (o._W) P(F.Gry.v, o.C, 0);
		else {
			P(F.Rd.v, o.C, 0);
			P(F.Grn.v, o.C, 5);
			P(F.Bl.v, o.C, 10)
		}
		return o
	};
	var bv = {};
	bv.l$ = function (F) {
		var P = F.filterID.v;
		return P > 16777215 ? r.a2S(P) : F.Fltr.v.classID
	};
	bv.Gw = [{
		qA: "GEfc"
	}, {
		qA: "LnCr"
	}, {
		qA: "LqFy",
		aD: !0
	}, {
		ah: "3D",
		iJ: ["lightFilterGradient"]
	}, {
		ah: [24, 2],
		iJ: "Avrg,Blr ,BlrM,boxblur,GsnB,Bokh,MtnB,RdlB,surfaceBlur".split(",")
	}, {
		ah: [24, 4],
		iJ: "Dspl,Pnch,Plr ,Rple,Shr ,Sphr,Twrl,Wave".split(",")
	}, {
		ah: [24, 6],
		iJ: ["AdNs", "DstS", "Mdn "]
	}, {
		ah: [24, 8],
		iJ: ["ClrH", "Crst", "Mztn", "Msc ", "Pntl"]
	}, {
		ah: [24, 10],
		iJ: ["Clds", "DfrC", "LnsF"]
	}, {
		ah: [24, 12],
		iJ: ["Shrp", "ShrM", "smartSharpen", "UnsM"]
	}, {
		ah: [24, 14],
		iJ: ["FndE", "oilPaint"]
	}, {
		ah: [24, 16],
		iJ: "HghP,Mxm ,Mnm ,Ofst,Rept,Ctoa".split(",")
	}, {
		ah: "Fourier",
		iJ: ["dDFT", "iDFT"]
	}];
	bv.l6 = {
		LqFy: "LqFy",
		Avrg: "Avrg",
		"Blr ": "blurEvent",
		BlrM: "blurMethod",
		boxblur: "boxblur",
		GsnB: "gaussianBlur",
		MtnB: "motionBlur",
		RdlB: "radialBlur",
		surfaceBlur: "surfaceBlur",
		lightFilterGradient: "lightFilterGradient",
		Pnch: "pinch",
		"Plr ": "polar",
		Rple: "ripple",
		"Shr ": "shear",
		Sphr: "spherize",
		Twrl: "twirl",
		Wave: "wave",
		AdNs: "addNoise",
		DstS: "dustAndScratches",
		"Mdn ": "median",
		ClrH: "colorHalftone",
		Crst: "",
		Mztn: "mezzotint",
		"Msc ": "mosaic",
		Pntl: "",
		Clds: "clouds",
		DfrC: "differenceClouds",
		LnsF: "LnsF",
		Shrp: "sharpen",
		ShrM: "sharpenMore",
		smartSharpen: "smartSharpen",
		UnsM: "unsharpMask",
		FndE: "findEdges",
		oilPaint: "oilPaint",
		HghP: "highPass",
		"Mxm ": "maximum",
		"Mnm ": "minimum",
		Ofst: "offset"
	};
	bv.Cf = {
		AddNoise: "AdNs",
		Average: "Avrg",
		Blur: "Blr ",
		BlurMore: "BlrM",
		Clouds: "Clds",
		DifferenceClouds: "DfrC",
		DustAndScratches: "DstS",
		GaussianBlur: "GsnB",
		HighPass: "HghP",
		Maximum: "Mxm ",
		Minimum: "Mnm ",
		MotionBlur: "MtnB",
		Offset: "Ofst",
		Pinch: "Pnch",
		PolarCoordinates: "Plr ",
		Ripple: "Rple",
		Sharpen: "Shrp",
		SharpenMore: "ShrM",
		Twirl: "Twrl",
		UnsharpMask: "UnsM"
	};
	bv.lt = {
		rigidTransform: B.UK
	};
	bv.names = {
		lightFilterGradient: "Normal Map",
		rigidTransform: [10, 46],
		LnCr: [24, 1, 1, 0],
		LqFy: [24, 1, 0, 0],
		GEfc: [24, 0],
		Avrg: [24, 3, 0],
		"Blr ": [24, 3, 1],
		BlrM: [24, 3, 2],
		boxblur: [24, 3, 3],
		GsnB: [24, 3, 4],
		Bokh: [24, 3, 5],
		MtnB: [24, 3, 6],
		RdlB: [24, 3, 7],
		surfaceBlur: [24, 3, 10],
		Dspl: [24, 5, 0],
		Pnch: [24, 5, 1],
		"Plr ": [24, 5, 2],
		Rple: [24, 5, 3],
		"Shr ": [24, 5, 4],
		Sphr: [24, 5, 5],
		Twrl: [24, 1, 0, 1, 3],
		Wave: [24, 5, 6],
		AdNs: [24, 7, 0],
		DstS: [24, 7, 2],
		"Mdn ": [24, 7, 3],
		ClrH: [24, 9, 0],
		Crst: [24, 9, 1],
		Mztn: [24, 9, 4],
		"Msc ": [24, 9, 5],
		Pntl: [24, 9, 6],
		Clds: [24, 11, 0],
		DfrC: [24, 11, 1],
		LnsF: [24, 11, 2],
		Shrp: [24, 13, 0],
		ShrM: [24, 13, 2],
		smartSharpen: [24, 13, 3],
		UnsM: [24, 13, 4],
		FndE: [24, 15, 3],
		oilPaint: [24, 15, 4],
		HghP: [24, 17, 1],
		"Mxm ": [24, 17, 2],
		"Mnm ": [24, 17, 3],
		Ofst: [24, 17, 4],
		Rept: [24, 17, 5],
		Ctoa: "Color to Alpha",
		dDFT: "Fourier Transform",
		iDFT: "Inverse Fourier Transform",
		adaptCorrect: ["VAR0/VAR1", [19, 6, 0],
			[19, 6, 2]
		]
	};
	bv.tt = function (F) {
		var P = null;
		if (F == "GEfc") P = {
			__name: "Filter Gallery",
			classID: "GEfc",
			GEfs: {
				t: "VlLs",
				v: [{
					t: "Objc",
					v: fK.tt("GlwE")
				}]
			}
		};
		if (F == "LqFy") {
			var o = {
					YY: 50,
					mi: 50,
					map: new Float32Array(50 * 50 * 2)
				},
				X = new Uint8Array(h7.HC(o)),
				Y = [];
			for (var w = 0; w < X.length; w++) Y.push(X[w]);
			P = {
				__name: "Liquify",
				classID: "LqFy",
				LqMe: {
					t: "tdta",
					v: Y
				}
			}
		}
		if (F == "rigidTransform") {
			P = {
				__name: "Puppet Warp",
				classID: "rigidTransform",
				null: {
					t: "obj ",
					v: [{
						t: "Enmr",
						v: {
							classID: "Lyr",
							typeID: "Ordn",
							enum: "Trgt"
						}
					}]
				},
				rigidType: {
					t: "bool",
					v: !0
				},
				puppetShapeList: {
					t: "VlLs",
					v: []
				},
				PuX0: {
					t: "doub",
					v: 0
				},
				PuX1: {
					t: "doub",
					v: 1e3
				},
				PuX2: {
					t: "doub",
					v: 1e3
				},
				PuX3: {
					t: "doub",
					v: 0
				},
				PuY0: {
					t: "doub",
					v: 0
				},
				PuY1: {
					t: "doub",
					v: 0
				},
				PuY2: {
					t: "doub",
					v: 1e3
				},
				PuY3: {
					t: "doub",
					v: 1e3
				}
			}
		}
		if (F == "LnCr") P = {
			__name: "Lens Correction",
			classID: "LnCr",
			LnAg: {
				t: "bool",
				v: !0
			},
			LnAc: {
				t: "bool",
				v: !1
			},
			LnAv: {
				t: "bool",
				v: !1
			},
			LnAs: {
				t: "bool",
				v: !1
			},
			LnIp: {
				t: "bool",
				v: !1
			},
			LnFo: {
				t: "doub",
				v: 0
			},
			LnPr: {
				t: "TEXT",
				v: ""
			},
			LnIa: {
				t: "doub",
				v: 0
			},
			LnI0: {
				t: "doub",
				v: 0
			},
			LnI1: {
				t: "doub",
				v: 0
			},
			LnI2: {
				t: "doub",
				v: 0
			},
			LnI3: {
				t: "doub",
				v: 1
			},
			LnRa: {
				t: "doub",
				v: 0
			},
			LnVp: {
				t: "doub",
				v: 0
			},
			LnHp: {
				t: "doub",
				v: 0
			},
			LnSi: {
				t: "doub",
				v: 100
			},
			LnFt: {
				t: "long",
				v: 2
			},
			LnSb: {
				t: "doub",
				v: 0
			},
			LnSt: {
				t: "long",
				v: 50
			},
			LnRc: {
				t: "doub",
				v: 0
			},
			LnGm: {
				t: "doub",
				v: 0
			},
			LnBy: {
				t: "doub",
				v: 0
			},
			LnNa: {
				t: "long",
				v: 64
			},
			LnIh: {
				t: "long",
				v: 0
			},
			LnIv: {
				t: "long",
				v: 0
			},
			LnIs: {
				t: "Objc",
				v: {
					classID: "RGBC",
					Rd: {
						t: "doub",
						v: 127
					},
					Grn: {
						t: "doub",
						v: 127
					},
					Bl: {
						t: "doub",
						v: 127
					}
				}
			},
			LnNm: {
				t: "bool",
				v: !1
			}
		};
		if (F == "adaptCorrect") P = {
			__name: "Shadow/Highlight",
			classID: "adaptCorrect",
			sdwM: {
				t: "Objc",
				v: {
					__name: "Parameters",
					classID: "adaptCorrectTones",
					Amnt: {
						t: "UntF",
						v: {
							type: "#Prc",
							val: 50
						}
					},
					Wdth: {
						t: "UntF",
						v: {
							type: "#Prc",
							val: 25
						}
					},
					Rds: {
						t: "long",
						v: 12
					}
				}
			},
			hglM: {
				t: "Objc",
				v: {
					__name: "Parameters",
					classID: "adaptCorrectTones",
					Amnt: {
						t: "UntF",
						v: {
							type: "#Prc",
							val: 0
						}
					},
					Wdth: {
						t: "UntF",
						v: {
							type: "#Prc",
							val: 0
						}
					},
					Rds: {
						t: "long",
						v: 0
					}
				}
			},
			BlcC: {
				t: "doub",
				v: 0
			},
			WhtC: {
				t: "doub",
				v: 0
			},
			Cntr: {
				t: "long",
				v: 0
			},
			ClrC: {
				t: "long",
				v: 0
			}
		};
		if (F == "oilPaint") P = {
			__name: "Oil Paint",
			classID: "oilPaint",
			lightingOn: {
				t: "bool",
				v: !0
			},
			stylization: {
				t: "doub",
				v: 3
			},
			brushScale: {
				t: "doub",
				v: 1
			},
			microBrush: {
				t: "doub",
				v: 0
			},
			LghD: {
				t: "long",
				v: 45
			},
			specularity: {
				t: "doub",
				v: 1
			},
			cleanliness: {
				t: "doub",
				v: 2
			}
		};
		if (F == "lightFilterGradient") P = {
			__name: "Generate Normals",
			classID: "lightFilterGradient",
			blur: {
				t: "doub",
				v: 0
			},
			textureScale: {
				t: "doub",
				v: 1
			},
			Scl: {
				t: "doub",
				v: 1
			},
			Dtl: {
				t: "VlLs",
				v: [{
					t: "doub",
					v: 1
				}, {
					t: "doub",
					v: 1
				}, {
					t: "doub",
					v: 1
				}]
			}
		};
		if (F == "boxblur") P = {
			__name: "Box Blur",
			classID: "boxblur",
			Rds: {
				t: "UntF",
				v: {
					type: "#Pxl",
					val: 15
				}
			}
		};
		if (F == "GsnB") P = {
			__name: "Gaussian Blur",
			classID: "GsnB",
			Rds: {
				t: "UntF",
				v: {
					type: "#Pxl",
					val: 7.2
				}
			}
		};
		if (F == "Bokh") P = {
			__name: "Lens Blur",
			classID: "Bokh",
			BkDi: {
				t: "enum",
				v: {
					BtDi: "BeIn"
				}
			},
			BkDp: {
				t: "long",
				v: 0
			},
			BkDs: {
				t: "bool",
				v: !1
			},
			BkIs: {
				t: "enum",
				v: {
					BtIs: "BeS6"
				}
			},
			BkIb: {
				t: "doub",
				v: 30
			},
			BkIc: {
				t: "long",
				v: 0
			},
			BkIr: {
				t: "long",
				v: 0
			},
			BkSb: {
				t: "doub",
				v: 0
			},
			BkSt: {
				t: "long",
				v: 255
			},
			BkNa: {
				t: "long",
				v: 0
			},
			BkNt: {
				t: "enum",
				v: {
					BtNt: "BeNu"
				}
			},
			BkNm: {
				t: "bool",
				v: !1
			}
		};
		if (F == "MtnB") P = {
			__name: "Motion Blur",
			classID: "MtnB",
			Angl: {
				t: "long",
				v: 0
			},
			Dstn: {
				t: "UntF",
				v: {
					type: "#Pxl",
					val: 4
				}
			}
		};
		if (F == "RdlB") P = {
			__name: "Radial Blur",
			classID: "RdlB",
			Amnt: {
				t: "long",
				v: 10
			},
			BlrM: {
				t: "enum",
				v: {
					BlrM: "Spn"
				}
			},
			BlrQ: {
				t: "enum",
				v: {
					BlrQ: "Gd"
				}
			},
			Cntr: {
				t: "Objc",
				v: {
					classID: "Pnt",
					Hrzn: {
						t: "doub",
						v: .5
					},
					Vrtc: {
						t: "doub",
						v: .5
					}
				}
			}
		};
		if (F == "surfaceBlur") P = {
			__name: "Surface Blur",
			classID: "surfaceBlur",
			Rds: {
				t: "UntF",
				v: {
					type: "#Pxl",
					val: 15
				}
			},
			Thsh: {
				t: "long",
				v: 15
			}
		};
		if (F == "Dspl") P = {
			__name: "Displace",
			classID: "Dspl",
			HrzS: {
				t: "long",
				v: 10
			},
			VrtS: {
				t: "long",
				v: 10
			},
			DspM: {
				t: "enum",
				v: {
					DspM: "StrF"
				}
			},
			UndA: {
				t: "enum",
				v: {
					UndA: "RptE"
				}
			},
			DspF: {
				t: "Pth ",
				v: {
					sig: "txtu",
					pth: "file.psd\0"
				}
			}
		};
		if (F == "Pnch") P = {
			__name: "Pinch",
			classID: "Pnch",
			Amnt: {
				t: "long",
				v: -100
			}
		};
		if (F == "Plr ") P = {
			__name: "Polar Coordinates",
			classID: "Plr",
			Cnvr: {
				t: "enum",
				v: {
					Cnvr: "RctP"
				}
			}
		};
		if (F == "Rple") P = {
			__name: "Ripple",
			classID: "Rple",
			Amnt: {
				t: "long",
				v: 999
			},
			RplS: {
				t: "enum",
				v: {
					RplS: "Mdm"
				}
			}
		};
		if (F == "Shr ") P = {
			__name: "Shear",
			classID: "Shr",
			ShrP: {
				t: "VlLs",
				v: [{
					t: "Objc",
					v: {
						classID: "Pnt",
						Hrzn: {
							t: "doub",
							v: 0
						},
						Vrtc: {
							t: "doub",
							v: 1
						}
					}
				}, {
					t: "Objc",
					v: {
						classID: "Pnt",
						Hrzn: {
							t: "doub",
							v: 0
						},
						Vrtc: {
							t: "doub",
							v: 128
						}
					}
				}]
			},
			UndA: {
				t: "enum",
				v: {
					UndA: "WrpA"
				}
			},
			ShrS: {
				t: "long",
				v: 0
			},
			ShrE: {
				t: "long",
				v: 1
			}
		};
		if (F == "Sphr") P = {
			__name: "Spherize",
			classID: "Sphr",
			Amnt: {
				t: "long",
				v: 100
			},
			SphM: {
				t: "enum",
				v: {
					SphM: "Nrml"
				}
			}
		};
		if (F == "Twrl") P = {
			__name: "Twirl",
			classID: "Twrl",
			Angl: {
				t: "long",
				v: 90
			}
		};
		if (F == "Wave") P = {
			__name: "Wave",
			classID: "Wave",
			Wvtp: {
				t: "enum",
				v: {
					Wvtp: "WvSn"
				}
			},
			NmbG: {
				t: "long",
				v: 1
			},
			WLMn: {
				t: "long",
				v: 101
			},
			WLMx: {
				t: "long",
				v: 102
			},
			AmMn: {
				t: "long",
				v: 36
			},
			AmMx: {
				t: "long",
				v: 37
			},
			SclH: {
				t: "long",
				v: 100
			},
			SclV: {
				t: "long",
				v: 100
			},
			UndA: {
				t: "enum",
				v: {
					UndA: "WrpA"
				}
			},
			RndS: {
				t: "long",
				v: 743887
			}
		};
		if (F == "AdNs") P = {
			__name: "Add Noise",
			classID: "AdNs",
			Dstr: {
				t: "enum",
				v: {
					Dstr: "Unfr"
				}
			},
			Nose: {
				t: "UntF",
				v: {
					type: "#Prc",
					val: 20
				}
			},
			Mnch: {
				t: "bool",
				v: !1
			},
			FlRs: {
				t: "long",
				v: 100691320
			}
		};
		if (F == "DstS") P = {
			__name: "Dust & Scratches",
			classID: "DstS",
			Rds: {
				t: "long",
				v: 2
			},
			Thsh: {
				t: "long",
				v: 26
			}
		};
		if (F == "Mdn ") P = {
			__name: "Median",
			classID: "Mdn",
			Rds: {
				t: "UntF",
				v: {
					type: "#Pxl",
					val: 7
				}
			}
		};
		if (F == "ClrH") P = {
			__name: "Color Halftone",
			classID: "ClrH",
			Rds: {
				t: "long",
				v: 8
			},
			Ang1: {
				t: "long",
				v: 10
			},
			Ang2: {
				t: "long",
				v: 40
			},
			Ang3: {
				t: "long",
				v: 70
			},
			Ang4: {
				t: "long",
				v: 80
			}
		};
		if (F == "Crst") P = {
			__name: "Crystallize",
			classID: "Crst",
			ClSz: {
				t: "long",
				v: 10
			},
			FlRs: {
				t: "long",
				v: 1554929224
			}
		};
		if (F == "Mztn") P = {
			__name: "Mezzotint",
			classID: "Mztn",
			MztT: {
				t: "enum",
				v: {
					MztT: "FnDt"
				}
			},
			FlRs: {
				t: "long",
				v: 204994187
			}
		};
		if (F == "Msc ") P = {
			__name: "Mosaic",
			classID: "Msc",
			ClSz: {
				t: "UntF",
				v: {
					type: "#Pxl",
					val: 12
				}
			}
		};
		if (F == "Pntl") P = {
			__name: "Pointillize",
			classID: "Pntl",
			ClSz: {
				t: "long",
				v: 10
			},
			FlRs: {
				t: "long",
				v: 1554929236
			}
		};
		if (F == "LnsF") P = {
			__name: "Lens Flare",
			classID: "LnsF",
			Brgh: {
				t: "long",
				v: 100
			},
			FlrC: {
				t: "Objc",
				v: {
					classID: "Pnt",
					Hrzn: {
						t: "doub",
						v: .19140625
					},
					Vrtc: {
						t: "doub",
						v: .185628741979599
					}
				}
			},
			Lns: {
				t: "enum",
				v: {
					Lns: "Zm"
				}
			}
		};
		if (F == "smartSharpen") P = {
			__name: "Smart Sharpen",
			classID: "smartSharpen",
			presetKind: {
				t: "enum",
				v: {
					presetKindType: "presetKindCustom"
				}
			},
			useLegacy: {
				t: "bool",
				v: !1
			},
			Amnt: {
				t: "UntF",
				v: {
					type: "#Prc",
					val: 150
				}
			},
			Rds: {
				t: "UntF",
				v: {
					type: "#Pxl",
					val: 1
				}
			},
			noiseReduction: {
				t: "UntF",
				v: {
					type: "#Prc",
					val: 0
				}
			},
			blur: {
				t: "enum",
				v: {
					blurType: "GsnB"
				}
			}
		};
		if (F == "UnsM") P = {
			__name: "Unsharp Mask",
			classID: "UnsM",
			Amnt: {
				t: "UntF",
				v: {
					type: "#Prc",
					val: 142
				}
			},
			Rds: {
				t: "UntF",
				v: {
					type: "#Pxl",
					val: 4.5
				}
			},
			Thsh: {
				t: "long",
				v: 0
			}
		};
		if (F == "HghP") P = {
			__name: "High Pass",
			classID: "HghP",
			Rds: {
				t: "UntF",
				v: {
					type: "#Pxl",
					val: 3
				}
			}
		};
		if (F == "Mxm ") P = {
			__name: "Maximum",
			classID: "Mxm",
			Rds: {
				t: "UntF",
				v: {
					type: "#Pxl",
					val: 9
				}
			}
		};
		if (F == "Mnm ") P = {
			__name: "Minimum",
			classID: "Mnm",
			Rds: {
				t: "UntF",
				v: {
					type: "#Pxl",
					val: 14
				}
			}
		};
		if (F == "Ofst") P = {
			__name: "Offset",
			classID: "Ofst",
			Hrzn: {
				t: "long",
				v: 144
			},
			Vrtc: {
				t: "long",
				v: 278
			},
			Fl: {
				t: "enum",
				v: {
					FlMd: "Wrp"
				}
			}
		};
		if (F == "Rept") P = {
			__name: "Repeat",
			classID: "Rept",
			Scl: {
				v: {
					type: "#Prc",
					val: 100
				},
				t: "UntF"
			},
			Rsft: {
				v: {
					type: "#Prc",
					val: 0
				},
				t: "UntF"
			},
			SpcX: {
				v: {
					type: "#Prc",
					val: 0
				},
				t: "UntF"
			},
			SpcY: {
				v: {
					type: "#Prc",
					val: 0
				},
				t: "UntF"
			},
			SpcC: {
				t: "bool",
				v: !1
			},
			Angl: {
				t: "long",
				v: 0
			}
		};
		if (F == "Ctoa") P = {
			__name: "Color to Alpha",
			classID: "Ctoa",
			Trsp: {
				v: {
					type: "#Prc",
					val: 0
				},
				t: "UntF"
			},
			Opct: {
				v: {
					type: "#Prc",
					val: 100
				},
				t: "UntF"
			},
			Clr: {
				v: {
					classID: "RGBC",
					Rd: {
						v: 0,
						t: "doub"
					},
					Grn: {
						v: 0,
						t: "doub"
					},
					Bl: {
						v: 0,
						t: "doub"
					}
				},
				t: "Objc"
			}
		};
		if (F == "brit") P = {
			__name: "Brightness/Contrast",
			classID: "BrgC",
			Brgh: {
				t: "long",
				v: 0
			},
			Cntr: {
				t: "long",
				v: 0
			},
			useLegacy: {
				t: "bool",
				v: !1
			}
		};
		if (F == "levl") P = {
			__name: "Levels",
			classID: "Lvls",
			presetKind: {
				t: "enum",
				v: {
					presetKindType: "presetKindCustom"
				}
			},
			Adjs: {
				t: "VlLs",
				v: []
			}
		};
		if (F == "curv") P = {
			__name: "Curves",
			classID: "Crvs",
			presetKind: {
				t: "enum",
				v: {
					presetKindType: "presetKindCustom"
				}
			},
			Adjs: {
				t: "VlLs",
				v: []
			}
		};
		if (F == "expA") P = {
			__name: "Exposure",
			classID: "Exps",
			presetKind: {
				t: "enum",
				v: {
					presetKindType: "presetKindCustom"
				}
			},
			Exps: {
				t: "doub",
				v: 0
			},
			Ofst: {
				t: "doub",
				v: 0
			},
			gammaCorrection: {
				t: "doub",
				v: 1
			}
		};
		if (F == "vibA") P = {
			__name: "Vibrance",
			classID: "vibrance",
			vibrance: {
				t: "long",
				v: 0
			},
			Strt: {
				t: "long",
				v: 0
			}
		};
		if (F == "hue2") P = {
			__name: "Hue/Saturation",
			classID: "HStr",
			presetKind: {
				t: "enum",
				v: {
					presetKindType: "presetKindCustom"
				}
			},
			Clrz: {
				t: "bool",
				v: !1
			},
			Adjs: {
				t: "VlLs",
				v: []
			}
		};
		if (F == "blnc") P = {
			__name: "Color Balance",
			classID: "ClrB",
			ShdL: {
				t: "VlLs",
				v: [{
					t: "long",
					v: 0
				}, {
					t: "long",
					v: 0
				}, {
					t: "long",
					v: 0
				}]
			},
			MdtL: {
				t: "VlLs",
				v: [{
					t: "long",
					v: 0
				}, {
					t: "long",
					v: 0
				}, {
					t: "long",
					v: 0
				}]
			},
			HghL: {
				t: "VlLs",
				v: [{
					t: "long",
					v: 0
				}, {
					t: "long",
					v: 0
				}, {
					t: "long",
					v: 0
				}]
			},
			PrsL: {
				t: "bool",
				v: !0
			}
		};
		if (F == "blwh") P = {
			__name: "Black & White",
			classID: "BanW",
			presetKind: {
				t: "enum",
				v: {
					presetKindType: "presetKindCustom"
				}
			},
			Rd: {
				t: "long",
				v: 40
			},
			Yllw: {
				t: "long",
				v: 85
			},
			Grn: {
				t: "long",
				v: 204
			},
			Cyn: {
				t: "long",
				v: 60
			},
			Bl: {
				t: "long",
				v: 20
			},
			Mgnt: {
				t: "long",
				v: 80
			},
			useTint: {
				t: "bool",
				v: !0
			},
			tintColor: {
				t: "Objc",
				v: {
					classID: "RGBC",
					Rd: {
						t: "doub",
						v: 0
					},
					Grn: {
						t: "doub",
						v: 0
					},
					Bl: {
						t: "doub",
						v: 0
					}
				}
			}
		};
		if (F == "phfl") P = {
			__name: "Photo Filter",
			classID: "photoFilter",
			Clr: {
				t: "Objc",
				v: {
					classID: "LbCl",
					Lmnc: {
						t: "doub",
						v: 67.06
					},
					A: {
						t: "doub",
						v: 32
					},
					B: {
						t: "doub",
						v: 120
					}
				}
			},
			Dnst: {
				t: "long",
				v: 80
			},
			PrsL: {
				t: "bool",
				v: !0
			}
		};
		if (F == "grdm") P = {
			__name: "Gradient Map",
			classID: "GrMp",
			Rvrs: {
				t: "bool",
				v: !1
			},
			Grad: JSON.parse(ce.IW[6]).Grad
		};
		if (F == "selc") P = {
			__name: "Selective Color",
			classID: "SlcC",
			presetKind: {
				t: "enum",
				v: {
					presetKindType: "presetKindCustom"
				}
			},
			Mthd: {
				t: "enum",
				v: {
					CrcM: "Rltv"
				}
			},
			ClrC: {
				t: "VlLs",
				v: []
			}
		};
		if (F == "thrs") P = {
			__name: "Threshold",
			classID: "Thrs",
			Lvl: {
				t: "long",
				v: 128
			}
		};
		if (F == "mixr") P = {
			__name: "Channel Mixer",
			classID: "ChnM",
			presetKind: {
				t: "enum",
				v: {
					presetKindType: "presetKindDefault"
				}
			},
			Rd: {
				t: "Objc",
				v: {
					classID: "ChMx",
					Rd: {
						t: "UntF",
						v: {
							type: "#Prc",
							val: 100
						}
					}
				}
			},
			Grn: {
				t: "Objc",
				v: {
					classID: "ChMx",
					Grn: {
						t: "UntF",
						v: {
							type: "#Prc",
							val: 100
						}
					}
				}
			},
			Bl: {
				t: "Objc",
				v: {
					classID: "ChMx",
					Bl: {
						t: "UntF",
						v: {
							type: "#Prc",
							val: 100
						}
					}
				}
			}
		};
		if (F == "clrL") P = {
			__name: "Color Lookup",
			classID: "colorLookup"
		};
		if (F == "post") P = {
			__name: "Posterize",
			classID: "Pstr",
			Lvls: {
				t: "long",
				v: 3
			}
		};
		if (F == "rplc") P = {
			__name: "Replace Color",
			classID: "RplC",
			Fzns: {
				t: "long",
				v: 55
			},
			Mnm: {
				t: "Objc",
				v: {
					classID: "LbCl",
					Lmnc: {
						t: "doub",
						v: 73.1
					},
					A: {
						t: "doub",
						v: 23.95
					},
					B: {
						t: "doub",
						v: 8.03
					}
				}
			},
			Mxm: {
				t: "Objc",
				v: {
					classID: "LbCl",
					Lmnc: {
						t: "doub",
						v: 73
					},
					A: {
						t: "doub",
						v: 23
					},
					B: {
						t: "doub",
						v: 8
					}
				}
			},
			H: {
				t: "long",
				v: -22
			},
			Strt: {
				t: "long",
				v: 100
			},
			Lght: {
				t: "long",
				v: 2
			}
		};
		if (F == "fade") P = {
			__name: "Fade",
			classID: "fade",
			Md: {
				v: {
					BlnM: "Nrml"
				},
				t: "enum"
			},
			Opct: {
				v: {
					type: "#Prc",
					val: 100
				},
				t: "UntF"
			}
		};
		return P
	};
	bv.jf = {
		sAdNs: function (F, P) {
			P[0] = F.Nose.v.val;
			P[1] = ["Gsn", "Unfr"].indexOf(F.Dstr.v.Dstr);
			P[2] = F.Mnch.v
		},
		gAdNs: function (F, P) {
			F.Nose.v.val = P[0];
			F.Dstr.v.Dstr = ["Gsn", "Unfr"][P[1]];
			F.Mnch.v = P[2]
		},
		sDstS: function (F, P) {
			P[0] = F.Rds.v;
			P[1] = F.Thsh.v
		},
		gDstS: function (F, P) {
			F.Rds.v = P[0];
			F.Thsh.v = P[1]
		},
		sGsnB: function (F, P) {
			P[0] = F.Rds.v.val
		},
		gGsnB: function (F, P) {
			F.Rds.v.val = P[0]
		},
		sHghP: function (F, P) {
			P[0] = F.Rds.v.val
		},
		gHghP: function (F, P) {
			F.Rds.v.val = P[0]
		},
		"sMxm ": function (F, P) {
			P[0] = F.Rds.v.val
		},
		"gMxm ": function (F, P) {
			F.Rds.v.val = P[0]
		},
		"sMnm ": function (F, P) {
			P[0] = F.Rds.v.val
		},
		"gMnm ": function (F, P) {
			F.Rds.v.val = P[0]
		},
		sMtnB: function (F, P) {
			P[0] = F.Angl.v;
			P[1] = F.Dstn.v.val
		},
		gMtnB: function (F, P) {
			F.Angl.v = typeof P[0] == "number" ? P[0] : P[0].Fu;
			F.Dstn.v.val = P[1]
		},
		sOfst: function (F, P) {
			P[0] = F.Hrzn.v;
			P[1] = F.Vrtc.v;
			P[2] = ["Rpt", "Bckg", "Wrp"].indexOf(F.Fl.v.FlMd)
		},
		gOfst: function (F, P) {
			F.Hrzn.v = P[0];
			F.Vrtc.v = P[1];
			F.Fl.v.FlMd = ["Rpt", "Bckg", "Wrp"][P[2]]
		},
		sPnch: function (F, P) {
			P[0] = F.Amnt.v
		},
		gPnch: function (F, P) {
			F.Amnt.v = P[0]
		},
		"sPlr ": function (F, P) {
			P[0] = ["RctP", "PlrR"].indexOf(F.Cnvr.v.Cnvr)
		},
		"gPlr ": function (F, P) {
			F.Cnvr.v.Cnvr = ["RctP", "PlrR"][P[0]]
		},
		sRple: function (F, P) {
			P[0] = F.Amnt.v;
			P[1] = ["Sml", "Mdm", "Lrg"].indexOf(F.RplS.v.RplS)
		},
		gRple: function (F, P) {
			F.Amnt.v = P[0];
			F.RplS.v.RplS = ["Sml", "Mdm", "Lrg"][P[1]]
		},
		sTwrl: function (F, P) {
			P[0] = F.Angl.v
		},
		gTwrl: function (F, P) {
			F.Angl.v = P[0]
		},
		sUnsM: function (F, P) {
			P[0] = F.Amnt.v.val;
			P[1] = F.Rds.v.val;
			P[2] = F.Thsh.v
		},
		gUnsM: function (F, P) {
			F.Amnt.v.val = P[0];
			F.Rds.v.val = P[1];
			F.Thsh.v = P[2]
		}
	};
	bv.a31 = function (F) {
		var P = new aH(0, 0);
		if (F.enab.v == !1) return P;
		var o = F.filterFXList.v;
		for (var w = 0; w < o.length; w++) {
			var X = o[w].v;
			if (X.enab.v == !1) continue;
			var Y = bv.l$(X),
				y = bv.Oe(Y, X.Fltr ? X.Fltr.v : null);
			if (y.x > P.x) P.x = y.x;
			if (y.y > P.y) P.y = y.y
		}
		return P
	};
	bv.Oe = function (F, P) {
		var o = 0,
			X = 0;
		if (["GsnB", "boxblur", "smartSharpen", "UnsM", "HghP"].indexOf(F) != -1) {
			var Y = P.Rds.v.val;
			o = X = Y * 2.57
		}
		if (F == "MtnB") o = X = P.Dstn.v.val;
		if ("Ofst,Rept,LqFy,Dspl,Pnch,Rple,Shr ,Sphr,Twrl,Wave,RdlB,Clds,DfrC,Plr ,LnCr,lightFilterGradient,rigidTransform".split(",").indexOf(F) != -1) {
			o = X = 1e4
		}
		if (F == "GEfc") o = X = 1e4;
		return new aH(Math.ceil(o), Math.ceil(X))
	};
	bv.U$ = function () {
		return {
			t: "Objc",
			v: {
				classID: "filterFXStyle",
				enab: {
					t: "bool",
					v: !0
				},
				validAtPosition: {
					t: "bool",
					v: !0
				},
				filterMaskEnable: {
					t: "bool",
					v: !0
				},
				filterMaskLinked: {
					t: "bool",
					v: !0
				},
				filterMaskExtendWithWhite: {
					t: "bool",
					v: !0
				},
				filterFXList: {
					t: "VlLs",
					v: []
				}
			}
		}
	};
	bv.Sb = function (F, P) {
		var o = {
				U: P.GY >> 16,
				S: P.GY >> 8 & 255,
				i: P.GY & 255
			},
			X = {
				U: P.Ty >> 16,
				S: P.Ty >> 8 & 255,
				i: P.Ty & 255
			},
			Y = bv.names[F];
		if (Y == null) Y = b_.names[F];
		var y = F;
		for (var z in b_.NS)
			if (b_.NS[z] == F) y = z;
		var s = {
				t: "Objc",
				v: {
					classID: "filterFX",
					Nm: {
						t: "TEXT",
						v: h9.get(Y)
					},
					blendOptions: {
						t: "Objc",
						v: {
							classID: "blendOptions",
							Opct: {
								t: "UntF",
								v: {
									type: "#Prc",
									val: 100
								}
							},
							Md: {
								t: "enum",
								v: {
									BlnM: "Nrml"
								}
							}
						}
					},
					enab: {
						t: "bool",
						v: !0
					},
					hasoptions: {
						t: "bool",
						v: !0
					},
					FrgC: {
						t: "Objc",
						v: H.j.$H(o)
					},
					BckC: {
						t: "Objc",
						v: H.j.$H(X)
					},
					filterID: {
						t: "long",
						v: y.length == 4 ? r.acH(y) : 777
					}
				}
			},
			t = bv.tt(F);
		if (t) s.v.Fltr = {
			t: "Objc",
			v: t
		};
		return s
	};
	bv.MG = function (F, P, o, X) {
		var Y = H.R(F.length);
		H.Ai.or(F, P, o, X, [-1, 0, 1, -2, 0, 2, -1, 0, 1], 0, !0);
		H.Ai.or(F, Y, o, X, [1, 2, 1, 0, 0, 0, -1, -2, -1], 0, !0);
		for (var w = 0; w < Y.length; w += 4) {
			var y = P[w],
				z = P[w + 1],
				s = P[w + 2],
				t = P[w + 3],
				d = Y[w],
				U = Y[w + 1],
				v = Y[w + 2],
				A = Y[w + 3];
			P[w] = 255 - Math.max(0, Math.min(255, Math.sqrt(y * y + d * d)));
			P[w + 1] = 255 - Math.max(0, Math.min(255, Math.sqrt(z * z + U * U)));
			P[w + 2] = 255 - Math.max(0, Math.min(255, Math.sqrt(s * s + v * v)))
		}
	};
	bv.$z = function (F, P, o, X, Y, y, z, s) {
		var t = o * X * 4;
		H.Ai.a9E(F, P, o, X, Y, y, z)
	};
	bv.ep = function (F, P, o, X) {
		H.l7(o);
		if (F < 1) {
			var Y = Math.round(F * 5),
				y = [1, 2, 1, 2, [40, 26, 13, 6, 4, 2][Y], 2, 1, 2, 1];
			y = H.Ai.h5(y);
			var z = o.slice(0);
			H.Ai.or(z, o, X.Z, X.h, y, 255)
		} else P(o, X, F);
		H.gl(o)
	};
	bv.a0y = function (F, P, o, X) {
		for (var w = 0; w < F.length; w++) {
			o[w] = F[w] * (1 / 255);
			X[w] = 0
		}
		FFT.fft2d(o, X);
		var Y = P >>> 1,
			y = 16384,
			z = 128,
			t = 100;
		while (z < P) {
			z <<= 1;
			y <<= 2
		}
		var s = 255 / Math.log(y),
			d = -100;
		for (var U = 0; U < P; U++)
			for (var v = 0; v < Y; v++) {
				var A = P + Y + U & P - 1,
					Z = o[A * P + v],
					D = X[A * P + v],
					q = Math.sqrt(Z * Z + D * D),
					R = Math.atan2(D, Z);
				F[U * P + v] = Math.round(s * Math.log(q + 1));
				F[U * P + Y + v] = Math.round((Math.PI + R) * (255 * .5 / Math.PI))
			}
	};
	bv.a5C = function (F, P, o, X) {
		o.fill(0);
		X.fill(0);
		var Y = P >>> 1,
			y = 16384,
			z = 128;
		while (z < P) {
			z <<= 1;
			y <<= 2
		}
		var s = 255 / Math.log(y),
			t = [],
			d = [],
			U = [];
		for (var w = 0; w < 256; w++) {
			t[w] = Math.exp(w / s) - 1;
			var v = w * (2 * Math.PI / 255) - Math.PI;
			d[w] = Math.sin(v);
			U[w] = Math.cos(v)
		}
		for (var A = 0; A < P; A++)
			for (var Z = 0; Z < Y; Z++) {
				var D = P + Y + A & P - 1,
					q = t[F[A * P + Z]],
					v = F[A * P + Y + Z],
					R = q * U[v],
					J = q * d[v];
				o[D * P + Z] = R;
				X[D * P + Z] = J;
				if (Z != 0) {
					var W = D == 0 ? D * P + P - Z : (P - D) * P + (P - Z);
					o[W] = R;
					X[W] = -J
				}
			}
		FFT.ifft2d(o, X);
		for (var w = 0; w < F.length; w++) {
			F[w] = Math.max(0, Math.min(255, ~~(.5 + 255 * o[w])))
		}
	};
	bv.y3 = new ArrayBuffer(512);
	bv.a20 = function (F) {
		var P = bv.y3,
			o = F.length;
		if (P.byteLength < o) bv.y3 = P = new ArrayBuffer(o);
		var X = new Uint8Array(P);
		for (var w = 0; w < o; w += 4) {
			X[w] = F[w];
			X[w + 1] = F[w + 1];
			X[w + 2] = F[w + 2];
			X[w + 3] = F[w + 3]
		}
		return P
	};
	bv.t5 = function (F, P, o, X, Y, y, z) {
		if (y == null) y = {
			buffer: H.R(P.buffer.length),
			rect: P.rect.clone()
		};
		H.Hk(P.buffer, y.buffer);
		if (F == "GEfc") {
			var s = [];
			if (o.GEfs) {
				var t = o.GEfs.v;
				for (var w = 0; w < t.length; w++) {
					var d = t[w].v;
					if (d.GELv && d.GELv.v == !1) continue;
					s.push(d)
				}
			} else s = [o];
			for (var w = 0; w < s.length; w++) {
				var U;
				if (w == 0) fK.t5(F, P, s[w], X, Y, y, z);
				else {
					if (U == null) U = {
						buffer: H.R(P.buffer.length),
						rect: P.rect.clone()
					};
					H.Hk(y.buffer, U.buffer);
					fK.t5(F, U, s[w], X, Y, y, z)
				}
			}
		}
		if (F == "adaptCorrect") {
			var v = P.rect,
				A = v.Z,
				Z = v.h,
				D = A * Z,
				q = D * 4,
				R = o.sdwM.v,
				J = R.Amnt.v.val / 100,
				W = R.Wdth.v.val / 100,
				p = R.Rds.v,
				n = o.hglM.v,
				b = n.Amnt.v.val / 100,
				Q = n.Wdth.v.val / 100,
				_ = n.Rds.v;
			H.Nw.a6Y(P.buffer, y.buffer, A, Z, J, W, p, b, Q, _, o.ClrC.v / 100, o.Cntr.v / 100)
		}
		if (F == "Bokh") {
			var v = P.rect,
				A = v.Z,
				Z = v.h,
				D = A * Z,
				q = D * 4,
				L = P.buffer.slice(0),
				m = o.BkDi.v.BtDi,
				I = o.BkDc,
				c = o.BkDp.v / 255;
			if (m == "BeIn") c = 0;
			var u = 57 * (.3 + .7 * ((A + Z) / 2) / 1750) * (o.BkIb.v / 100) * (1 + .2 * Math.pow(c, .1)),
				e = parseInt(o.BkIs.v.BtIs.slice(3)),
				a = -o.BkIr.v * Math.PI / 180,
				N = [];
			for (var w = 0; w < 8; w++) {
				var V = a + w * (Math.PI * 2 / e),
					M = a + (w + 1) * (Math.PI * 2 / e),
					O = Math.cos(V),
					K = Math.sin(V),
					j = Math.cos(M),
					$ = Math.sin(M),
					x = [0, 0, 0];
				H.Aw.mm([
					[O, K, 1, 0],
					[j, $, 1, 0],
					[1, 1, 1, 1]
				], x);
				if (x[2] > 0) {
					x[0] *= -1;
					x[1] *= -1;
					x[2] *= -1
				}
				N.push(x[0], x[1], x[2], 0)
			}
			if (m == "BeIn") {
				H.XB(L, 0, 16777215);
				c = 1
			} else if (m == "BeIt" && I.v.BtDc == "BeCt") {} else {
				var g;
				if (m == "BeIt" && I.v.BtDc == "BeCm") g = z[1];
				else if (m == "BeIa") g = z[2][I.v];
				if (g == null) {
					H.XB(L, 0, 16777215)
				} else {
					var T;
					if (g.rect.Qn(v)) T = g.channel;
					else T = g.kx(v);
					H.Oy(T, L, 3)
				}
			}
			if (k.pQ) {
				var E = L,
					a9 = A,
					ez = Z,
					bN = 1,
					cg = (o.BkSb.v == 0 || o.BkSt.v == 255) && m == "BeIn";
				if (!cg) {
					var d8 = 0;
					for (var w = 0; w < q; w += 4) d8 += Math.abs(c - L[w + 3] * (1 / 255));
					d8 = d8 / D * u;
					var C = 3.14 * d8 * d8 * A * Z / 3e6;
					if (C > 2e3) {
						alert("too large radius");
						return
					}
				}
				while (cg && 3 * (u / bN) * (u / bN) * A * Z > 500 * 2e3 * 2e3) {
					var S = H.p0(L, new ev(0, 0, a9, ez));
					L = S.Ww;
					a9 = S.rect.Z;
					ez = S.rect.h;
					bN *= 2
				}
				var g7 = Date.now(),
					g_ = k.Wb(0, a9, ez);
				g_.set(L);
				var dT = k.Wb(1, A, Z);
				k.k1(dT);
				k.filter.WD({
					type: k.filter.Nj,
					I1: new Float32Array([1 / a9, 1 / ez]),
					aly: c,
					a2M: u / bN,
					a8y: new Float32Array([o.BkSb.v / 100, o.BkSt.v / 255]),
					a3H: new Float32Array([o.BkNa.v / 100, o.BkNt.v.BtNt == "BeNu" ? 0 : 1, o.BkNm.v ? 1 : 0]),
					a8J: new Float32Array(N.slice(0, 16)),
					abg: new Float32Array(N.slice(16))
				}, g_.g3);
				dT.get(y.buffer);
				var g4 = y.buffer;
				for (var w = 0; w < q; w += 4) g4[w + 3] = P.buffer[w + 3]
			}
		}
		if (F == "rigidTransform") {
			var g7 = Date.now(),
				bB = bv.a20,
				g_ = P.buffer.slice(0),
				i4 = 0,
				fy = 0;
			H.l7(g_);
			H.XB(y.buffer, 0);
			var A = P.rect.Z,
				Z = P.rect.h,
				d1 = o.puppetShapeList.v,
				f_ = [],
				g$ = [],
				eT = [],
				dz = [];
			for (var cN = 0; cN < d1.length; cN++) {
				var fP = d1[cN].v,
					du = i4 * 2,
					ea = fy * 3,
					cF = fP.originalVertexArray.v.length >>> 2,
					gB = fP.indexArray.v.length >>> 2,
					bp = new Float32Array(bB(fP.originalVertexArray.v));
				for (var w = 0; w < cF; w++) f_[du + w] = bp[w];
				var hf = new Float32Array(bB(fP.deformedVertexArray.v));
				for (var w = 0; w < cF; w++) g$[du + w] = hf[w];
				var bq = new Uint32Array(bB(fP.indexArray.v));
				for (var w = 0; w < gB; w++) eT[ea + w] = i4 + bq[w];
				var eY = [],
					f1 = [],
					dh = fP.PnDp.v;
				for (var w = 0; w < dh.length; w++) {
					eY.push(fP.pinVertexIndices.v[w].v);
					f1.push(dh[w].v)
				}
				var hn = H.s8.a4$(bp, bq, eY, f1);
				for (var w = 0; w < hn.length; w++) dz[i4 + w] = hn[w];
				i4 += cF >>> 1;
				fy += ~~(gB / 3)
			}
			H.s8.ti(g_, y.buffer, P.rect, f_, g$, dz, eT);
			H.gl(y.buffer)
		}
		if (F == "lightFilterGradient") {
			function e7(hp) {
				var fi = 1 / Math.sqrt(hp[0] * hp[0] + hp[1] * hp[1] + hp[2] * hp[2]);
				hp[0] *= fi;
				hp[1] *= fi;
				hp[2] *= fi
			}
			var A = P.rect.Z,
				Z = P.rect.h,
				D = A * Z,
				g7 = Date.now(),
				ed = H.R(D),
				ec = .3,
				eg = .7;
			H.np(y.buffer, ed);
			var hP = H.R(D);
			H.ni.et(ed, hP, y.rect, 16);
			var ck = H.R(D);
			H.ni.et(ed, ck, y.rect, 8);
			var ds = ed,
				hB = new Float32Array(D),
				bd = o.Dtl.v,
				d0 = bd[2].v,
				d$ = bd[1].v,
				ap = bd[0].v,
				dE = o.Scl.v * 40 * o.textureScale.v / (d0 + d$ + ap);
			d0 *= dE;
			d$ *= dE;
			ap *= dE;
			for (var w = 0; w < D; w++) {
				var fv = hP[w] * (1 / 255),
					c8 = ck[w] * (1 / 255),
					bT = ds[w] * (1 / 255);
				bT = bT * bT;
				hB[w] = d0 * fv + d$ * c8 + ap * bT
			}
			var bi = o.blur.v;
			if (bi != 0) {
				var i7 = hB.slice(0);
				H.ni.d$(i7, hB, y.rect, bi)
			}
			var hZ = A - 1,
				fu = Z - 1;
			for (var bg = 1; bg < fu; bg++)
				for (var co = 1; co < hZ; co++) {
					var w = bg * A + co,
						ga = w * 4,
						e5 = hB[w],
						fM = ec * (hB[w + 1] - e5) + eg * (e5 - hB[w - 1]),
						bb = ec * (hB[w + A] - e5) + eg * (e5 - hB[w - A]),
						hp = [1, 0, fM],
						fT = [0, 1, bb];
					e7(hp);
					e7(fT);
					var M = hp[0],
						aE = hp[2],
						cs = fT[1],
						hL = fT[2],
						fR = -aE * cs,
						cd = -M * hL,
						ih = M * cs;
					y.buffer[ga] = ~~(127.5 + fR * 127.5);
					y.buffer[ga + 1] = ~~(127.5 + cd * 127.5);
					y.buffer[ga + 2] = ~~(127.5 + ih * 127.5)
				}
		}
		if (F == "dDFT" || F == "iDFT") {
			function aV(e) {
				if (e == 0) return 1;
				e--;
				e |= e >> 1;
				e |= e >> 2;
				e |= e >> 4;
				e |= e >> 8;
				e |= e >> 16;
				return e + 1
			}
			var A = P.rect.Z,
				Z = P.rect.h,
				dw = aV(Math.max(A, Z)),
				cM = dw >>> 1,
				ht = new ev(0, 0, dw, dw),
				fZ = new ev(0, 0, A, Z);
			fZ.y = dw - Z >>> 1;
			var b0 = A >>> 1,
				aX = new ev(0, fZ.y, b0, Z),
				fQ = new H._B(A * Z);
			H.Ae(P.buffer, fQ);
			var bQ = new Float64Array(dw * dw),
				fO = new Float64Array(dw * dw),
				T = H.R(dw * dw);
			FFT.init(dw);
			var hA = [fQ.U, fQ.S, fQ.i];
			for (var w = 0; w < 3; w++) {
				var ij = hA[w];
				T.fill(0);
				if (F == "dDFT") {
					H.Lj(ij, fZ, T, ht);
					bv.a0y(T, dw, bQ, fO);
					H.Lj(T, ht, ij, fZ, aX);
					aX.x += b0;
					ht.x -= cM - b0;
					H.Lj(T, ht, ij, fZ, aX);
					aX.x -= b0;
					ht.x += cM - b0
				} else {
					H.Lj(ij, fZ, T, ht, aX);
					aX.x += cM;
					fZ.x += cM - b0;
					H.Lj(ij, fZ, T, ht, aX);
					aX.x -= cM;
					fZ.x -= cM - b0;
					bv.a5C(T, dw, bQ, fO);
					H.Lj(T, ht, ij, fZ)
				}
			}
			H.sA(fQ, y.buffer)
		}
		if (F == "Avrg") {
			var e1 = 0,
				fx = 0,
				cA = 0,
				hF = 0,
				cD = 1;
			for (var w = 0; w < P.buffer.length; w += 4) {
				var hX = P.buffer[w + 3];
				cA += P.buffer[w] * hX;
				fx += P.buffer[w + 1] * hX;
				e1 += P.buffer[w + 2] * hX;
				hF += hX
			}
			var i9 = 1 / hF;
			e1 = Math.round(cD * (e1 * i9) + (1 - cD) * 255);
			fx = Math.round(cD * (fx * i9) + (1 - cD) * 255);
			cA = Math.round(cD * (cA * i9) + (1 - cD) * 255);
			H.XB(y.buffer, e1 << 16 | fx << 8 | cA, 4278190080)
		}
		if (["GsnB", "boxblur", "smartSharpen", "UnsM", "HghP"].indexOf(F) != -1) {
			var aJ = o.Rds.v.val,
				bM = F == "boxblur" ? H.ni.$f : H.ni.aah;
			bv.ep(aJ, bM, y.buffer, y.rect);
			if (F == "UnsM" || F == "smartSharpen") {
				var cG = o.Amnt.v.val / 100,
					f5 = 0;
				if (F == "UnsM") f5 = o.Thsh.v;
				else cG *= .75;
				for (var w = 0; w < P.buffer.length; w++) {
					if ((w & 3) == 3) {
						y.buffer[w] = P.buffer[w];
						continue
					}
					var gT = P.buffer[w],
						bF = y.buffer[w],
						a1 = cG * (gT - bF);
					if (a1 > 0) a1 = Math.max(0, a1 - f5);
					else a1 = Math.min(0, a1 + f5);
					y.buffer[w] = Math.max(0, Math.min(255, gT + a1))
				}
			}
			if (F == "HghP")
				for (var w = 0; w < P.buffer.length; w++) {
					if ((w & 3) == 3) {
						y.buffer[w] = P.buffer[w];
						continue
					}
					var gT = P.buffer[w],
						bF = y.buffer[w];
					y.buffer[w] = Math.max(0, Math.min(255, 128 + gT - bF))
				}
		}
		if (F == "surfaceBlur") {
			var hV = o.Rds.v.val,
				eb = o.Thsh.v,
				A = P.rect.Z,
				Z = P.rect.h;
			bv.$z(P.buffer, y.buffer, A, Z, hV, H.Ai.Nz, [eb], 2)
		}
		if (F == "AdNs") {
			var gp = new Uint8ClampedArray(y.buffer.buffer),
				cb = 255 * o.Nose.v.val / 100,
				cR;
			if (o.Dstr.v.Dstr == "Gsn") cR = function () {
				return (Math.random() + Math.random() + Math.random() + Math.random() - 2) * 2
			};
			else cR = function () {
				return Math.random() * 2 - 1
			};
			for (var w = 0; w < gp.length; w += 4) {
				var hV = gp[w],
					dU = gp[w + 1],
					hK = gp[w + 2],
					gO, eA, fD;
				if (o.Mnch.v) {
					gO = eA = fD = cR()
				} else {
					gO = cR();
					eA = cR();
					fD = cR()
				}
				hV += cb * gO;
				dU += cb * eA;
				hK += cb * fD;
				gp[w] = hV;
				gp[w + 1] = dU;
				gp[w + 2] = hK
			}
		}
		if (F == "Mdn " || F == "DstS" || F == "Mxm " || F == "Mnm ") {
			var hV = 0;
			if (F == "Mdn " || F == "Mxm " || F == "Mnm ") hV = o.Rds.v.val;
			if (F == "DstS") hV = o.Rds.v;
			H.Ai.Rx = .5;
			var bM = H.Ai.lI;
			if (F == "Mxm ") bM = H.Ai.Rl;
			if (F == "Mnm ") bM = H.Ai.sH;
			var A = P.rect.Z,
				Z = P.rect.h,
				d5 = {
					"Mdn ": 0,
					"Mxm ": 1,
					"Mnm ": 1,
					DstS: 2
				} [F];
			bv.$z(P.buffer, y.buffer, A, Z, hV, bM, [], d5);
			if (F == "DstS") {
				var eb = o.Thsh.v;
				for (var w = 0; w < A * Z * 4; w++) {
					var ir = Math.abs(P.buffer[w] - y.buffer[w]);
					if (ir <= eb) y.buffer[w] = P.buffer[w]
				}
			}
		}
		if (F == "ClrH") {
			var aX = P.rect.clone();
			aX.x = aX.y = 0;
			var hV = o.Rds.v;
			hV = Math.round(hV * Math.sqrt(2));
			var A = aX.Z,
				Z = aX.h,
				fQ = new H._B(A * Z);
			H.Ae(P.buffer, fQ);
			H.nJ(fQ.U);
			H.nJ(fQ.S);
			H.nJ(fQ.i);
			var f$ = i.z("canvas", "");
			f$.width = A;
			f$.height = Z;
			var eU = f$.getContext("2d"),
				g4 = H.R(A * Z * 4);
			for (var bw = 0; bw < 3; bw++) {
				var T = bw == 0 ? fQ.U : bw == 1 ? fQ.S : fQ.i,
					dn = Math.PI * o["Ang" + (bw + 1)].v / 180,
					aI = new cu(1 / hV, 0, 0, 1 / hV, 0, 0);
				aI.rotate(dn);
				H.Oy(T, g4, 3);
				var fa = B.X.Z6([g4, aX], aI, !0),
					fZ = fa.rect;
				eU.clearRect(0, 0, A, Z);
				var gh = Math.sin(dn),
					c6 = Math.cos(dn);
				for (var w = 0; w < fZ.h; w++)
					for (var ad = 0; ad < fZ.Z; ad++) {
						var co = (ad + fZ.x + .5) * hV,
							bg = (w + fZ.y + .5) * hV,
							ak = co,
							eS = bg;
						co = c6 * ak - gh * eS;
						bg = gh * ak + c6 * eS;
						var D = fa.buffer[(w * fZ.Z + ad << 2) + 3] * (1 / 255),
							aJ = hV * Math.sqrt(D * (1 / Math.PI));
						eU.beginPath();
						eU.arc(co, bg, aJ, 0, 2 * Math.PI);
						eU.fill()
					}
				var cI = eU.getImageData(0, 0, A, Z);
				H.E4(cI.data, T, 3)
			}
			H.nJ(fQ.U);
			H.nJ(fQ.S);
			H.nJ(fQ.i);
			H.sA(fQ, y.buffer)
		}
		if (F == "Crst" || F == "Pntl") {
			var A = P.rect.Z,
				Z = P.rect.h,
				bM = F == "Crst" ? H.QN.a9g : H.QN.ace;
			bM(P.buffer, A, Z, y.buffer, o.ClSz.v, [Math.round(Y.U), Math.round(Y.S), Math.round(Y.i)])
		}
		if (F == "Mztn") {
			var A = P.rect.Z,
				Z = P.rect.h,
				D = A * Z,
				fQ = new H._B(D),
				de = [fQ.U, fQ.S, fQ.i];
			H.Ae(P.buffer, fQ);
			var h_ = o.MztT.v.MztT,
				a6 = {
					FnDt: [.1, 0, .3, 1.4],
					MdmD: [.9, 0, .1, 1.4],
					GrnD: [3, 0, .2, 1.4],
					CrsD: [7, 0, .1, 1.4],
					ShrL: [0, 10, .16, 3],
					MdmL: [0, 22, .06, 3],
					LngL: [0, 25, .01, 4.5],
					ShSt: [3, 10, .05, 4.4],
					MdmS: [4, 25, .15, 4],
					LngS: [4, 30, .05, 4]
				} [h_],
				g7 = Date.now(),
				cn = [];
			for (var w = 0; w < D; w++) {
				cn[w] = Math.random()
			}
			var D = A * Z,
				h5 = Math.round(D * a6[0]),
				cw = D - A - 1;
			for (var w = 0; w < h5; w++) {
				var cL = Math.random(),
					db = 1;
				if (cL < .5) {
					db = A;
					cL *= 2
				} else cL = 2 * (cL - .5);
				var dq = Math.floor(cL * cw),
					dp = dq + db;
				cn[dq] = cn[dp]
			}
			var aP = Math.round(A * a6[1]);
			for (var bg = 0; bg < Z; bg++)
				for (var w = 0; w < aP; w++) {
					var cL = H.N.kY(bg * D + w),
						dq = bg * A + Math.floor(cL * (A - 1));
					cn[dq] = cn[dq + 1]
				}
			var g8 = new Float64Array(256);
			for (var w = 0; w < 256; w++) {
				var f3 = w / 255,
					cT = 2 * (f3 < .5 ? f3 : 1 - f3);
				cT = a6[2] + Math.pow(cT, a6[3]) * (1 - a6[2]);
				f3 = f3 < .5 ? cT * .5 : 1 - cT * .5;
				g8[w] = f3
			}
			for (var hj = 0; hj < 3; hj++) {
				var T = de[hj];
				for (var bg = 0; bg < Z; bg++) {
					for (var co = 0; co < A; co++) {
						var w = bg * A + co,
							a3 = T[w],
							f3 = g8[a3],
							cL = cn[w];
						T[w] = cL > f3 ? 0 : 255
					}
				}
			}
			H.sA(fQ, y.buffer)
		}
		if (F == "Msc ") {
			var c0 = o.ClSz.v.val,
				A = P.rect.Z,
				Z = P.rect.h,
				by = Math.ceil(A / c0),
				gx = Math.ceil(Z / c0),
				ik = H.R(by * gx * 4);
			H.scale.sI(P.buffer, A, Z, ik, by, gx, 1 / c0);
			H.scale.sI(ik, by, gx, y.buffer, A, Z, c0)
		}
		if (F == "Clds" || F == "DfrC") {
			if (F == "Clds") H.XB(y.buffer, 4278190080);
			var bs = H.R(256 * 4);
			for (var w = 0; w < 256; w++) {
				var ga = w << 2,
					fI = w / 255,
					bq = 1 - fI;
				bs[ga] = Math.round(fI * X.U + bq * Y.U);
				bs[ga + 1] = Math.round(fI * X.S + bq * Y.S);
				bs[ga + 2] = Math.round(fI * X.i + bq * Y.i)
			}
			var A = y.rect.Z,
				Z = y.rect.h,
				D = A * Z,
				hS = H.R(D);
			noise.seed(Math.random());
			for (var bg = 0; bg < Z; bg++)
				for (var co = 0; co < A; co++) {
					var dE = 0,
						eB = 1,
						cx = 1;
					for (var w = 0; w < 8; w++) {
						var bN = cx * (1 / 170);
						dE += noise.perlin2(co * bN, bg * bN) * eB;
						eB *= .5;
						cx = cx << 1
					}
					hS[bg * A + co] = Math.round(Math.max(0, 255 * Math.min(1, .5 + .7 * dE * .5)))
				}
			var cy = y.buffer;
			for (var w = 0; w < D; w++) {
				var ga = w << 2,
					hj = hS[w] << 2,
					hV = bs[hj],
					dU = bs[hj + 1],
					hK = bs[hj + 2];
				if (F == "Clds") {
					cy[ga] = hV;
					cy[ga + 1] = dU;
					cy[ga + 2] = hK
				} else {
					cy[ga] = Math.abs(cy[4 * w] - hV);
					cy[ga + 1] = Math.abs(cy[4 * w + 1] - dU);
					cy[ga + 2] = Math.abs(cy[4 * w + 2] - hK)
				}
			}
		}
		if (F == "LnsF") {
			var A = P.rect.Z,
				Z = P.rect.h,
				h_ = ["Zm", "Nkn", "Nkn1", "PnVs"].indexOf(o.Lns.v.Lns),
				ac = o.FlrC.v,
				fk = [Math.min(h_, 2), o.Brgh.v / 100, ac.Hrzn.v, ac.Vrtc.v],
				g7 = Date.now();
			H.ajA(P.buffer, A, Z, y.buffer, fk)
		}
		if (F == "Blr " || F == "BlrM" || F == "Shrp" || F == "ShrM") {
			var A = P.rect.Z,
				Z = P.rect.h,
				fc;
			if (F == "Blr ") fc = [1, 2, 1, 2, 16, 2, 1, 2, 1];
			else if (F == "BlrM") fc = [1, 2, 1, 2, 4, 2, 1, 2, 1];
			else if (F == "Shrp") fc = [0, -1, 0, -1, 8, -1, 0, -1, 0];
			else fc = [-.7, -1, -.7, -1, 10, -1, -.7, -1, -.7];
			fc = H.Ai.h5(fc);
			var gv = P.buffer.slice(0);
			H.l7(gv);
			H.Ai.or(gv, y.buffer, A, Z, fc, F == "Shrp" || F == "ShrM" ? 0 : 255);
			if (F == "Shrp" || F == "ShrM") H.hc(y.buffer);
			H.gl(y.buffer)
		}
		if (F == "MtnB") {
			var dX = -o.Angl.v * Math.PI / 180,
				e4 = o.Dstn.v.val / 2,
				g7 = Date.now(),
				A = P.rect.Z,
				Z = P.rect.h,
				v = P.rect.clone();
			v.x = v.y = 0;
			if (k.pQ) {
				var g7 = Date.now(),
					d2 = y.buffer;
				d2.set(P.buffer);
				H.l7(d2);
				var g9 = k.Wb(0, A, Z);
				g9.set(d2);
				var fd = H.R(4);
				fd[0] = Math.round(128 + 127 * Math.cos(dX));
				fd[1] = Math.round(128 + 127 * Math.sin(dX));
				new Uint32Array(d2.buffer).fill(new Uint32Array(fd.buffer)[0]);
				var bf = k.Wb(1, A, Z);
				bf.set(d2);
				k.k1(g9, v);
				g9.ke(v);
				k.filter.WD({
					type: k.filter.Zi,
					B9: bf.g3,
					I1: new Float32Array([1 / A, 1 / Z]),
					sC: e4 / 2,
					R5: 1
				}, g9.z2);
				g9.get(d2);
				H.gl(d2)
			} else {
				var aI = new cu;
				aI.rotate(dX);
				var fa = B.X.Z6([P.buffer, P.rect], aI, !1, null, !0);
				bv.ep(e4, H.ni.Zb, fa.buffer, fa.rect);
				aI.nJ();
				fa = B.X.Z6([fa.buffer, fa.rect], aI, !1, y.buffer.buffer, !0, y.rect)
			}
			console.log(Date.now() - g7)
		}
		if (F == "RdlB") {
			var A = P.rect.Z,
				Z = P.rect.h,
				cG = o.Amnt.v,
				dY = o.BlrM.v.BlrM == "Zm",
				bw = o.Cntr.v,
				e_ = bw.Hrzn.v,
				ie = bw.Vrtc.v,
				fM = Math.max(e_, 1 - e_) * A,
				bb = Math.max(ie, 1 - ie) * Z,
				aJ = Math.sqrt(fM * fM + bb * bb),
				fG = 2 * Math.PI * aJ * 1.5,
				cP = Math.round(fG),
				er = Math.round(aJ),
				aX = new ev(0, 0, cP, er),
				dg = H.R(cP * er * 4),
				eP = dY ? 4 : 1,
				eO = dY ? .6 : 8 * ((A + Z) / 2) / 1400,
				eL = .1,
				bN = 1,
				bo = 1;
			H.P.x$(P.buffer, A, Z, dg, cP, er, e_, ie, eP, eL, bN, bo);
			var hQ = dY ? H.R(cP * er * 4) : null;
			if (dY) {
				H.P.yT(dg, hQ, cP, er);
				var bA = hQ;
				hQ = dg;
				dg = bA;
				aX.Z = er;
				aX.h = cP
			}
			bv.ep(eO * cG, H.ni.Zb, dg, aX);
			if (dY) {
				H.P.yT(dg, hQ, er, cP);
				var bA = hQ;
				hQ = dg;
				dg = bA;
				aX.Z = cP;
				aX.h = er
			}
			H.P.A9(dg, cP, er, y.buffer, A, Z, e_, ie, eP, eL, bN, bo)
		}
		if (F == "Plr ") {
			var A = P.rect.Z,
				Z = P.rect.h;
			if (o.Cnvr.v.Cnvr == "RctP") H.P.A9(P.buffer, A, Z, y.buffer, A, Z, .5, .5, 1, 0, 2, A / Z);
			else H.P.x$(P.buffer, A, Z, y.buffer, A, Z, .5, .5, 1, 0, 2, A / Z)
		}
		if (F == "FndE") {
			var A = P.rect.Z,
				Z = P.rect.h;
			bv.MG(P.buffer, y.buffer, A, Z)
		}
		if (F == "oilPaint") {
			var dn = o.LghD.v * Math.PI / 180,
				gw = [Math.cos(dn), Math.sin(dn), .001],
				he = [o.stylization.v, o.cleanliness.v, o.brushScale.v, o.microBrush.v, o.lightingOn.v, o.specularity.v, gw],
				v = P.rect.clone();
			v.x = v.y = 0;
			H.io.filter(P.buffer, v, y.buffer, he)
		}
		if (F == "Ofst") {
			var A = P.rect.Z,
				Z = P.rect.h,
				bD = new Uint32Array(P.buffer.buffer),
				hH = new Uint32Array(y.buffer.buffer),
				ak = o.Hrzn.v,
				eS = o.Vrtc.v,
				gC = o.Fl.v.FlMd;
			H.XB(hH, 0);
			if (gC == "Bckg" || gC == "Rpt") {
				var aX = P.rect.clone();
				aX.offset(ak, eS);
				H.BP(bD, aX, hH, y.rect)
			}
			if (gC == "Rpt") {
				var O, K, j, $, ab;
				ak = Math.max(-A, Math.min(A, ak));
				eS = Math.max(-Z, Math.min(Z, eS));
				O = ak > 0 ? ak : 0;
				j = ak > 0 ? A : A + ak;
				K = eS > 0 ? 0 : eS + Z;
				$ = eS > 0 ? eS : Z;
				ab = eS > 0 ? 0 : A * (Z - 1);
				for (var bg = K; bg < $; bg++)
					for (var co = O; co < j; co++) hH[bg * A + co] = bD[ab + co - ak];
				O = ak > 0 ? 0 : A + ak;
				j = ak > 0 ? ak : A;
				K = eS > 0 ? eS : 0;
				$ = eS > 0 ? Z : Z + eS;
				ab = ak > 0 ? 0 : A - 1;
				for (var bg = K; bg < $; bg++)
					for (var co = O; co < j; co++) hH[bg * A + co] = bD[ab + A * (bg - eS)];
				if (ak >= 0 && eS >= 0) {
					O = 0;
					j = ak;
					K = 0;
					$ = eS;
					ab = 0
				}
				if (ak >= 0 && eS < 0) {
					O = 0;
					j = ak;
					K = Z + eS;
					$ = Z;
					ab = A * (Z - 1)
				}
				if (ak < 0 && eS >= 0) {
					O = A + ak;
					j = A;
					K = 0;
					$ = eS;
					ab = A - 1
				}
				if (ak < 0 && eS < 0) {
					O = A + ak;
					j = A;
					K = Z + eS;
					$ = Z;
					ab = A * Z - 1
				}
				for (var bg = K; bg < $; bg++)
					for (var co = O; co < j; co++) hH[bg * A + co] = bD[ab]
			}
			if (gC == "Wrp") {
				ak = (ak + 100 * A) % A;
				eS = (eS + 100 * Z) % Z;
				var aX = new ev(ak - A, eS - Z, A, Z);
				H.BP(bD, aX, hH, y.rect);
				aX.offset(A, 0);
				H.BP(bD, aX, hH, y.rect);
				aX.offset(0, Z);
				H.BP(bD, aX, hH, y.rect);
				aX.offset(-A, 0);
				H.BP(bD, aX, hH, y.rect)
			}
		}
		if (F == "Rept") {
			var eK = o.Rsft.v.val / 100,
				ag = o.SpcX.v.val / 100;
			ag = Math.max(ag, -.99);
			var d6 = o.SpcY.v.val / 100;
			d6 = Math.max(d6, -.99);
			var bN = o.Scl.v.val / 100,
				aI = new cu;
			aI.rotate(o.Angl.v * Math.PI / 180);
			aI.scale(bN, bN);
			var hI = {
				buffer: P.buffer,
				rect: P.rect
			};
			H.mn(hI);
			if (hI.rect.qr()) {
				hI.buffer = P.buffer;
				hI.rect = P.rect
			}
			var cy = hI.buffer,
				aX = hI.rect,
				ew = H.cR(cy, aX, 0),
				eF = new Uint32Array(cy.buffer)[0];
			if (!ew.qr() && !ew.Qn(aX)) {
				var eX = H.R(ew.M() * 4);
				H.BP(cy, aX, eX, ew);
				cy = eX;
				aX = ew
			}
			aX.x = aX.y = 0;
			eF = ag == 0 && d6 == 0 || o.SpcC.v ? eF : 0;

			function gD(co) {
				return co < 0 ? Math.ceil(co) : Math.floor(co)
			}
			var hd = aI.aT(new aH(aX.Z, 0));
			hd.x = gD(hd.x);
			hd.y = gD(hd.y);
			var dF = aI.aT(new aH(0, aX.h));
			dF.x = gD(dF.x);
			dF.y = gD(dF.y);
			var fa = B.X.Z6([cy, aX], aI, !1),
				fZ = fa.rect,
				dJ = fa.buffer,
				gE = Math.round(fZ.x),
				aG = Math.round(fZ.y),
				cm = Math.max(y.rect.Z, y.rect.h) / Math.min(aX.Z * bN * (1 + ag), aX.h * bN * (1 + d6));
			cm = Math.ceil(cm * 1.7);
			H.XB(y.buffer, eF);
			for (var bg = -cm; bg < cm; bg++) {
				for (var co = -cm; co < cm; co++) {
					var gb = (co + bg * eK) * (1 + ag),
						bL = bg * (1 + d6);
					fZ.x = gE + Math.round(gb * hd.x + bL * dF.x);
					fZ.y = aG + Math.round(gb * hd.y + bL * dF.y);
					if (fZ.dg(y.rect)) H.N.DO("norm", dJ, fZ, y.buffer, y.rect, fZ, 1)
				}
			}
		}
		if (F == "Ctoa") {
			var Y = H.j.T6(o.Clr.v),
				eb = o.Trsp.v.val / 100,
				eQ = o.Opct.v.val / 100;
			eb = eQ == 0 ? 0 : eb / eQ;
			var A = P.rect.Z,
				Z = P.rect.h,
				bn = ~~Y.U,
				an = ~~Y.S,
				hu = ~~Y.i,
				ab = P.buffer,
				eJ = y.buffer;
			for (var bg = 0; bg < Z; bg++)
				for (var co = 0; co < A; co++) {
					var w = bg * A + co,
						ga = w << 2,
						aX = ab[ga],
						dZ = ab[ga + 1],
						cy = ab[ga + 2],
						hN = Math.abs(bn - aX),
						eR = Math.abs(an - dZ),
						dP = Math.abs(hu - cy),
						eM = Math.max(hN, eR, dP) * (1 / 255);
					eM = Math.max(0, Math.min(1, eM / eQ));
					var gU = eM == 0 ? 0 : 1 / eM,
						ip = eb == 1 ? 1 : Math.max(0, Math.min(1, (eM - eb) / (1 - eb)));
					eJ[ga] = Math.max(0, Math.min(255, (aX - bn * (1 - eM)) * gU));
					eJ[ga + 1] = Math.max(0, Math.min(255, (dZ - an * (1 - eM)) * gU));
					eJ[ga + 2] = Math.max(0, Math.min(255, (cy - hu * (1 - eM)) * gU));
					eJ[ga + 3] = ~~(.5 + ip * 255)
				}
		}
		if ("LqFy,Dspl,Pnch,Sphr,Twrl,Rple,Shr ,Wave,LnCr".split(",").indexOf(F) != -1) {
			var cE = z[0],
				A = P.rect.Z,
				Z = P.rect.h,
				g8, bR = 0;
			if (F == "LqFy") g8 = h7.ee(new Uint8Array(o.LqMe.v).buffer);
			else {
				var gi = F == "Dspl" ? 1 : 3;
				g8 = {
					YY: Math.floor(A / gi),
					mi: Math.floor(Z / gi)
				};
				g8.map = new Float32Array(g8.YY * g8.mi * 2);
				if (F == "LnCr") {
					var e_ = .5 * (g8.YY - 1),
						ie = .5 * (g8.mi - 1),
						fJ = Math.max(Math.abs(0 - e_), Math.abs(1 - e_)),
						a7 = Math.max(Math.abs(0 - ie), Math.abs(1 - ie)),
						eW = Math.sqrt(fJ * fJ + a7 * a7),
						fj = 0,
						h2 = 0,
						dG = -1,
						i6 = 2,
						bN = o.LnSi.v / 100,
						dY = 1 / bN,
						f9 = o.LnIa.v / 100,
						ek = f9 == 0 ? 1e-6 : f9 * 4.6,
						aZ = dY / eW;
					for (var bg = 0; bg < g8.mi; bg++) {
						for (var co = 0; co < g8.YY; co++) {
							var fM = (co - e_) * aZ,
								bb = (bg - ie) * aZ,
								hV = Math.sqrt(fM * fM + bb * bb) * ek,
								gI = Math.atan(hV),
								bI = f9 > 0 ? gI / hV : hV / gI,
								bo = e_ + eW * bI * fM,
								dD = ie + eW * bI * bb,
								w = bg * g8.YY + co << 1;
							g8.map[w] = bo - co;
							g8.map[w + 1] = dD - bg
						}
					}
				} else if (F == "Dspl" && cE.length != 0) {
					bR = o.UndA.v.UndA == "WrpA" ? 2 : 1;
					var hq = o.DspF.v.pth,
						g6;
					for (var w = 0; w < cE.length; w++)
						if (cE[w].Za == hq) g6 = cE[w];
					if (g6 == null) g6 = cE[0];
					g6.lD();
					var hN = g6.DW[1],
						aT = H.R(hN.M());
					H.np(g6.DW[0], aT);
					var dm = hN.Z,
						h8 = 2 * o.HrzS.v / gi,
						b6 = 2 * o.VrtS.v / gi;
					for (var bg = 0; bg < g8.mi; bg++) {
						for (var co = 0; co < g8.YY; co++) {
							var fJ = Math.floor(hN.Z * co / g8.YY),
								a7 = Math.floor(hN.h * bg / g8.mi),
								fM = bb = -.5 + aT[a7 * dm + fJ] / 255,
								w = bg * g8.YY + co << 1;
							g8.map[w] = fM * h8;
							g8.map[w + 1] = bb * b6
						}
					}
				} else if (F == "Pnch" || F == "Twrl" || F == "Sphr") {
					var cG = 1,
						dX = Math.PI,
						dk = 0,
						bw = 3,
						c0 = 1.53,
						bI = 1;
					if (F == "Pnch" || F == "Sphr") cG = o.Amnt.v / 100;
					if (F == "Twrl") dX = o.Angl.v * Math.PI / 180;
					if (F == "Sphr") dk = ["Nrml", "HrzO", "VrtO"].indexOf(o.SphM.v.SphM);

					function bM(co) {
						co = Math.pow(co, 1 - co * .3 - co * co * (co * co) * .5);
						return -.225 * Math.sin(co * Math.PI)
					}

					function gP(Z, fi, hV, O, K, j, $, bI) {
						var fM = j - O,
							bb = $ - K,
							fL = O - Z,
							aU = K - fi,
							fI = fM * fM + bb * bb,
							hK = 2 * (fM * fL + bb * aU),
							bw = fL * fL + aU * aU - hV * hV,
							dN = Math.sqrt(hK * hK - 4 * fI * bw),
							c4 = bI / (2 * fI),
							cc = (-hK + dN) * c4,
							cQ = (-hK - dN) * c4;
						return bI * Math.min(cc, cQ)
					}
					var by = g8.YY,
						gx = g8.mi,
						fC = g8.YY / 2,
						fu = g8.mi / 2,
						fS = 1 / fC,
						hV = Math.sqrt(bw * bw + 1) / bw,
						ij = bw + Math.sqrt(1 / (bw * bw));
					if (cG < 0) {
						bw = 1.72;
						hV = 1;
						ij = bw;
						c0 = -1;
						bI = -1
					}
					for (var bg = 0; bg < gx; bg++) {
						var bb = (bg - fu) / fu;
						for (var co = 0; co < by; co++) {
							var fM = (co - fC) * fS;
							if (dk == 1) bb = 0;
							else if (dk == 2) fM = 0;
							var hC = Math.sqrt(fM * fM + bb * bb);
							if (hC < 1 && hC != 0) {
								var w = bg * g8.YY + co << 1;
								if (F == "Pnch") {
									var eG = -cG * bM(hC) / hC;
									g8.map[w] = fM * eG * fC;
									g8.map[w + 1] = bb * eG * fu
								} else if (F == "Sphr") {
									var bA = gP(0, ij, hV, 0, 0, hC, bw, bI),
										aR = c0 * cG * (bA - 1);
									g8.map[w] = fM * aR * fC;
									g8.map[w + 1] = bb * aR * fu
								} else if (F == "Twrl") {
									var dn = Math.atan2(bb, fM) - dX * (1 - hC) * (1 - hC),
										ep = Math.cos(dn),
										h$ = Math.sin(dn);
									g8.map[w] = (hC * ep - fM) * fC;
									g8.map[w + 1] = (hC * h$ - bb) * fu
								}
							}
						}
					}
				} else if (F == "Shr ") {
					var e6 = JSON.parse(JSON.stringify(o.ShrP.v));
					H.JH.O(e6, new cu(0, 255 / 127, 255 / 127, 0, -2, 0));
					var aS = H.JH.QV(e6, g8.mi, !0);
					bR = o.UndA.v.UndA == "WrpA" ? 2 : 1;
					for (var bg = 0; bg < g8.mi; bg++) {
						var fM = -aS[bg] * g8.YY;
						for (var co = 0; co < g8.YY; co++) {
							var w = bg * g8.YY + co << 1;
							g8.map[w] = fM
						}
					}
				} else if (F == "Wave") {
					var hJ = o.NmbG.v,
						cJ = o.WLMn.v,
						ee = o.WLMx.v,
						aA = o.AmMn.v * (Math.PI / 4),
						et = o.AmMx.v * (Math.PI / 4),
						cV = o.SclH.v / 100,
						f7 = o.SclV.v / 100,
						h_ = o.Wvtp.v.Wvtp,
						b4 = Math.sin;
					if (h_ == "WvTr") b4 = function (co) {
						co *= 2 / Math.PI;
						return -.5 + Math.abs(co % 2 - 1)
					};
					if (h_ == "WvSq") b4 = function (co) {
						co *= 2 / Math.PI;
						return 1 + 2 * Math.floor(co % 2 - 1)
					};
					var ig = [],
						d3 = new H.N.Df(o.RndS.v);
					for (var w = 0; w < hJ; w++) {
						ig.push(d3.get() * 10);
						ig.push(Math.PI * gi / (cJ + d3.get() * (ee - cJ)));
						ig.push(cV * (aA + d3.get() * (et - aA)) / gi);
						ig.push(d3.get() * 10);
						ig.push(Math.PI * gi / (cJ + d3.get() * (ee - cJ)));
						ig.push(f7 * (aA + d3.get() * (et - aA)) / gi)
					}
					var iq = [],
						ch = [],
						dS = Math.max(g8.YY, g8.mi);
					for (var w = 0; w < dS; w++) {
						var fM = 0,
							bb = 0;
						for (var ad = 0; ad < hJ; ad++) {
							var hW = ad * 6;
							fM += ig[hW + 2] * b4(ig[hW] + w * ig[hW + 1]);
							bb += ig[hW + 5] * b4(ig[hW + 3] + w * ig[hW + 4])
						}
						iq[w] = bb;
						ch[w] = fM
					}
					for (var bg = 0; bg < g8.mi; bg++) {
						for (var co = 0; co < g8.YY; co++) {
							var w = bg * g8.YY + co << 1;
							g8.map[w] = ch[bg];
							g8.map[w + 1] = iq[co]
						}
					}
					bR = o.UndA.v.UndA == "WrpA" ? 2 : 1
				} else if (F == "Rple") {
					bR = 1;
					var cG = o.Amnt.v / 100,
						ay = 4,
						g2 = [0, -.19, -.29, -.32, .92, .37, .93, .54, -.54, .42, -.29, -.58, -.67, .85, 0, .64],
						dr = 1,
						d4 = 1,
						fL = 0,
						hy = ["Sml", "Mdm", "Lrg"].indexOf(o.RplS.v.RplS);
					if (hy == 0) {
						dr = 1;
						d4 = .2;
						fL = 3
					}
					if (hy == 2) {
						dr = 1;
						d4 = 2;
						fL = -1;
						g2 = g2.reverse()
					}
					var ax = function (co, bg) {
							var bw = Math.cos,
								dE = 0;
							for (var w = 0; w < ay; w++)
								for (var ad = 0; ad < ay; ad++) dE += g2[w * ay + ad] * bw(co * (w + fL) - bg * (ad + fL));
							return dE
						},
						cW = Math.floor(50 / gi),
						di = new Float32Array(cW * cW * 2),
						fl = d4 * cG * .5 / gi;
					for (var bg = 0; bg < cW; bg++)
						for (var co = 0; co < cW; co++) {
							var e_ = dr * co * 2 * Math.PI / cW,
								ie = dr * bg * 2 * Math.PI / cW,
								hO = ax(e_, ie),
								fM = (ax(e_ + .01, ie) - hO) * 100,
								bb = (ax(e_, ie + .01) - hO) * 100,
								w = (bg * cW + co) * 2;
							di[w] = fM * fl;
							di[w + 1] = bb * fl
						}
					for (var bg = 0; bg < g8.mi; bg++)
						for (var co = 0; co < g8.YY; co++) {
							var h$ = bg % cW,
								ep = co % cW,
								w = bg * g8.YY + co << 1,
								gu = h$ * cW + ep << 1;
							g8.map[w] = di[gu];
							g8.map[w + 1] = di[gu + 1]
						}
				}
			}
			H.SX.ka(P.buffer, y.buffer, A, Z, null, g8.map, g8.YY, g8.mi, bR)
		}
		return y
	};
	var fK = {};
	fK.y7 = "BrSm BrsL BrDR BrsW BrbW BrSp".split(" ");
	fK.Ok = "LDBt LDBL LDLf LDTL LDTp LDTR LDRg LDBR".split(" ");
	fK.ya = ["ScrC", "ScrD", "ScrL"];
	fK.ts = ["SDRD", "SDHz", "SDLD", "SDVt"];
	fK.l6 = {
		PntD: "paintDaubs"
	};
	fK.names = {
		PntD: "Paint Daubs",
		Spt: "Spatter",
		SprS: "Sprayed Strokes",
		BsRl: "Bas Relief",
		HlfS: "Halftone Pattern",
		GlwE: "Glowing Edges",
		StnG: "Stained Glass"
	};
	fK.tt = function (F) {
		var P;
		if (F == "PntD") P = {
			Sz: {
				t: "long",
				v: 10
			},
			Shrp: {
				t: "long",
				v: 10
			},
			BrsT: {
				t: "enum",
				v: {
					BrsT: "BrSm"
				}
			}
		};
		if (F == "Spt") P = {
			SprR: {
				t: "long",
				v: 10
			},
			Smth: {
				t: "long",
				v: 5
			},
			FlRs: {
				t: "long",
				v: 10738420
			}
		};
		if (F == "SprS") P = {
			StrL: {
				t: "long",
				v: 12
			},
			SprR: {
				t: "long",
				v: 7
			},
			SDir: {
				t: "enum",
				v: {
					StrD: "SDRD"
				}
			},
			FlRs: {
				t: "long",
				v: 893120664
			}
		};
		if (F == "BsRl") P = {
			Dtl: {
				t: "long",
				v: 11
			},
			Smth: {
				t: "long",
				v: 7
			},
			LghD: {
				t: "enum",
				v: {
					LghD: "LDBt"
				}
			}
		};
		if (F == "HlfS") P = {
			HlSz: {
				t: "long",
				v: 1
			},
			Cntr: {
				t: "long",
				v: 5
			},
			ScrT: {
				t: "enum",
				v: {
					ScrT: "ScrD"
				}
			}
		};
		if (F == "GlwE") P = {
			EdgW: {
				t: "long",
				v: 1
			},
			EdgB: {
				t: "long",
				v: 10
			},
			Smth: {
				t: "long",
				v: 1
			}
		};
		if (F == "StnG") P = {
			ClSz: {
				t: "long",
				v: 10
			},
			BrdT: {
				t: "long",
				v: 4
			},
			LghI: {
				t: "long",
				v: 0
			},
			FlRs: {
				t: "long",
				v: 319935998
			}
		};
		P.__name = "Filter Gallery";
		P.classID = "GEfc";
		P.GEfk = {
			t: "enum",
			v: {
				GEft: F
			}
		};
		P.GELv = {
			t: "bool",
			v: !0
		};
		return P
	};
	fK.t5 = function (F, P, o, X, Y, y, z) {
		F = o.GEfk.v.GEft;
		var s = P.rect.Z,
			t = P.rect.h;
		if (F == "Spt" || F == "SprS") {
			var s = P.rect.Z,
				t = P.rect.h,
				d, U = 1,
				v = 1;
			d = {
				YY: Math.floor(s / v),
				mi: Math.floor(t / v)
			};
			d.map = new Float32Array(d.YY * d.mi * 2);
			var A = new H.N.Df(o.FlRs.v),
				Z = new Float32Array(8192),
				D = o.SprR.v,
				q = D < 20 ? .018 * D : .36 + (D - 20) * .128;
			if (F == "SprS") {
				q = .07 + [0, .02, .04, .06, .08, .1, .12, .14, .16, .18, .2, .22, .24, .26, .28, .3, .34, .38, .5, .65, .75, .85, 1, 1.5, 2.2, 3][D]
			}
			for (var w = 0; w < 8192; w++) Z[w] = (-1 + 2 * A.get()) * q * 70;
			for (var R = 0; R < t; R++)
				for (var J = 0; J < s; J++) {
					var W = R * s + J << 1;
					d.map[W] = Z[W % 7919];
					d.map[W + 1] = Z[(W + 1) % 7919]
				}
			var p = d.map.slice(0),
				n = F == "Spt" ? o.Smth.v - 1 : 1;
			if (F == "Spt" && n != 0) {
				fK.Ui(d.map, p, s, t, n);
				fK.IZ(p, d.map, s, t, n)
			}
			if (F == "SprS") {
				var b = o.StrL.v >>> 1,
					Q = b == 0 ? 2 : 1;
				fK.Ui(d.map, p, s, t, Q);
				fK.IZ(p, d.map, s, t, Q);
				if (b != 0) {
					var _ = fK.ts.indexOf(o.SDir.v.StrD),
						L = [1, 1, 1, 0][_],
						m = [-1, 0, 1, 1][_],
						I = 2 * b + 1,
						c = 1 / I;
					for (var R = 0; R < t; R++)
						for (var J = 0; J < s; J++) {
							var W = R * s + J << 1,
								u = 0,
								a = 0;
							for (var w = 0; w < I; w++) {
								var N = Math.max(0, Math.min(s - 1, J - (b + w) * L)),
									V = Math.max(0, Math.min(t - 1, R - (b + w) * m)),
									M = V * s + N << 1;
								u += d.map[M];
								a += d.map[M + 1]
							}
							p[W] = u * c;
							p[W + 1] = a * c
						}
					d.map = p
				}
			}
			H.SX.ka(P.buffer, y.buffer, s, t, null, d.map, d.YY, d.mi, U)
		}
		if (F == "BsRl") {
			var O = P.rect.M(),
				K = H.R(O),
				j = K.slice(0);
			H.np(P.buffer, K);
			var $ = o.Dtl.v,
				x = o.Smth.v;
			if ($ != 15) {
				H.ni.et(K, j, P.rect, Math.round((15 - $) * .5));
				H.Hk(j, K)
			}
			var g = 2 / s,
				T = 2 / t,
				E = (2 + fK.Ok.indexOf(o.LghD.v.LghD)) * Math.PI * .25,
				u = Math.cos(E);
			if (Math.abs(u) < .1) u = 0;
			u = Math.sign(u);
			var a = Math.sin(E);
			if (Math.abs(a) < .1) a = 0;
			a = Math.sign(a);
			var a9 = 1 / (u * u + a * a);
			for (var R = 0; R < t; R++)
				for (var J = 0; J < s; J++) {
					var w = R * s + J,
						L = J == s - 1 ? K[w] - K[w - 1] : K[w + 1] - K[w],
						m = R == t - 1 ? K[w] - K[w - s] : K[w + s] - K[w],
						ez = J * g - 1,
						bN = R * T - 1,
						cg = L == 0 ? ez : L * .4;
					cg = Math.max(-1, Math.min(1, u * cg));
					var d8 = m == 0 ? bN : m * .4;
					d8 = Math.max(-1, Math.min(1, a * d8));
					j[w] = 128 + 127 * (cg + d8) * a9
				}
			if (x != 1) {
				H.ni.et(j, K, P.rect, Math.round((x - 1) * .5));
				H.Hk(K, j)
			}
			H.Sv(j, y.buffer)
		}
		if (F == "PlsW__") {
			var O = P.rect.M(),
				K = H.R(O),
				j = K.slice(0);
			H.np(P.buffer, K);
			var $ = o.Dtl.v,
				x = o.Smth.v;
			if ($ != 15) {
				H.ni.et(K, j, P.rect, Math.round((15 - $) * .5));
				H.Hk(j, K)
			}
			for (var R = 0; R < t; R++)
				for (var J = 0; J < s; J++) {
					var w = R * s + J,
						L = J == s - 1 ? K[w] - K[w - 1] : K[w + 1] - K[w],
						m = R == t - 1 ? K[w] - K[w - s] : K[w + s] - K[w],
						C = L * L + m * m;
					j[w] = Math.max(0, 255 - C * 190)
				}
			var S = new Float32Array(O);
			for (var w = 0; w < O; w++) S[w] = j[w];
			if (x != 1) {
				H.ni.d$(S.slice(0), S, P.rect, Math.round((x - 1) * .2))
			}
			for (var R = 0; R < t; R++)
				for (var J = 0; J < s; J++) {
					var w = R * s + J,
						g7 = w << 2,
						g_ = S[w],
						fw = y.buffer[g7],
						dT = y.buffer[g7 + 1],
						g4 = y.buffer[g7 + 2],
						L = J == s - 1 ? g_ - S[w - 1] : S[w + 1] - g_,
						m = R == t - 1 ? g_ - S[w - s] : S[w + s] - g_,
						bB = -1,
						d1 = 1,
						f_ = 0,
						g$ = L,
						eT = 0,
						dz = 1,
						i4 = m,
						cF = 1;
					L = f_ * i4 - g$ * dz;
					m = g$ * eT - d1 * i4;
					bB = d1 * dz - f_ * eT;
					var fy = 1 / Math.sqrt(L * L + m * m + bB * bB);
					L *= fy;
					m *= fy;
					bB *= fy;
					var cN = J - s / 2,
						fP = R - t / 2,
						du = s * .3,
						fy = 1 / Math.sqrt(cN * cN + fP * fP + du * du);
					cN *= fy;
					fP *= fy;
					du *= fy;
					var ea = Math.max(0, cN * L + fP * m + du * bB);
					if (ea > 1) throw ea;
					var gB = ea * 255;
					y.buffer[g7] = cF * gB + (1 - cF) * fw;
					y.buffer[g7 + 1] = cF * gB + (1 - cF) * dT;
					y.buffer[g7 + 2] = cF * gB + (1 - cF) * g4
				}
		}
		if (F == "PntD") {
			var bp = o.Shrp.v * .4,
				hf = o.BrsT.v.BrsT,
				bq = {
					BrSm: [.75],
					BrsL: [.85],
					BrDR: [.68],
					BrsW: [.75],
					BrbW: [.78],
					BrSp: [.62]
				} [hf],
				eY = Math.round(o.Sz.v * .5);
			H.Ai.Rx = bq[0];
			var f1 = H.Ai.lI;
			bv.$z(P.buffer, y.buffer, s, t, eY, f1, [], 0);
			var dh = [-.7, -1, -.7, -1, 10, -1, -.7, -1, -.7];
			dh = H.Ai.h5(dh);
			var hn = y.buffer.slice(0);
			H.Ai.or(hn, y.buffer, s, t, dh, 0);
			for (var w = 0; w < P.buffer.length; w++) {
				var e7 = y.buffer[w] - hn[w];
				y.buffer[w] = Math.max(0, Math.min(255, hn[w] + bp * e7))
			}
		}
		if (F == "GlwE") {
			var ed = y.buffer.slice(0);
			H.Ai.Rx = .5;
			var f1 = H.Ai.lI;
			bv.$z(P.buffer, ed, s, t, o.Smth.v >>> 1, f1, [], 0);
			bv.MG(ed, y.buffer, s, t);
			H.Hk(y.buffer, ed);
			H.nJ(ed);
			H.XB(ed, 4278190080, 16777215);
			bv.$z(ed, y.buffer, s, t, o.EdgW.v >>> 1, H.Ai.Rl, [], 0);
			var cF = o.EdgB.v / 10;
			for (var w = 0; w < ed.length; w++) {
				if ((w & 3) == 3) continue;
				var hP = y.buffer[w];
				y.buffer[w] = Math.max(0, Math.min(255, hP * cF))
			}
		}
		if (F == "StnG") {
			var s = P.rect.Z,
				t = P.rect.h;
			H.QN.a7P(P.buffer, s, t, y.buffer, o.ClSz.v, [Math.round(X.U), Math.round(X.S), Math.round(X.i)], o.BrdT.v)
		}
		if (F == "HlfS") {
			var ck = o.HlSz.v,
				ds = ck * 2 + 1,
				hB = o.Cntr.v,
				bd = fK.ya.indexOf(o.ScrT.v.ScrT),
				O = s * t,
				d0 = O * 4,
				d$ = H.R(O),
				ap = P.buffer,
				i7 = 0,
				ec = 0;
			for (var w = 0; w < d0; w += 4) d$[w >>> 2] = ~~(.5 + (ap[w] + ap[w + 1] + ap[w + 2]) * (1 / 3));
			var dE = d$.slice(0);
			H.ni.p8(dE, d$, P.rect, ck);
			var fv = Math.PI / ds,
				c8 = new Float64Array(s),
				u = new Float64Array(s),
				bT = new Float64Array(2 * s);
			for (var J = 0; J < s; J++) {
				var bi = (J - (s >>> 1)) * fv;
				c8[J] = bi * bi;
				u[J] = Math.cos(bi);
				var L = J << 1;
				bT[L] = Math.sin(L * (1 / 4.5));
				bT[L + 1] = Math.sin((L + 1) * (1 / 4.5))
			}
			for (var R = 0; R < t; R++) {
				var eg = (R - (t >>> 1)) * fv,
					a = Math.cos(eg),
					hZ = eg * eg;
				for (var J = 0; J < s; J++) {
					var fu = a;
					if (bd == 0) {
						var bg = .5 + Math.sqrt(c8[J] + hZ) * 4.5;
						fu = bT[~~bg]
					} else if (bd == 1) {
						fu = u[J] * a
					}
					var w = R * s + J,
						gB = d$[w] * (.75 + .25 * fu),
						co = ap[(w << 2) + 3] * (1 / 255),
						ga = Math.max(0, Math.min(255, ~~gB));
					i7 += ga * co, ec += co;
					d$[w] = ga
				}
			}
			i7 /= ec;
			var e5 = 128 + 1.26 * (i7 - 128),
				cF = .08 + .25 * Math.abs((128 - i7) / 128),
				fM = 1 + cF * hB;
			for (var w = 0; w < O; w++) {
				var gB = e5 + (d$[w] - e5) * fM;
				d$[w] = Math.max(0, Math.min(255, ~~gB))
			}
			if (hB > 46) H.round(d$);
			H.Sv(d$, y.buffer)
		}
		for (var w = 0; w < P.buffer.length; w += 4) y.buffer[w + 3] = P.buffer[w + 3]
	};
	fK.zl = function (F) {
		var P = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
			o = [0, .6, .7, .8, 1, 1.2, 1.4, 1.6, 1.8, 2, 2.2, 2.6, 3, 4, 5][F];
		for (var w = 0; w < 13; w++) {
			var X = w - 6;
			P[w] = 1 / (o * Math.sqrt(2 * Math.PI)) * Math.exp(-.5 * (X / o) * (X / o))
		}
		return P
	};
	fK.Ui = function (F, P, o, X, Y) {
		var y = fK.zl(Y),
			z = 6,
			s = 13;
		for (var t = 0; t < X; t++)
			for (var d = 0; d < o; d++) {
				var U = t * o + d << 1,
					v = 0,
					A = 0;
				for (var w = 0; w < s; w++) {
					var Z = d + w - z,
						D = Z < 0 ? 0 : Z >= o ? o - 1 : Z,
						q = (t * o + D) * 2,
						R = y[w];
					v += R * F[q];
					A += R * F[q + 1]
				}
				P[U] = v;
				P[U + 1] = A
			}
	};
	fK.IZ = function (F, P, o, X, Y) {
		var y = fK.zl(Y),
			z = 6,
			s = 13;
		for (var t = 0; t < X; t++)
			for (var d = 0; d < o; d++) {
				var U = t * o + d << 1,
					v = 0,
					A = 0;
				for (var w = 0; w < s; w++) {
					var Z = t + w - z,
						D = Z < 0 ? 0 : Z >= X ? X - 1 : Z,
						q = (D * o + d) * 2,
						R = y[w];
					v += R * F[q];
					A += R * F[q + 1]
				}
				P[U] = v;
				P[U + 1] = A
			}
	};

	function aK() {}
	aK.wp = [2, 5, 5, 7, 4, 4];
	aK.YA = "norm,diss,dark,mul ,idiv,lbrn,dkCl,lite,scrn,div ,lddg,lgCl,over,sLit,hLit,vLit,lLit,pLit,hMix,diff,smud,fsub,fdiv,hue ,sat ,colr,lum ".split(",");
	aK.zn = "Nrml Dslv Drkn Mltp CBrn linearBurn darkerColor Lghn Scrn CDdg linearDodge lighterColor Ovrl SftL HrdL vividLight linearLight pinLight hardMix Dfrn Xclu blendSubtraction blendDivide H Strt Clr Lmns".split(" ");
	aK.Zn = [
		[15, 10, 0],
		[15, 10, 1],
		[15, 10, 2],
		[15, 10, 3],
		[15, 10, 4],
		[15, 10, 5],
		[15, 10, 6],
		[15, 10, 7],
		[15, 10, 8],
		[15, 10, 9],
		[15, 10, 10],
		[15, 10, 11],
		[15, 10, 12],
		[15, 10, 13],
		[15, 10, 14],
		[15, 10, 15],
		[15, 10, 16],
		[15, 10, 17],
		[15, 10, 18],
		[15, 10, 19],
		[15, 10, 20],
		[15, 10, 21],
		[15, 10, 22],
		[15, 10, 23],
		[15, 10, 24],
		[15, 10, 25],
		[15, 10, 26]
	];
	aK.Xf = ["normal", null, "darken", "multiply", "color-burn", null, null, "lighten", "screen", "color-dodge", null, null, "overlay", "soft-light", "hard-light", null, null, null, null, "difference", "exclusion", null, null, "hue", "saturation", "color", "luminosity"];
	aK.pT = function (F) {
		if (F == "passThrough") return "pass";
		return aK.YA[aK.zn.indexOf(F)]
	};
	aK.Kl = function (F) {
		if (F == "pass") return "passThrough";
		return aK.zn[aK.YA.indexOf(F)]
	};
	aK.getName = function (F) {
		return aK.Zn[aK.YA.indexOf(F)]
	};

	function h() {
		this.rect = null;
		this.sW = "norm";
		this.opacity = 255;
		this.rd = !1;
		this.ix = 0;
		this.Qk = 0;
		this.LL = [];
		for (var w = 0; w < 10; w++) this.LL.push(0, 0, 255, 255);
		this.name = null;
		this.add = {};
		this.buffer = null;
		this.fu = null;
		this.s5 = null;
		this.g = null;
		this.NY = null;
		this.acv = 30;
		this.oH = h.zG();
		this.a12 = h.zG();
		this.abb = h.zG();
		this.aiU = h.zG();
		this.kB = 0;
		this.yb = !1;
		this.rD = null;
		this.G = new h.db
	}
	h.zG = function () {
		var F = i.z("canvas");
		F.width = F.height = 30;
		return F.getContext("2d")
	};
	h.db = function () {
		this.XP = !0;
		this.Zf = !0;
		this.WV = H.R(0);
		this.afK = H.R(0);
		this.h0 = null;
		this.gg = {};
		this.aeZ = null;
		this.N5 = null;
		this.ad = null;
		this.ey = null;
		this.Ni = null;
		this.Db = null;
		this.Ks = null;
		this._E = null;
		this.Yw = null;
		this.hr = null;
		this.bd = null;
		this.VS = null;
		this.WZ = !1
	};
	h.db.prototype.cc = function () {
		this.XP = !1;
		this.Zf = !1;
		this.h0 = null;
		this.WZ = k.pQ
	};
	h.db.prototype.a1R = function () {
		cr.iL(this.gg);
		this.WV = H.R(0);
		this.afK = H.R(0);
		if (this.ey) this.ey.delete();
		if (this.Ni) this.Ni.delete();
		this.ey = null;
		this.Ni = null;
		var F = [this.Db, this.Ks, this._E, this.Yw, this.hr, this.bd];
		for (var w = 0; w < 6; w++)
			if (F[w] != null && F[w] instanceof k._B) F[w].delete();
		this.Db = null;
		this.Ks = null;
		this._E = null;
		this.Yw = null;
		this.hr = null;
		this.bd = null
	};
	h.prototype.A = function (F) {
		if (F == null) F = this.rect.clone();
		if (this.G.h0 == null) this.G.h0 = F;
		else this.G.h0 = this.G.h0.s7(F)
	};
	h.prototype.fO = function () {
		return this.add.lsct == gr.lw || this.add.lsct == gr.kE
	};
	h.prototype.ws = function () {
		var F = this.add;
		return F.SoCo != null || F.GdFl != null || F.PtFl != null
	};
	h.prototype.pc = function () {
		var F = this.add.lmfx;
		if (F == null) return;
		var P = ["GrFl", "patternFill"];
		for (var w = 0; w < P.length; w++) {
			var o = ce.og[ce.order.indexOf(P[w])],
				X = F[o].v;
			if (X.length == 0) continue;
			for (var Y = 0; Y < X.length; Y++) {
				var y = X[Y].v;
				if (y.enab.v && (y.Algn == null || !y.Algn.v)) this.G.Zf = !0
			}
		}
	};
	h.prototype.cE = function () {
		var F = this.g;
		if (this.ws()) F = this.jk();
		if (!k.pQ) return F.yX();
		if (this.G.Ni == null || this.G.XP || k.pQ != this.G.WZ) {
			if (this.G.Ni) this.G.Ni.delete();
			this.G.Ni = new k.p5(F.o7().Z, F.o7().h);
			this.G.Ni.set(F.yX())
		}
		return this.G.Ni
	};
	h.prototype.XC = function (F) {
		var P = this.rect,
			o = this.buffer;
		if (!k.pQ) {
			var X = this.$j(F, o, P);
			if (X) {
				o = X.Ww;
				P = X.rect
			}
			return o
		}
		if (this.G.h0 != null || k.pQ != this.G.WZ) {
			var X = this.$j(F, o, P);
			if (X) {
				o = X.Ww;
				P = X.rect
			}
			var Y = P;
			if (k.pQ != this.G.WZ || this.G.ey == null || this.G.ey.Z != Y.Z || this.G.ey.h != Y.h) {
				if (this.G.ey) this.G.ey.delete();
				this.G.ey = new k._B(Y.Z, Y.h);
				this.G.ey.set(o)
			} else {
				var y = this.G.h0.clone();
				y.offset(-P.x, -P.y);
				this.G.ey.set(o, y)
			}
		}
		return this.G.ey
	};
	h.prototype.UW = function () {
		var F = this.g;
		if (this.ws()) F = this.jk();
		return F != null && F.isEnabled && (F.T6() == 0 || F.T6() != 0 && !F.rect.qr())
	};
	h.prototype.$j = function (F, P, o) {
		if (this.gO()) {
			var X = this.yg(F);
			if (X.g && X.g.isEnabled && (!X.g.rect.qr() || X.g.color == 0)) {
				var Y = this.add.SoLd.filterFX.v;
				X.g.au = Y.filterMaskDensity ? Y.filterMaskDensity.v : 255;
				X.g.bM = Y.filterMaskFeather ? Y.filterMaskFeather.v : 0;
				var y = X.buffer,
					z = X.g.kx(o);
				H.nJ(z);
				P = H.clone(P);
				H.N.$e(y, X.rect, P, o, z, o, 0, o, 1);
				return {
					Ww: P,
					rect: o
				}
			}
		}
	};
	h.prototype.ajs = function () {
		var F = {
			pH: !1,
			EJ: !1,
			XW: 0,
			tD: 0
		};
		if (this.add.vmsk && this.add.vmsk.isEnabled) F.EJ = !0;
		if (this.jk() && this.jk().isEnabled) F.pH = !0;
		if (F.pH && F.EJ) {
			F.XW = this.jk().rect.x - this.add.vmsk.jk().rect.x;
			F.tD = this.jk().rect.y - this.add.vmsk.jk().rect.y
		}
		return F
	};
	h.prototype._V = function (F) {
		if (this.add.lsct == gr.Qi) return;
		var P = this,
			o = this.jk() != null && this.jk().G2,
			X = this.add.vmsk != null && this.add.vmsk.G2,
			Y = this.ajs(),
			y = JSON.stringify(Y) != this.G.aeZ || Y.pH && o || Y.EJ && X;
		if (y) {
			if (Y.EJ) {
				var z = this.add.vmsk.jk();
				if (Y.pH) {
					this.g = this.jk().$T(z);
					this.G.N5 = new aH(this.g.rect.x - this.jk().rect.x, this.g.rect.y - this.jk().rect.y)
				} else this.g = z
			}
			if (this.g) this.G.XP = !0;
			if (this.g) this.G.ad = new aH(this.rect.x - this.g.rect.x, this.rect.y - this.g.rect.y);
			if (Y.pH) this.jk().G2 = !1;
			if (Y.EJ) this.add.vmsk.G2 = !1;
			this.A()
		} else {
			if (Y.pH && Y.EJ) {
				this.g.rect.x = this.jk().rect.x + this.G.N5.x;
				this.g.rect.y = this.jk().rect.y + this.G.N5.y
			}
		}
		if (P.ws()) {
			this.fe(F)
		}
		if (P.Mq()) {
			var s;
			if (this.g) s = new aH(this.rect.x - this.g.rect.x, this.rect.y - this.g.rect.y);
			if (this.g && this.g.isEnabled && (this.G.ad == null || !s.Qn(this.G.ad))) {
				this.G.ad = s;
				this.A();
				this.G.XP = !0
			}
		}
		if (b_.get(P.add) != null) this.G.XP = !0;
		this.G.aeZ = JSON.stringify(Y)
	};
	h.prototype.fe = function (F) {
		var P = this,
			o = P.add.vstk,
			X, Y = P.add.vmsk ? this.add.vmsk.jk() : null,
			s = !0;
		if (Y && Y.isEnabled && Y.T6() == 0) X = Y.o7().clone();
		else X = new ev(0, 0, F.Z, F.h);
		var y = P.jk();
		if (y && y.isEnabled && y.T6() == 0) X = X.$X(P.g.o7());
		var z = Y && o;
		if (o && (!o.strokeEnabled.v || o.strokeStyleLineWidth.v.val == 0)) z = !1;
		if (o && !o.fillEnabled.v && z) s = !1;
		var t = H.R(X.M() * 4);
		if (s) {
			if (P.add.SoCo) cr.n_(t, P.add.SoCo.Clr.v);
			if (P.add.GdFl) cr.fE(P.add.GdFl, t, X, F, null, Y && Y.color == 0 ? Y.rect : null);
			if (P.add.PtFl) cr._$(P.add.PtFl, t, X, F, P.add.fxrp)
		}
		if (Y) {
			var d = Y.au;
			if (z) Y.au = 255;
			var U = H.R(X.M());
			if (Y.T6() != 0) H.set(U, Math.round(Y.T6()));
			if (Y && Y.isEnabled) {
				var v = Y.o7(),
					A = Y.yX();
				if (v.Qn(X)) H.Hk(A, U);
				else H.Lj(A, v, U, X)
			}
			if (P.add.SoCo && s) {
				H.Oy(U, t, 3)
			} else H.pa(U, X, t, X);
			if (z) Y.au = d
		}
		P.buffer = t;
		P.rect = X;
		if (z) {
			var Z = ce.bW.Ph.indexOf(o.strokeStyleLineAlignment.v.strokeStyleLineAlignment),
				D = o.strokeStyleContent.v,
				q = ce.bW.bl.indexOf(D.classID),
				R = this.add.vmsk.jk(o);
			if (P.rect.Qn(new ev(0, 0, F.Z, F.h))) P.rect = P.rect;
			else if (Z != 0) {
				var J = P.rect.s7(R.o7()),
					W = H.R(J.M() * 4);
				H.BP(P.buffer, P.rect, W, J);
				P.buffer = W;
				P.rect = J
			}
			var d = R.au;
			R.au = 255;
			var p = R.kx(P.rect);
			R.au = d;
			if (R.color == 255) H.nJ(p);
			var n = H.R(P.rect.M() * 4);
			if (q == 0) cr.n_(n, D.Clr.v);
			if (q == 1) cr.fE(D, n, P.rect, F, null, Y.color == 0 ? Y.rect : null);
			if (q == 2) cr._$(D, n, P.rect, F, P.add.fxrp);
			var b = o.strokeStyleOpacity.v.val / 100;
			if (b != 1) H.WI(p, b);
			H.Oy(p, n, 3);
			if (R.color == 255) Z = 2 - Z;
			if (Z == 0) {
				H.N.DO("norm", n, P.rect, P.buffer, P.rect, P.rect, 1);
				H.pa(U, P.rect, P.buffer, P.rect)
			}
			if (Z == 1) {
				H.N.DO("norm", n, P.rect, P.buffer, P.rect, P.rect, 1)
			}
			if (Z == 2) {
				H.nJ(U);
				H.N.$e(n, P.rect, P.buffer, P.rect, U, X, 255, P.rect, 1, !1);
				H.nJ(U)
			}
			if (R.au != 255) {
				var Q = H.clone(n);
				H.XB(Q, 4278190080, 16777215);
				H.N.DO("norm", Q, P.rect, P.buffer, P.rect, P.rect, 1 - R.au / 255)
			}
			d = Y.au;
			Y.au = 255;
			this.afK = Y.kx(P.rect);
			Y.au = d
		}
		this.A()
	};
	h.prototype.Gy = function (F, P) {
		var o = this,
			X = o.add.SoLd.Idnt.v,
			Y = o.add.SoLd,
			y = H.D.nP(B.X.AC(Y.nonAffineTransform)),
			z = F._p(X, Y.Crop ? Y.Crop.v : null, [y.Z, y.h], Y.Impr.v.classID);
		if (z == null) return;
		var s = z.DW;
		Y.Sz.v.Wdth.v = s[1].Z;
		Y.Sz.v.Hght.v = s[1].h;
		var t = Y.warp.v,
			d = B.X.AC(Y.nonAffineTransform),
			U = H.P.bg(d, s[1]);
		if (t && !H.mD.O8(t)) {
			var y = H.D.nP(H.mD.ij(t)),
				v = y.x,
				A = y.y,
				Z = 1 / y.Z,
				D = 1 / y.h;
			U = H.P.bg(d);
			U = H.P.$T(U, [Z, 0, -v * Z, 0, D, -A * D, 0, 0])
		}
		var q = B.X.rx(s, P ? 0 : 1, U, t, null, null, null, P);
		if (q == null) {
			o.buffer = H.R();
			o.rect = new ev
		} else if (o.gO()) {
			var R = o.yg(F);
			R.buffer = q.buffer;
			R.rect = q.rect.clone();
			this.jc(F, P)
		} else {
			o.buffer = q.buffer;
			o.rect = q.rect
		}
		o._V(F);
		o.A();
		F.A()
	};
	h.prototype.jc = function (F, P) {
		if (P == null) P = !1;
		var o = this.yg(F),
			X = this.add.SoLd.filterFX.v,
			Y = bv.a31(X),
			y = new ev(0, 0, F.Z, F.h),
			z = o.rect.s7(y),
			s = o.rect.clone();
		s.PK(Y.x, Y.y);
		var t = {
			buffer: null,
			rect: z.$X(s)
		};
		t.buffer = H.R(t.rect.M() * 4);
		H.BP(o.buffer, o.rect, t.buffer, t.rect);
		if (X.enab.v && P == !1) {
			var d = X.filterFXList.v;
			for (var w = 0; w < d.length; w++) {
				var U = d[w].v;
				if (U.enab.v == !1) continue;
				var v = H.j.T6(U.FrgC.v),
					A = H.j.T6(U.BckC.v),
					Z = bv.l$(U),
					D = U.Fltr ? U.Fltr.v : null;
				if (b_.NS[Z] != null) {
					var q = b_.NS[Z],
						R = b_.VM(q, D);
					if (R) b_.t5(R, t.buffer, t.buffer, t.rect)
				} else t = bv.t5(Z, t, D, v, A, null, [F.add.lnk2 ? F.add.lnk2 : [], this.jk(), F.Yq])
			}
		}
		this.rect = t.rect;
		this.buffer = t.buffer;
		this.HZ();
		this.A();
		F.A()
	};
	h.prototype.WC = function (F, P, o) {
		this.rD = this.ce(F, P, o)
	};
	h.prototype.zp = function (F, P) {
		var o = this.ce(F, P, !0);
		if (o == null) return null;
		var X = {
			wH: o.kB,
			Tr: o.zU,
			rect: o.RL
		};
		if (X.wH == 1 || X.wH == 3) {
			var Y = X.rect,
				y = H.R(Y.Z * Y.h * 4);
			H.Oy(X.Tr, y, 0);
			H.Oy(X.Tr, y, 1);
			H.Oy(X.Tr, y, 2);
			H.F_(F.K.channel, F.K.rect, y, Y);
			X.Tr = y
		}
		return X
	};
	h.prototype.ce = function (F, P, o) {
		var X, Y, y, z, s, t, d;
		if (this.kB <= 0) {
			var U = H.R(this.rect.M());
			H.E4(this.buffer, U, 3);
			X = H.pv.f7(P, {
				channel: U,
				rect: this.rect
			}, "intersection");
			if (X == null) return null;
			var v = H.xw(X.channel, X.rect);
			z = X.rect.clone();
			s = this.rect.clone();
			Y = H.R(z.M() * 4);
			H.BP(this.buffer, s, Y, z);
			H.Oy(X.channel, Y, 3);
			y = H.clone(this.buffer);
			if (!o) {
				var A = H.clone(P.channel);
				H.nJ(A);
				H.pa(A, P.rect, y, s)
			}
			t = H.clone(this.buffer);
			d = this.rect.clone()
		}
		if (this.kB == 1 || this.kB == 3) {
			var Z = this.kB == 1 ? this.jk() : this.yg(F).g;
			z = P.rect.clone();
			s = Z.rect.clone();
			Y = Z.x6(z);
			var y = H.clone(Z.channel);
			if (!o) H.N.fG(Z.color == 255 ? H.AA(z.M()) : H.Zm(z.M()), z, y, s, P.channel, z, 1);
			t = H.clone(Z.channel);
			d = Z.rect.clone()
		}
		return {
			kB: this.kB,
			zU: Y,
			RL: z,
			gx: y,
			OJ: s,
			ny: t,
			oK: d
		}
	};
	h.prototype.Z9 = function (F, P) {
		var o = this.rD;
		if (o.kB == 0) {
			this.rect = o.oK;
			this.buffer = o.ny;
			this.A()
		}
		if (o.kB == 1 || o.kB == 3) {
			var X = o.kB == 1 ? this.jk() : this.yg(F).g;
			X.channel = o.ny;
			X.rect = o.oK;
			if (this.kB == 1) {
				X.G2 = !0;
				this._V(F)
			}
			if (this.kB == 3) this.A()
		}
		this.rD = P
	};
	h.prototype.Je = function (F, P) {
		if (this.kB <= 0 && P.rect.Qn(this.rect)) {
			var o = H.R(this.rect.M());
			H.E4(this.buffer, o, 3);
			if (H.Qn(F.K.channel, o)) {
				var X = this.rect,
					Y = this.buffer;
				this.rD = {
					kB: this.kB,
					zU: Y.slice(0),
					RL: X.clone(),
					gx: H.R(0),
					OJ: new ev,
					ny: H.R(0),
					oK: new ev
				};
				return !0
			}
		}
		var y = this.rD;
		if (y == null) return !1;
		if (y.kB != this.kB) return !1;
		if (!P.rect.Qn(y.RL)) return !1;
		var z = y.OJ.s7(y.RL);
		if (y.kB <= 0) {
			if (!z.Qn(this.rect)) return !1;
			var s = H.R(y.zU.length >> 2);
			H.E4(y.zU, s, 3);
			if (!H.Qn(P.channel, s)) return !1;
			var t = H.R(z.Z * z.h * 4);
			H.BP(y.gx, y.OJ, t, z);
			H.N.DO("norm", y.zU, y.RL, t, z, z, 1);
			return H.Qn(t, this.buffer)
		}
		if (y.kB == 1 || y.kB == 3) {
			var d = y.kB == 1 ? this.jk() : this.yg(F).g;
			if (!z.Qn(d.rect)) return !1;
			var U = H.R(z.M());
			H.set(U, d.color);
			H.Lj(y.gx, y.OJ, U, z);
			H.N.fG(y.zU, y.RL, U, z, P.channel, z, 1);
			return H.Qn(U, d.channel)
		}
	};
	h.prototype.CH = function (F, P, o, X) {
		var z = this.rD;
		z.RL.offset(P, o);
		var s = z.OJ.s7(z.RL);
		if (z.kB <= 0) {
			var t = H.R(s.M() * 4);
			H.BP(z.gx, z.OJ, t, s);
			H.N.DO("norm", z.zU, z.RL, t, s, s, 1);
			this.buffer = t;
			this.rect = s;
			this.A()
		} else {
			var d = this.kB == 1 ? this.jk() : this.yg(F).g,
				U = H.R(s.M());
			H.set(U, d.color);
			H.Lj(z.gx, z.OJ, U, s);
			H.N.fG(z.zU, z.RL, U, s, X.channel, s, 1);
			d.channel = U;
			d.rect = s.clone();
			if (this.kB == 1) {
				d.G2 = !0;
				this._V(F)
			}
			if (this.kB == 3) this.A()
		}
	};
	h.prototype.bD = function () {
		var F = [-1, 0, 1, 2];
		if (this.g) F.push(-2);
		if (this.NY) F.push(-3);
		return F
	};
	h.prototype.getName = function () {
		return this.add.luni ? this.add.luni : this.name
	};
	h.prototype.uf = function (e) {
		this.add.luni = this.name = e
	};
	h.prototype.cg = function (F) {
		var P = this.add.lnsr,
			o = this.add.TySh;
		if (P == "rend" && o) this.uf(bt.jn(o.MF).replace(/(?:\r\n|\r|\n)/g, " ").slice(0, 32))
	};
	h.prototype.UQ = function () {
		return (this.ix & 1 << 1) == 0
	};
	h.prototype.Mq = function () {
		return (this.ix & 1 << 4) == 0
	};
	h.prototype.dL = function () {
		return (this.ix & 1 << 5) != 0
	};
	h.prototype.a5u = function () {
		var F = this;
		if (F.add.lnsr != "bgnd") {
			F.add.lnsr = "bgnd";
			F.uf("Background");
			F.add.lspf = 1 << 2
		}
	};
	h.prototype.a4z = function () {
		var F = this;
		if (F.add.lnsr == "bgnd") {
			delete F.add.lnsr;
			F.uf("Layer 0");
			F.add.lspf = 0
		}
	};
	h.prototype.k6 = function (F) {
		var P = this.add.lspf;
		return P == null ? !1 : (P >> F & 1) != 0
	};
	h.prototype.vR = function (F) {
		if (F && !this.UQ()) this.ix -= 2;
		if (!F && this.UQ()) this.ix += 2
	};
	h.prototype.su = function () {
		var F = this.add.lmfx;
		if (F == null) return !1;
		for (var P in F) {
			if (P == "masterFXSwitch") continue;
			if (P == "Scl") continue;
			if (P == "classID") continue;
			if (F[P].v.length > 0) return !0
		}
		return !1
	};
	h.prototype.gO = function () {
		return this.add.SoLd != null && this.add.SoLd.filterFX != null
	};
	h.prototype.nR = function () {
		var F = this.add.lmfx;
		if (F == null) return !1;
		if (!F.masterFXSwitch.v) return !1;
		for (var P in F) {
			if (P == "masterFXSwitch") continue;
			if (P == "Scl") continue;
			if (P == "classID") continue;
			var o = F[P].v;
			for (var w = 0; w < o.length; w++)
				if (o[w].v.enab.v) return !0
		}
		return !1
	};
	h.prototype.G_ = function (F, P, o, X) {
		var Y = new ev,
			y = this.Ys(F, o, X);
		if (y.indexOf(0) != -1) Y = Y.s7(this.rect);
		if (y.indexOf(1) != -1) Y = Y.s7(this.jk().o7());
		if (y.indexOf(2) != -1) {
			var z = this.add.vmsk,
				s;
			if (P) {
				if (z.s_.length > 1) {
					var t = H.V.dq(z.b, null, z.s_);
					s = H.D.nP(t)
				} else s = H.V.ue(z.b, z.p.length != 0 ? z.p : null)
			} else s = H.V.ue(z.b);
			Y = Y.s7(s)
		}
		if (y.indexOf(3) != -1) Y = Y.s7(this.yg(F).g.o7());
		if (y.length == 0 && this.ws()) Y = new ev(0, 0, F.Z, F.h);
		return Y
	};
	h.prototype.sc = function () {
		var F = this.add.artb.artboardRect.v,
			P = F.Btom.v,
			o = F.Left.v,
			X = F.Rght.v,
			top = F.Top.v;
		return new ev(o, top, X - o, P - top)
	};
	h.prototype.BE = function (F) {
		var P = h.xE(F);
		if (this.add.artb == null) this.add.artb = {
			classID: "artboard",
			artboardRect: {
				t: "Objc",
				v: null
			},
			artboardBackgroundType: {
				t: "long",
				v: 1
			}
		};
		this.add.artb.artboardRect.v = P
	};
	h.xE = function (F) {
		var P = {
			classID: "classFloatRect",
			Top: {
				t: "doub",
				v: 0
			},
			Left: {
				t: "doub",
				v: 0
			},
			Btom: {
				t: "doub",
				v: 0
			},
			Rght: {
				t: "doub",
				v: 0
			}
		};
		P.Btom.v = F.y + F.h;
		P.Left.v = F.x;
		P.Rght.v = F.x + F.Z;
		P.Top.v = F.y;
		return P
	};
	h.prototype.Ys = function (F, P, o) {
		var X = [],
			Y = this,
			y = this.yb;
		if (!P && Y.yb && o) {
			X.push(2)
		} else if (Y.kB <= 0 || P) {
			if (Y.Mq())
				if (!this.rect.qr()) X.push(0);
			if (Y.jk() && !Y.jk().rect.qr())
				if (Y.jk().AU || P) X.push(1);
			if (Y.add.vmsk)
				if (Y.add.vmsk.AU || P) X.push(2);
			if (Y.gO() && Y.yg(F).g && !Y.yg(F).g.rect.qr()) X.push(3)
		} else if (Y.kB == 1) {
			X.push(1);
			if (Y.jk().AU && !Y.jk().rect.qr()) {
				if (Y.Mq())
					if (!this.rect.qr()) X.push(0);
				if (Y.add.vmsk)
					if (Y.add.vmsk.AU) X.push(2)
			}
		} else if (Y.kB == 3 && !Y.yg(F).g.rect.qr()) X.push(3);
		if (Y.add.artb && X.indexOf(0) == -1) X.push(0);
		X.sort();
		return X
	};
	h.prototype.jk = function () {
		var F = this;
		return F.NY ? F.NY : F.add.vmsk && F.add.vmsk.isEnabled ? null : F.g
	};
	h.prototype.yg = function (F) {
		var P = this.add.SoLd.placed.v,
			o = F.add.FEid;
		if (o == null) return null;
		for (var w = 0; w < o.length; w++)
			if (o[w].id == P) return o[w];
		return null
	};
	h.prototype.extend = function (F) {
		H.aao(this, F)
	};
	h.prototype.xn = function (F, P, o) {
		var X = F.clone();
		if (this.nR()) {
			var Y = this.add.lmfx,
				y = P.root.V$(P.r.indexOf(this)),
				z = Y.gradientFillMulti.v,
				s = !1;
			for (var w = 0; w < z.length; w++)
				if (z[w].v.enab.v && z[w].v.Algn.v) s = !0;
			if (s) X = X.s7(y.o7(P, !1));
			var t = cr.a5J(this, P, o);
			X.offset(t.x, t.y);
			X.Z += t.Z;
			X.h += t.h
		}
		return X
	};
	h.prototype.HZ = function () {
		if (this.Mq()) H.mn(this);
		var F = this.jk();
		if (F) F.HZ()
	};
	h.prototype.clone = function () {
		var F = new h;
		F.rect = this.rect.clone();
		F.buffer = H.clone(this.buffer);
		F.sW = this.sW;
		F.opacity = this.opacity;
		F.rd = this.rd;
		F.ix = this.ix;
		F.name = this.name;
		F.LL = this.LL.slice(0);
		if (this.g) F.g = this.g.clone();
		if (this.NY) F.NY = this.NY.clone();
		for (var P in this.add) F.add[P] = ff.clone(P, this.add[P]);
		return F
	};
	h.prototype.Um = function (F) {
		var P = this;
		if (P.add.TySh) delete P.add.TySh;
		if (P.add.SoLd) {
			var o = this.$j(F, this.buffer, this.rect);
			if (o) {
				this.buffer = o.Ww;
				this.rect = o.rect;
				this.A()
			}
			delete P.add.SoLd
		}
		if (P.add.SoCo || P.add.GdFl || P.add.PtFl) {
			if (P.add.vogk) delete P.add.vogk;
			if (P.add.SoCo) delete P.add.SoCo;
			if (P.add.GdFl) delete P.add.GdFl;
			if (P.add.PtFl) delete P.add.PtFl;
			if (P.add.vmsk) {
				console.log(P.NY, P.g);
				delete P.add.vmsk;
				if (P.NY == null && P.g) delete P.g;
				else if (P.NY != null && P.g != null) {
					P.g = P.NY;
					delete P.NY
				}
			}
		}
		if (!P.fO() && b_.get(P.add) == null && !this.Mq()) this.ix -= 16
	};
	h.prototype.rq = function (F) {
		var P = 255,
			X = 0;
		if (F == 2) {
			var Y = this.add.SoLd.filterFX.v;
			if (Y.filterMaskDensity) P = Y.filterMaskDensity.v;
			if (Y.filterMaskFeather) X = Y.filterMaskFeather.v
		} else {
			var y = F == 0 ? this.jk() : this.add.vmsk;
			P = y.au;
			X = y.bM
		}
		return {
			SA: F,
			gh: P,
			l8: X
		}
	};
	h.prototype.tC = function (F) {
		if (F.SA == 2) {
			var P = this.add.SoLd.filterFX.v;
			if (F.gh == 255) delete P.filterMaskDensity;
			else P.filterMaskDensity = {
				t: "long",
				v: F.gh
			};
			if (F.l8 == 0) delete P.filterMaskFeather;
			else P.filterMaskFeather = {
				t: "doub",
				v: F.l8
			};
			this.A()
		} else {
			var o = F.SA == 0 ? this.jk() : this.add.vmsk;
			o.au = F.gh;
			o.bM = F.l8;
			o.G2 = !0
		}
	};
	h.prototype.h7 = function () {
		var F = this,
			P = F.add.vmsk;
		if (P == null) return;
		F.add.vogk = h.h7(P.b)
	};
	h.h7 = function (F) {
		var P = [],
			o = H.V.k3(F);
		for (var X = 0; X < o; X++) P.push(H.P$.Zm());
		return P
	};
	var gr = {
		eZ: 0,
		lw: 1,
		kE: 2,
		Qi: 3
	};
	h.vm = function () {
		this.name = "Mask";
		this.gG = !1;
		this.u9 = {
			U: 255,
			S: 0,
			i: 0
		};
		this.oE = 50;
		this.iy = 0;
		this.color = 255;
		this.AU = !0;
		this.isEnabled = !0;
		this.tA = !1;
		this.au = 255;
		this.bM = 0;
		this.rect = new ev;
		this.channel = H.R(0);
		this.YW = null;
		this.adz = null;
		this.G2 = !0
	};
	h.vm.prototype.$T = function (F) {
		if (!this.isEnabled) return F;
		var P = new h.vm;
		P.color = Math.round(this.T6() * F.T6() / 255);
		if (this.T6() == 0 && F.T6() == 0) P.rect = this.o7().$X(F.o7());
		else if (F.T6() == 0) P.rect = F.o7().clone();
		else if (this.T6() == 0) P.rect = this.o7().clone();
		else P.rect = this.o7().s7(F.o7());
		P.channel = this.kx(P.rect);
		P.au = 255;
		P.bM = 0;
		var o = F.kx(P.rect);
		H.a3E(o, P.rect, P.channel, P.rect);
		return P
	};
	h.vm.prototype.o7 = function () {
		if (this.bM == 0) return this.rect;
		var F = Math.ceil(this.bM * 2.2),
			P = this.rect.clone();
		P.PK(F, F);
		return P
	};
	h.vm.prototype.yX = function () {
		if (this.bM == 0 && this.au == 255) return this.channel;
		if (this.bM == 0) {
			var F = H.clone(this.channel);
			H.nJ(F);
			H.WI(F, this.au / 255);
			H.nJ(F);
			return F
		}
		var P = this.o7(),
			o = this.x6(P),
			F = H.R(P.M());
		H.ni.et(o, F, P, this.bM);
		if (this.au != 255) {
			H.nJ(F);
			H.WI(F, this.au / 255);
			H.nJ(F)
		}
		return F
	};
	h.vm.prototype.T6 = function () {
		return Math.round(255 - (255 - this.color) * (this.au / 255))
	};
	h.vm.prototype.extend = function (F) {
		H.extend(this, F, this.color)
	};
	h.vm.prototype.HZ = function () {
		if (this.color == 255) H.nJ(this.channel);
		H.HZ(this);
		if (this.color == 255) H.nJ(this.channel)
	};
	h.vm.prototype.clone = function () {
		var F = new h.vm;
		F.name = this.name;
		F.gG = this.gG;
		F.u9 = this.u9;
		F.oE = this.oE;
		F.iy = this.iy;
		F.color = this.color;
		F.AU = this.AU;
		F.isEnabled = this.isEnabled;
		F.tA = this.tA;
		F.au = this.au;
		F.bM = this.bM;
		F.rect = this.rect.clone();
		F.channel = H.clone(this.channel);
		return F
	};
	h.vm.prototype.x6 = function (F, P) {
		if (P == null) P = H.R(F.M());
		H.set(P, this.color);
		H.Lj(this.channel, this.rect, P, F);
		return P
	};
	h.vm.prototype.kx = function (F, P) {
		var o = this.o7(),
			X = this.yX();
		if (P == null) P = H.R(F.M());
		H.set(P, this.T6());
		H.Lj(X, o, P, F);
		return P
	};
	h.iO = function () {
		this.AU = !0;
		this.isEnabled = !0;
		this.au = 255;
		this.bM = 0;
		this.b = [{
			type: 6
		}, {
			type: 8,
			all: 0
		}];
		this.A2 = [-3, -3];
		this.mt = !1;
		this.NY = null;
		this.G2 = !0;
		this.p = [];
		this.s_ = []
	};
	h.iO.prototype.offset = function (F, P) {
		this.NY = this.jk();
		H.V.G5(this.b, new cu(1, 0, 0, 1, F, P));
		this.NY.rect.offset(F, P)
	};
	h.iO.prototype.jk = function (F) {
		if (!this.G2 && this.NY && F == null) {
			this.NY.isEnabled = this.isEnabled;
			return this.NY
		}
		var P = H.V.ue(this.b);
		if (P.M() > 3e4 * 3e4) P = new ev(0, 0, 100, 100);
		if (F) {
			var o = Math.ceil(F.strokeStyleLineWidth.v.val);
			P.PK(o, o)
		}
		P = H.D.pd(P);
		var X = new h.vm;
		X.color = H.V.vq(this.b) ? 0 : 255;
		X.AU = this.AU;
		X.isEnabled = this.isEnabled;
		X.tA = !0;
		X.rect = P;
		X.au = this.au;
		X.bM = this.bM;
		X.channel = H.R(X.rect.M());
		if (!P.qr()) H.V.aex(this.b, X.channel, X.rect, F);
		if (F == null) {
			this.NY = X;
			this.G2 = !1
		}
		return X
	};
	h.iO.prototype.clone = function () {
		var F = new h.iO;
		F.AU = this.AU;
		F.isEnabled = this.isEnabled;
		F.au = this.au;
		F.bM = this.bM;
		F.b = h.iO.Cm(this.b);
		F.A2 = this.A2.slice(0);
		F.mt = this.mt;
		F.p = this.p.slice(0);
		F.s_ = this.s_.slice(0);
		return F
	};
	h.iO.prototype.concat = function (F) {
		var P = F.b.slice(2);
		if (P.length == 0) return;
		P[0].IO = 3;
		this.b = this.b.concat(P)
	};
	h.iO.Cm = function (F) {
		var P = [];
		for (var w = 0; w < F.length; w++) {
			var o = F[w];
			if (o.type > 5 || o.type == 0 || o.type == 3) P.push(JSON.parse(JSON.stringify(o)));
			else P.push({
				type: o.type,
				wU: o.wU.clone(),
				_: o._.clone(),
				dv: o.dv.clone()
			})
		}
		return P
	};
	h.iO.ajg = function (F, P, o) {
		if (F.length != P.length) return !1;
		for (var w = 2; w < F.length; w++) {
			var X = F[w],
				Y = P[w];
			if (X.type != Y.type) return !1;
			if (X.type == 0 || X.type == 3) {
				if (X.length != Y.length || !o && X.IO != Y.IO) return !1
			} else if (!X.wU.Qn(Y.wU) || !X._.Qn(Y._) || !X.dv.Qn(Y.dv)) return !1
		}
		return !0
	};
	h.iO.prototype.ahk = function () {
		var F = this.b;
		for (var w = 3; w < F.length; w++)
			if (F[w].type == 0 || F[w].type == 3) F[w].IO = -1
	};
	h.Zr = function () {
		this.type = null;
		this.Sp = 2;
		this.Za = null;
		this.Z5 = "";
		this.d1 = "";
		this.EC = "";
		this.open = 0;
		this.raw = null;
		this.DW = null;
		this.a56 = ""
	};
	h.Zr.prototype.clone = function () {
		var F = new h.Zr;
		F.type = this.type;
		F.Sp = this.Sp;
		F.Za = this.Za;
		F.Z5 = this.Z5;
		F.d1 = this.d1;
		F.EC = this.EC;
		F.open = this.open;
		F.raw = new Uint8Array(this.raw.buffer.slice(0));
		return F
	};
	h.Zr.prototype.lD = function (F, P, o) {
		if (o == null) o = "none";
		var X = this,
			Y = em.Xh(X.raw.buffer),
			y = Y == "svg" || Y == "pdf";
		if (X.DW) {
			var z = P && y && Math.max(X.DW[1].Z, X.DW[1].h) < Math.max(P[0], P[1]);
			if (!z && o == this.a56) return
		}
		this.a56 = o;
		if (!y) F = 0;
		if (Y == null) {
			alert("Unsupported format: " + r.$o(X.raw, 0, 4));
			return null
		}
		var s = em.$I(Y);
		if (s.Vi) {
			var t = new c_(name + (Y == "psd" ? "" : "-" + Y) + ".psd"),
				d;
			s.xo(X.raw.buffer, t, P);
			var U = new ev(0, 0, t.Z, t.h);
			if ("avrg maxx medn minn rang stdv summ vari".split(" ").indexOf(o) != -1) {
				var v = [];
				for (var w = 0; w < t.r.length; w++) {
					var A = t.r[w],
						Z = A.buffer;
					if (!A.rect.Qn(U)) {
						Z = H.R(U.M() * 4);
						H.BP(A.buffer, A.rect, Z, U);
						console.log("resizing")
					}
					v.push(Z)
				}
				d = H.R(U.M() * 4);
				H.stack.stack(v, d, o)
			} else {
				for (var w = 0; w < t.r.length; w++)
					if (t.r[w].ws()) t.r[w]._V(t);
				t.dr();
				t.A();
				t.tf();
				d = t.lD()
			}
			X.DW = [d, U]
		} else if (s) {
			var D = s.xo(X.raw.buffer)[0];
			X.DW = [new Uint8Array(D.data), D.ym]
		}
		if (X.DW) {
			if (F == 1) {
				var Z = X.DW[0],
					q = X.DW[1],
					R = H.R(q.M());
				H.E4(Z, R, 3);
				var J = H.xw(R, q),
					W = H.R(J.M() * 4);
				H.BP(Z, q, W, J);
				X.DW = [W, J]
			}
			H.hE(X.DW)
		}
	};
	h.xm = "0";
	h.R0 = "2";
	h.IQ = "2.5";
	h.eV = "3";
	h.ps = "4";
	h.Eg = "4.5";
	h.Ml = "5";
	h.RO = "5.5";
	h.Bo = "6";
	h.cl = "7";
	h.eH = "7.5";
	h.SG = "8";
	h.FI = "9";
	h.iQ = "9.3";
	h.ck = "9.5";
	h.Hj = "9.6";
	h.kX = "10";
	h.OT = "11";
	h.yV = "12";
	h.tN = "13";
	h.gk = "13.5";
	h.rb = "13.7";
	h.hy = "14";
	h.aY = "14.5";
	h.cN = "15";
	h.yN = "16";
	h.dh = "17";
	h.t7 = "18";
	h.Ax = "19";
	h.I8 = "19.5";
	h.IB = "19.6";
	h.K6 = "19.7";
	h.N1 = "20";
	h.Ot = "21";
	h.Lm = "21.5";
	h.Ib = "22";
	h.t_ = "22.5";
	h.K7 = "23";
	h.agN = "24";
	h.Tq = "25";
	h.cJ = "26";
	h.yf = "27";
	h.r5 = "28";
	h.Dv = "29";
	h.uP = "30";
	h.zO = "31";
	h.Nm = "32";
	h.QR = "33";
	h.uv = "34";
	h.yn = "35";
	h.iN = "36";
	h.Fv = "36.5";
	h.$t = "37";
	h.Aj = "37.5";
	h.a2V = "37.6";
	h.u$ = "38";
	h.FW = "38.5";
	h.Sc = "38.6";
	h.Pj = "39";
	h.FO = "40";
	h.M_ = "41";
	h.$Z = "42";
	h.Hl = "50";
	h.y6 = "51";
	h.s4 = "52";
	h.BI = "53";
	h.cB = "54";
	h.Op = "54.5";
	h.kF = "54.6";
	h.k2 = "54.7";
	h.bj = "54.8";
	h.WF = "55";
	h.F0 = "56";
	h.qZ = "57";
	h.IM = "58";
	h._S = "59";

	function cl() {
		this.depth = 0;
		this.index = -1;
		this.n = null;
		this.agq = null;
		this.rS = -1;
		this.children = null;
		this.parent = null;
		this.to = null
	}
	cl.prototype.a7U = function () {
		var F = 0;
		if (this.n.fO()) {
			for (var w = 0; w < this.children.length; w++) F += this.children[w].a7U()
		} else if (this.n.buffer) F += this.n.buffer.length;
		return F
	};
	cl.prototype.V$ = function (F) {
		var P = this.to[F];
		return this.to[F]
	};
	cl.prototype.k$ = function (F, P) {
		var o = this.n;
		if (!o.UQ() || o.k6(2) || o.k6(31)) return null;
		if (o.UW()) {
			var X = o.g.rect.dg(F);
			if (!X && o.g.color == 0) return
		}
		if (o.fO()) {
			for (var w = 0; w < this.children.length; w++) {
				var e = this.children[w];
				e.k$(F, P)
			}
		} else if (o.rect.dg(F)) P.push(this.index)
	};
	cl.prototype.cp = function (F, P) {
		var o = this.n;
		if (!o.UQ() || o.k6(2) || o.k6(31)) return null;
		if (o.UW()) {
			if (o.g.rect.oz(F)) {
				if (!H.cp(F, o.g.channel, o.g.rect)) return null
			} else if (o.g.color == 0) return null
		}
		if (o.fO()) {
			for (var w = this.children.length - 1; w >= 0; w--) {
				var e = this.children[w],
					X = e.cp(F, P);
				if (X && P == null) return X
			}
			return null
		} else if (o.add.TySh && o.rect.oz(F) || H.aiC(F, o.buffer, o.rect)) {
			if (P == null) return this;
			else P.push(this.index)
		}
		return null
	};
	cl.prototype.aiV = function (F) {
		var P = this.n;
		if (!P.UQ() || P.k6(2) || P.k6(31)) return null;
		var o = P.add.vmsk;
		if (o && o.isEnabled) {
			var X = H.V.cp(o.b, F).XN;
			if (X != -1) return {
				al3: this,
				aju: X
			}
		}
		if (P.fO()) {
			for (var w = this.children.length - 1; w >= 0; w--) {
				var e = this.children[w],
					Y = e.aiV(F);
				if (Y) return Y
			}
			return null
		}
		return null
	};
	cl.prototype.as = function (F, P) {
		F.push(this.index);
		if (this.n.fO()) {
			F.push(this.rS);
			if (P)
				if (this.n.kB == 1 && this.n.jk().AU == !1) return;
			for (var w = 0; w < this.children.length; w++) this.children[w].as(F)
		}
	};
	cl.prototype.m2 = function (F, P, o) {
		var X = this.n,
			Y, y;
		if (X.fO() && X.add.artb != null) P = X.sc();
		if (P.Z > P.h) {
			Y = o;
			y = Math.floor(o * (P.h / P.Z))
		} else {
			Y = Math.floor(o * (P.Z / P.h));
			y = o
		}
		if (X.ws() && X.add.vmsk == null || X.add.TySh) Y = y = Math.max(y, 16);
		var z = y,
			s = X.ws() && X.add.vmsk;
		if (s) {
			var t = X.rect.clone(),
				v, A;
			if (t.qr()) t = new ev(0, 0, 20, 20);
			var d = t.Z,
				U = t.h;
			if (d > U) {
				v = o;
				A = Math.floor(o * (U / d))
			} else {
				v = Math.floor(o * (d / U));
				A = o
			}
			if (v * A == 0) v = A = 16;
			H.ZL.Eo(X.oH, v, A, t, X.buffer, X.rect, !1);
			H.ZL.a7d(X.oH, v, A);
			z = A
		} else if (X.add.TySh) {
			H.ZL.amE(X.oH, z, z, X.add.TySh)
		} else if (X.add.SoCo) {
			z = Math.max(16, Math.min(Y, y));
			H.ZL.a5w(X.oH, z, z, X.add.SoCo)
		} else if (X.add.GdFl) {
			H.ZL.a5R(X.oH, z, z, X.add.GdFl)
		} else if (X.add.PtFl) {
			H.ZL.ail(X.oH, z, z, X.add.PtFl, F)
		} else if (b_.get(X.add) != null) {
			H.ZL.a7k(X.oH, z, z, X.add)
		} else if (X.add.SoLd) {
			H.ZL.Eo(X.oH, Y, y, P, X.buffer, X.rect, !1);
			H.ZL.ahC(X.oH, Y, y, X.add.SoLd)
		} else if (X.fO()) {
			z = 16
		} else {
			if (X.Mq()) H.ZL.Eo(X.oH, Y, y, P, X.buffer, X.rect, !1);
			else {
				H.ZL.a3s(X.oH, z, z)
			}
		}
		var Z = X.jk();
		if (Z) H.ZL.dp(X.a12, Y, y, P, Z);
		if (X.gO() && X.yg(F) && X.yg(F).g) {
			var D = X.yg(F).g;
			H.ZL.dp(X.aiU, Y, y, P, D)
		}
		if (!s && X.add.vmsk) {
			H.ZL.dp(X.abb, Y, y, P, X.add.vmsk.jk(), !0)
		}
		if (X.add.vmsk || Z) z = Math.max(z, y);
		X.acv = Math.max(z, 16);
		if (X.fO() && X.add.lsct == gr.lw)
			for (var w = 0; w < this.children.length; w++) this.children[w].m2(F, P, o)
	};
	cl.prototype.E7 = function (F, P, o, X) {
		this.depth = o;
		var Y = F[P];
		if (X == null) X = [];
		this.to = X;
		if (Y.add.lsct == gr.Qi) {
			this.agq = Y;
			this.rS = P - 1;
			this.children = [];
			var w = P + 1;
			while (!0) {
				var y = F[w];
				if (y == null) console.log(w, F.length);
				if (y.add.lsct == gr.lw || y.add.lsct == gr.kE) {
					if (Y.add.lyid == y.add.lyid) Y.add.lyid += 16777215;
					this.n = y;
					this.index = w - 1;
					X[this.index] = this;
					X[P - 1] = this;
					break
				}
				var z = new cl;
				z.parent = this;
				w = z.E7(F, w, o + 1, X);
				this.children.push(z)
			}
			return w + 1
		} else {
			this.n = Y;
			this.index = P - 1;
			X[this.index] = this;
			return P + 1
		}
	};
	cl.prototype.Ch = function (F, P, o, X) {
		var Y = this.V$(o),
			y = F;
		while (Y.parent != null) {
			y = Y.n.xn(y, P, X);
			Y = Y.parent
		}
		return y
	};
	cl.prototype.o7 = function (F, P) {
		var o = this.n,
			X = new ev;
		if (!o.UQ()) return X;
		var Y = o.jk();
		if (o.fO())
			for (var w = 0; w < this.children.length; w++) {
				var y = this.children[w].o7(F, !0);
				X = X.s7(y)
			} else if (b_.get(o.add) != null) X = o.UW() && o.g.color == 0 ? o.g.o7().clone() : new ev(0, 0, F.Z, F.h);
			else if (o.ws() && o.add.vmsk && o.add.vmsk.isEnabled && o.add.vstk) {
			X = o.rect.clone()
		} else if (o.ws() && Y && Y.isEnabled && Y.T6() != 0) X = new ev(0, 0, F.Z, F.h);
		else {
			X = o.G_(F, !1, !0);
			if (o.add.vmsk) X = H.D.pd(X)
		}
		return P ? o.xn(X, F) : X
	};
	cl.prototype.Uz = function (F, P, o, X, Y) {
		var y = this.n,
			z = cr.CX(y);
		if (!y.UQ()) return;
		if (y.opacity == 255) {
			this.E9(F, P, o, X, Y);
			return
		}
		var s = H.clone(F);
		this.E9(s, P, o, X, Y);
		H.N.$e(s, P, F, P, null, null, 0, o, y.opacity / 255, y.sW == "diss")
	};
	cl.prototype.E9 = function (F, P, o, X, Y) {
		var y = this.n,
			z = cr.CX(y),
			s = b_.get(y.add) != null,
			v, D;
		if (y.fO() && y.sW == "pass" && !y.UW() && !(Y.length > 0 || z.fill != 1 || y.nR())) {
			this.GE(F, P, o, X);
			return
		}
		var t = y.fO() && y.sW == "pass" && (Y.length > 0 || z.fill != 1 || y.nR()),
			d = y.rect,
			U = y.buffer;
		if (y.fO()) {
			d = this.o7(X, !1);
			var A = H.R(d.M() * 4);
			v = H.R(d.M());
			this.GE(A, d, o, X);
			H.E4(A, v, 3)
		} else if (s) {
			d = P.clone();
			v = H.R(d.M());
			H.set(v, 255)
		} else {
			d = y.rect;
			v = H.R(d.M());
			H.E4(U, v, 3)
		}
		if (y.UW()) {
			var Z = y.g.kx(d);
			H.vB(Z, v)
		}
		if (y.nR()) D = cr.n6(y.add.lmfx, y.add.fxrp, v, d, X);
		if (y.nR()) cr.vO(y.add.lmfx, D, d, F, P, o);
		if (y.fO()) {
			U = H.R(d.M() * 4);
			if (y.sW == "pass") H.BP(F, P, U, d);
			if (t) {
				var A = H.R(d.M() * 4);
				this.GE(A, d, o, X);
				var q = H.R(d.M());
				H.E4(A, q, 3);
				H.pa(q, d, U, d)
			}
			this.GE(U, d, o, X)
		}
		if (s) {
			U = H.clone(F);
			H.XB(U, 4278190080, 16777215);
			var R = b_.get(y.add),
				J = b_.VM(R, y.add[R]);
			b_.t5(J, U, U, d)
		}
		var W = H.clone(U);
		H.XB(W, 4278190080, 16777215);
		for (var w = 0; w < Y.length; w++) Y[w].Uz(W, d, o, X, []);
		var p = H.R(d.M() * 4);
		H.BP(F, P, p, d);
		if (s) z.YU = !0;
		H.N.DO(y.sW == "pass" ? "norm" : y.sW, W, d, p, d, o, 1, z);
		if (y.nR()) {
			var n = y.G.gg.type.FrFX,
				b = null;
			if (n.length != 0) {
				b = n[0];
				for (var w = 0; w < n.length; w++)
					if (n[w].wm.Z > b.wm.Z) b = n[w];
				var Q = H.R(b.wm.Z * b.wm.h * 4);
				H.BP(F, P, Q, b.wm)
			}
			cr.h9(y.add.lmfx, D, d, F, P, o, p, Q, b ? b.wm : null)
		}
		H.N.$e(p, d, F, P, v, d, 0, o, 1, y.sW == "diss")
	};
	cl.prototype.GE = function (F, P, o, X) {
		var Y = this.children;
		for (var w = 0; w < Y.length; w++) {
			var y = [];
			for (var z = w + 1; z < Y.length; z++)
				if (Y[z].n.rd) y.push(Y[z]);
				else break;
			Y[w].Uz(F, P, o, X, y);
			w += y.length
		}
	};
	cl.B6 = {
		delete: function (F) {
			if (F && F.Z) F.delete()
		},
		R: function (F, P) {
			return k.pQ ? new k._B(F, P) : H.R(F * P * 4)
		},
		vG: function (F, P, o) {
			if (k.pQ) {
				if (F == null || F.Z != P || F.h != o) {
					cl.B6.delete(F);
					return new k._B(P, o)
				}
			} else {
				if (F == null || !(F instanceof Uint8Array) || F.length != P * o * 4) {
					cl.B6.delete(F);
					return H.R(P * o * 4)
				}
			}
			return F
		},
		Lj: function (F, P, o, X, Y) {
			(k.pQ ? k.X6 : H.BP)(F, P, o, X, Y)
		},
		$e: function (F, P, o, X, Y, y, z, s, w, t, d) {
			(k.pQ ? k.N.CG : H.N.$e)(F, P, o, X, Y, y, z, s, w, t, d)
		},
		DO: function (F, P, o, X, Y, y, z, s) {
			if (k.pQ) k.N.Q4(F, P, o, X, Y, y, z, s);
			else H.N.DO(F, P, o, X, Y, y, z, s)
		},
		XB: function (F, P, o) {
			if (k.pQ) {
				k.k1(F);
				k.OL(P, o)
			} else H.XB(F, P, o)
		},
		ajE: function (F, P, o, X, Y) {
			if (k.pQ) {
				k.N.CG(null, null, X, Y, F, P, o, Y, 1, !1)
			} else {
				if (o == 255) H.pa(F, P, X, Y);
				else {
					var y = H.R(P.M());
					H._h(X, Y, y, P);
					H.vB(F, y);
					H.XB(X, 0, 16777215);
					H.F_(y, P, X, Y)
				}
			}
		},
		Wr: function (F, P, o, X) {
			if (k.pQ) k.N.CG(null, null, o, X, F, P, 0, X, 1, !1);
			else H.Wr(F, P, o, X)
		}
	};
	cl.prototype.Km = function (F, P, o, X, Y, y) {
		var z = typeof y == "number";
		if (!this.n.fO() && (z && this.index > y || !z && y.indexOf(this.index) == -1)) {
			return
		}
		var s = this.n,
			t = cr.CX(s),
			d = cl.B6,
			U = s.ws() ? s.jk() : s.g;
		if (!s.UQ()) return;
		if (s.UW() && U.rect.qr()) {
			return
		}
		if (s.add.vstk == null && this.o7(X, !1).qr() && s.add.artb == null) {
			return
		}
		var v = this.o7(X, !0).$X(o);
		if (!P.Qn(o) && !o.dg(v) && s.add.artb == null) return;
		if (s.fO() && s.add.artb) {
			var A = s.sc(),
				D = 0;
			o = o.$X(A);
			var Z = s.add.artb.artboardBackgroundType.v;
			if (Z == 1) D = 4294967295;
			else if (Z == 2) D = 4278190080;
			else if (Z == 3) D = 0;
			else if (Z == 4) {
				D = s.add.artb.Clr.v;
				D = 255 << 24 | D.Bl.v << 16 | D.Grn.v << 8 | D.Rd.v
			} else throw Z;
			if (k.pQ) {
				k.k1(F, o);
				k.OL(D)
			} else H.ah5(F, P, o, D)
		}
		var q = cl.fp(s, Y, t);
		if (!q) {
			this.gf(F, P, o, X, Y, y);
			return
		}
		s.G.Db = d.vG(s.G.Db, v.Z, v.h);
		d.Lj(F, P, s.G.Db, v, o);
		this.gf(s.G.Db, v, o, X, Y, y);
		d.$e(s.G.Db, v, F, P, null, null, 0, o, s.opacity / 255, s.sW == "diss", t.yo)
	};
	cl.fp = function (F, P, o) {
		if (o.yo[0] * o.yo[1] * o.yo[2] == 0) return !0;
		return F.opacity != 255 && (P.length != 0 || F.fO() || F.nR())
	};
	cl.a8w = {
		G: {}
	};
	cl.prototype.gf = function (F, P, o, X, Y, y) {
		var z = this.n,
			s = cr.CX(z),
			t = b_.get(z.add) != null,
			d = cl.B6,
			U = cl.fp(z, Y, s),
			v = U ? 1 : z.opacity / 255,
			A = z.ws() ? z.jk() : z.g,
			Z = z.fO() && z.sW == "pass" && !(Y.length > 0 || s.fill != 1 || z.nR()),
			D = !z.fO() && !t && !z.nR() && Y.length == 0,
			q = t && !z.nR() && Y.length == 0,
			b = null,
			Q = null,
			_ = null,
			c;
		if (Z || D || q) {
			var R = F,
				J = P;
			if (z.UW()) {
				J = this.o7(X, !1);
				R = z.G.Yw = d.vG(z.G.Yw, J.Z, J.h);
				d.Lj(F, P, z.G.Yw, J)
			}
			if (Z) this.D4(R, J, o, X, y);
			if (D) d.DO(z.sW, z.XC(X), z.rect, R, J, o, v, s);
			if (q) {
				var W = z.UW() && A.T6() == 0 ? A.o7().clone() : J.clone(),
					p = z.G;
				if (W.Qn(new ev(0, 0, X.Z, X.h))) p = cl.a8w;
				p._E = this.Jp(R, J, p._E, W, z.add);
				s.YU = !0;
				d.DO(z.sW, p._E, W, R, J, o, v, s)
			}
			if (z.UW()) d.$e(R, J, F, P, z.cE(), A.o7(), A.T6(), o, 1, z.sW == "diss");
			z.G.cc();
			return
		}
		var n = z.fO() && z.sW == "pass" && (Y.length > 0 || s.fill != 1 || z.nR()),
			W = z.rect;
		if (z.fO()) {
			W = this.o7(X, !1);
			_ = z.G._E = d.vG(z.G._E, W.Z, W.h);
			d.XB(_, 0);
			this.D4(_, W, W, X, y);
			Q = d.vG(z.G.Ks, W.Z, W.h);
			d.Lj(_, W, Q, W)
		} else if (t) {
			W = z.UW() && A.T6() == 0 ? A.o7().clone() : P.clone();
			Q = d.vG(z.G.Ks, W.Z, W.h);
			d.XB(Q, 4294967295)
		} else {
			W = z.rect;
			b = z.XC(X);
			Q = d.vG(z.G.Ks, W.Z, W.h);
			d.Lj(b, W, Q, W)
		}
		z.G.Ks = Q;
		if (z.UW()) d.ajE(z.cE(), A.o7(), A.T6(), Q, W);
		if (z.nR())
			if (z.G.h0 || z.G.Zf || z.G.WZ != k.pQ || z.G.XP || z.fO()) {
				var L = H.R(W.Z * W.h);
				if (k.pQ) {
					if (!z.fO() && z.jk() == null && z.rect.Qn(W)) H.E4(z.buffer, L, 3);
					else {
						var m = H.R(W.Z * W.h * 4);
						Q.get(m);
						H.E4(m, L, 3)
					}
				} else H.E4(Q, L, 3);
				if (z.G.Zf || z.G.WZ != k.pQ || !H.Qn(L, z.G.WV)) {
					var I = null;
					if (z.ws() && z.add.vmsk && z.add.vmsk.isEnabled && z.add.vmsk.jk().color == 0) I = z.add.vmsk.jk().rect;
					cr.alU(z.G.gg, L, W, z.add.lmfx, z.add.fxrp, X, I);
					z.G.WV = L
				}
			} if (z.nR()) cr.vO(z.add.lmfx, z.G.gg, W, F, P, o);
		if (z.fO()) {
			b = d.vG(z.G.Yw, W.Z, W.h);
			d.XB(b, 0);
			if (z.sW == "pass") d.Lj(F, P, b, W);
			if (n) d.Wr(_, W, b, W);
			this.D4(b, W, o, X, y);
			z.G.Yw = b
		}
		if (t) {
			b = z.G.Yw = this.Jp(F, P, z.G.Yw, W, z.add)
		}
		if (z.fO() || t) c = b;
		else {
			c = d.vG(z.G.Yw, W.Z, W.h);
			d.Lj(b, W, c, W, o);
			z.G.Yw = c
		}
		d.XB(c, 4278190080, 16777215);
		for (var w = 0; w < Y.length; w++) Y[w].Km(c, W, o, X, [], y);
		var u = z.G.hr = d.vG(z.G.hr, W.Z, W.h);
		d.Lj(F, P, u, W, o);
		if (t) s.YU = !0;
		d.DO(z.sW == "pass" ? "norm" : z.sW, c, W, u, W, o, 1, s);
		if (z.nR()) {
			var a = z.G.gg.type.FrFX,
				N = null;
			if (a.length != 0) {
				N = a[0];
				for (var w = 0; w < a.length; w++)
					if (a[w].wm.Z > N.wm.Z) N = a[w];
				z.G.bd = d.vG(z.G.bd, N.wm.Z, N.wm.h);
				d.Lj(F, P, z.G.bd, N.wm, o);
				z.G.VS = d.vG(z.G.VS, N.wm.Z, N.wm.h)
			}
			cr.h9(z.add.lmfx, z.G.gg, W, F, P, o, u, z.G.bd, z.G.VS, N ? N.wm : null)
		}
		if (!k.pQ) {
			var V = H.R(W.M());
			H.E4(Q, V, 3);
			Q = V
		}
		d.$e(u, W, F, P, Q, W, 0, o, 1, z.sW == "diss");
		z.G.cc()
	};
	cl.prototype.Jp = function (F, P, o, X, Y) {
		var y = b_.get(Y),
			z;
		if (y) z = b_.VM(y, Y[y]);
		var s = cl.B6;
		o = s.vG(o, X.Z, X.h);
		if (!(k.pQ && P.Qn(X))) s.Lj(F, P, o, X);
		if (z) {
			if (k.pQ) {
				var t = X.clone();
				t.x = t.y = 0;
				if (P.Qn(X)) {
					k.k1(o, t);
					b_.WD(z, F.g3, t)
				} else {
					k.k1(o, X);
					o.ke(X);
					b_.WD(z, o.z2, t)
				}
			} else b_.t5(z, o, o, X)
		}
		return o
	};
	cl.prototype.D4 = function (F, P, o, X, Y) {
		var y = this.children;
		for (var w = 0; w < y.length; w++) {
			var z = [];
			for (var s = w + 1; s < y.length; s++)
				if (y[s].n.rd) z.push(y[s]);
				else break;
			y[w].Km(F, P, o, X, z, Y);
			w += z.length
		}
	};

	function c_(F) {
		this.AZ = "psd";
		this.name = F;
		this.Fy = -1;
		this.RY = null;
		this.Rg = null;
		this.OU = null;
		this.D2 = null;
		this.Z = 0;
		this.h = 0;
		this.r = [];
		this.zQ = {};
		this.add = {};
		this.buffer = null;
		this.fh = 4;
		this.wa = null;
		this.NB = 72;
		this.ZT = {};
		this.p = [];
		this.ei = [
			[],
			[]
		];
		this.P0 = [];
		this.xR = [];
		this.VW = [c_.GG("Work Path")];
		this.QP = [];
		this.mb = null;
		this.e5 = {
			classID: "CompList",
			list: {
				t: "VlLs",
				v: []
			}
		};
		this.root = null;
		this.Z_ = null;
		this.Lt = !1;
		this.agS = !1;
		this.Kg = !1;
		this.Es = !1;
		this.Vg = !1;
		this.Ob = !1;
		this.Vf = !1;
		this.mO = !1;
		this.Mv = !1;
		this.h0 = null;
		this.if = null;
		this.rD = {};
		this.K = null;
		this.Yq = [];
		this.oD = [];
		this.v = {
			wR: {},
			CL: [],
			a80: [],
			z6: [],
			Cs: [],
			hK: null,
			Kp: null,
			zK: null,
			bX: null,
			bU: [],
			Tw: []
		};
		this.history = [new bV([1, 0], null)];
		this.xG = 0;
		this.gC = 0;
		this.a = new hr(this)
	}
	c_.prototype.ET = function () {
		var F = this.Yq,
			P = this.Yq.length;
		if (P != 0 && F[P - 1].name == "Quick Mask") return F[P - 1]
	};
	c_.prototype.x8 = function () {
		return this.AZ == i.Dj("% |/!)") || this.AZ == i.$G("gP")
	};
	c_.prototype.f$ = function (F) {
		this.add.artd = {
			classID: "null",
			Cnt: {
				t: "long",
				v: F
			},
			autoExpandOffset: {
				t: "Objc",
				v: {
					classID: "Pnt",
					Hrzn: {
						t: "doub",
						v: 0
					},
					Vrtc: {
						t: "doub",
						v: 0
					}
				}
			},
			origin: {
				t: "Objc",
				v: {
					classID: "Pnt",
					Hrzn: {
						t: "doub",
						v: 0
					},
					Vrtc: {
						t: "doub",
						v: 0
					}
				}
			},
			canvasColorMode: {
				t: "enum",
				v: {
					canvasColorType: "Cstm"
				}
			},
			canvasColor: {
				t: "Objc",
				v: {
					classID: "RGBC",
					Rd: {
						t: "doub",
						v: 220
					},
					Grn: {
						t: "doub",
						v: 220
					},
					Bl: {
						t: "doub",
						v: 220
					}
				}
			},
			autoExpandEnabled: {
				t: "bool",
				v: !0
			},
			autoNestEnabled: {
				t: "bool",
				v: !0
			},
			autoPositionEnabled: {
				t: "bool",
				v: !0
			}
		}
	};
	c_.prototype.Bq = function (F) {
		if (this.add.FEid == null) this.add.FEid = [];
		if (this.add.FEid.indexOf(F) == -1) this.add.FEid.push(F)
	};
	c_.prototype.OW = function (F) {
		var P = this.add.FEid.indexOf(F);
		this.add.FEid.splice(P, 1);
		if (this.add.FEid.length == 0) delete this.add.FEid
	};
	c_.prototype.A = function (F) {
		if (F == null) F = new ev(0, 0, this.Z, this.h);
		if (this.h0 == null) this.h0 = F;
		else this.h0 = this.h0.s7(F)
	};
	c_.prototype.ahP = function (F) {
		return this.h0 != null
	};
	c_.prototype.Uu = function (F) {
		var P = this.r[F],
			o = this.root.V$(F);
		if (o == null) return !1;
		if (P.fO() || o.parent.children.indexOf(o) == 0) return !1;
		return !0
	};
	c_.ajn = function (F) {
		if (F.add.lnk2)
			for (var w = 0; w < F.add.lnk2.length; w++) {
				var P = F.add.lnk2[w].Za;
				F.add.lnk2[w].Za = c_.vs() + P.slice(8);
				for (var o = 0; o < F.r.length; o++) {
					var X = F.r[o].add.SoLd;
					if (X && X.Idnt.v == P) X.Idnt.v = F.add.lnk2[w].Za
				}
			}
	};
	c_.prototype.zr = function (F, P, o) {
		F.sort(function (v, A) {
			return v - A
		});
		var top = F[F.length - 1],
			X = this.r.slice(0),
			Y = this.p.slice(0),
			y = [],
			z = [];
		for (var w = 0; w < this.r.length; w++) {
			if (F.indexOf(w) != -1) z.push(this.r[w]);
			else y.push(this.r[w])
		}
		this.wG(z);
		this.p = [];
		var s = this.root.o7(this, !0);
		if (P) s = s.$X(P);
		if (o) s = s.s7(o);
		if (s.qr()) s = new ev(0, 0, 100, 100);
		var t = new ev(-s.x, -s.y, this.Z, this.h),
			d = new Uint8Array(em.$I("PSD").bb(this, 0, 0, [!0, !1]));
		this.wG(X);
		this.p = Y;
		var U = new c_(this.r[top].getName());
		em.$I("PSD").xo(d.buffer, U);
		delete U.add.artd;
		U.ei = [
			[],
			[]
		];
		U.P0 = [];
		U.wG(U.r);
		c_.ajn(U);
		B.$K.zy(U, s);
		U.A();
		U.tf();
		U.lD();
		return [U, s, y, top]
	};
	c_.prototype.fM = function (F, P) {
		var o = this.zr(F),
			X = o[0],
			Y = o[1],
			y = o[2],
			top = o[3],
			z = new Uint8Array(em.$I("PSD").bb(X));
		if (P) y = this.r.slice(0);
		var s = this.f6(z, X.name, Y.x, Y.y);
		if (top == this.r.length - 1) y.push(s);
		else y.splice(P ? top + 1 : top - F.length + 1, 0, s);
		this.wG(y);
		this.p = [y.indexOf(s)]
	};
	c_.vs = function () {
		var F = "";
		for (var w = 0; w < 8; w++) F += Math.floor(Math.random() * 16).toString(16);
		return F
	};
	c_.prototype.e6 = function (F) {
		if (F == null) return;
		if (this.add.Patt == null) this.add.Patt = [];
		var P = this.add.Patt;
		for (var w = 0; w < P.length; w++)
			if (P[w].id == F.id) return;
		P.push(F)
	};
	c_.prototype.f6 = function (F, P, o, X, z) {
		if (this.add.lnk2 == null) this.add.lnk2 = [];
		var s = null,
			Z = !1;
		for (var w = 0; w < this.add.lnk2.length; w++)
			if (H.Qn(F, this.add.lnk2[w].raw)) {
				s = this.add.lnk2[w].Za;
				break
			} if (s == null) {
			var t = em.Xh(F.buffer);
			s = c_.vs() + "-d71c-11e5-b1ae-a548a96e5f9f";
			var d = new h.Zr;
			d.Za = s;
			d.EC = t == "psd" ? "8BIM" : "    ";
			d.Z5 = P + "." + t;
			d.d1 = t == "psd" ? "8BPB" : "    ";
			d.open = 0;
			d.raw = F;
			d.type = "liFD";
			d.Sp = 2;
			this.add.lnk2.push(d)
		}
		var U = this._p(s),
			v = c_.vs() + "-d71c-11e5-b1ae-a548a96e5f9f",
			A = this.an();
		A.uf(P);
		if (U != null) {
			var D = A.rect = U.DW[1].clone();
			A.rect.offset(o, X);
			var q = Math.max(D.Z / this.Z, D.h / this.h),
				Z = z && q > 1.0001;
			if (Z) {
				D.Z = Math.round(D.Z / q);
				D.h = Math.round(D.h / q);
				D.x = Math.round((this.Z - D.Z) / 2);
				D.y = Math.round((this.h - D.h) / 2)
			}
			A.buffer = H.R(A.rect.M() * 4);
			if (!Z) H.Hk(U.DW[0], A.buffer)
		}
		A.add.SoLd = {
			classID: "null",
			Idnt: {
				t: "TEXT",
				v: s
			},
			Impr: {
				t: "Objc",
				v: {
					__name: "None",
					classID: "none"
				}
			},
			placed: {
				t: "TEXT",
				v: v
			},
			PgNm: {
				t: "long",
				v: 1
			},
			totalPages: {
				t: "long",
				v: 1
			},
			frameStep: {
				t: "Objc",
				v: {
					classID: "null",
					numerator: {
						t: "long",
						v: 0
					},
					denominator: {
						t: "long",
						v: 600
					}
				}
			},
			duration: {
				t: "Objc",
				v: {
					classID: "null",
					numerator: {
						t: "long",
						v: 0
					},
					denominator: {
						t: "long",
						v: 600
					}
				}
			},
			frameCount: {
				t: "long",
				v: 1
			},
			Annt: {
				t: "long",
				v: 16
			},
			Type: {
				t: "long",
				v: 2
			},
			Trnf: null,
			nonAffineTransform: null,
			warp: {
				t: "Objc",
				v: H.mD.R(A.rect)
			},
			Sz: {
				t: "Objc",
				v: {
					classID: "Pnt",
					Wdth: {
						t: "doub",
						v: A.rect.Z
					},
					Hght: {
						t: "doub",
						v: A.rect.h
					}
				}
			},
			Rslt: {
				t: "UntF",
				v: {
					type: "#Rsl",
					val: 72
				}
			}
		};
		var R = H.D.z0(A.rect).d;
		A.add.SoLd.Trnf = B.X.uE(R);
		A.add.SoLd.nonAffineTransform = B.X.uE(R);
		if (Z) A.Gy(this, !1);
		return A
	};
	c_.prototype.lD = function (F) {
		if (F != null) {
			this.A();
			this.tf(F);
			var P = this.buffer;
			if (k.pQ) this.Z_.get(P);
			else P = P.slice(0);
			this.A();
			this.tf();
			return P
		}
		if (this.h0) {
			this.tf();
			this.h0 = null
		}
		if (k.pQ && this.if) {
			this.Z_.get(this.buffer);
			this.if = null;
			this.Ob = !0
		}
		return this.buffer
	};
	c_.prototype.tT = function () {
		for (var w = 0; w < this.r.length; w++) this.r[w].pc();
		this.A()
	};
	c_.prototype.M6 = function () {
		for (var w = 0; w < this.r.length; w++)
			if (this.r[w].add.lmfx) this.r[w].G.Zf = !0
	};
	c_.prototype.kV = function () {
		var F = this.zQ.r1044;
		if (F == null) {
			F = this.zQ.r1044 = new Uint8Array(4);
			var P = 0;
			for (var w = 0; w < this.r.length; w++) P = Math.max(P, this.r[w].add.lyid);
			r.GB(F, 0, P)
		}
		var o = r.l(F, 0);
		r.GB(F, 0, o + 1);
		return o + 1
	};
	c_.prototype.FD = function (F, P, o) {
		if (F == null) F = !0;
		var X = this;
		if (X.oD.length != 0) return !0;
		if (X.p.length != 1) {
			if (F) alert(X.p.length == 0 ? "Select a layer first." : "More than one layer selected.");
			return !1
		}
		return this.vx(F, P, o)
	};
	c_.prototype.vx = function (F, P, o) {
		if (F == null) F = !0;
		if (P == null) P = !1;
		var X = this;
		if (X.oD.length != 0) return !0;
		for (var w = 0; w < X.p.length; w++) {
			var Y = X.r[X.p[w]],
				y = P || Y.kB <= 0;
			if (Y.add.lsct != null && Y.add.lsct != gr.eZ && Y.kB != 1) {
				if (F) alert(h9.get([15, 7, 2]));
				return !1
			}
			if (y && !Y.Mq()) {
				if (F) alert(h9.get([15, 7, 2]));
				return !1
			}
			if (y && Y.add.TySh) {
				return this.qY(F, [15, 7, 3], o)
			}
			if (y && Y.add.SoLd) {
				return this.qY(F, [15, 7, 4], o)
			}
			if (Y.k6(1) || Y.k6(31)) {
				if (F) alert(h9.get([6, 57, 0]));
				return !1
			}
		}
		return !0
	};
	c_.prototype.qY = function (F, P, o) {
		if (F && typeof F == "object") {
			var X = window.confirm(h9.get(P) + ". " + h9.get([6, 8]) + "?");
			if (X) {
				var Y = new l(i.E.QJ, !0);
				Y.data = {
					Bm: "rasterizeLayer",
					w1: {
						classID: "rasterizeLayer",
						null: gY.Pe("Lyr", !0)
					}
				};
				F.w(Y)
			}
			return o ? X : !1
		}
		if (F) alert(h9.get(P));
		return !1
	};
	c_.prototype.i7 = function (F) {
		var P = this.root.V$(F);
		if (P.parent) return P.n.UQ() && this.i7(P.parent.index);
		else return P.n.UQ()
	};
	c_.prototype.Xb = function (F) {
		var P = this.root.V$(F);
		if (P == null) return null;
		var o = P.n;
		if (o.add.artb) return o.sc();
		if (P.parent) return this.Xb(P.parent.index);
		return null
	};
	c_.prototype.mx = function () {
		var F = this.r[this.p[0]];
		if (F.kB <= 0 && !F.rect.dg(this.K.rect)) {
			alert("Selected area is empty.");
			return !1
		}
		if (this.p.length == 1 && this.K) {
			var P = H.R(this.K.channel.length);
			H._h(F.buffer, F.rect, P, this.K.rect);
			H.vB(this.K.channel, P);
			if (H.wq(P, 0)) {
				alert("Selected area is empty.");
				return !1
			}
		}
		return !0
	};
	c_.prototype.Rp = function () {
		if (this.zQ["r" + 1037] == null) this.U9(30);
		return r.tF(this.zQ["r" + 1037], 0)
	};
	c_.prototype.U9 = function (F) {
		if (this.zQ["r" + 1037] == null) this.zQ["r" + 1037] = new Uint8Array(4);
		if (r.tF(this.zQ["r" + 1037], 0) == F) return;
		r.V3(this.zQ["r" + 1037], 0, F);
		this.M6()
	};
	c_.prototype.$p = function () {
		if (this.zQ["r" + 1049] == null) this.Q3(30);
		return r.tF(this.zQ["r" + 1049], 0)
	};
	c_.prototype.Q3 = function (F) {
		if (this.zQ["r" + 1049] == null) this.zQ["r" + 1049] = new Uint8Array(4);
		if (r.tF(this.zQ["r" + 1049], 0) == F) return;
		r.V3(this.zQ["r" + 1049], 0, F);
		this.M6()
	};
	c_.prototype.AB = function (F) {
		if (this.add.lnk2 == null) return null;
		for (var w = 0; w < this.add.lnk2.length; w++)
			if (this.add.lnk2[w].Za == F) return this.add.lnk2[w];
		return null
	};
	c_.prototype.a8e = function (F) {
		var P = this.AB(F);
		if (P == null) return !1;
		var o = em.Xh(P.raw.buffer);
		if (o == null) return !1;
		if (em.$I(o) != null || o == "psd") return !0;
		return !1
	};
	c_.prototype._p = function (F, P, o, X) {
		var Y = this.AB(F);
		if (Y == null) return null;
		Y.lD(P, o, X);
		if (Y.DW) return Y
	};
	c_.prototype.tf = function (F) {
		if (F == null) F = 1e9;
		var P = this.Z,
			o = this.h,
			X = new ev(0, 0, P, o),
			Y = X.$X(this.h0);
		if (k.pQ && this.Z_ == null) this.Z_ = new k._B(P, o, !0);
		if (this.buffer == null || this.buffer.length != P * o * 4 || k.pQ && (this.Z_.Z != P || this.Z_.h != o)) {
			this.buffer = H.R(P * o * 4);
			if (this.Z_) this.Z_.delete();
			if (k.pQ) this.Z_ = new k._B(P, o, !0)
		}
		if (Y.qr()) return;
		if (!Y.Qn(X)) {
			if (!k.pQ) {
				var y = H.Zm(Y.M() * 4);
				H.BP(y, Y, this.buffer, X)
			}
			if (k.pQ) {
				k.k1(this.Z_, Y);
				k.OL(0)
			}
		} else {
			if (k.pQ) {
				this.Z_.set(null)
			} else {
				H.set(this.buffer, 0)
			}
		}
		var z = Date.now(),
			s = k.pQ ? this.Z_ : this.buffer;
		this.root.Km(s, X, Y, this, [], F);
		this.if = this.h0.clone()
	};
	c_.prototype.an = function (F) {
		var P = new h;
		P.rect = new ev(0, 0, 0, 0);
		P.buffer = H.R(1);
		P.add.luni = new aH(0, 0);
		if (F != !0) P.add.lyid = this.kV();
		P.add.lsct = gr.eZ;
		P.add.lclr = 0;
		P.add.fxrp = new aH(0, 0);
		return P
	};
	c_.prototype.Px = function (F) {
		var P = this.an(F);
		P.uf("</Layer group>");
		P.add.lsct = gr.Qi;
		P.ix = 24;
		return P
	};
	c_.prototype.ry = function () {
		return this.xG != this.gC
	};
	c_.prototype.TX = function (F) {
		while (this.history.length > this.xG + 1) this.history.pop();
		if (this.gC > this.xG) this.gC = -1;
		if (F.Q.id != B.Jc) {
			this.Kg = !0;
			if (this.e5.lastAppliedComp) {
				delete this.e5.lastAppliedComp;
				this.Ob = !0
			}
		}
		this.history.push(F);
		this.xG++;
		this.Ob = !0;
		var P = ej.WQ() ? 60 : 30,
			o = 0;
		for (var w = this.history.length - 1; w >= 0; w--) {
			var X = this.history[w];
			if (X.vb) continue;
			o++;
			if (o == P) {
				this.xG -= w;
				this.history = this.history.slice(w);
				break
			}
		}
	};
	c_.prototype.a1 = function () {
		if (this.xG != this.history.length - 1) return null;
		return this.history[this.history.length - 1]
	};
	c_.prototype.JU = function (F, P, o, X) {
		if (F == null) F = !1;
		var Y = P != null ? [P] : this.p.slice(0);
		if (X) {
			var y = [];
			for (var w = 0; w < Y.length; w++) {
				var z = this.r[Y[w]].Qk;
				if (z != 0 && y.indexOf(z) == -1) y.push(z)
			}
			for (var w = 0; w < this.r.length; w++) {
				var z = this.r[w].Qk;
				if (z != 0 && y.indexOf(z) != -1 && Y.indexOf(w) == -1) Y.push(w)
			}
		}
		var s = [];
		for (var w = 0; w < Y.length; w++) {
			var t = this.Co(Y[w], F);
			for (var d = 0; d < t.length; d++)
				if (s.indexOf(t[d]) == -1) s.push(t[d]);
			if (o) {
				var e = this.root.V$(Y[w]);
				while (e.parent != null && e.parent.parent != null) {
					e = e.parent;
					if (s.indexOf(e.index) == -1) {
						s.push(e.index, e.rS)
					}
				}
			}
		}
		return s
	};
	c_.prototype.FQ = function (F, P, o) {
		var X = this,
			Y = X.JU(!1, F, null, o);
		Y.sort(function (J, W) {
			return J - W
		});
		var y = {};
		for (var z = 0; z < X.r.length; z++) {
			var s = X.r[z].getName();
			y[s] = !0
		}
		var t = [];
		for (var w = 0; w < Y.length; w++) {
			var d = X.r[Y[w]].clone(),
				q, R;
			d.add.lyid = X.kV();
			d.add.lspf = 0;
			if (d.gO()) {
				var U = d.yg(X),
					v = c_.HU(U);
				X.Bq(v);
				d.add.SoLd.placed.v = v.id
			}
			d._V(X);
			var A = d.getName(),
				Z = A.length;
			while (48 <= A.charCodeAt(Z - 1) && A.charCodeAt(Z - 1) <= 57) Z--;
			var D = parseInt(A.slice(Z));
			if (isNaN(D)) {
				if (A.endsWith(" copy")) {
					D = 1;
					q = A.slice(0, A.length - 5)
				} else {
					D = 0;
					q = A
				}
			} else if (A.slice(0, Z).endsWith(" copy ")) {
				D = D;
				q = A.slice(0, Z - 6)
			} else {
				D = 0;
				q = A
			}
			D++;
			while (!0) {
				R = q + " copy" + (D == 1 ? "" : " " + D);
				if (y[R] == null) break;
				D++
			}
			if (A == "Background" && y["Layer 1"] == null) R = "Layer 1";
			if (P != !0) d.uf(R);
			y[R] = !0;
			t.push(d)
		}
		return t
	};
	c_.HU = function (F) {
		return {
			id: c_.vs() + F.id.slice(8),
			buffer: H.clone(F.buffer),
			rect: F.rect.clone(),
			g: F.g ? F.g.clone() : null
		}
	};
	c_.eg = function (F) {
		return {
			id: F,
			rect: new ev,
			buffer: H.R(1),
			g: new h.vm
		}
	};
	c_.GG = function (F, P) {
		if (P == null) P = {
			vmsk: new h.iO
		};
		if (P.vogk == null) {
			P.vogk = [];
			var o = H.V.k3(P.vmsk.b);
			for (var X = 0; X < o; X++) P.vogk.push(H.P$.Zm())
		}
		return {
			name: F,
			XN: 0,
			add: P
		}
	};
	c_.prototype.Cj = function (F) {
		var P = [],
			o = [],
			X = this,
			y = 0;
		for (var w = 1; w < X.VW.length; w++) {
			var Y = X.VW[w];
			Y.XN = -1 - w;
			P.push(Y);
			if (X.QP.indexOf(w) != -1) o.push(P.length - 1)
		}
		if (X.VW[0].add.vmsk.b.length > 2) {
			var Y = X.VW[0];
			Y.XN = -1;
			P.push(Y);
			if (X.QP.indexOf(0) != -1) o.push(P.length - 1)
		}
		var z = X.mb == null;
		if (z) X.mb = [];
		for (var w = X.p.length - 1; w >= 0; w--) {
			var s = X.r[X.p[w]],
				t = s.add.TySh;
			if (s.add.vmsk != null && (s.yb || s.ws())) {
				var Y = c_.GG("\"" + s.getName() + "\" Shape Path", s.add);
				Y.XN = X.p[w];
				P.push(Y);
				if (z) X.mb.push(y);
				if (X.mb.indexOf(y) != -1) o.push(P.length - 1);
				y++
			}
			if (F != !0 && t && t.add && H.mD.O8(t.VU)) {
				var Y = c_.GG("\"" + s.getName().slice(0, 10) + "..\" Text Path", t.add);
				Y.XN = 1e6 + X.p[w];
				P.push(Y);
				o.push(P.length - 1);
				y++
			}
		}
		if (o.length == 0 && F) {
			X.VW[0].XN = -1;
			X.QP = [0];
			o.push(P.length);
			P.push(X.VW[0])
		}
		return [P, o]
	};
	c_.prototype.Co = function (w, F) {
		var P = [],
			e = this.root.V$(w);
		if (e) e.as(P, F);
		return P
	};
	c_.prototype.LU = function () {
		this.root.m2(this, new ev(0, 0, this.Z, this.h), 32)
	};
	c_.prototype.wG = function (F) {
		for (var w = 0; w < this.r.length; w++) {
			var P = this.r[w];
			if (F.indexOf(P) == -1) {
				P.G.a1R();
				P.A()
			}
		}
		this.r = F.slice(0);
		this.dr()
	};
	c_.prototype.dr = function () {
		var F = this.r,
			P = F.length;
		this.root = new cl;
		var o = this.an(!0);
		o.sW = "pass";
		o.add.lsct = gr.lw;
		var X = this.Px(!0),
			Y = [X];
		for (var w = 0; w < P; w++) Y.push(F[w]);
		Y.push(o);
		this.root.E7(Y, 0, 0);
		if (this.p.length == 0) this.p = [P - 1]
	};
	c_.prototype.HP = function () {
		if (this.p.length != 1) return;
		var F = this.root.V$(this.p[0]);
		while (F.parent != null) {
			var P = F.parent.n;
			P.add.lsct = gr.lw;
			F = F.parent
		}
		this.Vg = this.a7L = !0
	};
	c_.prototype.a7T = function () {
		this.dr();
		var F = [this.root],
			cS = 0;
		while (F.length != 0) {
			var top = F.pop();
			cS++;
			if (top.n.add.lsct == gr.lw)
				for (var w = 0; w < top.children.length; w++) F.push(top.children[w])
		}
		if (cS > 1e3) {
			var P = this.root.children;
			for (var w = 0; w < P.length; w++)
				if (P[w].n.add.lsct == gr.lw) P[w].n.add.lsct = gr.kE
		}
	};
	c_.Gg = function (F, P, o, X, Y) {
		var y = {
			__name: "Make",
			classID: "Mk",
			Nw: {
				t: "Objc",
				v: {
					classID: "Dcmn",
					Nm: {
						t: "TEXT",
						v: X
					},
					Md: {
						t: "type",
						v: {
							classID: "RGBM"
						}
					},
					Wdth: {
						t: "UntF",
						v: {
							type: "#Rlt",
							val: F
						}
					},
					Hght: {
						t: "UntF",
						v: {
							type: "#Rlt",
							val: P
						}
					},
					Rslt: {
						t: "UntF",
						v: {
							type: "#Rsl",
							val: o
						}
					},
					pixelScaleFactor: {
						t: "doub",
						v: 1
					},
					Fl: {
						t: "enum",
						v: {
							Fl: Y
						}
					},
					Dpth: {
						t: "long",
						v: 8
					},
					profile: {
						t: "TEXT",
						v: "sRGB IEC61966-2.1"
					}
				}
			}
		};
		return {
			Bm: "make",
			w1: y
		}
	};
	c_.akv = function (F, P) {
		var o = 0,
			X = 0,
			Y = 72,
			y = P.aiN,
			z = F.preset && F.preset.v == "Clipboard";
		if (z) {
			o = y.Z;
			X = y.h
		} else {
			o = F.Wdth.v.val;
			X = F.Hght.v.val;
			Y = F.Rslt.v.val
		}
		var s = new c_((F.Nm ? F.Nm.v : h9.get([11, 7])) + ".psd");
		s.Z = o;
		s.h = X;
		s.NB = Y;
		var t = s.an();
		t.uf("Background");
		s.wG([t]);
		t.add.lspf = 1 << 2;
		var d = F.Fl ? F.Fl.v.Fl : "Wht";
		if (d != "Trns") {
			var U = P.Ty;
			U = (U & 255) << 16 | (U >>> 8 & 255) << 8 | U >>> 16;
			t.rect = new ev(0, 0, o, X);
			t.buffer = H.R(o * X * 4);
			H.XB(t.buffer, {
				Wht: 4294967295,
				BckC: 255 << 24 | U
			} [d])
		}
		s.buffer = H.R(o * X * 4);
		return s
	};

	function hr(F) {
		this.EA = F;
		this.F = 0;
		this.c = new aH(0, 0);
		this.D8 = 0;
		this.qa = [1, 1, 1];
		this.xX = new ev(0, 0, 1, 1);
		this.a9N = new ev(0, 0, F.Z, F.h);
		this.GW = null;
		this.Su = null;
		this.YQ = new Uint32Array(0);
		this.Pq = null;
		this.Yb = null;
		this.lh = H.R(0);
		this.ox = null;
		this.D6 = null
	}
	hr.prototype.c5 = function () {
		var F = new cu,
			P = this.xX,
			o = this.EA,
			X = this.F,
			Y = this.c,
			y = Math.round((P.Z - o.Z * X) / 2 + Y.x),
			z = Math.round((P.h - o.h * X) / 2 + Y.y);
		F.translate(-y, -z);
		F.scale(1 / X, 1 / X);
		var s = o.Z / 2,
			t = o.h / 2;
		F.translate(-s, -t);
		F.rotate(this.D8);
		F.translate(s, t);
		return F
	};
	hr.prototype.rE = function (F) {
		var P = this.xX,
			o = this.EA,
			X = Math.atan2(-F.i, F.m),
			Y = o.Z / 2,
			y = o.h / 2;
		F.translate(-Y, -y);
		F.rotate(-X);
		F.translate(Y, y);
		var z = 1 / F.d3();
		F.scale(z, z);
		var s = -F.PV,
			t = -F.ye,
			d = Math.round(s - (P.Z - o.Z * z) / 2),
			U = Math.round(t - (P.h - o.h * z) / 2);
		this.D8 = X;
		this.F = z >= 1 ? Math.round(z) : z;
		this.c = new aH(d, U)
	};
	hr.prototype.PY = function (F, P) {
		var o = this.c5();
		return o.aT(new aH(F, P))
	};
	hr.prototype._R = function (F, P) {
		var o = this.c5();
		o.nJ();
		return o.aT(new aH(F, P))
	};
	hr.prototype.yO = function () {
		var F = this.EA,
			P = this.F,
			o = this.xX.Z,
			X = this.xX.h,
			Y = Math.floor(F.Z * P),
			y = Math.floor(F.h * P);
		if (P < .99) {
			var z = H.adx(null, new ev(0, 0, F.Z, F.h), P).rect;
			Y = z.Z;
			y = z.h
		}
		return new ev(Math.round((o - Y) / 2 + this.c.x), Math.round((X - y) / 2 + this.c.y), Y, y)
	};
	hr.prototype.Ze = function () {
		var F = this.EA,
			P = this,
			o = 1 / P.F,
			X = this.yO();
		return new ev(Math.floor((P.xX.x - X.x) * o), Math.floor((P.xX.y - X.y) * o), Math.ceil(P.xX.Z * o) + 1, Math.ceil(P.xX.h * o) + 1)
	};

	function ce() {}
	ce.order = "ebbl FrFX IrSh IrGl ChFX SoFi GrFl patternFill OrGl DrSh".split(" ");
	ce.og = "ebblMulti frameFXMulti innerShadowMulti IrGlMulti ChFXMulti solidFillMulti gradientFillMulti patternFillMulti OrGlMulti dropShadowMulti".split(" ");
	ce.names = [
		[14, 4],
		[14, 9],
		[14, 1],
		[14, 3],
		[14, 8],
		[14, 5],
		[14, 6],
		[14, 7],
		[14, 2],
		[14, 0]
	];
	ce.eB = ["DrSh", "IrSh", "SoFi", "GrFl", "FrFX"];
	ce.QB = ["Clr"];
	ce.Zt = "Grad Rvrs Type Algn Angl Dthr Scl Ofst".split(" ");
	ce.QZ = ["Ptrn", "Scl", "Algn", "phase"];
	ce.Bf = {
		z1: "{\"t\":\"Objc\",\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"v\":255,\"t\":\"doub\"},\"Grn\":{\"v\":0,\"t\":\"doub\"},\"Bl\":{\"v\":0,\"t\":\"doub\"}}}",
		wB: "{\"t\":\"Objc\",\"v\":{\"classID\":\"Grdn\",\"Nm\":{\"v\":\"Two Color\",\"t\":\"TEXT\"},\"GrdF\":{\"v\":{\"GrdF\":\"CstS\"},\"t\":\"enum\"},\"Intr\":{\"v\":4096,\"t\":\"doub\"},\"Clrs\":{\"v\":[{\"v\":{\"classID\":\"Clrt\",\"Clr\":{\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"v\":0,\"t\":\"doub\"},\"Grn\":{\"v\":0,\"t\":\"doub\"},\"Bl\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},\"Type\":{\"v\":{\"Clry\":\"UsrS\"},\"t\":\"enum\"},\"Lctn\":{\"v\":0,\"t\":\"long\"},\"Mdpn\":{\"v\":50,\"t\":\"long\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"Clrt\",\"Clr\":{\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"v\":255,\"t\":\"doub\"},\"Grn\":{\"v\":255,\"t\":\"doub\"},\"Bl\":{\"v\":255,\"t\":\"doub\"}},\"t\":\"Objc\"},\"Type\":{\"v\":{\"Clry\":\"UsrS\"},\"t\":\"enum\"},\"Lctn\":{\"v\":4096,\"t\":\"long\"},\"Mdpn\":{\"v\":50,\"t\":\"long\"}},\"t\":\"Objc\"}],\"t\":\"VlLs\"},\"Trns\":{\"v\":[{\"v\":{\"classID\":\"TrnS\",\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\":100},\"t\":\"UntF\"},\"Lctn\":{\"v\":0,\"t\":\"long\"},\"Mdpn\":{\"v\":50,\"t\":\"long\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"TrnS\",\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\":100},\"t\":\"UntF\"},\"Lctn\":{\"v\":4096,\"t\":\"long\"},\"Mdpn\":{\"v\":50,\"t\":\"long\"}},\"t\":\"Objc\"}],\"t\":\"VlLs\"}}}",
		mR: "{\"t\":\"Objc\",\"v\":{\"classID\":\"Grdn\",\"Nm\":{\"v\":\"Foreground to Background\",\"t\":\"TEXT\"},\"GrdF\":{\"t\":\"enum\",\"v\":{\"GrdF\":\"CstS\"}},\"Intr\":{\"t\":\"doub\",\"v\":4096},\"Clrs\":{\"t\":\"VlLs\",\"v\":[{\"t\":\"Objc\",\"v\":{\"classID\":\"Clrt\",\"Type\":{\"t\":\"enum\",\"v\":{\"Clry\":\"FrgC\"}},\"Lctn\":{\"t\":\"long\",\"v\":0},\"Mdpn\":{\"t\":\"long\",\"v\":50}}},{\"t\":\"Objc\",\"v\":{\"classID\":\"Clrt\",\"Type\":{\"t\":\"enum\",\"v\":{\"Clry\":\"BckC\"}},\"Lctn\":{\"t\":\"long\",\"v\":4096},\"Mdpn\":{\"t\":\"long\",\"v\":50}}}]},\"Trns\":{\"t\":\"VlLs\",\"v\":[{\"t\":\"Objc\",\"v\":{\"classID\":\"TrnS\",\"Opct\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":100}},\"Lctn\":{\"t\":\"long\",\"v\":0},\"Mdpn\":{\"t\":\"long\",\"v\":50}}},{\"t\":\"Objc\",\"v\":{\"classID\":\"TrnS\",\"Opct\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":100}},\"Lctn\":{\"t\":\"long\",\"v\":4096},\"Mdpn\":{\"t\":\"long\",\"v\":50}}}]}}}",
		S4: "{\"t\":\"Objc\",\"v\":{\"classID\":\"Ptrn\",\"Nm\":{\"v\":\"orangeslices\",\"t\":\"TEXT\"},\"Idnt\":{\"v\":\"c7acb22a-47a6-11de-919a-bf574370eaaf\",\"t\":\"TEXT\"}}}"
	};
	ce.Bf.z1 = "\"Clr\": " + ce.Bf.z1;
	ce.Bf.j = "\"Grad\":" + ce.Bf.wB + ",\"Rvrs\":{\"v\":false,\"t\":\"bool\"},\"Type\":{\"v\":{\"GrdT\":\"Lnr\"},\"t\":\"enum\"},\"Algn\":{\"v\":true,\"t\":\"bool\"},\"Angl\":{\"v\":{\"type\":\"#Ang\",\"val\":90},\"t\":\"UntF\"},\"Scl\":{\"v\":{\"type\":\"#Prc\",\"val\":100},\"t\":\"UntF\"},\"Ofst\":{\"v\":{\"classID\":\"Pnt\",\"Hrzn\":{\"v\":{\"type\":\"#Prc\",\"val\":0},\"t\":\"UntF\"},\"Vrtc\":{\"v\":{\"type\":\"#Prc\",\"val\":0},\"t\":\"UntF\"}},\"t\":\"Objc\"},\"Dthr\":{\"v\":false,\"t\":\"bool\"}";
	ce.Bf.S4 = "\"Ptrn\":" + ce.Bf.S4 + ",\"Scl\":{\"v\":{\"type\":\"#Prc\",\"val\":100},\"t\":\"UntF\"},\"Algn\":{\"v\":true,\"t\":\"bool\"},\"phase\":{\"v\":{\"classID\":\"Pnt\",\"Hrzn\":{\"v\":0,\"t\":\"doub\"},\"Vrtc\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"}";
	ce.default = "{ \"classID\": \"null\", \"Scl\": {\"t\": \"UntF\", \"v\": { \"type\": \"#Prc\",\"val\": 100} }, \"masterFXSwitch\": {\"t\": \"bool\",\"v\": true} }";
	ce.IW = ["{\"classID\":\"ebbl\",       \"enab\":{\"v\":true,\"t\":\"bool\"},  \"hglM\":{\"t\":\"enum\",\"v\":{\"BlnM\":\"Scrn\"}},\"hglC\":{\"t\":\"Objc\",\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"t\":\"doub\",\"v\":255},\"Grn\":{\"t\":\"doub\",\"v\":255},\"Bl\":{\"t\":\"doub\",\"v\":255}}},\"hglO\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":75}},\"sdwM\":{\"t\":\"enum\",\"v\":{\"BlnM\":\"Mltp\"}},\"sdwC\":{\"t\":\"Objc\",\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"t\":\"doub\",\"v\":0},\"Grn\":{\"t\":\"doub\",\"v\":0},\"Bl\":{\"t\":\"doub\",\"v\":0}}},\"sdwO\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":75}},\"bvlT\":{\"t\":\"enum\",\"v\":{\"bvlT\":\"SfBL\"}},\"bvlS\":{\"t\":\"enum\",\"v\":{\"BESl\":\"InrB\"}},\"uglg\":{\"t\":\"bool\",\"v\":true},\"lagl\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Ang\",\"val\":120}},\"Lald\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Ang\",\"val\":30}},\"srgR\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":100}},\"blur\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Pxl\",\"val\":5}},\"bvlD\":{\"t\":\"enum\",\"v\":{\"BESs\":\"In\"}},\"TrnS\":{\"t\":\"Objc\",\"v\":{\"classID\":\"ShpC\",\"Nm\":{\"t\":\"TEXT\",\"v\":\"Linear\"},\"Crv\":{\"t\":\"VlLs\",\"v\":[{\"t\":\"Objc\",\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"t\":\"doub\",\"v\":0},\"Vrtc\":{\"t\":\"doub\",\"v\":0}}},{\"t\":\"Objc\",\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"t\":\"doub\",\"v\":255},\"Vrtc\":{\"t\":\"doub\",\"v\":255}}}]}}},\"antialiasGloss\":{\"t\":\"bool\",\"v\":false},\"Sftn\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Pxl\",\"val\":0}},\"useShape\":{\"t\":\"bool\",\"v\":false},\"MpgS\":{\"t\":\"Objc\",\"v\":{\"classID\":\"ShpC\",\"Nm\":{\"t\":\"TEXT\",\"v\":\"Linear\"},\"Crv\":{\"t\":\"VlLs\",\"v\":[{\"t\":\"Objc\",\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"t\":\"doub\",\"v\":0},\"Vrtc\":{\"t\":\"doub\",\"v\":0}}},{\"t\":\"Objc\",\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"t\":\"doub\",\"v\":255},\"Vrtc\":{\"t\":\"doub\",\"v\":255}}}]}}},\"AntA\":{\"t\":\"bool\",\"v\":false},\"Inpr\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":28}},\"useTexture\":{\"t\":\"bool\",\"v\":false},\"InvT\":{\"t\":\"bool\",\"v\":false},\"Algn\":{\"t\":\"bool\",\"v\":true},\"Scl\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":100}},\"textureDepth\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":100}},\"Ptrn\":{\"t\":\"Objc\",\"v\":{\"classID\":\"Ptrn\",\"Nm\":{\"t\":\"TEXT\",\"v\":\"orangeslices\"},\"Idnt\":{\"t\":\"TEXT\",\"v\":\"c7acb22a-47a6-11de-919a-bf574370eaaf\"}}},\"phase\":{\"t\":\"Objc\",\"v\":{\"classID\":\"Pnt\",\"Hrzn\":{\"t\":\"doub\",\"v\":0},\"Vrtc\":{\"t\":\"doub\",\"v\":0}}}}", "{\"classID\":\"FrFX\",       \"enab\":{\"v\":true,\"t\":\"bool\"},  \"Md\":{\"v\":{\"BlnM\":\"Nrml\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\":100},\"t\":\"UntF\"},\"Styl\":{\"v\":{\"FStl\":\"OutF\"},\"t\":\"enum\"},\"PntT\":{\"v\":{\"FrFl\":\"SClr\"},\"t\":\"enum\"},\"Sz\":{\"v\":{\"type\":\"#Pxl\",\"val\":3},\"t\":\"UntF\"}," + ce.Bf.z1 + "," + ce.Bf.j + "," + ce.Bf.S4 + "}", "{\"classID\":\"IrSh\",       \"enab\":{\"v\":true,\"t\":\"bool\"},  \"Md\":{\"v\":{\"BlnM\":\"Mltp\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\": 75},\"t\":\"UntF\"},\"Clr\":{\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"v\":0,\"t\":\"doub\"},\"Grn\":{\"v\":0,\"t\":\"doub\"},\"Bl\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},\"uglg\":{\"v\":true,\"t\":\"bool\"},\"lagl\":{\"v\":{\"type\":\"#Ang\",\"val\":120},\"t\":\"UntF\"},\"Dstn\":{\"v\":{\"type\":\"#Pxl\",\"val\":5},\"t\":\"UntF\"},\"Ckmt\":{\"v\":{\"type\":\"#Pxl\",\"val\":0},\"t\":\"UntF\"},\"blur\":{\"v\":{\"type\":\"#Pxl\",\"val\":5},\"t\":\"UntF\"},\"Nose\":{\"v\":{\"type\":\"#Prc\",\"val\":0},\"t\":\"UntF\"},\"AntA\":{\"v\":false,\"t\":\"bool\"},\"TrnS\":{\"v\":{\"classID\":\"ShpC\",\"Nm\":{\"v\":\"Linear\",\"t\":\"TEXT\"},\"Crv\":{\"v\":[{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":0,\"t\":\"doub\"},\"Vrtc\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":255,\"t\":\"doub\"},\"Vrtc\":{\"v\":255,\"t\":\"doub\"}},\"t\":\"Objc\"}],\"t\":\"VlLs\"}},\"t\":\"Objc\"}}", "{\"classID\":\"IrGl\",       \"enab\":{\"v\":true,\"t\":\"bool\"},  \"Md\":{\"v\":{\"BlnM\":\"Scrn\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\": 75},\"t\":\"UntF\"},\"Clr\":{\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"v\":255,\"t\":\"doub\"},\"Grn\":{\"v\":255,\"t\":\"doub\"},\"Bl\":{\"v\":189.99710083007812,\"t\":\"doub\"}},\"t\":\"Objc\"},\"GlwT\":{\"v\":{\"BETE\":\"SfBL\"},\"t\":\"enum\"},\"Ckmt\":{\"v\":{\"type\":\"#Pxl\",\"val\":0},\"t\":\"UntF\"},\"blur\":{\"v\":{\"type\":\"#Pxl\",\"val\":5},\"t\":\"UntF\"},\"ShdN\":{\"v\":{\"type\":\"#Prc\",\"val\":0},\"t\":\"UntF\"},\"Nose\":{\"v\":{\"type\":\"#Prc\",\"val\":0},\"t\":\"UntF\"},\"AntA\":{\"v\":false,\"t\":\"bool\"},\"glwS\":{\"v\":{\"IGSr\":\"SrcE\"},\"t\":\"enum\"},\"TrnS\":{\"v\":{\"classID\":\"ShpC\",\"Nm\":{\"v\":\"Linear\",\"t\":\"TEXT\"},\"Crv\":{\"v\":[{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":0,\"t\":\"doub\"},\"Vrtc\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":255,\"t\":\"doub\"},\"Vrtc\":{\"v\":255,\"t\":\"doub\"}},\"t\":\"Objc\"}],\"t\":\"VlLs\"}},\"t\":\"Objc\"},\"Inpr\":{\"v\":{\"type\":\"#Prc\",\"val\":50},\"t\":\"UntF\"}}", "{\"classID\":\"ChFX\",       \"enab\":{\"v\":true,\"t\":\"bool\"},  \"Md\":{\"v\":{\"BlnM\":\"Mltp\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\": 50},\"t\":\"UntF\"},\"Clr\":{\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"v\":0,\"t\":\"doub\"},\"Grn\":{\"v\":0,\"t\":\"doub\"},\"Bl\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},\"AntA\":{\"v\":false,\"t\":\"bool\"},\"Invr\":{\"v\":true,\"t\":\"bool\"},\"lagl\":{\"v\":{\"type\":\"#Ang\",\"val\":19},\"t\":\"UntF\"},\"Dstn\":{\"v\":{\"type\":\"#Pxl\",\"val\":11},\"t\":\"UntF\"},\"blur\":{\"v\":{\"type\":\"#Pxl\",\"val\":14},\"t\":\"UntF\"},\"MpgS\":{\"v\":{\"classID\":\"ShpC\",\"Nm\":{\"v\":\"Gaussian\",\"t\":\"TEXT\"},\"Crv\":{\"v\":[{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":0,\"t\":\"doub\"},\"Vrtc\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":32,\"t\":\"doub\"},\"Vrtc\":{\"v\":7,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":64,\"t\":\"doub\"},\"Vrtc\":{\"v\":38,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":96,\"t\":\"doub\"},\"Vrtc\":{\"v\":101,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":128,\"t\":\"doub\"},\"Vrtc\":{\"v\":166,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":159,\"t\":\"doub\"},\"Vrtc\":{\"v\":209,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":191,\"t\":\"doub\"},\"Vrtc\":{\"v\":235,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":223,\"t\":\"doub\"},\"Vrtc\":{\"v\":248,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":255,\"t\":\"doub\"},\"Vrtc\":{\"v\":255,\"t\":\"doub\"}},\"t\":\"Objc\"}],\"t\":\"VlLs\"}},\"t\":\"Objc\"}}", "{\"classID\":\"SoFi\",       \"enab\":{\"v\":true,\"t\":\"bool\"},  \"Md\":{\"v\":{\"BlnM\":\"Nrml\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\":100},\"t\":\"UntF\"}," + ce.Bf.z1 + "}", "{\"classID\":\"GrFl\",       \"enab\":{\"v\":true,\"t\":\"bool\"},  \"Md\":{\"v\":{\"BlnM\":\"Nrml\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\":100},\"t\":\"UntF\"}," + ce.Bf.j + "}", "{\"classID\":\"patternFill\",\"enab\":{\"v\":true,\"t\":\"bool\"},  \"Md\":{\"v\":{\"BlnM\":\"Nrml\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\":100},\"t\":\"UntF\"}," + ce.Bf.S4 + "}", "{\"classID\":\"OrGl\",       \"enab\":{\"v\":true,\"t\":\"bool\"},  \"Md\":{\"v\":{\"BlnM\":\"Scrn\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\": 75},\"t\":\"UntF\"},\"Clr\":{\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"v\":255,\"t\":\"doub\"},\"Grn\":{\"v\":255,\"t\":\"doub\"},\"Bl\":{\"v\":189.99710083007812,\"t\":\"doub\"}},\"t\":\"Objc\"},\"GlwT\":{\"v\":{\"BETE\":\"SfBL\"},\"t\":\"enum\"},\"Ckmt\":{\"v\":{\"type\":\"#Pxl\",\"val\":0},\"t\":\"UntF\"},\"blur\":{\"v\":{\"type\":\"#Pxl\",\"val\":5},\"t\":\"UntF\"},\"Nose\":{\"v\":{\"type\":\"#Prc\",\"val\":0},\"t\":\"UntF\"},\"ShdN\":{\"v\":{\"type\":\"#Prc\",\"val\":0},\"t\":\"UntF\"},\"AntA\":{\"v\":false,\"t\":\"bool\"},\"TrnS\":{\"v\":{\"classID\":\"ShpC\",\"Nm\":{\"v\":\"Linear\",\"t\":\"TEXT\"},\"Crv\":{\"v\":[{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":0,\"t\":\"doub\"},\"Vrtc\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":255,\"t\":\"doub\"},\"Vrtc\":{\"v\":255,\"t\":\"doub\"}},\"t\":\"Objc\"}],\"t\":\"VlLs\"}},\"t\":\"Objc\"},\"Inpr\":{\"v\":{\"type\":\"#Prc\",\"val\":50},\"t\":\"UntF\"}}", "{\"classID\":\"DrSh\",       \"enab\":{\"v\":true,\"t\":\"bool\"},  \"Md\":{\"v\":{\"BlnM\":\"Mltp\"},\"t\":\"enum\"},\"Opct\":{\"v\":{\"type\":\"#Prc\",\"val\": 57},\"t\":\"UntF\"},\"Clr\":{\"v\":{\"classID\":\"RGBC\",\"Rd\":{\"v\":0,\"t\":\"doub\"},\"Grn\":{\"v\":0,\"t\":\"doub\"},\"Bl\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},\"uglg\":{\"v\":true,\"t\":\"bool\"},\"lagl\":{\"v\":{\"type\":\"#Ang\",\"val\":120},\"t\":\"UntF\"},\"Dstn\":{\"v\":{\"type\":\"#Pxl\",\"val\":27},\"t\":\"UntF\"},\"Ckmt\":{\"v\":{\"type\":\"#Pxl\",\"val\":0},\"t\":\"UntF\"},\"blur\":{\"v\":{\"type\":\"#Pxl\",\"val\":13},\"t\":\"UntF\"},\"Nose\":{\"v\":{\"type\":\"#Prc\",\"val\":0},\"t\":\"UntF\"},\"AntA\":{\"v\":false,\"t\":\"bool\"},\"TrnS\":{\"v\":{\"classID\":\"ShpC\",\"Nm\":{\"v\":\"Line\xE1rn\xED\",\"t\":\"TEXT\"},\"Crv\":{\"v\":[{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":0,\"t\":\"doub\"},\"Vrtc\":{\"v\":0,\"t\":\"doub\"}},\"t\":\"Objc\"},{\"v\":{\"classID\":\"CrPt\",\"Hrzn\":{\"v\":255,\"t\":\"doub\"},\"Vrtc\":{\"v\":255,\"t\":\"doub\"}},\"t\":\"Objc\"}],\"t\":\"VlLs\"}},\"t\":\"Objc\"},\"layerConceals\":{\"v\":true,\"t\":\"bool\"}}"];
	ce.j = {
		types: "Lnr Rdl Angl Rflc Dmnd shapeburst".split(" "),
		names: [
			[19, 0, 0],
			[19, 0, 1],
			[19, 0, 2],
			[19, 0, 3],
			[19, 0, 4],
			[19, 0, 5]
		]
	};
	ce.stroke = {
		types: ["InsF", "CtrF", "OutF"],
		names: [
			[19, 5, 2],
			[19, 5, 1],
			[19, 5, 0]
		],
		_n: ["SClr", "GrFl", "Ptrn"],
		a6v: [
			[13, 0],
			[12, 37],
			[12, 62]
		]
	};
	ce.I7 = {
		types: ["SfBL", "PrBL"],
		names: [
			[19, 1, 0],
			[19, 1, 1]
		],
		zC: ["SrcC", "SrcE"],
		ak7: [
			[19, 5, 1],
			[12, 69]
		]
	};
	ce.lc = {
		types: ["OtrB", "InrB", "Embs", "PlEb", "strokeEmboss"],
		style: [
			[19, 2, 0],
			[19, 2, 1],
			[19, 2, 2],
			[19, 2, 3],
			[19, 2, 4]
		],
		O5: ["SfBL", "PrBL", "Slmt"],
		ajm: [
			[19, 3, 0],
			[19, 3, 1],
			[19, 3, 2]
		],
		dir: [
			[19, 4, 0],
			[19, 4, 1]
		]
	};
	ce.bW = {
		Bb: ["strokeStyleButtCap", "strokeStyleRoundCap", "strokeStyleSquareCap"],
		Ph: ["strokeStyleAlignInside", "strokeStyleAlignCenter", "strokeStyleAlignOutside"],
		join: ["strokeStyleMiterJoin", "strokeStyleRoundJoin", "strokeStyleBevelJoin"],
		bl: ["solidColorLayer", "gradientLayer", "patternLayer"],
		default: {
			classID: "strokeStyle",
			strokeStyleVersion: {
				t: "long",
				v: 2
			},
			strokeEnabled: {
				t: "bool",
				v: !1
			},
			fillEnabled: {
				t: "bool",
				v: !0
			},
			strokeStyleLineWidth: {
				t: "UntF",
				v: {
					type: "#Pnt",
					val: 4.38
				}
			},
			strokeStyleLineDashOffset: {
				t: "UntF",
				v: {
					type: "#Pnt",
					val: 0
				}
			},
			strokeStyleMiterLimit: {
				t: "doub",
				v: 100
			},
			strokeStyleLineCapType: {
				t: "enum",
				v: {
					strokeStyleLineCapType: "strokeStyleButtCap"
				}
			},
			strokeStyleLineJoinType: {
				t: "enum",
				v: {
					strokeStyleLineJoinType: "strokeStyleMiterJoin"
				}
			},
			strokeStyleLineAlignment: {
				t: "enum",
				v: {
					strokeStyleLineAlignment: "strokeStyleAlignCenter"
				}
			},
			strokeStyleScaleLock: {
				t: "bool",
				v: !1
			},
			strokeStyleStrokeAdjust: {
				t: "bool",
				v: !1
			},
			strokeStyleLineDashSet: {
				t: "VlLs",
				v: []
			},
			strokeStyleBlendMode: {
				t: "enum",
				v: {
					BlnM: "Nrml"
				}
			},
			strokeStyleOpacity: {
				t: "UntF",
				v: {
					type: "#Prc",
					val: 100
				}
			},
			strokeStyleContent: {
				t: "Objc",
				v: JSON.parse("{\"classID\":\"solidColorLayer\"," + ce.Bf.z1 + "}")
			},
			strokeStyleResolution: {
				t: "doub",
				v: 72
			}
		}
	};
	ce._G = [{
		classID: "null",
		Clr: JSON.parse(ce.IW[5]).Clr
	}, {
		classID: "null",
		Grad: JSON.parse(ce.IW[6]).Grad,
		Dthr: {
			t: "bool",
			v: !1
		},
		Rvrs: {
			t: "bool",
			v: !1
		},
		Angl: {
			t: "UntF",
			v: {
				type: "#Ang",
				val: 60
			}
		},
		Type: {
			t: "enum",
			v: {
				GrdT: "Lnr"
			}
		},
		Algn: {
			t: "bool",
			v: !0
		},
		Scl: {
			t: "UntF",
			v: {
				type: "#Prc",
				val: 100
			}
		},
		Ofst: {
			t: "Objc",
			v: {
				classID: "Pnt",
				Hrzn: {
					t: "UntF",
					v: {
						type: "#Prc",
						val: 0
					}
				},
				Vrtc: {
					t: "UntF",
					v: {
						type: "#Prc",
						val: 0
					}
				}
			}
		}
	}, {
		classID: "null",
		Ptrn: JSON.parse(ce.IW[7]).Ptrn,
		Algn: {
			v: !0,
			t: "bool"
		},
		Scl: {
			v: {
				type: "#Prc",
				val: 100
			},
			t: "UntF"
		},
		phase: {
			v: {
				classID: "Pnt",
				Hrzn: {
					v: 0,
					t: "doub"
				},
				Vrtc: {
					v: 0,
					t: "doub"
				}
			},
			t: "Objc"
		}
	}];
	var cr = {};
	cr.ae8 = function (F, P, o) {
		if (F.qr()) return;
		var X = H.V.aeC(F.b);
		X.x = Math.floor(X.x * P);
		X.Z = Math.ceil(X.Z * P);
		X.y = Math.floor(X.y * o);
		X.h = Math.ceil(X.h * o);
		F.rect = X;
		F.channel = H.R(X.M());
		H.ob.width = X.Z;
		H.ob.height = X.h;
		var Y = H.xX;
		Y.fillStyle = "#ffffff";
		H.V.a9q(Y, F.b, P, o, -X.x, -X.y);
		Y.fill();
		var y = Y.getImageData(0, 0, X.Z, X.h).data;
		H.E4(y, F.channel, 3)
	};
	cr.h4 = function (F, P) {
		function o(F, A) {
			if (F == null) return null;
			var Z = F[A].v,
				D;
			if (Z.length != 0) {
				D = Z[0].v;
				if (!D.enab.v) D = null
			}
			return D
		}
		var X = P.SoCo,
			Y = P.GdFl,
			y = o(F, "solidFillMulti"),
			z = o(F, "gradientFillMulti");
		if (y == null && z == null) return [X, Y];
		var s = cr.a3n;
		if (X && y && z == null) {
			var t = JSON.parse(JSON.stringify(X));
			t.Clr.v = s(y.Clr.v, X.Clr.v, y);
			return [t, null]
		}
		if (Y && y && z == null) {
			var d = JSON.parse(JSON.stringify(Y)),
				U = d.Grad.v.Clrs.v;
			for (var w = 0; w < U.length; w++) {
				var v = U[w].v.Clr;
				v.v = s(y.Clr.v, v.v, y)
			}
			return [null, d]
		}
		if (X && z) {
			var d = JSON.parse(JSON.stringify(z)),
				U = d.Grad.v.Clrs.v;
			for (var w = 0; w < U.length; w++) {
				var v = U[w].v.Clr;
				v.v = s(v.v, X.Clr.v, z)
			}
			return [null, d]
		}
		return [y, z]
	};
	cr.a2h = {
		JQ: H.R(4),
		Nu: H.R(4),
		U: new ev(0, 0, 1, 1)
	};
	cr.a3n = function (F, P, o) {
		var X = aK.pT(o.Md.v.BlnM),
			Y = o.Opct.v.val / 100,
			y = cr.a2h;
		F = H.j.T6(F);
		P = H.j.T6(P);
		y.JQ[0] = F.U;
		y.JQ[1] = F.S;
		y.JQ[2] = F.i;
		y.JQ[3] = 255;
		y.Nu[0] = P.U;
		y.Nu[1] = P.S;
		y.Nu[2] = P.i;
		y.Nu[3] = 255;
		H.N.DO(X, y.JQ, y.U, y.Nu, y.U, y.U, Y);
		return {
			classID: "RGBC",
			Rd: {
				t: "doub",
				v: y.Nu[0]
			},
			Grn: {
				t: "doub",
				v: y.Nu[1]
			},
			Bl: {
				t: "doub",
				v: y.Nu[2]
			}
		}
	};
	cr.BM = function (F, P, o) {
		var X = F;
		F = F.slice(0);
		var Y = aK.YA[aK.zn.indexOf(P.Md.v.BlnM)],
			y = H.j.T6(P.Clr.v),
			z = 4278190080 | Math.round(y.i) << 16 | Math.round(y.S) << 8 | Math.round(y.U),
			s = H.R(o.M() * 4);
		H.XB(s, z);
		H.N.DO(Y, s, o, F, o, o, P.Opct.v.val / 100);
		for (var w = 0; w < F.length; w += 4) F[w + 3] = X[w + 3];
		return F
	};
	cr.QE = function (F, P) {
		var o = ["Sz", "blur", "Sftn", "Dstn"];
		for (var w = 0; w < ce.order.length; w++) {
			var X = ce.order[w],
				Y = F[ce.og[w]].v;
			for (var y = 0; y < Y.length; y++) {
				var z = Y[y].v;
				for (var s = 0; s < o.length; s++) {
					var t = z[o[s]];
					if (t) {
						var d = t.v.val,
							U = d;
						U = Math.max(d == 0 ? 0 : 1, U * P);
						if (X == "ChFX") U = Math.min(U, 250);
						if (X == "ebbl") {
							if (o[s] == "blur") U = Math.min(U, 250);
							if (o[s] == "Sftn") U = Math.min(U, 16)
						}
						t.v.val = Math.round(U)
					}
				}
				if (X == "ebbl" || X == "patternFill" || X == "FrFX")
					if (z.Ptrn && z.Scl) z.Scl.v.val = Math.max(1, Math.min(1e3, z.Scl.v.val * P))
			}
		}
	};
	cr.a5J = function (F, P, o) {
		var X = new ev(-.5, -.5, 1, 1),
			Y = F.add.lmfx;
		for (var w = 0; w < ce.order.length; w++) {
			var y = ce.order[w],
				z = Y[ce.og[w]].v;
			for (var s = 0; s < z.length; s++) {
				var t = z[s].v,
					A;
				if (!t.enab.v) continue;
				var d = t.blur ? t.blur.v.val + 1 : 0,
					U = t.Ckmt ? t.Ckmt.v.val / 100 : 0,
					v = Math.round(d * U);
				if (y == "DrSh" || y == "IrSh" && o) {
					A = new ev(-.5, -.5, 1, 1);
					A.PK(d, d);
					cr.sB(A, t, P, 0)
				}
				if (y == "OrGl" || y == "IrGl" && o) {
					A = new ev(-.5, -.5, 1, 1);
					A.PK(d, d)
				}
				if (y == "FrFX") {
					var Z = cr.Uo(t),
						D = Z[1];
					if (o) D = Math.max(Z[0], D);
					A = new ev(-.5, -.5, 1, 1);
					A.PK(Math.ceil(D), Math.ceil(D))
				}
				if (y == "ebbl") {
					var d = t.blur.v.val,
						q = t.bvlS.v.BESl;
					if (q == "Embs" || q == "PlEb") d /= 2;
					var R = ["OtrB", "InrB", "Embs", "PlEb", "strokeEmboss"],
						J = ["SfBL", "PrBL", "Slmt"],
						W = ["In", "Out"],
						p = t.bvlT.v.bvlT != "SfBL" ? d : d * .43,
						n = Math.round(d);
					A = new ev(-n - 1, -n - 1, 2 * n + 2, 2 * n + 2)
				}
				if (o && y == "ChFX") {
					A = new ev(-.5, -.5, 1, 1);
					A.PK(d, d);
					var b = A.clone();
					cr.sB(A, t, P, 0);
					cr.sB(b, t, P, Math.PI);
					A = A.s7(b)
				}
				if (A) X = X.s7(A)
			}
		}
		if (X.x != Math.ceil(X.x)) {
			X.x = Math.ceil(X.x);
			X.Z -= 1
		}
		if (X.y != Math.ceil(X.y)) {
			X.y = Math.ceil(X.y);
			X.h -= 1
		}
		return X
	};
	cr.Uo = function (F) {
		var P = 0,
			o = 0,
			X = F.Styl.v.FStl,
			Y = F.Sz.v.val;
		if (X == "OutF") o = Y;
		if (X == "InsF") P = Y;
		if (X == "CtrF") P = o = Y / 2;
		return [P, o]
	};
	cr.iL = function (F) {
		if (F.all == null) return;
		for (var w = 0; w < F.all.length; w++) {
			var P = F.all[w];
			if (P.Kx) P.Kx.delete();
			if (P.nZ) P.nZ.delete();
			if (P.yu) P.yu.delete()
		}
	};
	cr.alU = function (F, P, o, X, Y, y, z) {
		cr.iL(F);
		var s = cr.n6(X, Y, P, o, y, z);
		F.type = s.type, F.all = s.all;
		if (k.pQ)
			for (var w = 0; w < F.all.length; w++) {
				var t = F.all[w];
				t.Kx = new k._B(t.Xc.Z, t.Xc.h);
				t.Kx.set(t.Ww);
				delete t.Ww;
				if (t.we) {
					t.nZ = new k.p5(t.Xc.Z, t.Xc.h);
					t.nZ.set(t.we);
					delete t.we
				}
				if (t.dD) {
					t.yu = new k.p5(t.Xc.Z, t.Xc.h);
					t.yu.set(t.dD);
					delete t.dD
				}
			}
	};
	cr.n6 = function (F, P, o, X, Y, y) {
		if (y == null) y = X;
		var z = 0,
			s = 0;
		for (var w = 0; w < ce.order.length; w++) {
			var t = ce.order[w],
				d = ce.og[w],
				U = F[d].v;
			for (var v = 0; v < U.length; v++) {
				var A = U[v].v;
				if (t == "DrSh" && A.enab.v && A.Ckmt.v.val > 0 && A.blur.v.val > 0) z = Math.max(z, Math.ceil(A.Ckmt.v.val * A.blur.v.val / 100));
				if (t == "OrGl" && A.enab.v && A.Ckmt.v.val > 0 && A.blur.v.val > 0 && A.GlwT.v.BETE == "SfBL") z = Math.max(z, Math.ceil(A.Ckmt.v.val * A.blur.v.val / 100));
				if (t == "OrGl" && A.enab.v && A.blur.v.val > 0 && A.GlwT.v.BETE == "PrBL") z = Math.max(z, A.blur.v.val);
				if (t == "FrFX" && A.enab.v && A.Sz.v.val > 0) {
					if (A.Styl.v.FStl == "OutF") z = Math.max(z, A.Sz.v.val);
					if (A.Styl.v.FStl == "CtrF") z = Math.max(z, Math.ceil(A.Sz.v.val / 2));
					s = Math.max(s, cr.Uo(A)[1])
				}
			}
		}
		var Z = new cr.Ln(o, X, z),
			D = {
				type: {},
				all: []
			};
		for (var q = 0; q < ce.order.length; q++) {
			var t = ce.order[q],
				d = ce.og[q];
			D.type[t] = [];
			for (var R = F[d].v.length - 1; R >= 0; R--) {
				var J = F[d].v[R].v;
				if (!J.enab.v) continue;
				var W = J.blur ? J.blur.v.val : 0,
					p = J.Ckmt ? J.Ckmt.v.val / 100 : 0,
					n = W * p;
				if (t == "DrSh") {
					var b = Z.LB(n, W - n, !0),
						Q = b.AH,
						_ = b.T;
					_.offset(-Z.rect().x - 1, -Z.rect().y - 1);
					cr.PX(Q, J, !1);
					cr.sB(_, J, Y, 0);
					var L = H.R(_.M() * 4);
					cr.n_(L, J.Clr.v);
					H.Oy(Q, L, 3);
					var m = {
						Ww: L,
						Xc: _,
						Si: aK.pT(J.Md.v.BlnM),
						hw: J.Opct.v.val / 100,
						alF: J.layerConceals.v
					};
					D.type[t].push(m);
					D.all.push(m)
				}
				if (t == "IrSh") {
					var b = Z.LB(n, W - n, !1);
					cr.sB(b.T, J, Y, 0);
					var _ = Z.rect().clone(),
						Q = H.R(_.M());
					H.set(Q, 255);
					H.Lj(b.AH, b.T, Q, _);
					cr.PX(Q, J, !0);
					var L = H.R(_.M() * 4);
					cr.n_(L, J.Clr.v);
					H.Oy(Q, L, 3);
					_.offset(-Z.rect().x - 1, -Z.rect().y - 1);
					var m = {
						Ww: L,
						Xc: _,
						Si: aK.pT(J.Md.v.BlnM),
						hw: J.Opct.v.val / 100
					};
					D.type[t].push(m);
					D.all.push(m)
				}
				if (t == "GrFl") {
					var L = H.R(Z.rect().M() * 4);
					cr.fE(J, L, Z.rect(), Y, null, y);
					var _ = Z.rect().clone();
					_.offset(-Z.rect().x - 1, -Z.rect().y - 1);
					var m = {
						Ww: L,
						Xc: _,
						Si: aK.pT(J.Md.v.BlnM),
						hw: J.Opct.v.val / 100
					};
					D.type[t].push(m);
					D.all.push(m)
				}
				if (t == "SoFi") {
					var L = H.R(Z.AH().length * 4);
					cr.n_(L, J.Clr.v);
					var _ = Z.rect().clone();
					_.offset(-Z.rect().x - 1, -Z.rect().y - 1);
					var m = {
						Ww: L,
						Xc: _,
						Si: aK.pT(J.Md.v.BlnM),
						hw: J.Opct.v.val / 100
					};
					D.type[t].push(m);
					D.all.push(m)
				}
				if (t == "ebbl") {
					var I = !1;
					if (I) console.log(J);
					var c = Date.now(),
						u = J.bvlS.v.BESl;
					if (u == "strokeEmboss") {
						var a = F.frameFXMulti.v;
						if (a.length == 0) continue;
						a = a[0].v;
						if (!a.enab.v) continue;
						var N = a.Styl.v.FStl;
						if (N == "OutF") u = "OtrB";
						if (N == "CtrF") u = "Embs";
						if (N == "InsF") u = "InrB"
					}
					var W = J.blur.v.val;
					if (W == 0) W = .7;
					if (u == "Embs" || u == "PlEb") W /= 2;
					var V = ["OtrB", "InrB", "Embs", "PlEb", "strokeEmboss"],
						M = ["SfBL", "PrBL", "Slmt"],
						O = ["In", "Out"],
						K = J.bvlT.v.bvlT != "SfBL" ? W : W * .45,
						j = Math.round(W),
						$ = Z.rect().clone(),
						x = $.clone();
					x.PK(j, j);
					var g = x.Z,
						T = x.h,
						E = g * T,
						a9 = H.R(E);
					H.Lj(Z.AH(), $, a9, x);
					var ez = new Float64Array(E),
						bN = new Float64Array(E);
					H.style.QT(a9, ez, g, T);
					H.nJ(a9);
					H.style.QT(a9, bN, g, T);
					if (I) console.log("distTransform computed", Date.now() - c);
					for (var w = 0; w < E; w++) bN[w] = bN[w] - ez[w];
					for (var w = 0; w < E; w++) {
						var cg = bN[w];
						if (cg < -K) bN[w] = -K;
						else if (cg > K) bN[w] = K
					}
					if (I) console.log("summing + cropping", Date.now() - c);
					if (J.bvlT.v.bvlT == "SfBL") {
						var d8 = Math.pow(W * .21, 1.22);
						if (!0) d8 = Math.max(d8, 2);
						var C = H.ni.hT(d8, 2);
						H.ni.Ey(bN, ez, x, C[0] >>> 1);
						H.ni.Ey(ez, bN, x, C[1] >>> 1)
					}
					if (I) console.log("blurring", Date.now() - c);
					var S = bN,
						g7 = S.slice(0);
					if (J.useShape.v) {
						var g_ = Math.min(100, J.Inpr.v.val + 1) / 100;
						if (u != "OtrB" && u != "InrB") g_ = 1;
						var fw = H.JH.QV(J.MpgS.v.Crv.v, 2e3),
							dT = Math.round(2e3 / g_);
						fw = H.JH.aax(fw, dT, u == "InrB");
						var g4 = .5 / K;
						for (var w = 0; w < E; w++) {
							var d1 = S[w],
								f_ = .99999 * (d1 + K) * g4;
							S[w] = -K + 2 * K * fw[~~(f_ * (dT - 1))]
						}
						if (I) console.log("applying shape", Date.now() - c)
					}
					if (J.useTexture.v) {
						var g$ = H.R(g * T * 4);
						cr._$(J, g$, x, Y, P);
						var eT = H.R(g * T);
						H.np(g$, eT);
						var dz = H.R(g * T);
						H.ni.p8(eT, dz, x, 1);
						eT = dz;
						var i4 = W * J.textureDepth.v.val * (1 / 100) * (1 / 255);
						if (J.InvT.v) i4 = -i4;
						for (var w = 0; w < E; w++) S[w] += -i4 * eT[w];
						if (I) console.log("applying texture", Date.now() - c)
					}
					var fy = (J.bvlT.v.bvlT == "SfBL" ? 1 : .5) * (J.bvlD.v.BESs == "In" ? 1 : -1) * J.srgR.v.val / 100;
					for (var w = 0; w < E; w++) S[w] *= fy;
					if (I) console.log("scaling", Date.now() - c);
					var cN = J.uglg && J.uglg.v ? Y.Rp() : J.lagl.v.val;
					cN = cN * (Math.PI / 180);
					var fP = J.uglg && J.uglg.v ? Y.$p() : J.Lald.v.val;
					fP = fP * (Math.PI / 180);
					var du = Math.cos(cN) * Math.cos(fP),
						ea = -Math.sin(cN) * Math.cos(fP),
						cF = Math.sin(fP),
						gB = new Float64Array(E),
						bp = new Float64Array(E),
						hf = u == "PlEb";
					for (var bq = 0; bq < T; bq++)
						for (var eY = 0; eY < g; eY++) {
							var w = bq * g + eY,
								f1 = 0,
								dh = 0,
								hn = 1;
							if (bq != 0 && bq != T - 1 && eY != 0 && eY != g - 1) {
								var e7 = S[w - g - 1],
									ed = S[w - g + 1],
									hP = S[w + g - 1],
									ck = S[w + g + 1];
								f1 = -.125 * (ed + 2 * S[w + 1] + ck - (e7 + 2 * S[w - 1] + hP));
								dh = -.125 * (hP + 2 * S[w + g] + ck - (e7 + 2 * S[w - g] + ed))
							} else {
								var ds = S[w];
								dh = -(bq == 0 ? S[w + g] - ds : bq == T - 1 ? ds - S[w - g] : .5 * (S[w + g] - S[w - g]));
								f1 = -(eY == 0 ? S[w + 1] - ds : eY == g - 1 ? ds - S[w - 1] : .5 * (S[w + 1] - S[w - 1]))
							}
							var hB = 1 / Math.sqrt(f1 * f1 + dh * dh + 1);
							f1 *= hB;
							dh *= hB;
							hn *= hB;
							var bd = f1 * du + dh * ea + hn * cF,
								d0 = bd;
							if (hf) d0 = -f1 * du - dh * ea + hn * cF;
							if (bd > 0) gB[w] = bd;
							if (d0 > 0) bp[w] = d0
						}
					if (I) console.log("raycasting", Date.now() - c);
					if (J.Sftn.v.val != 0) {
						H.ni.d$(gB, ez, x, J.Sftn.v.val * .43);
						var d$ = ez,
							ez = gB,
							gB = d$;
						if (hf) {
							H.ni.d$(bp, ez, x, J.Sftn.v.val * .43);
							var d$ = ez,
								ez = bp,
								bp = d$
						} else H.Hk(gB, bp)
					}
					if (I) console.log("softening", Date.now() - c);
					var fw = H.JH.QV(J.TrnS.v.Crv.v, 1024);
					for (var w = 0; w < E; w++) {
						gB[w] = fw[~~(gB[w] * 1024)];
						bp[w] = fw[~~(bp[w] * 1024)]
					}
					if (I) console.log("contour remap", Date.now() - c);
					g = Math.round(g);
					T = Math.round(T);
					var ap = H.R(g * T * 4);
					cr.n_(ap, J.hglC.v);
					var dE = H.R(g * T * 4);
					cr.n_(dE, J.sdwC.v);
					var fv = H.R(g * T * 4);
					cr.n_(fv, J.hglC.v);
					var c8 = H.R(g * T * 4);
					cr.n_(c8, J.sdwC.v);
					var bT = 1 / cF,
						bi = 1 / (1 - cF),
						g4 = 1 / K,
						i7 = new Float64Array(1e3);
					for (var w = 0; w < 1e3; w++) i7[w] = Math.pow(w * .001, .2);
					for (var bq = 0; bq < T; bq++)
						for (var eY = 0; eY < g; eY++) {
							var w = bq * g + eY,
								ec = 4 * w + 3,
								eg = 0,
								hZ = 0;
							eg = gB[w];
							hZ = bp[w];
							var fu = Math.max(0, Math.min(.9999, (g7[w] + K * .993) * g4));
							fu = i7[Math.floor(fu * 1e3)];
							var bg = fu * (1 - Math.min(1, eg * bT)),
								co = fu * (1 - Math.min(1, (1 - eg) * bi)),
								ga = fu * (1 - Math.min(1, hZ * bT)),
								e5 = fu * (1 - Math.min(1, (1 - hZ) * bi));
							dE[ec] = Math.round(255 * bg);
							ap[ec] = Math.round(255 * co);
							c8[ec] = Math.round(255 * ga);
							fv[ec] = Math.round(255 * e5)
						}
					if (I) console.log("baking textures", Date.now() - c);
					x = Z.rect().clone();
					x.PK(j, j);
					x.offset(-Z.rect().x - 1, -Z.rect().y - 1);
					var fM = {
						a1V: J.bvlS.v.BESl == "strokeEmboss"
					};
					if (["InrB", "Embs", "PlEb"].indexOf(u) != -1) {
						fM.rR = {
							Ww: ap,
							Xc: x,
							Si: aK.pT(J.hglM.v.BlnM),
							hw: J.hglO.v.val / 100
						};
						fM._Q = {
							Ww: dE,
							Xc: x,
							Si: aK.pT(J.sdwM.v.BlnM),
							hw: J.sdwO.v.val / 100
						};
						D.all.push(fM.rR, fM._Q)
					}
					if (["OtrB", "Embs", "PlEb"].indexOf(u) != -1) {
						fM.Us = {
							Ww: fv,
							Xc: x,
							Si: aK.pT(J.hglM.v.BlnM),
							hw: J.hglO.v.val / 100
						};
						fM.OH = {
							Ww: c8,
							Xc: x,
							Si: aK.pT(J.sdwM.v.BlnM),
							hw: J.sdwO.v.val / 100
						};
						D.all.push(fM.Us, fM.OH)
					}
					if (I) console.log(Date.now() - c);
					D.type[t].push(fM)
				}
				if (t == "patternFill") {
					var bb = Z.rect(),
						L = H.R(bb.M() * 4);
					cr._$(J, L, bb, Y, P);
					var _ = bb.clone();
					_.offset(-bb.x - 1, -bb.y - 1);
					var m = {
						Ww: L,
						Xc: _,
						Si: aK.pT(J.Md.v.BlnM),
						hw: J.Opct.v.val / 100
					};
					D.type[t].push(m);
					D.all.push(m)
				}
				if (t == "ChFX") {
					var L = H.R(Z.AH().length * 4);
					cr.n_(L, J.Clr.v);
					var W = J.blur.v.val,
						hp = Z.rect().clone();
					hp.PK(W, W);
					var fT = H.R(hp.M()),
						aE = H.R(hp.M());
					H.Lj(Z.AH(), Z.rect(), aE, hp);
					H.ni.et(aE, fT, hp, W * .43);
					var cs = H.JH.AQ(J.MpgS.v.Crv.v, 256, !0);
					H.gJ(fT, cs);
					var hL = H.R(Z.AH().length),
						fR = H.R(Z.AH().length),
						cd = Z.rect().clone();
					cr.sB(cd, J, Y, 0);
					H.Lj(fT, hp, hL, cd);
					cd = Z.rect().clone();
					cr.sB(cd, J, Y, Math.PI);
					H.Lj(fT, hp, fR, cd);
					var ih = hL.length;
					for (var w = 0; w < ih; w++) L[4 * w + 3] = Math.abs(hL[w] - fR[w]);
					if (J.Invr.v)
						for (var w = 0; w < ih; w++) L[4 * w + 3] = 255 - L[4 * w + 3];
					var _ = Z.rect().clone();
					_.offset(-Z.rect().x - 1, -Z.rect().y - 1);
					var m = {
						Ww: L,
						Xc: _,
						Si: aK.pT(J.Md.v.BlnM),
						hw: J.Opct.v.val / 100
					};
					D.type[t].push(m);
					D.all.push(m)
				}
				if (t == "OrGl") {
					var b;
					if (J.GlwT.v.BETE == "SfBL") b = Z.LB(n, W - n, !0);
					else b = Z.kS(W, p, !0);
					var Q = b.AH,
						_ = b.T,
						aV = Q.slice(0);
					cr.bG(Q, J);
					var L = H.R(_.M() * 4);
					if (J.Grad == null) {
						cr.n_(L, J.Clr.v);
						cr.PX(Q, J, !1)
					} else {
						cr.PX(Q, J, null);
						var dw = {
							CM: Q,
							fc: 255,
							AP: 0,
							Yi: _
						};
						cr.fE(J, L, _, Y, dw);
						var cM = J.Nose.v.val / 100,
							bZ = _.Z;
						for (var w = 0; w < aV.length; w++) {
							var ht = 255,
								fZ = aV[w];
							if (fZ < 32) {
								var b0 = (fZ + aV[w - 1] + aV[w + 1] + aV[w - bZ] + aV[w + bZ]) * .2 - 1;
								ht = Math.min(255, Math.round(Math.max(0, b0) * 8))
							}
							Q[w] = ht
						}
						cr.nb(Q, J)
					}
					H.Oy(Q, L, 3);
					_.offset(-Z.rect().x - 1, -Z.rect().y - 1);
					var m = {
						Ww: L,
						Xc: _,
						Si: aK.pT(J.Md.v.BlnM),
						hw: J.Opct.v.val / 100
					};
					D.type[t].push(m);
					D.all.push(m)
				}
				if (t == "IrGl") {
					var b;
					if (J.GlwT.v.BETE == "SfBL") b = Z.LB(n, W - n, !1);
					else b = Z.kS(W, p, !1);
					var Q = b.AH,
						_ = b.T;
					cr.bG(Q, J);
					if (J.glwS.v.IGSr == "SrcC") H.nJ(Q);
					var L = H.R(_.M() * 4);
					if (J.Grad == null) {
						cr.n_(L, J.Clr.v);
						cr.PX(Q, J, !0)
					} else {
						cr.PX(Q, J, null);
						var dw = {
							CM: Q,
							fc: 255,
							AP: 0,
							Yi: _
						};
						cr.fE(J, L, _, Y, dw);
						H.set(Q, 255);
						cr.nb(Q, J)
					}
					H.Oy(Q, L, 3);
					_.offset(-Z.rect().x - 1, -Z.rect().y - 1);
					var m = {
						Ww: L,
						Xc: _,
						Si: aK.pT(J.Md.v.BlnM),
						hw: J.Opct.v.val / 100
					};
					D.type[t].push(m);
					D.all.push(m)
				}
				if (t == "FrFX") {
					var aX = cr.Uo(J),
						fQ = aX[0],
						bQ = aX[1],
						_ = Z.rect().clone(),
						fO = null,
						hA = null;
					_.PK(Math.ceil(s), Math.ceil(s));
					if (bQ > 0) {
						var b = Z.LB(bQ, 0, !0);
						hA = b.AH;
						if (hA.length < _.M()) {
							hA = H.R(_.M());
							H.Lj(b.AH, b.T, hA, _)
						}
					}
					if (fQ > 0) {
						var b = Z.LB(fQ, 0, !1);
						fO = H.R(_.M());
						H.set(fO, 255);
						H.Lj(b.AH, b.T, fO, _)
					}
					_.offset(-Z.rect().x - 1, -Z.rect().y - 1);
					var L = H.R(_.M() * 4),
						ij = J.PntT.v.FrFl;
					if (ij == "SClr") cr.n_(L, J.Clr.v);
					if (ij == "GrFl") cr.fE(J, L, _, Y, Z.a3e(fQ, bQ));
					if (ij == "Ptrn") cr._$(J, L, _, Y, P);
					var m = {
						Ww: L,
						Xc: _,
						Si: aK.pT(J.Md.v.BlnM),
						hw: J.Opct.v.val / 100,
						dD: hA,
						we: fO
					};
					D.type[t].push(m);
					D.all.push(m)
				}
			}
		}
		return D
	};
	cr.w_ = function (F) {
		var P = 1 / Math.sqrt(F.x * F.x + F.y * F.y + F.QY * F.QY);
		F.x *= P;
		F.y *= P;
		F.QY *= P
	};
	cr.a08 = function (F, P) {
		return {
			x: F.y * P.QY - F.QY * P.y,
			y: F.QY * P.x - F.x * P.QY,
			QY: F.x * P.y - F.y * P.x
		}
	};
	cr.a9G = function (F, P) {
		return F.x * P.x + F.y * P.y + F.QY * P.QY
	};
	cr.nb = function (F, P) {
		var o = P.Nose.v.val / 100;
		if (o > 0)
			for (var w = 0; w < F.length; w++) {
				var X = F[w];
				X = Math.min(510 - (1 + o) * H.style.kY(w), X);
				F[w] = X
			}
	};
	cr.CX = function (F) {
		var P = cr.jx(),
			o = F.LL,
			X = !1;
		for (var w = 0; w < 32; w += 8)
			if (o[w] + o[w + 1] + o[4] + o[5] != 0 || o[w + 2] + o[w + 3] + o[6] + o[7] != 1020) X = !0;
		if (X) {
			o = o.slice(0);
			for (var w = 0; w < 40; w += 4) {
				var Y = o[w] / 255,
					y = o[w + 1] / 255,
					z = o[w + 2] / 255,
					s = o[w + 3] / 255;
				o[w] = Y - 1e-4;
				o[w + 1] = Y == y ? 1e9 : 1 / (y - (Y - 1e-4));
				o[w + 2] = z == s ? -1e9 : 1 / (z - (s + 1e-4));
				o[w + 3] = s + 1e-4
			}
		}
		var t = F.add.iOpa != null ? F.add.iOpa / 255 : P.fill,
			d = F.add.vstk;
		if (d && !d.fillEnabled.v && (!d.strokeEnabled.v || d.strokeStyleLineWidth.v.val == 0)) t = 0;
		return {
			fill: t,
			Lc: X ? o : null,
			yo: F.add.brst != null ? F.add.brst : P.yo,
			adw: F.add.knko != null ? F.add.knko : P.adw,
			style: !1,
			YU: !1
		}
	};
	cr.jx = function () {
		return {
			fill: 1,
			Lc: null,
			yo: [1, 1, 1],
			adw: 0,
			style: !1,
			YU: !1
		}
	};
	cr.tc = function (F, P) {
		if (P == null) return null;
		var o = F.Idnt.v,
			X = null;
		for (var w = 0; w < P.length; w++)
			if (P[w].id == o) return P[w];
		return null
	};
	cr.PB = function (F, P, o) {
		var X = ["patternFillMulti", "ebblMulti", "frameFXMulti"];
		for (var w = 0; w < X.length; w++) {
			var Y = F.v[X[w]].v;
			for (var y = 0; y < Y.length; y++)
				if (Y[y].v.Ptrn) P.e6(cr.tc(Y[y].v.Ptrn.v, o))
		}
	};
	cr.aey = function (F, P, o) {
		var X = ["patternFillMulti", "ebblMulti", "frameFXMulti"];
		for (var w = 0; w < X.length; w++) {
			var Y = F.v[X[w]].v;
			for (var y = 0; y < Y.length; y++)
				if (Y[y].v.Ptrn) {
					var z = Y[y].v.Ptrn.v,
						s = cr.tc(z, o),
						t = cr.tc(z, P.add.Patt);
					if (s == null && t) o.push(t)
				}
		}
	};
	cr._$ = function (F, P, o, X, Y) {
		var y = cr.tc(F.Ptrn.v, X.add.Patt);
		if (y != null && !o.qr()) {
			var z = y.Jx,
				s = z[0],
				t = z[1],
				d = 0;
			H.hE(z);
			var U = F.Scl.v.val / 100;
			while ((U < .3 || U == .5) && z[d + 2]) {
				U *= t.Z / z[d + 3].Z;
				d += 2;
				s = z[d];
				t = z[d + 1]
			}
			var v = H.scale._$(s, t.Z, t.h),
				A = -o.x + F.phase.v.Hrzn.v - 1,
				Z = -o.y + F.phase.v.Vrtc.v - 1;
			if (F.Algn != null && !F.Algn.v) {} else {
				A += Y.x;
				Z += Y.y
			}
			H.scale.ahe(v, P, o.Z, o.h, U, U, A + 1, Z + 1)
		}
	};
	cr.fE = function (F, P, o, X, Y, y) {
		if (y == null) y = o;
		var z = F.Type ? F.Type.v.GrdT : "shapeburst",
			s = F.Algn && F.Algn.v ? y : new ev(0, 0, X.Z, X.h),
			t = F.Angl ? H.j.yB(F, s) : [new aH(0, 0), new aH(100, 0)],
			d = t[0].x,
			U = t[0].y,
			v = t[1].x - d,
			A = t[1].y - U,
			Z = Math.sqrt(v * v + A * A);
		Z = 1 / (2 * Z * Z);
		var D = [v * Z, A * Z, -A * Z, v * Z],
			q = F.Rvrs ? F.Rvrs.v : !1,
			R = F.Dthr ? F.Dthr.v : !1;
		H.j.ao(F.Grad.v, P, o, D, d, U, q, ce.j.types.indexOf(z), 0, 0, Y, R)
	};
	cr.a4r = function (F, P) {
		for (var w = 0; w < F.all.length; w++) {
			var o = F.all[w];
			o.wm = o.Xc.clone();
			o.wm.offset(P.x, P.y)
		}
	};
	cr.vO = function (F, P, o, X, Y, y) {
		var z = k.pQ ? cr.vt : cr.wv;
		cr.a4r(P, o);
		var s = P.type.DrSh;
		for (var w = 0; w < s.length; w++)
			if (!s[w].alF) z(s[w], X, Y, y)
	};
	cr.h9 = function (F, P, o, X, Y, y, z, s, t, d) {
		var U = o,
			v = k.pQ ? cr.vt : cr.wv,
			A = k.pQ ? k.N.CG : H.N.$e,
			Z;
		Z = P.type.DrSh;
		for (var w = 0; w < Z.length; w++)
			if (Z[w].alF) v(Z[w], X, Y, y);
		Z = P.type.OrGl;
		for (var w = 0; w < Z.length; w++) v(Z[w], X, Y, y);
		var D = "patternFill GrFl SoFi ChFX IrGl IrSh".split(" ");
		for (var q = 0; q < D.length; q++) {
			var Z = P.type[D[q]];
			for (var w = 0; w < Z.length; w++) v(Z[w], z, U, y)
		}
		var R = P.type.ebbl[0],
			J = R != null && R.a1V;
		Z = P.type.FrFX;
		for (var w = 0; w < Z.length; w++) {
			var W = Z[w];
			cl.B6.Lj(s, d, t, d, y);
			v(W, t, d, y);
			if (J && w == Z.length - 1) {
				if (R.OH) v(R.OH, t, d, y);
				if (R.Us) v(R.Us, t, d, y);
				if (R._Q) v(R._Q, t, d, y);
				if (R.rR) v(R.rR, t, d, y)
			}
			if (W.we || W.nZ) A(t, d, z, U, k.pQ ? W.nZ : W.we, W.wm, 0, y, 1);
			if (W.dD || W.yu) A(t, d, X, Y, k.pQ ? W.yu : W.dD, W.wm, 0, y, 1)
		}
		if (!J && R != null) {
			if (R.OH) v(R.OH, X, Y, y);
			if (R.Us) v(R.Us, X, Y, y);
			if (R._Q) v(R._Q, z, U, y);
			if (R.rR) v(R.rR, z, U, y)
		}
	};
	cr.wv = function (F, P, o, X) {
		var Y = cr.jx();
		Y.fill = F.hw;
		Y.style = !0;
		H.N.DO(F.Si, F.Ww, F.wm, P, o, X, 1, Y)
	};
	cr.vt = function (F, P, o, X) {
		var Y = cr.jx();
		Y.fill = F.hw;
		Y.style = !0;
		k.N.Q4(F.Si, F.Kx, F.wm, P, o, X, 1, Y)
	};
	cr.bG = function (F, P) {
		var o = 1 - P.Inpr.v.val / 100,
			X = 1 + Math.tan(o * (Math.PI / 2)),
			Y = F.length;
		for (var w = 0; w < Y; w++) F[w] = Math.min(255, Math.round(F[w] * X))
	};
	cr.PX = function (F, P, o) {
		var X = P.blur.v.val,
			Y = Math.round(X * (P.Ckmt.v.val / 100));
		if (X > Y) {
			var y = H.JH.AQ(P.TrnS.v.Crv.v, 256, !0);
			H.gJ(F, y)
		}
		if (o != null && P.Nose.v.val > 0) H.style.Jo(F, P.Nose.v.val / 100, o)
	};
	cr.n_ = function (F, P, o) {
		if (o == null) o = 255;
		var X = H.j.T6(P),
			Y = o << 24 | X.i << 16 | X.S << 8 | X.U;
		H.XB(F, Y)
	};
	cr.sB = function (F, P, o, X) {
		var Y = P.uglg && P.uglg.v ? o.Rp() : P.lagl.v.val;
		Y = Y * Math.PI / 180 + X;
		var y = Math.cos(Y) * P.Dstn.v.val,
			z = Math.sin(Y) * P.Dstn.v.val;
		F.x -= Math.round(y);
		F.y += Math.round(z)
	};
	cr.ig = function (F) {
		if (F == null) return null;
		var P = F.frameFXMulti.v;
		if (P.length == 0) return null;
		P = P[0].v;
		var o = JSON.parse(JSON.stringify(ce.bW.default));
		cr.sa(P, o);
		return o
	};
	cr.sa = function (F, P) {
		var o = ce.stroke._n.indexOf(F.PntT.v.FrFl),
			X = [ce.QB, ce.Zt, ce.QZ][o],
			Y = P.strokeStyleContent.v = {
				classID: ce.bW.bl[o]
			};
		for (var w = 0; w < X.length; w++) Y[X[w]] = F[X[w]];
		P.strokeEnabled = F.enab;
		P.strokeStyleLineWidth = F.Sz;
		P.strokeStyleLineAlignment.v.strokeStyleLineAlignment = ce.bW.Ph[ce.stroke.types.indexOf(F.Styl.v.FStl)];
		P.strokeStyleOpacity = F.Opct;
		P.strokeStyleBlendMode = F.Md
	};
	cr.oB = function (F, P) {
		var o = [];
		for (var w = 0; w < F.length; w++) o.push({
			t: "UntF",
			v: {
				type: "#Nne",
				val: Math.round(F[w] * P)
			}
		});
		return o
	};
	cr.Ln = function (F, P, o) {
		this.nL = P.clone();
		this.nL.PK(1, 1);
		this.ak8 = P.clone();
		this.ak8.PK(o, o);
		this.ag8 = H.R(this.nL.M());
		H.Lj(F, P, this.ag8, this.nL);
		this._H = null;
		this.D_ = null;
		this.VH = null
	};
	cr.Ln.prototype.AH = function () {
		return this.ag8
	};
	cr.Ln.prototype.rect = function () {
		return this.nL
	};
	cr.Ln.prototype.N3 = function () {
		return this.ak8
	};
	cr.Ln.prototype.Mw = function () {
		if (this._H) return this._H;
		this._H = H.clone(this.AH());
		H.nJ(this._H);
		return this._H
	};
	cr.Ln.prototype.FK = function () {
		if (this.D_) return this.D_;
		this.D_ = new Float64Array(this.rect().M());
		H.style.QT(this.Mw(), this.D_, this.rect().Z, this.rect().h);
		return this.D_
	};
	cr.Ln.prototype.Dc = function () {
		if (this.VH) return this.VH;
		var F = this.N3(),
			P = H.R(F.M());
		H.Lj(this.AH(), this.rect(), P, F);
		this.VH = new Float64Array(F.M());
		H.style.QT(P, this.VH, F.Z, F.h);
		return this.VH
	};
	cr.Ln.prototype.a3e = function (F, P) {
		var o = {
			fc: -P,
			AP: F,
			Yi: null,
			CM: null
		};
		if (P == 0) {
			o.Yi = this.rect();
			o.CM = this.FK();
			return o
		}
		var X = this.Dc().slice(0),
			Y = this.N3();
		o.Yi = Y;
		o.CM = X;
		for (var w = 0; w < X.length; w++) X[w] = -X[w];
		if (F == 0) return o;
		var y = this.FK(),
			z = this.rect();
		for (var s = 0; s < z.h; s++)
			for (var t = 0; t < z.Z; t++) {
				var d = s * z.Z + t,
					U = (s + z.y - Y.y) * Y.Z + t + z.x - Y.x;
				X[U] += y[d]
			}
		return o
	};
	cr.Ln.prototype.LB = function (F, P, o) {
		var X = Math.ceil(F + P),
			Y = {
				T: this.rect().clone(),
				AH: null
			};
		Y.T.PK(X, X);
		Y.AH = H.R(Y.T.M());
		if (F == 0 && P == 0) H.Hk(o ? this.AH() : this.Mw(), Y.AH);
		else {
			var y = H.R(Y.T.M());
			H.Lj(this.AH(), this.rect(), y, Y.T);
			if (!o) H.nJ(y);
			if (F != 0) {
				if (o) H.style.IH(y, Y.T, this.Dc(), this.N3(), F);
				else H.style.IH(y, Y.T, this.FK(), this.rect(), F)
			}
			if (P != 0) H.ni.et(y, Y.AH, Y.T, Math.max(1, P * .43));
			else Y.AH = y
		}
		return Y
	};
	cr.Ln.prototype.kS = function (F, P, o) {
		var X = F * (P - .5),
			Y = {
				T: this.rect().clone(),
				AH: null
			};
		if (o) Y.T.PK(F, F);
		Y.AH = H.R(Y.T.M());
		var y = Y.T.Z,
			z = Y.T.h,
			s = o ? this.Dc() : this.FK(),
			t = o ? this.N3() : this.rect(),
			d = Y.T,
			U = d.$X(t),
			y = U.Z,
			z = U.h,
			v = U.x - d.x,
			A = U.y - d.y,
			Z = U.x - t.x,
			D = U.y - t.y,
			q = 1 - P * 2;
		for (var R = 0; R < z; R++)
			for (var J = 0; J < y; J++) {
				var W = s[(R + D) * t.Z + J + Z],
					p = W / F;
				Y.AH[(R + A) * d.Z + J + v] = Math.max(0, Math.min(255, 255 - 255 * ((p + q) / (1 + q))))
			}
		return Y
	};
	cr.a5 = function (F, P, o) {
		var X = F.Lefx,
			Y = F.blendOptions;
		if (X) {
			var y = P.add.lmfx;
			if (o == null) o = y ? y.Scl.v.val : 100;
			P.add.lmfx = JSON.parse(JSON.stringify(X.v));
			cr.QE(P.add.lmfx, o / P.add.lmfx.Scl.v.val);
			if (y) P.add.lmfx.Scl.v.val = y.Scl.v.val
		} else delete P.add.lmfx;
		if (Y) {
			Y = Y.v;
			if (Y.Md) P.sW = aK.pT(Y.Md.v.BlnM);
			if (Y.Opct) P.opacity = Math.round(Y.Opct.v.val * 255 / 100);
			if (Y.fillOpacity) P.add.iOpa = Math.round(Y.fillOpacity.v.val * 255 / 100);
			if (Y.Blnd) {
				var z = [];
				for (var w = 0; w < 10; w++) z.push(0, 0, 255, 255);
				var s = Y.Blnd.v,
					t = "SrcB Srcl SrcW Srcm DstB Dstl DstW Dstt".split(" ");
				for (var w = 0; w < s.length; w++) {
					var d = s[w].v,
						U = 8 * ["Gry", "Rd", "Grn", "Bl"].indexOf(d.Chnl.v[0].v.enum);
					for (var v = 0; v < 8; v++) {
						z[U + v] = d[t[v]].v
					}
				}
				P.LL = z
			}
		}
	};
	cr.Wj = function (F) {
		var P = "SrcB Srcl SrcW Srcm DstB Dstl DstW Dstt".split(" "),
			o = [],
			X = F.LL;
		for (var w = 0; w < 4; w++) {
			var Y = w * 8;
			if (X[Y] + X[Y + 1] + X[Y + 4] + X[Y + 5] == 0 && X[Y + 2] + X[Y + 3] + X[Y + 6] + X[Y + 7] == 4 * 255) continue;
			var y = {
				t: "Objc",
				v: {
					classID: "Blnd",
					Chnl: {
						t: "obj ",
						v: [{
							t: "Enmr",
							v: {
								classID: "Chnl",
								typeID: "Chnl",
								enum: ["Gry", "Rd", "Grn", "Bl"][w]
							}
						}]
					}
				}
			};
			o.push(y);
			for (var z = 0; z < 8; z++) y.v[P[z]] = {
				t: "long",
				v: X[w * 8 + z]
			}
		}
		var s = {
			classID: "blendOptions"
		};
		if (F.sW != "norm") s.Md = {
			t: "enum",
			v: {
				BlnM: aK.Kl(F.sW)
			}
		};
		if (F.opacity != 255) s.Opct = {
			t: "UntF",
			v: {
				type: "#Prc",
				val: Math.round(F.opacity * 100 / 255)
			}
		};
		if (F.add.iOpa != null) s.fillOpacity = {
			t: "UntF",
			v: {
				type: "#Prc",
				val: Math.round(F.add.iOpa * 100 / 255)
			}
		};
		if (o.length != 0) s.Blnd = {
			t: "VlLs",
			v: o
		};
		var t = {
				By: {
					classID: "null",
					Idnt: {
						t: "TEXT",
						v: c_.vs() + "-bd9f-11d5-b8ba-b73f8571793d"
					},
					Nm: {
						t: "TEXT",
						v: "Custom Style"
					}
				},
				rB: {
					classID: "Styl",
					blendOptions: {
						t: "Objc",
						v: s
					}
				}
			},
			d = F.add.lmfx;
		if (d) t.rB.Lefx = {
			t: "Objc",
			v: d
		};
		return t
	};

	function ct() {}
	ct.az = function (F) {
		return JSON.parse(JSON.stringify(F))
	};
	ct.Jl = function (F) {
		var P = ct.az(ct.akd),
			o = P.Brsh.v;
		if (F != null) {
			delete o.Hrdn;
			o.classID = "sampledBrush";
			o.Nm = {
				t: "TEXT",
				v: "layer.png"
			}, o.sampledData = {
				t: "TEXT",
				v: F
			}
		}
		return P
	};
	ct.akd = {
		classID: "brushPreset",
		Nm: {
			t: "TEXT",
			v: "Custom Brush"
		},
		Brsh: {
			t: "Objc",
			v: {
				classID: "computedBrush",
				Dmtr: {
					t: "UntF",
					v: {
						type: "#Pxl",
						val: 15
					}
				},
				Hrdn: {
					t: "UntF",
					v: {
						type: "#Prc",
						val: 100
					}
				},
				Angl: {
					t: "UntF",
					v: {
						type: "#Ang",
						val: 0
					}
				},
				Rndn: {
					t: "UntF",
					v: {
						type: "#Prc",
						val: 100
					}
				},
				Spcn: {
					t: "UntF",
					v: {
						type: "#Prc",
						val: 25
					}
				},
				Intr: {
					t: "bool",
					v: !0
				},
				flipX: {
					t: "bool",
					v: !1
				},
				flipY: {
					t: "bool",
					v: !1
				}
			}
		},
		useTipDynamics: {
			t: "bool",
			v: !1
		},
		useScatter: {
			t: "bool",
			v: !1
		},
		dualBrush: {
			t: "Objc",
			v: {
				classID: "dualBrush",
				useDualBrush: {
					t: "bool",
					v: !1
				}
			}
		},
		brushGroup: {
			t: "Objc",
			v: {
				classID: "brushGroup",
				useBrushGroup: {
					t: "bool",
					v: !1
				}
			}
		},
		useTexture: {
			t: "bool",
			v: !1
		},
		usePaintDynamics: {
			t: "bool",
			v: !1
		},
		useColorDynamics: {
			t: "bool",
			v: !1
		},
		Wtdg: {
			t: "bool",
			v: !1
		},
		Nose: {
			t: "bool",
			v: !1
		},
		Rpt: {
			t: "bool",
			v: !1
		}
	};
	ct.w_ = {};
	ct.w_.check = function (F) {
		var P = ct.w_.tx;
		for (var w = 0; w < P.length; w++)
			if (F[P[w]] == null) F[P[w]] = JSON.parse(ct.w_.N4[P[w]]);
		var o = [];
		for (var w = 0; w < P.length; w++) o.push(P[w]);
		var X = ct.w_.T$;
		for (var w = 0; w < X.length; w++) {
			var Y = X[w][0],
				y = X[w][1],
				z = !0;
			for (var s = 0; s < Y.length; s++) z = z && F[Y[s]].v == !0;
			if (z)
				for (var s = 0; s < y.length; s++) {
					if (F[y[s]] == null) console.log("Missing conditional parameter " + y[s]);
					else o.push(y[s])
				}
		}
		for (var t in F)
			if (o.indexOf(t) == -1) console.log("Extra parameter " + t);
		F = F.Brsh.v;
		P = ct.w_.S1.tx;
		for (var w = 0; w < P.length; w++)
			if (F[P[w]] == null) F[P[w]] = JSON.parse(ct.w_.S1.N4[P[w]]);
		o = [];
		for (var w = 0; w < P.length; w++)
			if (F[P[w]]) o.push(P[w]);
			else console.log("Missing default parameter " + P[w]);
		X = ct.w_.S1.amo[F.classID];
		for (var w = 0; w < X.length; w++)
			if (F[X[w]] == null && X[w] != "dtipsGridSize" && X[w] != "dtipsErodibleTipHeightMap" && F.a9k != 1) console.log("Missing conditional parameter " + X[w]);
			else o.push(X[w]);
		for (var t in F)
			if (o.indexOf(t) == -1) console.log("Extra parameter " + t)
	};
	ct.w_.dN = function (F) {
		var P = ct.w_.T$;
		for (var w = 0; w < P.length; w++) {
			var o = P[w][0],
				X = P[w][1],
				Y = !0;
			for (var y = 0; y < o.length; y++) Y = Y && F[o[y]] && F[o[y]].v == !0;
			if (Y) {
				for (var y = 0; y < X.length; y++)
					if (F[X[y]] == null) {
						F[X[y]] = JSON.parse(ct.w_.N4[X[y]])
					}
			} else
				for (var y = 0; y < X.length; y++)
					if (F[X[y]] != null) {
						delete F[X[y]]
					}
		}
	};
	ct.w_.S1 = {};
	ct.w_.S1.tx = "classID Dmtr Angl Spcn Intr flipX flipY".split(" ");
	ct.w_.S1.N4 = {
		flipX: "{\"t\":\"bool\",\"v\":false}",
		flipY: "{\"t\":\"bool\",\"v\":false}"
	};
	ct.w_.S1.amo = {
		computedBrush: ["Hrdn", "Rndn"],
		sampledBrush: ["Nm", "Rndn", "sampledData"],
		dBrush: "Shp Dnst Lngt clumping thickness stiffness physics".split(" "),
		dTips: "dtipsType Shp dtipsLengthRatio dtipsHardness dtipsGridSize dtipsErodibleTipHeightMap physics dtipsAirbrushCutoffAngle dtipsAirbrushGranularity dtipsAirbrushStreakiness dtipsAirbrushSplatSize dtipsAirbrushSplatCount".split(" ")
	};
	ct.w_.T$ = [
		[
			["useTipDynamics"], "flipX flipY brushProjection minimumDiameter minimumRoundness tiltScale szVr angleDynamics roundnessDynamics".split(" ")
		],
		[
			["usePaintDynamics"],
			["prVr", "opVr", "wtVr", "mxVr"]
		],
		[
			["useBrushPose"], "overridePoseAngle overridePoseTiltX overridePoseTiltY overridePosePressure brushPosePressure brushPoseTiltX brushPoseTiltY brushPoseAngle".split(" ")
		],
		[
			["useTexture"], "TxtC interpretation textureBlendMode textureDepth minimumDepth textureDepthDynamics Txtr textureScale InvT textureBrightness textureContrast".split(" ")
		],
		[
			["useColorDynamics"], "clVr H Strt Brgh purity colorDynamicsPerTip".split(" ")
		],
		[
			["useScatter"],
			["Cnt", "countDynamics", "bothAxes", "scatterDynamics"]
		],
		[
			["useScatter", "bothAxes"],
			["Spcn"]
		]
	];
	ct.w_.tx = "classID Nm Brsh useTipDynamics usePaintDynamics useColorDynamics useScatter useTexture useBrushSize useBrushPose Wtdg Nose Rpt dualBrush brushGroup".split(" ");
	ct.w_.N4 = {
		useBrushSize: "{\"t\":\"bool\",\"v\":false}",
		useBrushPose: "{\"t\":\"bool\",\"v\":false}",
		brushGroup: "{\"t\":\"Objc\",\"v\":{\"classID\":\"brushGroup\",\"useBrushGroup\":{\"t\":\"bool\",\"v\":false}}}",
		flipX: "{\"t\":\"bool\",\"v\":false}",
		flipY: "{\"t\":\"bool\",\"v\":false}",
		brushProjection: "{\"t\":\"bool\",\"v\":false}",
		minimumDiameter: "{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}}",
		minimumRoundness: "{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":25}}",
		tiltScale: "{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":200}}",
		szVr: "{\"t\":\"Objc\",\"v\":{\"classID\":\"brVr\",\"bVTy\":{\"t\":\"long\",\"v\":2},\"fStp\":{\"t\":\"long\",\"v\":1},\"jitter\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}},\"Mnm\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}}}}",
		angleDynamics: "{\"t\":\"Objc\",\"v\":{\"classID\":\"brVr\",\"bVTy\":{\"t\":\"long\",\"v\":0},\"fStp\":{\"t\":\"long\",\"v\":25},\"jitter\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}},\"Mnm\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}}}}",
		roundnessDynamics: "{\"t\":\"Objc\",\"v\":{\"classID\":\"brVr\",\"bVTy\":{\"t\":\"long\",\"v\":0},\"fStp\":{\"t\":\"long\",\"v\":25},\"jitter\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}},\"Mnm\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}}}}",
		prVr: "{\"t\":\"Objc\",\"v\":{\"classID\":\"brVr\",\"bVTy\":{\"t\":\"long\",\"v\":2},\"fStp\":{\"t\":\"long\",\"v\":25},\"jitter\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}},\"Mnm\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}}}}",
		opVr: "{\"t\":\"Objc\",\"v\":{\"classID\":\"brVr\",\"bVTy\":{\"t\":\"long\",\"v\":0},\"fStp\":{\"t\":\"long\",\"v\":25},\"jitter\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}},\"Mnm\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}}}}",
		wtVr: "{\"t\":\"Objc\",\"v\":{\"classID\":\"brVr\",\"bVTy\":{\"t\":\"long\",\"v\":0},\"fStp\":{\"t\":\"long\",\"v\":25},\"jitter\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}},\"Mnm\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}}}}",
		mxVr: "{\"t\":\"Objc\",\"v\":{\"classID\":\"brVr\",\"bVTy\":{\"t\":\"long\",\"v\":0},\"fStp\":{\"t\":\"long\",\"v\":25},\"jitter\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}},\"Mnm\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}}}}",
		overridePoseAngle: "{\"t\":\"bool\",\"v\":false}",
		overridePoseTiltX: "{\"t\":\"bool\",\"v\":true}",
		overridePoseTiltY: "{\"t\":\"bool\",\"v\":true}",
		overridePosePressure: "{\"t\":\"bool\",\"v\":true}",
		brushPosePressure: "{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":9}}",
		brushPoseTiltX: "{\"t\":\"long\",\"v\":0}",
		brushPoseTiltY: "{\"t\":\"long\",\"v\":0}",
		brushPoseAngle: "{\"t\":\"long\",\"v\":0}",
		TxtC: "{\"t\":\"bool\",\"v\":false}",
		interpretation: "{\"t\":\"bool\",\"v\":true}",
		textureBlendMode: "{\"t\":\"enum\",\"v\":{\"BlnM\":\"CBrn\"}}",
		textureDepth: "{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":37}}",
		minimumDepth: "{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":97}}",
		textureDepthDynamics: "{\"t\":\"Objc\",\"v\":{\"classID\":\"brVr\",\"bVTy\":{\"t\":\"long\",\"v\":0},\"fStp\":{\"t\":\"long\",\"v\":25},\"jitter\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}},\"Mnm\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}}}}",
		Txtr: "{\"t\":\"Objc\",\"v\":{\"classID\":\"Ptrn\",\"Nm\":{\"t\":\"TEXT\",\"v\":\"$$$/Presets/Patterns/Patterns_pat/Laidhorizontal=Laid-horizontal\"},\"Idnt\":{\"t\":\"TEXT\",\"v\":\"52a93427-f5d6-1172-a989-8dc82a43aa51\"}}}",
		textureScale: "{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":99}}",
		InvT: "{\"t\":\"bool\",\"v\":false}",
		textureBrightness: "{\"t\":\"long\",\"v\":14}",
		textureContrast: "{\"t\":\"long\",\"v\":100}",
		Cnt: "{\"t\":\"doub\",\"v\":4}",
		countDynamics: "{\"t\":\"Objc\",\"v\":{\"classID\":\"brVr\",\"bVTy\":{\"t\":\"long\",\"v\":0},\"fStp\":{\"t\":\"long\",\"v\":1},\"jitter\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":98}},\"Mnm\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}}}}",
		bothAxes: "{\"t\":\"bool\",\"v\":false}",
		scatterDynamics: "{\"t\":\"Objc\",\"v\":{\"classID\":\"brVr\",\"bVTy\":{\"t\":\"long\",\"v\":0},\"fStp\":{\"t\":\"long\",\"v\":1},\"jitter\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":56}},\"Mnm\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}}}}",
		clVr: "{\"t\":\"Objc\",\"v\":{\"classID\":\"brVr\",\"bVTy\":{\"t\":\"long\",\"v\":0},\"fStp\":{\"t\":\"long\",\"v\":25},\"jitter\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}},\"Mnm\":{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}}}}",
		H: "{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}}",
		Strt: "{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}}",
		Brgh: "{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":36}}",
		purity: "{\"t\":\"UntF\",\"v\":{\"type\":\"#Prc\",\"val\":0}}",
		colorDynamicsPerTip: "{\"t\":\"bool\",\"v\":false}"
	};

	function af(F) {
		this.kh = F;
		this.dir = 0
	}
	af.prototype.ki = function (F, P) {
		if (this.dir == 0 && !this.kh.Qn(F)) this.dir = Math.abs(this.kh.x - F.x) < Math.abs(this.kh.y - F.y) ? 1 : 2;
		var o = F;
		if (P.s(G.cm)) {
			if (this.dir == 1) o = new aH(this.kh.x, F.y);
			if (this.dir == 2) o = new aH(F.x, this.kh.y)
		}
		return o
	};

	function am(F, P, o, X, Y, y, z, s) {
		this.Xu = P;
		this.A6 = o;
		this.Ty = y;
		this.oI = X;
		if (X.lx == null) X.lx = [!1, !0];
		this.Mi = null;
		this.KO = null;
		this.Ex = 0;
		this.aiD = 0;
		this.a0x = 0;
		this.iw = 0;
		this.Og = 0;
		this.a51 = z;
		this.ym = new ev;
		this.nu = new ev;
		this.rect = new ev;
		if (s != null) {
			this.Ww = s
		} else {
			var t = am.Bt;
			if (t.length != z.M() * 4) t = H.R(z.M() * 4);
			else t.fill(0);
			this.Ww = am.Bt = t
		}
		this.rect = z.clone();
		this.B1 = [];
		this.xT = [];
		this.H9 = null;
		this.GY = 0;
		this.i = null;
		this.YD = "";
		this.Gv = null;
		this.ST(F, Y)
	}
	am.Bt = H.R(16);
	am.prototype.ST = function (F, P) {
		this.GY = P;
		this.i = F;
		this.YD = JSON.stringify(F) + JSON.stringify(this.oI.mc);
		this.Gv = am.aeX(F, this.Xu, this.A6)
	};
	am.prototype.moveTo = function (F, P, o) {
		o = this.kG(o);
		this.Ex = o;
		var X = new aH(F, P),
			Y = this.i.Brsh.v.Dmtr.v.val;
		this.Mi = X.clone();
		this.KO = X.clone();
		this.H9 = X.clone();
		this.B1 = [F, P];
		this.xT = [o];
		var y = this.oI.lx;
		if (this.oI.p9 != am.nD) this.rT(this.N8(X, this.DC() * (y[1] ? o : 1), this.oI.Jf * (y[0] ? o * .5 : 1), new aH(0, 0)));
		this.iw = X.clone()
	};
	am.prototype.lineTo = function (F, P, o) {
		o = this.kG(o);
		var X = this.B1,
			Y = X.length,
			y = X[Y - 2],
			z = X[Y - 1];
		if (F == y && P == z) return;
		var s = this.i.Brsh.v.Dmtr.v.val,
			t = Math.ceil(s) + 1,
			d = new ev(Math.round(y), Math.round(z), 0, 0);
		d.PK(t, t);
		var U = new ev(Math.round(F), Math.round(P), 0, 0);
		U.PK(t, t);
		this.sd(d.s7(U));
		this.B1.push(F, P);
		this.xT.push(o);
		Y += 2;
		if (Y >= 6) this.rT(this.IS(Y))
	};
	am.prototype.kG = function (F) {
		if (F == null) F = 1;
		F = Math.max(.05, Math.min(5, F));
		if (isNaN(F)) {
			alert("Pressure is not a number");
			throw "e"
		}
		return F
	};
	am.prototype.rT = function (F) {
		this.ym = F;
		this.nu = this.nu.s7(F)
	};
	am.prototype.finish = function () {
		var F = this.B1,
			P = F.length,
			o;
		if (P == 4) o = this.$k(F[P - 2], F[P - 1], this.xT[(P >> 1) - 1], !0);
		if (P > 4) o = this.IS(P + 2);
		if (o) this.rT(o)
	};
	am.prototype.IS = function (F) {
		var P = this.B1,
			o = this.xT,
			X = P[F - 6],
			Y = P[F - 5],
			y = P[F - 4],
			z = P[F - 3],
			s = o[(F >> 1) - 3],
			t = o[(F >> 1) - 2],
			d = new aH(0, 0),
			U = new aH(0, 0);
		if (8 <= F) d = am.l_(P[F - 8], P[F - 7], X, Y, y, z);
		if (F <= P.length) U = am.l_(P[F - 2], P[F - 1], y, z, X, Y);
		var v = X + d.x,
			A = Y + d.y,
			Z = y + U.x,
			D = z + U.y,
			q = new ev;
		for (var w = 0; w < 10; w++) {
			var R = (w + 1) * .1,
				J = 1 - R,
				W = J * J * J * X + 3 * R * J * J * v + 3 * R * R * J * Z + R * R * R * y,
				p = J * J * J * Y + 3 * R * J * J * A + 3 * R * R * J * D + R * R * R * z,
				n = this.$k(W, p, s + R * (t - s));
			q = q.s7(n)
		}
		return q
	};
	am.l_ = function (F, P, o, X, Y, y) {
		var z = F - o,
			s = P - X,
			t = Y - o,
			d = y - X,
			U = Math.sqrt(z * z + s * s),
			v = Math.sqrt(t * t + d * d),
			A = Math.acos((z * t + s * d) / (U * v)) / Math.PI,
			Z = .35,
			D = .1;
		A = D + A * (Z - D);
		var q = Y - F,
			R = y - P,
			J = Math.sqrt(q * q + R * R),
			W = A * v / J;
		return new aH(q * W, R * W)
	};
	am.prototype.$k = function (F, P, o, X) {
		var Y = new ev,
			y = this.oI.a2k;
		if (y == null) y = 0;
		if (y == 0 || X) {
			Y = this.OI(F, P, o);
			return Y
		}
		var z = this.H9,
			s = F - z.x,
			t = P - z.y,
			d = Math.sqrt(s * s + t * t);
		s /= d;
		t /= d;
		if (d > y) {
			var U = z.x + s * (d - y),
				v = z.y + t * (d - y);
			Y = this.OI(U, v, o);
			this.H9.Oh(U, v)
		}
		return Y
	};
	am.prototype.OI = function (F, P, o) {
		var X = new ev,
			Y = new aH(F, P),
			y = this.i.Brsh.v.Dmtr.v.val,
			z = this.oI.p9,
			s = Y.gI(this.KO);
		s.normalize(1);
		var t = aH.Yj(this.KO, Y),
			d = -this.aiD,
			U = this.KO.clone(),
			v = this.oI.lx;
		while (!0) {
			var A = this.Ex + (o - this.Ex) * (Math.max(0, d) / t),
				Z = this.DC() * (v[1] ? A : 1),
				D = this.am7() * (Z + this.a0x) / 2;
			if (z == am.nD) D = 1;
			if (d + D < t) {
				d += D;
				var q = new aH(this.KO.x + s.x * d, this.KO.y + s.y * d),
					W = 1;
				if (z == am.nD) {
					var R = U.clone();
					R.x += s.x > 0 ? 1 : -1;
					var J = U.clone();
					J.y += s.y > 0 ? 1 : -1;
					if (aH.Yj(R, q) < aH.Yj(J, q)) q = R;
					else q = J;
					d = aH.Yj(q, this.KO)
				}
				if (this.i.useScatter.v == !0) {
					W = this.i.Cnt.v;
					var p = this.i.countDynamics.v.jitter.v.val / 100,
						n = p * (-1 + 2 * this.Jv());
					W += Math.round(W * n)
				}
				for (var w = 0; w < W; w++) {
					var b = this.N8(q, Z, this.oI.Jf * (v[0] ? A * .5 : 1), s);
					X = X.s7(b)
				}
				U = q
			} else break
		}
		this.aiD = t - d;
		this.KO = Y;
		this.Ex = o;
		return X
	};
	am.prototype.am7 = function () {
		var F = this.i.Brsh.v,
			P = F.Spcn.v.val,
			o = Math.max(5, F.Rndn.v.val);
		return o / 100 * (P / 100)
	};
	am.prototype.DC = function () {
		var F = this.i,
			P = F.Brsh.v.Dmtr.v.val;
		if (F.useTipDynamics.v) {
			var o = P * (F.minimumDiameter.v.val / 100);
			P = o + (P - o) * (1 - this.Jv() * (F.szVr.v.jitter.v.val / 100))
		}
		return P
	};
	am.prototype.N8 = function (F, P, o, X) {
		o = Math.min(1, o);
		var Y = this.i,
			y = this.i.Brsh.v,
			z = y.Dmtr.v.val,
			s = this.oI,
			t = s.p9,
			d = s.adc,
			U = new cu;
		U.translate(-this.Gv.ik.Z / 2, -this.Gv.ik.h / 2);
		U.scale(1 / this.Gv.alv, 1 / this.Gv.alv);
		U.scale(P / z, P / z);
		U.scale(1, Math.max(5, y.Rndn.v.val) / 100);
		if (Y.useTipDynamics.v) {
			var v = Y.minimumRoundness.v.val / 100;
			U.scale(1, v + (1 - v) * Math.round(100 - this.Jv() * Y.roundnessDynamics.v.jitter.v.val) / 100);
			U.rotate((-.5 + this.Jv()) * 4 * Math.PI * (Y.angleDynamics.v.jitter.v.val / 100))
		}
		U.rotate(y.Angl.v.val * (Math.PI / 180));
		if (Y.useScatter.v) {
			var A = (-1 + 2 * this.Jv()) * Y.scatterDynamics.v.jitter.v.val / 100;
			U.translate(-A * P * X.y, A * P * X.x)
		}
		U.translate(F.x, F.y);
		var Z = this.aeh(U, F);
		this.sd(Z.rect);
		var D = Z.rect.clone();
		if (t == null) {
			var q = this.T6(Y);
			H.XB(Z.Em, Math.round(q.i * 255) << 16 | Math.round(q.S * 255) << 8 | Math.round(q.U * 255) << 0, 4278190080);
			if (this.nu.qr() && this.rect.Qn(Z.rect) && o == 1) this.Ww = Z.Em.slice(0);
			else H.N.a1d(Z.Em, Z.rect, this.Ww, this.rect, Z.rect, o)
		}
		if (t == am.nD) {
			var R = new aH(Z.rect.x + Z.rect.Z / 2, Z.rect.y + Z.rect.h / 2),
				J = Math.round(R.x - this.iw.x),
				W = Math.round(R.y - this.iw.y),
				p = Z.rect.clone();
			p.offset(-J, -W);
			var n = p.$X(this.rect);
			n.offset(J, W);
			H.BP(this.Ww, this.rect, Z.Em, p);
			H.N.V7(Z.Em, Z.rect, this.Ww, this.rect, Z.px, Z.rect, o)
		}
		if (t == am.oZ || t == am.hW || t == am.jB) {
			var b = Z.rect.$X(this.rect),
				Q;
			if (b.Qn(Z.rect)) Q = Z.px;
			else {
				Q = H.R(b.M());
				H.Lj(Z.px, Z.rect, Q, b)
			}
			var _ = H.R(b.M() * 4);
			H.BP(this.Ww, this.rect, _, b);
			if (t == am.hW) {
				var L = H.clone(_),
					m = H.Ai.h5([-1, -1, -1, -1, 25, -1, -1, -1, -1]);
				H.Ai.or(_, L, b.Z, b.h, m, 0);
				H.Hk(L, _)
			} else if (t == am.jB) {
				var I = bv.tt("UnsM");
				I.Amnt.v.val = 15;
				I.Thsh.v = 0;
				I.Rds.v.val = 5;
				var L = H.R(_.length);
				bv.t5("UnsM", {
					buffer: _,
					rect: b
				}, I, 0, 0, {
					buffer: L,
					rect: b
				});
				H.Hk(L, _)
			} else {
				bv.ep(1, H.ni.$f, _, b)
			}
			H.N.V7(_, b, this.Ww, this.rect, Q, b, o)
		}
		this.a0x = P;
		this.iw = R;
		return D
	};
	am.prototype.T6 = function (F) {
		var P = am.tw(this.GY);
		if (F.useColorDynamics && F.useColorDynamics.v) {
			var o = 1 - this.Jv() * F.clVr.v.jitter.v.val / 100,
				X = am.tw(this.Ty);
			P.U = o * P.U + (1 - o) * X.U;
			P.S = o * P.S + (1 - o) * X.S;
			P.i = o * P.i + (1 - o) * X.i;
			var Y = (-.5 + this.Jv()) * F.H.v.val / 100,
				y = (-1 + 2 * this.Jv()) * F.Strt.v.val / 100,
				z = (-1 + 2 * this.Jv()) * F.Brgh.v.val / 100,
				s = H.eE(P.U, P.S, P.i);
			s.mi = (s.mi + Y + 1) % 1;
			s.Pg = s.Pg + y;
			if (s.Pg < 0) s.Pg = -s.Pg;
			if (s.Pg > 1) s.Pg = 1 - (s.Pg - 1);
			s.pl = s.pl + z;
			if (s.pl < 0) s.pl = -s.pl;
			if (s.pl > 1) s.pl = 1 - (s.pl - 1);
			P = H.ul(s.mi, s.Pg, s.pl)
		}
		return P
	};
	am.prototype.w_ = function (F) {
		return Math.max(0, Math.min(1, F))
	};
	am.prototype.Jv = function () {
		this.Og++;
		return am.hash(this.Og)
	};
	am.tw = function (F) {
		return {
			U: (F >> 16 & 255) / 255,
			S: (F >> 8 & 255) / 255,
			i: (F >> 0 & 255) / 255
		}
	};
	am.hash = function (F) {
		F = F ^ 61 ^ F >> 16;
		F = F + (F << 3);
		F = F ^ F >> 4;
		F = F * 668265261;
		F = F ^ F >> 15;
		return (F & 16777215) / 16777215
	};
	am.x5 = [];
	am.am1 = function (F, e) {
		var P = F.d3(),
			o = e.d3();
		if (P < o) {
			var X = P;
			P = o;
			o = X
		}
		var Y = F.m - e.m,
			y = F.i - e.i,
			z = F.p$ - e.p$,
			s = F.xA - e.xA;
		return o != 0 && P - o < .025 && Math.max(Y * Y, y * y, z * z, s * s) <= .01
	};
	am.prototype.aeh = function (F, P) {
		var o = null,
			y;
		for (var w = 0; w < am.x5.length; w++)
			if (am.x5[w].YD == this.YD) {
				o = am.x5[w];
				am.x5.splice(w, 1)
			} if (o == null) o = {
			pC: [],
			YD: this.YD,
			Pl: 0,
			M: 0
		};
		var X = o.pC,
			Y = this.oI.mc;
		if (Y) {
			F = F.clone();
			F.PV = Math.floor(F.PV);
			F.ye = Math.floor(F.ye)
		}
		var z = am.aC(F.PV, F.ye);
		for (var w = 0; w < X.length; w++) {
			var s = X[w];
			if (!am.am1(s.qm, F)) continue;
			if (am.ajJ(s.tZ, z) < .2 || s.rect.M() > 2500) {
				y = s;
				break
			}
		}
		var t = Math.round(this.i.Brsh.v.Dmtr.v.val);
		if (y) {
			y.rect.x = Math.round(y.f_.x - y.qm.PV + F.PV);
			y.rect.y = Math.round(y.f_.y - y.qm.ye + F.ye);
			if (Y) {
				y.rect.x = Math.round(P.x - y.rect.Z / 2);
				y.rect.y = Math.round(P.y - y.rect.h / 2)
			}
			y.Pl = Date.now()
		} else {
			var d;
			if (Y && t <= 3) {
				d = {
					buffer: H.R(t * t * 4),
					rect: new ev(Math.round(P.x - t / 2), Math.round(P.y - t / 2), t, t)
				};
				H.XB(d.buffer, 4278190080)
			} else if (F.m == 1 && F.i == 0 && F.p$ == 0 && F.xA == 1) {
				d = {
					buffer: this.Gv.Em,
					rect: this.Gv.ik.clone()
				};
				d.rect.x = Math.round(F.PV);
				d.rect.y = Math.round(F.ye)
			} else d = B.X.Z6([this.Gv.Em, this.Gv.ik], F);
			if (Y) {
				for (var w = 0; w < d.buffer.length; w++) d.buffer[w] = d.buffer[w] > 127 ? 255 : 0
			}
			if (d == null) d = {
				buffer: H.R(0),
				rect: new ev
			};
			var U = F.PV - Math.floor(F.PV),
				v = F.ye - Math.floor(F.ye);
			y = {
				Em: d.buffer,
				px: H.R(d.rect.M()),
				rect: d.rect,
				f_: d.rect.clone(),
				qm: F,
				tZ: am.aC(F.PV, F.ye),
				Pl: Date.now()
			};
			H.E4(y.Em, y.px, 3);
			X.push(y);
			o.M += d.rect.M();
			if (X.length > 2e3 || o.M > 100 * 100 * 400) {
				console.log("pruning", o.M, X.length);
				X.sort(function (Z, D) {
					return D.Pl - Z.Pl
				});
				while (X.length > 1e3 || o.M > 100 * 100 * 200) {
					var A = X.pop();
					o.M -= A.rect.M()
				}
			}
		}
		o.pC = X;
		o.Pl = Date.now();
		am.x5.push(o);
		am.x5.sort(function (Z, D) {
			return D.Pl - Z.Pl
		});
		while (am.x5.length > 3) am.x5.pop();
		return y
	};
	am.aC = function (F, P) {
		return new aH(F - Math.floor(F), P - Math.floor(P))
	};
	am.ajJ = function (F, P) {
		var o = P.x,
			X = P.y,
			Y = Math.abs(o - F.x),
			y = Math.abs(X - F.y);
		if (Math.abs(o - 1 - F.x) < Y) o--;
		else if (Math.abs(o + 1 - F.x) < Y) o++;
		if (Math.abs(X - 1 - F.y) < y) X--;
		else if (Math.abs(X + 1 - F.y) < y) X++;
		Y = F.x - o;
		y = F.y - X;
		return Math.sqrt(Y * Y + y * y)
	};
	am.prototype.sd = function (F) {};
	am.aeX = function (F, P, o) {
		var X, Y, y, z = F.Brsh.v.Dmtr.v.val;
		if (F.Brsh.v.classID == "computedBrush") {
			var s = F.Brsh.v.Hrdn.v.val / 100,
				t = 1 + .55 * (1 - s);
			y = z < 100 ? 1.2 : 1;
			var d = Math.round(y * z * t);
			Y = new ev(0, 0, d, d);
			X = H.R(d * d * 4);
			var U = new Uint32Array(X.buffer),
				v = d / 2,
				A = t / v,
				Z = Date.now(),
				D = am.$i(s),
				q = Math.round(8e3 / v),
				P = D[0],
				R = D[1] - q,
				J = D[2] + q,
				W = Math.min(d, (d >>> 1) + 1);
			for (var w = 0; w < W; w++) {
				var p = A * (w - v + .25);
				p *= p;
				var n = A * (w - v + .75);
				n *= n;
				var b = w * d,
					Q = (d - 1 - w) * d;
				for (var _ = 0; _ < W; _++) {
					var L = A * (_ - v + .25),
						m = Math.floor(Math.sqrt(L * L + p) * (4e3 / 1.55));
					if (J < m) continue;
					else if (m < R) {
						var I = 4278190080;
						while (_ < W) {
							var c = d - 1 - _;
							U[b + _] = I;
							U[b + c] = I;
							U[Q + _] = I;
							U[Q + c] = I;
							_++
						}
						break
					} else {
						var u = A * (_ - v + .75),
							a = Math.floor(Math.sqrt(u * u + p) * (4e3 / 1.55)),
							N = Math.floor(Math.sqrt(L * L + n) * (4e3 / 1.55)),
							V = Math.floor(Math.sqrt(u * u + n) * (4e3 / 1.55)),
							I = ~~(.5 + 255 * .25 * (P[m] + P[a] + P[N] + P[V])) << 24,
							c = d - 1 - _;
						U[b + _] = I;
						U[b + c] = I;
						U[Q + _] = I;
						U[Q + c] = I
					}
				}
			}
		}
		if (F.Brsh.v.classID == "sampledBrush") {
			var M;
			for (var w = 0; w < P.length; w++)
				if (P[w].id == F.Brsh.v.sampledData.v) M = P[w];
			Y = new ev(0, 0, M.T.Z, M.T.h);
			y = Math.max(Y.Z, Y.h) / z;
			X = H.R(Y.M() * 4);
			H.Oy(M.channel, X, 3)
		}
		while (Math.min(Y.Z, Y.h) > z * 2) {
			var O = new ev(Y.x, Y.y, Math.floor(Y.Z / 2), Math.floor(Y.h / 2)),
				K = B.X.Z6([X, Y], new cu(O.Z / Y.Z, 0, 0, O.h / Y.h, 0, 0));
			y *= O.Z / Y.Z;
			Y = K.rect;
			X = K.buffer
		}
		return {
			alv: y,
			ik: Y,
			Em: X
		}
	};
	am.ii = [];
	am.$i = function (F) {
		if (am.ii[F]) return am.ii[F];
		var P = Math.pow(F, .55),
			o = new Float64Array(8e3),
			X = 0,
			Y = 8e3;
		for (var w = 0; w < 8e3; w++) {
			var y = am.akO(w * (1.55 / 4e3), P);
			if (y >= 1) X = w;
			else if (y <= 0 && Y == 8e3) Y = w;
			o[w] = y
		}
		var z = [o, X, Y];
		am.ii[F] = z;
		return z
	};
	am.akO = function (F, P) {
		var o = F < P ? 1 : am.aiF((F - P) / Math.pow(1.001 - P, .86));
		return o
	};
	am.aiF = function (F) {
		var P = F * .85;
		return Math.exp(-(P * P) * (1 / (2 * .4 * .4))) * (1 / (.4 * Math.sqrt(2 * Math.PI)))
	};
	am.prototype.o7 = function () {
		return this.rect.clone()
	};
	am.prototype.Oo = function () {
		return this.ym.$X(this.rect)
	};
	am.prototype.J0 = function () {
		return this.nu.$X(this.rect)
	};
	am.prototype.qq = function () {
		return this.Ww
	};
	am.w7 = null;
	am.ui = null;
	am.m2 = function (F, P, o, X, Y, y) {
		var z = am.w7,
			s = am.ui;
		if (z == null) {
			am.w7 = z = i.z("canvas", "");
			am.ui = s = z.getContext("2d")
		}
		if (y == null) y = X;
		if (z.width != y || z.height != Y) {
			z.width = y;
			z.height = Y
		} else s.clearRect(0, 0, y, Y);
		s.fillStyle = "#000000";
		s.font = Math.floor(10 * i.J()) + "px sans-serif";
		var t = F.Brsh.v.Dmtr.v.val,
			d = "" + t,
			U = s.measureText(d);
		s.fillText(d, (X - U.width) / 2, Y - 2);
		var v = X,
			A = Y - 10 * i.J(),
			Z = Math.min(v, A),
			D = F.Brsh.v.classID;
		if (D == "computedBrush") {
			s.translate(v / 2, A / 2);
			s.rotate(-F.Brsh.v.Angl.v.val * Math.PI / 180);
			s.scale(1, .1 + .9 * F.Brsh.v.Rndn.v.val / 100);
			var q = Math.min(.95 * Z / 2, t / 2) + .5,
				R = .9 * F.Brsh.v.Hrdn.v.val / 100,
				J = s.createRadialGradient(0, 0, 0, 0, 0, q);
			J.addColorStop(R, "rgba(0,0,0,1)");
			J.addColorStop((.5 + R) / 1.5, "rgba(0,0,0,.5)");
			J.addColorStop(1, "rgba(0,0,0,0)");
			s.fillStyle = J;
			s.fillRect(-q, -q, 2 * q, 2 * q);
			s.setTransform(1, 0, 0, 1, 0, 0)
		} else if (D == "sampledBrush") {
			var W, _ = 0;
			for (var w = 0; w < P.length; w++)
				if (P[w].id == F.Brsh.v.sampledData.v) W = P[w];
			var p = W.a1H;
			if (p == null) {
				p = W.a1H = [W.channel, W.T];
				H.h8(p)
			}
			var n = W.channel,
				b = W.T.Z,
				Q = W.T.h;
			while ((b > v || Q > A) && p[_ + 2]) {
				_ += 2;
				n = p[_];
				b = p[_ + 1].Z;
				Q = p[_ + 1].h
			}
			if (b * Q != 0) {
				var L = H.R(b * Q * 4);
				H.Oy(n, L, 3);
				var m = new ImageData(new Uint8ClampedArray(L.buffer), b, Q);
				s.putImageData(m, Math.round((v - b) / 2), Math.round((A - Q) / 2))
			}
		} else {}
		return z.toDataURL()
	};
	am.ug = function (F, P, o, X) {
		if (o == 0) o = 1;
		var Y = F.Brsh.v,
			y = Y.Dmtr.v.val,
			z = Y.Dmtr.v.val = Math.min(X != null ? Math.round(X * 2.6) : 3e3, y * o),
			s = Y.Hrdn ? Y.Hrdn.v.val / 100 : 1,
			t = X != null ? X : Math.round(z * (1 + .55 * (1 - s))) + 4,
			v;
		t = Math.max(15, Math.min(t, 3e3));
		var d = new ev(0, 0, t, t),
			U = new am(F, P, null, {
				Jf: 1
			}, 16711712, 0, d);
		Y.Dmtr.v.val = y;
		U.moveTo(d.Z / 2, d.h / 2);
		var A = U.qq(),
			Z = U.o7();
		if (d.Qn(Z)) v = A;
		else {
			v = H.R(d.M() * 4);
			H.BP(A, Z, v, d)
		}
		return [v, d, z]
	};
	am.b_ = function (F, P, o, X) {
		var Y = am.ug(F, P, o),
			y = Y[0],
			z = Y[1],
			s = Y[2],
			t = z.M(),
			d = H.R(t);
		H.E4(y, d, 3);
		var U = H.R(t);
		H.K.ahE(d, U, z);
		if (s < 3 || H.wq(U, 0) || X && s > 12) {
			var v = z.Z,
				A = v >>> 1,
				Z = U,
				D = 255;
			for (var w = 0; w < 4; w++) {
				Z[v * (A - 6 + w) + A] = D;
				Z[v * A + A - 6 + w] = D;
				Z[v * A + A + 6 - w] = D;
				Z[v * (A + 6 - w) + A] = D
			}
		}
		var q = [1, 2, 1, 2, 8, 2, 1, 2, 1];
		q = H.Ai.h5(q);
		H.Ai.aet(U, d, z.Z, z.h, q);
		H.XB(y, 4294967295);
		H.Oy(d, y, 3);
		for (var w = 0; w < t; w++)
			if (U[w] == 255) {
				y[w << 2] = y[(w << 2) + 1] = y[(w << 2) + 2] = 0;
				y[(w << 2) + 3] = 255
			} return {
			jX: y,
			T: z,
			bP: new aH(z.Z / 2, z.h / 2)
		}
	};
	am.nD = "0";
	am.oZ = "1";
	am.hW = "2";
	am.jB = "3";
	var dQ = {};
	dQ.ti = function (F, P) {
		var o = F.yD(),
			t;
		if (o.x == Infinity || o.qr()) return {
			Ww: H.R(0),
			T: new ev,
			xa: new ev
		};
		var X = F.yD(),
			Y = dQ.Dz(F, P),
			y = H.D.YI(Y.d);
		if (y.qr()) return {
			Ww: H.R(0),
			T: new ev,
			xa: new ev
		};
		var z = i.z("canvas", "");
		z.width = y.Z;
		z.height = y.h;
		var s = z.getContext("2d");
		s.translate(-y.x, -y.y);
		dQ.aen(Y, s);
		if (F.dS.length != 0) {
			var d = bt.oQ(P),
				U = s.getImageData(0, 0, y.Z, y.h);
			t = new Uint8Array(U.data.buffer);
			if (d == 0)
				for (var w = 0; w < t.length; w += 4) t[w + 3] = t[w + 3] > 80 ? 255 : 0;
			if (d == 3)
				for (var w = 0; w < t.length; w += 4) t[w + 3] = Math.min(255, t[w + 3] * 1.5)
		} else t = H.R(y.M() * 4);
		return {
			Ww: t,
			T: y,
			xa: X
		}
	};
	dQ.Dz = function (F, P) {
		var o = {
				W: [],
				d: []
			},
			X = P.O,
			Y = bt.oQ(P),
			y = Math.max(X.i * X.i, X.p$ * X.p$) < 1e-9 ? X : null;
		if (Y == 3 || Y == 4) y = null;
		dQ.adE(F, o, y);
		if (!H.mD.O8(P.VU)) {
			var z = H.D.nP(o.d);
			o = H.D.pP(o);
			o = H.D.Tm(o, Math.min(z.Z, z.h) / 8);
			var s = bt.o7(P, F),
				t = H.mD.ij(P.VU, s);
			H.ea.apply(t, o.d, s)
		}
		H.D.O(o.d, X, o.d);
		return o
	};
	dQ.aen = function (F, P) {
		Typr.U.pathToContext({
			crds: F.d,
			cmds: F.W
		}, P)
	};
	dQ.SR = function (F, P) {
		if (!dc.NX()) return;
		var o = F.MF,
			X = o.ResourceDict.FontSet,
			Y = o.ResourceDict.StyleSheetSet[0].StyleSheetData,
			y = o.EngineDict.StyleRun.RunLengthArray,
			z = o.EngineDict.StyleRun.RunArray,
			s = bt.jn(o),
			t = !0,
			d = {},
			U = 0;
		for (var w = 0; w < z.length; w++) {
			var v = z[w].StyleSheet.StyleSheetData.Font;
			if (v == null) v = Y.Font;
			for (var A = 0; A < y[w]; A++) {
				var Z = s.charCodeAt(U + A),
					D = v + "," + (Z > 128 ? Z : -1);
				if (d[D] == null) {
					d[D] = 1;
					if (P.VV(X[v].Name, Z) == null) t = !1
				}
			}
			U += y[w]
		}
		return t
	};
	dQ.adE = function (F, P, o) {
		var X = new cu;
		for (var w = 0; w < F.eS.length; w++) dQ.ad1(F.dS, F.eS[w], P, X, o)
	};
	dQ.ad1 = function (F, P, o, X, Y) {
		X.translate(P.tZ.x, P.tZ.y);
		for (var w = 0; w < P.V8.length; w++) {
			var y = {},
				z = P.V8[w];
			if (!z.fH) break;
			var s = X.clone();
			s.translate(z.tZ.x, z.tZ.y);
			if (Y) {
				var t = Y.ye + s.ye * Y.xA;
				s.ye = (Math.round(t) - Y.ye) / Y.xA
			}
			for (var d = z.start; d < z.end; d++) dQ.ale(F, P.Vz[d], P, y, o, s)
		}
		X.translate(-P.tZ.x, -P.tZ.y)
	};
	dQ.a0v = "()<>[]{}\xAB\xBB\u0F3A\u0F3B\u0F3C\u0F3D\u169B\u169C\u2039\u203A\u2045\u2046\u207D\u207E\u208D\u208E\u2208\u2209\u220A\u220B\u220C\u220D\u2215\u223C\u223D\u2243\u2252\u2253\u2254\u2255\u2264\u2265\u2266\u2267\u2268\u2269\u226A\u226B\u226E\u226F\u2270\u2271\u2272\u2273\u2274\u2275\u2276\u2277\u2278\u2279\u227A\u227B\u227C\u227D\u227E\u227F\u2280\u2281\u2282\u2283\u2284\u2285\u2286\u2287\u2288\u2289\u228A\u228B\u228F\u2290\u2291\u2292\u2298\u22A2\u22A3\u22A6\u22A8\u22A9\u22AB\u22B0\u22B1\u22B2\u22B3\u22B4\u22B5\u22B6\u22B7\u22C9\u22CA\u22CB\u22CC\u22CD\u22D0\u22D1\u22D6\u22D7\u22D8\u22D9\u22DA\u22DB\u22DC\u22DD\u22DE\u22DF\u22E0\u22E1\u22E2\u22E3\u22E4\u22E5\u22E6\u22E7\u22E8\u22E9\u22EA\u22EB\u22EC\u22ED\u22F0\u22F1\u22F2\u22F3\u22F4\u22F6\u22F7\u22FA\u22FB\u22FC\u22FD\u22FE\u2308\u2309\u230A\u230B\u2329\u232A\u2768\u2769\u276A\u276B\u276C\u276D\u276E\u276F\u2770\u2771\u2772\u2773\u2774\u2775\u27C3\u27C4\u27C5\u27C6\u27C8\u27C9\u27CB\u27CD\u27D5\u27D6\u27DD\u27DE\u27E2\u27E3\u27E4\u27E5\u27E6\u27E7\u27E8\u27E9\u27EA\u27EB\u27EC\u27ED\u27EE\u27EF\u2983\u2984\u2985\u2986\u2987\u2988\u2989\u298A\u298B\u298C\u298D\u298E\u298F\u2990\u2991\u2992\u2993\u2994\u2995\u2996\u2997\u2998\u29B8\u29C0\u29C1\u29C4\u29C5\u29CF\u29D0\u29D1\u29D2\u29D4\u29D5\u29D8\u29D9\u29DA\u29DB\u29F5\u29F8\u29F9\u29FC\u29FD\u2A2B\u2A2C\u2A2D\u2A2E\u2A34\u2A35\u2A3C\u2A3D\u2A64\u2A65\u2A79\u2A7A\u2A7D\u2A7E\u2A7F\u2A80\u2A81\u2A82\u2A83\u2A84\u2A8B\u2A8C\u2A91\u2A92\u2A93\u2A94\u2A95\u2A96\u2A97\u2A98\u2A99\u2A9A\u2A9B\u2A9C\u2AA1\u2AA2\u2AA6\u2AA7\u2AA8\u2AA9\u2AAA\u2AAB\u2AAC\u2AAD\u2AAF\u2AB0\u2AB3\u2AB4\u2ABB\u2ABC\u2ABD\u2ABE\u2ABF\u2AC0\u2AC1\u2AC2\u2AC3\u2AC4\u2AC5\u2AC6\u2ACD\u2ACE\u2ACF\u2AD0\u2AD1\u2AD2\u2AD3\u2AD4\u2AD5\u2AD6\u2ADE\u2AE3\u2AE4\u2AE5\u2AEC\u2AED\u2AF7\u2AF8\u2AF9\u2AFA\u2E02\u2E03\u2E04\u2E05\u2E09\u2E0A\u2E0C\u2E0D\u2E1C\u2E1D\u2E20\u2E21\u2E22\u2E23\u2E24\u2E25\u2E26\u2E27\u2E28\u2E29\u3008\u3009\u300A\u300B\u300C\u300D\u300E\u300F\u3010\u3011\u3014\u3015\u3016\u3017\u3018\u3019\u301A\u301B\uFE59\uFE5A\uFE5B\uFE5C\uFE5D\uFE5E\uFE64\uFE65\uFF08\uFF09\uFF1C\uFF1E\uFF3B\uFF3D\uFF5B\uFF5D\uFF5F\uFF60\uFF62\uFF63";
	dQ.ale = function (F, P, o, X, Y, y) {
		y.translate(P.tZ.x, P.tZ.y);
		for (var z = P.GZ; z <= P.sf; z++) {
			var s = o.K5[z],
				t = s.T.Z,
				d = F[o.a5Q + s.Fc];
			if (d.hp == "\n") continue;
			var U = d.Sx.FontSize / d.kb.head.unitsPerEm,
				v = bt.T6(d.Sx),
				A = (Math.round(v.U) << 16) + (Math.round(v.S) << 8) + Math.round(v.i);
			Y.W.push("#" + H.v2(A));
			var Z = y.clone();
			Z.translate(s.tZ.x + s.XW * U, s.tZ.y - s.tD * U);
			var D = new cu;
			D.scale(U, -U);
			if (d.kU == 1 && dQ.a0v.indexOf(d.hp) != -1) D.concat(new cu(-1, 0, 0, 1, t, 0));
			if (d.Sx.FauxItalic) D.concat(new cu(1, 0, -Math.tan(.18), 1, 0, 0));
			D.translate(0, d.BS);
			D.scale(d.scale.x, d.scale.y);
			if (d.Sx.BaselineShift != null) D.translate(0, -d.Sx.BaselineShift);
			if (s.D8 != 0) {
				D.rotate(-s.D8)
			}
			D.concat(Z);
			if (s.path.W.length != 0 && d.hp != "\t") {
				if (d.Sx.FauxBold) {
					var q = d.Sx.FontSize / 2048 * 27 * d.scale.x;
					D.PV += q;
					H.D.concat(Y, s.path, D);
					D.PV -= q + q;
					H.D.concat(Y, s.path, D)
				} else H.D.concat(Y, s.path, D)
			}
			if (d.hp != "\n") {
				if (d.Sx.Underline) {
					if (X.EF == null) X.EF = d.kb.post.underlineThickness;
					if (X.afO == null) X.afO = d.kb.post.underlinePosition;
					var R = 0,
						J = X.afO - X.EF / 2,
						W = s.Bx * 1.05,
						p = -X.EF;
					H.D.concat(Y, {
						W: ["M", "L", "L", "L", "Z"],
						d: [R, J, R + W, J, R + W, J + p, R, J + p]
					}, D)
				}
				if (d.Sx.Strikethrough) {
					var n = d.kb["OS/2"].yStrikeoutSize,
						b = d.kb["OS/2"].yStrikeoutPosition,
						R = 0,
						J = b + n / 2,
						W = s.Bx * 1.05,
						p = -n;
					H.D.concat(Y, {
						W: ["M", "L", "L", "L", "Z"],
						d: [R, J, R + W, J, R + W, J + p, R, J + p]
					}, D)
				}
			}
			Y.W.push("X")
		}
		y.translate(-P.tZ.x, -P.tZ.y)
	};

	function dc(F, P) {
		var o = bt.AW(F),
			X, Y, y = bt.dd(F),
			t;
		if (F.Curve) Y = dc.Pr(F.Curve);
		if (o != 0) {
			X = new ev(y[0], y[1], y[2], y[3]);
			if (o == 2) {
				X.Z = Y[5] - Y[4];
				X.h = 9999
			}
		}
		this.eS = [];
		this.dS = [];
		this.iy = o;
		var z = this.ac_ = bt.jn(F),
			s = -1;
		for (var w = 0; w < z.length; w++) {
			var d = t,
				U = bt.LQ(F, w);
			if (U != s) {
				s = U;
				d = t = bt.a7v(F, w)
			}
			var v = {
					hp: z.charAt(w),
					Sx: d,
					kb: null,
					FP: -1,
					BS: 0,
					scale: new aH(0, 0),
					hq: 0,
					lineHeight: 0,
					kU: 0
				},
				A = F.ResourceDict.FontSet[d.Font].Name,
				Z = v.kb = P.VV(A, z.charCodeAt(w));
			v.scale.x = d.HorizontalScale == null ? 1 : d.HorizontalScale;
			v.scale.y = d.VerticalScale == null ? 1 : d.VerticalScale;
			var D = Z["OS/2"],
				q = Z.hhea;
			if (d.FontCaps == 1 && v.hp != v.hp.toUpperCase()) {
				var R = D.sxHeight ? D.sxHeight / D.sTypoAscender : .76;
				v.scale.x *= R;
				v.scale.y *= R
			}
			var J = 1 / Z.head.unitsPerEm * d.FontSize;
			if (d.FontBaseline == 1) {
				var R = F.ResourceDict.SuperscriptSize;
				v.scale.x *= R;
				v.scale.y *= R;
				v.BS -= F.ResourceDict.SuperscriptPosition * d.FontSize
			}
			if (d.FontBaseline == 2) {
				var R = F.ResourceDict.SubscriptSize;
				v.scale.x *= R;
				v.scale.y *= R;
				v.BS += F.ResourceDict.SubscriptPosition * d.FontSize
			}
			var W = dc.hq(Z, A);
			v.hq = W * J;
			v.lineHeight = d.FontSize * 1.2;
			if (d.AutoLeading == !1) v.lineHeight = d.Leading;
			this.dS.push(v)
		}
		var p = this.eS,
			n = [0];
		for (var w = 0; w < F.EngineDict.ParagraphRun.RunLengthArray.length; w++) {
			var b = new dc.md(F, P, this.dS, w, X, n, o == 1 ? Y : null);
			p.push(b)
		}
		if (o == 2) {
			var Q = F.Curve.Points,
				_ = Y[0],
				L = Y[1],
				m = Y[2],
				I = Y[3],
				c = Y[4],
				u = Y[5];
			for (var w = 0; w < p.length; w++)
				for (var a = 0; a < p[w].V8.length; a++)
					if (!(w == 0 && a == 0)) p[w].V8[a].fH = !1;
			var b = p[0],
				N = b.V8[0];
			b.tZ.Oh(0, 0);
			N.tZ.Oh(0, 0);
			for (var a = N.start; a < N.end; a++) {
				var V = b.Vz[a],
					M = V.tZ.x;
				V.tZ.x = 0;
				for (var O = V.GZ; O <= V.sf; O++) {
					var K = b.K5[O],
						j = K.T.Z / 2;
					K.tZ.x += M;
					var $ = dc.adt(_, (c + K.tZ.x + j) % I);
					K.tZ.x = $[0] - j * $[2];
					K.tZ.y = $[1] - j * $[3];
					K.D8 = Math.atan2($[3], $[2])
				}
			}
		}
	}
	dc.hq = function (F, P) {
		var o = F["OS/2"],
			X = F.hhea,
			Y = 0,
			Y = 0,
			y = [];
		y.push(o && o.sxHeight && P.toLowerCase().indexOf("capitals") != -1 ? o.sxHeight : 0);
		y.push(o && o.sCapHeight ? o.sCapHeight : 0);
		y.push(o && o.sTypoAscender ? o.sTypoAscender : 0);
		y.push(X.ascender ? X.ascender : 0);
		for (var z = 0; z < y.length; z++)
			if (y[z] != 0) {
				Y = y[z];
				break
			} return Y
	};
	dc.prototype.a7j = function () {
		return !this.q8(0)
	};
	dc.prototype.aaP = function () {
		return this.q8(1)
	};
	dc.prototype.q8 = function (F) {
		var P = this.eS,
			o = !0,
			X = 0;
		for (var w = 0; w < P.length; w++) {
			var Y = P[w].V8,
				y = Y.length;
			X += y;
			for (var z = 0; z < y; z++) o &= Y[z].fH
		}
		return [o, X][F]
	};
	dc.Pr = function (F) {
		var P = F.Points,
			o = P.length,
			X = o >>> 3,
			Y = F.TextOnPathTRange,
			y = F.Reversed,
			U = 0,
			v = 0;
		if (y) {
			var z = P.slice(0);
			for (var w = 0; w < o; w += 2) {
				z[w] = P[o - 2 - w];
				z[w + 1] = P[o - 1 - w]
			}
			P = z;
			Y = [X - Y[1] % X, X - Y[0] % X]
		}
		var s = [],
			t = [0],
			d = [0];
		for (var w = 0; w < o; w += 8) {
			var A = P[w + 6] - P[w + 0],
				Z = P[w + 7] - P[w + 1],
				D = Math.round(4 * Math.sqrt(A * A + Z * Z));
			for (var q = 0; q < D; q++) {
				var R = q / D,
					J = 1 - R,
					W = J * J * J * P[w + 0] + 3 * J * J * R * P[w + 2] + 3 * J * R * R * P[w + 4] + R * R * R * P[w + 6],
					p = J * J * J * P[w + 1] + 3 * J * J * R * P[w + 3] + 3 * J * R * R * P[w + 5] + R * R * R * P[w + 7];
				s.push(W, p);
				if (w + q != 0) {
					var A = W - U,
						Z = p - v;
					d.push(d[d.length - 1] + Math.sqrt(A * A + Z * Z));
					t.push((w >>> 3) + R)
				}
				U = W;
				v = p
			}
		}
		var n = d.length,
			b = d[n - 1],
			Q = dc.Ec(Y[0], t),
			_ = dc.Ec(Y[1] % X, t),
			L = d[Q % n],
			m = d[_ % n];
		if (L >= m) m += b;
		return [s, t, d, b, L, m]
	};
	dc.Ec = function (F, P) {
		var w = 0;
		while (P[w] < F) w++;
		return w
	};
	dc.adt = function (F, P) {
		var o = 0,
			w = 0,
			X, y, z;
		while (o < P) {
			X = F[w + 2] - F[w];
			y = F[w + 3] - F[w + 1];
			z = Math.sqrt(X * X + y * y);
			o += z;
			w += 2
		}
		return [F[w], F[w + 1], X / z, y / z]
	};
	dc.prototype.a71 = function (F) {
		return this.dS[F]
	};
	dc.prototype.agM = function (F) {
		for (var P = 0; P < this.eS.length; P++) {
			var o = this.eS[P];
			for (var X = 0; X < o.V8.length; X++) {
				var Y = o.V8[X],
					y = o.Vz[Y.start].start,
					z = o.Vz[Y.end - 1].end;
				if (y < F && F < z) return [y, z - 1]
			}
		}
		return [0, 1]
	};
	dc.prototype.iT = function (F, P) {
		var o = -1,
			X = this.eS;
		if (this.iy == 2) {
			var Y = 1e9,
				y = 0,
				z = X[0],
				s = z.V8[0];
			for (var t = s.start; t < s.end; t++) {
				var d = z.Vz[t];
				for (var U = d.GZ; U <= d.sf; U++) {
					var v = z.K5[U],
						A = v.T.Z,
						Z = F.x - v.tZ.x,
						D = F.y - v.tZ.y,
						q = Z * Z + D * D;
					if (q < Y) {
						Y = q;
						y = v.Fc
					}
				}
			}
			if (y != 0 && this.ac_.codePointAt(y - 1) > 65535) y--;
			return y
		}
		for (var R = 0; R < X.length; R++) {
			var z = X[R];
			for (var J = 0; J < z.V8.length; J++) {
				o++;
				var s = z.V8[J],
					W = z.V8[J + 1];
				if (W == null && R < X.length - 1) W = X[R + 1].V8[0];
				if (P != null) {
					if (o != P) continue
				} else {
					if (W != null && z.tZ.y + s.tZ.y < F.y) continue
				}
				for (var t = s.start; t < s.end; t++) {
					var d = z.Vz[t];
					for (var U = d.GZ; U <= d.sf; U++) {
						var v = z.K5[U],
							A = v.T.Z,
							p = z.tZ.x + s.tZ.x + d.tZ.x,
							n = p + v.tZ.x,
							b = p + (U < d.sf ? z.K5[U + 1].tZ.x : v.tZ.x + A);
						if (F.x <= b || t + 1 == s.end && U == d.sf) {
							var Q = z.a5Q + v.Fc,
								_ = this.dS[Q],
								L = _.kU & 1;
							if (_.hp != "\n" && (L == 0 && F.x > n + A / 2 || L == 1 && F.x < n + A / 2)) Q += this.ac_.codePointAt(Q) > 65535 ? 2 : 1;
							return Q
						}
					}
				}
			}
		}
	};
	dc.prototype.Fj = function (F) {
		var P = {
				T: new ev,
				Kc: 0
			},
			o = 0;
		for (var X = 0; X < this.eS.length; X++) {
			var Y = this.eS[X];
			for (var y = 0; y < Y.V8.length; y++) {
				var z = Y.V8[y];
				P.Kc = o;
				o++;
				for (var s = z.start; s < z.end; s++) {
					var t = Y.Vz[s];
					for (var d = t.start; d < t.end; d++) {
						if (d == F) {
							var U = this.dS[d],
								v = U.FP,
								A = Y.K5[v].Fc,
								Z = 1;
							while (Y.K5[v] != null && Y.K5[v].Fc == A) {
								var D = Y.K5[v],
									q = Y.tZ.x + z.tZ.x + t.tZ.x + D.tZ.x,
									R = Y.tZ.y + z.tZ.y + t.tZ.y + D.tZ.y;
								P.T = P.T.s7(new ev(q, R - U.lineHeight, D.T.Z, U.lineHeight));
								P.D8 = D.D8;
								v += Z
							}
							return P
						}
					}
				}
			}
		}
	};
	dc.prototype.yD = function () {
		var F = Infinity,
			P = Infinity,
			o = -Infinity,
			X = -Infinity;
		for (var w = 0; w < this.eS.length; w++) {
			var Y = this.eS[w];
			for (var y = 0; y < Y.V8.length; y++) {
				var z = Y.V8[y];
				if (!z.fH) break;
				for (var s = z.start; s < z.end; s++) {
					var t = Y.Vz[s];
					for (var d = t.GZ; d <= t.sf; d++) {
						var U = Y.K5[d],
							v = U.T,
							A = Y.tZ.x + z.tZ.x + t.tZ.x + U.tZ.x,
							Z = Y.tZ.y + z.tZ.y + t.tZ.y + U.tZ.y;
						F = Math.min(F, A + v.x);
						P = Math.min(P, Z + v.y);
						o = Math.max(o, A + v.x + v.Z);
						X = Math.max(X, Z + v.y + v.h)
					}
				}
			}
		}
		return new ev(F, P, o - F, X - P)
	};
	dc.g0 = function (F) {
		return 19968 <= F && F <= 40959 || 12288 <= F && F <= 12543
	};
	dc.alR = function (F, P, o, X, Y, y, z) {
		var s = [y],
			t = 0;
		for (var w = y; w < z; w++) {
			if (o[w] == null) console.log(w, y, z, o);
			var d = o[w].hp,
				U = d.charCodeAt(0);
			if (U == 32 || U == 9) {
				s.push(t, w, 1, w + 1);
				t = 0
			} else if (U == 3851) {
				s.push(t + 1, w + 1);
				t = 0
			} else if (dc.g0(U)) {
				s.push(t, w);
				t = 1
			} else if (w != y && o[w].kU != o[w - 1].kU) {
				s.push(t, w);
				t = 1
			} else t++
		}
		s.push(t);
		var v = [];
		for (var w = 0; w < s.length; w += 2) {
			var A = s[w],
				Z = s[w + 1];
			if (Z == 0) continue;
			v.push(new dc.a42(F, P, o, X, Y, A, Z))
		}
		return v
	};
	dc.a5F = function (F, P, o, X, Y, y, z) {
		var s = [0, P ? P.Z : 1e9],
			t = [];
		if (X) {
			var d = F[y].hq,
				U = Y + (Y == 0 ? d : F[y].lineHeight),
				v = U - d * .9,
				A = H.D.pD(X[0], v),
				Z = A.length,
				D = H.D.pD(X[0], U),
				q = D.length;
			if (Z != 0 && q != 0) {
				var R = 0,
					J = 0;
				s = [];
				while (R < Z && J < q) {
					var W = Math.max(A[R], D[J]),
						p = A[R + 1],
						n = D[J + 1],
						b = Math.min(p, n);
					if (W < b) s.push(W, b);
					if (p < n) R += 2;
					else J += 2
				}
			}
		}
		for (var Q = 0; Q < s.length; Q += 2) {
			var _ = s[Q + 1] - s[Q],
				L = 0,
				m = y,
				I = P ? _ - o.StartIndent - o.EndIndent - (y == 0 ? o.FirstLineIndent : 0) : Infinity;
			while (y != F.length) {
				var c = F[y],
					u = L == 0 || (c.L5 || c.nz) || L + c.T.Z < I;
				if (!u) break;
				L += c.T.Z;
				y++
			}
			t.push(y - m)
		}
		z[0] = t;
		z[1] = s;
		z[2] = y
	};
	dc.a2j = function (F, P) {
		var o = F.length,
			X = new Uint32Array(o),
			Y = new Uint8Array(o),
			y = 0;
		for (var w = 0; w < o; w++) {
			Y[w] = 0;
			var z = F.charCodeAt(w);
			X[w] = z;
			if (z > y) y = z
		}
		if (y > 1424) Y = dc.a83(X, P);
		return Y
	};
	dc.md = function (F, P, o, X, Y, y, z) {
		this.Vz = [];
		this.V8 = [];
		this.tZ = new aH(0, 0);
		this.K5 = null;
		this.Vz = null;
		this.Sx = bt.a2c(F, X);
		var s = this.Sx,
			v = 0,
			D = "",
			p = 0,
			n = 1,
			x = 0;
		if (X != 0) {
			var t = s.SpaceBefore;
			if (t != null) y[0] += t
		}
		var d = F.EngineDict.ParagraphRun.RunLengthArray,
			U = d[X];
		for (var w = 0; w < X; w++) v += d[w];
		var A = s._Direction ? s._Direction : 0;
		this.a5Q = v;
		var Z = bt.jn(F).slice(v, v + U);
		for (var q = 0; q < Z.length; q++) {
			var R = Z.charAt(q);
			D += o[v + q].Sx.FontCaps == 0 ? R : R.toUpperCase()
		}
		Z = D;
		var J = dc.a2j(Z, A),
			W = [],
			b = J[w] & 1,
			Q = o[v].kb;
		o[v].kU = J[0];
		for (var w = 1; w < Z.length; w++) {
			var R = o[v + w],
				_ = J[w];
			R.kU = _;
			if (_ != b || R.kb != Q) {
				W.push(p, n);
				p = w;
				n = 1;
				b = _;
				Q = R.kb
			} else n++
		}
		W.push(p, n);
		var L = this.K5 = [];
		for (var w = 0; w < W.length; w += 2) {
			var m = W[w],
				I = W[w + 1],
				c = (o[v + m].kU & 1) == 0,
				u = Z.slice(m, m + I),
				a = Typr.U.shapeHB(o[v + m].kb, u, c),
				N = [],
				O = 0;
			for (var q = 0; q < a.length; q++) {
				var V = a[q];
				N.push({
					S: V.g,
					Fc: V.cl,
					Bx: V.ax,
					yG: V.ay,
					XW: V.dx,
					tD: V.dy
				})
			}
			a = N;
			var M = a.slice(0);
			if (!c) M.reverse();
			for (var q = 0; q < u.length; q++) {
				while (O + 1 < M.length && M[O + 1].Fc <= q) {
					O++
				}
				while (O > 0 && M[O - 1].Fc == q) O--;
				o[v + m + q].FP = L.length + (c ? O : M.length - O - 1)
			}
			for (var q = 0; q < a.length; q++) {
				L.push(a[q]);
				a[q].Fc += m;
				var R = o[v + a[q].Fc];
				if (R.hp == "\n") a[q].Bx = 0;
				if (R.hp == "\t") a[q].Bx = R.kb.head.unitsPerEm * 2
			}
		}
		var K = bt.Wk(s),
			j = this.Vz = dc.alR(F, P, o, v, L, v, v + U),
			$ = this.V8,
			g = -1,
			D = [null, null, 0];
		while (x < j.length) {
			dc.a5F(j, Y, s, z, y[0], x, D);
			g++;
			var T = {
					start: x,
					end: 0,
					T: new ev,
					tZ: new aH(0, 0),
					fH: !0
				},
				d1 = 0,
				f_ = 0;
			$.push(T);
			T.end = D[2];
			var E = T.end == j.length;

			function a9(M, m, dz) {
				var i4 = dz - m >>> 1;
				for (var w = 0; w < i4; w++) {
					var fy = M[m + w];
					M[m + w] = M[dz - 1 - w];
					M[dz - 1 - w] = fy
				}
			}
			for (var ez = 1; ez < 5; ez++) {
				var bN = -1;
				for (var w = T.start; w < T.end; w++) {
					var _ = o[j[w].start].kU;
					if (bN == -1 && _ >= ez) bN = w;
					else if (bN != -1 && _ < ez) {
						a9(j, bN, w);
						bN = -1
					}
				}
				var cg = T.end;
				if (A == 0 && j[cg - 1].L5) cg--;
				if (bN != -1) a9(j, bN, cg)
			}
			var d8 = D[0],
				C = D[1],
				bN = x,
				S = x;
			for (var g_ = 0; g_ < d8.length; g_++) {
				var fw = C[g_ * 2 + 1] - C[g_ * 2],
					dT = 0;
				bN = S;
				S += d8[g_];
				var g4 = this.ag2(bN, S, j, A, Y != null);
				if (Y) {
					if (K == 1 || E && K == 4) dT = g4[1] + (fw - g4[0]);
					if (K == 2 || E && K == 5) dT = g4[1] + (fw - g4[0]) / 2;
					if (g == 0) dT += s.FirstLineIndent;
					dT += s.StartIndent
				} else {
					if (K == 0) dT = s.StartIndent + s.FirstLineIndent;
					if (K == 1) dT = -g4[0] - s.EndIndent;
					if (K == 2) dT = -g4[0] / 2
				}
				dT += C[g_ * 2];
				if (Y && K > 2 && (K == 6 || !E)) this.abh(bN, S, j, fw, A, dT);
				else {
					var bB = dT;
					for (var w = bN; w < S; w++) {
						j[w].tZ.x = bB;
						bB += j[w].T.Z
					}
				}
			}
			x = T.end;
			for (var w = T.start; w < T.end; w++) {
				var g$ = j[w].T.clone();
				g$.aw(j[w].tZ);
				T.T = T.T.s7(g$);
				d1 = Math.max(d1, j[w].hq);
				f_ = Math.max(f_, j[w].lineHeight)
			}
			T.tZ.y = g == 0 ? 0 : $[g - 1].tZ.y + f_;
			if (g == 0) {
				if (X == 0 && Y) y[0] += d1;
				if (X != 0) y[0] += f_;
				this.tZ.y = y[0]
			} else y[0] += f_;
			if (Y) T.fH = this.tZ.y + T.tZ.y < Y.y + Y.h
		}
		var eT = s.SpaceAfter;
		if (eT != null) y[0] += eT
	};
	dc.md.prototype.ag2 = function (F, P, o, X, Y) {
		var y = 0,
			z = 0;
		for (var w = F; w < P; w++) y += o[w].T.Z;
		if (Y) {
			if (X == 0)
				for (var w = P - 1; w >= F; w--)
					if (o[w].L5 || o[w].nz) y -= o[w].T.Z;
					else break;
			if (X == 1)
				for (var w = F; w < P; w++)
					if (o[w].L5 || o[w].nz) {
						var s = o[w].T.Z;
						y -= s;
						z -= s
					} else break
		}
		return [y, z]
	};
	dc.md.prototype.abh = function (F, P, o, X, Y, y) {
		var z = 0,
			s = 0,
			t = 0,
			d = 0;
		for (var w = F; w < P; w++)
			if (o[w].L5) t++;
			else {
				z += o[w].T.Z;
				s++
			} if (Y == 0)
			for (var w = P - 1; w >= F; w--)
				if (o[w].L5 || o[w].nz) {
					if (o[w].L5) {
						t--
					}
				} else break;
		if (Y == 1)
			for (var w = F; w < P; w++)
				if (o[w].L5 || o[w].nz) {
					if (o[w].L5) {
						t--;
						d++
					}
				} else break;
		if (s <= 1 || t == 0) {
			if (s == 1) o[F].tZ.x = y;
			return
		}
		var U = (X - z) / t,
			v = -d * U;
		for (var w = F; w < P; w++) {
			if (o[w].L5) this.K5[o[w].GZ].T.Z = o[w].T.Z = U;
			o[w].tZ.x = y + v;
			v += o[w].T.Z
		}
	};
	dc.a42 = function (F, P, o, X, Y, y, z) {
		this.dC = "";
		for (var w = 0; w < z; w++) this.dC += o[y + w].hp;
		this.L5 = z == 1 && (o[y].hp == " " || o[y].hp == "\t");
		this.nz = z == 1 && o[y].hp == "\n";
		this.start = y;
		this.end = y + z;
		this.T = new ev;
		this.tZ = new aH(0, 0);
		this.hq = 0;
		this.lineHeight = 0;
		var s = 0,
			t = 0;
		if (z == 0) {
			this.lineHeight = o[y].lineHeight;
			this.hq = o[y].hq;
			this.T = new ev(0, -o[y].lineHeight, 0, o[y].lineHeight)
		}
		var d = o[y].FP,
			U = o[y + z - 1].FP;
		if (U < d) {
			var v = d;
			d = U;
			U = v
		}
		while (U + 1 < Y.length && Y[U].Fc == Y[U + 1].Fc) {
			U++
		}
		this.GZ = d;
		this.sf = U;
		for (var A = d; A <= U; A++) {
			var Z = Y[A],
				D = o[X + Z.Fc],
				q = 1 / D.kb.head.unitsPerEm * D.Sx.FontSize,
				p = 0;
			if (!D.Sx.AutoKerning) s += D.Sx.Kerning * 2 * q * D.scale.x;
			var R = Z.Bx * q * D.scale.x;
			Z.tZ = new aH(s, 0);
			Z.D8 = 0;
			Z.T = new ev(0, -D.lineHeight, R, D.lineHeight);
			var J = Typr.U.glyphToPath(D.kb, Z.S);
			Z.path = {
				W: J.cmds,
				d: J.crds
			};
			var W = Z.T.clone();
			W.aw(Z.tZ);
			if (D.Sx.Tracking != null) p = D.Sx.Tracking * .001 * D.Sx.FontSize;
			if (D.Sx.FauxBold == !0) p += .027 * D.Sx.FontSize;
			s += R + p;
			if (z == 1 && (D.hp == " " || D.hp == "\t")) W.Z += 2 * p;
			else if (z == 1 && D.hp != null && dc.g0(D.hp.charCodeAt(0))) W.Z += p;
			this.T = this.T.s7(W);
			this.hq = Math.max(this.hq, D.hq);
			this.lineHeight = Math.max(this.lineHeight, D.lineHeight)
		}
	};
	dc.f0 = 0;
	dc.NX = function () {
		if (dc.f0 == 2) return !0;
		if (dc.f0 == 1) return !1;
		dc.f0 = 1;

		function F() {
			fetch("code/external/fribidi.wasm").then(function (P) {
				return P.arrayBuffer()
			}).then(function (P) {
				return WebAssembly.instantiate(P)
			}).then(function (P) {
				var o = P.instance.exports,
					X = o.memory,
					z = 16,
					s = 256,
					t = 1;
				X.grow(400);
				var Y = new Uint8Array(X.buffer),
					y = new Uint32Array(X.buffer),
					d = z | s,
					U = z | s | t;
				dc.a83 = function (A, Z) {
					var D = A.length,
						q = o.calloc(D * 4 + 4 + D * 4 + D * 4 + D, 1),
						R = q + D * 4,
						J = R + 4,
						W = J + D * 4,
						p = W + D * 4;
					y.set(A, q >>> 2);
					y[R >>> 2] = Z == 0 ? d : U;
					o.fribidi_get_bidi_types(q, D, J);
					o.fribidi_get_bracket_types(q, D, J, W);
					o.fribidi_get_par_embedding_levels_ex(J, W, D, R, p);
					var n = Y.slice(p, p + D);
					o.free(q);
					return n
				};
				dc.f0 = 2;
				var v = new l(i.E.L, !0);
				v.data = {
					e: i.B.Sl,
					RY: "add",
					S9: ge.Du,
					EM: null
				};
				bh.ZM.w(v)
			})
		}
		Typr.U.initHB("code/external/hb.wasm", F);
		return !1
	};

	function bt() {}
	bt.az = function (F) {
		return JSON.parse(JSON.stringify(F))
	};
	bt.aZ = function (F, P) {
		for (var o in P) F[o] = P[o]
	};
	bt.T_ = function (F, P, o) {
		var X = bt.a2J();
		if (o) bt.Ji(X, 0, 0, o);
		var Y = {
			O: new cu(1, 0, 0, 1, Math.round(F), Math.round(P)),
			MF: X
		};
		Y.Hb = bt.vk();
		Y.VU = H.mD.R();
		Y.xa = new ev;
		return Y
	};
	bt.Tb = function (F) {
		var P = ["CharacterDirection", 0];
		for (var w = 0; w < P.length; w += 2) {
			if (F[P[w]] != null && F[P[w]] != P[w + 1]) {
				throw "e";
				console.log(P[w], F[P[w]])
			}
		}
		if (F instanceof Array)
			for (var w = 0; w < F.length; w++) bt.Tb(F[w]);
		else if (F instanceof Object)
			for (var o in F) bt.Tb(F[o])
	};
	bt.Wk = function (F, P) {
		if (P == null) P = F.Justification;
		var o = F._Direction ? F._Direction : 0;
		if (o == 1) {
			if (P == 0 || P == 3) P++;
			else if (P == 1 || P == 4) P--
		}
		return P
	};
	bt.jj = function (F) {
		if (F.add == null) return;
		var P = F.MF,
			o = P.Curve,
			X = F.add.vmsk,
			Y = X.b,
			y = H.D.xJ(Y, !0).d,
			z = F.O.clone();
		z.nJ();
		H.D.O(y, z, y);
		var s = y.slice(0, 8);
		for (var t = 8; t < y.length; t += 6) s.push(y[t - 2], y[t - 1], y[t], y[t + 1], y[t + 2], y[t + 3], y[t + 4], y[t + 5]);
		o.Points = s;
		o.TextOnPathTRange = X.A2.slice(0);
		o.Reversed = X.mt;
		if (bt.AW(P) == 1) {
			var o = dc.Pr(P.Curve),
				d = H.D.nP(o[0]);
			bt.Z1(P, [0, 0, d.Z, d.h].map(Math.round));
			for (var w = 0; w < s.length; w += 2) {
				s[w] -= d.x;
				s[w + 1] -= d.y
			}
			var U = new cu(1, 0, 0, 1, d.x, d.y);
			U.concat(F.O);
			F.O = U
		}
	};
	bt.SK = function (F) {
		if (F.add == null) return;
		var P = F.add.vmsk,
			o = F.MF.Curve,
			X = o.Points,
			Y = {
				W: ["M"],
				d: [X[0], X[1]]
			};
		for (var w = 0; w < X.length; w += 8) {
			Y.W.push("C");
			Y.d.push(X[w + 2], X[w + 3], X[w + 4], X[w + 5], X[w + 6], X[w + 7])
		}
		H.D.O(Y.d, F.O, Y.d);
		var y = H.D.sb(Y, !0);
		P.b = y;
		P.mt = o.Reversed;
		P.A2 = o.TextOnPathTRange.slice(0);
		F.add.vogk = h.h7(y)
	};
	bt.T6 = function (F) {
		var P = {
			U: 0,
			S: 0,
			i: 0
		};
		if (F.FillColor) {
			var o = F.FillColor,
				X = o.Values;
			if (o.Type == 1) P = {
				U: X[1] * 255,
				S: X[2] * 255,
				i: X[3] * 255
			};
			else if (o.Type == 2) {
				var Y = {
					classID: "CMYC",
					Cyn: {
						t: "doub",
						v: X[1] * 100
					},
					Mgnt: {
						t: "doub",
						v: X[2] * 100
					},
					Ylw: {
						t: "doub",
						v: X[3] * 100
					},
					Blck: {
						t: "doub",
						v: X[4] * 100
					}
				};
				P = H.j.T6(Y)
			} else console.log("Unknown color type")
		}
		return P
	};
	bt.a0Q = function (F) {
		for (var w = 0; w < F.length; w++) {
			var P = F[w].StyleSheet.StyleSheetData,
				o = P.FillColor;
			if (o && o.Type == 2) {
				var X = bt.T6(P);
				o.Type = 1;
				o.Values = [1, X.U / 255, X.S / 255, X.i / 255]
			}
		}
	};
	bt.o7 = function (F, P) {
		var o;
		if (bt.AW(F.MF) == 1) {
			var X = bt.dd(F.MF);
			o = new ev(0, 0, X[2] - X[0], X[3] - X[1])
		} else o = P.yD();
		return o
	};
	bt.$T = function (F) {
		var P = F[0];
		for (var w = 0; w < F.length; w++) P = bt.a4E(P, F[w]);
		return P
	};
	bt.a4E = function (F, P) {
		var o = {};
		for (var X in F)
			if (JSON.stringify(F[X]) == JSON.stringify(P[X])) o[X] = F[X];
		return o
	};
	bt.oi = function (F, P) {
		var o = F.Dm,
			X = -1;
		for (var w = 0; w < o.length; w++)
			if (o[w].Name == P) X = w;
		if (X == -1) {
			X = o.length;
			o.push({
				FontType: 1,
				Name: P,
				Script: 0,
				Synthetic: 0
			})
		}
		F.dS.Font = X
	};
	bt.jn = function (F) {
		return F.EngineDict.Editor.Text.replace(/\r/g, "\n").replace(/\u0003/g, "\n")
	};
	bt.jD = function (F, P) {
		F.EngineDict.Editor.Text = P.replace(/\n/g, "\r")
	};
	bt.AW = function (F) {
		return F.Curve && F.Curve.TextOnPathTRange[0] >= 0 ? 2 : F.EngineDict.Rendered.Shapes.Children[0].ShapeType
	};
	bt.E5 = function (F, P) {
		var o = F.EngineDict.Rendered.Shapes.Children[0];
		o.ShapeType = P;
		var X = o.Cookie.Photoshop;
		X.ShapeType = P;
		X.Base.ShapeType = P;
		if (P == 0) {
			delete X.BoxBounds;
			X.PointBase = [0, 0]
		}
		if (P == 1) {
			delete X.PointBase;
			X.BoxBounds = [0, 0, 1, 1]
		}
	};
	bt.dd = function (F) {
		return F.EngineDict.Rendered.Shapes.Children[0].Cookie.Photoshop.BoxBounds
	};
	bt.Z1 = function (F, P) {
		F.EngineDict.Rendered.Shapes.Children[0].Cookie.Photoshop.BoxBounds = P
	};
	bt.a7v = function (F, P) {
		return bt.a0H(F, bt.LQ(F, P))
	};
	bt.LQ = function (F, P) {
		var o = F.EngineDict.StyleRun.RunLengthArray;
		return bt.x0(o, P).lT
	};
	bt.a0H = function (F, P) {
		var o = F.ResourceDict.StyleSheetSet[0].StyleSheetData,
			X = {};
		for (var Y in o) X[Y] = o[Y];
		var y = F.EngineDict.StyleRun.RunArray[P].StyleSheet.StyleSheetData;
		bt.aZ(X, y);
		return X
	};
	bt.a2c = function (F, P) {
		var o = F.ResourceDict.ParagraphSheetSet[0].Properties,
			X = {};
		for (var Y in o) X[Y] = o[Y];
		var y = F.EngineDict.ParagraphRun.RunArray[P].ParagraphSheet.Properties;
		bt.aZ(X, y);
		var z = ["StartIndent", "EndIndent", "FirstLineIndent"];
		for (var w = 0; w < 3; w++)
			if (X[z[w]] == null) X[z[w]] = 0;
		return X
	};
	bt.v$ = function (F, P, o) {
		if (o == "") return;
		var X = bt.jn(F);
		bt.jD(F, X.substring(0, P) + o + X.substring(P, X.length));
		var Y = F.EngineDict.StyleRun,
			y = Y.RunLengthArray,
			z = bt.x0(y, P - 1);
		y[z.lT] += o.length;
		var s = F.EngineDict.ParagraphRun,
			y = s.RunLengthArray,
			t = bt.x0(y, P),
			d = o.split("\n");
		if (d.length == 1) {
			y[t.lT] += o.length;
			return
		}
		y.splice(t.lT + 1, 0, y[t.lT] - (P - t.YJ));
		s.RunArray.splice(t.lT + 1, 0, bt.az(s.RunArray[t.lT]));
		y[t.lT] -= y[t.lT + 1];
		y[t.lT] += d[0].length + 1;
		for (var w = 1; w < d.length - 1; w++) {
			s.RunArray.splice(t.lT + w, 0, bt.az(s.RunArray[t.lT + w - 1]));
			s.RunLengthArray.splice(t.lT + w, 0, d[w].length + 1)
		}
		y[t.lT + d.length - 1] += d[d.length - 1].length
	};
	bt.Iw = function (F, P, o) {
		var X = bt.jn(F);
		bt.jD(F, X.substring(0, P) + X.substring(o, X.length));
		bt.lV(F.EngineDict.ParagraphRun, P, o, !0);
		bt.lV(F.EngineDict.StyleRun, P, o, !1)
	};
	bt.lV = function (F, P, o, X) {
		var Y = F.RunLengthArray,
			y = bt.x0(Y, P),
			z = bt.x0(Y, o),
			s = [];
		for (var w = 0; w < Y.length; w++)
			for (var t = 0; t < Y[w]; t++) s.push(w);
		s.splice(P, o - P);
		var d = [];
		for (var w = 0; w < Y.length; w++) d.push(0);
		for (var w = 0; w < s.length; w++) d[s[w]]++;
		for (var w = 0; w < Y.length; w++) {
			if (d[w] == 0) {
				d.splice(w, 1);
				Y.splice(w, 1);
				F.RunArray.splice(w, 1);
				w--
			} else if (d[w] < Y[w]) Y[w] = d[w]
		}
		if (X && y.lT != z.lT && y.YJ != P) {
			Y[y.lT] += Y[y.lT + 1];
			Y.splice(y.lT + 1, 1);
			F.RunArray.splice(y.lT + 1, 1)
		}
	};
	bt.Ji = function (F, P, o, X) {
		var Y = F.EngineDict.Editor.Text.length;
		if (o == Y - 2) o++;
		if (X.dS.Font != null) F.ResourceDict.FontSet = X.Dm.slice(0);
		if (P <= o) bt.Hg(F.EngineDict.StyleRun, X.dS, P, o, !0);
		bt.Hg(F.EngineDict.ParagraphRun, X.eS, P, o, !1)
	};
	bt.Hg = function (F, P, o, X, Y) {
		var y = F.RunLengthArray;
		if (Y) {
			var z = bt.x0(y, o);
			if (z.YJ != o) {
				var s = y[z.lT];
				y.splice(z.lT, 0, o - z.YJ);
				y[z.lT + 1] = s - y[z.lT];
				F.RunArray.splice(z.lT + 1, 0, bt.az(F.RunArray[z.lT]))
			}
			var t = bt.x0(y, X);
			if (t.YJ + y[t.lT] - 1 != X) {
				var s = y[t.lT];
				y.splice(t.lT, 0, X - t.YJ + 1);
				y[t.lT + 1] = s - y[t.lT];
				F.RunArray.splice(t.lT + 1, 0, bt.az(F.RunArray[t.lT]))
			}
		}
		var z = bt.x0(y, o),
			t = bt.x0(y, X);
		if (Y)
			for (var w = z.lT; w <= t.lT; w++) bt.aZ(F.RunArray[w].StyleSheet.StyleSheetData, P);
		else
			for (var w = z.lT; w <= t.lT; w++) bt.aZ(F.RunArray[w].ParagraphSheet.Properties, P)
	};
	bt.af$ = function (F, P, o) {
		var X = F.EngineDict.StyleRun.RunLengthArray,
			Y = [],
			y = 0;
		for (var w = 0; w < X.length; w++) {
			var z = X[w];
			for (var s = 0; s < z; s++)
				if (P <= y + s && y + s < o) Y.push(w);
			y += z
		}
		var t = Y[0],
			d = [];
		for (var w = 0; w < Y.length; w++) {
			var U = Y[w] - t;
			if (U == d.length) d.push(0);
			d[U]++
		}
		return d
	};
	bt.ach = function (F) {
		var P = F.EngineDict.StyleRun,
			o = P.RunArray,
			X = P.RunLengthArray;
		for (var w = 0; w < X.length - 1; w++) {
			var Y = o[w].StyleSheet.StyleSheetData,
				y = o[w + 1].StyleSheet.StyleSheetData;
			if (JSON.stringify(Y) == JSON.stringify(y)) {
				o.splice(w + 1, 1);
				X[w] += X[w + 1];
				X.splice(w + 1, 1);
				w--
			}
		}
	};
	bt.oQ = function (F) {
		var P = F.Hb.AntA.v.Annt;
		P = ["Anno", "antiAliasSharp", "AnCr", "AnSt", "AnSm"].indexOf(P);
		if (P == -1) P = 1;
		return P
	};
	bt.LE = function (F, P) {
		F.Hb.AntA.v.Annt = ["Anno", "antiAliasSharp", "AnCr", "AnSt", "AnSm"][P]
	};
	bt.lW = function (F, P, o) {
		var X = {
				Dm: F.ResourceDict.FontSet.slice(0),
				dS: [],
				eS: []
			},
			Y = F.EngineDict.StyleRun.RunLengthArray,
			y = bt.x0(Y, P).lT,
			z = bt.x0(Y, o).lT;
		for (var w = y; w <= z; w++) {
			var s = bt.az(F.ResourceDict.StyleSheetSet[0].StyleSheetData),
				t = F.EngineDict.StyleRun.RunArray;
			if (t.length == 0) continue;
			var d = t[w].StyleSheet.StyleSheetData;
			bt.aZ(s, d);
			X.dS.push(s)
		}
		var U = F.EngineDict.ParagraphRun.RunLengthArray,
			v = bt.x0(U, P).lT,
			A = bt.x0(U, o).lT;
		for (var w = v; w <= A; w++) {
			var Z = F.EngineDict.ParagraphRun.RunArray;
			if (Z.length == 0) continue;
			X.eS.push(bt.az(Z[w].ParagraphSheet.Properties))
		}
		X.dS = X.dS.length == 0 ? {} : bt.$T(X.dS);
		X.eS = X.eS.length == 0 ? {} : bt.$T(X.eS);
		return X
	};
	bt.eQ = function (F, P) {
		var o, X;
		o = ["FontSize", "Leading", "BaselineShift"];
		X = F.dS;
		for (var w = 0; w < o.length; w++)
			if (X[o[w]] != null) X[o[w]] *= P;
		o = ["StartIndent", "EndIndent", "FirstLineIndent", "SpaceBefore", "SpaceAfter"];
		X = F.eS;
		for (var w = 0; w < o.length; w++)
			if (X[o[w]] != null) X[o[w]] *= P
	};
	bt.afb = function () {
		return bt.lW(bt.WP, 0, 0)
	};
	bt.vk = function () {
		return {
			classID: "TxLr",
			Txt: {
				t: "TEXT",
				v: "\0"
			},
			textGridding: {
				t: "enum",
				v: {
					textGridding: "None"
				}
			},
			Ornt: {
				t: "enum",
				v: {
					Ornt: "Hrzn"
				}
			},
			AntA: {
				t: "enum",
				v: {
					Annt: "antiAliasSharp"
				}
			},
			TextIndex: {
				t: "long",
				v: 0
			}
		}
	};
	bt.x0 = function (F, P) {
		var o = 0,
			w = 0;
		while (o + F[w] <= P) {
			o += F[w];
			w++
		}
		return {
			lT: w,
			YJ: o
		}
	};
	bt.a2J = function () {
		var F = bt.az(this.WP);
		return F
	};
	bt.GS = {
		Justification: 0,
		FirstLineIndent: 0,
		StartIndent: 0,
		EndIndent: 0,
		SpaceBefore: 0,
		SpaceAfter: 0,
		AutoHyphenate: !1,
		HyphenatedWordSize: 6,
		PreHyphen: 2,
		PostHyphen: 2,
		ConsecutiveHyphens: 8,
		Zone: 36,
		WordSpacing: [.8, 1, 1.33],
		LetterSpacing: [0, 0, 0],
		GlyphSpacing: [1, 1, 1],
		AutoLeading: 1.2,
		LeadingType: 0,
		Hanging: !1,
		Burasagari: !1,
		KinsokuOrder: 0,
		EveryLineComposer: !1,
		_Direction: 0
	};
	bt.a5q = {
		Font: 0,
		FontSize: 12,
		FauxBold: !1,
		FauxItalic: !1,
		AutoLeading: !0,
		Leading: 0,
		HorizontalScale: 1,
		VerticalScale: 1,
		Tracking: 0,
		AutoKerning: !0,
		Kerning: 0,
		BaselineShift: 0,
		FontCaps: 0,
		FontBaseline: 0,
		Underline: !1,
		Strikethrough: !1,
		Ligatures: !0,
		DLigatures: !1,
		BaselineDirection: 2,
		Tsume: 0,
		StyleRunAlignment: 2,
		Language: 0,
		NoBreak: !1,
		FillColor: {
			Type: 1,
			Values: [1, 0, 0, 0]
		},
		StrokeColor: {
			Type: 1,
			Values: [1, 0, 0, 0]
		},
		FillFlag: !0,
		StrokeFlag: !1,
		FillFirst: !0,
		YUnderline: 1,
		OutlineWidth: 1,
		CharacterDirection: 0,
		HindiNumbers: !1,
		Kashida: 1,
		DiacriticPos: 2
	};
	bt.WP = {
		EngineDict: {
			Editor: {
				Text: "\n"
			},
			ParagraphRun: {
				DefaultRunData: {
					ParagraphSheet: {
						DefaultStyleSheet: 0,
						Properties: {}
					},
					Adjustments: {
						Axis: [1, 0, 1],
						XY: [0, 0]
					}
				},
				RunArray: [{
					ParagraphSheet: {
						DefaultStyleSheet: 0,
						Properties: JSON.parse(JSON.stringify(bt.GS))
					},
					Adjustments: {
						Axis: [1, 0, 1],
						XY: [0, 0]
					}
				}],
				RunLengthArray: [1],
				IsJoinable: 1
			},
			StyleRun: {
				DefaultRunData: {
					StyleSheet: {
						StyleSheetData: {}
					}
				},
				RunArray: [{
					StyleSheet: {
						StyleSheetData: {
							Font: 0,
							FontSize: 24,
							AutoKerning: !0,
							Kerning: 0
						}
					}
				}],
				RunLengthArray: [1],
				IsJoinable: 2
			},
			GridInfo: {
				GridIsOn: !1,
				ShowGrid: !1,
				GridSize: 18,
				GridLeading: 22,
				GridColor: {
					Type: 1,
					Values: [0, 0, 0, 1]
				},
				GridLeadingFillColor: {
					Type: 1,
					Values: [0, 0, 0, 1]
				},
				AlignLineHeightToGridFlags: !1
			},
			AntiAlias: 4,
			UseFractionalGlyphWidths: !0,
			Rendered: {
				Version: 1,
				Shapes: {
					WritingDirection: 0,
					Children: [{
						ShapeType: 0,
						Procession: 0,
						Lines: {
							WritingDirection: 0,
							Children: []
						},
						Cookie: {
							Photoshop: {
								ShapeType: 0,
								PointBase: [0, 0],
								Base: {
									ShapeType: 0,
									TransformPoint0: [1, 0],
									TransformPoint1: [0, 1],
									TransformPoint2: [0, 0]
								}
							}
						}
					}]
				}
			}
		},
		ResourceDict: {
			KinsokuSet: [{
				Name: "PhotoshopKinsokuHard",
				NoStart: "\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u30FC\u2015\u2019\u201D\uFF09\u3015\uFF3D\uFF5D\u3009\u300B\u300D\u300F\u3011\u30FD\u30FE\u309D\u309E\u3005\u3041\u3043\u3045\u3047\u3049\u3063\u3083\u3085\u3087\u308E\u30A1\u30A3\u30A5\u30A7\u30A9\u30C3\u30E3\u30E5\u30E7\u30EE\u30F5\u30F6\u309B\u309C?!)]},.:;\u2103\u2109\xA2\uFF05\u2030",
				NoEnd: "\u2018\u201C\uFF08\u3014\uFF3B\uFF5B\u3008\u300A\u300C\u300E\u3010([{\uFFE5\uFF04\xA3\uFF20\xA7\u3012\uFF03",
				Keep: "\u2015\u2025",
				Hanging: "\u3001\u3002.,"
			}, {
				Name: "PhotoshopKinsokuSoft",
				NoStart: "\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u2019\u201D\uFF09\u3015\uFF3D\uFF5D\u3009\u300B\u300D\u300F\u3011\u30FD\u30FE\u309D\u309E\u3005",
				NoEnd: "\u2018\u201C\uFF08\u3014\uFF3B\uFF5B\u3008\u300A\u300C\u300E\u3010",
				Keep: "\u2015\u2025",
				Hanging: "\u3001\u3002.,"
			}],
			MojiKumiSet: [{
				InternalName: "Photoshop6MojiKumiSet1"
			}, {
				InternalName: "Photoshop6MojiKumiSet2"
			}, {
				InternalName: "Photoshop6MojiKumiSet3"
			}, {
				InternalName: "Photoshop6MojiKumiSet4"
			}],
			TheNormalStyleSheet: 0,
			TheNormalParagraphSheet: 0,
			ParagraphSheetSet: [{
				Name: "Normal RGB",
				DefaultStyleSheet: 0,
				Properties: JSON.parse(JSON.stringify(bt.GS))
			}],
			StyleSheetSet: [{
				Name: "Normal RGB",
				StyleSheetData: JSON.parse(JSON.stringify(bt.a5q))
			}],
			FontSet: [{
				Name: "AlibabaPuHuiTi-Regular",
				Script: 0,
				FontType: 1,
				Synthetic: 0
			}, {
				Name: "AdobeInvisFont",
				Script: 0,
				FontType: 0,
				Synthetic: 0
			}, {
				Name: "MyriadHebrew-Regular",
				Script: 6,
				FontType: 0,
				Synthetic: 0
			}],
			SuperscriptSize: .583,
			SuperscriptPosition: .333,
			SubscriptSize: .583,
			SubscriptPosition: .333,
			SmallCapSize: .7
		}
	};
	var gy = {};
	gy.acU = function (F, P, o) {
		var X = {};
		X._98 = {
			_0: "i7"
		};
		X._0 = gy.a35(F, P, o ? o._0 : null);
		X._1 = gy.aac(F, P, X._0, o ? o._1 : null);
		return X
	};
	gy.a35 = function (F, P, o) {
		var X = {};
		X._1 = gy.ahd(F, o ? o._1 : null);
		X._2 = {
			_0: [{
				_0: {
					_0: "s"
				}
			}],
			_1: [{
				_0: "i0"
			}]
		};
		X._3 = JSON.parse(JSON.stringify(gy.a9S));
		X._4 = JSON.parse(JSON.stringify(gy.adT));
		X._5 = gy.ai$(F, X._1._0, o ? o._5 : null);
		X._6 = gy.a5j(F, o ? o._6 : null);
		X._8 = gy.ajW(F, P, o ? o._8 : null);
		X._9 = gy.a7x;
		return X
	};
	gy.ahd = function (F, P) {
		var o = [],
			X = [];
		for (var w = 0; w < F.length; w++) {
			var Y = F[w].ResourceDict.FontSet;
			for (var y = 0; y < Y.length; y++) {
				var z = Y[y];
				if (X.indexOf(z.Name) != -1) continue;
				o.push(z);
				X.push(z.Name)
			}
		}
		var s = {
			_0: []
		};
		for (var w = 0; w < o.length; w++) {
			var t = o[w],
				d = {
					_0: {
						_99: "/CoolTypeFont",
						_0: {
							_0: "s" + t.Name,
							_1: "i" + t.Script,
							_2: "i" + t.FontType
						}
					}
				};
			if (t.Script == 0) delete d._0._0._1;
			s._0.push(d)
		}
		return s
	};
	gy.ai$ = function (F, P, o) {
		var X = {
				_0: [],
				_1: []
			},
			Y = {
				_0: JSON.parse(JSON.stringify(gy.Jn))
			};
		gy._x(Y._0, F[0].ResourceDict.StyleSheetSet[0], P, F[0].ResourceDict.FontSet);
		X._0.push(Y);
		X._1.push({
			_0: "i0"
		});
		X._0.push({
			_0: {
				_0: "sNone",
				_5: "i0",
				_6: {}
			}
		});
		X._1.push({
			_0: "i1"
		});
		return X
	};
	gy.a5j = function (F, P) {
		var o = {
				_0: [],
				_1: []
			},
			X = {
				_0: JSON.parse(JSON.stringify(gy.LD))
			};
		gy.O3(X._0, F[0].ResourceDict.ParagraphSheetSet[0]);
		o._0.push(X);
		o._1.push({
			_0: "i0"
		});
		X = {
			_0: JSON.parse(JSON.stringify(gy.LD))
		};
		gy.O3(X._0, F[0].ResourceDict.ParagraphSheetSet[0]);
		X._0._0 = "sBasic Paragraph";
		X._0._6 = "i0";
		o._0.push(X);
		o._1.push({
			_0: "i1"
		});
		return o
	};
	gy.ajW = function (F, P, o) {
		var X = {
			_0: []
		};
		for (var w = 0; w < F.length; w++) {
			var Y = F[w].Curve,
				y = {};
			X._0.push({
				_0: y
			});
			var z = bt.AW(F[w]);
			y._2 = {};
			y._2._0 = "i" + z;
			if (z == 0) {
				y._2._6 = ["f-1", "f-1"];
				y._2._11 = {
					_4: "i-1",
					_7: !1
				}
			} else if (z == 1 && Y == null) {
				var s = bt.dd(F[w]),
					t = s[2],
					d = s[3];
				y._1 = {
					_0: gy.g7("f", [0, 0, 0, 0, t, 0, t, 0, t, 0, t, 0, t, d, t, d, t, d, t, d, 0, d, 0, d, 0, d, 0, d, 0, 0, 0, 0])
				};
				y._2._6 = ["f-2", "f-2"];
				y._2._11 = {
					_4: "i-2",
					_7: !1
				}
			} else if (z == 1) {
				var s = bt.dd(F[w]),
					t = s[2],
					d = s[3];
				y._1 = {
					_0: gy.g7("f", Y.Points)
				};
				y._2._6 = ["f-3", "f-3"];
				y._2._11 = {
					_4: "i-3",
					_7: !1
				}
			} else if (z == 2) {
				y._1 = {
					_0: gy.g7("f", Y.Points)
				};
				y._2._6 = gy.g7("f", Y.TextOnPathTRange);
				y._2._11 = {
					_0: Y.Reversed,
					_3: "i0",
					_5: "f0",
					_7: !1
				}
			}
		}
		return X
	};
	gy.aac = function (F, P, o, X) {
		var Y = {};
		Y._0 = JSON.parse(JSON.stringify(gy.a5a));
		Y._1 = gy.adZ(F, P, o, X ? X._1 : null);
		Y._2 = JSON.parse(JSON.stringify(gy.Jn._6));
		Y._3 = JSON.parse(JSON.stringify(gy.LD._5));
		return Y
	};
	gy.adZ = function (F, P, o, X) {
		var Y = [],
			y = o._1._0;
		for (var w = 0; w < F.length; w++) {
			var z = F[w],
				s = {
					_0: {}
				};
			Y.push(s);
			var t = X ? X[w] : null;
			s._0._0 = "s" + z.EngineDict.Editor.Text;
			s._0._0 = s._0._0;
			var d = {
				_0: []
			};
			s._0._5 = d;
			var U = z.EngineDict.ParagraphRun;
			for (var v = 0; v < U.RunArray.length; v++) {
				var A = {
					_0: {}
				};
				d._0.push(A);
				A._0._0 = {
					_0: "s",
					_5: {},
					_6: "i1"
				};
				gy.O3(A._0._0, z.EngineDict.ParagraphRun.RunArray[v].ParagraphSheet);
				A._1 = "i" + U.RunLengthArray[v]
			}
			var Z = {
				_0: []
			};
			s._0._6 = Z;
			var D = t ? t._0._6 : null;
			U = z.EngineDict.StyleRun;
			for (var v = 0; v < U.RunArray.length; v++) {
				var q = {
					_0: {}
				};
				Z._0.push(q);
				var R = D ? D._0 : null;
				q._0._0 = {
					_0: "s",
					_5: "i1",
					_6: {}
				};
				gy._x(q._0._0, z.EngineDict.StyleRun.RunArray[v].StyleSheet, y, z.ResourceDict.FontSet, R ? q._0._0 : null);
				q._1 = "i" + U.RunLengthArray[v]
			}
			s._0._10 = {
				_0: "i4",
				_2: !0
			};
			s._1 = gy.view.a8U(z, null, w, null)
		}
		return Y
	};
	gy._x = function (F, P, o, X, Y) {
		F._0 = "s" + (P.Name ? P.Name : "");
		var y = F._6,
			z = Y ? Y._6 : null,
			s = P.StyleSheetData;
		if (s.Font == null) return;
		var t = X[s.Font].Name,
			d = -1;
		for (var w = 0; w < o.length; w++)
			if ("s" + t == o[w]._0._0._0) {
				d = w;
				break
			} y._0 = "i" + d;
		if (s.FontSize != null) y._1 = "f" + s.FontSize;
		if (s.FauxBold != null) y._2 = s.FauxBold;
		if (s.FauxItalic != null) y._3 = s.FauxItalic;
		if (s.AutoLeading != null) y._4 = s.AutoLeading;
		if (s.Leading != null) y._5 = "f" + s.Leading;
		if (s.HorizontalScale != null) y._6 = "f" + s.HorizontalScale;
		if (s.VerticalScale != null) y._7 = "f" + s.VerticalScale;
		if (s.Tracking != null) y._8 = "i" + s.Tracking;
		if (s.BaselineShift != null) y._9 = "f" + s.BaselineShift;
		if (s.AutoKerning != null) y._11 = "i" + (s.AutoKerning ? 1 : 0);
		if (s.FontCaps != null) y._12 = "i" + s.FontCaps;
		if (s.FontBaseline != null) y._13 = "i" + s.FontBaseline;
		if (s.Strikethrough != null) y._15 = "i" + (s.Strikethrough ? 1 : 0);
		if (s.Underline != null) y._16 = "i" + (s.Underline ? 2 : 0);
		if (s.Ligatures != null) y._18 = s.Ligatures;
		if (s.DLigatures != null) y._19 = s.DLigatures;
		if (s.Language != null) y._38 = "i" + s.Language;
		if (s.FillColor != null) y._53 = {
			_99: "/SimplePaint",
			_0: {
				_0: "i1",
				_1: gy.g7("f", s.FillColor.Values)
			}
		}
	};
	gy.O3 = function (F, P) {
		F._0 = "s" + (P.Name ? P.Name : "");
		var o = F._5,
			X = P.Properties;
		if (X.Justification != null) o._0 = "i" + X.Justification;
		if (X.FirstLineIndent != null) o._1 = "f" + X.FirstLineIndent;
		if (X.StartIndent != null) o._2 = "f" + X.StartIndent;
		if (X.EndtIndent != null) o._3 = "f" + X.EndtIndent;
		if (X.SpaceBefore != null) o._4 = "f" + X.SpaceBefore;
		if (X.SpaceAfter != null) o._5 = "f" + X.SpaceAfter;
		if (X.AutoHyphenate != null) o._9 = X.AutoHyphenate;
		if (X._Direction != null) o._33 = "i" + X._Direction
	};
	gy.g7 = function (F, P) {
		var o = [];
		for (var w = 0; w < P.length; w++) o.push(F + P[w]);
		return o
	};
	gy.a9S = {
		_0: [{
			_0: {
				_0: "sPhotoshop6MojiKumiSet4",
				_5: {
					_0: "i0",
					_3: "i2"
				}
			}
		}, {
			_0: {
				_0: "sPhotoshop6MojiKumiSet3",
				_5: {
					_0: "i0",
					_3: "i4"
				}
			}
		}, {
			_0: {
				_0: "sPhotoshop6MojiKumiSet2",
				_5: {
					_0: "i0",
					_3: "i3"
				}
			}
		}, {
			_0: {
				_0: "sPhotoshop6MojiKumiSet1",
				_5: {
					_0: "i0",
					_3: "i1"
				}
			}
		}, {
			_0: {
				_0: "sYakumonoHankaku",
				_5: {
					_0: "i0",
					_3: "i1"
				}
			}
		}, {
			_0: {
				_0: "sGyomatsuYakumonoHankaku",
				_5: {
					_0: "i0",
					_3: "i3"
				}
			}
		}, {
			_0: {
				_0: "sGyomatsuYakumonoZenkaku",
				_5: {
					_0: "i0",
					_3: "i4"
				}
			}
		}, {
			_0: {
				_0: "sYakumonoZenkaku",
				_5: {
					_0: "i0",
					_3: "i2"
				}
			}
		}],
		_1: [{
			_0: "i0"
		}, {
			_0: "i1"
		}, {
			_0: "i2"
		}, {
			_0: "i3"
		}, {
			_0: "i4"
		}, {
			_0: "i5"
		}, {
			_0: "i6"
		}, {
			_0: "i7"
		}]
	};
	gy.adT = {
		_0: [{
			_0: {
				_0: "sNone",
				_5: {
					_0: "s",
					_1: "s",
					_2: "s",
					_3: "s",
					_4: "i0"
				}
			}
		}, {
			_0: {
				_0: "sPhotoshopKinsokuHard",
				_5: {
					_0: "s!),.:;?]}\xA2\u2014\u2019\u201D\u2030\u2103\u2109\u3001\u3002\u3005\u3009\u300B\u300A\u300F\u3011\u3015\u3041\u3043\u3045\u3047\u3049\u3063\u3083\u3085\u3087\u308E\u309B\u309C\u309D\u309E\u30A1\u30A3\u30A5\u30A7\u30A9\u30C3\u30E3\u30E5\u30E7\u30EE\u30F5\u30F6\u30FB\u30FC\u30FD\u30FE\uFF01\uFF05\uFF09\uFF0C\uFF0E\uFF1A\uFF1B\uFF1F\uFF3D\uFF5D",
					_1: "s([{\xA3\xA7\u2018\u201C\u3008\u300A\u300C\u300E\u3010\u3012\u3014\uFF03\uFF04\uFF08\uFF20\uFF3B\uFF5B\uFFE5",
					_2: "s\u2014\u2025\u2026",
					_3: "s\u3001\u3002\uFF0C\uFF0E",
					_4: "i1"
				}
			}
		}, {
			_0: {
				_0: "sPhotoshopKinsokuSoft",
				_5: {
					_0: "s\u2019\u201D\u3001\u3002\u3005\u3009\u300B\u300A\u300F\u3011\u3015\u309D\u309E\u30FB\u30FD\u30FE\uFF01\uFF09\uFF0C\uFF0E\uFF1A\uFF1B\uFF1F\uFF3D\uFF5D",
					_1: "s\u2018\u201C\u3008\u300A\u300C\u300E\u3010\u3014\uFF08\uFF3B\uFF5B",
					_2: "s\u2014\u2025\u2026",
					_3: "s\u3001\u3002\uFF0C\uFF0E",
					_4: "i2"
				}
			}
		}, {
			_0: {
				_0: "sHard",
				_5: {
					_0: "s!),.:;?]}\xA2\u2014\u2019\u201D\u2030\u2103\u2109\u3001\u3002\u3005\u3009\u300B\u300A\u300F\u3011\u3015\u3041\u3043\u3045\u3047\u3049\u3063\u3083\u3085\u3087\u308E\u309B\u309C\u309D\u309E\u30A1\u30A3\u30A5\u30A7\u30A9\u30C3\u30E3\u30E5\u30E7\u30EE\u30F5\u30F6\u30FB\u30FC\u30FD\u30FE\uFF01\uFF05\uFF09\uFF0C\uFF0E\uFF1A\uFF1B\uFF1F\uFF3D\uFF5D",
					_1: "s([{\xA3\xA7\u2018\u201C\u3008\u300A\u300C\u300E\u3010\u3012\u3014\uFF03\uFF04\uFF08\uFF20\uFF3B\uFF5B\uFFE5",
					_2: "s\u2014\u2025\u2026",
					_3: "s\u3001\u3002\uFF0C\uFF0E",
					_4: "i1"
				}
			}
		}, {
			_0: {
				_0: "sSoft",
				_5: {
					_0: "s\u2019\u201D\u3001\u3002\u3005\u3009\u300B\u300A\u300F\u3011\u3015\u309D\u309E\u30FB\u30FD\u30FE\uFF01\uFF09\uFF0C\uFF0E\uFF1A\uFF1B\uFF1F\uFF3D\uFF5D",
					_1: "s\u2018\u201C\u3008\u300A\u300C\u300E\u3010\u3014\uFF08\uFF3B\uFF5B",
					_2: "s\u2014\u2025\u2026",
					_3: "s\u3001\u3002\uFF0C\uFF0E",
					_4: "i2"
				}
			}
		}],
		_1: [{
			_0: "i0"
		}, {
			_0: "i1"
		}, {
			_0: "i2"
		}, {
			_0: "i3"
		}, {
			_0: "i4"
		}]
	};
	gy.Jn = {
		_0: "sNormal RGB",
		_6: {
			_0: "i0",
			_1: "f12",
			_2: !1,
			_3: !1,
			_4: !0,
			_5: "f0",
			_6: "f1",
			_7: "f1",
			_8: "i0",
			_9: "f0",
			_10: "f0",
			_11: "i1",
			_12: "i0",
			_13: "i0",
			_14: "i0",
			_15: "i0",
			_16: "i0",
			_17: "f0",
			_18: !0,
			_19: !1,
			_20: !1,
			_21: !1,
			_22: !1,
			_23: !1,
			_24: !1,
			_25: !1,
			_26: !1,
			_27: !1,
			_28: !1,
			_29: !1,
			_30: "i0",
			_31: !1,
			_32: !1,
			_33: !1,
			_34: !1,
			_35: "i2",
			_36: "f0",
			_37: "i2",
			_38: "i0",
			_39: "i0",
			_40: !1,
			_41: "i2",
			_42: "i0",
			_43: {
				_0: "f.5"
			},
			_44: "i2",
			_45: "i2",
			_46: "i7",
			_47: "i0",
			_48: "i0",
			_49: "f-1",
			_50: "f-1",
			_51: "i0",
			_52: !1,
			_53: {
				_99: "/SimplePaint",
				_0: {
					_0: "i1",
					_1: ["f1", "f0", "f0", "f0"]
				}
			},
			_54: {
				_99: "/SimplePaint",
				_0: {
					_0: "i1",
					_1: ["f1", "f0", "f0", "f0"]
				}
			},
			_55: {
				_99: "/SimpleBlender"
			},
			_56: !0,
			_57: !1,
			_58: !0,
			_59: !1,
			_60: !1,
			_61: "i0",
			_62: "i0",
			_63: "f1",
			_64: "f4",
			_65: "f0",
			_66: [],
			_67: [],
			_68: "i0",
			_69: "i0",
			_70: "i0",
			_71: "i4",
			_72: "f0",
			_73: "f0",
			_74: !1,
			_75: !1,
			_76: !1,
			_77: !0,
			_78: !0,
			_79: {
				_99: "/SimplePaint",
				_0: {
					_0: "i1",
					_1: ["f1", "f1", "f1", "f0"]
				}
			},
			_80: !1,
			_81: "i0",
			_82: "f3",
			_83: "f3",
			_84: !1,
			_85: "i0",
			_86: {
				_99: "/SimpleCustomFeature"
			},
			_87: "f100",
			_88: !0
		}
	};
	gy.LD = {
		_0: "sNormal RGB",
		_5: {
			_0: "i0",
			_1: "f0",
			_2: "f0",
			_3: "f0",
			_4: "f0",
			_5: "f0",
			_6: "i1",
			_7: "f1.2",
			_8: "i0",
			_9: !0,
			_10: "i6",
			_11: "i2",
			_12: "i2",
			_13: "i0",
			_14: "f36",
			_15: !0,
			_16: "f.5",
			_17: ["f.8", "f1", "f1.33"],
			_18: ["f0", "f0", "f0"],
			_19: ["f1", "f1", "f1"],
			_20: "i6",
			_21: !1,
			_22: "i0",
			_23: !0,
			_24: "i0",
			_25: "i0",
			_27: "/nil",
			_26: !1,
			_28: "/nil",
			_29: !1,
			_30: {},
			_31: "f36",
			_32: {},
			_33: "i0",
			_34: "i7",
			_35: "i1",
			_36: "/nil",
			_37: "i0",
			_38: !1,
			_39: "i0",
			_40: "i2"
		}
	};
	gy.a7x = {
		_0: [{
			_0: {
				_0: "skPredefinedNumericListStyleTag",
				_6: "i1"
			}
		}, {
			_0: {
				_0: "skPredefinedUppercaseAlphaListStyleTag",
				_6: "i2"
			}
		}, {
			_0: {
				_0: "skPredefinedLowercaseAlphaListStyleTag",
				_6: "i3"
			}
		}, {
			_0: {
				_0: "skPredefinedUppercaseRomanNumListStyleTag",
				_6: "i4"
			}
		}, {
			_0: {
				_0: "skPredefinedLowercaseRomanNumListStyleTag",
				_6: "i5"
			}
		}, {
			_0: {
				_0: "skPredefinedBulletListStyleTag",
				_6: "i6"
			}
		}],
		_1: [{
			_0: "i0"
		}, {
			_0: "i1"
		}, {
			_0: "i2"
		}, {
			_0: "i3"
		}, {
			_0: "i4"
		}, {
			_0: "i5"
		}]
	};
	gy.a5a = {
		_0: {
			_0: "i1",
			_1: [{
				_0: "s ",
				_1: "s1"
			}, {
				_0: "s\r",
				_1: "s6"
			}, {
				_0: "s\t",
				_1: "s0"
			}, {
				_0: "s\u2029",
				_1: "s5"
			}, {
				_0: "s\x03",
				_1: "s5"
			}, {
				_0: "s\u3000",
				_1: "s1"
			}, {
				_0: "s\xAD",
				_1: "s3"
			}]
		},
		_1: "i0",
		_2: "i0",
		_3: "f.583",
		_4: "f.333",
		_5: "f.583",
		_6: "f.333",
		_7: "f.7",
		_8: !0,
		_9: [{
			_0: "i0",
			_1: "s\u201C",
			_2: "s\u201D",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i1",
			_1: "s\u201D",
			_2: "s\u201D",
			_3: "s\u2019",
			_4: "s\u2019"
		}, {
			_0: "i2",
			_1: "s\xAB",
			_2: "s\xBB",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i3",
			_1: "s\xAB",
			_2: "s\xBB",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i4",
			_1: "s\u201E",
			_2: "s\u201C",
			_3: "s\u201A",
			_4: "s\u2018"
		}, {
			_0: "i5",
			_1: "s\u201E",
			_2: "s\u201C",
			_3: "s\u201A",
			_4: "s\u2018"
		}, {
			_0: "i6",
			_1: "s\xAB",
			_2: "s\xBB",
			_3: "s\u2039",
			_4: "s\u203A"
		}, {
			_0: "i7",
			_1: "s\u201C",
			_2: "s\u201D",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i8",
			_1: "s\xAB",
			_2: "s\xBB",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i9",
			_1: "s\xAB",
			_2: "s\xBB",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i10",
			_1: "s\u201C",
			_2: "s\u201D",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i11",
			_1: "s\u201C",
			_2: "s\u201D",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i12",
			_1: "s\u201C",
			_2: "s\u201D",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i13",
			_1: "s\u201D",
			_2: "s\u201D",
			_3: "s\u2019",
			_4: "s\u2019"
		}, {
			_0: "i14",
			_1: "s\u201C",
			_2: "s\u201D",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i15",
			_1: "s\u201C",
			_2: "s\u201D",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i16",
			_1: "s\u201D",
			_2: "s\u201D",
			_3: "s\u2019",
			_4: "s\u2019"
		}, {
			_0: "i17",
			_1: "s\u201C",
			_2: "s\u201D",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i18",
			_1: "s\xAB",
			_2: "s\xBB",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i19",
			_1: "s\xAB",
			_2: "s\xBB",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i20",
			_1: "s\u201E",
			_2: "s\u201C",
			_3: "s\u201A",
			_4: "s\u2018"
		}, {
			_0: "i21",
			_1: "s\u201E",
			_2: "s\u201C",
			_3: "s\u201A",
			_4: "s\u2018"
		}, {
			_0: "i22",
			_1: "s\u201E",
			_2: "s\u201C",
			_3: "s\u201A",
			_4: "s\u2018"
		}, {
			_0: "i23",
			_1: "s\u201E",
			_2: "s\u201D",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i24",
			_1: "s\u201E",
			_2: "s\u201D",
			_3: "s\u201A",
			_4: "s\u2019"
		}, {
			_0: "i25",
			_1: "s\xAB",
			_2: "s\xBB",
			_3: "s\u2039",
			_4: "s\u203A"
		}, {
			_0: "i26",
			_1: "s\u201C",
			_2: "s\u201D",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i27",
			_1: "s\u201C",
			_2: "s\u201D",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i28",
			_1: "s\u201E",
			_2: "s\u201D",
			_3: "s\u2019",
			_4: "s\u2019"
		}, {
			_0: "i29",
			_1: "s\u301D",
			_2: "s\u301E"
		}, {
			_0: "i30",
			_1: "s\u300C",
			_2: "s\u300D"
		}, {
			_0: "i31",
			_1: "s\u201E",
			_2: "s\u201C",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i32",
			_1: "s\u201C",
			_2: "s\u201D",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i33",
			_1: "s\u201E",
			_2: "s\u201C",
			_3: "s\u201A",
			_4: "s\u2018"
		}, {
			_0: "i34",
			_1: "s\xAB",
			_2: "s\xBB",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i35",
			_1: "s\u201C",
			_2: "s\u201D",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i36",
			_1: "s\u201E",
			_2: "s\u201C",
			_3: "s\u201A",
			_4: "s\u2018"
		}, {
			_0: "i37",
			_1: "s\xAB",
			_2: "s\xBB",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i38",
			_1: "s\u201E",
			_2: "s\u201C",
			_3: "s\u201A",
			_4: "s\u2018"
		}, {
			_0: "i39",
			_1: "s\xAB",
			_2: "s\xBB",
			_3: "s<",
			_4: "s>"
		}, {
			_0: "i40",
			_1: "s\u201E",
			_2: "s\u201C",
			_3: "s\u201A",
			_4: "s\u2018"
		}, {
			_0: "i41",
			_1: "s\xAB",
			_2: "s\xBB",
			_3: "s<",
			_4: "s>"
		}, {
			_0: "i42",
			_1: "s\u201E",
			_2: "s\u201C",
			_3: "s\u201A",
			_4: "s\u2018"
		}, {
			_0: "i43",
			_1: "s\u201C",
			_2: "s\u201D",
			_3: "s\u2018",
			_4: "s\u2019"
		}, {
			_0: "i44",
			_1: "s\xAB",
			_2: "s\xBB",
			_3: "s\u2039",
			_4: "s\u203A"
		}, {
			_0: "i45",
			_1: "s\u201C",
			_2: "s\u201D",
			_3: "s\u2018",
			_4: "s\u2019"
		}],
		_15: {
			_0: "sWinSoft"
		},
		_16: !1
	};
	var cX = {};
	cX.a27 = function (F) {
		return cX.E2(F, cX.N2)
	};
	cX.agb = function (F) {
		return cX.cO(F, cX.N2)
	};
	cX.E2 = function (F, P) {
		var o;
		if (typeof F == "string") return F;
		if (F instanceof Array) {
			o = [];
			for (var w = 0; w < F.length; w++) o[w] = cX.E2(F[w], P)
		} else {
			o = {};
			var X = {};
			for (var Y in P) {
				var y = P[Y],
					z = "_" + y[0];
				if (F[z] != null) {
					o[Y] = y[1] ? cX.E2(F[z], y[1]) : F[z];
					X[z] = !0
				}
			}
			for (var Y in F) {
				if (X[Y] == null) {
					console.log(X);
					console.log(Y, F, P);
					throw "e"
				}
			}
		}
		return o
	};
	cX.cO = function (F, P) {
		var o;
		if (F instanceof Array) {
			o = [];
			for (var w = 0; w < F.length; w++) o[w] = cX.cO(F[w], P)
		} else {
			o = {};
			var X = {};
			for (var Y in P) {
				var y = P[Y],
					z = "_" + y[0];
				if (F[Y] != null) {
					o[z] = y[1] ? cX.cO(F[Y], y[1]) : F[Y];
					X[Y] = !0
				}
			}
			for (var Y in F) {
				if (X[Y] == null) {
					console.log(X);
					console.log(Y, F);
					throw "e"
				}
			}
		}
		return o
	};
	cX.mz = {
		_StreamTag: [99],
		_Color: [0, {
			_Type: [0],
			_Values: [1]
		}]
	};
	cX.zn = {
		_Font: [0],
		_FontSize: [1],
		_FauxBold: [2],
		_FauxItalic: [3],
		_AutoLeading: [4],
		_Leading: [5],
		_HorizontalScale: [6],
		_VerticalScale: [7],
		_Tracking: [8],
		_BaselineShift: [9],
		_CharacterRotation: [10],
		_AutoKern: [11],
		_FontCaps: [12],
		_FontBaseline: [13],
		_FontOTPosition: [14],
		_StrikethroughPosition: [15],
		_UnderlinePosition: [16],
		_UnderlineOffset: [17],
		_Ligatures: [18],
		_DiscretionaryLigatures: [19],
		_ContextualLigatures: [20],
		_AlternateLigatures: [21],
		_OldStyle: [22],
		_Fractions: [23],
		_Ordinals: [24],
		_Swash: [25],
		_Titling: [26],
		_ConnectionForms: [27],
		_StylisticAlternates: [28],
		_Ornaments: [29],
		_FigureStyle: [30],
		_ProportionalMetrics: [31],
		_Kana: [32],
		_Italics: [33],
		_Ruby: [34],
		_BaselineDirection: [35],
		_Tsume: [36],
		_StyleRunAlignment: [37],
		_Language: [38],
		_JapaneseAlternateFeature: [39],
		_EnableWariChu: [40],
		_WariChuLineCount: [41],
		_WariChuLineGap: [42],
		_WariChuSubLineAmount: [43, {
			_WariChuSubLineScale: [0]
		}],
		_WariChuWidowAmount: [44],
		_WariChuOrphanAmount: [45],
		_WariChuJustification: [46],
		_TCYUpDownAdjustment: [47],
		_TCYLeftRightAdjustment: [48],
		_LeftAki: [49],
		_RightAki: [50],
		_JiDori: [51],
		_NoBreak: [52],
		_FillColor: [53, cX.mz],
		_StrokeColor: [54, cX.mz],
		_Blend: [55, {
			_StreamTag: [99]
		}],
		_FillFlag: [56],
		_StrokeFlag: [57],
		_FillFirst: [58],
		_FillOverPrint: [59],
		_StrokeOverPrint: [60],
		_LineCap: [61],
		_LineJoin: [62],
		_LineWidth: [63],
		_MiterLimit: [64],
		_LineDashOffset: [65],
		_LineDashArray: [66],
		_Type1EncodingNames: [67],
		_Kashidas: [68],
		_DirOverride: [69],
		_DigitSet: [70],
		_DiacVPos: [71],
		_DiacXOffset: [72],
		_DiacYOffset: [73],
		_OverlapSwash: [74],
		_JustificationAlternates: [75],
		_StretchedAlternates: [76],
		_FillVisibleFlag: [77],
		_StrokeVisibleFlag: [78],
		_FillBackgroundColor: [79, cX.mz],
		_FillBackgroundFlag: [80],
		_UnderlineStyle: [81],
		_DashedUnderlineGapLength: [82],
		_DashedUnderlineDashLength: [83],
		_SlashedZero: [84],
		_StylisticSets: [85],
		_CustomFeature: [86, {
			_StreamTag: [99]
		}],
		_87: [87],
		_88: [88]
	};
	cX.R1 = {
		_Justification: [0],
		_FirstLineIndent: [1],
		_StartIndent: [2],
		_EndIndent: [3],
		_SpaceBefore: [4],
		_SpaceAfter: [5],
		_DropCaps: [6],
		_AutoLeading: [7],
		_LeadingType: [8],
		_AutoHyphenate: [9],
		_HyphenatedWordSize: [10],
		_PreHyphen: [11],
		_PostHyphen: [12],
		_ConsecutiveHyphens: [13],
		_Zone: [14],
		_HyphenateCapitalized: [15],
		_HyphenationPreference: [16],
		_WordSpacing: [17],
		_LetterSpacing: [18],
		_GlyphSpacing: [19],
		_SingleWordJustification: [20],
		_Hanging: [21],
		_AutoTCY: [22],
		_KeepTogether: [23],
		_BurasagariType: [24],
		_KinsokuOrder: [25],
		_Kinsoku: [27],
		_KurikaeshiMojiShori: [26],
		_MojiKumiTable: [28],
		_EveryLineComposer: [29],
		_TabStops: [30],
		_DefaultTabWidth: [31],
		_DefaultStyle: [32, cX.zn],
		_ParagraphDirection: [33],
		_JustificationMethod: [34],
		_ComposerEngine: [35],
		_ListStyle: [36],
		_ListTier: [37],
		_ListSkip: [38],
		_ListOffset: [39],
		_40: [40]
	};
	cX.Uc = {
		_Name: [0],
		_Features: [5, cX.R1],
		_Parent: [6]
	};
	cX.ml = {
		_Name: [0],
		_Parent: [5],
		_Features: [6, cX.zn]
	};
	cX.N2 = {
		_98: [98, {
			_0: [0]
		}],
		_DocumentResources: [0, {
			_0: [0],
			_FontSet: [1, {
				_Resources: [0, {
					_Resource: [0, {
						_StreamTag: [99],
						_Identifier: [0, {
							_Name: [0],
							_ScriptType: [1],
							_Type: [2],
							_Synthetic: [3],
							_4: [4]
						}]
					}]
				}],
				_1: [1, {
					_0: [0]
				}]
			}],
			_MojiKumiCodeToClassSet: [2, {
				_Resources: [0, {
					_Resource: [0, {
						_Name: [0]
					}]
				}],
				_DisplayList: [1, {
					_Resource: [0]
				}]
			}],
			_MojiKumiTableSet: [3, {
				_Resources: [0, {
					_Resource: [0, {
						_Name: [0],
						_Members: [5, {
							_CodeToClass: [0],
							_AutoTsume: [1, {
								_TsumeMappings: [0, {
									_Before: [0],
									_After: [1],
									_Code: [2]
								}]
							}],
							_Table: [2, {
								_DataArray: [0, {
									_SparseArray: [0, {
										_Index: [0],
										_Elements: [1, {
											_P: [0],
											_Data: [1, {
												_A: [0, {
													_R: [0],
													_P: [1]
												}],
												_B: [1, {
													_R: [0],
													_P: [1]
												}]
											}]
										}]
									}]
								}]
							}],
							_PredefinedTag: [3]
						}]
					}]
				}],
				_DisplayList: [1, {
					_Resource: [0]
				}]
			}],
			_KinsokuSet: [4, {
				_Resources: [0, {
					_Resource: [0, {
						_Name: [0],
						_Data: [5, {
							_NoStart: [0],
							_NoEnd: [1],
							_Keep: [2],
							_Hanging: [3],
							_PredefinedTag: [4]
						}]
					}]
				}],
				_DisplayList: [1, {
					_Resource: [0]
				}]
			}],
			_StyleSheetSet: [5, {
				_Resources: [0, {
					_Resource: [0, cX.ml]
				}],
				_DisplayList: [1, {
					_Resource: [0]
				}]
			}],
			_ParagraphSheetSet: [6, {
				_Resources: [0, {
					_Resource: [0, cX.Uc]
				}],
				_DisplayList: [1, {
					_Resource: [0]
				}]
			}],
			_TextFrameSet: [8, {
				_Resources: [0, {
					_Resource: [0, {
						_0: [0],
						_Bezier: [1, {
							_Points: [0]
						}],
						_Data: [2, {
							_Type: [0],
							_LineOrientation: [1],
							_FrameMatrix: [2],
							_TextOnPathTRange: [6],
							_RowGutter: [7],
							_ColumnGutter: [8],
							_FirstBaselineAlignment: [10, {
								_Flag: [0],
								_Min: [1]
							}],
							_PathData: [11, {
								_Reversed: [0],
								_2: [2],
								_3: [3],
								_Spacing: [4],
								_5: [5],
								_7: [7]
							}],
							_12: [12]
						}]
					}]
				}]
			}],
			_ListStyleSet: [9, {
				_Resources: [0, {
					_Resource: [0, {
						_Name: [0],
						_PredefinedTag: [6]
					}]
				}],
				_DisplayList: [1, {
					_Resource: [0]
				}]
			}]
		}],
		_DocumentObjects: [1, {
			_DocumentSettings: [0, {
				_HiddenGlyphFont: [0, {
					_AlternateGlyphFont: [0],
					_WhitespaceCharacterMapping: [1, {
						_WhitespaceCharacter: [0],
						_AlternateCharacter: [1]
					}]
				}],
				_NormalStyleSheet: [1],
				_NormalParagraphSheet: [2],
				_SuperscriptSize: [3],
				_SuperscriptPosition: [4],
				_SubscriptSize: [5],
				_SubscriptPosition: [6],
				_SmallCapSize: [7],
				_UseSmartQuotes: [8],
				_SmartQuoteSets: [9, {
					_Language: [0],
					_OpenDoubleQuote: [1],
					_CloseDoubleQuote: [2],
					_OpenSingleQuote: [3],
					_CloseSingleQuote: [4]
				}],
				_11: [11],
				_15: [15, {
					_0: [0]
				}],
				_16: [16],
				_17: [17]
			}],
			_TextObjects: [1, {
				_Model: [0, {
					_Text: [0],
					_ParagraphRun: [5, {
						_RunArray: [0, {
							_RunData: [0, {
								_ParagraphSheet: [0, cX.Uc]
							}],
							_Length: [1]
						}]
					}],
					_StyleRun: [6, {
						_RunArray: [0, {
							_RunData: [0, {
								_StyleSheet: [0, cX.ml]
							}],
							_Length: [1]
						}]
					}],
					_FirstKern: [7],
					_8: [8],
					_9: [9],
					_StorySheet: [10, {
						_AntiAlias: [0],
						_UseFractionalGlyphWidths: [2],
						_3: [3],
						_4: [4]
					}]
				}],
				_View: [1, {
					_Frames: [0, {
						_Resource: [0]
					}],
					_RenderedData: [1, {
						_RunArray: [0, {
							_RunData: [0, {
								_0: [0],
								_LineCount: [1]
							}],
							_Length: [1]
						}]
					}],
					_Strikes: [2]
				}]
			}],
			_OriginalNormalStyleFeatures: [2, cX.zn],
			_OriginalNormalParagraphFeatures: [3, cX.R1]
		}]
	};
	gy.view = {};
	gy.view.a8U = function (F, P, o, X) {
		var Y = {},
			y = bt.AW(F);
		Y._0 = [{
			_0: "i" + o
		}];
		return Y
	};

	function CSS() {}
	CSS.adQ = function (F, P) {
		var o = F.add,
			X = o.vmsk,
			Y = o.vstk,
			y = o.lmfx,
			z = o.TySh,
			s = [],
			t = CSS.alq(y, o);
		if (F.ws() && X) {
			var d = H.V.ue(X.b);
			if (!d.qr()) {
				s.push("width: " + Math.round(d.Z) + "px");
				s.push("height: " + Math.round(d.h) + "px")
			}
			var U = H.V.a6c(X.b);
			if (U > 0) s.push("border-radius: " + Math.round(U) + "px")
		} else if (z) {
			var v = z.MF;
			if (bt.AW(v) == 1) {
				var d = bt.dd(v);
				s.push("width: " + Math.round(d[2]) + "px");
				s.push("height: " + Math.round(d[3]) + "px")
			}
			CSS.yS(s, bt.lW(v, 0, 0), z.O, !1, !1, t[0])
		}
		var A = [],
			Z = y ? y.dropShadowMulti.v : 0;
		for (var w = 0; w < Z.length; w++) {
			var D = Z[w].v;
			if (D.enab.v) {
				var q = D.Dstn.v.val,
					R = D.lagl.v.val * Math.PI / 180;
				if (D.uglg && D.uglg.v) R = P.Rp() * Math.PI / 180;
				var J = q * Math.cos(R),
					W = q * Math.sin(R);
				A.push("drop-shadow(" + (J == 0 ? "0 " : CSS.EE(-J) + "px ") + (W == 0 ? "0 " : CSS.EE(W) + "px ") + D.blur.v.val / 2 + "px " + CSS.O4(D.Clr.v, D.Opct.v.val / 100) + ")")
			}
		}
		if (A.length != 0) s.push("filter: " + A.join(" "));
		if (z == null) CSS.a0w(t, s);
		if (Y == null || !Y.strokeEnabled.v) Y = cr.ig(y);
		if (Y && Y.strokeEnabled.v) {
			var p = Y.strokeStyleContent.v,
				n = p.classID,
				b = ce.bW.Bb.indexOf(Y.strokeStyleLineCapType.v.strokeStyleLineCapType),
				Q = ce.bW.join.indexOf(Y.strokeStyleLineJoinType.v.strokeStyleLineJoinType),
				_ = Y.strokeStyleOpacity.v.val / 100,
				L = Y.strokeStyleLineWidth.v.val,
				m = "";
			if (n == "solidColorLayer") m = CSS.O4(p.Clr.v, _);
			s.push("border: " + L + "px solid " + m)
		}
		return s
	};
	CSS.alq = function (F, P) {
		var o = cr.h4(F, P),
			X = o[0],
			Y = o[1],
			y, z;
		if (X) {
			y = CSS.O4(X.Clr.v, P.iOpa != null ? P.iOpa / 255 : 1)
		} else if (Y) {
			z = CSS.Eu(Y)
		}
		return [y, z]
	};
	CSS.a0w = function (F, P) {
		if (F[0]) P.push("background-color: " + F[0]);
		if (F[1]) P.push("background-image: " + F[1])
	};
	CSS.zP = {
		aliceblue: "#f0f8ff",
		antiquewhite: "#faebd7",
		aqua: "#00ffff",
		aquamarine: "#7fffd4",
		azure: "#f0ffff",
		beige: "#f5f5dc",
		bisque: "#ffe4c4",
		black: "#000000",
		blanchedalmond: "#ffebcd",
		blue: "#0000ff",
		blueviolet: "#8a2be2",
		brown: "#a52a2a",
		burlywood: "#deb887",
		cadetblue: "#5f9ea0",
		chartreuse: "#7fff00",
		chocolate: "#d2691e",
		coral: "#ff7f50",
		cornflowerblue: "#6495ed",
		cornsilk: "#fff8dc",
		crimson: "#dc143c",
		cyan: "#00ffff",
		darkblue: "#00008b",
		darkcyan: "#008b8b",
		darkgoldenrod: "#b8860b",
		darkgray: "#a9a9a9",
		darkgreen: "#006400",
		darkgrey: "#a9a9a9",
		darkkhaki: "#bdb76b",
		darkmagenta: "#8b008b",
		darkolivegreen: "#556b2f",
		darkorange: "#ff8c00",
		darkorchid: "#9932cc",
		darkred: "#8b0000",
		darksalmon: "#e9967a",
		darkseagreen: "#8fbc8f",
		darkslateblue: "#483d8b",
		darkslategray: "#2f4f4f",
		darkslategrey: "#2f4f4f",
		darkturquoise: "#00ced1",
		darkviolet: "#9400d3",
		deeppink: "#ff1493",
		deepskyblue: "#00bfff",
		dimgray: "#696969",
		dimgrey: "#696969",
		dodgerblue: "#1e90ff",
		firebrick: "#b22222",
		floralwhite: "#fffaf0",
		forestgreen: "#228b22",
		fuchsia: "#ff00ff",
		gainsboro: "#dcdcdc",
		ghostwhite: "#f8f8ff",
		gold: "#ffd700",
		goldenrod: "#daa520",
		gray: "#808080",
		green: "#008000",
		greenyellow: "#adff2f",
		grey: "#808080",
		honeydew: "#f0fff0",
		hotpink: "#ff69b4",
		indianred: "#cd5c5c",
		indigo: "#4b0082",
		ivory: "#fffff0",
		khaki: "#f0e68c",
		lavender: "#e6e6fa",
		lavenderblush: "#fff0f5",
		lawngreen: "#7cfc00",
		lemonchiffon: "#fffacd",
		lightblue: "#add8e6",
		lightcoral: "#f08080",
		lightcyan: "#e0ffff",
		lightgoldenrodyellow: "#fafad2",
		lightgray: "#d3d3d3",
		lightgreen: "#90ee90",
		lightgrey: "#d3d3d3",
		lightpink: "#ffb6c1",
		lightsalmon: "#ffa07a",
		lightseagreen: "#20b2aa",
		lightskyblue: "#87cefa",
		lightslategray: "#778899",
		lightslategrey: "#778899",
		lightsteelblue: "#b0c4de",
		lightyellow: "#ffffe0",
		lime: "#00ff00",
		limegreen: "#32cd32",
		linen: "#faf0e6",
		magenta: "#ff00ff",
		maroon: "#800000",
		mediumaquamarine: "#66cdaa",
		mediumblue: "#0000cd",
		mediumorchid: "#ba55d3",
		mediumpurple: "#9370db",
		mediumseagreen: "#3cb371",
		mediumslateblue: "#7b68ee",
		mediumspringgreen: "#00fa9a",
		mediumturquoise: "#48d1cc",
		mediumvioletred: "#c71585",
		midnightblue: "#191970",
		mintcream: "#f5fffa",
		mistyrose: "#ffe4e1",
		moccasin: "#ffe4b5",
		navajowhite: "#ffdead",
		navy: "#000080",
		oldlace: "#fdf5e6",
		olive: "#808000",
		olivedrab: "#6b8e23",
		orange: "#ffa500",
		orangered: "#ff4500",
		orchid: "#da70d6",
		palegoldenrod: "#eee8aa",
		palegreen: "#98fb98",
		paleturquoise: "#afeeee",
		palevioletred: "#db7093",
		papayawhip: "#ffefd5",
		peachpuff: "#ffdab9",
		peru: "#cd853f",
		pink: "#ffc0cb",
		plum: "#dda0dd",
		powderblue: "#b0e0e6",
		purple: "#800080",
		rebeccapurple: "#663399",
		red: "#ff0000",
		rosybrown: "#bc8f8f",
		royalblue: "#4169e1",
		saddlebrown: "#8b4513",
		salmon: "#fa8072",
		sandybrown: "#f4a460",
		seagreen: "#2e8b57",
		seashell: "#fff5ee",
		sienna: "#a0522d",
		silver: "#c0c0c0",
		skyblue: "#87ceeb",
		slateblue: "#6a5acd",
		slategray: "#708090",
		slategrey: "#708090",
		snow: "#fffafa",
		springgreen: "#00ff7f",
		steelblue: "#4682b4",
		tan: "#d2b48c",
		teal: "#008080",
		thistle: "#d8bfd8",
		tomato: "#ff6347",
		turquoise: "#40e0d0",
		violet: "#ee82ee",
		wheat: "#f5deb3",
		white: "#ffffff",
		whitesmoke: "#f5f5f5",
		yellow: "#ffff00",
		yellowgreen: "#9acd32"
	};
	CSS.EE = function (e) {
		return "" + parseFloat(e.toFixed(3))
	};
	CSS.HD = function (F) {
		if (F == null) return {
			U: 0,
			S: 0,
			i: 0
		};
		var P = F.indexOf("(");
		if (P != -1) {
			var o = F.slice(P + 1, F.length - 1).split(",").map(parseFloat);
			return {
				U: o[0],
				S: o[1],
				i: o[2]
			}
		}
		if (F.charAt(0) != "#") {
			var X = CSS.zP;
			if (X[F]) F = X[F];
			else console.log("unknown color " + F)
		}
		F = F.slice(1);
		if (F.length == 3) F = F[0] + F[0] + F[1] + F[1] + F[2] + F[2];
		F = parseInt(F, 16);
		return {
			U: F >> 16 & 255,
			S: F >> 8 & 255,
			i: F & 255
		}
	};
	CSS.O4 = function (F, P) {
		return CSS.PO(H.j.T6(F), P)
	};
	CSS.PO = function (F, P) {
		if (P == null) P = 1;
		var o = Math.round(F.U),
			X = Math.round(F.S),
			Y = Math.round(F.i),
			y = o << 16 | X << 8 | Y;
		return P == 1 ? "#" + H.v2(y) : "rgba(" + o + "," + X + "," + Y + "," + P + ")"
	};
	CSS.Eu = function (F) {
		var P = F.Grad.v;
		if (P.Clrs == null) return "";
		var o = P.Clrs.v.slice(0),
			X = P.Trns.v.slice(0),
			Y = F.Ofst.v,
			y = F.Type.v.GrdT == "Rdl" ? 1 : 0,
			z = (y == 1 ? "radial" : "linear") + "-gradient",
			s = y == 0 ? Math.round(-F.Angl.v.val + 90) + "deg" : "circle at center",
			t = F.Rvrs.v;
		if (t) {
			o.reverse();
			X.reverse()
		}
		for (var w = 0; w < o.length; w++) {
			var d = o[w].v,
				U = w < X.length ? X[w].v.Opct.v.val / 100 : 1,
				v = d.Lctn.v / 4096;
			if (t) v = 1 - v;
			s += ", " + CSS.O4(d.Clr.v, U) + " " + Math.round(v * 100) + "%"
		}
		return z + "(" + s + ")"
	};
	CSS.yS = function (F, P, o, X, Y, y) {
		var z = P.dS,
			s = X ? 1 : B.X.d3(o),
			t = Math.round(z.FontSize * s);
		F.push("font-size: " + t + "px");
		var d = z.Tracking;
		if (!X && d != null && d != 0) F.push("letter-spacing: " + Math.round(d * t / 1e3) + "px");
		if (!z.AutoLeading) F.push("line-height: " + Math.round(z.Leading * s) + "px");
		if (z.Strikethrough) F.push("text-decoration: line-through");
		var U = bt.T6(z);
		U = [U.U, U.S, U.i].map(Math.round);
		F.push((X ? "fill: " : "color: ") + (y ? y : "#" + H.v2(U[0] << 16 | U[1] << 8 | U[2])));
		var v = P.Dm[z.Font].Name;
		if (v) {
			var A = bh.ZM.VV(v),
				Z = "",
				D = null,
				q = null;
			if (A != null && v != bh.TF(A)) A = null;
			if (Y && A) Z += "\"" + v + "\", ";
			var R = v.toLowerCase();
			if (A) {
				D = bh.cv(A)[0];
				if (A["OS/2"]) q = A["OS/2"].usWeightClass
			} else {
				D = CSS.akq(v);
				if (R.indexOf("light") != -1) q = 300;
				else if (R.indexOf("medium") != -1) q = 500;
				else if (R.indexOf("black") != -1 || R.indexOf("extrabold") != -1) q = 800;
				else if (R.indexOf("bold") != -1) q = "bold"
			}
			if (D != null) Z += "\"" + D + "\"";
			if (q != null) F.push("font-weight: " + q);
			if (R.indexOf("italic") != -1 || R.indexOf("oblique") != -1) F.push("font-style: italic");
			if (Z) F.push("font-family: " + Z)
		}
		var J = P.eS.Justification;
		if (J != null && J != 0)
			if (X) F.push("text-anchor: " + ["start", "end", "middle"][J % 3]);
			else F.push("text-align: " + ["left", "right", "center"][J % 3])
	};
	CSS.akq = function (F) {
		F = F.split("-")[0];
		while (F.endsWith("MT") || F.endsWith("PS")) F = F.slice(0, F.length - 2);
		var P = !0;
		for (var w = 0; w < F.length; w++) {
			var o = F.charAt(w);
			if (!P && o.toLowerCase() != o) {
				F = F.slice(0, w) + " " + F.slice(w);
				w++;
				P = !0
			} else P = !1
		}
		return F
	};

	function df() {}
	df.VJ = {
		document: !0,
		parent: !0,
		top: !0,
		eval: !0,
		postMessage: !0,
		UTIF: !0,
		PIMG: !0,
		LNG: !0,
		FNTS: !0
	};
	df.DU = function (F, P) {
		var o = Date.now(),
			X;
		try {
			X = acorn.parse(F)
		} catch (h9) {
			console.log(h9);
			return
		}
		var Y = JSON.parse(JSON.stringify(df.Tz.qz));
		Y.__return = !1;
		Y.__break = !1;
		Y.__throw = !1;
		Y.__fs = {};
		Y.__window = {};
		df.eval(X, P, Y);
		var y = Y.__fs;
		if (Object.keys(y).length != 0) {
			var z = UZIP.encode(y);
			cz.save(z, "output.zip")
		}
	};
	df.eval = function (F, P, o) {
		var X = F.type;
		if (!1) {} else if (X == "Program" || X == "BlockStatement") {
			var Y = F.body;
			for (var w = 0; w < Y.length; w++) {
				var y = Y[w].type;
				if (y == "FunctionDeclaration") o[Y[w].id.name] = Y[w]
			}
			for (var w = 0; w < Y.length; w++) {
				var y = Y[w].type,
					z = df.eval(Y[w], P, o);
				if (o.__return || o.__break || o.__throw) return z
			}
		} else if (X == "ReturnStatement") {
			o.__return = !0;
			return F.argument ? df.it(F.argument, P, o) : null
		} else if (X == "BreakStatement") {
			o.__break = !0
		} else if (X == "VariableDeclaration") {
			var s = F.declarations;
			for (var w = 0; w < s.length; w++) df.eval(s[w], P, o)
		} else if (X == "VariableDeclarator") {
			o[F.id.name] = F.init ? df.it(F.init, P, o) : null
		} else if (X == "FunctionDeclaration") {
			o[F.id.name] = F
		} else if (X == "MemberExpression") {
			var t = df.it(F.object, P, o),
				d = F.computed ? df.it(F.property, P, o) : df.eval(F.property, P, o),
				z;
			if (t.qa != null) z = df.Tz.lg(t, d, P, o);
			else if (t == window && df.VJ[d]) {} else z = t[d];
			return z
		} else if (X == "ArrayExpression") {
			var U = [],
				v = F.elements;
			for (var w = 0; w < v.length; w++) U.push(df.it(v[w], P, o));
			return U
		} else if (X == "ObjectExpression") {
			var U = {},
				v = F.properties;
			for (var w = 0; w < v.length; w++) {
				var A = v[w],
					Z = v[w].key.name ? v[w].key.name : v[w].key.value;
				U[Z] = df.it(v[w].value, P, o)
			}
			return U
		} else if (X == "ExpressionStatement") {
			return df.eval(F.expression, P, o)
		} else if (X == "NewExpression") {
			var D = F.arguments,
				q = F.callee,
				R = q.type,
				U = null;
			if (R == "Identifier") U = df.Tz.a5N(q.name, D, P, o);
			else throw "e";
			if (U == null) throw "new " + q.name;
			return U
		} else if (X == "CallExpression") {
			var D = F.arguments,
				q = F.callee,
				R = q.type,
				J = {};
			for (var W in o) J[W] = o[W];
			var p = [];
			for (var w = 0; w < D.length; w++) p.push(df.it(D[w], P, o));
			if (R == "Identifier") {
				var n = q.name,
					b = o[n];
				if (b) {
					if (b.params) {
						var Q = b.params;
						for (var w = 0; w < Q.length; w++) J[Q[w].name] = p[w];
						return df.eval(b.body, P, J)
					} else {
						return b.apply(null, p)
					}
				} else if (df.Tz.a77.indexOf(n) != -1) return df.Tz.ff({
					qa: "Application"
				}, n, p, P, o);
				else if (window[n] == null) console.log("Unknown function " + n);
				else if (df.VJ[n]) alert(n + "() not available");
				else {
					var _ = window[n].apply(window, p);
					return _
				}
			} else if (R == "MemberExpression") {
				var t = df.it(q.object, P, o),
					d = q.computed ? df.it(q.property, P, o) : df.eval(q.property, P, o);
				if (t == window && df.VJ[d]) return;
				if (t.qa != null) return df.Tz.ff(t, d, p, P, o);
				else return t[d].apply(t, p)
			} else console.log(F)
		} else if (X == "AssignmentExpression") {
			var L = F.operator,
				m = F.left,
				I = m.type,
				c = df.it(m, P, o),
				u = df.it(F.right, P, o),
				z = null;
			if (!1) {} else if (L == "=") z = u;
			else if (L == "+=") z = c + u;
			else if (L == "-=") z = c - u;
			else if (L == "*=") z = c * u;
			else if (L == "/=") z = c / u;
			else if (L == "%=") z = c % u;
			else if (L == "&=") z = c & u;
			else if (L == "|=") z = c | u;
			else if (L == "&&=") z = c && u;
			else if (L == "||=") z = c || u;
			else console.log(F);
			if (I == "Identifier") {
				var a = m.name;
				if (o.hasOwnProperty(a)) o[a] = z;
				else o.__window[a] = z
			} else if (I == "MemberExpression") {
				var N = df.eval(m.property, P, o),
					V = df.it(m.object, P, o);
				if (V.qa != null) df.Tz.agT(V, N, z, P, o);
				else V[N] = z
			} else console.log(F)
		} else if (X == "Identifier") return F.name;
		else if (X == "Literal") return F.value;
		else if (X == "UpdateExpression") {
			var L = F.operator,
				M = F.argument.name,
				U = df.it(F.argument, P, o);
			if (!1) {} else if (L == "++") {
				o[M]++;
				return F.prefix ? o[M] : o[M] - 1
			} else if (L == "--") {
				o[M]--;
				return F.prefix ? o[M] : o[M] + 1
			} else console.log(F)
		} else if (X == "UnaryExpression") {
			var L = F.operator,
				O = df.it(F.argument, P, o);
			if (O.qa == "UnitValue") {
				if (L == "-") return -O.C;
				else return df.sP(O.C, L)
			} else return df.sP(O, L)
		} else if (X == "BinaryExpression" || X == "LogicalExpression") {
			var L = F.operator,
				m = df.it(F.left, P, o),
				O = df.it(F.right, P, o);
			if (m == null || O == null) return df.eN(m, O, L);
			else if (m.qa == "UnitValue" && O.qa == "UnitValue") return df.eN(m.C, O.C, L);
			else if (m.qa == "UnitValue") return df.eN(m.C, O, L);
			else if (O.qa == "UnitValue") {
				if (L == "-") return -(m - O.C);
				else return df.eN(m, O.C, L)
			} else return df.eN(m, O, L)
		} else if (X == "IfStatement" || X == "ConditionalExpression") {
			var K = df.it(F.test, P, o);
			if (K) return df.eval(F.consequent, P, o);
			else if (F.alternate) return df.eval(F.alternate, P, o)
		} else if (X == "ForInStatement") {
			df.eval(F.left, P, o);
			var j = F.left.declarations[0].id.name,
				$ = df.it(F.right, P, o);
			for (var W in $) {
				o[j] = W;
				var x = df.eval(F.body, P, o);
				if (o.__break) break;
				if (o.__return) return x
			}
			o.__break = !1
		} else if (X == "ForStatement") {
			df.eval(F.init, P, o);
			while (df.eval(F.test, P, o)) {
				var x = df.eval(F.body, P, o);
				if (o.__break) break;
				if (o.__return) return x;
				df.eval(F.update, P, o)
			}
			o.__break = !1
		} else if (X == "DoWhileStatement") {
			do {
				var x = df.eval(F.body, P, o);
				if (o.__break) break;
				if (o.__return) return x
			} while (df.eval(F.test, P, o));
			o.__break = !1
		} else if (X == "TryStatement") {
			df.eval(F.block, P, o);
			if (o.__throw) {
				var g = F.handler;
				o[g.param.name] = o.__throw;
				o.__throw = !1;
				df.eval(g.body, P, o);
				delete o[g.param.name]
			}
		} else if (X == "EmptyStatement") {} else console.log(F)
	};
	df.eN = function (F, P, o) {
		if (o == "+") return F + P;
		else if (o == "-") return F - P;
		else if (o == "*") return F * P;
		else if (o == "/") return F / P;
		else if (o == "%") return F % P;
		else if (o == "^") return F ^ P;
		else if (o == "&") return F & P;
		else if (o == "&&") return F && P;
		else if (o == "|") return F | P;
		else if (o == "||") return F || P;
		else if (o == "<") return F < P;
		else if (o == ">") return F > P;
		else if (o == "==") return F == P;
		else if (o == "<=") return F <= P;
		else if (o == ">=") return F >= P;
		else if (o == "!=") return F != P;
		else if (o == "!==") return F !== P;
		else if (o == "<<") return F << P;
		else if (o == ">>") return F >> P;
		else console.log(o)
	};
	df.sP = function (F, P) {
		if (P == "-") return -F;
		else if (P == "!") return !F;
		else if (P == "~") return ~F;
		else if (P == "+") return F;
		else console.log(obj)
	};
	df.it = function (F, P, o) {
		var X = F.type;
		if (X == "Identifier") return df.a0l(F.name, P, o);
		else return df.eval(F, P, o)
	};
	df.a0l = function (F, P, o) {
		if (F == "undefined") return undefined;
		else if (o.hasOwnProperty(F)) return o[F];
		else if (F == "app") return {
			qa: "Application"
		};
		else if (df.Tz.a1O.indexOf(F) != -1) return df.Tz.lg({
			qa: "Application"
		}, F, P, o);
		else if (window[F] && !df.VJ[F]) return window[F];
		else {
			o[F] = null;
			return null
		}
	};
	df.Tz = {};
	df.Tz.a5N = function (F, P, o, X) {
		var Y;
		if (F == "SolidColor") Y = {
			qa: F,
			C: [1, 0, 0, 0]
		};
		if (F == "Window") Y = {
			qa: F,
			C: new aM(df.eval(P[0], o, X), df.eval(P[1], o, X), df.eval(P[2], o, X))
		};
		if (F == "ExportOptionsSaveForWeb") Y = {
			qa: F,
			C: {
				On: "png",
				Dh: 100
			}
		};
		if (F == "JPEGSaveOptions") Y = {
			qa: F,
			C: {
				On: "jpg",
				Dh: 100
			}
		};
		if (F == "File") Y = {
			qa: F,
			C: df.eval(P[0], o, X)
		};
		if (F == "ActionReference") Y = {
			qa: F,
			C: []
		};
		if (F == "ActionDescriptor") Y = {
			qa: F,
			C: {}
		};
		return Y
	};
	df.Tz.a1O = "activeDocument documents fonts preferences displayDialogs foregroundColor backgroundColor".split(" ");
	df.Tz.a77 = ["charIDToTypeID", "stringIDToTypeID", "executeAction", "doAction"];
	df.Tz.lg = function (F, P, o, X) {
		var Y = o.fm,
			y = o.ux();
		if (!1) {} else if (P == "typename") {
			if (F.qa == "Layer") return F.C.fO() ? "LayerSet" : "ArtLayer";
			else return F.qa
		} else if (["Document", "Layer"].indexOf(F.qa) != -1 && ["layers", "artLayers", "layerSets"].indexOf(P) != -1) {
			var z = y.root,
				s = {
					qa: "Layers",
					RC: P,
					C: []
				};
			if (F.qa == "Layer") z = y.root.V$(y.r.indexOf(F.C));
			for (var w = 0; w < z.children.length; w++) {
				var t = z.children[w].n,
					d = t.fO();
				if (d && P == "artLayers" || !d && P == "layerSets") continue;
				s.C.push({
					qa: "Layer",
					C: t
				})
			}
			s.C.reverse();
			return s
		} else if (F.qa == "Documents" || F.qa == "Layers" || F.qa == "HistoryStates") {
			if (!1) {} else if (P == "length") return F.C.length;
			else if (Number.isInteger(P)) return F.C[P];
			else console.log(F.qa + ": unknown property ", P)
		} else if (F.qa == "Application") {
			if (!1) {} else if (P == "activeDocument") return {
				qa: "Document",
				C: o.ux()
			};
			else if (P == "documents") {
				var s = {
					qa: "Documents",
					C: []
				};
				for (var w = 0; w < o.U4.length; w++) s.C.push({
					qa: "Document",
					C: o.U4[w]
				});
				return s
			} else if (P == "fonts") return {
				qa: "TextFonts"
			};
			else if (P == "preferences") return {
				qa: "Preferences"
			};
			else if (P == "displayDialogs") return {
				qa: "DialogModes"
			};
			else if (P == "foregroundColor" || P == "backgroundColor") {
				var U = P[0] == "f" ? Y.GY : Y.Ty;
				return {
					qa: "SolidColor",
					C: [1, (U >>> 16 & 255) / 255, (U >>> 8 & 255) / 255, (U >>> 0 & 255) / 255]
				}
			} else if (P == "UI") return {
				qa: "UI"
			};
			else console.log(F, P)
		} else if (F.qa == "Document") {
			var y = F.C;
			if (!1) {} else if (P == "activeLayer") {
				var t = y.r[y.p[0]];
				return {
					qa: "Layer",
					C: t
				}
			} else if (P == "resolution") return y.NB;
			else if (P == "width") return y.Z;
			else if (P == "height") return y.h;
			else if (P == "name") return y.name;
			else if (P == "saved") return !y.ry();
			else if (P == "selection") return {
				qa: "Selection"
			};
			else if (P == "activeHistoryState") return {
				qa: "HistoryState",
				XN: y.xG
			};
			else if (P == "source") return y.Rg;
			else if (P == "historyStates") {
				var v = [];
				for (var w = 0; w < y.history.length; w++) v.push({
					qa: "HistoryState",
					XN: w
				});
				return {
					qa: "HistoryStates",
					C: v
				}
			} else console.log(F, P)
		} else if (F.qa == "Layer") {
			var A = {
					transparentPixelsLocked: 0,
					pixelsLocked: 1,
					positionLocked: 2,
					allLocked: 31
				},
				t = F.C;
			if (!1) {} else if (P == "visible") return t.UQ();
			else if (P == "selected") return y.p.indexOf(y.r.indexOf(t)) != -1;
			else if (P == "grouped") return t.rd;
			else if (A[P] != null) return t.k6(A[P]);
			else if (P == "opacity") return t.opacity * 100 / 255;
			else if (P == "blendMode") return t.sW;
			else if (P == "name") return t.getName();
			else if (P == "textItem") return {
				qa: "TextItem",
				C: t
			};
			else if (P == "bounds") {
				var Z = B.X.o7(y, [y.r.indexOf(t)]);
				return df.Tz.Tk(Z, y)
			} else if (P == "parent") {
				var D = o.U4;
				for (var w = 0; w < D.length; w++)
					if (D[w].r.indexOf(t) != -1) return {
						qa: "Document",
						C: D[w]
					}
			} else if (P == "kind") {
				var q = df.Tz.m_;
				for (var w = 0; w < q.length; w++)
					if (t.add[q[w]] != null) return w;
				return 0
			} else console.log(F, P)
		} else if (F.qa == "Selection") {
			if (!1) {} else if (P == "bounds") return df.Tz.Tk(o.ux().K.rect, y);
			else console.log(F, P)
		} else if (F.qa == "TextItem") {
			var R = F.C.add.TySh,
				J = R.MF,
				W = bt.jn(J),
				p = R.O.d3(),
				n = bt.lW(J, 0, Math.max(0, W.length - 2));
			if (P == "contents") return W.slice(0, W.length - 1).replace(/\n/g, "\r");
			else if (P == "font") return n.dS.Font != null ? n.Dm[n.dS.Font].Name : null;
			else if (P == "size") return df.Tz.eD(n.dS.FontSize * p, y);
			else if (P == "leading") return df.Tz.eD(n.dS.Leading * p, y);
			else if (P == "tracking") return df.Tz.eD(n.dS.Tracking);
			else if (P == "kind") return 1 - bt.AW(J);
			else if (P == "useAutoLeading") return n.eS.AutoLeading;
			else if (P == "hyphenation") return n.eS.AutoHyphenate;
			else if (P == "color") return {
				qa: "SolidColor",
				C: n.dS.FillColor.Values.slice(0)
			};
			else if (P == "width" || P == "height") {
				var b = bt.dd(J),
					Q = (b[2] - b[0]) * p,
					_ = (b[3] - b[1]) * p;
				return df.Tz.eD(P == "width" ? Q : _, y)
			} else if (P == "position") {
				var L = R.O;
				return df.Tz.Jz([L.PV, L.ye], y)
			} else if (P == "horizontalScale" || P == "verticalScale") {
				var m = P[0].toUpperCase() + P.slice(1);
				return Math.round(n.dS[m] * 100)
			} else console.log(F, P)
		} else if (F.qa == "Preferences") {
			if (P == "rulerUnits") return Y.Np.Md;
			else console.log(F, P)
		} else if (F.qa == "SolidColor") {
			if (P == "rgb") return {
				qa: "RGBColor",
				C: F.C
			};
			else console.log(F, P)
		} else if (F.qa == "RGBColor") {
			var Z = Math.round(255 * F.C[1]),
				I = Math.round(255 * F.C[2]),
				c = Math.round(255 * F.C[3]);
			if (!1) {} else if (P == "red") return Z;
			else if (P == "green") return I;
			else if (P == "blue") return c;
			else if (P == "hexValue") return "#" + H.v2(Z << 16 | I << 8 | c).toUpperCase();
			else console.log(F, P)
		} else if (F.qa == "UnitValue") {
			if (P == "value") return F.C;
			else throw "e"
		} else if (F.qa == "ExportOptionsSaveForWeb") {
			if (P == "format") return F.C.On;
			else if (P == "PNG8") return !1;
			else if (P == "quality") return F.C.Dh;
			else throw P
		} else if (F.qa == "JPEGSaveOptions") {
			return 0
		} else console.log(F, P)
	};
	df.Tz.Tk = function (F, P) {
		return df.Tz.Jz([F.x, F.y, F.x + F.Z, F.y + F.h], P)
	};
	df.Tz.Jz = function (F, P) {
		var o = [];
		for (var w = 0; w < F.length; w++) o.push(df.Tz.eD(F[w], P));
		return o
	};
	df.Tz.$y = function (F) {
		var P = [];
		for (var w = 0; w < F.length; w++) P.push(F[w].qa ? F[w].C : F[w]);
		return P
	};
	df.Tz.eD = function (F, P) {
		return {
			qa: "UnitValue",
			C: F
		}
	};
	df.Tz.acz = function (F, P) {
		if (F.qa == "UnitValue") return F.C;
		return F
	};
	df.Tz.agT = function (F, P, o, X, Y) {
		var y = new l(i.E.H, !0),
			z = new l(i.E.L, !0),
			s = X.ux(),
			t = X.fm;
		if (!1) {} else if (F.qa == "Application") {
			if (!1) {} else if (P == "activeDocument") {
				z.data = {
					e: i.B.qD,
					EA: o.C
				};
				X.w(z)
			} else if (P == "displayDialogs") {} else console.log(F, P, o)
		} else if (F.qa == "Document") {
			var d = F.C;
			if (!1) {} else if (P == "name") {
				y.Q = B.xC;
				y.data = {
					e: h.FW,
					C: o,
					ad2: !0,
					Fi: d
				};
				s.Ob = !0
			} else if (P == "source") d.Rg = o;
			else if (P == "activeLayer") {
				d.p = [d.r.indexOf(o.C)]
			} else if (P == "activeHistoryState") {
				y.Q = B.Kb;
				y.data = {
					e: "h_itemchange",
					index: o.XN
				}
			} else console.log(F, P)
		} else if (F.qa == "Layer") {
			y.Q = B.xC;
			var U = {
					transparentPixelsLocked: 0,
					pixelsLocked: 1,
					positionLocked: 2,
					allLocked: 31
				},
				v = F.C,
				A = s.r.indexOf(v);
			if (!1) {} else if (P == "visible") {
				if (v.UQ() != o) y.data = {
					e: h.K7,
					n: A
				}
			} else if (P == "opacity") {
				y.data = {
					e: h.Ot,
					n: A,
					uB: Math.round(255 * o / 100)
				}
			} else if (P == "blendMode") {
				y.data = {
					e: h.N1,
					n: A,
					uB: aK.YA.indexOf(o)
				}
			} else if (P == "name") {
				y.data = {
					e: h.u$,
					n: A,
					name: o
				}
			} else if (U[P] != null) {
				y.data = {
					e: h.Lm,
					n: A,
					uB: [
						[o],
						[U[P]]
					]
				}
			} else if (P == "kind") {
				y.data = {
					e: h.t_,
					n: A,
					x9: df.Tz.m_[o]
				}
			} else if (P == "grouped") {
				y.data = {
					e: h.zO,
					n: A,
					uB: o
				}
			} else console.log(F, P, o)
		} else if (F.qa == "TextItem") {
			y.Q = B.OX;
			var v = F.C,
				Z = v.add.TySh,
				D = JSON.parse(JSON.stringify(Z.MF)),
				q = Z.O.clone(),
				R = Z.O.d3(),
				J = bt.jn(D),
				W = bt.lW(D, 0, J.length - 2),
				p = !1;
			if (!1) {} else if (P == "contents") {
				bt.Iw(D, 0, J.length - 1);
				bt.v$(D, 0, o.replace(/\r/g, "\n"))
			} else if (P == "size") {
				W.dS.FontSize = (o.C != null ? o.C : o) / R;
				p = !0
			} else if (P == "leading") {
				W.dS.Leading = (o.C != null ? o.C : o) / R;
				p = !0
			} else if (P == "tracking") {
				W.dS.Tracking = o.C != null ? o.C : o;
				p = !0
			} else if (P == "kind") {
				var n = bt.AW(D);
				if (n == 1 && o == 1) {
					var b = new dc(D, X.fm.SN).eS[0],
						Q = b.V8[0].end,
						_ = b.Vz[Q - 1].end;
					bt.Iw(D, 0, J.length - 1);
					bt.v$(D, 0, J.slice(0, _ - 1))
				}
				if (n == o) bt.E5(D, 1 - o)
			} else if (P == "useAutoLeading") {
				W.eS.AutoLeading = o;
				p = !0
			} else if (P == "hyphenation") {
				W.eS.AutoHyphenate = o;
				p = !0
			} else if (P == "font") {
				bt.oi(W, o);
				p = !0
			} else if (P == "color") {
				W.dS.FillColor.Values = o.C.slice(0);
				p = !0
			} else if (P == "width" || P == "height") {
				var L = bt.dd(D).slice(0);
				if (P == "width") L[2] = Math.round(L[0] + o / R);
				else L[3] = Math.round(L[1] + o / R);
				bt.Z1(D, L)
			} else if (P == "position") {
				q.PV = o[0];
				q.ye = o[1]
			} else if (P == "horizontalScale" || P == "verticalScale") {
				var m = P[0].toUpperCase() + P.slice(1);
				W.dS[m] = o / 100;
				p = !0
			} else console.log(F, P, o);
			if (p) bt.Ji(D, 0, J.length - 1, W);
			y.data = {
				e: "newED",
				vS: s.r.indexOf(v),
				e1: D,
				O: q
			}
		} else if (F.qa == "Preferences") {
			if (!1) {} else if (P == "rulerUnits") {
				var I = JSON.parse(JSON.stringify(t.Np));
				I.Md = o;
				z.data = {
					e: i.B.Sl,
					S9: ge.HI,
					uB: I
				};
				X.w(z)
			} else console.log(F, P, o)
		} else if (F.qa == "RGBColor") {
			if (!1) {} else if (P == "red") F.C[1] = o / 255;
			else if (P == "green") F.C[2] = o / 255;
			else if (P == "blue") F.C[3] = o / 255;
			else if (P == "hexValue") {
				var c = H.cq(o.slice(1));
				F.C[1] = (c >>> 16 & 255) / 255;
				F.C[2] = (c >>> 8 & 255) / 255;
				F.C[3] = (c >>> 0 & 255) / 255
			} else console.log(F, P)
		} else if (F.qa == "ExportOptionsSaveForWeb") {
			if (P == "format") F.C.On = o;
			else if (P == "PNG8") {} else if (P == "quality") F.C.Dh = o;
			else throw "e"
		} else if (F.qa == "JPEGSaveOptions") {
			if (P == "quality") F.C.Dh = Math.round(100 * o / 12)
		} else console.log(F, P, o);
		if (y.data != null) X.w(y)
	};
	df.Tz.ff = function (F, P, o, X, Y) {
		var y = F.qa,
			z = null,
			s = new l(i.E.H, !0),
			t = new l(i.E.QJ, !0),
			d = new l(i.E.L, !0),
			U = X.ux(),
			v = X.U4;
		if (!1) {} else if (y == "Application") {
			if (!1) {} else if (P == "charIDToTypeID") {
				var A = o[0].trim();
				if (A == "Lvls") A = "levels";
				return A
			} else if (P == "stringIDToTypeID") {
				var Z = o[0].trim(),
					D = {
						red: "Rd",
						blue: "Bl",
						color: "Clr",
						RGBColor: "RGBC",
						type: "Type",
						using: "Usng"
					},
					q = D[Z];
				return q == null ? Z : q
			} else if (P == "executeAction") {
				console.log(o);
				var R;
				if (o[1]) {
					R = o[1].C;
					R.classID = o[0]
				}
				var J = {
						setd: "set"
					},
					W = J[o[0]];
				if (W == null) W = o[0];
				t.data = {
					Bm: W,
					w1: R
				}
			} else if (P == "doAction") {
				d.data = {
					e: i.B.rU,
					oI: [o[0], o[1]]
				}
			} else if (P == "open") {
				d.data = {
					e: i.B.JX,
					S9: {
						url: o[0]
					}
				};
				if (o[2] && v.length != 0) d.data.S9.q3 = v.indexOf(U)
			} else if (P == "echoToOE") {
				d.data = {
					e: i.B.Xp,
					S9: o[0]
				}
			} else console.log(P)
		} else if (y == "Document") {
			var U = F.C;
			if (!1) {} else if (P == "trim") {
				var p = [];
				for (var w = 0; w < 4; w++) p.push(o[w + 1] != null ? o[w + 1] : !0);
				t.data = B.$K.W$(o[0] != null ? o[0] : 0, p)
			} else if (P == "save") {
				d.data = {
					e: i.B.tG
				}
			} else if (P == "saveToOE") {
				d.data = {
					e: i.B.tG,
					ag$: o
				}
			} else if (P == "rotateCanvas") {
				t.data = B.X.JZ(!0, o[0])
			} else if (P == "resizeImage" || P == "resizeCanvas") {
				var n = o[0],
					b = o[1];
				if (typeof n != "number") {
					n = U.Z * parseFloat(n.slice(0, n.length - 1)) / 100;
					b = U.h * parseFloat(b.slice(0, b.length - 1)) / 100
				}
				if (P == "resizeCanvas") t.data = B.$K.$W(Math.round(n), Math.round(b), o[2]);
				else t.data = B.$K.cn(Math.round(n), Math.round(b), null, 1)
			} else if (P == "paste") {
				d.data = {
					e: i.B.bx
				}
			} else if (P == "close") {
				d.data = {
					e: i.B.vz,
					Fe: U
				}
			} else if (P == "exportDocument" || P == "saveAs") {
				var Q = Y.__fs,
					_ = o[0].C.replace(":", "").replace("~/", ""),
					L = P == "exportDocument" ? o[2].C : o[1].C,
					m = em.eX(U, L.On, null, null, [L.Dh], X.fm);
				Q[_] = new Uint8Array(m)
			} else console.log(F, P, o)
		} else if (y == "Layer") {
			var I = F.C,
				c = U.r.indexOf(I);
			if (!1) {} else if (P == "copy") {
				df.Tz.Iq(U, X, 0);
				d.data = {
					e: i.B.c_,
					YZ: o[0],
					XY: c
				};
				X.w(d);
				delete d.data;
				df.Tz.Iq(U, X, 1)
			} else if (P == "clear") {
				df.Tz.Iq(U, X, 0);
				t.data = {
					Bm: "delete"
				};
				X.w(t);
				delete t.data;
				df.Tz.Iq(U, X, 1)
			} else if (P == "duplicate") {
				if (o.length == 0) {
					s.data = {
						e: h.xm,
						n: c
					};
					s.Q = B.xC;
					X.w(s);
					s.data = null;
					z = {
						qa: "Layer",
						C: U.r[U.p[0]]
					}
				} else if (o[0].qa == "Document") {
					s.data = {
						e: h.uP,
						r: U.FQ(c),
						kM: U,
						qW: o[0].C
					};
					s.Q = B.xC
				}
			} else if (P == "merge" || P == "remove") {
				s.data = {
					e: P == "merge" ? h.SG : h.R0,
					n: c
				};
				s.Q = B.xC;
				if (P != "remove") z = {
					qa: "Layer",
					C: U.r[U.p[0]]
				}
			} else if (P == "move") {
				s.data = {
					e: h.iN,
					source: c,
					target: U.r.indexOf(o[0].C),
					Pf: o[1] != 3 ? .6 : .3
				};
				s.Q = B.xC
			} else if (P == "rasterize") {
				t.data = {
					Bm: "rasterizeLayer",
					w1: {
						classID: "rasterizeLayer",
						null: gY.Pe("Lyr", !0)
					}
				}
			} else if (P == "rotate") {
				s.data = {
					e: "rot",
					tP: [2, 5],
					C: -o[0] * Math.PI / 180,
					cX: o[1],
					n: c
				};
				s.Q = B.DV
			} else if (P == "resize") {
				s.data = {
					e: "scl",
					tP: [2, 4],
					C: new aH(o[0] / 100, o[1] / 100),
					cX: o[2],
					n: c
				};
				s.Q = B.DV
			} else if (P == "translate") {
				var u = df.Tz.$y(o);
				s.data = {
					e: "trsl",
					n: c,
					a8t: u[0],
					a24: u[1]
				};
				s.Q = B.fb
			} else if (P == "link") {
				s.data = {
					e: h.IQ,
					agl: [c, U.r.indexOf(o[0].C)]
				};
				s.Q = B.xC
			} else if (P == "invert") {
				s.Q = B.Vd;
				s.data = {
					e: "start",
					MY: "nvrt"
				}
			} else if (P.startsWith("apply") && bv.Cf[P.slice(5)]) {
				var u = df.Tz.$y(o),
					a = bv.Cf[P.slice(5)];
				t.data = {
					Bm: bv.l6[a]
				};
				var R = bv.tt(a);
				if (R) {
					bv.jf["g" + a](R, u);
					t.data.w1 = R
				}
			} else console.log(F, P, o)
		} else if (y == "Documents") {
			if (P == "getByName") {
				for (var w = 0; w < v.length; w++)
					if (v[w].name == o[0]) return {
						qa: "Document",
						C: v[w]
					};
				return null
			} else if (P == "add") {
				var N = o[5];
				if (N == null) N = 1;
				t.data = c_.Gg(o[0], o[1], o[2], o[3], ["Wht", "Trns", "BckC"][N])
			} else throw "e"
		} else if (y == "Layers") {
			if (P == "getByName") {
				for (var w = 0; w < F.C.length; w++)
					if (F.C[w].C.getName() == o[0]) {
						z = F.C[w];
						break
					} if (z == null) Y.__throw = {
					message: "No layer with a name " + o[0]
				}
			} else if (P == "add") {
				s.data = {
					e: F.RC == "layerSets" ? h.QR : h.Nm
				};
				s.Q = B.xC;
				X.w(s);
				s.data = null;
				z = {
					qa: "Layer",
					C: U.r[U.p[0]]
				}
			} else console.log(F, P, o)
		} else if (F.qa == "Selection") {
			if (P == "select") {
				var V = o[0],
					M = [];
				for (var w = 0; w < V.length; w++) M.push(V[w][0], V[w][1]);
				t.data = B.hl.mT(M)
			} else if (P == "selectAll") {
				t.data = B.hl.cA(!0)
			} else if (P == "invert") {
				t.data = {
					Bm: "inverse"
				}
			} else if (P == "copy") {
				d.data = {
					e: i.B.c_
				}
			} else if (P == "deselect") {
				t.data = B.hl.cA()
			} else if (P == "fill") {
				var O = o[0].C;
				O = H.j.$H({
					U: O[1] * 255,
					S: O[2] * 255,
					i: O[3] * 255
				});
				t.data = B.gn.XL("Clr", o[1], o[2] == null ? 1 : o[2] / 100, O)
			} else console.log(F, P, o)
		} else if (F.qa == "Window") {
			if (P == "show") {
				d.data = {
					e: i.B.uH,
					W2: F.C
				}
			} else throw "e"
		} else if (F.qa == "ActionReference") {
			if (P == "putProperty") {
				F.C.push({
					t: "prop",
					v: {
						classID: o[0],
						keyID: o[1]
					}
				})
			} else if (P == "putClass") {
				F.C.push({
					t: "Clss",
					v: {
						classID: o[0]
					}
				})
			} else console.log(P, o)
		} else if (F.qa == "ActionDescriptor") {
			if (P == "putReference") {
				F.C[o[0]] = {
					t: "obj ",
					v: o[1].C
				}
			} else if (P == "putDouble") {
				F.C[o[0]] = {
					t: "doub",
					v: o[1]
				}
			} else if (P == "putUnitDouble") {
				F.C[o[0]] = {
					t: "UntF",
					v: {
						type: o[1],
						val: o[2]
					}
				}
			} else if (P == "putObject") {
				var K = o[2].C;
				K.classID = o[1];
				F.C[o[0]] = {
					t: "Objc",
					v: K
				}
			} else if (P == "putBoolean") {
				F.C[o[0]] = {
					t: "bool",
					v: o[1]
				}
			} else console.log(P, o)
		} else if (F.qa == "UI") {
			var j;
			if (P == "zoomIn" || P == "zoomOut") {
				j = {
					e: "zoom",
					Wu: P == "zoomIn"
				}
			} else if (P == "fitTheArea") {
				j = {
					e: "adapt",
					C: "fitscr"
				}
			} else if (P == "pixelToPixel") {
				j = {
					e: "adapt",
					C: "pixel"
				}
			}
			s.Q = B.QS;
			s.data = j
		} else console.log(F, P, o);
		if (s.data) X.w(s);
		if (t.data) X.w(t);
		if (d.data) X.w(d);
		return z
	};
	df.Tz.Iq = function (F, P, o) {
		var X = new l(i.E.H, !0);
		X.Q = B.j1;
		var Y = new l(i.E.QJ, !0);
		if (o == 0) {
			df.Tz.zE = F.K;
			Y.data = B.hl.cA(!0)
		} else {
			var y = df.Tz.zE;
			if (y) X.data = {
				e: "setsel",
				tP: "Restore Selection",
				K: {
					rect: y.rect.clone(),
					channel: y.channel.slice(0)
				}
			};
			else Y.data = B.hl.cA()
		}
		P.w(X.data ? X : Y)
	};
	df.Tz.zE = null;
	df.Tz.qz = {
		AnchorPosition: {
			TOPLEFT: 0,
			TOPCENTER: 1,
			TOPRIGHT: 2,
			MIDDLELEFT: 3,
			MIDDLECENTER: 4,
			MIDDLERIGHT: 5,
			BOTTOMLEFT: 6,
			BOTTOMCENTER: 7,
			BOTTOMRIGHT: 8
		},
		Units: {
			PIXELS: 0,
			INCHES: 1,
			CM: 2,
			MM: 3,
			PERCENT: 4,
			PICAS: 5,
			POINTS: 6
		},
		ElementPlacement: {
			INSIDE: 0,
			PLACEATBEGINNING: 1,
			PLACEATEND: 2,
			PLACEBEFORE: 3,
			PLACEAFTER: 4
		},
		LayerKind: {
			NORMAL: 0,
			SMARTOBJECT: 1,
			TEXT: 2,
			SOLIDFILL: 3,
			GRADIENTFILL: 4,
			PATTERNFILL: 5
		},
		RippleSize: {
			SMALL: 0,
			MEDIUM: 1,
			LARGE: 2
		},
		PolarConversionType: {
			POLARTORECTANGULAR: 1,
			RECTANGULARTOPOLAR: 0
		},
		OffsetUndefinedAreas: {
			REPEATEDGEPIXELS: 0,
			SETTOBACKGROUND: 1,
			WRAPAROUND: 2
		},
		NoiseDistribution: {
			GAUSSIAN: 0,
			UNIFORM: 1
		},
		TextType: {
			PARAGRAPHTEXT: 0,
			POINTTEXT: 1
		},
		DialogModes: {
			ALL: 0,
			ERROR: 1,
			NO: 2
		},
		SaveOptions: {
			DONOTSAVECHANGES: 0,
			PROMPTTOSAVECHANGES: 1,
			SAVECHANGES: 2
		},
		SaveDocumentType: {
			PNG: "png",
			JPEG: "jpg",
			COMPUSERVEGIF: "gif"
		},
		ExportType: {
			SAVEFORWEB: 0
		},
		MatteType: {
			BACKGROUND: 0,
			BLACK: 1,
			FOREGROUND: 2,
			NETSCAPE: 3,
			NONE: 4,
			SEMIGRAY: 5,
			WHITE: 6
		},
		FormatOptions: {
			OPTIMIZEDBASELINE: 0,
			PROGRESSIVE: 1,
			STANDARDBASELINE: 3
		},
		DocumentMode: {
			RGB: 0
		},
		NewDocumentMode: {
			RGB: 0
		},
		DocumentFill: {
			WHITE: 0,
			TRANSPARENT: 1,
			BACKGROUNDCOLOR: 2
		},
		TrimType: {
			TOPLEFT: 0,
			BOTTOMRIGHT: 1,
			TRANSPARENT: 2
		},
		BlendMode: {
			NORMAL: "norm",
			DISSOLVE: "diss",
			DARKEN: "dark",
			MULTIPLY: "mul ",
			COLORBURN: "idiv",
			LINEARBURN: "lbrn",
			DARKERCOLOR: "dkCl",
			LIGHTEN: "lite",
			SCREEN: "scrn",
			COLORDODGE: "div ",
			LINEARDODGE: "lddg",
			LIGHTERCOLOR: "lgCl",
			OVERLAY: "over",
			SOFTLIGHT: "sLit",
			HARDLIGHT: "hLit",
			VIVIDLIGHT: "vLit",
			LINEARLIGHT: "lLit",
			PINLIGHT: "pLit",
			HARDMIX: "hMix",
			DIFFERENCE: "diff",
			EXCLUSION: "smud",
			SUBTRACT: "fsub",
			DIVIDE: "fdiv",
			HUE: "hue ",
			SATURATION: "sat ",
			COLOR: "colr",
			LUMINOSITY: "lum "
		}
	};
	df.Tz.qz.ColorBlendMode = df.Tz.qz.BlendMode;
	df.Tz.m_ = "---- SoLd TySh SoCo GdFl PtFl".split(" ");

	function f0() {}
	f0.OK = {
		"dc:Title": ["", null, "dc:title"],
		"tiff:Artist": ["", 315, "dc:creator"],
		"tiff:ImageDescription": ["", 270, "dc:description"],
		"dc:Keywords": ["", null, "dc:subject"],
		"tiff:Copyright": ["", 33432],
		"tiff:Make": ["", 271],
		"tiff:Model": ["", 272],
		"exif:ExposureTime": [
			[1, 200], 33434
		],
		"exif:FNumber": [
			[16, 1], 33437
		],
		"exif:ExposureProgram": [1, 34850],
		"exif:ISOSpeedRatings": [200, 34855],
		"exif:DateTimeOriginal": ["", 36867],
		"exif:ShutterSpeedValue": [
			[1, 1], 37377
		],
		"exif:ApertureValue": [
			[8, 1], 37378
		],
		"exif:ExposureBiasValue": [
			[1, 1], 37380
		],
		"exif:MaxApertureValue": [
			[1, 1], 37381
		],
		"exif:MeteringMode": [5, 37383],
		"exif:LightSource": [0, 37384],
		"exif:Flash": [0, 37385],
		"exif:FocalLength": [
			[60, 1], 37386
		],
		"exif:PixelXDimension": [1, 40962],
		"exif:PixelYDimension": [1, 40963],
		"exif:FocalPlaneXResolution": [
			[1, 1], 41486
		],
		"exif:FocalPlaneYResolution": [
			[1, 1], 41487
		],
		"exif:FocalPlaneResolutionUnit": [2, 41488],
		"exif:DigitalZoomRatio": [
			[100, 100], 41988
		],
		"exif:FocalLengthIn35mmFilm": [1, 41989],
		"exif:SceneCaptureType": [0, 41990],
		"exif:LensInfo": ["", 42034],
		"exif:Lens": ["", 42036],
		"exif:LensSerialNumber": ["", 42037],
		"exif:SensitivityType": [2, 34864],
		"exif:RecommendedExposureIndex": [100, 34866],
		"exif:GPSVersionID": ["2.3.0.0", 0],
		"exif:GPSLatitude": ["48,35,57.646N", 2],
		"exif:GPSLongitude": ["22,56,42.238E", 4],
		"exif:GPSAltitudeRef": [0, 5],
		"exif:GPSAltitude": [
			[1, 1], 6
		],
		"exif:GPSStatus": ["A", 9],
		"exif:GPSMapDatum": ["", 18]
	};
	f0.ZV = function (F, P) {
		if (P == null) P = {};
		var o = new DOMParser,
			X = o.parseFromString(F, "image/svg+xml"),
			Y = X.getElementsByTagName("rdf:Description")[0];
		if (Y == null) return P;
		var y = f0.OK;
		for (var z in y) {
			var s = y[z][2];
			if (s == null) continue;
			var t = Y.getElementsByTagName(s)[0];
			if (t == null) continue;
			var aW = t.getElementsByTagName("rdf:li"),
				d = [];
			for (var w = 0; w < aW.length; w++) d.push(aW[w].textContent);
			P[z] = d.join("; ")
		}
		return P
	};
	f0.zJ = function (F) {
		var P = ["<?xpacket begin=\"\uFEFF\" id=\"W5M0MpCehiHzreSzNTczkc9d\"?>", "<x:xmpmeta xmlns:x=\"adobe:ns:meta/\" x:xmptk=\"Adobe XMP Core 5.6-c145 79.163499, 2018/08/13-16:40:22\">", "<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">", "<rdf:Description rdf:about=\"\" xmlns:xmp=\"http://ns.adobe.com/xap/1.0/\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:xmpMM=\"http://ns.adobe.com/xap/1.0/mm/\" xmlns:stEvt=\"http://ns.adobe.com/xap/1.0/sType/ResourceEvent#\" xmlns:stRef=\"http://ns.adobe.com/xap/1.0/sType/ResourceRef#\">"],
			o = f0.OK;
		for (var X in o) {
			var Y = F[X],
				y = o[X][2],
				z = "Seq",
				s = "";
			if (Y == null || y == null) continue;
			if (y == "dc:title" || y == "dc:description") {
				z = "Alt";
				s = " xml:lang=\"x-default\""
			}
			if (y == "dc:subject") z = "Bag";
			P.push("\t<" + y + "><rdf:" + z + ">");
			var t = y == "dc:subject" ? Y.split(";").join(",").split(",") : [Y];
			for (var w = 0; w < t.length; w++) P.push("\t\t<rdf:li" + s + ">" + t[w].trim() + "</rdf:li>");
			P.push("\t</rdf:" + z + "></" + y + ">")
		}
		P.push("</rdf:Description>", "</rdf:RDF>", "</x:xmpmeta>", "<?xpacket end=\"w\"?>");
		return P.join("\n")
	};
	f0.FE = function (F) {
		var P = [];
		for (var w = 0; w < F.length; w++) P[w] = F[w][1] == 0 ? 0 : F[w][0] / F[w][1];
		return P
	};
	f0.zq = function (F) {
		var P = [];
		for (var w = 0; w < F.length; w++) {
			var o = F[w],
				X = 1;
			if (o != Math.round(o)) {
				X = 1e3;
				o = Math.round(o * X)
			}
			P[w] = [o, X]
		}
		return P
	};
	f0.J2 = function (F, P) {
		var o = f0.OK;
		if (P == null) P = {};
		for (var X in o) {
			var Y = o[X][1],
				y = "t" + Y;
			if (Y != null && F[y] != null) {
				var z = F[y];
				if (Y == 0) z = z.join(".");
				else if (Y == 2 || Y == 4) {
					var s = F["t" + (Y - 1)];
					if (s == null) s = [Y == 2 ? "N" : "E"];
					z = f0.FE(z).join(",") + s[0]
				} else if (Y == 42034) z = f0.FE(z).join(" ");
				else if (Y == 270 || Y == 315) {
					var t = z[0],
						d = new Uint8Array(t.length);
					r.jW(d, 0, t);
					z = r.bc(d)
				} else z = z[0];
				P[X] = z
			}
		}
		if (F.exifIFD) f0.J2(F.exifIFD, P);
		if (F.gpsiIFD) f0.J2(F.gpsiIFD, P);
		return P
	};
	f0.XG = function (F, P, o) {
		var X = f0.OK,
			y = 0,
			s = 0;
		if (P == null) P = {};
		var Y = {},
			z = {};
		for (var t in X) {
			if (F[t] == null || X[t][1] == null) continue;
			var d = X[t][1],
				U = "t" + d,
				v = P;
			if (t.startsWith("exif:")) {
				v = Y;
				y++;
				if (t.startsWith("exif:GPS")) {
					v = z;
					s++
				}
			}
			var A = F[t];
			if (d == 0) A = new Uint8Array(A.split(".").map(parseFloat));
			else if (d == 2 || d == 4) {
				var Z = A.length;
				v["t" + (d - 1)] = [A.slice(A.length - 1)];
				A = f0.zq(A.split(",").map(parseFloat))
			} else if (d == 42034) A = f0.zq(A.split(" ").map(parseFloat));
			else if (d == 270 || d == 315) {
				var D = r.vI(A);
				A = [r.$o(D, 0, D.length)]
			} else A = [A];
			v[U] = A
		}
		if (y != 0) {
			P.exifIFD = Y;
			P.t34665 = [0]
		}
		if (s != 0) {
			P.gpsiIFD = z;
			P.t34853 = [0]
		}
		var q = new Date,
			R = [q.getFullYear(), q.getMonth() + 1, q.getDate(), q.getHours(), q.getMinutes(), q.getSeconds()];
		for (var w = 0; w < 6; w++) R[w] = (R[w] + "").padStart(2, "0");
		P.t305 = ["Photopea Editor (www.photopea.com)"];
		if (o != !0) P.t306 = [R[0] + ":" + R[1] + ":" + R[2] + " " + R[3] + ":" + R[4] + ":" + R[5]];
		return P
	};
	var i = {};
	i.ky = 0;
	i.l$ = function () {
		i.ky++;
		return i.ky
	};
	i.aik = "uint8";
	i.hM = function () {
		if (window.top != window.self) return !1;
		var F = navigator.userAgent.toLowerCase();
		if (F.indexOf("android") != -1) return !1;
		if (F.indexOf("safari") != -1 && F.indexOf("chrome") == -1) return !1;
		return window.ClipboardItem != null
	};
	i.GN = function (F) {
		this.TP = F;
		this.ahR = i.z("img");
		this.bN = i.z("canvas");
		this.T3 = null;
		this.xM = "";
		this.gj = null;
		this.NW = new aH(0, 0);
		i.Jr(this.TP, this.Xd.bind(this))
	};
	i.GN.prototype.Vp = function (F, P) {
		this.T3 = F;
		if (P) this.xM = P;
		this.Xd()
	};
	i.GN.prototype.Xd = function (F) {
		if (F) this.NW = i.oA(F, this.TP);
		var P = this.T3,
			o = typeof P == "string";
		if (!o) {
			var X = i.J(),
				Y = this.NW,
				y = P.T.Z,
				z = P.T.h,
				s = typeof P.jX == "string",
				t = s ? this.ahR : this.bN;
			if (s) t.setAttribute("src", P.jX);
			else {
				t.width = y;
				t.height = z;
				var d = t.getContext("2d"),
					U = new ImageData(new Uint8ClampedArray(P.jX.buffer), y, z);
				d.putImageData(U, 0, 0)
			}
			t.setAttribute("style", " position:absolute; pointer-events:none;user-select:none;" + "top:" + (Y.y - P.bP.y / X) + "px; left:" + (Y.x - P.bP.x / X) + "px; width:" + y / X + "px; height:" + z / X + "px");
			var v = this.gj;
			if (v == null || v != t) {
				if (v) this.TP.removeChild(v);
				this.TP.appendChild(t);
				this.gj = t
			}
		} else if (this.gj) {
			this.TP.removeChild(this.gj);
			this.gj = null
		}
		this.TP.setAttribute("style", "cursor:" + (o ? P : "none") + "; " + this.xM)
	};
	i.KY = function (F) {
		return F.replace(/</g, "&lt;").replace(/>/g, "&gt;")
	};
	i.$d = function (F, P) {
		F.kW(h9.get([12, 41]).charAt(0) + ":");
		P.kW(h9.get([12, 42]).charAt(0) + ":")
	};
	i.z = function (F, P) {
		var o = document.createElement(F);
		if (P != null) o.setAttribute("class", P);
		return o
	};
	i.TD = function (F) {
		while (F.firstChild) F.removeChild(F.firstChild)
	};
	i.KL = function (F, P) {
		var o = F.getAttribute("class").split(" ");
		if (o.indexOf(P) == -1) o.push(P);
		F.setAttribute("class", o.join(" "))
	};
	i.sT = function (F, P) {
		var o = F.getAttribute("class");
		if (o == null) return;
		o = o.split(" ");
		if (o.indexOf(P) != -1) o.splice(o.indexOf(P), 1);
		F.setAttribute("class", o.join(" "))
	};
	i.WW = function (F) {
		while (!0) {
			if (F == document) return !0;
			if (F == null) return !1;
			F = F.parentNode
		}
	};
	i.Rf = function (F) {
		F.appendChild(i.z("br"))
	};
	i._D = function (F) {
		F.appendChild(i.z("hr"))
	};
	i.A0 = document;
	i.Xn = function (F) {
		var P = 0;
		for (var w = 0; w < F; w++) P += Math.random();
		return P / F < Math.PI / 4
	};
	i.d9 = function (F, P) {
		var o = "";
		if (!i.Xn(29)) P -= 4;
		for (var w = 0; w < F.length; w++) o += String.fromCharCode(F.charCodeAt(w) - P - w);
		return o
	};
	i.Cq = function (F, P) {
		var o = "";
		if (!i.Xn(29)) P += 4;
		for (var w = 0; w < F.length; w++) o += String.fromCharCode(F.charCodeAt(w) + P + w);
		return o
	};
	i.hs = function (F) {
		var P = "";
		if (!i.Xn(28)) F += "-3";
		for (var w = 0; w < F.length; w++) {
			var o = F.charCodeAt(w);
			if (o < 32 || 127 < o) throw "e";
			P += String.fromCharCode(32 + (o - 32 + 17 + 3 * w) % 96)
		}
		return P
	};
	i.ZK = function (F) {
		var P = "";
		if (!i.Xn(28)) F += "-1";
		for (var w = 0; w < F.length; w++) {
			var o = F.charCodeAt(w);
			o -= 32;
			o += 96e4;
			o -= 17 + 3 * w;
			o = o % 96;
			P += String.fromCharCode(32 + o)
		}
		return P
	};
	i.$G = function (F) {
		var P = "";
		if (!i.Xn(28)) F += "-3";
		for (var w = 0; w < F.length; w++) {
			var o = F.charCodeAt(w);
			if (o < 32 || 126 < o) throw "e";
			P += String.fromCharCode(32 + (o - 32 + 17 + 3 * w) % 95)
		}
		return P
	};
	i.Dj = function (F) {
		var P = "";
		if (!i.Xn(28)) F += "-1";
		for (var w = 0; w < F.length; w++) {
			var o = F.charCodeAt(w);
			o -= 32;
			o += 95e4;
			o -= 17 + 3 * w;
			o = o % 95;
			P += String.fromCharCode(32 + o)
		}
		return P
	};
	i.UR = function (F, P) {
		var o = "";
		if (!i.Xn(29)) P += 3;
		for (var w = 0; w < F.length; w++) o += String.fromCharCode((256 << 16) + F.charCodeAt(w) + P * w & 255);
		return o
	};
	i.EO = function (F) {
		var P = Math.random();
		i.aik = "uint" + (3 + P);
		return new F
	};
	i.hB = 0;
	i.Wd = function (F, P) {
		var o = 0;
		if (Date.now() - i.hB > 1e3) {
			o = P == 0 ? 100 : P * 10
		} else {
			if (F % 10 != 0) F *= 10;
			o = (F + P) % 100
		}
		i.hB = Date.now();
		return o
	};
	i.X8 = function (F, P) {
		if (window.PointerEvent) {
			F.addEventListener("pointerdown", P, !1);
			return
		}
		F.addEventListener("mousedown", P, !1);
		F.addEventListener("touchstart", P, !1)
	};
	i.Jr = function (F, P) {
		if (window.PointerEvent) {
			F.addEventListener("pointermove", P, !1);
			return
		}
		F.addEventListener("mousemove", P, !1);
		F.addEventListener("touchmove", P, !1)
	};
	i.so = function (F, P) {
		if (window.PointerEvent) {
			F.addEventListener("pointerup", P, !1);
			return
		}
		F.addEventListener("mouseup", P, !1);
		F.addEventListener("touchend", P, !1)
	};
	i.a07 = function (F, P) {
		if (window.PointerEvent) {
			F.removeEventListener("pointerdown", P, !1);
			return
		}
		F.removeEventListener("mousedown", P, !1);
		F.removeEventListener("touchstart", P, !1)
	};
	i.NG = function (F, P) {
		if (window.PointerEvent) {
			F.removeEventListener("pointermove", P, !1);
			return
		}
		F.removeEventListener("mousemove", P, !1);
		F.removeEventListener("touchmove", P, !1)
	};
	i.Sz = function (F, P) {
		if (window.PointerEvent) {
			F.removeEventListener("pointerup", P, !1);
			return
		}
		F.removeEventListener("mouseup", P, !1);
		F.removeEventListener("touchend", P, !1)
	};
	i.w4 = function (F) {
		F.addEventListener("touchstart", i.vA, !1);
		F.addEventListener("touchmove", i.vA, !1);
		F.addEventListener("touchend", i.vA, !1)
	};
	i.Tv = function (F, P, o, X) {
		var Y = i.J();
		F.width = Math.floor(P * Y);
		F.height = Math.floor(o * Y);
		F.style.width = F.width / Y + "px";
		F.style.height = F.height / Y + "px";
		if (X) X.setTransform(Y, 0, 0, Y, 0, 0)
	};
	i.Hc = function (F, P, o) {
		F.setAttribute("style", "width:" + P / i.J() + "px; height:" + o / i.J() + "px")
	};
	i.oA = function (F, P) {
		if (P == null) P = F.currentTarget;
		var o = P.getBoundingClientRect();
		if (F.touches) F = F.touches.item(0);
		return {
			x: F.clientX - o.left,
			y: F.clientY - o.top
		}
	};
	i.J = function (F) {
		return window.devicePixelRatio || 1
	};
	i.vA = function (F) {
		F.preventDefault()
	};
	i.OZ = function (F) {
		F.stopPropagation();
		F.preventDefault()
	};
	i.G6 = function (F, P, o) {
		o = o ? o : "";
		if (PIMG["__" + F] == null) o += " gsicon";
		return "<img src=\"" + PIMG[F] + "\" alt=\"" + (P ? P : "") + "\" class=\"" + o + "\" />"
	};
	i.u4 = function (F, P, o, X) {
		var Y = F.dataTransfer.getData("text/uri-list");
		if (Y != null && Y.startsWith("http")) {
			var y = new l(i.E.L, !0);
			y.data = {
				e: i.B.JX,
				S9: {
					url: Y,
					pY: !0,
					q3: o,
					kT: X
				}
			};
			P.w(y)
		}
		if (F.dataTransfer.files.length == 0) return;
		var y = new l(i.E.L, !0);
		y.data = {
			e: i.B.Ek,
			data: F.dataTransfer.files,
			q3: o,
			kT: X
		};
		P.w(y)
	};
	var l = function (F, P) {
		if (!P) P = !1;
		this.type = F;
		this.target = null;
		this.currentTarget = null;
		this.bubbles = P;
		this.Q = null;
		this.qQ = !1
	};
	i.E = {
		H: "0",
		L: "1",
		QJ: "1.5",
		I: "2",
		Ga: "3",
		UL: "4",
		El: "5"
	};
	i.B = {
		mG: "10",
		VX: "11",
		Qp: "12",
		CB: "13",
		Ik: "14",
		mB: "14.1",
		JX: "15",
		ED: "16",
		wF: "17",
		T5: "18",
		tG: "19",
		Gk: "19.5",
		At: "20",
		mK: "21",
		c_: "22",
		bx: "23",
		xS: "24",
		uH: "25",
		QL: "26",
		qD: "27",
		G0: "28",
		$R: "29",
		Ek: "30",
		MR: "31",
		_g: "32",
		R2: "33",
		Zo: "34",
		Sl: "35",
		dm: "35.5",
		Xk: "37",
		cy: "38",
		Uw: "39",
		p7: "40",
		kP: "41",
		Xp: "41.5",
		ez: "42",
		kj: "43",
		vz: "44",
		l3: "45",
		hR: "46",
		Wp: "47",
		iS: "48",
		rU: "49"
	};
	var hw = {};
	hw.eo = function (w) {
		var F = hw.lB[w],
			P = document.documentElement.style,
			X = 20;
		P.setProperty("--bg-color", "#" + H.v2(F["--bg-color"]));
		P.setProperty("--bg-panel", "#" + H.v2(F["--bg-panel"]));
		P.setProperty("--bg-canvas", "#" + H.v2(F["--bg-canvas"]));
		P.setProperty("--bg-input", "#" + H.v2(F["--bg-input"]));
		P.setProperty("--bg-bbtn", "#" + H.v2(F["--bg-bbtn"]));
		P.setProperty("--bg-bbtnOver", "#" + H.v2(F["--bg-bbtnOver"]));
		P.setProperty("--brdr", "#" + H.v2(F["--brdr"]));
		P.setProperty("--text-color", "#" + H.v2(F["--text-color"]));
		P.setProperty("--brdrLgt", "rgba(255,255,255," + F["--brdrLgt"] + ")");
		P.setProperty("--brdrDrk", "rgba(  0,  0,  0," + F["--brdrDrk"] + ")");
		P.setProperty("--alphaDark", "" + F["--alphaDark"]);
		P.setProperty("--gs-invert", "" + F["--gs-invert"]);
		var o = F["--sh-clr"];
		P.setProperty("--sh-clr", "rgba(" + (o >> 16) + "," + (o >> 8 & 255) + "," + (o & 255) + ", 0.45)");
		P.setProperty("--sh-dy", "" + F["--sh-dy"] + "px");
		if (1 < i.J() && i.J() < 1.5) X /= i.J();
		P.setProperty("--img20", X + "px");
		var Y = "lrs/eye lrs/arrow_down lrs/arrow_right lrs/chain lrs/link lrs/clipping lrs/lock lrs/fx lrs/folder cross tools/cshape checkmark".split(" ");
		for (var w = 0; w < Y.length; w++) {
			var y = Y[w],
				z = y.split("/").pop(),
				s = PIMG["__" + y] == null ? F["--gs-invert"] : "0";
			P.setProperty("--icon_" + z, "url(" + PIMG[y] + ")");
			P.setProperty("--icon_" + z + "_invrt", s)
		}
	};
	hw.lB = [{
		name: "Silver",
		"--bg-color": 14737632,
		"--bg-panel": 9868950,
		"--bg-canvas": 14737632,
		"--bg-input": 16777215,
		"--bg-bbtn": 15658734,
		"--bg-bbtnOver": 15132390,
		"--brdrLgt": .5,
		"--brdrDrk": .4,
		"--alphaDark": .12,
		"--text-color": 3749943,
		"--gs-invert": .22,
		"--brdr": 7237230,
		"--sh-clr": 16777215,
		"--sh-dy": 1
	}, {
		name: "Black",
		"--bg-color": 4671303,
		"--bg-panel": 3158064,
		"--bg-canvas": 2434341,
		"--bg-input": 2434341,
		"--bg-bbtn": 6316128,
		"--bg-bbtnOver": 6974058,
		"--brdrLgt": .15,
		"--brdrDrk": .6,
		"--alphaDark": .25,
		"--text-color": 14013909,
		"--gs-invert": .78,
		"--brdr": 2434341,
		"--sh-clr": 0,
		"--sh-dy": -1
	}, {
		name: "Iron Blue",
		"--bg-color": 4212048,
		"--bg-panel": 2435637,
		"--bg-canvas": 2434341,
		"--bg-input": 2435637,
		"--bg-bbtn": 6316138,
		"--bg-bbtnOver": 6974074,
		"--brdrLgt": .15,
		"--brdrDrk": .6,
		"--alphaDark": .25,
		"--text-color": 15790330,
		"--gs-invert": .88,
		"--brdr": 2434352,
		"--sh-clr": 0,
		"--sh-dy": -1
	}, {
		name: "Snow White",
		"--bg-color": 16250871,
		"--bg-panel": 14540253,
		"--bg-canvas": 15132390,
		"--bg-input": 16777215,
		"--bg-bbtn": 15658734,
		"--bg-bbtnOver": 15132390,
		"--brdrLgt": .2,
		"--brdrDrk": .2,
		"--alphaDark": .065,
		"--text-color": 0,
		"--gs-invert": .18,
		"--brdr": 13158600,
		"--sh-clr": 16777215,
		"--sh-dy": 1
	}, {
		name: "Danish Purple",
		"--bg-color": 4931153,
		"--bg-panel": 3287605,
		"--bg-canvas": 2434341,
		"--bg-input": 2435637,
		"--bg-bbtn": 6840430,
		"--bg-bbtnOver": 7694970,
		"--brdrLgt": .15,
		"--brdrDrk": .6,
		"--alphaDark": .25,
		"--text-color": 15790330,
		"--gs-invert": .88,
		"--brdr": 2434352,
		"--sh-clr": 0,
		"--sh-dy": -1
	}];

	function au() {
		bl.call(this);
		this.parent = null;
		this.u = null;
		this.YY = 0;
		this.mi = 0
	}
	au.prototype = new bl;
	au.prototype.a9B = function (F) {
		var e = this;
		while (e != null) {
			if (e == F) return !0;
			e = e.parent
		}
		return !1
	};
	au.prototype.EN = function () {
		var F = this.u;
		return F.offsetWidth + F.clientLeft
	};
	au.prototype.pf = function () {
		var F = this.u;
		return F.offsetHeight + F.clientTop
	};
	au.prototype.update = function (F) {};
	au.prototype.w = function (F) {
		bl.prototype.w.call(this, F);
		if (F.bubbles && this.parent != null) this.parent.w(F)
	};
	au.prototype.a1N = function (F) {
		F.stopPropagation();
		F.preventDefault()
	};
	au.prototype.t = function () {};
	au.prototype.R8 = function (F) {
		i.sT(this.u, "disabled")
	};
	au.prototype.U3 = function (F) {
		i.KL(this.u, "disabled")
	};
	au.prototype.b0 = function (F) {
		if (F) this.R8();
		else this.U3()
	};

	function ba(F, P) {
		au.call(this);
		this.VF = null;
		this.a7_ = this.sj.bind(this);
		this.a2Y = this.hP.bind(this);
		this.a7g = this.ajt.bind(this);
		this.a2g = this.US.bind(this);
		this.y2 = [];
		this.jF = [];
		this.KN = [];
		this.al7 = [];
		this.u = i.z("div", "contextpanel");
		this.u.addEventListener("contextmenu", i.vA, !1);
		this.r8 = null;
		this.iC = 0;
		this.af6 = F;
		this.alB = P;
		this.BX = [];
		for (var w = 0; w < F.length; w++) {
			var o = i.z("div", "enab");
			this.jF.push(o);
			this.u.appendChild(o);
			if (F[w].ZL) {
				var X = i.z("img", "thumb");
				X.setAttribute("src", PIMG[F[w].ZL]);
				o.appendChild(X)
			} else {
				var Y = i.z("span", "check");
				this.al7.push(Y);
				o.appendChild(Y)
			}
			var y = i.z("span", "label");
			y.innerHTML = h9.get(F[w].name);
			o.appendChild(y);
			this.KN.push(y);
			if (F[w].aD) this.u.appendChild(i.z("hr"));
			if (F[w].n8 || F[w].sub) {
				var z = i.z("span", "right");
				o.appendChild(z);
				if (F[w].n8) z.innerHTML = G.u0(F[w].n8);
				if (F[w].sub) z.innerHTML = "\u25B6"
			}
			o.addEventListener("click", this.a7_, !1);
			o.addEventListener("mouseover", this.a2Y, !0);
			o.addEventListener("mouseout", this.a7g, !0);
			if (F[w].sub) {
				var s = new ba(F[w].sub, P ? P[w].sub : null);
				s.parent = this;
				this.BX.push(s);
				s.$("select", this.akl, this)
			} else this.BX.push(null)
		}
	}
	ba.prototype = new au;
	ba.prototype.We = function (F) {
		i.TD(this.u);
		for (var w = 0; w < F.length; w++)
			if (F[w] != 0 && F[w] != null) {
				this.u.appendChild(this.jF[w]);
				if (F[w] != 1 && this.BX[w]) this.BX[w].We(F[w])
			}
	};
	ba.prototype.t = function () {
		var F = this.af6;
		for (var w = 0; w < F.length; w++) {
			if (F[w].title) this.jF[w].title = h9.get(F[w].title);
			this.KN[w].textContent = h9.get(F[w].name) + (F[w].sD ? "..." : "")
		}
		for (var w = 0; w < this.BX.length; w++)
			if (this.BX[w]) this.BX[w].t()
	};
	ba.prototype.update = function (F, P) {
		var o = this.af6;
		for (var w = 0; w < o.length; w++) {
			if (o[w].Y) {
				var X = o[w].Y(F, P, w);
				if (X.Y != null) this.jF[w].setAttribute("class", X.Y ? "enab" : "disab");
				if (X.IK != null) this.KN[w].textContent = X.IK;
				if (X.Rb != null) this.al7[w].textContent = X.Rb ? "\u2713" : ""
			}
		}
		for (var w = 0; w < this.BX.length; w++)
			if (this.BX[w]) this.BX[w].update(F, P)
	};
	ba.prototype.oe = function () {
		return this.y2
	};
	ba.prototype.sj = function (F) {
		if (F.button != 0) return;
		var w = this.jF.indexOf(F.currentTarget);
		if (this.BX[w]) {
			this.iC = w;
			this.US()
		} else {
			if (this.alB) {
				var P = this.alB[w],
					o = new l(P.f, !0);
				o.Q = P.Q;
				o.data = P.o;
				this.w(o)
			}
			this.VF = null;
			this.y2 = [w];
			this.w(new l("select", !1));
			var o = new l(i.E.L, !0);
			o.data = {
				e: i.B.CB
			};
			this.w(o)
		}
	};
	ba.prototype.hP = function (F) {
		var w = this.jF.indexOf(F.currentTarget);
		if (this.r8) {
			clearTimeout(this.r8);
			this.r8 = null
		}
		if (this.BX[w] == null) return;
		this.iC = w;
		this.r8 = setTimeout(this.a2g, 300)
	};
	ba.prototype.ajt = function (F) {
		var w = this.jF.indexOf(F.currentTarget);
		if (this.r8) {
			clearTimeout(this.r8);
			this.r8 = null
		}
	};
	ba.prototype.US = function () {
		if (this.r8) {
			clearTimeout(this.r8);
			this.r8 = null
		}
		var w = this.iC;
		if (this.VF) this.VF.ib();
		this.VF = this.BX[w];
		var F = this.jF[w].getBoundingClientRect(),
			P = new l(i.E.L, !0);
		P.data = {
			e: i.B.VX,
			Nc: this.BX[w],
			x: F.left + F.width + 2,
			y: F.top
		};
		this.w(P)
	};
	ba.prototype.ib = function () {
		for (var w = 0; w < this.BX.length; w++)
			if (this.BX[w]) this.BX[w].ib();
		var F = new l(i.E.L, !0);
		F.data = {
			e: i.B.Qp,
			Nc: this
		};
		this.w(F)
	};
	ba.prototype.akl = function (F) {
		var w = this.BX.indexOf(F.target);
		this.y2 = [w].concat(F.target.oe());
		this.w(new l("select", !1))
	};

	function bk(F, P, o, X, Y, y, z, s) {
		au.call(this);
		this.u = i.z("span", "fitem");
		var t = i.l$();
		this.q6 = F;
		this.lj = s;
		this.fc = P;
		this.AP = o;
		this.tS = null;
		if (X instanceof Array) {
			this.tS = X;
			X = X[0]
		}
		this.Yx = X;
		this.A_ = Y;
		this.ajQ = y;
		this.QK = z;
		this.Th = 0;
		this.yq = i.z("label", "flabel");
		this.yq.innerHTML = F;
		this.yq.setAttribute("style", "cursor:col-resize;");
		this.oq = i.z("input", "");
		this.oq.setAttribute("type", "range");
		if (z) {
			this.oq.min = 0;
			this.oq.max = 400
		} else {
			this.oq.min = P;
			this.oq.max = o;
			if (Y != 0) this.oq.step = (o - P) / 200
		}
		this.De = i.z("input", "");
		this.De.setAttribute("type", "text");
		this.De.setAttribute("id", t);
		this.BL = i.z("span", "");
		this.BL.innerHTML = X;
		this.De.addEventListener("change", this.Om.bind(this), !1);
		this.De.addEventListener("keydown", this.TV.bind(this), !1);
		this.De.addEventListener("wheel", this.vQ.bind(this), !1);
		this.oq.addEventListener("input", this.Om.bind(this), !1);
		this.oq.addEventListener("click", this.a2t.bind(this), !1);
		this.a8D = this.ak9.bind(this);
		this.aeF = this.adb.bind(this);
		this.af7 = this.a1X.bind(this);
		this.sZ = 0;
		this.Ra = 0;
		this.R7 = !1;
		i.X8(this.yq, this.a8D)
	}
	bk.prototype = new au;
	bk.prototype.CZ = function (F) {
		this.A_ = F
	};
	bk.prototype.kW = function (F) {
		this.yq.textContent = F
	};
	bk.prototype.t = function () {
		var e = this.q6,
			F = this.lj;
		if (e) {
			if (typeof e == "string" && e.startsWith("<")) this.yq.innerHTML = e;
			else this.yq.textContent = h9.get(e) + ":"
		}
		if (F) {
			F = h9.get(F);
			if (e) this.yq.setAttribute("title", F);
			this.De.setAttribute("title", F)
		}
	};
	bk.prototype.k = function (F) {
		var P = this.fc == this.AP;
		if (!P && this.fc >= 0) F = Math.max(this.fc, F);
		if (this.A_ == 0) F = Math.round(F);
		var o = this.Yx;
		this.De.value = (this.A_ != 0 ? F.toFixed(this.A_) : F) + (this.ajQ && o ? (o.toLowerCase() == o.toUpperCase() ? "" : " ") + o : "");
		var X = 400 * Math.pow((F - this.fc) / (this.AP - this.fc), 1 / 2.7);
		this.oq.value = this.QK ? X : F
	};
	bk.prototype.q = function () {
		var F = parseFloat(this.De.value);
		if (isNaN(F)) F = 0;
		return F
	};
	bk.prototype.nY = function () {
		return this.Yx
	};
	bk.prototype.Om = function (F) {
		var P = 0;
		if (F.currentTarget == this.De) {
			var o = F.target.value,
				X = 0;
			while (X < o.length && (o.charAt(X) == "." || 48 <= o.charCodeAt(X) && o.charCodeAt(X) <= 57)) X++;
			P = o == "" ? 0 : parseFloat(o);
			if (isNaN(P)) P = 0;
			var Y = o.slice(X).trim();
			if (this.tS && this.tS.indexOf(Y) != -1) this.Yx = Y
		} else {
			if (Date.now() - this.Th < 10) return;
			P = parseFloat(F.target.value);
			if (this.QK) {
				P = this.fc + Math.pow(P / 400, 2.7) * (this.AP - this.fc);
				P = this.ie(P)
			}
		}
		this.k(P);
		this.H6()
	};
	bk.prototype.H6 = function () {
		this.w(new l(i.E.I))
	};
	bk.prototype.ie = function (F) {
		if (this.AP - this.fc > 50 && F > 10) F = Math.round(F);
		return F
	};
	bk.prototype.TV = function (F) {
		var P = 0;
		if (G.be(F.code, G.DY)) P = 1;
		if (G.be(F.code, G.yF)) P = -1;
		if (P != 0) this.H0(P, F.shiftKey)
	};
	bk.prototype.vQ = function (F) {
		this.H0(F.deltaY > 0 ? -1 : 1, F.shiftKey)
	};
	bk.prototype.H0 = function (F, P) {
		var o = this.q(),
			X = this.A_,
			Y = F * (X == null || X == 0 || o > 5 ? 1 : .1);
		if (P) Y *= 10;
		var y = o + Y;
		if (!this.QK && this.AP != this.fc) y = Math.min(this.AP, y);
		this.k(y);
		this.H6()
	};
	bk.prototype.a2t = function (F) {
		var P = Date.now() - this.Th;
		this.Th = Date.now();
		if (P > 300) return;
		var o = (this.AP + this.fc) / 2;
		if (this.fc < 0 && this.AP > 0) o = 0;
		else if (this.fc < 1 && this.AP > 1 && this.AP < 10) o = 1;
		this.k(o);
		this.H6()
	};
	bk.prototype.ak9 = function (F) {
		i.Jr(document, this.aeF);
		i.so(document, this.af7);
		this.sZ = i.oA(F, document.body).x;
		this.Ra = this.q()
	};
	bk.prototype.adb = function (F) {
		i.OZ(F);
		var P = this.fc == this.AP,
			o = i.oA(F, document.body).x,
			X = (o - this.sZ) * (P ? 1 : 1 / 120 * (this.AP - this.fc)),
			y = this.Ra + X;
		if (P) y = Math.round(y);
		if (!P) {
			if (!0) {
				y = Math.max(this.fc, y);
				if (y == this.fc) {
					this.sZ = o;
					this.Ra = this.fc
				}
			}
			if (!this.QK) {
				y = Math.min(this.AP, y);
				if (y == this.AP) {
					this.sZ = o;
					this.Ra = this.AP
				}
			}
			y = this.ie(y)
		}
		this.R7 = !0;
		this.k(y);
		this.H6()
	};
	bk.prototype.a1X = function (F) {
		if (!this.R7) this.De.focus();
		this.R7 = !1;
		i.NG(document, this.aeF);
		i.Sz(document, this.af7)
	};
	bk.prototype.co = function () {
		this.De.select();
		this.De.focus()
	};

	function fo(F, P) {
		au.call(this);
		this.zF = [];
		this.cZ = -1;
		this.a2s = F;
		this._y = P;
		this.NU = 0;
		this.rX = null;
		this.NW = new aH(0, 0);
		if (P != null) {
			this.i3 = new ba([{
				name: [6, 37]
			}, {
				name: [5, 4]
			}]);
			this.i3.parent = this;
			this.i3.$("select", this.zf, this)
		}
		this.u = i.z("div", "imageset scrollable");
		this.u.addEventListener("contextmenu", i.vA, !1)
	}
	fo.prototype = new au;
	fo.prototype.t = function () {
		if (this.i3) this.i3.t()
	};
	fo.prototype.zf = function (F) {
		var w = this.i3.oe()[0],
			P = new l(i.E.L, !0),
			o = {
				e: i.B.Sl,
				S9: this._y,
				zM: [this.cZ]
			};
		if (w == 0) {
			var X = this.rX[1][this.cZ];
			o.RY = "rnm";
			P.data = {
				e: i.B.uH,
				W2: "namewindow",
				Ub: X,
				VN: {
					f: i.E.L,
					o: o
				}
			}
		} else {
			P.data = o;
			o.RY = "del"
		}
		this.w(P)
	};
	fo.prototype.a86 = function () {
		return this.NU
	};
	fo.prototype.DJ = function (F) {
		this.NU = F;
		if (this.rX) this.qK()
	};
	fo.prototype.Lf = function (F, P, o, X) {
		this.rX = [F, P, o, X];
		this.qK()
	};
	fo.prototype.qK = function () {
		var F = this.rX,
			P = F[0],
			o = F[1],
			X = F[2],
			Y = F[3];
		this.zF = [];
		this.u.innerHTML = "";
		var y = this.jG.bind(this),
			z = this.NU;
		if (z == 0) i.KL(this.u, "imageset");
		else i.sT(this.u, "imageset");
		for (var w = 0; w < P.length; w++) {
			var s = P[w];
			if (s == null) {
				this.zF.push(null);
				continue
			}
			var t = i.z("img", "image");
			if (X) i.Hc(t, X, Y);
			if (this.a2s) i.KL(t, "gsicon");
			t.setAttribute("src", s);
			if (z == 0) {} else {
				var d = i.z("div", "listitem");
				d.appendChild(t);
				var U = i.z("span");
				U.textContent = o ? o[w] : "Item " + (w + 1);
				U.setAttribute("style", "margin-left:4px;");
				d.appendChild(U);
				t = d
			}
			if (o) t.setAttribute("title", o[w]);
			t.addEventListener("mousedown", y, !1);
			this.zF.push(t);
			this.u.appendChild(t)
		}
	};
	fo.prototype.jG = function (F) {
		F.preventDefault();
		this.cZ = this.zF.indexOf(F.currentTarget);
		this.NW = i.oA(F, F.currentTarget);
		if (F.button == 0) this.w(new l(i.E.I));
		if (F.button == 2 && this.i3) {
			var P = this.i3;
			P.update(null);
			var o = i.oA(F, document.body),
				X = new l(i.E.L, !0);
			X.data = {
				e: i.B.VX,
				Nc: P,
				x: o.x,
				y: o.y + 2
			};
			this.w(X)
		}
	};
	fo.prototype.q = function () {
		return this.cZ
	};
	fo.prototype.k = function (F) {
		this.cZ = F
	};
	fo.prototype.aau = function () {
		var F = this.NW;
		return new aH(F.x, F.y)
	};
	fo.prototype.tj = function (F) {
		for (var w = 0; w < this.zF.length; w++) {
			var P = this.zF[w];
			if (P == null) continue;
			if (w == F) i.KL(P, "active");
			else i.sT(P, "active")
		}
	};

	function dB(F, P, o, X, Y, y, z) {
		au.call(this);
		this.u = i.z("span", "fitem " + o);
		this.Jg = new au;
		this.Jg.u = i.z("div", "floatcont");
		this.Jg.u.setAttribute("style", "width: " + (X + 1.5) + "em;");
		this.Jg.parent = this;
		this.M7 = i.z("div");
		this.Jg.u.appendChild(this.M7);
		this.sR = i.z("div");
		this.Jg.u.appendChild(this.sR);
		if (F) {
			this.q6 = F;
			this.yq = i.z("label", "flabel");
			this.u.appendChild(this.yq)
		}
		this.e = i.z("button", z ? "nopadding" : "");
		this.e.setAttribute("style", "position:relative;");
		this.e.addEventListener("click", (P ? this.P3 : this.JJ).bind(this), !1);
		this.u.appendChild(this.e);
		this.mJ = i.z("img", z ? "gsicon" : "");
		this.e.appendChild(this.mJ);
		if (P) {
			var s = i.z("button");
			s.textContent = "\u25BC";
			s.addEventListener("click", this.JJ.bind(this), !1);
			this.u.appendChild(s)
		} else {
			var t = i.z("span");
			t.textContent = "\u25BC";
			t.setAttribute("style", "position:absolute;  bottom:2px;  right:4px;");
			this.e.appendChild(t)
		}
		var d = i.z("span");
		this.sR.appendChild(d);
		d.setAttribute("style", "display:inline-block;  vertical-align:top; width:" + X + "em;");
		this.UJ = new fo(z, y);
		d.appendChild(this.UJ.u);
		this.UJ.parent = this.Jg;
		this.UJ.$(i.E.I, this.a7E, this);
		this.UJ.u.style.height = Y + "em";
		this.il = i.z("button");
		this.il.textContent = "\u25BC";
		this.il.setAttribute("style", "padding:3px");
		this.il.addEventListener("click", this.a0T.bind(this), !1);
		this.sR.appendChild(this.il);
		var U = this.Yt(),
			v = y != ge.Ym && y != ge.jq ? y : null,
			A = y == null ? "" : ge.Vv[y][0].toUpperCase(),
			Z = v ? [{
				name: [12, 87]
			}] : [];
		Z = Z.concat([{
			name: ["VAR0 / VAR1", [25, 3, 0],
				[25, 3, 1]
			]
		}, {
			name: [
				[23, 6], "." + (A == "ICC" ? "icc .cube .look .3dl" : A)
			]
		}, {
			name: ["VAR0 ." + A, [1, 8]],
			aD: U.length != 0
		}]);
		for (var w = 0; w < U.length; w++) Z.push({
			name: U[w].split("/").pop()
		});
		this.i3 = new ba(Z);
		this.i3.parent = this.Jg;
		this.i3.$("select", this.zf, this);
		this._y = y;
		this.a7W = v;
		this.rt = null;
		this.lM = !0;
		this.hg = null
	}
	dB.prototype = new au;
	dB.prototype.Yt = function () {
		return []
	};
	dB.prototype.a7E = function (F) {
		this.WX(F);
		this.UJ.tj(this.UJ.q())
	};
	dB.prototype.P3 = function () {};
	dB.prototype.t = function () {
		this.i3.t();
		this.UJ.t();
		var F = this.q6;
		if (F) this.yq.textContent = h9.get(F) + ":"
	};
	dB.prototype.kW = function (F) {
		this.yq.textContent = F
	};
	dB.prototype._F = function (F) {
		var P = this._y,
			o = 0;
		if (P == ge.rn) {
			o = this.rt ? this.rt.length : 0;
			F = F.slice(0)
		}
		this.rt = F;
		this.lM = !0;
		if (i.WW(this.UJ.u) || P == ge.Mg) this.HJ();
		if (P == ge.rn && F.length - o == 1 && i.WW(this.u)) {
			this.k(F[o]);
			this.lM = !0;
			this.HJ();
			this.UJ.tj(o);
			this.w(new l(i.E.I))
		}
	};
	dB.prototype.zf = function (F) {
		var P = F.target.oe()[0];
		if (this.a7W == null) P++;
		var o = new l(i.E.L, !0);
		if (P == 0) {
			var X = this.tk();
			if (this._y == ge.rn && X[0].profile == null) return;
			o.data = {
				e: i.B.Sl,
				RY: "add",
				S9: this.a7W,
				EM: X
			}
		} else if (P == 1) this.UJ.DJ(1 - this.UJ.a86());
		else if (P == 2) o.data = {
			e: i.B.ED
		};
		else if (P == 3) o.data = {
			e: i.B.hR,
			amt: this._y
		};
		else {
			var Y = this.Yt();
			o.data = {
				e: i.B.JX,
				S9: {
					url: "rsrc/" + Y[P - 4]
				}
			}
		}
		if (o.data) this.w(o)
	};
	dB.prototype.tk = function () {
		return [this.q()]
	};
	dB.prototype.a0T = function (F) {
		var P = this.i3;
		P.t();
		P.update(null);
		var o = F.currentTarget.getBoundingClientRect(),
			X = new l(i.E.L, !0);
		X.data = {
			e: i.B.VX,
			Nc: P,
			x: o.left,
			y: o.top + o.height
		};
		this.w(X)
	};
	dB.prototype.JJ = function (F) {
		this.HJ();
		var P = this.e.getBoundingClientRect(),
			o = new l(i.E.L, !0);
		o.data = {
			e: i.B.VX,
			Nc: this.Jg,
			x: P.left,
			y: P.top + P.height,
			q1: !0
		};
		this.w(o)
	};

	function ex() {
		au.call(this);
		this.u = i.z("div");
		this.T3 = !1;
		this.ct = [new gq([12, 19, 1], [
			[13, 1, 7]
		].concat(b_.Nx)), new eE([17, 1]), new eE([12, 46])];
		for (var w = 0; w < 3; w++) {
			var F = this.ct[w];
			this.u.appendChild(F.u);
			F.$(i.E.I, this.WK, this)
		}
		this.t()
	}
	ex.prototype = new au;
	ex.prototype.t = function () {
		for (var w = 0; w < 3; w++) this.ct[w].t()
	};
	ex.prototype.q = function () {
		return this.T3.slice(0)
	};
	ex.prototype.k = function (F) {
		this.T3 = F.slice(0);
		var P = this.ct,
			o = P[0].q();
		P[1].k(F.slice(o * 8, o * 8 + 4), o);
		P[2].k(F.slice(o * 8 + 4, o * 8 + 8), o)
	};
	ex.prototype.WK = function (F) {
		var P = this.ct,
			o = P.indexOf(F.currentTarget);
		if (o == 0) this.k(this.T3);
		else {
			var X = P[0].q() * 8 + (o == 1 ? 0 : 4),
				Y = P[o].q();
			for (var w = 0; w < 4; w++) this.T3[X + w] = Y[w];
			this.w(new l(i.E.I, !1))
		}
	};

	function eE(F) {
		au.call(this);
		this.u = i.z("div");
		this.w7 = i.z("canvas");
		this.acw = F;
		this.T3 = [0, 20, 200, 255];
		this.r0 = 0;
		this.alK = -1;
		this.am3 = !1;
		this.acW = [];
		for (var w = 0; w < 5; w++) {
			var P = i.z("span");
			P.setAttribute("style", "display:inline-block;width:" + (w == 0 ? 8 : w == 2 ? 7 : 2) + "em");
			this.acW.push(P);
			this.u.appendChild(P)
		}
		this.TY = this.Qf.bind(this);
		this.m4 = this.Ap.bind(this);
		this.xL = this.sj.bind(this);
		i.X8(this.w7, this.TY);
		this.u.appendChild(this.w7);
		this.qK()
	}
	eE.prototype = new au;
	eE.prototype.t = function () {
		this.qK()
	};
	eE.prototype.k = function (F, P) {
		this.T3 = F;
		this.r0 = P;
		this.qK()
	};
	eE.prototype.q = function () {
		return this.T3.slice(0)
	};
	eE.prototype.Qf = function (F) {
		var P = this.T3,
			o = i.oA(F, this.w7),
			X = o.x - 8,
			Y = -1,
			y = 1e9;
		for (var w = 0; w < 4; w++) {
			var z = X - P[w],
				s = Math.abs(z);
			if (s < 8 && s < y && ((w & 1) == 0 && z < 0 || (w & 1) == 1 && z > 0)) {
				y = z;
				Y = w
			}
		}
		if (Y == -1) return;
		this.alK = Y;
		this.j5 = F.altKey || P[(Y >>> 1) * 2] != P[(Y >>> 1) * 2 + 1];
		i.Jr(window, this.m4);
		i.so(window, this.xL)
	};
	eE.prototype.Ap = function (F) {
		var P = this.T3,
			o = this.alK,
			X = (o >>> 1) * 2,
			Y = X + 1,
			y = i.oA(F, this.w7),
			z = Math.round(Math.max(0, Math.min(255, y.x - 8)));
		P[o] = z;
		if (this.j5 && P[X] >= P[Y]) this.j5 = !1;
		if (!this.j5) P[X] = P[Y] = z;
		this.qK();
		this.w(new l(i.E.I, !1))
	};
	eE.prototype.sj = function (F) {
		i.NG(window, this.m4);
		i.Sz(window, this.xL)
	};
	eE.prototype.qK = function () {
		var F = this.w7;
		i.Tv(F, 255 + 16, 16);
		var P = F.getContext("2d"),
			o = F.width,
			X = F.height,
			Y = Math.round(255 * i.J()),
			y = Math.round(8 * i.J());
		P.translate(y, 0);
		var z = P.createLinearGradient(0, 0, Y, 0);
		z.addColorStop(0, "black");
		z.addColorStop(1, "#" + ["ffffff", "ff0000", "00ff00", "0000ff"][this.r0]);
		P.fillStyle = z;
		P.fillRect(0, 0, Y, y);
		var s = this.acW,
			t = h9.get(this.acw) + ":";
		s[0].textContent = t;
		for (var w = 0; w < 4; w++) {
			var d = this.T3[w];
			s[1 + w].textContent = d;
			var U = Math.round(d * i.J());
			P.beginPath();
			P.moveTo(U, y);
			P.lineTo(U, y + y);
			P.lineTo(U + ((w & 1) == 0 ? -1 : 1) * y, y + y);
			P.closePath();
			P.fillStyle = "#cccccc";
			P.fill();
			P.strokeStyle = "black";
			P.stroke()
		}
	};

	function f2(F) {
		au.call(this);
		this.Fu = 0;
		this.alt = 0;
		var P = "ai" + i.l$();
		this.u = i.z("span", "fitem angleinput");
		if (F) {
			this.yq = i.z("label", "flabel");
			this.q6 = F;
			this.u.appendChild(this.yq);
			this.yq.setAttribute("for", P)
		}
		this.zb = 20;
		this.in = i.z("canvas", "gsicon");
		this.YV = this.in.getContext("2d");
		i.Tv(this.in, this.zb * 2 + 1, this.zb * 2 + 1, this.YV);
		this.u.appendChild(this.in);
		i.X8(this.in, this.Fx.bind(this));
		this.Pw = this.tz.bind(this);
		this.GD = this.JB.bind(this);
		this.De = i.z("input", "");
		this.De.setAttribute("type", "text");
		this.u.appendChild(this.De);
		this.De.setAttribute("id", P);
		this.De.addEventListener("change", this.Om.bind(this), !1);
		this.BL = i.z("span", "");
		this.BL.innerHTML = "\xB0";
		this.u.appendChild(this.BL);
		this.k(this.Fu, this.alt)
	}
	f2.prototype = new au;
	f2.prototype.t = function () {
		this.yq.textContent = h9.get(this.q6) + ":"
	};
	f2.prototype.kW = function (F) {
		this.yq.textContent = F
	};
	f2.prototype.q = function () {
		return {
			Fu: this.Fu,
			alt: this.alt
		}
	};
	f2.prototype.k = function (F, P) {
		if (F != null) this.Fu = F;
		if (P != null) this.alt = P;
		this.De.value = this.Fu;
		F = Math.PI * this.Fu / 180;
		P = .9 * this.zb * (90 - this.alt) / 90;
		var o = this.zb + .5,
			X = this.YV;
		X.clearRect(0, 0, 100, 100);
		X.strokeStyle = "#000000";
		X.beginPath();
		X.arc(o, o, .9 * this.zb, 0, 2 * Math.PI);
		X.moveTo(o, o);
		X.lineTo(o + Math.cos(F) * this.zb * .9, o - Math.sin(F) * this.zb * .9);
		X.stroke();
		X.strokeStyle = "#ff0000";
		X.beginPath();
		X.moveTo(o + Math.cos(F) * P - 3, o - Math.sin(F) * P);
		X.lineTo(o + Math.cos(F) * P + 3, o - Math.sin(F) * P);
		X.moveTo(o + Math.cos(F) * P, o - Math.sin(F) * P - 3);
		X.lineTo(o + Math.cos(F) * P, o - Math.sin(F) * P + 3);
		X.stroke()
	};
	f2.prototype.Om = function (F) {
		var P = parseInt(this.De.value);
		P = P % 360;
		this.k(P);
		this.w(new l(i.E.I, !1))
	};
	f2.prototype.Fx = function (F) {
		i.Jr(window, this.Pw);
		i.so(window, this.GD);
		this.tz(F)
	};
	f2.prototype.tz = function (F) {
		var P = i.oA(F, this.in),
			o = P.x - this.zb,
			X = P.y - this.zb,
			Y = 180 * Math.atan2(-X, o) / Math.PI,
			y = 90 - 90 * Math.min(1, Math.sqrt(o * o + X * X) / (.9 * this.zb));
		this.k(Math.round(Y), Math.round(y));
		this.w(new l(i.E.I, !1))
	};
	f2.prototype.JB = function (F) {
		this.w(new l(i.E.I, !1));
		i.NG(window, this.Pw);
		i.Sz(window, this.GD)
	};

	function i2(F, P) {
		au.call(this);
		this.T3 = 0;
		this.YE = P;
		this.u = i.z("span", "fitem angleinput");
		if (F) {
			this.yq = i.z("label", "flabel");
			this.q6 = F;
			this.u.appendChild(this.yq)
		}
		this.in = i.z("canvas", "gsicon");
		this.YV = this.in.getContext("2d");
		i.Tv(this.in, P, P);
		this.u.appendChild(this.in);
		i.X8(this.in, this.Fx.bind(this));
		this.Pw = this.tz.bind(this);
		this.GD = this.JB.bind(this);
		this.k(0)
	}
	i2.prototype = new au;
	i2.prototype.t = function () {
		if (this.q6) this.yq.textContent = h9.get(this.q6) + ":"
	};
	i2.prototype.kW = function (F) {
		this.yq.textContent = F
	};
	i2.prototype.q = function () {
		return this.T3
	};
	i2.prototype.k = function (F) {
		this.T3 = F;
		var P = this.in.width,
			o = Math.floor(F / 3),
			X = F - 3 * o,
			Y = (X + .5) * P / 3,
			y = (o + .5) * P / 3,
			z = this.YV,
			s = [.5, Math.round(P / 3) + .5, Math.round(2 * P / 3) + .5, P - .5];
		z.clearRect(0, 0, P, P);
		var t = this.YE < 30;
		z.setLineDash([]);
		z.strokeStyle = t ? "rgba(0,0,0,0.5)" : "#000000";
		z.beginPath();
		for (var w = 0; w < 4; w++) {
			var d = s[w];
			z.moveTo(d, 0);
			z.lineTo(d, P);
			z.moveTo(0, d);
			z.lineTo(P, d)
		}
		z.stroke();
		if (F == 9) return;
		if (!t) {
			z.setLineDash([1, 2]);
			var U = P * .53,
				v = Math.max(0, Math.min(P - U, Y - U / 2)),
				A = Math.max(0, Math.min(P - U, y - U / 2));
			z.strokeRect(Math.round(v) + .5, Math.round(A) + .5, Math.round(U), Math.round(U))
		}
		z.fillStyle = "#000000";
		z.beginPath();
		z.arc(Y, y, P / 8, 0, Math.PI * 2);
		z.fill()
	};
	i2.prototype.Fx = function (F) {
		i.Jr(window, this.Pw);
		i.so(window, this.GD);
		this.tz(F)
	};
	i2.prototype.tz = function (F) {
		var P = i.oA(F, this.in),
			o = Math.max(0, Math.min(2, Math.floor(P.x / (this.YE / 3)))),
			X = Math.max(0, Math.min(2, Math.floor(P.y / (this.YE / 3))));
		this.k(X * 3 + o)
	};
	i2.prototype.JB = function (F) {
		this.w(new l(i.E.I, !1));
		i.NG(window, this.Pw);
		i.Sz(window, this.GD)
	};

	function fV(F, P, o, X) {
		au.call(this);
		this.u = i.z("button", "fitem" + (P ? " spread" : "") + (X ? " bbtn" : ""));
		this.q6 = F;
		this.lj = o;
		this.t();
		this.u.addEventListener("click", this.jG.bind(this), !1)
	}
	fV.prototype = new au;
	fV.prototype.t = function () {
		var F = this.u,
			P = this.q6,
			o = this.lj,
			X = h9.get(P);
		if (X.startsWith("<img") || X.startsWith("<svg")) F.innerHTML = X;
		else F.textContent = X;
		if (X.startsWith("<img") || X.startsWith("<svg")) F.setAttribute("style", "padding:2px");
		if (o) {
			F.setAttribute("title", h9.get(o))
		}
	};
	fV.prototype.a1Q = function (F) {
		this.u.setAttribute("title", F)
	};
	fV.prototype.jG = function (F) {
		//console.log(101,[this,F,this.w]);
		this.w(new l("click", !1))
	};
	fV.prototype.V2 = function () {
		i.KL(this.u, "bactive")
	};
	fV.prototype.pe = function () {
		i.sT(this.u, "bactive")
	};
	fV.prototype.kW = function (F, P) {
		if (F) this.q6 = F;
		if (P) this.lj = P;
		this.t()
	};
	fV.prototype.k = function (F) {
		if (F) this.V2();
		else this.pe()
	};
	fV.prototype.UX = function () {
		return this.u.getAttribute("class").indexOf("bactive") != -1
	};
	fV.prototype.q = function () {
		return this.UX()
	};

	function a4(e) {
		au.call(this);
		this.u = i.z("span", "fitem cswatch");
		this.aaB = 0;
		this.S2 = [];
		this.C8 = [];
		var F = this.a09.bind(this);
		for (var w = 0; w < e; w++) {
			this.S2.push(0);
			var P = i.z("span", "colorsample");
			P.addEventListener("click", F, !1);
			this.C8.push(P);
			this.u.appendChild(P)
		}
		var o = [16711680, 65280, 255, 65535, 16711935, 16776960, 0, 8421504, 16777215],
			X = Math.min(e, o.length);
		for (var w = 0; w < X; w++) this.S2[w] = o[w];
		this.nF()
	}
	a4.prototype = new au;
	a4.prototype.a09 = function (F) {
		this.aaB = this.C8.indexOf(F.currentTarget);
		this.w(new l(i.E.I))
	};
	a4.prototype.q = function () {
		return this.S2[this.aaB]
	};
	a4.prototype.k = function (F) {
		var P = this.S2,
			o = P.indexOf(F);
		if (o != -1) P.splice(o, 1);
		else P.pop();
		P.unshift(F);
		this.nF()
	};
	a4.prototype.nF = function () {
		for (var w = 0; w < this.S2.length; w++) {
			this.C8[w].setAttribute("style", "background-color:#" + H.v2(this.S2[w]))
		}
	};

	function eH(F) {
		au.call(this);
		this.sM = !1;
		this.mz = {
			U: 0,
			S: 0,
			i: 0
		};
		this.Cr = F;
		this.u = i.z("span", "fitem colorsample");
		this.u.addEventListener("click", this.jG.bind(this), !1)
	}
	eH.prototype = new au;
	eH.prototype.t = function () {};
	eH.prototype.rf = function (F) {
		if (this.sM == F) return;
		this.sM = F;
		this.Bs()
	};
	eH.prototype.jG = function (F) {
		var P = this.mz;
		this.w(new l("click"));
		var o = new l(i.E.L, !0);
		o.data = {
			e: i.B.uH,
			W2: "colorpicker",
			u9: P.U << 16 | P.S << 8 | P.i,
			jz: this.Hq.bind(this),
			IF: this.Cr
		};
		this.w(o)
	};
	eH.prototype.Hq = function (F) {
		this.s$(F);
		this.w(new l(i.E.I))
	};
	eH.prototype.a1M = function () {
		this.jG(null)
	};
	eH.prototype.sJ = function () {
		var F = this.mz;
		return F.U << 16 | F.S << 8 | F.i
	};
	eH.prototype.q = function () {
		return H.j.$H(this.mz)
	};
	eH.prototype.s$ = function (F) {
		this.mz = {
			U: F >> 16 & 255,
			S: F >> 8 & 255,
			i: F & 255
		};
		this.Bs()
	};
	eH.prototype.k = function (F) {
		this.mz = H.j.T6(F);
		this.Bs()
	};
	eH.prototype.Bs = function () {
		var F = this.mz,
			P = F.U,
			o = F.S,
			X = F.i;
		if (this.sM) P = o = X = Math.round(H.ou(P, o, X));
		var Y = P << 16 | o << 8 | X;
		this.u.setAttribute("style", "background-color:#" + H.v2(Y))
	};

	function fz(F) {
		dB.call(this, F, !1, "brushbutton nopadding", 16.6, 10, ge.Sm, !0);
		this.Qc = new be([12, 14, 0], 1, 1e3, " px", 0, !0);
		this.Qc.$(i.E.I, this.Ck, this);
		this.M7.appendChild(this.Qc.u);
		this.RS = new be([12, 17], 0, 100, "%");
		this.RS.$(i.E.I, this.Ck, this);
		this.M7.appendChild(this.RS.u)
	}
	fz.prototype = new dB;
	fz.prototype.JJ = function (F) {
		var P = this.u.getBoundingClientRect();
		this.OG(P.left, P.top + P.height)
	};
	fz.prototype.OG = function (F, P) {
		this.HJ();
		var o = new l(i.E.L, !0);
		o.data = {
			e: i.B.VX,
			Nc: this.Jg,
			x: F,
			y: P
		};
		this.w(o)
	};
	fz.prototype.k = function (F, P, o) {
		this.hg = JSON.parse(JSON.stringify(F));
		var X = Math.floor(20 * i.J()),
			Y = Math.floor(36 * i.J()),
			y = Math.floor(24 * i.J()),
			z = am.m2(F, P, o, X, y, Y);
		this.mJ.setAttribute("src", z);
		i.Hc(this.mJ, Y, y);
		var s = F.Brsh.v;
		this.Qc.k(s.Dmtr.v.val);
		if (s.Hrdn != null) {
			this.RS.R8();
			this.RS.k(s.Hrdn.v.val)
		} else this.RS.U3();
		this.UJ.tj(-1)
	};
	fz.prototype.tk = function () {
		return {
			list: [{
				t: "Objc",
				v: this.q()
			}],
			Xu: [],
			A6: []
		}
	};
	fz.prototype.q = function () {
		return this.hg
	};
	fz.prototype.HJ = function () {
		if (!this.lM) return;
		var F = [],
			P = [],
			o = this.rt,
			X = Math.floor(33 * i.J()),
			Y = Math.floor(40 * i.J());
		for (var w = 0; w < o.list.length; w++) {
			var y = o.list[w].v,
				z = am.m2(y, o.Xu, o.A6, X, Y);
			F.push(z);
			P.push(y.Nm.v.split("=").pop())
		}
		this.UJ.Lf(F, P, X, Y);
		this.lM = !1
	};
	fz.prototype.WX = function (F) {
		var P = this.rt;
		this.k(P.list[this.UJ.q()].v, P.Xu, P.A6);
		this.w(new l(i.E.I))
	};
	fz.prototype.t = function () {
		dB.prototype.t.call(this);
		this.Qc.t();
		this.RS.t()
	};
	fz.prototype.Ck = function (F) {
		var P = this.rt,
			o = this.hg;
		o.Brsh.v.Dmtr.v.val = this.Qc.q();
		if (o.Brsh.v.Hrdn != null) o.Brsh.v.Hrdn.v.val = this.RS.q();
		this.k(o, P.Xu, P.A6);
		this.w(new l(i.E.I))
	};

	function io(F) {
		dB.call(this, F, !0, "contourbutton", 17, 10.5, ge.wj)
	}
	io.prototype = new dB;
	io.prototype.WX = function (F) {
		this.k(this.rt[F.target.q()]);
		this.w(new l(i.E.I))
	};
	io.prototype.P3 = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.uH,
			W2: "contoureditor",
			xX: this.hg,
			response: this.aeu.bind(this)
		};
		this.w(P)
	};
	io.prototype.aeu = function (F) {
		this.k(F);
		this.w(new l(i.E.I))
	};
	io.prototype.HJ = function () {
		if (!this.lM) return;
		var F = Math.floor(38 * i.J()),
			P = Math.floor(38 * i.J()),
			o = [],
			X = [],
			Y = this.rt;
		for (var w = 0; w < Y.length; w++) {
			X.push(Y[w].Nm ? Y[w].Nm.v : "");
			o.push(H.JH.m2(Y[w].Crv.v, F, P))
		}
		this.UJ.Lf(o, X, F, P);
		this.lM = !1
	};
	io.prototype.k = function (F) {
		this.hg = JSON.parse(JSON.stringify(F));
		var P = this.hg.Crv.v;
		for (var w = 0; w < P.length; w++)
			if (P[w].v.Cnty == null) P[w].v.Cnty = {
				t: "bool",
				v: !0
			};
		this.AG()
	};
	io.prototype.AG = function () {
		var F = Math.floor(30 * i.J()),
			P = Math.floor(30 * i.J()),
			o = H.JH.m2(this.hg.Crv.v, F, P);
		this.mJ.setAttribute("src", o);
		i.Hc(this.mJ, F, P)
	};
	io.prototype.q = function () {
		return JSON.parse(JSON.stringify(this.hg))
	};

	function bW(F) {
		au.call(this);
		this.ud = null;
		this.yH = null;
		this.PJ = null;
		this.ML = null;
		this.am0 = [];
		this.afF = [];
		this.u = i.z("span", "fitem fillbutton");
		this.Jg = new au;
		this.Jg.u = i.z("div", "floatcont form");
		this.Jg.u.setAttribute("style", "width: 21em;");
		this.Jg.parent = this;
		this._J = F;
		this.yq = this.yq = i.z("label", "flabel");
		this.u.appendChild(this.yq);
		this.in = i.z("canvas");
		this.YV = this.in.getContext("2d");
		this.aiS = null;
		this.u.appendChild(this.in);
		this.in.addEventListener("click", this.JJ.bind(this), !1);
		this.QC = new aw([12, 66], ["", "Color", "Grad", "Patt"]);
		this.Jg.u.appendChild(this.QC.u);
		this.QC.$(i.E.I, this.WK, this);
		this.Jg.u.appendChild(i.z("hr"));
		this.a3A = i.z("span");
		this.a7 = new eH(!0);
		this.a7.parent = this.Jg;
		this.a7.$(i.E.I, this.WK, this);
		this.Hv = new a4(10);
		this.Hv.$(i.E.I, this.WK, this);
		this.oJ = i.z("div", "marged hiline");
		this.oJ.appendChild(this.a7.u);
		i.Rf(this.oJ);
		this.oJ.appendChild(this.Hv.u);
		this.te = new e8("GrFl", !0);
		this.te.parent = this.Jg;
		this.te.$(i.E.I, this.WK, this);
		this.g1 = i.z("div", "marged hiline");
		var P = "Grad Type Algn Angl Rvrs Scl Ofst".split(" ");
		for (var w = 0; w < P.length; w++) {
			var o = this.te.tV[P[w]].u;
			this.g1.appendChild(o)
		}
		this.yi = new e8("patternFill", !0);
		this.yi.parent = this.Jg;
		this.yi.$(i.E.I, this.WK, this);
		this.oG = i.z("div", "marged hiline");
		var P = ["Ptrn", "Scl", "Algn", "phase"];
		for (var w = 0; w < P.length; w++) {
			var o = this.yi.tV[P[w]].u;
			this.oG.appendChild(o)
		}
	}
	bW.prototype = new au;
	bW.prototype.AK = function (F, P) {
		if (P == ge.AT) {
			this.am0 = [];
			this.afF = [];
			if (this.ud) this.k(this.PJ, this.q(), this.ud)
		}
		this.yH = F;
		this.te.AK(F, P);
		this.yi.AK(F, P)
	};
	bW.prototype.t = function () {
		this.yq.textContent = h9.get(this._J) + ": ";
		this.QC.t();
		this.a7.t();
		this.te.t();
		this.yi.t()
	};
	bW.prototype.WK = function (F) {
		var P = F.currentTarget;
		if (P == this.QC) {
			var o = this.QC.q(),
				X = {
					d1: o,
					qA: this.ud[o]
				};
			if (o > 0 && X.qA == null) X.qA = JSON.parse(JSON.stringify(ce._G[o - 1]));
			if (this.ud) this.k(this.PJ, X, this.ud)
		}
		if (P == this.Hv) this.a7.s$(P.q());
		this.w(new l(i.E.I, !1))
	};
	bW.prototype.JJ = function (F) {
		var P = this.in.getBoundingClientRect(),
			o = new l(i.E.L, !0);
		o.data = {
			e: i.B.VX,
			Nc: this.Jg,
			x: P.left,
			y: P.top + P.height + 4
		};
		this.w(o);
		this.Hv.k(this.a7.sJ())
	};
	bW.prototype.k = function (F, P, o) {
		this.ud = o;
		this.PJ = F;
		var X = [
				[13, 1, 0],
				[13, 0],
				[12, 37],
				[12, 62]
			],
			Y = this.am0,
			y = this.afF,
			z = !1,
			U;
		for (var w = 0; w < 4; w++) {
			var s = {
					d1: w,
					qA: o[w]
				},
				t = bW.$m(s);
			if (y[w] == t) continue;
			z = !0;
			var d = bW.eY(null, s, this.yH, this.PJ, 22, 22, !1);
			Y[w] = "<img width=\"22\" height=\"22\" src=\"" + d + "\" />";
			y[w] = t
		}
		if (z) this.QC.KI(Y, X);
		this.QC.k(P.d1);
		var t = bW.$m(P);
		if (t != this.aiS) bW.eY(this.YV, P, this.yH, this.PJ, 30, 23, !0);
		this.aiS = t;
		var v = P.d1;
		if (v == 0) {
			U = this.a3A
		}
		if (v == 1) {
			this.a7.k(P.qA.Clr.v);
			U = this.oJ
		}
		if (v == 2) {
			this.te.update(F, P.qA);
			U = this.g1
		}
		if (v == 3) {
			this.yi.update(F, P.qA);
			U = this.oG
		}
		if (U != this.ML) {
			if (this.ML != null) {
				this.Jg.u.removeChild(this.ML)
			}
			this.Jg.u.appendChild(U);
			this.ML = U
		}
	};
	bW.prototype.q = function () {
		var F = {
			d1: this.QC.q()
		};
		if (F.d1 == 1) {
			F.qA = JSON.parse(JSON.stringify(ce._G[0]));
			F.qA.Clr.v = this.a7.q()
		}
		if (F.d1 == 2) {
			F.qA = this.te.q()
		}
		if (F.d1 == 3) {
			F.qA = this.yi.q()
		}
		return F
	};
	bW.$m = function (F) {
		var P = F.d1,
			o = F.qA,
			X = "empty";
		if (P == 1) {
			X = H.j.T6(o.Clr.v);
			X = X.U + "," + X.S + "," + X.i
		}
		if (P == 2) X = JSON.stringify(o.Grad.v);
		if (P == 3) X = o.Ptrn.v.Idnt.v;
		return X
	};
	bW.eY = function (F, P, o, X, Y, y, z) {
		if (F == null) F = bW.YV;
		var s = Math.floor(Y * i.J()),
			t = Math.floor(y * i.J()),
			d = F.canvas,
			U;
		d.width = s;
		d.height = t;
		i.Hc(d, s, t);
		var v = P.d1;
		if (v == 0) {
			F.fillStyle = "#ffffff";
			F.fillRect(0, 0, s, t);
			F.strokeStyle = "#ff0000";
			F.lineWidth = 2;
			F.moveTo(0, 0);
			F.lineTo(s, t);
			F.moveTo(0, t);
			F.lineTo(s, 0);
			F.stroke()
		}
		if (v == 1) {
			var A = P.qA.Clr.v;
			A = H.j.T6(A);
			F.fillStyle = "#" + H.v2(A.U << 16 | A.S << 8 | A.i);
			F.fillRect(0, 0, s, t)
		}
		if (v == 2) {
			B.T7.m2(P.qA.Grad.v, s, t, 0, o.GY, o.Ty, d)
		}
		if (v == 3) {
			var Z = P.qA.Ptrn.v,
				D;
			if (X != null) D = cr.tc(Z, X.add.Patt);
			if (D == null) D = cr.tc(Z, o.WB);
			e9.m2(D, s, t, d)
		}
		if (z) {
			F.beginPath();
			F.strokeStyle = "#000000";
			F.fillStyle = "#ffffff";
			F.lineWidth = 2;
			var q = s * .7,
				R = Math.floor(t * .7),
				J = 7 * i.J();
			F.moveTo(q, R);
			F.lineTo(q + J, R);
			F.lineTo(q + J / 2, R + J / 2);
			F.closePath();
			F.stroke();
			F.fill()
		}
		if (F == bW.YV) return d.toDataURL()
	};
	bW.YV = i.z("canvas").getContext("2d");

	function e9(F) {
		dB.call(this, F, !1, "patternbutton", 18, 10, ge.AT);
		this.pi = null
	}
	e9.prototype = new dB;
	e9.prototype.WX = function (F) {
		var P = this.rt[this.UJ.q()];
		this.hg = {
			classID: "Ptrn",
			Nm: {
				t: "TEXT",
				v: P.name
			},
			Idnt: {
				t: "TEXT",
				v: P.id
			}
		};
		this.w(new l(i.E.I));
		this.AG()
	};
	e9.w2 = !1;
	e9.prototype.HJ = function () {
		if (!this.lM) return;
		var F = this.rt;
		if (F == null || !e9.w2) {
			var P = new l(i.E.L, !0);
			P.data = {
				e: i.B.JX,
				S9: {
					url: "rsrc/basic/basic.pat"
				}
			};
			this.w(P);
			e9.w2 = !0;
			return
		}
		var o = Math.floor(34 * i.J()),
			X = Math.floor(34 * i.J()),
			Y = [],
			y = [];
		for (var w = 0; w < F.length; w++) {
			Y.push(e9.m2(F[w], o, X));
			y.push(F[w].name)
		}
		this.UJ.Lf(Y, y, o, X);
		this.lM = !1
	};
	e9.prototype.k = function (F, P) {
		if (this.hg && F.Idnt.v == this.hg.Idnt.v) return;
		this.hg = JSON.parse(JSON.stringify(F));
		this.AG(P)
	};
	e9.prototype.q = function () {
		return JSON.parse(JSON.stringify(this.hg))
	};
	e9.prototype.tk = function () {
		return this.pi ? [this.pi] : []
	};
	e9.prototype.AG = function (F) {
		var P = Math.floor(50 * i.J()),
			o = Math.floor(50 * i.J()),
			X;
		if (F != null) X = cr.tc(this.hg, F.add.Patt);
		if (X == null) X = cr.tc(this.hg, this.rt);
		this.pi = X;
		var Y = e9.m2(X, P, o);
		this.mJ.setAttribute("src", Y);
		i.Hc(this.mJ, P, o)
	};
	e9.w7 = i.z("canvas", "");
	e9.m2 = function (F, P, o, X) {
		if (X == null) X = e9.w7;
		var Y = X.getContext("2d");
		X.width = P;
		X.height = o;
		if (F) {
			var y = F.Jx[1],
				z = y.Z,
				s = y.h,
				t = F.Jx[0],
				d = Math.min(P / z, o / s),
				U = d;
			if (U * z < 2) U = 2 / z;
			var v = d;
			if (v * s < 2) v = 2 / s;
			var A = B.X.Z6([t, y], new cu(U, 0, 0, v, 0, 0), !1),
				Z = A.rect.Z,
				D = A.rect.h,
				q = Y.createImageData(Z, D);
			H.Hk(A.buffer, q.data);
			Y.putImageData(q, Math.floor((P - Z) / 2), Math.floor((o - D) / 2))
		}
		return X.toDataURL()
	};

	function dV(F) {
		dB.call(this, F, !1, "patternbutton", 24.2, 17, ge.Ym);
		this.TG = ""
	}
	dV.prototype = new dB;
	dV.prototype.WX = function (F) {
		this.hg = JSON.parse(JSON.stringify(this.rt[0][this.UJ.q()]));
		this.w(new l(i.E.I))
	};
	dV.prototype.HJ = function () {
		var F = this.rt;
		if (F == null || !this.lM) return;
		var P = Math.floor(50 * i.J()),
			o = Math.floor(50 * i.J()),
			X = [],
			Y = [];
		for (var w = 0; w < F[0].length; w++) {
			X.push(dV.m2(this.rt[0][w].rB, P, o, this.rt[1]));
			Y.push(F[0][w].By.Nm.v.split("=").pop())
		}
		this.UJ.Lf(X, Y, P, o);
		this.lM = !1
	};
	dV.prototype.k = function (F, P, o, X) {
		var Y = JSON.stringify(F.rB) + "," + o + "," + X;
		if (this.TG != Y) {
			this.TG = Y;
			this.hg = JSON.parse(JSON.stringify(F));
			this.AG(P, o, X)
		}
		this.UJ.tj(-1)
	};
	dV.prototype.q = function () {
		return JSON.parse(JSON.stringify(this.hg))
	};
	dV.prototype.AG = function (F, P, o) {
		var X = Math.floor(68 * i.J()),
			Y = Math.floor(68 * i.J()),
			y = dV.m2(this.hg.rB, X, Y, F ? F : this.rt[1], P, o);
		this.mJ.setAttribute("src", y);
		i.Hc(this.mJ, X, Y)
	};
	dV.m2 = function (F, P, o, X, Y, y) {
		var z = new c_;
		z.Z = P;
		z.h = o;
		z.buffer = H.R(P * o * 4);
		z.add.Patt = X;
		z.U9(Y == null ? 90 : Y);
		z.Q3(y == null ? 30 : y);
		var s = new ev(0, 0, Math.round(P * .5), Math.round(o * .5));
		s.x = Math.round((P - s.Z) / 2);
		s.y = Math.round((o - s.h) / 2);
		var t = z.an();
		t.rect = s;
		t.buffer = H.R(s.M() * 4);
		H.XB(t.buffer, 4284045657);
		cr.a5(F, t, .5 * 100);
		z.r.push(t);
		z.dr();
		z.A();
		var d = k.pQ;
		k.pQ = !1;
		z.tf();
		var U = z.lD();
		k.pQ = d;
		var v = em.vd(U.buffer, z.Z, z.h);
		return v
	};

	function hv(F) {
		dB.call(this, null, !1, "tpresetbutton", 18, 24, ge.o8, !0);
		i.sT(this.u, "fitem");
		this.UJ.DJ(1);
		this.id = F;
		this.AG();
		this.ag = new aD([15, 7, 9]);
		this.ag.k(!0);
		this.ag.$(i.E.I, this.a70, this);
		this.sR.appendChild(this.ag.u)
	}
	hv.prototype = new dB;
	hv.prototype.acT = function (F) {
		if (this.id == F) return;
		this.id = F;
		this._F(this.rt)
	};
	hv.prototype.WX = function (F) {
		var P = this.rt[this.UJ.q()],
			o = new l(i.E.L, !0);
		o.data = {
			e: i.B.Sl,
			RY: "set",
			S9: ge.o8,
			EM: P
		};
		this.w(o)
	};
	hv.prototype.t = function () {
		dB.prototype.t.call(this);
		this.ag.t()
	};
	hv.prototype.a70 = function () {
		this.lM = !0;
		this.HJ()
	};
	hv.prototype.HJ = function () {
		if (!this.lM) return;
		var F = Math.floor(16 * i.J()),
			P = Math.floor(16 * i.J()),
			o = [],
			X = [],
			Y = this.rt,
			y = this.ag.q();
		for (var w = 0; w < Y.length; w++) {
			var z = B.iH(Y[w]);
			if (!y || z == this.id) {
				X.push(Y[w][0] ? Y[w][0].split("=").pop() : "");
				o.push(z == -1 ? "" : PIMG[B.er[z][0]])
			} else {
				o.push(null);
				X.push(null)
			}
		}
		this.UJ.Lf(o, X, F, P);
		this.lM = !1
	};
	hv.prototype.AG = function () {
		var F = this.mJ;
		F.setAttribute("src", PIMG[B.er[this.id][0]]);
		i.KL(F, "toolicon")
	};
	hv.prototype.tk = function () {
		return null
	};
	hv.N2 = {};
	hv.m2 = function (F, P, o) {
		var X = hv.ui,
			Y = hv.N2,
			y = H.v2(F.U << 16 | F.S << 8 | F.i);
		if (Y[y]) return Y[y];
		if (X == null) {
			var z = i.z("canvas");
			X = hv.ui = z.getContext("2d")
		}
		var z = X.canvas;
		z.width = P;
		z.height = o;
		X.fillStyle = "#" + y;
		X.fillRect(0, 0, P, o);
		var s = Y[y] = z.toDataURL();
		return s
	};

	function h0(F, P) {
		au.call(this);
		this.u = i.z("span", "fitem curveeditor");
		this.x5 = null;
		this.a3r = 0;
		this.r0 = "";
		this.mode = 0;
		this.CD = F;
		this.aix = P;
		this.e2 = null;
		this.Ma = null;
		this.KO = new aH;
		this.ab = this.tz.bind(this);
		this.Ja = this.JB.bind(this);
		this.in = i.z("canvas", "");
		this.YV = this.in.getContext("2d");
		i.w4(this.in);
		i.Tv(this.in, 256, 256, this.YV);
		this.u.appendChild(this.in);
		i.X8(this.in, this.Fx.bind(this))
	}
	h0.prototype = new au;
	h0.prototype.k = function (F, w) {
		var P = JSON.stringify(F);
		if (P == JSON.stringify(this.e2)) return;
		this.mode = F.length == 256 ? 1 : 0;
		this.e2 = JSON.parse(P);
		if (w != null) this.Ma = this.e2[w];
		this.U5()
	};
	h0.prototype.iM = function (F, P, o) {
		this.x5 = F;
		this.a3r = P;
		this.r0 = o;
		this.U5()
	};
	h0.prototype.q = function () {
		return JSON.parse(JSON.stringify(this.e2))
	};
	h0.prototype.$Y = function () {
		return this.e2.indexOf(this.Ma)
	};
	h0.prototype.Fx = function (F) {
		var P = i.oA(F, this.in),
			o = P.x,
			X = 256 - P.y;
		if (this.CD) {
			var Y = o;
			o = 256 - X;
			X = Y
		}
		this.KO.Oh(o, X);
		if (this.mode == 0) {
			var y = null;
			for (var w = 0; w < this.e2.length; w++) {
				var z = this.e2[w].v,
					s = z.Hrzn.v - o,
					t = z.Vrtc.v - X,
					d = Math.sqrt(s * s + t * t);
				if (d < 5) y = this.e2[w]
			}
			if (y == null) {
				y = H.JH.Rn(o, X, !0);
				this.e2.push(y)
			}
			this.Ma = y
		}
		i.Jr(document.body, this.ab);
		i.so(document.body, this.Ja);
		this.tz(F)
	};
	h0.prototype.tz = function (F) {
		var P = i.oA(F, this.in),
			o = P.x,
			X = 256 - P.y;
		if (this.CD) {
			var Y = o;
			o = 256 - X;
			X = Y
		}
		if (this.mode == 0) {
			var y = this.e2,
				z = this.aix,
				s = y.indexOf(this.Ma),
				t = s == 0 || s == y.length - 1,
				d = 0,
				U = 255,
				v = !0;
			if (t) {
				d = 1;
				U = 254
			}
			if (!z || !t) this.Ma.v.Hrzn.v = Math.max(d, Math.min(U, Math.round(o)));
			this.Ma.v.Vrtc.v = Math.max(0, Math.min(255, Math.round(X)));
			for (var w = 0; w < y.length; w++) {
				if (y[w] == this.Ma) continue;
				if (Math.abs(y[w].v.Hrzn.v - this.Ma.v.Hrzn.v) < 2) v = !1
			}
			if (o < 0 || o > 255 || X < 0 || X > 255) v = !1;
			if (v && y.indexOf(this.Ma) == -1) y.push(this.Ma);
			if (!v && y.indexOf(this.Ma) != -1 && y.length > 2 && (!z || !t)) y.splice(y.indexOf(this.Ma), 1);
			if (y[0].v.Hrzn.v == y[1].v.Hrzn.v)
				if (y[0].v.Hrzn.v == 0) y[1].v.Hrzn.v = 1;
				else y[0].v.Hrzn.v--;
			y.sort(function (J, W) {
				return J.v.Hrzn.v - W.v.Hrzn.v
			})
		} else {
			o = Math.round(o);
			X = Math.round(X);
			o = Math.max(0, Math.min(255, o));
			X = Math.max(0, Math.min(255, X));
			var A = this.KO.x,
				Z = o,
				D = this.KO.y,
				q = X;
			if (o < this.KO.x) {
				Z = A;
				A = o;
				q = D;
				D = X
			}
			this.e2[o] = X;
			if (A != Z)
				for (var R = A; R <= Z; R++) this.e2[R] = Math.round(D + (R - A) * (q - D) / (Z - A))
		}
		this.KO.Oh(o, X);
		this.U5();
		this.w(new l(i.E.I))
	};
	h0.prototype.JB = function (F) {
		i.NG(document.body, this.ab);
		i.Sz(document.body, this.Ja);
		this.w(new l(i.E.I))
	};
	h0.prototype.U5 = function () {
		var F = this.YV;
		F.fillStyle = "#ffffff";
		F.fillRect(0, 0, 256, 256);
		if (this.x5) {
			F.translate(0, 256);
			F.scale(1, -1);
			cq.fW(F, this.x5, 5700 / this.a3r, this.r0);
			F.scale(1, -1);
			F.translate(0, -256)
		}
		F.strokeStyle = "#aaaaaa";
		F.lineWidth = 1;
		F.beginPath();
		for (var w = 1; w < 4; w++) {
			F.moveTo(0, 64 * w - .5);
			F.lineTo(255, 64 * w - .5);
			F.moveTo(64 * w - .5, 0);
			F.lineTo(64 * w - .5, 255)
		}
		F.stroke();
		if (this.CD) {
			F.save();
			F.transform(0, 1, -1, 0, 256, 0)
		}
		if (this.mode == 0) {
			var P = this.e2,
				o = H.JH.AQ(P, 256);
			F.strokeStyle = "#000000";
			F.beginPath();
			F.moveTo(0, 255.5 - o[0]);
			for (var w = 0; w < 256; w++) F.lineTo(w, 255.5 - o[w]);
			F.stroke();
			F.lineWidth = 2;
			for (var w = 0; w < P.length; w++) {
				var X = P[w].v;
				F.fillStyle = this.Ma == P[w] ? "#333" : "#fff";
				F.beginPath();
				F.moveTo(X.Hrzn.v, 255.5 - X.Vrtc.v);
				F.arc(X.Hrzn.v, 255.5 - X.Vrtc.v, 3, 0, 2 * Math.PI);
				F.stroke();
				F.fill()
			}
		} else {
			var o = this.e2;
			F.strokeStyle = "#000000";
			F.beginPath();
			F.moveTo(0, 255.5 - o[0]);
			for (var w = 0; w < 256; w++) F.lineTo(w, 255.5 - o[w]);
			F.stroke()
		}
		if (this.CD) F.restore()
	};

	function cq(F) {
		au.call(this);
		this.u = i.z("span", "");
		this.eG = new gq([12, 4], ["RGB", [13, 1, 1],
			[13, 1, 4],
			[13, 1, 5],
			[12, 82]
		]);
		this.eG.$(i.E.I, this.qK, this);
		this.u.appendChild(this.eG.u);
		i.Rf(this.u);
		this.w7 = i.z("canvas");
		var P = this.w7;
		this.u.appendChild(P);
		P.width = Math.round(F * i.J());
		P.height = Math.round(100 * i.J());
		i.Hc(P, P.width, P.height);
		this.ui = P.getContext("2d");
		this.x5 = null;
		this.yj = 0
	}
	cq.prototype = new au;
	cq.prototype.t = function () {
		this.eG.t()
	};
	cq.prototype.DJ = function (F) {
		this.eG.k(F);
		this.qK()
	};
	cq.prototype.k = function (F) {
		this.x5 = F;
		this.qK()
	};
	cq.prototype.s$ = function (F) {
		if (F == this.yj) return;
		this.yj = F;
		this.qK()
	};
	cq.prototype.qK = function () {
		if (this.x5 == null) return;
		var F = this.w7,
			P = this.ui,
			o = this.x5,
			X = this.eG.q(),
			Y = 6e3 / o[4],
			y = "#" + H.v2(this.yj),
			z = cq.fW;
		F.width = F.width;
		P.setTransform(F.width / 256, 0, 0, -F.height / 100, 0, F.height);
		P.globalCompositeOperation = "lighter";
		if (X == 0) z(P, o[0], Y / 3, y);
		else if (X < 4) z(P, o[X], Y, y);
		else {
			z(P, o[1], Y, "#ff0000");
			z(P, o[2], Y, "#00ff00");
			z(P, o[3], Y, "#0000ff")
		}
		P.setTransform(1, 0, 0, 1, 0, 0)
	};
	cq.fW = function (F, P, o, X) {
		F.beginPath();
		F.moveTo(0, 0);
		for (var Y = 0; Y < 256; Y++) F.lineTo(Y, P[Y] * o);
		F.lineTo(256, 0);
		F.closePath();
		F.fillStyle = X;
		F.fill()
	};

	function ei(F) {
		au.call(this);
		this.Xa = {
			U: 0,
			S: 0,
			i: 0
		};
		if (Math.abs(F - 256 / i.J()) < 10) F = 256 / i.J();
		var P = this.u = i.z("div", "flexrow");
		this.wk = new aH;
		this.PH = new aH;
		this.Pw = this.dG.bind(this);
		this.GD = this.a6_.bind(this);
		this.in = i.z("canvas", "");
		this.YV = this.in.getContext("2d");
		this.in.width = this.in.height = 256;
		this.a4Z = this.YV.getImageData(0, 0, 256, 256);
		this.abi = -1;
		i.w4(this.in);
		i.X8(this.in, this.alg.bind(this));
		P.appendChild(this.in);
		this.afx = this.Lz.bind(this);
		this.ajC = this.ai9.bind(this);
		this.TK = i.z("canvas", "");
		this.dI = this.TK.getContext("2d");
		this.TK.width = 20;
		this.TK.height = 256;
		this.amh = this.dI.getImageData(0, 0, 20, 256);
		this.aka(this.amh.data, 20, 256);
		i.w4(this.TK);
		i.X8(this.TK, this.a6G.bind(this));
		P.appendChild(this.TK);
		this.in.setAttribute("style", "width:" + F + "px; height:" + F + "px");
		this.TK.setAttribute("style", "width:" + 20 / i.J() + "px; height:" + F + "px")
	}
	ei.prototype = new au;
	ei.prototype.l9 = function (F, P) {
		this.in.style.width = F + "px"
	};
	ei.prototype.k = function (F) {
		this.Xa = F;
		this.update()
	};
	ei.prototype.q = function () {
		return JSON.parse(JSON.stringify(this.Xa))
	};
	ei.prototype.update = function () {
		var F = this.Xa,
			P = H.eE(F.U, F.S, F.i);
		if (P.pl == 0) P.Pg = this.wk.x / 255;
		if (P.Pg == 0 || P.pl == 0) P.mi = (255 - this.w_(this.PH.y)) / 255;
		if (P.pl != 0) this.wk.x = P.Pg * 255;
		this.wk.y = (1 - P.pl) * 255;
		this.PH.y = (1 - P.mi) * 255;
		var o = this.a4Z;
		if (Math.abs(P.mi - this.abi) > .002) {
			this.aeN(o.data, 256, 256, P.mi);
			this.abi = P.mi
		}
		this.YV.putImageData(o, 0, 0);
		this.YV.strokeStyle = "#000000";
		this.YV.beginPath();
		this.YV.arc(this.wk.x + 1, this.wk.y + 1, 5, 0, 2 * Math.PI);
		this.YV.stroke();
		this.YV.strokeStyle = "#ffffff";
		this.YV.beginPath();
		this.YV.arc(this.wk.x, this.wk.y, 5, 0, 2 * Math.PI);
		this.YV.stroke();
		var o = this.amh;
		this.dI.putImageData(o, 0, 0);
		this.dI.strokeStyle = "#ffffff";
		this.dI.beginPath();
		this.dI.moveTo(0, this.PH.y);
		this.dI.lineTo(20, this.PH.y);
		this.dI.lineWidth = 2;
		this.dI.stroke()
	};
	ei.prototype.aeN = function (F, P, o, X) {
		var Y = 1 / P,
			y = 1 / o;
		for (var z = 0; z < o; z++)
			for (var s = 0; s < P; s++) {
				var t = H.ul(X, s * Y, (o - z - 1) * y),
					w = z * P + s << 2;
				F[w + 0] = ~~(t.U * 255);
				F[w + 1] = ~~(t.S * 255);
				F[w + 2] = ~~(t.i * 255);
				F[w + 3] = 255
			}
	};
	ei.prototype.aka = function (F, P, o) {
		var X = new Uint32Array(F.buffer);
		for (var Y = 0; Y < o; Y++) {
			var y = H.ul(1 - Y / o, 1, 1),
				z = 255 << 24 | y.i * 255 << 16 | y.S * 255 << 8 | y.U * 255;
			for (var s = 0; s < P; s++) X[Y * P + s] = z
		}
	};
	ei.prototype.alg = function (F) {
		i.Jr(window, this.Pw);
		i.so(window, this.GD);
		this.dG(F)
	};
	ei.prototype.a6_ = function (F) {
		i.NG(window, this.Pw);
		i.Sz(window, this.GD)
	};
	ei.prototype.dG = function (F) {
		var P = i.oA(F, this.in);
		P.x = P.x * (256 / parseFloat(this.in.style.width));
		P.y = P.y * (256 / parseFloat(this.in.style.height));
		this.wk.Oh(this.w_(P.x), this.w_(P.y));
		this.H6()
	};
	ei.prototype.H6 = function () {
		this.Xa = this.aa$();
		this.w(new l(i.E.I))
	};
	ei.prototype.aa$ = function () {
		var F = H.ul((255 - this.w_(this.PH.y)) / 255, this.y5(this.wk.x / 255), this.y5(1 - this.wk.y / 255));
		return {
			U: F.U,
			S: F.S,
			i: F.i
		}
	};
	ei.prototype.a6G = function (F) {
		i.Jr(window, this.afx);
		i.so(window, this.ajC);
		this.Lz(F)
	};
	ei.prototype.ai9 = function (F) {
		i.NG(window, this.afx);
		i.Sz(window, this.ajC)
	};
	ei.prototype.Lz = function (F) {
		var P = i.oA(F, this.TK);
		P.y = P.y * (256 / parseFloat(this.TK.style.height));
		this.PH.Oh(this.w_(P.x), this.w_(P.y));
		this.H6()
	};
	ei.prototype.w_ = function (F) {
		return Math.max(0, Math.min(255, F))
	};
	ei.prototype.y5 = function (F) {
		return Math.max(0, Math.min(1, F))
	};

	function aw(F, P, o) {
		au.call(this);
		if (!P) return;
		this.cZ = 0;
		this.u = i.z("span", "fitem bbmenu");
		if (F) {
			this.q6 = F;
			this.yq = i.z("label", "flabel");
			this.yq.textContent = F + ":";
			this.u.appendChild(this.yq)
		}
		this.wT = [];
		this.fX = null;
		this.KI(P, o);
		this.k(0)
	}
	aw.prototype = new au;
	aw.prototype.kW = function (F) {
		this.q6 = F;
		this.t()
	};
	aw.prototype.t = function () {
		if (this.q6 != null) {
			this.yq.textContent = h9.get(this.q6) + ": "
		}
		for (var w = 0; w < this.wT.length; w++) this.wT[w].t()
	};
	aw.prototype.q = function () {
		return this.cZ
	};
	aw.prototype.KI = function (F, P) {
		while (this.wT.length > 0) this.u.removeChild(this.wT.pop().u);
		this.fX = F;
		for (var w = 0; w < F.length; w++) {
			var o = new fV(F[w], !1, P ? P[w] : null);
			o.$("click", this.Om, this);
			this.u.appendChild(o.u);
			this.wT.push(o)
		}
		this.t()
	};
	aw.prototype.k = function (F) {
		this.cZ = F;
		for (var w = 0; w < this.wT.length; w++) this.wT[w].pe();
		this.wT[F].V2()
	};
	aw.prototype.Om = function (F) {
		var w = this.wT.indexOf(F.target);
		this.k(w);
		this.w(new l(i.E.I, !1))
	};

	function aB(F, P, o, X) {
		if (X == null) X = 16;
		var Y = aB.bN,
			y = Y.getContext("2d"),
			z = X >>> 1;
		Y.width = Y.height = X;
		var s = [];
		for (var w = 0; w < P.length; w++) {
			if (P[w] == "checker") {
				y.fillStyle = "white";
				y.fillRect(0, 0, X, X);
				y.fillStyle = "#bbbbbb";
				y.fillRect(z, 0, z, z);
				y.fillRect(0, z, z, z)
			} else {
				y.fillStyle = P[w];
				y.fillRect(0, 0, X, X)
			}
			s.push("<img src=\"" + Y.toDataURL() + "\" />")
		}
		aw.call(this, F, s, o)
	}
	aB.prototype = new aw;
	aB.bN = i.z("canvas");

	function gq(F, P, o, X) {
		au.call(this);
		if (!P) return;
		if (o == null) o = !1;
		this.cZ = 0;
		this.agG = o;
		this.q6 = F;
		this.M0 = null;
		this.a6m = X;
		var Y = "dd" + i.l$();
		this.u = i.z("span", "fitem ddmenu");
		if (F && !o) {
			this.yq = i.z("label", "flabel");
			this.u.appendChild(this.yq);
			this.yq.setAttribute("for", Y)
		}
		this.g4 = i.z("select", "bbtn");
		this.g4.setAttribute("id", Y);
		this.u.appendChild(this.g4);
		this.g4.addEventListener("change", this.Om.bind(this), !1);
		this.wT = [];
		this.fX = null;
		this.KI(P, X);
		this.t()
	}
	gq.prototype = new au;
	gq.prototype.kW = function (F) {
		this.q6 = F;
		this.t()
	};
	gq.prototype.t = function () {
		if (this.q6 != null) {
			var F = h9.get(this.q6);
			if (this.agG) this.g4.setAttribute("title", F);
			else this.yq.textContent = F + ":"
		}
		if (this.fX) this.KI(this.fX, this.a6m);
		this.k(this.cZ)
	};
	gq.prototype.q = function () {
		return this.cZ
	};
	gq.prototype.KI = function (F, P) {
		i.TD(this.g4);
		var o = [],
			X = 0;
		if (P) {
			o.push(P[0]);
			for (var w = 1; w < P.length; w++) o.push(o[w - 1] + P[w])
		}
		this.fX = F;
		this.M0 = [];
		this.a6m = P;
		for (var w = 0; w < F.length; w++) {
			var Y = i.z("option");
			Y.textContent = h9.get(F[w]);
			Y.setAttribute("value", w);
			this.g4.appendChild(Y);
			this.wT.push(Y);
			this.M0.push(w + X);
			if (o.indexOf(w + 1) != -1 && w != F.length - 1) {
				var y = i.z("option");
				y.setAttribute("disabled", "");
				y.textContent = "";
				this.g4.appendChild(y);
				X++
			}
		}
	};
	gq.prototype.k = function (F) {
		this.cZ = F;
		this.g4.selectedIndex = this.M0[F]
	};
	gq.prototype.Om = function (F) {
		this.cZ = this.M0.indexOf(this.g4.selectedIndex);
		this.w(new l(i.E.I, !1))
	};

	function eZ() {
		au.call(this);
		this.s0 = null;
		this.nE = new dy;
		this.nE.$(i.E.I, this.a5f, this);
		this.nE.parent = this;
		this.WT = new gJ([12, 14, 0], 1, 150, "px", 0, !0);
		this.WT.$(i.E.I, this.y_, this);
		this.WT.parent = this;
		this.Z$ = new gJ([16, 0], 0, 100, "px", 2, !0, null, 5);
		this.Z$.$(i.E.I, this.y_, this);
		this.Z$.parent = this;
		this.dw = new aD("Auto");
		this.dw.$(i.E.I, this.y_, this);
		this.rj = new gJ([16, 1], -500, 5e3, "%", 0, !0);
		this.rj.$(i.E.I, this.y_, this);
		this.rj.parent = this;
		this.nV = new gJ("\u2B0D", 1, 300, "%", null, null, null, null, [
			[2, 7],
			[22, 4, 3]
		]);
		this.nV.$(i.E.I, this.y_, this);
		this.nV.parent = this;
		this.ql = new gJ("\u2B0C", 1, 300, "%", null, null, null, null, [
			[2, 7],
			[22, 4, 2]
		]);
		this.ql.$(i.E.I, this.y_, this);
		this.ql.parent = this;
		this.DX = new gJ([16, 2], -10, 10, "px");
		this.DX.$(i.E.I, this.y_, this);
		this.DX.parent = this;
		this.Gb = new eH(!0);
		this.Gb.$(i.E.I, this.a1k, this);
		this.Gb.parent = this;
		this.fR = new fV("<img src=\"" + PIMG["type/bold"] + "\" class=\"autoscale gsicon\" />");
		this.ZH = new fV("<img src=\"" + PIMG["type/italic"] + "\" class=\"autoscale gsicon\" />");
		this.J_ = new fV("<img src=\"" + PIMG["type/caps"] + "\" class=\"autoscale gsicon\" />");
		this.V6 = new fV("<img src=\"" + PIMG["type/scaps"] + "\" class=\"autoscale gsicon\" />");
		this.Gr = new fV("<img src=\"" + PIMG["type/sub"] + "\" class=\"autoscale gsicon\" />");
		this.N$ = new fV("<img src=\"" + PIMG["type/sup"] + "\" class=\"autoscale gsicon\" />");
		this.fL = new fV("<img src=\"" + PIMG["type/under"] + "\" class=\"autoscale gsicon\" />");
		this.u8 = new fV("<img src=\"" + PIMG["type/strike"] + "\" class=\"autoscale gsicon\" />");
		var F = [this.fR, this.ZH, this.J_, this.V6, this.Gr, this.N$, this.fL, this.u8];
		for (var w = 0; w < F.length; w++) F[w].$("click", this.ag1, this);
		this.RV = new fV("<img src=\"" + PIMG["par/left"] + "\" class=\"autoscale gsicon\" />");
		this.$S = new fV("<img src=\"" + PIMG["par/right"] + "\" class=\"autoscale gsicon\" />");
		this.Zj = new fV("<img src=\"" + PIMG["par/center"] + "\" class=\"autoscale gsicon\" />");
		this.aal = new fV("<img src=\"" + PIMG["par/jleft"] + "\" class=\"autoscale gsicon\" />");
		this.aai = new fV("<img src=\"" + PIMG["par/jright"] + "\" class=\"autoscale gsicon\" />");
		this.a2L = new fV("<img src=\"" + PIMG["par/jcenter"] + "\" class=\"autoscale gsicon\" />");
		this.a7z = new fV("<img src=\"" + PIMG["par/jall"] + "\" class=\"autoscale gsicon\" />");
		this.ba = [this.RV, this.$S, this.Zj, this.aal, this.aai, this.a2L, this.a7z];
		for (var w = 0; w < this.ba.length; w++) this.ba[w].$("click", this.y_, this);
		var P = ["lind", "rind", "flind", "bind", "aind"],
			o = [];
		for (var w = 0; w < 5; w++) o.push("<img src=\"" + PIMG["par/" + P[w]] + "\" class=\"autoscale gsicon\" /> ");
		this.Pp = new gJ(o[0], -20, 20, "px");
		this.Pp.$(i.E.I, this.y_, this);
		this.Pp.parent = this;
		this.aK = new gJ(o[1], -20, 20, "px");
		this.aK.$(i.E.I, this.y_, this);
		this.aK.parent = this;
		this.aO = new gJ(o[2], -20, 20, "px");
		this.aO.$(i.E.I, this.y_, this);
		this.aO.parent = this;
		this.Vx = new gJ(o[3], -20, 20, "px");
		this.Vx.$(i.E.I, this.y_, this);
		this.Vx.parent = this;
		this.BT = new gJ(o[4], -20, 20, "px");
		this.BT.$(i.E.I, this.y_, this);
		this.BT.parent = this;
		this.gD = new aw([12, 33], ["Abc ...", "... \u0623\u064A \u0628\u064A"]);
		this.gD.$(i.E.I, this.y_, this);
		this.gD.parent = this
	}
	eZ.prototype = new au;
	eZ.prototype.t = function () {
		this.nE.t();
		this.WT.t();
		this.Z$.t();
		this.rj.t();
		this.DX.t();
		this.nV.t();
		this.ql.t();
		this.gD.t()
	};
	eZ.prototype.k = function (F, P, o) {
		this.T2 = JSON.parse(JSON.stringify(F));
		var X = this.T2,
			Y = X.dS,
			y = X.eS;
		this.fR.k(Y.FauxBold != null ? Y.FauxBold : !1);
		this.ZH.k(Y.FauxItalic != null ? Y.FauxItalic : !1);
		this.J_.k(Y.FontCaps == 2);
		this.V6.k(Y.FontCaps == 1);
		this.N$.k(Y.FontBaseline == 1);
		this.Gr.k(Y.FontBaseline == 2);
		this.fL.k(Y.Underline);
		this.u8.k(Y.Strikethrough);
		this.nE.k(Y.Font == null ? null : X.Dm[Y.Font].Name, P, o);
		var z = Y.FontSize == null ? 20 : Y.FontSize;
		this.WT.k(z);
		var s = Y.Tracking;
		this.rj.k(s == null ? 0 : s);
		this.Z$.k(Y.Leading != null ? Y.Leading : 0);
		this.dw.k(Y.AutoLeading);
		this.nV.k((Y.VerticalScale != null ? Y.VerticalScale : 0) * 100);
		this.ql.k((Y.HorizontalScale != null ? Y.HorizontalScale : 0) * 100);
		this.DX.k(Y.BaselineShift != null ? Y.BaselineShift : 0);
		if (Y.FillColor) {
			var t = bt.T6(Y);
			this.Gb.s$(Math.round(t.U) << 16 | Math.round(t.S) << 8 | Math.round(t.i))
		} else this.Gb.s$(0);
		var d = y._Direction != null ? y._Direction : 0,
			U = bt.Wk(y);
		for (var w = 0; w < this.ba.length; w++) this.ba[w].k(U == w);
		this.gD.k(d);
		this.Pp.k(y.StartIndent != null ? y.StartIndent : 0);
		this.aK.k(y.EndIndent != null ? y.EndIndent : 0);
		this.aO.k(y.FirstLineIndent != null ? y.FirstLineIndent : 0);
		this.Vx.k(y.SpaceBefore != null ? y.SpaceBefore : 0);
		this.BT.k(y.SpaceAfter != null ? y.SpaceAfter : 0)
	};
	eZ.prototype.d5 = function () {
		var F = new l(i.E.L, !0);
		F.data = {
			e: i.B.Sl,
			S9: ge.Ol,
			T2: this.T2
		};
		this.w(F);
		var F = new l(i.E.H, !0);
		F.Q = B.OX;
		F.data = {
			e: "updateStyles"
		};
		this.w(F)
	};
	eZ.prototype.ag1 = function (F) {
		var P = this.T2.dS,
			o = F.target,
			X = !o.UX();
		if (o == this.fR) P.FauxBold = X;
		if (o == this.ZH) P.FauxItalic = X;
		if (o == this.J_) P.FontCaps = X ? 2 : 0;
		if (o == this.V6) P.FontCaps = X ? 1 : 0;
		if (o == this.N$) P.FontBaseline = X ? 1 : 0;
		if (o == this.Gr) P.FontBaseline = X ? 2 : 0;
		if (o == this.fL) P.Underline = X;
		if (o == this.u8) P.Strikethrough = X;
		this.d5()
	};
	eZ.prototype.y_ = function (F) {
		var P = this.T2.dS,
			o = this.T2.eS,
			X = F.target;
		if (X == this.rj) {
			var Y = this.rj.q();
			if (Y == null) window.alm("An error occured. Please, write us an email to support@photopea.com and describe what you did.");
			P.Tracking = Y
		}
		if (X == this.Z$) {
			P.AutoLeading = !1;
			P.Leading = this.Z$.q()
		}
		if (X == this.dw) {
			P.AutoLeading = this.dw.q()
		}
		if (X == this.WT) P.FontSize = X.q();
		if (X == this.nV) P.VerticalScale = X.q() / 100;
		if (X == this.ql) P.HorizontalScale = X.q() / 100;
		if (X == this.DX) P.BaselineShift = X.q();
		if (this.ba.indexOf(X) != -1) {
			o.Justification = bt.Wk(o, this.ba.indexOf(X))
		}
		if (X == this.Pp) o.StartIndent = X.q();
		if (X == this.aK) o.EndIndent = X.q();
		if (X == this.aO) o.FirstLineIndent = X.q();
		if (X == this.Vx) o.SpaceBefore = X.q();
		if (X == this.BT) o.SpaceAfter = X.q();
		if (X == this.gD) o._Direction = X.q();
		this.d5()
	};
	eZ.prototype.a5f = function (F) {
		var P = this.T2,
			o = this.nE.q(),
			X = -1;
		for (var w = 0; w < P.Dm.length; w++)
			if (P.Dm[w].Name == o) X = w;
		if (X == -1) {
			X = P.Dm.length;
			var Y = JSON.parse(JSON.stringify(P.Dm[0]));
			Y.Name = o;
			P.Dm.splice(X, 0, Y)
		}
		P.dS.Font = X;
		this.d5()
	};
	eZ.prototype.a1k = function (F) {
		var P = this.Gb.sJ(),
			o = {
				Type: 1,
				Values: [1, (P >> 16 & 255) / 255, (P >> 8 & 255) / 255, (P >> 0 & 255) / 255]
			};
		for (var w = 0; w < 4; w++) o.Values[w] = Math.round(o.Values[w] * 1e3) / 1e3;
		this.T2.dS.FillColor = o;
		this.d5()
	};

	function dy() {
		au.call(this);
		this.u = i.z("span", "fontinput");
		this.QD = null;
		this.Wv = null;
		this.L1 = null;
		this.GP = "";
		this.zF = {};
		this.rp = [];
		this.aeP = {};
		this.rv = !1;
		this.Vt = i.z("button", "fitem");
		this.Vt.setAttribute("style", "width:9em;");
		this.Vt.textContent = "Family Name \u25BC";
		this.u.appendChild(this.Vt);
		i.X8(this.Vt, this.D3.bind(this));
		this.hY = new au;
		this.hY.parent = this;
		this.hY.u = i.z("div", "floatcont");
		this.hY.u.addEventListener("keyup", this.aho.bind(this), !1);
		this.Ih = new gS(6.8);
		this.hY.u.appendChild(this.Ih.alx());
		this.Ih.parent = this.hY;
		this.Ih.$(i.E.I, this.pk, this);
		var F = i.z("div", "form");
		this.hY.u.appendChild(F);
		this.bQ = new fV(i.G6("tools/cshape", null, "autoscale"), !1, "Show Favorites Only");
		this.bQ.$("click", this.a0W, this);
		F.appendChild(this.bQ.u);
		this.WH = new f6([12, 86], null, 9);
		this.WH.$("input", this.ho, this);
		F.appendChild(this.WH.u);
		var P = this.a1_ = new fV([
			[23, 6],
			[22, 6, 0]
		], !1, "Load OTF / TTF file from your computer", !0);
		P.$("click", this.aiM, this);
		P.u.style.marginLeft = "1.5em";
		F.appendChild(P.u);
		this.eA = i.z("span", "fitem imageset scrollable marged");
		this.eA.style.height = "30em";
		this.hY.u.appendChild(this.eA);
		this.D9 = i.z("button", "fitem");
		this.D9.setAttribute("style", "width:7em;");
		this.D9.textContent = "SubFamily Name \u25BC";
		this.u.appendChild(this.D9);
		i.X8(this.D9, this.D3.bind(this));
		this.pZ = new au;
		this.pZ.parent = this;
		this.pZ.u = i.z("div", "floatcont");
		this.cF = i.z("span", "fitem imageset scrollable marged");
		this.pZ.u.appendChild(this.cF)
	}
	dy.prototype = new au;
	dy.prototype.aho = function (F) {
		var P = 0;
		if (G.be(F.code, G.DY)) P = -1;
		if (G.be(F.code, G.yF)) P = 1;
		if (P != 0) {
			var o = this.rp,
				X = o.length,
				Y = this.QD.Ij()[this.L1];
			if (Y == null && X == 0) return;
			var y = o.indexOf(Y[0]);
			if (y == -1) return;
			y = (y + P + X) % X;
			this.DI(o[y], null)
		}
	};
	dy.prototype.aiM = function () {
		var F = new l(i.E.L, !0);
		F.data = {
			e: i.B.ED,
			ai6: ".otf,.ttf,.ttc"
		};
		this.w(F)
	};
	dy.prototype.t = function () {
		this.Ih.t();
		this.a1_.t();
		this.bQ.kW(i.G6("tools/cshape", null, "autoscale"))
	};
	dy.prototype.a0W = function (F) {
		this.bQ.k(!this.bQ.UX());
		this.pk()
	};
	dy.prototype.ho = function (F) {
		this.GP = this.WH.q().toLowerCase();
		this.pk()
	};
	dy.prototype.D3 = function (F) {
		i.OZ(F);
		var P = F.currentTarget,
			o = P.getBoundingClientRect(),
			X = P == this.Vt,
			Y = X ? this.hY : this.pZ;
		if (i.WW(Y.u)) {
			this.sq(Y);
			return
		}
		if (!X && this.QD.Ij()[this.L1] == null) return;
		var y = new l(i.E.L, !0);
		y.data = {
			e: i.B.VX,
			Nc: Y,
			x: o.left,
			y: o.top + o.height
		};
		this.w(y);
		if (X) {
			this.pk();
			this.WH.co()
		}
	};
	dy.prototype.a0Z = function (F) {
		var P = F.currentTarget.firstChild.nextSibling.textContent;
		if (F.target.tagName.toLowerCase() == "button") {
			var o = this.Wv.slice(0),
				X = o.indexOf(P);
			if (X == -1) {
				o = o.slice(Math.max(0, o.length - 29));
				o.push(P)
			} else o.splice(X, 1);
			var Y = new l(i.E.L, !0);
			Y.data = {
				e: i.B.Sl,
				S9: ge.mj,
				uB: o
			};
			this.w(Y);
			this.rv = !0;
			this.pk()
		} else {
			this.DI(P, null);
			this.WH.co()
		}
	};
	dy.prototype.a17 = function (F) {
		this.DI(null, F.currentTarget.firstChild.textContent)
	};
	dy.prototype.DI = function (F, P) {
		var o = F == null ? this.pZ : this.hY,
			X = this.QD;
		if (F == null) F = X.Ij()[this.L1][0];
		else {
			var Y = X.MW(F),
				y = X.Ij()[this.L1];
			P = bh.u5(Y, y ? y[1] : "regular")
		}
		var z = X.TS(F, P)[2];
		this.k(z, X);
		this.w(new l(i.E.I, !1));
		this.sq(o);
		this.pk()
	};
	dy.prototype.sq = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.Qp,
			Nc: F
		};
		this.w(P)
	};
	dy.prototype.q = function () {
		return this.L1
	};
	dy.prototype.k = function (F, P, o) {
		var X = this.QD;
		if (F != null) this.L1 = F;
		else F = this.L1;
		this.QD = P;
		this.Wv = o;
		if (F != null) {
			var Y = P.Ij()[F],
				y, z;
			if (Y == null) {
				y = "- " + F;
				z = "-------"
			} else {
				y = Y[0];
				z = Y[1];
				var s = P.MW(y);
				s.sort(bh.a6Z);
				var t = s.indexOf(z),
					d = this.a17.bind(this);
				this.cF.textContent = "";
				for (var w = 0; w < s.length; w++) {
					var Y = P.TS(y, s[w]);
					if (!this.Ih.x3(Y)) continue;
					var U = this.J5(Y, Y[1], d, !1);
					this.cF.appendChild(U)
				}
			}
			this.Vt.textContent = y.substring(0, 15) + " \u25BC";
			this.Vt.setAttribute("title", y);
			this.D9.textContent = z.substring(0, 10) + " \u25BC";
			this.D9.setAttribute("title", z)
		}
	};
	dy.prototype.pk = function () {
		var F = this.QD.Ij()[this.L1],
			P = this.Wv,
			o = null,
			X = this.QD.amf(),
			Y = this.a0Z.bind(this);
		this.rp = [];
		for (var y in X) {
			var z = bh.u5(X[y], "regular"),
				s = this.QD.TS(y, z),
				t = P.indexOf(y) != -1,
				d = !0;
			if (this.GP.length > 0 && s[0].toLowerCase().indexOf(this.GP) == -1) d = !1;
			else if (!this.Ih.x3(s)) d = !1;
			else if (this.bQ.UX() && !t) d = !1;
			var U = this.zF[y];
			if (U == null) {
				var U = this.J5(s, y, Y, !0);
				this.zF[y] = U;
				this.eA.appendChild(U)
			}
			if (d) this.rp.push(y);
			var v = d ? "" : "display:none; ",
				A = "opacity: " + (t ? "1" : "0.2");
			if (F && F[0] == y) {
				v += "background-color:rgba(0,0,0,0.13);";
				o = U
			}
			if (this.aeP[y] != v + A) {
				U.setAttribute("style", v);
				U.firstChild.setAttribute("style", A);
				this.aeP[y] = v + A
			}
		}
		if (o && !this.rv) this.eA.scrollTop = o.offsetTop - 210;
		this.rv = !1
	};
	dy.prototype.J5 = function (F, P, o, X) {
		var Y = i.z("div", "fontitem"),
			t = "";
		Y.addEventListener("click", o, !1);
		if (X) Y.appendChild(i.z("button", "star"));
		var y = i.z("span", "label");
		y.setAttribute("title", P);
		y.textContent = P;
		Y.appendChild(y);
		var z = i.J(),
			s = 1 / z,
			d = bh.Ut * s,
			U = bh.lH * s;
		if (1 < z && z < 1.5) t = "width:" + d + "px; height:" + U + "px;";
		var v = i.z("span", "thumb gsicon");
		if (F.U6) {
			t += "background: url(" + F.U6 + ");";
			if (1 < z && z < 1.5) t += "background-size: " + d + "px " + U + "px;"
		} else {
			var A = Math.ceil(FNTS.list.length / bh.cols),
				Z = Math.floor(F.XN / A),
				D = F.XN % A,
				q = Z * bh.Ut,
				R = D * bh.lH;
			if (1 < z && z < 1.5) {
				t += "background-size: " + bh.cols * d + "px " + A * U + "px;";
				q *= s;
				R *= s
			}
			t += "background-position:-" + q + "px -" + R + "px;"
		}
		v.setAttribute("style", t);
		Y.appendChild(v);
		return Y
	};

	function gS(F) {
		au.call(this);
		this.u = i.z("button", "fitem bbtn");
		this.u.addEventListener("click", this.a8g.bind(this), !1);
		this.Jg = new au;
		this.Jg.u = i.z("div", "floatcont");
		this.Jg.parent = this;
		this.nx = i.z("div", "flexrow");
		this.Jg.u.appendChild(this.nx);
		this.kd = [];
		this.rh = [];
		var P = this.nx,
			o = i.z("div", ""),
			X = i.z("div", "");
		P.appendChild(o);
		P.appendChild(X);
		this.Gw = [];
		for (var w = 0; w < FNTS.cats.length; w++) this.Gw.push({
			name: FNTS.cats[w],
			index: w,
			YN: 0
		});
		this.NI = new aD([7, 0]);
		this.NI.$(i.E.I, this.agH, this);
		o.appendChild(this.NI.u);
		this.ME = i.z("div", "vlist marged scrollable");
		this.ME.setAttribute("style", "width:10.85em; height:" + F + "em; ");
		o.appendChild(this.ME);
		this.CS = [];
		for (var w = 0; w < this.Gw.length; w++) {
			var Y = this.Gw[w],
				y = new aD(Y.name);
			this.CS.push(y);
			y.$(i.E.I, this.a6B, this);
			y.k(!0);
			this.ME.appendChild(y.u);
			this.kd.push(1)
		}
		this.aem = new aD([7, 0]);
		this.aem.$(i.E.I, this.a9h, this);
		this.Be = i.z("div", "vlist marged scrollable");
		this.Be.setAttribute("style", "width:8.6em; height:" + (F + 1.5) + "em; ");
		X.appendChild(this.Be);
		this.P4 = [];
		for (var w = 0; w < FNTS.subsetNames.length; w++) {
			var y = new aD(FNTS.subsetNames[w]);
			this.P4.push(y);
			y.$(i.E.I, this.a6r, this);
			y.k(!1);
			this.Be.appendChild(y.u);
			this.rh.push(0)
		}
	}
	gS.prototype = new au;
	gS.prototype.aaq = function (F) {
		var P = this.P4;
		for (var w = 0; w < P.length; w++) {
			var o = (F >>> w & 1) == 1;
			this.rh[w] = o;
			P[w].k(o)
		}
	};
	gS.prototype.alx = function () {
		return this.nx
	};
	gS.prototype.t = function () {
		this.u.textContent = h9.get([25, 1, 0]) + " \u25BC";
		this.NI.t();
		this.aem.t()
	};
	gS.prototype.a8g = function (F) {
		var P = this.u.getBoundingClientRect(),
			o = new l(i.E.L, !0);
		o.data = {
			e: i.B.VX,
			Nc: this.Jg,
			x: P.left,
			y: P.top + P.height,
			q1: !1
		};
		this.w(o)
	};
	gS.prototype.x3 = function (F) {
		if (this.kd[F[4]] == 0) return !1;
		else
			for (var P = 0; P < this.rh.length; P++)
				if (this.rh[P] == 1 && (F[3] >>> P & 1) == 0) return !1;
		return !0
	};
	gS.prototype.agH = function (F) {
		var P = F.target.q(),
			o = this.CS,
			X = this.kd;
		for (var w = 0; w < o.length; w++) {
			o[w].k(P);
			X[w] = P ? 1 : 0
		}
		this.w(new l(i.E.I, !1))
	};
	gS.prototype.a9h = function (F) {
		var P = F.target.q(),
			o = this.P4,
			X = this.rh;
		for (var w = 0; w < o.length; w++) {
			o[w].k(P);
			X[w] = P ? 1 : 0
		}
		this.w(new l(i.E.I, !1))
	};
	gS.prototype.a6B = function (F) {
		var w = this.CS.indexOf(F.target),
			P = this.Gw[w].index;
		this.kd[P] = 1 - this.kd[P];
		this.w(new l(i.E.I, !1))
	};
	gS.prototype.a6r = function (F) {
		var w = this.P4.indexOf(F.target);
		this.rh[w] = 1 - this.rh[w];
		this.w(new l(i.E.I, !1))
	};

	function ah(F, P, o) {
		dB.call(this, P, !0, "gradientbutton", 18, 10, ge.uw);
		this.GY = -1;
		this.Ty = -1;
		this.a0L = null;
		this.alA = F;
		this.Cr = o
	}
	ah.prototype = new dB;
	ah.prototype.WX = function (F) {
		var P = this.rt;
		this.k(P[this.UJ.q()]);
		this.w(new l(i.E.I))
	};
	ah.prototype.P3 = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.uH,
			W2: "gradienteditor",
			j: this.hg,
			jz: this.alD.bind(this),
			IF: this.Cr
		};
		this.w(P)
	};
	ah.prototype.alD = function (F) {
		this.k(F);
		this.w(new l(i.E.I))
	};
	ah.prototype.HJ = function () {
		if (!this.lM) return;
		var F = Math.floor(36 * i.J()),
			P = Math.floor(36 * i.J()),
			o = [],
			X = [],
			Y = this.rt;
		for (var w = 0; w < Y.length; w++) {
			var y = Y[w];
			X.push(y.Nm ? y.Nm.v.split("=").pop() : "");
			var z = B.T7.m2(y, F, P, Math.PI / 4, this.GY, this.Ty);
			o.push(z)
		}
		this.UJ.Lf(o, X, F, P);
		this.lM = !1
	};
	ah.prototype.dn = function (F, P) {
		this.sQ(this.hg, F, P)
	};
	ah.prototype.k = function (F) {
		this.sQ(F, this.GY, this.Ty)
	};
	ah.prototype.sQ = function (F, P, o) {
		this.GY = P;
		this.Ty = o;
		if (F == null) return;
		var X = JSON.stringify(F),
			Y = X + P + "," + o;
		if (Y == this.a0L) return;
		this.a0L = Y;
		this.hg = JSON.parse(X);
		var y = Math.floor(80 * i.J()),
			z = Math.floor(16 * i.J()),
			s = B.T7.m2(this.hg, y, z, 0, this.GY, this.Ty);
		this.mJ.setAttribute("src", s);
		i.Hc(this.mJ, y, z)
	};
	ah.prototype.q = function () {
		var F;
		if (this.alA) F = B.T7.aa8(this.hg, this.GY, this.Ty);
		else F = JSON.parse(JSON.stringify(this.hg));
		return F
	};

	function at(F) {
		dB.call(this, F, !1, "swatchbutton", 16, 8.75, ge.Mg)
	}
	at.prototype = new dB;
	at.prototype.WX = function (F) {
		this.k(this.rt[F.target.q()]);
		this.w(new l(i.E.I))
	};
	at.prototype.HJ = function () {
		if (!this.lM) return;
		var F = Date.now(),
			P = Math.floor(10 * i.J()),
			o = Math.floor(10 * i.J()),
			X = [],
			Y = [],
			y = this.rt;
		for (var w = 0; w < y.length; w++) {
			Y.push(y[w].ah ? y[w].ah.split("=").pop() : "");
			X.push(at.m2(y[w], P, o))
		}
		this.UJ.Lf(X, Y, P, o);
		this.lM = !1
	};
	at.prototype.k = function (F) {
		this.hg = JSON.parse(JSON.stringify(F));
		this.AG()
	};
	at.prototype.AG = function () {
		var F = Math.floor(24 * i.J()),
			P = Math.floor(20 * i.J()),
			o = at.m2(this.hg, F, P);
		this.mJ.setAttribute("src", o);
		i.Hc(this.mJ, F, P)
	};
	at.prototype.q = function () {
		return JSON.parse(JSON.stringify(this.hg))
	};
	at.N2 = {};
	at.m2 = function (F, P, o) {
		var X = at.ui,
			Y = at.N2,
			y = H.v2(F.U << 16 | F.S << 8 | F.i);
		if (Y[y]) return Y[y];
		if (X == null) {
			var z = i.z("canvas");
			X = at.ui = z.getContext("2d")
		}
		var z = X.canvas;
		z.width = P;
		z.height = o;
		X.fillStyle = "#" + y;
		X.fillRect(0, 0, P, o);
		var s = Y[y] = z.toDataURL();
		return s
	};

	function aD(F, P, o) {
		au.call(this);
		this.u = i.z("span", "fitem cbox");
		if (P == null) P = !0;
		if (o == null) o = "flabel";
		var X = "cb" + i.l$();
		this.De = i.z("input", "");
		this.De.setAttribute("type", "checkbox");
		this.De.setAttribute("id", X);
		this.u.appendChild(this.De);
		this.q6 = F;
		this.yq = i.z("label", o);
		if (P) this.yq.setAttribute("for", X);
		this.u.appendChild(this.yq);
		this.t();
		this.De.addEventListener("change", this.Om.bind(this), !1)
	}
	aD.prototype = new au;
	aD.prototype.m1 = function () {
		return this.q6
	};
	aD.prototype.kW = function (F) {
		this.yq.textContent = F
	};
	aD.prototype.t = function () {
		var F = this.q6;
		if (typeof F == "string" && F.startsWith("<")) this.yq.innerHTML = F;
		else this.yq.textContent = h9.get(F)
	};
	aD.prototype.V2 = function () {
		this.De.checked = !0
	};
	aD.prototype.pe = function () {
		this.De.checked = !1
	};
	aD.prototype.UX = function () {
		return this.De.checked
	};
	aD.prototype.k = function (F) {
		this.De.checked = F
	};
	aD.prototype.q = aD.prototype.UX;
	aD.prototype.Om = function (F) {
		this.w(new l(i.E.I, !1))
	};

	function aL(F, P, o, X) {
		au.call(this);
		this.u = i.z("span", "fitem mbox");
		this.a0I = o;
		if (F) {
			this.q6 = F;
			this.yq = i.z("label", "flabel");
			this.u.appendChild(this.yq)
		}
		this.fC = P;
		this.eh = [];
		for (var w = 0; w < P.length; w++) {
			var Y = o ? new fV(P[w], !1, X ? X[w] : null) : new aD(P[w], !0, "");
			Y.$(o ? "click" : i.E.I, this.Om, this);
			this.eh.push(Y);
			this.u.appendChild(Y.u)
		}
		this.t()
	}
	aL.prototype = new au;
	aL.prototype.k = function (F) {
		for (var P = 0; P < this.fC.length; P++) this.eh[P].k(F[P])
	};
	aL.prototype.q = function () {
		var F = [];
		for (var P = 0; P < this.fC.length; P++) F[P] = this.eh[P].q();
		return F
	};
	aL.prototype.t = function () {
		if (this.q6) this.yq.innerHTML = h9.get(this.q6) + ": ";
		for (var F = 0; F < this.eh.length; F++) this.eh[F].t()
	};
	aL.prototype.Om = function (F) {
		var w = this.eh.indexOf(F.currentTarget);
		if (this.a0I) this.eh[w].k(!this.eh[w].q());
		this.w(new l(i.E.I, !1))
	};

	function bc(F, P, o, X, Y, y) {
		bk.call(this, F, P, o, X, Y, !1, y);
		this.u.appendChild(this.yq);
		var z = i.z("span", "rangecont");
		this.u.appendChild(z);
		z.appendChild(this.oq);
		this.u.appendChild(this.De);
		this.De.setAttribute("style", "width:3.3em");
		if (this.Yx) this.u.appendChild(this.BL)
	}
	bc.prototype = new bk;

	function aj(F, P, o, X) {
		if (F == null) F = !1;
		if (P == null) P = !1;
		if (o == null) o = !1;
		au.call(this);
		this.bf = new aH;
		this.j$ = new aH;
		this.aH = 72;
		this.bC = 72;
		this.KM = !0;
		this.u = i.z("span", "");
		this.iG = new gJ([12, 41], 0, 0, null, 0, !1, !0);
		this.u.appendChild(this.iG.u);
		this.iG.$(i.E.I, this.WK, this);
		var Y = ["px", "%"];
		if (F) Y = Y.concat(["mm", "in"]);
		this.ZS = new gq(null, Y);
		this.u.appendChild(this.ZS.u);
		i.Rf(this.u);
		this.ZS.$(i.E.I, this.WK, this);
		this.DG = new gJ([12, 42], 0, 0, null, 0, !1, !0);
		this.u.appendChild(this.DG.u);
		this.DG.$(i.E.I, this.WK, this);
		var y = new fV("\u21F5", !1, null, !0);
		y.$("click", this.aml, this);
		this.zw = new fV("<img src=\"" + PIMG["lrs/chain"] + "\" class=\"autoscale gsicon\" />", !1, [12, 51]);
		this.zw.$("click", this.WK, this);
		this.a3o = new dC("");
		if (P) {
			this.u.appendChild(this.zw.u);
			this.u.appendChild(this.a3o.u);
			this.zw.V2()
		} else this.u.appendChild(y.u);
		this.ji = new gJ("DPI", 0, 0, null, 3, !1, !0, 4);
		if (F && X == null) {
			i.Rf(this.u);
			this.u.appendChild(this.ji.u)
		}
		this.ji.$(i.E.I, this.WK, this);
		this.w8 = new aD([12, 23, 1]);
		this.w8.$(i.E.I, this.WK, this);
		if (o) {
			i.Rf(this.u);
			this.u.appendChild(this.w8.u)
		}
		i.Rf(this.u)
	}
	aj.prototype = new au;
	aj.prototype.afE = function () {
		this.KM = !1;
		if (this.ZS.q() == 0) {
			this.ZS.k(3);
			this._O()
		}
	};
	aj.prototype.a0p = function () {
		this.KM = !0
	};
	aj.prototype.adn = function (F) {
		this.zw.k(F)
	};
	aj.prototype.t = function () {
		this.iG.t();
		this.DG.t();
		this.ji.t();
		this.zw.t();
		this.w8.t()
	};
	aj.prototype.aml = function (F) {
		var P = this.j$.x;
		this.j$.x = this.j$.y;
		this.j$.y = P;
		this._O();
		this.w(new l(i.E.I, !1))
	};
	aj.prototype.WK = function (F) {
		if (F.target == this.ZS && !this.KM && this.ZS.q() == 0) this.ZS.k(3);
		if (F.target == this.ZS || F.target == this.w8) {
			this._O();
			return
		}
		if (F.target == this.zw) F.target.k(!F.target.q());
		var P = this.bf,
			o = parseFloat(this.iG.q());
		if (isNaN(o)) o = 1;
		var X = parseFloat(this.DG.q());
		if (isNaN(X)) X = 1;
		var Y = this.ZS.q();
		if (this.KM) {
			var y = this.bC;
			if (Y == 1) {
				o = this.bf.x * (o / 100);
				X = this.bf.y * (X / 100)
			}
			var z = [1, 1, 25.4 / y, 1 / y][Y];
			o /= z;
			X /= z;
			if (this.w8.q()) {
				o += this.bf.x;
				X += this.bf.y
			}
			if (F.target == this.ji) {
				var s = this.ji.q();
				if (!0) {
					var t = s / y;
					o *= t;
					X *= t
				}
				y = s
			}
			if (this.zw.q()) {
				if (F.target == this.iG) X = o * (P.y / P.x);
				else o = X * (P.x / P.y)
			}
			o = Math.max(Math.abs(o), 1);
			X = Math.max(Math.abs(X), 1)
		} else {
			var y = this.aH;
			if (F.target == this.ji) y = this.ji.q();
			else {
				if (this.zw.q()) {
					if (F.target == this.iG) X = o * (P.y / P.x);
					else o = X * (P.x / P.y)
				}
				var z = [1, 1, 25.4 / y, 1 / y][Y],
					d = o / (Y == 1 ? 100 : P.x * z);
				y = y / d
			}
			o = P.x;
			X = P.y
		}
		this.j$ = new aH(Math.round(o), Math.round(X));
		this.bC = y;
		this._O();
		this.w(new l(i.E.I, !1))
	};
	aj.prototype.a5z = function (w) {
		this.ZS.k(w);
		this._O()
	};
	aj.prototype.k = function (F, P) {
		this.bf = F.clone();
		this.j$ = F.clone();
		if (P != null) {
			this.aH = P;
			this.bC = P
		}
		this._O()
	};
	aj.prototype._O = function () {
		var F = this.j$.x,
			P = this.j$.y,
			o = this.bC,
			X = (F / P).toFixed(3);
		while (X.charAt(X.length - 1) == "0") X = X.substring(0, X.length - 1);
		if (X.charAt(X.length - 1) == ".") X = X.substring(0, X.length - 1);
		var Y = "  " + X + " : 1",
			y = function (U, v) {
				while (v != 0) {
					var A = v;
					v = U % v;
					U = A
				}
				return U
			},
			z = y(F, P);
		if (Math.min(F, P) / z < 10) Y = "  " + Math.round(F / z) + " : " + Math.round(P / z);
		this.a3o.k(Y);
		if (this.w8.q()) {
			F -= this.bf.x;
			P -= this.bf.y
		}
		var s = this.ZS.q();
		if (s == 1) {
			if (this.KM) {
				F = 100 * F / this.bf.x;
				P = 100 * P / this.bf.y
			} else {
				F = P = 100 * this.aH / this.bC
			}
		} else {
			F = Math.round(F);
			P = Math.round(P)
		}
		var t = [1, 1, 25.4 / o, 1 / o][s];
		F *= t;
		P *= t;
		var d = s == 1 || s == 3 ? 2 : 0;
		this.iG.CZ(d);
		this.DG.CZ(d);
		this.iG.k(F);
		this.DG.k(P);
		this.ji.k(o)
	};
	aj.prototype.q = function () {
		return this.j$.clone()
	};
	aj.prototype.av = function () {
		return this.bC
	};

	function as() {
		au.call(this);
		this.BZ = 0;
		this.MH = [0, 0, 1, 1, 100, 100];
		this.u = i.z("span", "fitem");
		this.zv = new gq(null, [
			[12, 89, 0],
			[12, 89, 1],
			[12, 89, 2]
		]);
		this.u.appendChild(this.zv.u);
		this.zv.$(i.E.I, this.WK, this);
		this.iG = new gJ("W", 0, 0, null, 0, !1, !0);
		this.u.appendChild(this.iG.u);
		this.iG.$(i.E.I, this.WK, this);
		this.DG = new gJ("H", 0, 0, null, 0, !1, !0);
		this.u.appendChild(this.DG.u);
		this.DG.$(i.E.I, this.WK, this);
		this.k({
			wV: 0,
			x: 0,
			y: 0
		})
	}
	as.prototype = new au;
	as.prototype.t = function () {
		i.$d(this.iG, this.DG);
		this.zv.t()
	};
	as.prototype.WK = function (F) {
		if (F.target == this.zv) {
			var P = this.q(),
				o = this.MH;
			o[this.BZ * 2] = P.x;
			o[this.BZ * 2 + 1] = P.y;
			this.BZ = P.wV;
			this.k({
				wV: P.wV,
				x: o[P.wV * 2],
				y: o[P.wV * 2 + 1]
			})
		}
		if (this.iG.q() < 1) this.iG.k(1);
		if (this.DG.q() < 1) this.DG.k(1);
		this.w(new l(i.E.I, !1))
	};
	as.prototype.k = function (F) {
		this.zv.k(F.wV);
		this.iG.k(F.x);
		this.DG.k(F.y);
		if (F.wV == 0) {
			this.iG.U3();
			this.DG.U3()
		} else {
			this.iG.R8();
			this.DG.R8()
		}
	};
	as.prototype.q = function () {
		return {
			wV: this.zv.q(),
			x: this.iG.q(),
			y: this.DG.q()
		}
	};

	function dC(F, P) {
		au.call(this);
		this.q6 = F;
		this.u = i.z("span", "labelitem fitem" + (P ? " spread" : ""));
		this.t()
	}
	dC.prototype = new au;
	dC.prototype.k = function (F) {
		this.u.textContent = F
	};
	dC.prototype.q = function () {
		return this.u.textContent
	};
	dC.prototype.R8 = function () {
		this.u.removeAttribute("disabled")
	};
	dC.prototype.U3 = function () {
		this.u.setAttribute("disabled", "")
	};
	dC.prototype.kW = function (F) {
		this.u.textContent = F
	};
	dC.prototype.t = function () {
		this.u.textContent = h9.get(this.q6)
	};
	dC.prototype.m1 = function () {
		return this.q6
	};

	function aO(F) {
		au.call(this);
		this.u = i.z("span", "");
		this.a3_ = F;
		this.Dw = new bc("Off X", -100, 100, F ? "%" : "px", 0, !1);
		this.mP = new bc("Off Y", -100, 100, F ? "%" : "px", 0, !1);
		this.Dw.$(i.E.I, this.WK, this);
		this.mP.$(i.E.I, this.WK, this);
		this.u.appendChild(this.Dw.u);
		this.u.appendChild(this.mP.u)
	}
	aO.prototype = new au;
	aO.prototype.t = function () {
		this.Dw.t();
		this.mP.t()
	};
	aO.prototype.WK = function (F) {
		this.w(new l(i.E.I, !1))
	};
	aO.prototype.a2w = function (F) {
		this.Dw.k(F.x);
		this.mP.k(F.y)
	};
	aO.prototype.al2 = function () {
		return new aH(this.Dw.q(), this.mP.q())
	};
	aO.prototype.k = function (F) {
		var P = F.Hrzn.v,
			o = F.Vrtc.v;
		if (this.a3_) {
			P = P.val;
			o = o.val
		}
		this.Dw.k(P);
		this.mP.k(o)
	};
	aO.prototype.q = function () {
		var F = this.Dw.q(),
			P = this.mP.q();
		if (this.a3_) return {
			classID: "Pnt",
			Hrzn: {
				t: "UntF",
				v: {
					type: "#Prc",
					val: F
				}
			},
			Vrtc: {
				t: "UntF",
				v: {
					type: "#Prc",
					val: P
				}
			}
		};
		else return {
			classID: "Pnt",
			Hrzn: {
				v: F,
				t: "doub"
			},
			Vrtc: {
				v: P,
				t: "doub"
			}
		}
	};

	function gJ(F, P, o, X, Y, y, z, s, t) {
		bk.call(this, F, P, o, X, Y, !0, y, t);
		i.KL(this.u, "rangedropinput");
		this.u.appendChild(this.yq);
		this.De.setAttribute("style", "width:" + (s ? s : 3.3) + "em");
		this.u.appendChild(this.De);
		this.aaG = i.z("span", "rangecont");
		this.aaG.appendChild(this.oq);
		this.xD = i.z("button");
		this.xD.innerHTML = "\u25BC";
		i.X8(this.xD, this.a3c.bind(this));
		if (z != !0) this.u.appendChild(this.xD);
		this.b1 = new au;
		this.b1.u = this.aaG
	}
	gJ.prototype = new bk;
	gJ.prototype.a3c = function (F) {
		if (i.WW(this.b1.u)) return;
		F.stopPropagation();
		var P = this.u.getBoundingClientRect();
		this.oq.setAttribute("style", "width:" + P.width + "px;");
		var o = new l(i.E.L, !0);
		o.data = {
			e: i.B.VX,
			Nc: this.b1,
			x: P.left,
			y: P.top + P.height
		};
		this.w(o)
	};

	function hx() {
		au.call(this);
		this.u = i.z("span", "fitem strokebutton");
		this.P1 = [
			[null, null, null, ""],
			[null, 0, null, "4 2"],
			[1, 1, null, "0 2"]
		];
		this.dB = JSON.parse(JSON.stringify(ce.bW.default));
		this.Ht = i.z("button");
		this.u.appendChild(this.Ht);
		this.Ht.addEventListener("click", this.JJ.bind(this), !1);
		var F = i.z("canvas", "gsicon");
		this.YV = F.getContext("2d");
		this.Ht.appendChild(F);
		var P = i.z("span");
		P.textContent = " \u25BC";
		this.Ht.appendChild(P);
		this.Jg = new au;
		this.Jg.parent = this;
		this.Jg.u = i.z("div", "floatcont form");
		var o = this.Jg.u;
		o.setAttribute("style", "width: 14em;");
		this.zF = [new gq([12, 40], [
			[19, 5, 2],
			[19, 5, 1],
			[19, 5, 0]
		]), new aw([19, 9, 0], ["<img src=\"" + PIMG["caps/butt"] + "\" class=\"autoscale gsicon\" />", "<img src=\"" + PIMG["caps/round"] + "\" class=\"autoscale gsicon\" />", "<img src=\"" + PIMG["caps/square"] + "\" class=\"autoscale gsicon\" />"]), new aw([19, 9, 1], ["<img src=\"" + PIMG["joins/miter"] + "\" class=\"autoscale gsicon\" />", "<img src=\"" + PIMG["joins/round"] + "\" class=\"autoscale gsicon\" />", "<img src=\"" + PIMG["joins/bevel"] + "\" class=\"autoscale gsicon\" />"]), new f6([19, 9, 2])];
		for (var w = 0; w < this.zF.length; w++) {
			var X = this.zF[w];
			o.appendChild(X.u);
			var Y = w < 4 ? i.E.I : "click";
			X.$(Y, this.WK, this)
		}
		i.Rf(o);
		this.C8 = [];
		var y = this.a5W.bind(this);
		for (var w = 0; w < this.P1.length; w++) {
			var z = i.z("button", "fitem");
			this.C8.push(z);
			o.appendChild(z);
			z.addEventListener("click", y, !1);
			var F = i.z("canvas", "gsicon"),
				s = F.getContext("2d");
			z.appendChild(F);
			this.B_(s, 40, 20, this.P1[w])
		}
	}
	hx.prototype = new au;
	hx.prototype.JJ = function (F) {
		var P = this.Ht.getBoundingClientRect(),
			o = new l(i.E.L, !0);
		o.data = {
			e: i.B.VX,
			Nc: this.Jg,
			x: P.left,
			y: P.top + P.height + 4
		};
		this.w(o)
	};
	hx.prototype.WK = function (F) {
		var aW = this.zF,
			P = aW.indexOf(F.target),
			o = [];
		for (var w = 0; w < 4; w++) o.push(aW[w].q());
		this.dB = this.UY(o);
		this.w(new l(i.E.I, !1))
	};
	hx.prototype.a5W = function (F) {
		var P = this.C8.indexOf(F.currentTarget);
		this.k(this.UY(this.P1[P]));
		this.w(new l(i.E.I, !1))
	};
	hx.prototype.UY = function (F) {
		var P = JSON.parse(JSON.stringify(this.dB)),
			o = F[0],
			X = F[1],
			Y = F[2],
			y = F[3];
		if (o != null) P.strokeStyleLineAlignment.v.strokeStyleLineAlignment = ce.bW.Ph[o];
		if (X != null) P.strokeStyleLineCapType.v.strokeStyleLineCapType = ce.bW.Bb[X];
		if (Y != null) P.strokeStyleLineJoinType.v.strokeStyleLineJoinType = ce.bW.join[Y];
		var z = P.strokeStyleLineDashSet.v = [];
		y = y.split(" ");
		while ((y.length & 1) != 0) y.pop();
		for (var w = 0; w < y.length; w++) z.push({
			t: "UntF",
			v: {
				type: "#Nne",
				val: parseInt(y[w])
			}
		});
		return P
	};
	hx.prototype.t = function () {
		for (var w = 0; w < this.zF.length; w++) this.zF[w].t()
	};
	hx.prototype.k = function (F) {
		this.dB = JSON.parse(JSON.stringify(F));
		var P = ce.bW.Ph.indexOf(F.strokeStyleLineAlignment.v.strokeStyleLineAlignment),
			o = ce.bW.Bb.indexOf(F.strokeStyleLineCapType.v.strokeStyleLineCapType),
			X = ce.bW.join.indexOf(F.strokeStyleLineJoinType.v.strokeStyleLineJoinType),
			Y = [],
			y = F.strokeStyleLineDashSet.v;
		for (var z = 0; z < y.length; z++) Y.push(y[z].v.val);
		var aW = this.zF;
		aW[0].k(P);
		aW[1].k(o);
		aW[2].k(X);
		aW[3].k(Y.join(" "));
		var s = [];
		for (var w = 0; w < 4; w++) s.push(aW[w].q());
		this.B_(this.YV, 40, 16, s)
	};
	hx.prototype.q = function () {
		return JSON.parse(JSON.stringify(this.dB))
	};
	hx.prototype.B_ = function (F, P, o, X) {
		var Y = X[0],
			y = X[1],
			z = X[2],
			s = X[3].split(" ").map(parseFloat);
		i.Tv(F.canvas, P, o);
		var t = Math.min(5, this.dB.strokeStyleLineWidth.v.val);
		for (var w = 0; w < s.length; w++) s[w] *= t;
		F.clearRect(0, 0, P, o);
		F.setLineDash(s);
		F.lineCap = ["butt", "round", "square"][y];
		F.lineJoin = ["miter", "round", "bevel"][z];
		F.lineWidth = t;
		F.beginPath();
		F.moveTo(0, o / 2);
		F.lineTo(P * 2, o / 2);
		F.stroke()
	};

	function gZ(F) {
		dB.call(this, F, !1, "contourbutton", 34, 16, ge.jq);
		this.WH = new f6([12, 86], null, 16);
		this.WH.$("input", this.ho, this);
		this.Jg.u.appendChild(this.WH.u);
		this.u7 = null;
		this.GP = "";
		this.jU = null;
		this.k(gN.tt())
	}
	gZ.prototype = new dB;
	gZ.prototype.t = function () {
		dB.prototype.t.call(this);
		this.WH.t()
	};
	gZ.prototype.WX = function (F) {
		this.k(this.u7[F.target.q()]);
		this.w(new l(i.E.I))
	};
	gZ.prototype.ho = function (F) {
		this.GP = this.WH.q().toLowerCase();
		this.Iv()
	};
	gZ.w2 = !1;
	gZ.prototype.HJ = function () {
		if (!this.lM) return;
		var F = this.rt;
		if (F == null || !gZ.w2) {
			var P = new l(i.E.L, !0);
			P.data = {
				e: i.B.JX,
				S9: {
					url: "rsrc/basic/fa_basic.csh"
				}
			};
			this.w(P);
			gZ.w2 = !0
		} else {
			var o = Math.floor(38 * i.J()),
				X = Math.floor(38 * i.J());
			this.jU = [];
			for (var w = 0; w < F.length; w++) this.jU.push(gZ.hi(F[w], o, X));
			this.Iv();
			this.lM = !1
		}
	};
	gZ.prototype.Iv = function () {
		var F = Math.floor(38 * i.J()),
			P = Math.floor(38 * i.J());
		this.u7 = [];
		var o = [],
			X = [],
			Y = this.rt;
		for (var w = 0; w < Y.length; w++) {
			if (Y[w].s3.toLowerCase().indexOf(this.GP) == -1) continue;
			this.u7.push(Y[w]);
			o.push(this.jU[w]);
			X.push(Y[w].s3)
		}
		this.UJ.Lf(o, X, F, P)
	};
	gZ.prototype.k = function (F) {
		this.hg = gZ.clone(F);
		this.AG()
	};
	gZ.prototype.AG = function () {
		var F = Math.floor(23 * i.J()),
			P = Math.floor(23 * i.J()),
			o = gZ.hi(this.hg, F, P);
		this.mJ.setAttribute("src", o);
		i.Hc(this.mJ, F, P)
	};
	gZ.prototype.q = function () {
		return gZ.clone(this.hg)
	};
	gZ.clone = function (F) {
		return {
			s3: F.s3,
			By: F.By,
			b: h.iO.Cm(F.b),
			gx: F.gx.clone()
		}
	};
	gZ.w7 = null;
	gZ.YG = null;
	gZ.hi = function (F, P, o) {
		var X = h.iO.Cm(F.b),
			Y = F.gx,
			y = Math.min(P / Y.Z, o / Y.h) * .9,
			z = new cu;
		z.translate(-.5, -.5);
		z.scale(.95, .95);
		z.translate(.5, .5);
		z.scale(y * Y.Z, y * Y.h);
		H.V.G5(X, z);
		var s = new h.iO;
		s.b = X;
		var t = s.jk();
		t.rect.x = Math.floor((P - t.rect.Z) / 2);
		t.rect.y = Math.floor((o - t.rect.h) / 2);
		var d = H.R(t.rect.M() * 4);
		H.XB(d, 4278190080);
		H.nJ(t.channel);
		H.Oy(t.channel, d, 0);
		H.Oy(t.channel, d, 1);
		H.Oy(t.channel, d, 2);
		var U = gZ;
		if (U.w7 == null) U.w7 = i.z("canvas");
		var v = U.w7,
			A = v.getContext("2d");
		if (v.width != P || v.height != o || U.YG == null) {
			v.width = P;
			v.height = o;
			U.YG = A.createImageData(P, o)
		}
		var Z = U.YG;
		H.XB(Z.data, 4294967295);
		H.BP(d, t.rect, Z.data, new ev(0, 0, P, o));
		A.putImageData(Z, 0, 0);
		return v.toDataURL()
	};

	function b$(F) {
		dB.call(this, F, !1, "ICCButton", 16, 12, ge.rn, !0);
		this.UJ.DJ(1)
	}
	b$.prototype = new dB;
	b$.prototype.Yt = function () {
		var F = "Arabica 12,Ava 614,Azrael 93,Bourbon 64,Byers 11,Clayton 33,Clouseau 54,Cobi 3,Contrail 35,Cubicle 99,Django 25,Domingo 145,Faded 47,Folger 50,Fusion 88,Hyla 68,Chemical 168,Korben 214,Lenox 340,Lucky 64,McKinnon 75,Milo 5,Neon 770,Paladin 1875,Pasadena 21,Pitaya 15,Reeve 38,Remy 24,Sprocket 231,Teigen 28,Trent 18,Tweed 71,Vireo 37,Zed 32,Zeke 39".split(",");
		for (var w = 0; w < F.length; w++) F[w] = "luts/" + F[w] + ".CUBE";
		return F
	};
	b$.prototype.WX = function (F) {
		this.k(this.rt[F.target.q()]);
		this.w(new l(i.E.I))
	};
	b$.prototype.HJ = function () {
		if (!this.lM) return;
		var F = Math.floor(1 * i.J()),
			P = Math.floor(1 * i.J()),
			o = [],
			X = [],
			Y = this.rt;
		for (var w = 0; w < Y.length; w++) {
			var y = Y[w].Nm.v.split("\\").pop().split("/").pop();
			X.push(y);
			o.push(b$.m2(Y[w], F, P))
		}
		this.UJ.Lf(o, X, F, P);
		this.lM = !1
	};
	b$.prototype.k = function (F) {
		this.hg = JSON.parse(JSON.stringify(F));
		this.AG()
	};
	b$.m2 = function (F, P, o) {
		var X = i.z("canvas"),
			z = "ICC / 3DL / look / cube";
		X.width = P;
		X.height = o;
		var Y = X.getContext("2d"),
			y = Math.floor(14 * i.J());
		Y.font = y + "px sans-serif";
		if (F.Nm) z = F.Nm.v.split("\\").pop().split("/").pop();
		Y.fillText(z, 10, y);
		return X.toDataURL()
	};
	b$.prototype.AG = function () {
		var F = Math.floor(120 * i.J()),
			P = Math.floor(20 * i.J());
		this.mJ.setAttribute("src", b$.m2(this.hg, F, P));
		i.Hc(this.mJ, F, P)
	};
	b$.prototype.q = function () {
		return JSON.parse(JSON.stringify(this.hg))
	};

	function b1() {
		au.call(this);
		this.Xa = null;
		this.u = i.z("span", "fitem");
		this.gM = new bW([14, 9]);
		this.UC = new gJ(null, 0, 150, "pt", 1, !0, null, null, [19, 2, 5]);
		this.Ri = new hx;
		this.u3 = [this.gM, this.UC, this.Ri];
		for (var w = 0; w < this.u3.length; w++) {
			var F = this.u3[w];
			this.u.appendChild(F.u);
			F.parent = this;
			F.$(i.E.I, this.WK, this)
		}
	}
	b1.prototype = new au;
	b1.prototype.t = function () {
		for (var w = 0; w < this.u3.length; w++) this.u3[w].t()
	};
	b1.prototype.AK = function (F, P) {
		this.gM.AK(F, P)
	};
	b1.prototype.WK = function (F) {
		var P = this.Xa,
			o = this.gM.q(),
			X = o.d1;
		P.strokeEnabled.v = X != 0;
		if (X != 0) {
			P.strokeStyleContent.v = o.qA;
			o.qA.classID = ce.bW.bl[X - 1]
		}
		P.strokeStyleLineWidth.v.val = this.UC.q();
		if (F.target == this.Ri) P = this.Ri.q();
		this.Xa = P;
		this.w(new l(i.E.I, !1))
	};
	b1.prototype.k = function (F, P, o) {
		this.Xa = JSON.parse(JSON.stringify(P));
		var X = P.strokeEnabled.v,
			Y = P.strokeStyleContent.v,
			y = X ? {
				d1: 1 + ce.bW.bl.indexOf(Y.classID),
				qA: Y
			} : {
				d1: 0
			};
		this.gM.k(F, y, o);
		this.UC.k(P.strokeStyleLineWidth.v.val);
		this.Ri.k(P)
	};
	b1.prototype.q = function () {
		return JSON.parse(JSON.stringify(this.Xa))
	};

	function gt(F, P) {
		au.call(this);
		this.u = i.z("span", "fitem");
		this.Ta = ["front", "union", "difference", "intersection"];
		var o = [
			[18, 0],
			[18, 1],
			[18, 2],
			[18, 3]
		];
		this.jF = [];
		this.CF = 0;
		for (var w = 0; w < this.Ta.length; w++) {
			var X = new fV("<img src=\"" + PIMG["set/" + this.Ta[w]] + "\" class=\"autoscale gsicon\" />", !1, o[w]);
			X.$("click", this.aj8, this);
			this.u.appendChild(X.u);
			this.jF.push(X)
		}
		this.jF[0].V2()
	}
	gt.prototype = new au;
	gt.prototype.q = function () {
		return this.Ta[this.CF]
	};
	gt.prototype.k = function (F) {
		this.CF = this.Ta.indexOf(F);
		for (var w = 0; w < this.jF.length; w++) this.jF[w].pe();
		this.jF[this.CF].V2()
	};
	gt.prototype.aj8 = function (F) {
		this.k(this.Ta[this.jF.indexOf(F.currentTarget)]);
		this.w(new l(i.E.I, !1))
	};
	gt.prototype.t = function () {
		for (var w = 0; w < this.jF.length; w++) this.jF[w].t()
	};

	function f6(F, P, o, X) {
		au.call(this);
		var Y = i.l$(),
			y = "";
		this.u = i.z("span", "fitem tinput");
		if (F) {
			this.q6 = F;
			this.yq = i.z("label", "flabel");
			this.u.appendChild(this.yq);
			this.yq.setAttribute("for", Y);
			this.t()
		}
		if (X == null) {
			this.De = i.z("input", "");
			this.De.setAttribute("type", "text")
		} else this.De = i.z("textarea", "scrollable");
		this.De.setAttribute("id", Y);
		if (o) y += "width:" + o + "em;";
		if (X) {
			this.De.setAttribute("rows", X)
		}
		if (y != "") this.De.setAttribute("style", y);
		this.u.appendChild(this.De);
		if (P) {
			this.BL = i.z("span", "");
			this.BL.textContent = P;
			this.u.appendChild(this.BL)
		}
		this.De.addEventListener("change", this.Om.bind(this), !1);
		this.De.addEventListener("input", this.acR.bind(this), !1)
	}
	f6.prototype = new au;
	f6.prototype.t = function () {
		if (this.q6) this.yq.textContent = h9.get(this.q6) + ":"
	};
	f6.prototype.kW = function (F) {
		this.yq.textContent = F
	};
	f6.prototype.k = function (F) {
		this.De.value = F == null ? "" : F
	};
	f6.prototype.q = function () {
		return this.De.value
	};
	f6.prototype.co = function () {
		this.De.select();
		this.De.focus()
	};
	f6.prototype.Om = function (F) {
		this.w(new l(i.E.I, !1))
	};
	f6.prototype.acR = function (F) {
		this.w(new l("input", !1))
	};

	function be(F, P, o, X, Y, y) {
		bk.call(this, F, P, o, X, Y, !0, y);
		i.KL(this.u, "trangeinput");
		this.u.appendChild(this.yq);
		this.u.appendChild(this.De);
		var z = i.z("span", "rangecont");
		this.u.appendChild(z);
		z.appendChild(this.oq);
		this.oq.setAttribute("style", "width:97%;")
	}
	be.prototype = new bk;

	function fn() {
		au.call(this);
		this.rX = [10, !0, !0];
		this.u = i.z("span", "");
		this.ct = [new gJ([12, 24], 0, 255), new aD("Anti-alias"), new aD([12, 25])];
		for (var w = 0; w < 3; w++) {
			var F = this.ct[w];
			F.parent = this;
			F.k(this.rX[w]);
			this.u.appendChild(F.u);
			F.$(i.E.I, this.WK, this)
		}
	}
	fn.prototype = new au;
	fn.prototype.WK = function () {
		for (var w = 0; w < 3; w++) this.rX[w] = this.ct[w].q();
		this.w(new l(i.E.I, !1))
	};
	fn.prototype.k = function (F) {
		this.rX = F.slice(0);
		for (var w = 0; w < 3; w++) this.ct[w].k(F[w])
	};
	fn.prototype.q = function () {
		return this.rX.slice(0)
	};
	fn.prototype.t = function () {
		for (var w = 0; w < 3; w++) this.ct[w].t()
	};

	function bP(F, P) {
		au.call(this);
		if (P == null) P = !1;
		this.jU = [];
		this.amb = 0;
		this.adj = 0;
		this.al = 0;
		this.BR = [];
		this.Zn = [];
		for (var o in H.mD.type) {
			if (o == "warpCustom" && !P) continue;
			this.BR.push(o);
			this.Zn.push(H.mD.type[o])
		}
		this.u = i.z("span", "fitem warpbutton");
		this.Jg = new au;
		this.Jg.u = i.z("div", "floatcont");
		if (F) {
			this.Il = F;
			this.yq = i.z("label", "flabel");
			this.u.appendChild(this.yq)
		}
		this.e = i.z("button");
		this.u.appendChild(this.e);
		this.e.addEventListener("click", this.JJ.bind(this), !1);
		this.DF = new fo(!0);
		this.Jg.u.appendChild(this.DF.u);
		this.DF.$(i.E.I, this.aeK, this);
		this.t()
	}
	bP.prototype = new au;
	bP.prototype.kW = function (F) {
		this.yq.textContent = F
	};
	bP.prototype.t = function () {
		if (this.Il) this.yq.innerHTML = h9.get(this.Il) + ":";
		this.jU = [];
		var F = i.z("canvas", ""),
			P = F.getContext("2d"),
			o = 0;
		P.font = Math.floor(13 * i.J()) + "px sans-serif";
		for (var w = 0; w < this.BR.length; w++) {
			o = Math.max(o, P.measureText(h9.get(H.mD.type[this.BR[w]])).width)
		}
		var X = this.amb = Math.floor(50 * i.J() + o),
			Y = this.adj = Math.floor(23 * i.J());
		F.width = X;
		F.height = Y;
		this.Jg.u.setAttribute("style", "width:" + Math.floor(8 + X / i.J()) + "px;");
		P.font = Math.floor(13 * i.J()) + "px sans-serif";
		P.lineWidth = 1;
		P.strokeStyle = "#000000";
		var y = Math.floor(16 * i.J()),
			z = new ev(0, 0, y, y);
		for (var w = 0; w < this.BR.length; w++) {
			var s = this.BR[w];
			P.clearRect(0, 0, F.width, F.height);
			var t = H.mD.mD(z, s, !0, .3, 0, 0),
				d = H.D.z0(z);
			d.W.push("M", "L", "M", "L");
			d.d.push(0, y / 2, y, y / 2);
			d.d.push(y / 2, 0, y / 2, y);
			d = H.D.pP(d);
			d = H.D.Tm(d, y / 5);
			H.ea.apply(t, d.d, z);
			H.D.O(d.d, new cu(1, 0, 0, 1, Math.floor(8 * i.J()) + .5, Math.floor(3 * i.J()) + .5), d.d);
			P.beginPath();
			Typr.U.pathToContext({
				cmds: d.W,
				crds: d.d
			}, P);
			P.stroke();
			P.fillText(h9.get(H.mD.type[s]), Math.floor(40 * i.J()), Math.floor(16 * i.J()));
			this.jU.push(F.toDataURL())
		}
		this.DF.Lf(this.jU, null, X, Y);
		this.AG()
	};
	bP.prototype.JJ = function (F) {
		var P = this.e.getBoundingClientRect(),
			o = new l(i.E.L, !0);
		o.data = {
			e: i.B.VX,
			Nc: this.Jg,
			x: P.left,
			y: P.top + P.height + 4
		};
		this.w(o)
	};
	bP.prototype.aeK = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.Qp,
			Nc: this.Jg
		};
		this.w(P);
		this.al = F.target.q();
		this.AG();
		this.w(new l(i.E.I))
	};
	bP.prototype.AG = function () {
		this.DF.tj(this.al);
		this.e.innerHTML = "<img src=\"" + this.jU[this.al] + "\" class=\"gsicon\" />";
		var F = this.amb,
			P = this.adj;
		i.Hc(this.e.firstChild, F, P)
	};
	bP.prototype.q = function () {
		return this.BR[this.al]
	};
	bP.prototype.k = function (F) {
		this.al = this.BR.indexOf(F);
		this.AG()
	};

	function eN(F, P, o) {
		au.call(this);
		if (F == null) F = !1;
		if (P == null) P = !1;
		if (o == null) o = !1;
		this.a2d = P;
		this.mD = null;
		this.tX = new bP([12, 22], o);
		this.tX.parent = this;
		this.tX.$(i.E.I, this.d5, this);
		this.GF = new gq([22, 0], [
			[22, 4, 0],
			[22, 4, 1]
		]);
		this.GF.$(i.E.I, this.d5, this);
		var X = F ? gJ : be;
		this.pw = new X([22, 1], -100, 100, "%");
		this.yA = new X("Horizontal Distortion:", -100, 100, "%");
		this.$A = new X("Vertical Distortion:", -100, 100, "%");
		this.pw.parent = this.yA.parent = this.$A.parent = this;
		this.pw.$(i.E.I, this.d5, this);
		this.yA.$(i.E.I, this.d5, this);
		this.$A.$(i.E.I, this.d5, this)
	}
	eN.prototype = new au;
	eN.prototype.t = function () {
		this.tX.t();
		this.GF.t();
		this.pw.t();
		var F = this.a2d ? 1 : 100;
		this.yA.kW(h9.get([22, 2]).substring(0, F) + ":");
		this.$A.kW(h9.get([22, 3]).substring(0, F) + ":")
	};
	eN.prototype.d5 = function () {
		var F = this.mD,
			P = this.tX.q(),
			o = F.warpStyle.v.warpStyle;
		if (P == "warpCustom") H.mD.SL(H.mD.ij(F), F);
		else delete F.customEnvelopeWarp;
		F.warpStyle.v.warpStyle = this.tX.q();
		F.warpRotate.v.Ornt = ["Hrzn", "Vrtc"][this.GF.q()];
		F.warpValue.v = this.pw.q();
		F.warpPerspective.v = this.yA.q();
		F.warpPerspectiveOther.v = this.$A.q();
		if (P == "warpNone" || P == "warpCustom") {
			F.warpValue.v = 0;
			F.warpPerspective.v = 0;
			F.warpPerspectiveOther.v = 0
		} else if (o == "warpNone" || o == "warpCustom") F.warpValue.v = 50;
		this.w(new l(i.E.I, !1));
		this.k(F)
	};
	eN.prototype.q = function (F) {
		return JSON.parse(JSON.stringify(this.mD))
	};
	eN.prototype.k = function (F) {
		this.mD = JSON.parse(JSON.stringify(F));
		this.tX.k(F.warpStyle.v.warpStyle);
		this.GF.k(F.warpRotate.v.Ornt == "Hrzn" ? 0 : 1);
		this.pw.k(F.warpValue.v);
		this.yA.k(F.warpPerspective.v);
		this.$A.k(F.warpPerspectiveOther.v);
		var P = F.warpStyle.v.warpStyle,
			o = P == "warpNone" || P == "warpCustom",
			X = [this.GF, this.pw, this.yA, this.$A];
		for (var w = 0; w < X.length; w++)
			if (o) X[w].U3();
			else X[w].R8()
	};

	function hM(F) {
		au.call(this);
		this.u = i.z("div");
		this.Vu = F;
		this.c4 = !1;
		this.NW = new aH(0, 0);
		this.xM = "position:relative;overflow:hidden;";
		this.s1 = null;
		this.y4 = new i.GN(this.u);
		this._e("grab");
		this.ob = i.z("canvas", "canv");
		this.u.appendChild(this.ob);
		this.YV = this.ob.getContext("2d");
		this.aaD = null;
		this.jV = null;
		this.th = null;
		this.vp = 0;
		this.gY = 0;
		this.Zq = 0;
		this.aj3 = this.Tt.bind(this);
		this.a8n = null;
		this.a = new hr({
			Z: 1,
			h: 1
		});
		this.$M = null;
		this.lf = null;
		this.a7c = this.Qf.bind(this);
		this.a6f = this.Ap.bind(this);
		this.a5A = this.sj.bind(this);
		this.aj5 = this.vQ.bind(this);
		this.a81 = 0;
		this._z = null;
		this.fk(this.ob);
		this.Dx(this)
	}
	hM.prototype = new au;
	hM.prototype.gU = function (F) {
		var P = this.s1;
		this.c4 = F.s(G.fd);
		if (this.c4) P = "grab";
		this.y4.Vp(P, this.xM);
		if (F.s(G.Bl)) {
			var o = 0;
			if (F.s(G.Kh)) o = 1;
			if (F.s(G.lY)) o = -1;
			if (o != 0) {
				this.Zy(new aH(this.ob.width / 2, this.ob.height / 2), o == 1)
			}
		}
	};
	hM.prototype._e = function (F) {
		this.s1 = F;
		this.y4.Vp(F, this.xM)
	};
	hM.prototype.fk = function (F) {
		i.X8(F, this.a7c);
		i.w4(F);
		F.addEventListener("wheel", this.aj5, !1)
	};
	hM.prototype.Dx = function (F) {
		F.$("viewchange", this.a4e, this)
	};
	hM.prototype.a4e = function (F) {
		var P = this.a.F,
			o = F.currentTarget.kC();
		this.a.F = o.F;
		this.a.c = o.c.clone();
		if (P != o.F) this.aM();
		this.U5()
	};
	hM.prototype.kC = function () {
		return {
			F: this.a.F,
			c: this.a.c
		}
	};
	hM.prototype.k = function (F, P) {
		var o = F[0].ym;
		if (this.jV != null && this.jV[0].ym.Qn(o)) {} else {
			this.a.EA = {
				Z: o.Z,
				h: o.h
			};
			this.a.c = new aH(0, 0);
			this.a.F = 1
		}
		this.jV = F;
		this.aM();
		this.JD();
		this.vp = 0;
		this.gY = 0;
		this.Zq = P == null ? 0 : P;
		this.Tt()
	};
	hM.prototype.vQ = function (F) {
		F.preventDefault();
		if (F.deltaY == 0 || Date.now() - this.a81 < 100) return;
		var P = i.oA(F);
		P.x = i.J() * P.x;
		P.y = i.J() * P.y;
		this.a81 = Date.now();
		this.Zy(P, F.deltaY < 0)
	};
	hM.prototype.Zy = function (F, P) {
		B.$h.dX(this.a, F, P);
		this.ZG()
	};
	hM.prototype.aeS = function () {
		var F = this.a,
			P = F.EA;
		this.a.F = B.$h.P9(P.Z, P.h, F.xX.Z, F.xX.h);
		this.ZG()
	};
	hM.prototype.ZG = function () {
		this.aM();
		this.w(new l("viewchange"));
		this.w(new l("zoom"))
	};
	hM.prototype.aM = function () {
		this.th = [];
		var F = this.a.F;
		for (var w = 0; w < this.jV.length; w++) {
			var P = this.jV[w],
				o = new Uint8Array(P.data),
				X;
			if (F >= 1) X = {
				Ww: o,
				rect: P.ym
			};
			else X = H.NP(o, P.ym, F);
			this.th.push(X)
		}
	};
	hM.prototype.JD = function () {
		clearTimeout(this.a8n)
	};
	hM.prototype.U5 = function () {
		if (this.jV == null || !i.WW(this.ob)) return;
		var F = this.aaD,
			P = this.ob.width,
			o = this.ob.height,
			z, s;
		if (F == null || F.width != P || F.height != o) {
			F = this.aaD = this.YV.createImageData(P, o);
			console.log("creating image data")
		}
		var X = this.jV[this.vp],
			Y = this.th[this.vp],
			y = this.a;
		if (y.F <= 1) {
			var t = Y.rect.clone();
			t.x = y.c.x + Math.floor((y.xX.Z - Y.rect.Z) / 2);
			t.y = y.c.y + Math.floor((y.xX.h - Y.rect.h) / 2);
			z = Y.Ww;
			s = t
		} else {
			var d = y.Ze(),
				U = y.yO(),
				v = new ev(0, 0, d.Z * y.F, d.h * y.F);
			v.x = d.x * y.F + U.x;
			v.y = d.y * y.F + U.y;
			if (y.YQ == null || y.YQ.length != d.M() * 4) {
				y.YQ = H.R(d.M() * 4)
			}
			if (y.Su == null || y.Su.length != v.M() * 4) {
				y.Su = H.R(v.M() * 4)
			}
			H.XB(y.YQ, 0);
			H.BP(Y.Ww, Y.rect, y.YQ, d);
			H.scale.sI(y.YQ, d.Z, d.h, y.Su, v.Z, v.h, y.F);
			z = y.Su;
			s = v
		}
		var U = y.yO();
		H.RK(F.data, y.xX.Z, y.xX.h, 8, -U.x, -U.y);
		H.N.DO("norm", z, s, F.data, y.xX, y.xX, 1);
		this.YV.setTransform(1, 0, 0, 1, 0, 0);
		this.YV.putImageData(F, 0, 0);
		if (y.F < 1) U = s;
		var A = U.x,
			Z = U.y,
			D = U.Z,
			q = U.h;
		this.YV.clearRect(A, Z, -1e3, q);
		this.YV.clearRect(A + D, Z, 1e3, q);
		this.YV.clearRect(A - 1e3, Z, D + 2e3, -1e3);
		this.YV.clearRect(A - 1e3, Z + q, D + 2e3, 1e3);
		var R = hM.na(y.F, "#ffffff");
		this.YV.putImageData(R, 0, y.xX.h - R.height)
	};
	hM.bm = {};
	hM.na = function (F, P) {
		var o = "z" + F + "," + P,
			X = hM.bm[o];
		if (X) return X;
		var Y = Math.round(50 * i.J()),
			y = Math.round(18 * i.J()),
			z = i.z("canvas"),
			s = z.getContext("2d");
		z.width = Y;
		z.height = y;
		s.fillStyle = "rgba(1,1,1,1)";
		s.fillRect(0, 0, Y, y);
		s.font = Math.round(11 * i.J()) + "px monospace";
		s.fillStyle = P;
		var t = F * 100;
		if (t < 100) t = t.toFixed(2);
		t = t + "%";
		var d = s.measureText(t).width;
		s.fillText(t, (Y - d) / 2, Math.round(y * .7));
		X = hM.bm[o] = s.getImageData(0, 0, Y, y);
		return X
	};
	hM.prototype.Tt = function () {
		var F = this.jV,
			P = F.length,
			o = this.vp,
			X = this.jV[o],
			Y = (o + 1) % P;
		this.U5();
		if (P != 1 && F[Y].ym.Qn(X.ym)) {
			var y = X._l ? parseInt(X._l.split(",").pop()) : 30;
			if (y == 0) y = 16;
			if (Y == 0) this.gY++;
			if (this.Zq == 0 || this.gY < this.Zq) this.a8n = setTimeout(this.aj3, y)
		}
		this.vp = Y
	};
	hM.prototype.l9 = function (F, P) {
		if (F <= 0 || P <= 0) return;
		var o = Math.floor(F * i.J()),
			X = Math.floor(P * i.J());
		this.a.xX = new ev(0, 0, o, X);
		this.ob.width = o;
		this.ob.height = X;
		this.ob.setAttribute("style", "width:" + o / i.J() + "px; height:" + X / i.J() + "px; display:block;");
		this.U5()
	};
	hM.prototype.Qf = function (F) {
		this._z = F.target;
		i.Jr(window, this.a6f);
		i.so(window, this.a5A);
		this.$M = i.oA(F, this.ob);
		this.$M.x *= i.J();
		this.$M.y *= i.J();
		this.NW = this.$M;
		this.lf = this.a.c.clone();
		if (this.Vu && this._z == this.ob && !this.c4) this.w(new l("mousedown"))
	};
	hM.prototype.Ap = function (F) {
		var P = this.a,
			o = this.jV[this.vp].ym.clone();
		o.Z *= P.F;
		o.h *= P.F;
		var X = i.oA(F, this.ob);
		X.x *= i.J();
		X.y *= i.J();
		this.NW = X;
		if (this.Vu && this._z == this.ob && !this.c4) this.w(new l("mousemove"));
		else if (!P.xX.Qh(o)) {
			var Y = X.x - this.$M.x,
				y = X.y - this.$M.y;
			P.c.x = this.lf.x + Math.round(Y);
			P.c.y = this.lf.y + Math.round(y);
			this.w(new l("viewchange"))
		}
	};
	hM.prototype.sj = function (F) {
		i.NG(window, this.a6f);
		i.Sz(window, this.a5A);
		if (F.detail > 1) {
			this.a.F = 1;
			this.a.c.Oh(0, 0);
			this.U5()
		}
		if (this.Vu && this._z == this.ob && !this.c4) this.w(new l("mouseup"))
	};
	hM.prototype.fJ = function () {
		return this.a.PY(this.NW.x, this.NW.y)
	};

	function gk() {
		au.call(this);
		this.B7 = null;
		this.aa = null;
		this.g5 = null;
		this.VQ = null;
		this.a9P = "";
		this.p_ = [];
		this.uk = 0;
		this.vW = [];
		this._7 = 0;
		this.yH = null;
		var F = this.u = i.z("div", ""),
			P = this.acN = i.z("div", "form");
		P.setAttribute("style", "line-height:0; margin-bottom:0.5em;");
		F.appendChild(P);
		var o = this.Il = i.z("span");
		P.appendChild(o);
		o.setAttribute("style", "font-size:1.2em; font-weight:bold; margin-right:3em;");
		var X = this.a9x = new aD([25, 2, 0]);
		X.k(!0);
		P.appendChild(X.u);
		X.$(i.E.I, this.nF, this);
		var Y = this.Gu = new aD([25, 2, 1]);
		Y.k(!1);
		P.appendChild(Y.u);
		Y.$(i.E.I, this.nF, this);
		var y = new dC(" ");
		P.appendChild(y.u);
		var z = this.op = new f6([25, 1, 1]);
		P.appendChild(z.u);
		z.$(i.E.I, this.nF, this);
		this.Ih = new gS(14);
		this.Ih.aaq(3);
		P.appendChild(this.Ih.u);
		this.Ih.parent = this;
		this.Ih.$(i.E.I, this.aa1, this);
		var s = this.aff = new fV([25, 1, 2], null, null, !0);
		P.appendChild(s.u);
		s.$("click", this.$a, this);
		this.alW = this.a4F.bind(this);
		this.KG = i.z("div", "svggallery scrollable");
		F.appendChild(this.KG);
		this.KG.addEventListener("scroll", this.a5_.bind(this))
	}
	gk.prototype = new au;
	gk.prototype.AK = function (F) {
		this.amD = F
	};
	gk.prototype.t = function () {
		this.Il.textContent = h9.get([25, 0]);
		this.Ih.t();
		this.a9x.t();
		this.Gu.t();
		this.op.t();
		this.aff.t()
	};
	gk.prototype.l9 = function (F, P) {
		P -= 26;
		this.B7 = new aH(F, P);
		this.acN.setAttribute("style", "width:" + F + "px");
		this.KG.setAttribute("style", "width:" + F + "px; height:" + P + "px");
		if (i.WW(this.u)) this.nF()
	};
	gk.prototype.k = function (F) {
		this.aa = F;
		this.nF()
	};
	gk.prototype.a5_ = function (F) {
		var P = this.KG;
		if (P.scrollTop + P.clientHeight + 10 >= P.scrollHeight) {
			this.nF(!0)
		}
	};
	gk.prototype.aa1 = function (F) {
		this.g5 = null;
		this.nF()
	};
	gk.prototype.a4F = function (F) {
		if (Date.now() - this._7 < 2e3) return;
		this._7 = Date.now();
		this.uk = this.vW.indexOf(F.currentTarget);
		var P = this.Cp(this.aa.x, this.aa.y);
		if (P[1]) {
			var o = P[1].largeImageURL,
				X = new XMLHttpRequest;
			X.responseType = "arraybuffer";
			X.open("GET", o, !0);
			X.onload = this.a7Y.bind(this);
			X.send();
			return
		}
		this.CI(P)
	};
	gk.prototype.a7Y = function (F) {
		var P = F.target.response,
			o = em.Xh(P),
			X = em.$I(o),
			Y = X.xo(P),
			y = this.Cp(this.aa.x, this.aa.y, [P, Y[0].ym.Z, Y[0].ym.h]);
		this.CI(y)
	};
	gk.prototype.CI = function (F) {
		var P = F[0],
			o = em.Xh(P),
			X = em.$I(o),
			Y = new c_("template.psd");
		X.xo(P, Y);
		var y = new l("tempready", !0);
		y.data = {
			EA: Y
		};
		this.w(y)
	};
	gk.prototype.$a = function (F) {
		var P = F.target;
		this.p_ = [];
		this.nF()
	};
	gk.prototype.alk = function (F) {
		console.log(F.target.response);
		var P = JSON.parse(F.target.response);
		this.VQ = P.hits;
		this.nF()
	};
	gk.prototype.nF = function (F) {
		if (this.aa == null || this.B7 == null || this.amD == null) return;
		if (this.B7.x <= 0) return;
		var P = this.aa.x,
			o = this.aa.y;
		if (Math.min(P, o) < 50) return;
		if (F != !0) {
			this.vW = [];
			i.TD(this.KG);
			this.KG.scrollTop = 0
		}
		if (this.vW.length > 300) return;
		var X = Math.min(1, 300 / Math.max(P, o)),
			Y = this.B7.clone();
		Y.x -= 20;
		var y = Math.max(1, Math.floor(Y.x / (P * X))),
			z = Math.max(1, Math.ceil(Y.y / (o * X)));
		X = Y.x / y / P;
		var s = y * z;
		if (this.g5 == null) {
			var t = this.amD.SN.Ij();
			this.g5 = [];
			for (var d in t) {
				var U = t[d],
					v = U[3];
				if (!this.Ih.x3(U)) continue;
				if (U[5] == null || U[5].slice(0, 2) == "gf") continue;
				this.g5.push(U)
			}
			if (this.g5.length == 0) this.g5.push(t["AlibabaPuHuiTi-Regular"])
		}
		var A = this.Gu.q(),
			Z = this.op.q().trim();
		this.op.b0(A);
		if (A && (this.VQ == null || Z != this.a9P)) {
			var D = new XMLHttpRequest,
				q = "https://pixabay.com/api/?image_type=photo" + (Z == "" ? "" : "&q=" + encodeURIComponent(Z)) + "&per_page=200&page=1&key=10554583-a5eacb61c2e61105fdfb6eb88";
			if (Z == "") q += "&safesearch=true";
			D.open("GET", q, !0);
			D.onload = this.alk.bind(this);
			D.onerror = function (b) {
				console.log(b.target.response)
			};
			D.send();
			this.a9P = Z;
			return
		}
		X *= (P * X - 5) / (P * X);
		var R = this.vW.length;
		for (var w = 0; w < s; w++) {
			var J = this.uk = R + w;
			if (this.p_[J] == null) this.p_[J] = Math.floor(Math.random() * 4294967295);
			var W = this.Cp(Math.round(P * X), Math.round(o * X)),
				p = W[0];
			p = r.bc(new Uint8Array(p));
			var n = i.z("span");
			n.innerHTML = p;
			this.vW.push(n);
			this.KG.appendChild(n);
			n.addEventListener("click", this.alW, !1)
		}
	};
	gk.prototype.Cp = function (F, P, o) {
		var X = this.Gu.q(),
			Y = this.a9x.q(),
			y = X && this.VQ.length != 0 ? this.VQ : null;
		if (Y && !X) y = null;
		if (Y && X && (this.uk & 1) == 0) y = null;
		return e$.Ny(F, P, this.p_[this.uk], this.g5, o ? o : y)
	};

	function gd() {
		au.call(this);
		this.u = i.z("div");
		this.ZM = null;
		this.a5S = null;
		this.rI = -1;
		this.Bi = {
			JPG: [{
				Vq: new be([12, 52, 0], 0, 100, "%"),
				hV: 70
			}, {
				Vq: new aD("attach metadata"),
				hV: !1
			}],
			TIFF: [{
				Vq: new aD("attach metadata"),
				hV: !1
			}],
			WEBP: [{
				Vq: new be([12, 52, 0], 0, 100, "%"),
				hV: 70
			}],
			GIF: [{
				Vq: new be([12, 52, 0], 0, 100, "%"),
				hV: 100
			}],
			PNG: [{
				Vq: new be([12, 52, 0], 0, 100, "%"),
				hV: 100
			}, {
				Vq: new aD("don't use palettes"),
				hV: !1
			}],
			PDF: [{
				Vq: new f6([12, 52, 1]),
				hV: ""
			}, {
				Vq: new be([12, 52, 0], 0, 100, "%"),
				hV: 100
			}, {
				Vq: new aD("rasterize all"),
				hV: !1
			}, {
				Vq: new aD("rasterize text"),
				hV: !1
			}, {
				Vq: new aD("vectorize text"),
				hV: !1
			}],
			EMF: [{
				Vq: new f6([12, 52, 1]),
				hV: ""
			}, {
				Vq: new aD("rasterize all"),
				hV: !1
			}, {
				Vq: new aD("rasterize text"),
				hV: !1
			}, {
				Vq: new aD("vectorize text"),
				hV: !1
			}],
			SVG: [{
				Vq: new aD("add raster graphics"),
				hV: !0
			}, {
				Vq: new aD("add hidden layers"),
				hV: !1
			}, {
				Vq: new aD("vectorize text"),
				hV: !1
			}, {
				Vq: new aD("rasterize text"),
				hV: !1
			}, {
				Vq: new aD("add layer names"),
				hV: !0
			}, {
				Vq: new aD("pretty-print"),
				hV: !0
			}],
			RAW: [{
				Vq: new aw([12, 72], ["1", "3", "4"]),
				hV: 2
			}, {
				Vq: new aw([12, 34], ["8 Bits", "16 Bits"]),
				hV: 0
			}, {
				Vq: new aw("Byte Order", ["12-34", "34-12"]),
				hV: 0
			}],
			anim: [{
				Vq: new be("Speed", 10, 800, "%", null, !0),
				hV: 100
			}, {
				Vq: new gJ("Repeat (0 = Forever)", 0, 10, " \xD7", 0, !1, !0),
				hV: 0
			}, {
				Vq: new aD("reverse frames"),
				hV: !1
			}],
			slcs: [{
				Vq: new aD("As Slices"),
				hV: !0
			}]
		};
		for (var F in this.Bi) {
			var P = this.Bi[F];
			for (var w = 0; w < P.length; w++) {
				P[w].Vq.k(P[w].hV);
				P[w].Vq.$(i.E.I, this.ko, this)
			}
		}
	}
	gd.prototype = new au;
	gd.prototype.a2p = function () {
		this.rI = -1
	};
	gd.prototype.t = function () {
		for (var F in this.Bi)
			for (var w = 0; w < this.Bi[F].length; w++) this.Bi[F][w].Vq.t()
	};
	gd.prototype.ko = function () {
		this.nF();
		this.w(new l(i.E.I, !1))
	};
	gd.prototype.nF = function () {
		var F = this.ZM,
			P = F[0],
			o = F[1],
			X = F[2],
			Y = this.Bi[P];
		if (Y == null) Y = [];
		else Y = Y.slice(0);
		if (o) Y = Y.concat(this.Bi.anim);
		if (["GIF", "PNG", "JPG"].indexOf(P) != -1 && X) Y = Y.concat(this.Bi.slcs);
		if (P + " " + o != this.rI) {
			this.rI = P + " " + o;
			i.TD(this.u);
			for (var w = 0; w < Y.length; w++) {
				this.u.appendChild(Y[w].Vq.u);
				i.Rf(this.u)
			}
		}
		var y = this.a5S = [];
		for (var w = 0; w < Y.length; w++) y.push(Y[w].Vq.q())
	};
	gd.prototype.vJ = function (F, P, o) {
		this.ZM = [F, P, o];
		this.nF()
	};
	gd.prototype.q = function () {
		return this.a5S.slice(0)
	};

	function a_() {
		au.call(this);
		this.u = i.z("span", "fitem");
		this.T3 = !1;
		this.gi = new fV("No", !1, "Cancel");
		this.cI = new fV("Yes", !1, "Confirm");
		this.u.appendChild(this.gi.u);
		this.u.appendChild(this.cI.u);
		this.gi.$("click", this.RD, this);
		this.cI.$("click", this.RD, this);
		this.t()
	}
	a_.prototype = new au;
	a_.prototype.t = function () {
		this.gi.kW(i.G6("cross", null, "autoscale"));
		this.cI.kW(i.G6("checkmark", null, "autoscale"))
	};
	a_.prototype.RD = function (F) {
		this.T3 = F.target == this.cI;
		this.w(new UIEvent("click"))
	};
	a_.prototype.q = function () {
		return this.T3
	};

	function f(F) {
		au.call(this);
		this.lk = F;
		this.u = i.z("div", "");
		this.mH = [];
		this.ahS = []
	}
	f.prototype = new au;
	f.prototype.yQ = function (F) {};
	f.prototype.xW = function () {
		return !1
	};
	f.prototype.l9 = function (F, P) {};
	f.prototype.AK = function (F, P) {};
	f.prototype.iM = function (F) {};
	f.prototype.k = function (F, P, o, X, Y, y) {
		var z = [],
			s = this.mH,
			t = 0,
			d = bv.jf["s" + this.lk];
		d ? d(F, z, y) : this.sO(F, z, y);
		for (var w = 0; w < s.length; w++)
			if (!(s[w] instanceof dC)) s[w].k(z[t++])
	};
	f.prototype.q = function () {
		var F = bv.tt(this.lk),
			P = [],
			o = this.mH,
			X = 0;
		for (var w = 0; w < o.length; w++)
			if (!(o[w] instanceof dC)) P[X++] = o[w].q();
		var Y = bv.jf["g" + this.lk];
		Y ? Y(F, P) : this.d2(F, P);
		return F
	};
	f.prototype.gU = function (F) {};
	f.prototype.d5 = function (F) {
		var P = this.ahS;
		for (var w = 0; w < P.length; w += 2) {
			var o = this.mH[P[w]],
				X = this.mH[P[w + 1]],
				Y = o.q(),
				y = X.q();
			if (F.target == o) X.k(Math.max(Y, y));
			else o.k(Math.min(Y, y))
		}
		this.w(new l(i.E.I))
	};
	f.prototype.t = function () {
		for (var w = 0; w < this.mH.length; w++) this.mH[w].t()
	};
	f.prototype.uZ = function (F) {
		i.KL(this.u, "form");
		var P = this.mH;
		for (var w = 0; w < P.length; w++) {
			var o = P[w];
			o.parent = this;
			o.$(i.E.I, this.d5, this);
			this.u.appendChild(o.u);
			if (o instanceof aD && P[w + 1] instanceof eH) continue;
			if (F && F.indexOf(w) != -1) i._D(this.u);
			else i.Rf(this.u)
		}
	};
	f.prototype.t9 = function () {
		return !1
	};
	f.prototype.R$ = function (F, P, o, X, Y) {};
	f.prototype.$E = function (F, P, o, X, Y) {};
	f.prototype.NL = function (F, P, o, X, Y) {};
	f.prototype.d2 = function (F, P) {};
	f.prototype.sO = function (F, P) {};
	f.Bokh = function () {
		f.call(this, "Bokh");
		this.mH = [new gq("Depth Map", ["A", "b"]), new be("Focal Distance", 0, 255), new gq([12, 76, 1], "Triangle (3),Square (4),Pentagon (5),Hexagon (6),Heptagon (7),Octagon (8)".split(",")), new be([12, 56], 0, 100), new be([12, 15], 0, 360), new be([12, 2], 0, 100), new be([4, 13], 0, 255), new be([24, 6], 0, 100), new aw([12, 58], [
			[12, 59, 0],
			[12, 59, 1]
		]), new aD([12, 60])];
		this.uZ([4, 6])
	};
	f.Bokh.prototype = new f;
	f.Bokh.prototype.sO = function (F, P, o) {
		var X = [
				[22, 5, 0],
				[6, 5, 3],
				[6, 2]
			],
			Y = F.BkDi.v.BtDi,
			y = F.BkDc,
			z = 0;
		if (Y == "BeIn") z = 0;
		else if (Y == "BeIt" && y.v.BtDc == "BeCt") z = 1;
		else if (Y == "BeIt" && y.v.BtDc == "BeCm") z = 2;
		else z = 3 + y.v;
		for (var w = 0; w < o[1].length; w++) X.push(o[1][w].name);
		this.mH[0].KI(X, [3]);
		P[0] = z;
		P[1] = F.BkDp.v;
		P[2] = parseInt(F.BkIs.v.BtIs.slice(3)) - 3;
		P[3] = F.BkIb.v;
		P[4] = F.BkIr.v;
		P[5] = F.BkSb.v;
		P[6] = F.BkSt.v;
		P[7] = F.BkNa.v;
		P[8] = F.BkNt.v.BtNt == "BeNu" ? 0 : 1;
		P[9] = F.BkNm.v
	};
	f.Bokh.prototype.d2 = function (F, P) {
		var o;
		if (P[0] == 0) {
			o = "BeIn";
			delete F.BkDc
		} else if (P[0] < 3) {
			o = "BeIt";
			F.BkDc = {
				t: "enum",
				v: {
					BtDc: ["BeCt", "BeCm"][P[0] - 1]
				}
			}
		} else {
			o = "BeIa";
			F.BkDc = {
				t: "long",
				v: P[0] - 3
			}
		}
		F.BkDi.v.BtDi = o;
		F.BkDp.v = P[1];
		F.BkIs.v.BtIs = "BeS" + (3 + P[2]);
		F.BkIb.v = P[3];
		F.BkIr.v = P[4];
		F.BkSb.v = P[5];
		F.BkSt.v = P[6];
		F.BkNa.v = P[7];
		F.BkNt.v.BtNt = ["BeNu", "BeNg"][P[8]];
		F.BkNm.v = P[9]
	};
	f.oilPaint = function () {
		f.call(this, "oilPaint");
		this.mH = [new be([12, 56], .1, 10, "px", !0), new be("Cleanliness", 0, 10, "px", !0), new be([12, 38], .1, 10, null, !0), new be("Bristle Detail", 0, 10, null, !0), new aD("Lighting"), new be("Shine", 0, 10, null, !0), new f2([12, 15])];
		this.uZ()
	};
	f.oilPaint.prototype = new f;
	f.oilPaint.prototype.sO = function (F, P) {
		var o = "stylization cleanliness brushScale microBrush lightingOn specularity".split(" ");
		for (var w = 0; w < o.length; w++) P[w] = F[o[w]].v;
		P[6] = F.LghD.v
	};
	f.oilPaint.prototype.d2 = function (F, P) {
		var o = "stylization cleanliness brushScale microBrush lightingOn specularity".split(" ");
		for (var w = 0; w < o.length; w++) F[o[w]].v = P[w];
		F.LghD.v = P[6].Fu
	};
	f.lightFilterGradient = function () {
		f.call(this, "lightFilterGradient");
		this.mH = [new be([24, 3, 1], 0, 30, "px"), new be([12, 38], 0, 200, "%"), new aD([4, 11]), new be("High", 0, 100, "%"), new be("Medium", 0, 100, "%"), new be("Low", 0, 100, "%")];
		this.uZ()
	};
	f.lightFilterGradient.prototype = new f;
	f.lightFilterGradient.prototype.sO = function (F, P) {
		P[0] = F.blur.v;
		P[1] = F.textureScale.v * 100;
		P[2] = F.Scl.v == -1;
		var o = F.Dtl.v;
		P[3] = o[0].v * 100;
		P[4] = o[1].v * 100;
		P[5] = o[2].v * 100
	};
	f.lightFilterGradient.prototype.d2 = function (F, P) {
		F.blur.v = P[0];
		F.textureScale.v = P[1] / 100;
		F.Scl.v = P[2] ? -1 : 1;
		var o = F.Dtl.v;
		o[0].v = P[3] / 100;
		o[1].v = P[4] / 100;
		o[2].v = P[5] / 100
	};
	f.LnsF = function () {
		f.call(this, "LnsF");
		this.mH = [new be([12, 2], 10, 300, "%"), new aw([12, 44], ["Lens 1", "Lens 2", "Lens 3", "Lens 4"]), new be("Position X", 0, 100, "%"), new be("Position Y", 0, 100, "%")];
		this.uZ()
	};
	f.LnsF.prototype = new f;
	f.LnsF.prototype.sO = function (F, P) {
		P[0] = F.Brgh.v;
		P[1] = ["Zm", "Nkn", "Nkn1", "PnVs"].indexOf(F.Lns.v.Lns);
		var o = F.FlrC.v;
		P[2] = Math.round(o.Hrzn.v * 100);
		P[3] = Math.round(o.Vrtc.v * 100)
	};
	f.LnsF.prototype.d2 = function (F, P) {
		F.Brgh.v = P[0];
		F.Lns.v.Lns = ["Zm", "Nkn", "Nkn1", "PnVs"][P[1]];
		var o = F.FlrC.v;
		o.Hrzn.v = P[2] / 100;
		o.Vrtc.v = P[3] / 100
	};
	f.LnCr = function () {
		f.call(this, "LnCr");
		this.mH = [new be([12, 57], -100, 100), new be([12, 38], 10, 150, "%")];
		this.uZ()
	};
	f.LnCr.prototype = new f;
	f.LnCr.prototype.sO = function (F, P) {
		P[0] = F.LnIa.v;
		P[1] = F.LnSi.v
	};
	f.LnCr.prototype.d2 = function (F, P) {
		F.LnIa.v = P[0];
		F.LnSi.v = P[1]
	};
	f.adaptCorrect = function () {
		f.call(this, "adaptCorrect");
		var F = bc;
		this.mH = [new dC([19, 6, 0]), new F([12, 57], 0, 100, "%"), new F("Tone", 0, 100, "%"), new F([12, 56], 0, 200, "px"), new dC([19, 6, 2]), new F([12, 57], 0, 100, "%"), new F("Tone", 0, 100, "%"), new F([12, 56], 0, 200, "px"), new dC([3]), new F([13, 0], -100, 100)];
		this.uZ([3, 7])
	};
	f.adaptCorrect.prototype = new f;
	f.adaptCorrect.prototype.sO = function (F, P) {
		var o = F.sdwM.v;
		P[0] = o.Amnt.v.val;
		P[1] = o.Wdth.v.val;
		P[2] = o.Rds.v;
		var o = F.hglM.v;
		P[3] = o.Amnt.v.val;
		P[4] = o.Wdth.v.val;
		P[5] = o.Rds.v;
		P[6] = F.ClrC.v
	};
	f.adaptCorrect.prototype.d2 = function (F, P) {
		var o = F.sdwM.v;
		o.Amnt.v.val = P[0];
		o.Wdth.v.val = P[1];
		o.Rds.v = P[2];
		var o = F.hglM.v;
		o.Amnt.v.val = P[3];
		o.Wdth.v.val = P[4];
		o.Rds.v = P[5];
		F.ClrC.v = P[6]
	};
	f.boxblur = function () {
		f.call(this, "boxblur");
		this.mH = [new be([12, 56], 1, 200, " px")];
		this.uZ()
	};
	f.boxblur.prototype = new f;
	f.boxblur.prototype.sO = function (F, P) {
		P[0] = F.Rds.v.val
	};
	f.boxblur.prototype.d2 = function (F, P) {
		F.Rds.v.val = P[0]
	};
	f.GsnB = function () {
		f.call(this, "GsnB");
		this.mH = [new be([12, 56], .1, 400, "px", 1, !0)];
		this.uZ()
	};
	f.GsnB.prototype = new f;
	f.MtnB = function () {
		f.call(this, "MtnB");
		this.mH = [new f2([12, 15]), new be([12, 28], 1, 100, " px")];
		this.uZ()
	};
	f.MtnB.prototype = new f;
	f.RdlB = function () {
		f.call(this, "RdlB");
		this.mH = [new be([12, 57], 1, 100), new aw([12, 36], ["Spin", "Zoom"]), new bc("Off X", 0, 1, null, 2), new bc("Off Y", 0, 1, null, 2)];
		this.uZ()
	};
	f.RdlB.prototype = new f;
	f.RdlB.prototype.sO = function (F, P) {
		P[0] = F.Amnt.v;
		P[1] = ["Spn", "Zm"].indexOf(F.BlrM.v.BlrM);
		P[2] = F.Cntr.v.Hrzn.v;
		P[3] = F.Cntr.v.Vrtc.v
	};
	f.RdlB.prototype.d2 = function (F, P) {
		F.Amnt.v = P[0];
		F.BlrM.v.BlrM = ["Spn", "Zm"][P[1]];
		F.Cntr.v.Hrzn.v = P[2];
		F.Cntr.v.Vrtc.v = P[3]
	};
	f.Dspl = function () {
		f.call(this, "Dspl");
		this.mH = [new gq([6, 36, 3], ["a", "b"]), new be([22, 4, 0], -100, 100, "px"), new be([22, 4, 1], -100, 100, "px"), new gq([24, 18, 0], [
			[24, 18, 3],
			[24, 18, 2]
		])];
		this.uZ()
	};
	f.Dspl.prototype = new f;
	f.Dspl.prototype.sO = function (F, P, o) {
		this.a5D = [];
		this.KU = [];
		var X = -1,
			Y = o ? o[0] : null;
		if (Y == null) Y = this.adB;
		else this.adB = Y;
		if (Y)
			for (var w = 0; w < Y.length; w++) {
				var y = Y[w];
				this.a5D.push(y.Z5.trim());
				this.KU.push(y.Za);
				if (y.Za == F.DspF.v.pth) X = w
			}
		this.mH[0].KI(this.a5D);
		P[0] = X == -1 ? 0 : X;
		P[1] = F.HrzS.v;
		P[2] = F.VrtS.v;
		P[3] = ["WrpA", "RptE"].indexOf(F.UndA.v.UndA)
	};
	f.Dspl.prototype.d2 = function (F, P) {
		if (this.KU.length == 0) return;
		F.DspF.v.pth = this.KU[P[0]];
		F.HrzS.v = P[1];
		F.VrtS.v = P[2];
		F.UndA.v.UndA = ["WrpA", "RptE"][P[3]]
	};
	f.Pnch = function () {
		f.call(this, "Pnch");
		this.mH = [new be([12, 57], -100, 100, "%")];
		this.uZ()
	};
	f.Pnch.prototype = new f;
	f["Plr "] = function () {
		f.call(this, "Plr ");
		this.mH = [new aw(null, ["Rect to Polar", "Polar to Rect"])];
		this.uZ()
	};
	f["Plr "].prototype = new f;
	f.Rple = function () {
		f.call(this, "Rple");
		this.mH = [new be([12, 57], -999, 999), new gq([12, 14, 0], [
			[19, 8, 0],
			[19, 8, 1],
			[19, 8, 2]
		])];
		this.uZ()
	};
	f.Rple.prototype = new f;
	f["Shr "] = function () {
		f.call(this, "Shr ");
		this.mH = [new h0(!0, !0), new gq([24, 18, 0], [
			[24, 18, 3],
			[24, 18, 2]
		])];
		this.uZ()
	};
	f["Shr "].prototype = new f;
	f["Shr "].prototype.sO = function (F, P) {
		var o = new cu(0, 255 / 127, 255 / 127, 0, -2, 128),
			X = JSON.parse(JSON.stringify(F.ShrP.v));
		H.JH.O(X, o);
		P[0] = X;
		P[1] = ["WrpA", "RptE"].indexOf(F.UndA.v.UndA)
	};
	f["Shr "].prototype.d2 = function (F, P) {
		var o = new cu(0, 255 / 127, 255 / 127, 0, -2, 128);
		o.nJ();
		H.JH.O(P[0], o);
		F.ShrP.v = P[0];
		F.ShrE.v = P[0].length - 1;
		F.UndA.v.UndA = ["WrpA", "RptE"][P[1]]
	};
	f.Sphr = function () {
		f.call(this, "Sphr");
		this.mH = [new be([12, 57], -100, 100), new gq([12, 36], ["Normal", [22, 4, 0],
			[22, 4, 1]
		])];
		this.uZ()
	};
	f.Sphr.prototype = new f;
	f.Sphr.prototype.sO = function (F, P) {
		P[0] = F.Amnt.v;
		P[1] = ["Nrml", "HrzO", "VrtO"].indexOf(F.SphM.v.SphM)
	};
	f.Sphr.prototype.d2 = function (F, P) {
		F.Amnt.v = P[0];
		F.SphM.v.SphM = ["Nrml", "HrzO", "VrtO"][P[1]]
	};
	f.Twrl = function () {
		f.call(this, "Twrl");
		this.mH = [new be([12, 15], -999, 999)];
		this.uZ()
	};
	f.Twrl.prototype = new f;
	f.Wave = function () {
		f.call(this, "Wave");
		this.ahS = [1, 2, 3, 4];
		this.mH = [new be("Number of Generators", 1, 100), new bc("Min Length", 1, 999), new bc("Max Length", 1, 999), new bc("Min Ampl.", 1, 999), new bc("Max Ampl.", 1, 999), new bc("Scale X", 1, 100, "%"), new bc("Scale Y", 1, 100, "%"), new aw([12, 44], ["Sine", "Triangle", [12, 93, 3]]), new gq([24, 18, 0], [
			[24, 18, 3],
			[24, 18, 2]
		]), new f6("Randomizer Seed")];
		this.uZ()
	};
	f.Wave.prototype = new f;
	f.Wave.prototype.sO = function (F, P) {
		P[0] = F.NmbG.v;
		P[1] = F.WLMn.v;
		P[2] = F.WLMx.v;
		P[3] = F.AmMn.v;
		P[4] = F.AmMx.v;
		P[5] = F.SclH.v;
		P[6] = F.SclV.v;
		P[7] = ["WvSn", "WvTr", "WvSq"].indexOf(F.Wvtp.v.Wvtp);
		P[8] = ["WrpA", "RptE"].indexOf(F.UndA.v.UndA);
		P[9] = F.RndS.v
	};
	f.Wave.prototype.d2 = function (F, P) {
		F.NmbG.v = P[0];
		F.WLMn.v = P[1];
		F.WLMx.v = P[2];
		F.AmMn.v = P[3];
		F.AmMx.v = P[4];
		F.SclH.v = P[5];
		F.SclV.v = P[6];
		F.Wvtp.v.Wvtp = ["WvSn", "WvTr", "WvSq"][P[7]];
		F.UndA.v.UndA = ["WrpA", "RptE"][P[8]];
		var o = parseInt(P[9]);
		if (isNaN(o)) o = 248325464;
		o = Math.max(0, Math.min(268435455, o));
		F.RndS.v = o;
		this.mH[9].k(o)
	};
	f.surfaceBlur = function () {
		f.call(this, "surfaceBlur");
		this.mH = [new be([12, 56], 1, 200, " px"), new be([4, 13], 1, 255, " px")];
		this.uZ()
	};
	f.surfaceBlur.prototype = new f;
	f.surfaceBlur.prototype.sO = function (F, P) {
		P[0] = F.Rds.v.val;
		P[1] = F.Thsh.v
	};
	f.surfaceBlur.prototype.d2 = function (F, P) {
		F.Rds.v.val = P[0];
		F.Thsh.v = P[1]
	};
	f.AdNs = function () {
		f.call(this, "AdNs");
		this.mH = [new be([12, 57], 0, 200, " %"), new gq([12, 58], [
			[12, 59, 1],
			[12, 59, 0]
		]), new aD([12, 60])];
		this.uZ()
	};
	f.AdNs.prototype = new f;
	f.DstS = function () {
		f.call(this, "DstS");
		this.mH = [new be([12, 56], 1, 200, " px"), new be([4, 13], 1, 255, " px")];
		this.uZ()
	};
	f.DstS.prototype = new f;
	f["Mdn "] = function () {
		f.call(this, "Mdn ");
		this.mH = [new be([12, 56], 1, 200, " px")];
		this.uZ()
	};
	f["Mdn "].prototype = new f;
	f["Mdn "].prototype.sO = function (F, P) {
		P[0] = F.Rds.v.val
	};
	f["Mdn "].prototype.d2 = function (F, P) {
		F.Rds.v.val = P[0]
	};
	f.ClrH = function () {
		f.call(this, "ClrH");
		this.mH = [new be([12, 56], 4, 100, " px")];
		for (var w = 1; w < 4; w++) this.mH.push(new be("Angle " + w, 0, 90, " \xB0"));
		this.uZ()
	};
	f.ClrH.prototype = new f;
	f.ClrH.prototype.sO = function (F, P) {
		P[0] = F.Rds.v;
		for (var w = 1; w < 4; w++) P[w] = F["Ang" + w].v
	};
	f.ClrH.prototype.d2 = function (F, P) {
		F.Rds.v = P[0];
		for (var w = 1; w < 4; w++) F["Ang" + w].v = P[w]
	};
	f.ClrH.prototype.t = function () {
		var F = this.mH;
		F[0].t();
		for (var w = 1; w < 4; w++) F[w].kW(h9.get([12, 15]) + " " + w)
	};
	f.Crst = function () {
		f.call(this, "Crst");
		this.mH = [new be([12, 61], 3, 100, " px")];
		this.uZ()
	};
	f.Crst.prototype = new f;
	f.Crst.prototype.sO = function (F, P) {
		P[0] = F.ClSz.v
	};
	f.Crst.prototype.d2 = function (F, P) {
		F.ClSz.v = P[0]
	};
	f.Mztn = function () {
		f.call(this, "Mztn");
		this.mH.push(new gq([12, 44], "Fine Dots,Medium Dots,Grainy Dots,Coarse Dots,Short Lines,Medium Lines,Long Lines,Short Strokes,Medium Strokes,Long Strokes".split(","), null, [4, 3, 3]));
		this.KU = "FnDt MdmD GrnD CrsD ShrL MdmL LngL ShSt MdmS LngS".split(" ");
		this.uZ()
	};
	f.Mztn.prototype = new f;
	f.Mztn.prototype.sO = function (F, P) {
		P[0] = this.KU.indexOf(F.MztT.v.MztT)
	};
	f.Mztn.prototype.d2 = function (F, P) {
		F.MztT.v.MztT = this.KU[P[0]]
	};
	f["Msc "] = function () {
		f.call(this, "Msc ");
		this.mH = [new be([12, 61], 2, 200, " px")];
		this.uZ()
	};
	f["Msc "].prototype = new f;
	f["Msc "].prototype.sO = function (F, P) {
		P[0] = F.ClSz.v.val
	};
	f["Msc "].prototype.d2 = function (F, P) {
		F.ClSz.v.val = P[0]
	};
	f.Pntl = function () {
		f.call(this, "Pntl");
		this.mH = [new be([12, 61], 3, 100, " px")];
		this.uZ()
	};
	f.Pntl.prototype = new f;
	f.Pntl.prototype.sO = function (F, P) {
		P[0] = F.ClSz.v
	};
	f.Pntl.prototype.d2 = function (F, P) {
		F.ClSz.v = P[0]
	};
	f.smartSharpen = function () {
		f.call(this, "smartSharpen");
		this.mH = [new be([12, 57], 1, 200, "%"), new be([12, 56], 0, 200, "px", 1, !0)];
		this.uZ()
	};
	f.smartSharpen.prototype = new f;
	f.smartSharpen.prototype.sO = function (F, P) {
		P[0] = F.Amnt.v.val;
		P[1] = F.Rds.v.val
	};
	f.smartSharpen.prototype.d2 = function (F, P) {
		F.Amnt.v.val = P[0];
		F.Rds.v.val = P[1]
	};
	f.UnsM = function () {
		f.call(this, "UnsM");
		this.mH = [new be([12, 57], 1, 200, " %"), new be([12, 56], 0, 200, " px"), new be([4, 13], 0, 255, " ")];
		this.uZ()
	};
	f.UnsM.prototype = new f;
	f.HghP = function () {
		f.call(this, "HghP");
		this.mH = [new be([12, 56], .1, 400, "px", 1, !0)];
		this.uZ()
	};
	f.HghP.prototype = new f;
	f["Mxm "] = function () {
		f.call(this, "Mxm ");
		this.mH = [new be([12, 56], 1, 200, " px")];
		this.uZ()
	};
	f["Mxm "].prototype = new f;
	f["Mnm "] = function () {
		f.call(this, "Mnm ");
		this.mH = [new be([12, 56], 1, 200, " px")];
		this.uZ()
	};
	f["Mnm "].prototype = new f;
	f.Ofst = function () {
		f.call(this, "Ofst");
		this.mH = [new be([22, 4, 0], -1024, 1024, " px"), new be([22, 4, 1], -1024, 1024, " px"), new gq([24, 18, 0], [
			[24, 18, 2],
			[24, 18, 1],
			[24, 18, 3]
		])];
		this.uZ()
	};
	f.Ofst.prototype = new f;
	f.Rept = function () {
		f.call(this, "Rept");
		this.mH = [new bc([12, 38], 1, 300, " %"), new bc("Row Shift", -50, 50, " %"), new bc("Space X", -99, 200, " %"), new bc("Space Y", -99, 200, " %"), new aD([4, 16, 2]), new f2([12, 15])];
		this.uZ()
	};
	f.Rept.prototype = new f;
	f.Rept.prototype.sO = function (F, P) {
		P[0] = F.Scl.v.val;
		P[1] = F.Rsft.v.val;
		P[2] = F.SpcX.v.val;
		P[3] = F.SpcY.v.val;
		P[4] = F.SpcC.v;
		P[5] = F.Angl.v
	};
	f.Rept.prototype.d2 = function (F, P) {
		F.Scl.v.val = P[0];
		F.Rsft.v.val = P[1];
		F.SpcX.v.val = P[2];
		F.SpcY.v.val = P[3];
		F.SpcC.v = P[4];
		F.Angl.v = P[5].Fu;
		return F
	};
	f.Ctoa = function () {
		f.call(this, "Ctoa");
		this.mH = [new dC([13, 0]), new eH(!0), new be(["VAR0 VAR1", "Transparency", [4, 13]], 0, 100, " %"), new be(["VAR0 VAR1", [12, 0],
			[4, 13]
		], 0, 100, " %")];
		this.uZ()
	};
	f.Ctoa.prototype = new f;
	f.Ctoa.prototype.sO = function (F, P) {
		P[0] = F.Clr.v;
		P[1] = F.Trsp.v.val;
		P[2] = F.Opct.v.val
	};
	f.Ctoa.prototype.d2 = function (F, P) {
		F.Clr.v = P[0];
		F.Trsp.v.val = P[1];
		F.Opct.v.val = P[2]
	};
	f.LqFy = function () {
		f.call(this, "LqFy");
		this.oN = !1;
		this.AF = null;
		this.ac9 = null;
		this.Q = 0;
		this.lt = {
			zm: [
				[{
					Q: {
						id: 0,
						name: [24, 1, 0, 1, 0],
						CE: "liq/smudge"
					}
				}],
				[{
					Q: {
						id: 1,
						name: [24, 1, 0, 1, 1],
						CE: "liq/reconstruct"
					}
				}],
				[{
					Q: {
						id: 2,
						name: [24, 1, 0, 1, 2],
						CE: "liq/smooth"
					}
				}],
				[{
					Q: {
						id: 3,
						name: [24, 1, 0, 1, 3],
						CE: "liq/twirl"
					}
				}],
				[{
					Q: {
						id: 4,
						name: [24, 1, 0, 1, 4],
						CE: "liq/shrink"
					}
				}],
				[{
					Q: {
						id: 5,
						name: [24, 1, 0, 1, 5],
						CE: "liq/blow"
					}
				}],
				[{
					Q: {
						id: 6,
						name: [24, 1, 0, 1, 6],
						CE: "liq/pleft"
					}
				}]
			],
			keys: []
		};
		this.I5 = new gF(this.lt, !1);
		this.I5.BN(0);
		this.I5.$(i.E.L, this.a4H, this);
		this.FG = ct.Jl();
		this.N2 = null;
		this.wl = [];
		this.nS = -1;
		this.Yi = null;
		this.akA = null;
		this.Jt = null;
		this.mv = null;
		this._9 = null;
		var F = i.z("div", "flexrow");
		this.TP = F;
		this.u.appendChild(F);
		F.appendChild(this.I5.u);
		this.view = new hM(!0);
		this.view.l9(100, 100);
		this.view.$("mousedown", this.Qf, this);
		this.view.$("mousemove", this.Ap, this);
		this.view.$("mouseup", this.sj, this);
		this.view.$("zoom", this.b9, this);
		F.appendChild(this.view.u);
		var P = i.z("div", "form");
		F.appendChild(P);
		this.wn = P;
		P.style.width = "230px";
		this.eh = [new be([12, 14, 0], 0, 1e3, null, !1, !0), new be([12, 74], 0, 100, null, !1, !1), new be([12, 84], 0, 100, null, !1, !1), new aD([12, 46]), new be([12, 0], 0, 100, null, !1, !1)];
		var o = this.FG.Brsh.v;
		o.Dmtr.v.val = 100;
		var X = [100, 50, 100, !1, 100];
		for (var w = 0; w < this.eh.length; w++) {
			var Y = this.eh[w];
			Y.k(X[w]);
			Y.$(i.E.I, this.a67, this);
			P.appendChild(Y.u)
		}
		var y = new fV("Reset", !0, null, !0);
		y.$("click", this.$a, this);
		P.appendChild(y.u);
		this.H3 = new au;
		this.H3.u = i.z("div", "floatcont");
		this.V9 = new fV("Menu", !1, null, !0);
		this.V9.$("click", this.a8f, this);
		var z = this.V9.u;
		z.setAttribute("style", "position:absolute; right:13px; top:47px")
	};
	f.LqFy.prototype = new f;
	f.LqFy.prototype.xW = function () {
		return !0
	};
	f.LqFy.prototype.yQ = function (F) {
		this.wn.appendChild(F)
	};
	f.LqFy.prototype.a8f = function (F) {
		var P = this.V9.u.getBoundingClientRect();
		this.H3.u.appendChild(this.wn);
		var o = new l(i.E.L, !0);
		o.data = {
			e: i.B.VX,
			Nc: this.H3,
			x: P.right + P.width - 290,
			y: P.top + P.height
		};
		this.w(o)
	};
	f.LqFy.prototype.gU = function (F) {
		this.oN = F.s(G.ze);
		var P = B.gn.gp(this.FG, F);
		if (P != null) {
			this.FG = P;
			this.b9();
			this.eh[0].k(P.Brsh.v.Dmtr.v.val)
		} else if (F.s(G.Bl) && F.s(G.HW)) {
			var o = this.wl;
			if (F.s(G.cm)) {
				if (this.nS + 1 < o.length) this.nS++
			} else if (this.nS > 0) this.nS--;
			this.N2.map = o[this.nS].slice(0);
			this.qK(null)
		} else this.view.gU(F)
	};
	f.LqFy.prototype.a4H = function (F) {
		if (F.data.e == i.B.MR) {
			this.Q = F.data.Q;
			this.I5.BN(this.Q)
		}
	};
	f.LqFy.prototype.a67 = function (F) {
		var P = F.currentTarget,
			w = this.eh.indexOf(P),
			o = this.FG.Brsh.v;
		if (w == 0) {
			o.Dmtr.v.val = P.q();
			this.b9()
		}
		if (w > 2) this.qK(null)
	};
	f.LqFy.prototype.M3 = function () {
		var F = this.wl;
		this.nS++;
		F[this.nS] = this.N2.map.slice(0);
		while (F.length > this.nS + 1) F.pop();
		while (F.length > 50) {
			F = F.slice(1);
			this.nS--
		}
	};
	f.LqFy.prototype.Qf = function (F) {
		this.MP();
		this.AF = this.view.fJ();
		this.ac9 = new aH(0, 0);
		this.$(i.E.El, this.Uk, this)
	};
	f.LqFy.prototype.Ap = function (F) {
		var P = this.view.fJ(),
			o = new aH(P.x - this.AF.x, P.y - this.AF.y);
		if (this.Q == 0 || this.Q == 6) this.Ru(o);
		this.AF = P
	};
	f.LqFy.prototype.sj = function (F) {
		this.M3();
		this.MP()
	};
	f.LqFy.prototype.MP = function () {
		if (this.IP(i.E.El, this.Uk)) this.removeEventListener(i.E.El, this.Uk, this)
	};
	f.LqFy.prototype.Uk = function (F) {
		if (this.Q != 0 && this.Q != 6) this.Ru(new aH(0, 0))
	};
	f.LqFy.prototype.Ru = function (F) {
		var P = this.N2,
			o = P.YY / this.Yi.Z,
			X = this.AF,
			Y = this.FG.Brsh.v,
			y = Y.Dmtr.v.val,
			z = Date.now(),
			s = P.YY,
			t = P.mi,
			d = Math.sqrt(F.x * F.x + F.y * F.y),
			U = Math.max(1, Math.ceil(d / 2)),
			v = F.x / U,
			A = F.y / U,
			Z = X.clone(),
			D = this.Q,
			q = this.eh[1].q() / 100,
			R = this.eh[2].q() / 100,
			J = [.005, .015, 0, 0, .2, .2, .01, .01, .05, .35, .1, .1, .005, .015],
			W = J[D * 2],
			p = J[D * 2 + 1],
			n = (1 - q) * W + q * p,
			b = y * o / 2;
		for (var w = 0; w < U; w++) {
			var Q = [];
			Z.x += v;
			Z.y += A;
			H.SX.a3M(P.map, s, t, D, Z.x * o, Z.y * o, b, q, R, v * o, A * o, Q, this.oN);
			H.SX.a4l(s, t, P.map, Q, 2 * n * R)
		}
		var _ = new ev(0, 0, s, t),
			L = new ev(X.x * o, X.y * o, 0, 0);
		L.PK(y * o * .5, y * o * .5);
		var m = L.clone();
		m.offset(F.x * o, F.y * o);
		L = L.s7(m);
		var I = new ev(L.x / o, L.y / o, L.Z / o, L.h / o);
		I = H.D.pd(I).$X(this.Yi);
		this.qK(I)
	};
	f.LqFy.prototype.b9 = function () {
		var F = am.b_(this.FG, null, this.view.kC().F);
		this.view._e(F)
	};
	f.LqFy.prototype.k = function (F, P, o, X, Y) {
		o = o.clone();
		if (P == null) return;
		if (!X.Qn(o)) {
			var y = o.s7(X),
				z = H.R(y.M() * 4);
			H.BP(P, o, z, y);
			P = z;
			o = y
		}
		o.x = o.y = 0;
		this.Jt = P;
		this.akA = Y;
		this._9 = P.slice(0);
		this.mv = P.slice(0);
		this.Yi = o;
		this.N2 = h7.ee(new Uint8Array(F.LqMe.v).buffer);
		var s = o.Z,
			t = o.h;
		if (this.N2.YY / s < .22) {
			this.N2 = {
				YY: Math.floor(s / 4),
				mi: Math.floor(t / 4)
			};
			this.N2.map = new Float32Array(this.N2.YY * this.N2.mi * 2)
		}
		this.wl = [];
		this.nS = -1;
		this.M3();
		this.qK(null);
		this.b9()
	};
	f.LqFy.prototype.q = function () {
		this.MP();
		var F = bv.tt("LqFy"),
			P = new Uint8Array(h7.HC(this.N2)),
			o = [];
		for (var w = 0; w < P.length; w++) o.push(P[w]);
		F.LqMe.v = o;
		return F
	};
	f.LqFy.prototype.l9 = function (F, P) {
		this.I5.l9(F, P);
		var o = this.V9.u,
			X = this.wn;
		this.TP.appendChild(X);
		this.TP.appendChild(o);
		if (F > 450) {
			X.style.marginLeft = "1em";
			this.TP.removeChild(o);
			this.view.l9(F - 238 - 45, P)
		} else {
			X.style.marginLeft = "";
			this.TP.removeChild(X);
			this.view.l9(F - 40, P)
		}
	};
	f.LqFy.prototype.t = function () {
		this.I5.t();
		for (var w = 0; w < this.eh.length; w++) this.eh[w].t()
	};
	f.LqFy.prototype.$a = function () {
		this.MP();
		this.N2.map.fill(0);
		this.M3();
		this.qK(null)
	};
	f.LqFy.prototype.qK = function (F) {
		var P = this.Yi,
			o = this.Jt,
			X = this._9,
			Y = this.N2;
		H.SX.ka(o, this.mv, P.Z, P.h, F, Y.map, Y.YY, Y.mi, 0);
		if (this.eh[3].UX()) {
			H.BP(this.akA, P, X, P, F ? F : P);
			H.N.DO("norm", this.mv, P, X, P, F ? F : P, this.eh[4].q() / 100)
		} else H.Hk(this.mv, X);
		this.view.k([{
			ym: P,
			data: X.buffer
		}])
	};
	f.GEfc = function () {
		f.call(this, "GEfc");
		this._f = 0;
		this.Hm = 0;
		this.Jt = null;
		this._9 = null;
		this.Yi = null;
		this.yH = null;
		this.j$ = null;
		this.Rd = 0;
		var F = i.z("div", "flexrow");
		this.TP = F;
		this.u.appendChild(F);
		this.view = new hM;
		this.view.l9(100, 100);
		F.appendChild(this.view.u);
		var P = i.z("div", "form");
		F.appendChild(P);
		P.style.width = "230px";
		P.style.marginLeft = "1em";
		this.Gx = [];
		var o = [];
		this.Re = {};
		for (var X in fK.names) {
			this.Gx.push(X);
			o.push(fK.names[X]);
			var Y = new f.GEfc.c6(X);
			this.Re[X] = Y;
			Y.$(i.E.I, this.yW, this)
		}
		this.em = i.z("div");
		P.appendChild(this.em);
		this.em.style.marginBottom = "1.5em";
		this.Zn = new gq(null, o);
		P.appendChild(this.Zn.u);
		this.Zn.$(i.E.I, this.yW, this);
		this.b7 = i.z("div");
		this.b7.style.height = "14em";
		P.appendChild(this.b7);
		i.Rf(P);
		this.Ad = i.z("div", "lpbody scrollable");
		this.D0 = i.z("div", "lpfoot");
		P.appendChild(this.Ad);
		P.appendChild(this.D0);
		this.$("click", this.a5U, this);
		this.qo = [];
		f8.AM([
			[5, 3],
			[5, 4]
		], this.qo, this.D0, this.pM.bind(this))
	};
	f.GEfc.prototype = new f;
	f.GEfc.prototype.xW = function () {
		return !0
	};
	f.GEfc.prototype.yQ = function (F) {
		this.em.appendChild(F)
	};
	f.GEfc.prototype.AK = function (F, P) {
		this.yH = F
	};
	f.GEfc.prototype.l9 = function (F, P) {
		this._f = F;
		this.Hm = P;
		this.view.l9(F - 240, P);
		this.Ad.style.height = P - this.b7.getBoundingClientRect().height - 140 + "px"
	};
	f.GEfc.prototype.pM = function (F) {
		var P = f8.EQ(this.qo, F),
			o = this.j$.GEfs.v,
			X = o[this.Rd].v;
		if (P == 0) {
			o.push(JSON.parse(JSON.stringify(o[this.Rd])));
			this.Rd = o.length - 1
		} else {
			o.splice(this.Rd, 1);
			if (this.Rd == o.length) this.Rd--
		}
		this.hF();
		this.qK()
	};
	f.GEfc.prototype.yW = function (F) {
		var P = this.Gx[this.Zn.q()],
			o;
		if (F.target == this.Zn) o = fK.tt(P);
		else o = this.Re[P].q();
		this.j$.GEfs.v[this.Rd].v = o;
		this.hF();
		this.qK()
	};
	f.GEfc.prototype.k = function (F, P, o, X, Y) {
		console.log(F);
		F = this.j$ = JSON.parse(JSON.stringify(F));
		if (F.GEfs == null) F = this.j$ = {
			__name: "Filter Gallery",
			classID: "GEfc",
			GEfs: {
				t: "VlLs",
				v: [{
					t: "Objc",
					v: F
				}]
			}
		};
		var y = F.GEfs.v;
		for (var w = 0; w < y.length; w++)
			if (y[w].v.GELv == null) y[w].v.GELv = {
				t: "bool",
				v: !0
			};
		this.Rd = y.length - 1;
		this.hF();
		o = o.clone();
		if (P == null) return;
		if (!X.Qn(o)) {
			var z = o.s7(X),
				s = H.R(z.M() * 4);
			H.BP(P, o, s, z);
			P = s;
			o = z
		}
		o.x = o.y = 0;
		this.Jt = P;
		this._9 = P.slice(0);
		this.Yi = o;
		this.qK()
	};
	f.GEfc.prototype.a5U = function (F) {
		var P = F.data,
			w = P.XN,
			o = this.j$.GEfs.v;
		if (P.xB) {
			o[w].v.GELv.v = !o[w].v.GELv.v;
			this.qK()
		} else this.Rd = w;
		this.hF()
	};
	f.GEfc.prototype.hF = function () {
		var F = this.j$.GEfs.v,
			P = F[this.Rd].v,
			o = P.GEfk.v.GEft,
			X = this.Gx.indexOf(o),
			Y = this.b7;
		if (X == -1) {
			alert("Unsupported gallery filter");
			this.Zn.U3();
			i.TD(Y)
		} else {
			this.Zn.k(X);
			this.Zn.R8();
			var y = this.Re[o];
			y.k(P);
			if (Y.firstChild != y.u) {
				i.TD(Y);
				Y.appendChild(y.u)
			}
		}
		var z = [];
		for (var w = 0; w < F.length; w++) {
			var s = F[w].v,
				t = fK.names[s.GEfk.v.GEft],
				d = new fB(w, !0, !1, null, t ? t : "Filter", w == this.Rd, s.GELv.v);
			d.parent = this;
			z.push(d.u)
		}
		i.TD(this.Ad);
		z.reverse();
		for (var w = 0; w < z.length; w++) this.Ad.appendChild(z[w]);
		this.l9(this._f, this.Hm)
	};
	f.GEfc.prototype.q = function () {
		return JSON.parse(JSON.stringify(this.j$))
	};
	f.GEfc.prototype.qK = function (F) {
		var P = this.Yi,
			o = this.Jt,
			X = this._9,
			Y = this.Gx[this.Zn.q()],
			y = this.j$,
			z = this.yH;

		function s(t) {
			return {
				U: t >>> 16,
				S: t >>> 8 & 255,
				i: t & 255
			}
		}
		bv.t5("GEfc", {
			rect: this.Yi,
			buffer: this.Jt
		}, y, s(z.GY), s(z.Ty), {
			rect: this.Yi,
			buffer: this._9
		}, null);
		this.view.k([{
			ym: P,
			data: X.buffer
		}])
	};
	f.GEfc.prototype.t = function () {
		for (var F in this.Re) this.Re[F].t();
		f8.If(this.qo, ["lrs/newlayer", "lrs/bin"])
	};
	f.GEfc.c6 = function (F) {
		au.call(this);
		this.bl = F;
		this.u = i.z("div");
		this.pE = {};
		var P = fK.tt(F);
		for (var o in P) {
			var X;
			if (o == "__name" || o == "classID" || o == "GEfk" || o == "GELv" || ["LghI", "FlRs"].indexOf(o) != -1) continue;
			else if (o == "Sz") X = new be([12, 14, 0], 1, 50);
			else if (o == "Dtl") X = new be("Detail", 1, 15);
			else if (o == "Shrp") X = new be("Sharpness", 0, 40);
			else if (o == "BrsT") X = new gq("Brush type", "Simple,Light Rough,Dark Rough,Wide Sharp,Wide Blurry,Sparkle".split(","));
			else if (o == "LghD") X = new gq("Light", "Bottom,Bottom Left,Left,Top Left,Top,Top Right,Right,Bottom Right".split(","));
			else if (o == "SDir") X = new gq([12, 33], ["Right Diagonal", "Horizontal", "Left Diagonal", "Vertical"]);
			else if (o == "EdgW") X = new be("Edge Width", 1, 14);
			else if (o == "EdgB") X = new be("Edge Brightness", 0, 20);
			else if (o == "Smth") X = new be([19, 3, 3], 1, 15);
			else if (o == "ClSz") X = new be([12, 61], 3, 100);
			else if (o == "BrdT") X = new be([7, 9], 1, 20);
			else if (o == "HghS") X = new be([12, 64], 0, 20);
			else if (o == "HlSz") X = new be([12, 14, 0], 1, 15);
			else if (o == "Cntr") X = new be([12, 3, 0], 0, 50);
			else if (o == "ScrT") X = new gq([12, 62], ["Circle", "Dot", [10, 35]]);
			else if (o == "SprR") X = new be("Spray Radius", 0, 25);
			else if (o == "StrL") X = new be("Stroke Length", 0, 20);
			else console.log(o);
			X.$(i.E.I, this.H6, this);
			this.pE[o] = X;
			this.u.appendChild(X.u)
		}
	};
	f.GEfc.c6.prototype = new au;
	f.GEfc.c6.prototype.H6 = function (F) {
		this.w(new l(i.E.I, !1))
	};
	f.GEfc.c6.prototype.k = function (F) {
		for (var P in this.pE) {
			var o;
			if ("Sz Dtl Shrp EdgW EdgB Smth ClSz BrdT HghS HlSz Cntr SprR StrL".split(" ").indexOf(P) != -1) o = F[P].v;
			else if (P == "BrsT") o = fK.y7.indexOf(F[P].v[P]);
			else if (P == "LghD") o = fK.Ok.indexOf(F[P].v[P]);
			else if (P == "ScrT") o = fK.ya.indexOf(F[P].v[P]);
			else if (P == "SDir") o = fK.ts.indexOf(F[P].v.StrD);
			this.pE[P].k(o)
		}
	};
	f.GEfc.c6.prototype.q = function () {
		var F = fK.tt(this.bl);
		for (var P in this.pE) {
			var o = this.pE[P].q();
			if ("Sz Dtl Shrp EdgW EdgB Smth ClSz BrdT HghS HlSz Cntr SprR StrL".split(" ").indexOf(P) != -1) F[P].v = o;
			else if (P == "BrsT") F[P].v[P] = fK.y7[o];
			else if (P == "LghD") F[P].v[P] = fK.Ok[o];
			else if (P == "ScrT") F[P].v[P] = fK.ya[o];
			else if (P == "SDir") F[P].v.StrD = fK.ts[o]
		}
		return F
	};
	f.GEfc.c6.prototype.t = function () {
		for (var F in this.pE) this.pE[F].t()
	};
	f.blnc = function () {
		f.call(this);
		var F = this.u;
		this.T3 = null;
		this.h1 = new gq([12, 12], [
			[19, 6, 0],
			[19, 6, 1],
			[19, 6, 2]
		]);
		this.h1.$(i.E.I, this.qK, this);
		F.appendChild(this.h1.u);
		this.qh = [];
		for (var w = 0; w < 3; w++) {
			var P = new be(b_.Nx[w], -100, 100);
			P.$(i.E.I, this.d5, this);
			this.qh.push(P);
			F.appendChild(P.u)
		}
		this.aV = new aD([13, 4]);
		this.aV.$(i.E.I, this.d5, this);
		F.appendChild(this.aV.u)
	};
	f.blnc.prototype = new f;
	f.blnc.prototype.t = function () {
		this.h1.t();
		for (var w = 0; w < 3; w++) this.qh[w].t();
		this.aV.t()
	};
	f.blnc.prototype.k = function (F) {
		this.T3 = JSON.parse(JSON.stringify(F));
		this.qK()
	};
	f.blnc.prototype.q = function (F) {
		var P = ["ShdL", "MdtL", "HghL"],
			o = this.T3[P[this.h1.q()]].v;
		for (var w = 0; w < 3; w++) o[w].v = this.qh[w].q();
		this.T3.PrsL.v = this.aV.q();
		return JSON.parse(JSON.stringify(this.T3))
	};
	f.blnc.prototype.qK = function (F) {
		var P = ["ShdL", "MdtL", "HghL"],
			o = this.T3[P[this.h1.q()]].v;
		for (var w = 0; w < 3; w++) this.qh[w].k(o[w].v);
		this.aV.k(this.T3.PrsL.v)
	};
	f.brit = function () {
		f.call(this, "brit");
		this.mH.push(new be([12, 2], -150, 150, ""));
		this.mH.push(new be([12, 3, 0], -100, 100, ""));
		this.mH.push(new aD([12, 3, 1]));
		this.uZ()
	};
	f.brit.prototype = new f;
	f.brit.prototype.sO = function (F, P) {
		P[0] = F.Brgh ? F.Brgh.v : 0;
		P[1] = F.Cntr ? F.Cntr.v : 0;
		P[2] = F.useLegacy ? F.useLegacy.v : !1
	};
	f.brit.prototype.d2 = function (F, P) {
		F.Brgh.v = P[0];
		F.Cntr.v = P[1];
		F.useLegacy.v = P[2]
	};
	f.curv = function () {
		f.call(this);
		this.value = null;
		this.pC = null;
		var F = this.u;
		this.P8 = new gq([12, 4], ["RGB", [13, 1, 1],
			[13, 1, 4],
			[13, 1, 5]
		]);
		this.P8.$(i.E.I, this.U5, this);
		F.appendChild(this.P8.u);
		this.zv = new gq(null, ["Spline", "Sketch"]);
		this.zv.$(i.E.I, this.a7M, this);
		F.appendChild(this.zv.u);
		this.wK = new h0;
		this.wK.$(i.E.I, this.Pm, this);
		F.appendChild(this.wK.u);
		this.eI = new aB("Sample from image", ["#000000", "#888888", "#ffffff"]);
		F.appendChild(this.eI.u)
	};
	f.curv.prototype = new f;
	f.curv.prototype.t = function () {
		this.P8.t()
	};
	f.curv.prototype.a7M = function (F) {
		var P = e2.Yl(this.value, 0),
			o = P.length == 256 ? 1 : 0,
			X = this.zv.q();
		if (o == X) return;
		var Y = bv.tt("curv");
		if (X == 1) {
			var y = [];
			for (var w = 0; w < 256; w++) y.push(w);
			e2._j(Y, 0, y)
		}
		this.k(Y);
		this.d5()
	};
	f.curv.prototype.Pm = function () {
		e2._j(this.value, this.P8.q(), this.wK.q());
		this.d5()
	};
	f.curv.prototype.U5 = function () {
		var F = this.P8.q(),
			P = e2.Yl(this.value, F),
			o = P.length == 256 ? 1 : 0;
		this.zv.k(o);
		if (this.pC) this.wK.iM(this.pC[F], this.pC[4] * [1, .33, .33, .33][F], ["#ccc", "#fcc", "#cfc", "#ccf"][F]);
		this.wK.k(P)
	};
	f.curv.prototype.t9 = function () {
		return !0
	};
	f.curv.prototype.NL = function (F, P, o, X, Y) {
		var y = this.value,
			z = this.eI.q();
		this.value = bv.tt("curv");
		this.d5();
		var s = B.yY.Js(F, Y, 1),
			t = [s >>> 16 & 255, s >>> 8 & 255, s & 255];
		for (var w = 0; w < 3; w++) {
			var d = e2.Yl(y, 1 + w);
			if (z == 0) d[0].v.Hrzn.v = t[w];
			if (z == 1) {
				var U = (t[0] + t[1] + t[2]) * .333,
					v = Math.log(t[w] / 255) / Math.log(U / 255),
					A = Math.min(999, Math.max(10, Math.round(100 * v)));
				if (d.length == 2) d.splice(1, 0, JSON.parse(JSON.stringify(d[0])));
				d[1].v.Hrzn.v = 127 - Math.log(A / 100) * 127;
				d[1].v.Vrtc.v = 127
			}
			if (z == 2) d[d.length - 1].v.Hrzn.v = t[w];
			e2._j(y, 1 + w, d)
		}
		this.k(y);
		this.d5()
	};
	f.curv.prototype.k = function (F) {
		this.value = F;
		this.U5()
	};
	f.curv.prototype.iM = function (F) {
		this.pC = F;
		this.U5()
	};
	f.curv.prototype.q = function (F) {
		return JSON.parse(JSON.stringify(this.value))
	};
	f.expA = function () {
		f.call(this, "expA");
		this.mH.push(new be([12, 5], -20, 20, null, 3));
		this.mH.push(new be([12, 6], -.5, .5, null, 3));
		this.mH.push(new be([12, 7], .01, 6.99, null, 3));
		this.uZ()
	};
	f.expA.prototype = new f;
	f.expA.prototype.sO = function (F, P) {
		P[0] = F.Exps.v;
		P[1] = F.Ofst.v;
		P[2] = F.gammaCorrection.v
	};
	f.expA.prototype.d2 = function (F, P) {
		F.Exps.v = P[0];
		F.Ofst.v = P[1];
		F.gammaCorrection.v = P[2]
	};
	f.grdm = function () {
		f.call(this, "grdm");
		this.mH.push(new ah(!0, null, !0));
		this.mH.push(new aD([12, 23, 0]));
		this.uZ()
	};
	f.grdm.prototype = new f;
	f.grdm.prototype.sO = function (F, P) {
		P[0] = F.Grad.v;
		P[1] = F.Rvrs ? F.Rvrs.v : !1
	};
	f.grdm.prototype.d2 = function (F, P) {
		F.Grad.v = P[0];
		F.Rvrs = {
			t: "bool",
			v: P[1]
		}
	};
	f.grdm.prototype.AK = function (F, P) {
		this.mH[0].dn(F.GY, F.Ty);
		if (P == ge.oc || P == ge.Io || P == ge.uw) this.mH[0]._F(F.dY)
	};
	f.selc = function () {
		f.call(this);
		var F = this.u;
		this.$l = [];
		this.gX = null;
		this.h1 = new gq([12, 82], b_.OD.concat([
			[13, 1, 8],
			[13, 1, 13],
			[13, 1, 10]
		]));
		this.h1.$(i.E.I, this.H6, this);
		F.appendChild(this.h1.u);
		for (var w = 0; w < 4; w++) {
			var P = new be(b_.a1j[w], -100, 100, "%");
			P.$(i.E.I, this.H6, this);
			this.$l.push(P);
			F.appendChild(P.u)
		}
		this.Bg = new aD([13, 3]);
		F.appendChild(this.Bg.u);
		this.Bg.$(i.E.I, this.H6, this)
	};
	f.selc.prototype = new f;
	f.selc.prototype.t = function () {
		this.h1.t();
		this.Bg.t();
		for (var w = 0; w < 4; w++) this.$l[w].t()
	};
	f.selc.prototype.k = function (F) {
		this.gX = JSON.parse(JSON.stringify(F));
		this.qK()
	};
	f.selc.prototype.q = function (F) {
		return JSON.parse(JSON.stringify(this.gX))
	};
	f.selc.prototype.H6 = function (F) {
		if (F.target != this.h1) {
			var P = this.gX,
				o = [];
			for (var w = 0; w < 4; w++) o[w] = this.$l[w].q();
			bu._j(P, this.h1.q(), o);
			P.Mthd = {
				t: "enum",
				v: {
					CrcM: this.Bg.q() ? "Absl" : "Rltv"
				}
			}
		}
		this.qK();
		this.d5()
	};
	f.selc.prototype.qK = function () {
		var F = this.gX,
			P = bu.Yl(F, this.h1.q());
		for (var w = 0; w < 4; w++) this.$l[w].k(P[w]);
		this.Bg.k(F.Mthd ? F.Mthd.v.CrcM == "Absl" : !1)
	};
	f.blwh = function () {
		f.call(this, "blwh");
		this.mH.push(new aD([12, 11]));
		this.mH.push(new eH(!0));
		for (var w = 0; w < 6; w++) this.mH.push(new be(b_.OD[w], -200, 300));
		this.uZ()
	};
	f.blwh.prototype = new f;
	f.blwh.prototype.sO = function (F, P) {
		P[0] = F.useTint.v;
		P[1] = F.tintColor.v;
		var o = "Rd Yllw Grn Cyn Bl Mgnt".split(" ");
		for (var w = 0; w < 6; w++) P[2 + w] = F[o[w]].v
	};
	f.blwh.prototype.d2 = function (F, P) {
		F.useTint.v = P[0];
		F.tintColor.v = P[1];
		var o = "Rd Yllw Grn Cyn Bl Mgnt".split(" ");
		for (var w = 0; w < 6; w++) F[o[w]].v = P[2 + w]
	};
	f.hue2 = function () {
		f.call(this);
		this.value = null;
		this.Dw = null;
		this.aca = null;
		var F = this.u;
		this.h1 = new gq([12, 12], ["Master"].concat(b_.OD));
		this.h1.$(i.E.I, this.U5, this);
		F.appendChild(this.h1.u);
		this._I = new be([12, 8], -180, 180);
		this._I.$(i.E.I, this._c, this);
		F.appendChild(this._I.u);
		this.TU = new be([12, 9], -100, 100);
		this.TU.$(i.E.I, this._c, this);
		F.appendChild(this.TU.u);
		this.Dr = new be([12, 10], -100, 100);
		this.Dr.$(i.E.I, this._c, this);
		F.appendChild(this.Dr.u);
		this.iD = new aD([12, 11]);
		this.iD.$(i.E.I, this.ala, this);
		F.appendChild(this.iD.u);
		this.amm = new dC("...", !0);
		F.appendChild(this.amm.u)
	};
	f.hue2.prototype = new f;
	f.hue2.prototype.t = function () {
		this._I.t();
		this.TU.t();
		this.Dr.t();
		this.iD.t();
		this.h1.t()
	};
	f.hue2.prototype.ala = function (F) {
		var P = this.iD.q();
		this.value.Clrz.v = P;
		if (P) this.h1.k(0);
		this.U5();
		this.d5()
	};
	f.hue2.prototype._c = function (F) {
		var P = this.value.Clrz.v,
			o = this.h1.q(),
			X = az.Yl(this.value, o),
			Y = o == 0 ? X : X.qh;
		Y[0] = this._I.q();
		var y = this.TU.q();
		Y[1] = P ? Math.max(0, y) : y;
		Y[2] = this.Dr.q();
		az._j(this.value, o, X);
		this.U5();
		this.d5()
	};
	f.hue2.prototype.U5 = function () {
		var F = this.value.Clrz ? this.value.Clrz.v : !1,
			Y = "";
		this.iD.k(F);
		if (F) this.h1.U3();
		else this.h1.R8();
		var P = this.h1.q(),
			o = az.Yl(this.value, P),
			X = P == 0 ? o : o.qh;
		this._I.k(X[0]);
		this.TU.k(X[1]);
		this.Dr.k(X[2]);
		if (!F) {
			Y += h9.get([5, 8]) + ": ";
			var P = this.h1.q();
			if (P == 0) Y += h9.get([13, 2]);
			else Y += o.Ej
		}
		this.amm.k(Y)
	};
	f.hue2.prototype.t9 = function () {
		return !0
	};
	f.hue2.prototype.R$ = function (F, P, o, X, Y) {
		var y = this.value;
		this.value = bv.tt("hue2");
		this.d5();
		var z = B.yY.Js(F, Y, 1),
			s = [z >>> 16 & 255, z >>> 8 & 255, z & 255],
			t = H.eE(s[0] / 255, s[1] / 255, s[2] / 255);
		this.h1.k(1 + Math.round(t.mi * 6) % 6);
		this.k(y);
		this.d5();
		this.Dw = Y.x;
		this.aca = this.TU.q()
	};
	f.hue2.prototype.$E = function (F, P, o, X, Y) {
		if (this.Dw != null) {
			var y = Y.x - this.Dw;
			y = Math.max(-100, Math.min(100, this.aca + .5 * y));
			this.TU.k(y);
			this._c()
		}
	};
	f.hue2.prototype.NL = function (F, P, o, X, Y) {
		this.Dw = null
	};
	f.hue2.prototype.k = function (F) {
		this.value = JSON.parse(JSON.stringify(F));
		this.U5()
	};
	f.hue2.prototype.q = function (F) {
		return JSON.parse(JSON.stringify(this.value))
	};
	f.levl = function () {
		f.call(this);
		this.value = null;
		this.pC = null;
		this.BV = [new aH(0, 0), new aH(0, 0), new aH(0, 0), new aH(0, 0), new aH(0, 0)];
		this.Wq = -1;
		this.ab = this.tz.bind(this);
		this.Ja = this.JB.bind(this);
		var F = this.u;
		this.P8 = new gq([12, 4], ["RGB", [13, 1, 1],
			[13, 1, 4],
			[13, 1, 5]
		]);
		this.P8.$(i.E.I, this.U5, this);
		F.appendChild(this.P8.u);
		var P = i.z("div", "");
		F.appendChild(P);
		var o = i.z("div", "");
		F.appendChild(o);
		this.in = i.z("canvas");
		P.appendChild(this.in);
		this.YV = this.in.getContext("2d");
		this.Hw = new aH(256, 120);
		this.in.setAttribute("style", "display:block");
		i.Tv(this.in, this.Hw.x, this.Hw.y, this.YV);
		i.w4(this.in);
		i.X8(this.in, this.Fx.bind(this));
		this.TK = i.z("canvas", "");
		o.appendChild(this.TK);
		this.dI = this.TK.getContext("2d");
		this.fD = new aH(this.Hw.x, 40);
		this.TK.setAttribute("style", "display:block");
		i.Tv(this.TK, this.fD.x, this.fD.y, this.dI);
		i.w4(this.TK);
		i.X8(this.TK, this.alZ.bind(this));
		var X = this.adm = [];
		for (var w = 0; w < 5; w++) {
			var Y = new f6(null, null, 3);
			X.push(Y);
			Y.$(i.E.I, this.aap, this);
			(w < 2 || w == 4 ? P : o).appendChild(Y.u)
		}
		P.appendChild(X[1].u);
		X[4].u.setAttribute("style", "margin: 0 4.7em");
		X[3].u.setAttribute("style", "margin:0 0 0 13em");
		this.eI = new aB("Sample from image", ["#000000", "#888888", "#ffffff"]);
		F.appendChild(this.eI.u)
	};
	f.levl.prototype = new f;
	f.levl.prototype.t = function () {
		this.P8.t()
	};
	f.levl.prototype.aap = function (F) {
		var P = [];
		for (var w = 0; w < 5; w++) {
			var o = 255,
				X = 1;
			if (w == 4) {
				o = 999;
				X = 100
			}
			var Y = parseFloat(this.adm[w].q());
			P[w] = Math.max(0, Math.min(o, Y * X))
		}
		gm._j(this.value, this.P8.q(), P);
		this.U5();
		this.d5()
	};
	f.levl.prototype.U5 = function (F) {
		var P = this.Hw.x,
			o = this.Hw.y,
			X = this.P8.q(),
			Y = this.YV;
		Y.clearRect(0, 0, P, o);
		Y.fillStyle = "#cccccc";
		Y.fillRect(8, 8, P - 16, o - 16 - 8);
		if (this.pC) {
			if (X == 0) {
				H.set(this.pC[0], 0);
				var y = JSON.parse(JSON.stringify(this.value));
				gm._j(y, 0, [0, 255, 0, 255, 100]);
				var z = b_.VM("levl", y),
					s = [z.KW, z.mf, z.Si];
				for (var t = 0; t < 3; t++) {
					var d = this.pC[1 + t],
						U = s[t];
					for (var w = 0; w < 256; w++) this.pC[0][U[w]] += d[w]
				}
			}
			var v = this.pC[X],
				A = 0;
			for (var w = 0; w < v.length; w++) A += v[w];
			Y.fillStyle = "#333333";
			Y.beginPath();
			Y.moveTo(8, o - 16);
			for (var w = 0; w < 256; w++) {
				var Z = 55 * v[w] / A;
				Y.lineTo(8 + w / 256 * (P - 16), Math.max(8, o - 16 - o * Z))
			}
			Y.lineTo(P - 8, o - 16);
			Y.closePath();
			Y.fill()
		}
		var D = gm.Yl(this.value, X);
		for (var w = 0; w < 5; w++) this.adm[w].k(D[w] / (w == 4 ? 100 : 1));
		this.BV[0].Oh(8 + D[0] / 255 * (P - 16), o - 14);
		this.BV[1].Oh(8 + D[1] / 255 * (P - 16), o - 14);
		var q = Math.log(D[4] / 100) / Math.log(9.99);
		q = .5 - q / 2;
		this.BV[4].Oh(this.BV[0].x + q * (this.BV[1].x - this.BV[0].x), o - 14);
		this.KP(Y, this.BV[0], "#000000");
		this.KP(Y, this.BV[1], "#ffffff");
		this.KP(Y, this.BV[4], "#777777");
		var P = this.fD.x,
			o = this.fD.y;
		Y = this.dI;
		Y.clearRect(0, 0, P, o);
		var R = Y.createLinearGradient(0, 0, P - 16, 0);
		R.addColorStop(0, "black");
		R.addColorStop(1, "white");
		Y.fillStyle = R;
		Y.fillRect(8, 8, P - 16, 16);
		this.BV[2].Oh(8 + D[2] / 255 * (P - 16), o - 14);
		this.BV[3].Oh(8 + D[3] / 255 * (P - 16), o - 14);
		this.KP(Y, this.BV[2], "#000000");
		this.KP(Y, this.BV[3], "#ffffff")
	};
	f.levl.prototype.KP = function (F, P, o) {
		F.fillStyle = o;
		F.fillRect(P.x - 5, P.y, 10, 10)
	};
	f.levl.prototype.Fx = function (F) {
		var P = i.oA(F, this.in);
		for (var w = 0; w < 2; w++)
			if (aH.Yj(this.BV[w], P) < 10) this.Wq = w;
		if (aH.Yj(this.BV[4], P) < 10) this.Wq = 4;
		this.Zl()
	};
	f.levl.prototype.alZ = function (F) {
		var P = i.oA(F, this.TK);
		for (var w = 2; w < 4; w++)
			if (aH.Yj(this.BV[w], P) < 10) this.Wq = w;
		this.Zl()
	};
	f.levl.prototype.Zl = function (F) {
		if (this.Wq == -1) return;
		i.Jr(document.body, this.ab);
		i.so(document.body, this.Ja)
	};
	f.levl.prototype.tz = function (F) {
		var P = gm.Yl(this.value, this.P8.q()),
			o = i.oA(F, this.Wq == 2 && this.Wq == 3 ? this.TK : this.in),
			X = 255 * (o.x - 8) / (this.Hw.x - 16);
		X = Math.max(0, Math.min(255, X));
		if (this.Wq == 0) X = Math.min(X, P[1] - 2);
		if (this.Wq == 1) X = Math.max(X, P[0] + 2);
		if (this.Wq != 4) P[this.Wq] = Math.round(X);
		else {
			var Y = (X - P[0]) / (P[1] - P[0]);
			Y = 1 - 2 * Y;
			Y = Math.pow(9.99, Y);
			P[4] = Math.min(999, Math.max(10, Math.round(Y * 100)))
		}
		gm._j(this.value, this.P8.q(), P);
		this.U5();
		this.d5()
	};
	f.levl.prototype.JB = function (F) {
		i.NG(document.body, this.ab);
		i.Sz(document.body, this.Ja);
		this.Wq = -1
	};
	f.levl.prototype.t9 = function () {
		return !0
	};
	f.levl.prototype.NL = function (F, P, o, X, Y) {
		var y = this.value,
			z = this.eI.q();
		this.value = bv.tt("levl");
		this.d5();
		var s = B.yY.Js(F, Y, 1),
			t = [s >>> 16 & 255, s >>> 8 & 255, s & 255];
		for (var w = 0; w < 3; w++) {
			var d = gm.Yl(y, 1 + w);
			if (z == 0) d[0] = t[w];
			if (z == 1) {
				var U = Math.log(t[w] / 255) / Math.log((t[0] + t[1] + t[2]) * .333 / 255);
				d[4] = Math.min(999, Math.max(10, Math.round(100 * U)))
			}
			if (z == 2) d[1] = t[w];
			gm._j(y, 1 + w, d)
		}
		this.k(y);
		this.d5()
	};
	f.levl.prototype.k = function (F) {
		this.value = F;
		this.U5()
	};
	f.levl.prototype.iM = function (F) {
		this.pC = F;
		this.U5()
	};
	f.levl.prototype.q = function (F) {
		return JSON.parse(JSON.stringify(this.value))
	};
	f.phfl = function () {
		f.call(this, "phfl");
		this.mH.push(new eH);
		this.mH.push(new be([12, 74], 0, 100, "%"));
		this.mH.push(new aD([13, 4]));
		this.uZ()
	};
	f.phfl.prototype = new f;
	f.phfl.prototype.sO = function (F, P) {
		P[0] = F.Clr.v;
		P[1] = F.Dnst.v;
		P[2] = F.PrsL.v
	};
	f.phfl.prototype.d2 = function (F, P) {
		var o = H.j.T6(P[0]),
			X = F.Clr.v,
			Y = H.tm(o.U, o.S, o.i);
		X.Lmnc.v = Y.Ov;
		X.A.v = Y.m;
		X.B.v = Y.i;
		F.Dnst.v = P[1];
		F.PrsL.v = P[2]
	};
	f.vibA = function () {
		f.call(this, "vibA");
		this.mH.push(new be([12, 13], -100, 100, null));
		this.mH.push(new be([12, 9], -100, 100, null));
		this.uZ()
	};
	f.vibA.prototype = new f;
	f.vibA.prototype.sO = function (F, P) {
		P[0] = F.vibrance ? F.vibrance.v : 0;
		P[1] = F.Strt ? F.Strt.v : 0
	};
	f.vibA.prototype.d2 = function (F, P) {
		F.vibrance.v = P[0];
		F.Strt.v = P[1]
	};
	f.thrs = function () {
		f.call(this, "thrs");
		this.mH.push(new be([4, 13], 1, 255, null));
		this.uZ()
	};
	f.thrs.prototype = new f;
	f.thrs.prototype.sO = function (F, P) {
		P[0] = F.Lvl.v
	};
	f.thrs.prototype.d2 = function (F, P) {
		F.Lvl.v = P[0]
	};
	f.mixr = function () {
		f.call(this);
		var F = this.u;
		this.$l = [];
		this.gX = null;
		this.h1 = new gq([12, 4], [
			[13, 1, 1],
			[13, 1, 4],
			[13, 1, 5]
		]);
		this.h1.$(i.E.I, this.H6, this);
		F.appendChild(this.h1.u);
		i.Rf(F);
		this._W = new aD([12, 60]);
		F.appendChild(this._W.u);
		this._W.$(i.E.I, this.H6, this);
		for (var w = 0; w < 4; w++) {
			var P = new be([
				[13, 1, 1],
				[13, 1, 4],
				[13, 1, 5],
				[13, 2]
			][w], -200, 200, "%");
			P.$(i.E.I, this.H6, this);
			this.$l.push(P);
			F.appendChild(P.u)
		}
	};
	f.mixr.prototype = new f;
	f.mixr.prototype.t = function () {
		this.h1.t();
		this._W.t();
		for (var w = 0; w < 4; w++) this.$l[w].t()
	};
	f.mixr.prototype.k = function (F) {
		this.gX = JSON.parse(JSON.stringify(F));
		this.qK()
	};
	f.mixr.prototype.q = function (F) {
		return JSON.parse(JSON.stringify(this.gX))
	};
	f.mixr.prototype.H6 = function (F) {
		if (F.target != this.h1) {
			var P = b_.FX(this.gX);
			if (F.target == this._W) {
				P._W = this._W.q();
				if (P._W) P.C = [40, 40, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
				else P.C = [100, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0]
			} else {
				var o = (P._W ? 0 : this.h1.q()) * 5,
					w = this.$l.indexOf(F.target);
				P.C[o + (w < 3 ? w : 4)] = F.target.q()
			}
			this.gX = b_.Dn(P)
		}
		this.qK();
		this.d5()
	};
	f.mixr.prototype.qK = function () {
		var F = b_.FX(this.gX);
		this._W.k(F._W);
		var P = (F._W ? 0 : this.h1.q()) * 5;
		for (var w = 0; w < 4; w++) this.$l[w].k(F.C[P + (w < 3 ? w : 4)])
	};
	f.post = function () {
		f.call(this, "post");
		this.mH.push(new be([4, 1], 2, 255, null));
		this.uZ()
	};
	f.post.prototype = new f;
	f.post.prototype.sO = function (F, P) {
		P[0] = F.Lvls.v
	};
	f.post.prototype.d2 = function (F, P) {
		F.Lvls.v = P[0]
	};
	f.clrL = function () {
		f.call(this, "clrL");
		this.mH.push(new b$("LUTs"));
		this.uZ()
	};
	f.clrL.prototype = new f;
	f.clrL.prototype.sO = function (F, P) {
		P[0] = F
	};
	f.clrL.prototype.d2 = function (F, P) {
		var o = P[0];
		for (var X in o) F[X] = o[X]
	};
	f.clrL.prototype.AK = function (F, P) {
		if (P == ge.oc || P == ge.rn) this.mH[0]._F(F.abU)
	};
	f.rplc = function () {
		f.call(this, "rplc");
		this.mH.push(new be([12, 92], 0, 200));
		this.mH.push(new eH);
		this.mH.push(new be([12, 8], -180, 180));
		this.mH.push(new be([12, 9], -100, 100));
		this.mH.push(new be([12, 10], -100, 100));
		this.uZ()
	};
	f.rplc.prototype = new f;
	f.rplc.prototype.sO = function (F, P) {
		P[0] = F.Fzns.v;
		P[1] = F.Mxm.v;
		P[2] = F.H.v;
		P[3] = F.Strt.v;
		P[4] = F.Lght.v
	};
	f.rplc.prototype.d2 = function (F, P) {
		function o(Y, y) {
			y.Lmnc.v = Y.Ov;
			y.A.v = Y.m;
			y.B.v = Y.i
		}
		F.Fzns.v = P[0];
		F.H.v = P[2];
		F.Strt.v = P[3];
		F.Lght.v = P[4];
		var X = H.j.T6(P[1]),
			Y = H.tm(X.U, X.S, X.i);
		o(Y, F.Mnm.v);
		o(Y, F.Mxm.v)
	};
	f.fade = function () {
		f.call(this, "fade");
		this.mH.push(new be([12, 0], 0, 100, "%"));
		this.mH.push(new gq([12, 19, 0], aK.Zn, !1, aK.wp));
		this.uZ()
	};
	f.fade.prototype = new f;
	f.fade.prototype.sO = function (F, P) {
		P[0] = F.Opct.v.val;
		P[1] = aK.zn.indexOf(F.Md.v.BlnM)
	};
	f.fade.prototype.d2 = function (F, P) {
		F.Opct.v.val = P[0];
		F.Md.v.BlnM = aK.zn[P[1]]
	};

	function ai(F, P) {
		au.call(this);
		if (F == null) return;
		this.id = P;
		this.CA = F;
		this._3 = null;
		this.u = i.z("div", "window " + P);
		this.aco = null;
		this.n4 = i.z("div", "whead");
		this.a7b = i.z("span", "wname");
		this.n4.appendChild(this.a7b);
		this.u.appendChild(this.n4);
		this.TY = this.aft.bind(this);
		this.m4 = this.aie.bind(this);
		this.xL = this.a4_.bind(this);
		i.w4(this.n4);
		i.X8(this.n4, this.TY);
		this.sS = i.z("span", "cross");
		this.n4.appendChild(this.sS);
		ai.prototype.t.call(this);
		i.so(this.sS, this.b3.bind(this));
		this.body = i.z("div", "body");
		this.u.appendChild(this.body)
	}
	ai.prototype = new au;
	ai.prototype.go = function () {
		return !1
	};
	ai.prototype.t9 = function () {
		return !1
	};
	ai.prototype.t = function () {
		if (this.CA == null) return;
		this.a7b.textContent = h9.get(this.CA);
		var F = PIMG.__cross == null ? "filter:invert(1);" : "";
		this.sS.setAttribute("style", "background-image:url(" + PIMG.cross + ");" + F)
	};
	ai.prototype.R$ = function (F, P, o, X, Y) {};
	ai.prototype.xg = function (F, P, o, X, Y) {};
	ai.prototype.$E = function (F, P, o, X, Y) {};
	ai.prototype.NL = function (F, P, o, X, Y) {};
	ai.prototype.FT = function (F, P, o, X, Y) {};
	ai.prototype.gU = function (F, P, o, X) {
		if (X.s(G.Xr) && this.ja) this.ja()
	};
	ai.prototype.aU = function (F) {
		return !1
	};
	ai.prototype.K9 = function (F, P) {
		return !0
	};
	ai.prototype.Vp = function (F, P, o, X) {};
	ai.prototype.AK = function (F, P) {};
	ai.prototype.eL = function (F, P) {
		return null
	};
	ai.prototype.a76 = function (F) {
		return this.aco
	};
	ai.prototype.l9 = function () {};
	ai.prototype.close = function () {
		this.w(new l(i.E.Ga))
	};
	ai.prototype.aft = function (F) {
		this._3 = i.oA(F, this.u);
		i.Jr(window, this.m4);
		i.so(window, this.xL)
	};
	ai.prototype.aie = function (F) {
		var P = this.u.parentNode,
			o = i.oA(F, P),
			X = Math.round(o.x - this._3.x),
			Y = P.offsetTop + Math.max(0, Math.min(window.innerHeight - 36, Math.round(o.y - this._3.y)));
		this.aco = new aH(X, Y);
		this.u.style.left = X + "px";
		this.u.style.top = Y + "px"
	};
	ai.prototype.a4_ = function (F) {
		i.NG(window, this.m4);
		i.Sz(window, this.xL)
	};
	ai.prototype.b3 = function (F) {
		this.w(new l("closebtn"));
		this.close()
	};

	function g1() {
		ai.call(this, [0, 13, 0], "account");
		this.xr = i.z("div", "form padded scrollable");
		this.xr.setAttribute("style", "max-width:48em;  max-height:33em;");
		this.body.appendChild(this.xr);
		this.ZP = [new g1.hJ, new g1.uA(g1.aaS), new g1.uA(g1.afa)];
		for (var w = 0; w < this.ZP.length; w++) this.ZP[w].parent = this;
		this.$("showpage", this.acC, this)
	}
	g1.prototype = new ai;
	g1.prototype.acC = function (F) {
		i.TD(this.xr);
		this.xr.scrollTop = 0;
		this.xr.appendChild(this.ZP[F.data.XN].u)
	};
	g1.prototype.t = function () {
		ai.prototype.t.call(this);
		for (var w = 0; w < this.ZP.length; w++) this.ZP[w].t()
	};
	g1.prototype.Vp = function (F, P, o) {
		i.TD(this.xr);
		var X = this.ZP[0];
		this.xr.appendChild(X.u);
		X.Vp();
		this.t()
	};
	g1.prototype.AK = function (F, P) {
		this.Vp(null, null, null)
	};
	g1.hJ = function () {
		au.call(this);
		this.u = i.z("div");
		var F = this.u,
			P, o, X = "background-color: #00aa00;  text-shadow:none; padding:3px 7px; font-size:1.2em; font-weight:bold; color:#ffffff; cursor:pointer; margin:4px 0;";
		this.ty = i.z("div");
		F.appendChild(this.ty);
		this.Ts = new fV([0, 11], !1, null, !0);
		this.Ts.u.setAttribute("style", "background-color: rgba(200,0,0,1); color:#ffffff; margin:4px 6px 4px 0;");
		this.Ts.$("click", this.Lh, this);
		F.appendChild(this.Ts.u);
		this.Gp = new fV([0, 13, 1], !1, null, !0);
		this.Gp.$("click", this.uK, this);
		F.appendChild(this.Gp.u);
		this.a9U = new fV("Contact", !1, null, !0);
		this.a9U.$("click", this.amB, this);
		P = i.z("h2", "");
		P.innerHTML = "Account types";
		F.appendChild(P);
		o = i.z("table", "");
		o.innerHTML = "\t\t\t<table>\t\t\t\t<tr>   <th class=\"left\"></th><th>Free</th><th>Premium</th> </tr>\t\t\t\t<tr>   <td class=\"left\">Full Functionality</td><td class=\"yes\">\u2713</td><td class=\"yes\">\u2713</td>    </tr>\t\t\t\t<tr>   <td class=\"left\">No Ads</td><td class=\"no\"> </td><td class=\"yes\">\u2713</td>    </tr>\t\t\t\t<tr>   <td class=\"left\">Steps in History</td><td class=\"no\" style=\"font-size:1.3em\">30</td><td class=\"yes\">60</td>    </tr>\t\t\t\t<!--<tr class=\"lastrow\">   <td class=\"left\">Cost</td><td>Free</td><td><big>$5</big> per month</td>    </tr>-->\t\t\t</table>\t\t";
		F.appendChild(o);
		var Y = this.a5k = [
			[9, 30, 1],
			[10, 90, 1],
			[40, 365, 1],
			[15, 30, 5],
			[30, 90, 5],
			[120, 365, 5],
			[50, 30, 20],
			[100, 90, 20],
			[400, 365, 20],
			[40, 30, 1e3],
			[80, 90, 1e3],
			[300, 365, 1e3],
			[100, 30, 5e3],
			[200, 90, 5e3],
			[700, 365, 5e3],
			[200, 30, 2e4],
			[400, 90, 2e4],
			[1400, 365, 2e4]
		];
		this.b$ = [];
		for (var w = 0; w < Y.length; w++) this.b$.push(new fV("Buy: $" + Y[w][0], !1, null, !0));
		for (var w = 0; w < this.b$.length; w++) {
			this.b$[w].u.setAttribute("style", X);
			this.b$[w].$("click", this.alC, this)
		}
		P = i.z("h2", "");
		P.innerHTML = "Go Premium";
		F.appendChild(P);
		this.pz = new fV("...", !0);
		this.pz.u.setAttribute("style", X);
		F.appendChild(this.pz.u);
		o = this.eP(3, ["Single user", this.b$[0], this.b$[1], this.b$[2], "Team of 5", this.b$[3], this.b$[4], this.b$[5], "Team of 20", this.b$[6], this.b$[7], this.b$[8]]);
		F.appendChild(o);
		this.ad_ = new aD("I accept", !0, "");
		F.appendChild(this.ad_.u);
		this.HB = new fV([0, 13, 1], !1, null, !0);
		this.HB.$("click", this.uK, this);
		F.appendChild(this.HB.u);
		P = i.z("h2", "");
		P.textContent = "Team Settings";
		F.appendChild(P);
		this.p3 = new aD("Join a team");
		F.appendChild(this.p3.u);
		this.p3.$(i.E.I, this.Ka, this);
		this.EP = new f6("Email of a leader", null, 14);
		F.appendChild(this.EP.u);
		i.Rf(F);
		this.a_ = new aD("Start a team");
		F.appendChild(this.a_.u);
		this.a_.$(i.E.I, this.Ka, this);
		var y = new dC("Emails of other members:");
		F.appendChild(y.u);
		i.Rf(F);
		this.Lo = i.z("textarea");
		this.Lo.setAttribute("rows", 3);
		this.Lo.setAttribute("cols", 70);
		this.Lo.setAttribute("style", "display:block;tab-size:4;");
		F.appendChild(this.Lo);
		var z = new fV("Save Team Settings", !1, null, !0);
		F.appendChild(z.u);
		z.$("click", this.akB, this);
		var s = this.aeJ = new fV("More about Teams", !1, null, !0);
		F.appendChild(s.u);
		s.$("click", this.Sk, this);
		P = i.z("h2", "");
		P.innerHTML = "Distributor Account";
		F.appendChild(P);
		this.Lg = new fV("...", !0);
		this.Lg.u.setAttribute("style", X);
		F.appendChild(this.Lg.u);
		o = this.eP(3, ["1000 views/month", this.b$[9], this.b$[10], this.b$[11], "5000 views/month", this.b$[12], this.b$[13], this.b$[14], "20000 views/month", this.b$[15], this.b$[16], this.b$[17]]);
		F.appendChild(o);
		this.aW = new f6("Domain name (e.g. domain.com)", null, 14);
		F.appendChild(this.aW.u);
		i.Rf(F);
		var z = new fV("Save Domain Settings", !1, null, !0);
		z.V2();
		F.appendChild(z.u);
		z.$("click", this.ahc, this);
		var s = new fV("More about Distributors", !1, null, !0);
		F.appendChild(s.u);
		s.$("click", this.Sk, this)
	};
	g1.hJ.prototype = new au;
	g1.hJ.prototype.uK = function (F) {
		var P = new l("showpage", !0);
		P.data = {
			XN: 1
		};
		this.w(P)
	};
	g1.hJ.prototype.amB = function (F) {
		var P = new l("showpage", !0);
		P.data = {
			XN: 2
		};
		this.w(P)
	};
	g1.hJ.prototype.t = function () {
		this.Ts.kW(ej.Wx() ? h9.get([0, 11]) : h9.get([0, 10]));
		this.HB.t();
		this.Gp.t();
		this.a9U.t()
	};
	g1.hJ.prototype.Sk = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.Xk,
			link: "https://www.photopea.com/api/accounts#" + (F.target == this.aeJ ? "teams" : "distributors")
		};
		this.w(P)
	};
	g1.hJ.prototype.Ka = function (F) {
		var P = F.currentTarget == this.p3;
		this.p3.k(P);
		this.a_.k(!P)
	};
	g1.hJ.prototype.akB = function (F) {
		var P = this.p3.q(),
			o = this.EP.q().trim(),
			X = this.Lo.value.trim();
		if (o.length > 60) {
			alert("Too long email address");
			return
		}
		if (X.length > 600) {
			alert("Too many team members");
			return
		}
		X = X.split(",").join(" ").trim();
		X = X.replace(/\s+/g, " ");
		if (X == "") X = [];
		else X = X.split(" ");
		var Y = ej.SI();
		if (Y == null) Y = {};
		if (Y.acc == null) Y.acc = {};
		Y.acc.team = {
			jin: P,
			ldr: o,
			mmb: X
		};
		ej.Tu(Y, this.j_.bind(this));
		alert("Saved!");
		this.Vp()
	};
	g1.hJ.prototype.ahc = function (F) {
		var P = this.aW.q().trim();
		if (P.length == 0) {
			alert("Domain is empty.");
			return
		}
		if (!ej.Wx()) {
			alert("You have to log in first.");
			return
		}
		if (ej.X9().distrib == "0") {
			alert("Order a distributor account first.");
			return
		}
		var o = ej.SI();
		if (o == null) o = {};
		if (o.acc == null) o.acc = {};
		o.acc.dname = P;
		ej.Tu(o, this.j_.bind(this));
		alert("Saved!");
		this.Vp()
	};
	g1.hJ.prototype.Vp = function () {
		if (ej.Wx()) {
			var F = ej.X9();
			if (F == null) return;
			this.ty.innerHTML = "<span style=\"font-size:1.5em; margin-right:0.7em;\">" + F.name + "</span> " + F.email + " <br/>"
		} else this.ty.innerHTML = "Logging In is free. Your environment settings will be synchronized across all devices. <br/>";
		var P = ej.Wx() && ej.WQ();
		this.pz.u.style.display = P ? "block" : "none";
		if (P) {
			var o = parseInt(F[i.ZK("!&|'&50")]) - Date.now() * (1 / 1e3),
				X = parseInt(F.ptype),
				Y;
			if (X == -1) Y = "member of a team";
			else if (X == 1) Y = "Single user";
			else Y = "Team of " + X;
			this.pz.kW("Premium active for " + Math.round(o / (60 * 60 * 24)) + " more days! (" + Y + ")")
		}
		var y = ej.Wx() && F.distrib * 1e3 > Date.now();
		this.Lg.u.style.display = y ? "block" : "none";
		if (y) {
			var o = parseInt(F.distrib) - Date.now() / 1e3,
				X = parseInt(F.ptype);
			this.Lg.kW("Distributor active for " + Math.round(o / (60 * 60 * 24)) + " more days! (" + X + " visitos)")
		}
		var z = ej.SI();
		if (z && z.acc && z.acc.team) {
			var s = z.acc.team;
			this.p3.k(s.jin);
			this.a_.k(!s.jin);
			this.EP.k(s.ldr);
			this.Lo.value = s.mmb.join(", ")
		} else {
			this.p3.k(!0);
			this.a_.k(!1);
			this.EP.k("");
			this.Lo.value = ""
		}
		if (z && z.acc && z.acc.dname) this.aW.k(z.acc.dname);
		else this.aW.k("")
	};
	g1.hJ.prototype.eP = function (F, P) {
		var o = i.z("table");
		o.innerHTML = "\t\t\t\t<table>\t\t\t\t\t<tr>   <th class=\"left\"></th><th>30 days</th><th>90 days</th> " + (F == 3 ? "<th>365 days</th>" : "") + " </tr>\t\t\t\t</table>\t\t\t";
		for (var w = 0; w < P.length; w += F + 1) {
			var X = i.z("tr"),
				Y;
			o.appendChild(X);
			Y = i.z("td", "left");
			X.appendChild(Y);
			Y.innerHTML = "<b>" + P[w] + "</b>";
			for (var y = 0; y < F; y++) {
				Y = i.z("td");
				X.appendChild(Y);
				Y.appendChild(P[w + 1 + y].u)
			}
		}
		return o
	};
	g1.hJ.prototype.alC = function (F) {
		var P = this.b$.indexOf(F.currentTarget);
		if (!ej.Wx()) {
			alert("You must log in before buying Premium");
			return
		}
		if (this.ad_.q() == !1 && P < 9) {
			alert("You must accept Terms of Service");
			return
		}
		var o = this.a5k[P],
			X = o[1],
			Y = o[2],
			y = ej.Wx() && ej.WQ();
		if (y && Y < 1e3) {
			alert("You already have premium.");
			return
		}
		ej.order(X, Y, this.j_.bind(this));
		this.cd()
	};
	g1.hJ.prototype.j_ = function (F) {
		if (ej.Wx() && ej.X9().msg) alert(ej.X9().msg);
		this.Vp();
		this.cd()
	};
	g1.hJ.prototype.Lh = function (F) {
		if (ej.Wx()) {
			ej.alw();
			this.cd();
			this.Vp(null, null, null)
		} else ej.Lh(this.ae5.bind(this))
	};
	g1.hJ.prototype.ae5 = function () {
		var F = new l(i.E.L, !0);
		F.data = {
			e: i.B.a7t
		};
		this.w(F)
	};
	g1.hJ.prototype.cd = function () {
		var F = new l(i.E.L, !0);
		F.data = {
			e: i.B.cy
		};
		this.w(F)
	};
	g1.uA = function (F) {
		au.call(this);
		this.u = i.z("div");
		var P = this.u,
			o = this.al$ = new fV([0, 13, 2], !1, null, !0);
		o.$("click", this.agf, this);
		P.appendChild(o.u);
		var X = i.z("div", "");
		X.innerHTML = F;
		P.appendChild(X)
	};
	g1.uA.prototype = new au;
	g1.uA.prototype.agf = function (F) {
		var P = new l("showpage", !0);
		P.data = {
			XN: 0
		};
		this.w(P)
	};
	g1.uA.prototype.t = function () {
		this.al$.t()
	};
	g1.afa = "\t\t<h1>Contact</h1>\t\t<p>Photopea.com is a service operated by Ivan Kuckir (I\u010C 04498411).</p>\t\t<ul>\t\t\t<li><b>Address</b>: H\xE1lkova 483, Kostelec nad Orlic\xED, Czech Republic</li>\t\t\t<li><b>E-mail</b>: support@photopea.com</li>\t\t\t<li><b>Phone number</b>: +420 604 592 737</li>\t\t</ul>\t\t<p>You can ask for a refund by writing us an email.</p>\t\t<p>You can pay with PayPal or your credit / debit card. Payments are processed instantly, your Premium account will be activated instantly.</p>\t";
	g1.aaS = "\t\t<h1>Terms of Service</h1>\t\t\t\t<h2>What are these Terms?</h2>\t\t<p>\t\tThese terms form a binding contract between you and us (\"these Terms\") regarding your access to and use of any of our web sites, \t\tweb applications, services, products and Software that contain a link to these Terms (individually and collectively, the \"Service\"). \t\t</p>\t\t\t\t<h2>Changes to the Service or these Terms</h2>\t\t<p>\t\tWe may make changes to, update (or not update) or discontinue any part, element, functionality, availability or offering of the Service.\t\tWe may also make changes or updates to these Terms at any time and for any reason in our sole discretion, including complying with applicable law. \t\tIf we make any material changes to these Terms, we\u2019ll provide notice to you in any way we deem reasonable including, for example, \t\tby posting a notice of the change on our web site(s) or in-service, or by sending a notice to your email address if you\u2019ve given it to us.\t\t</p>\t\t\t\t<h2>Your content</h2>\t\t<p>\t\tThese Terms don\u2019t grant us (and we don\u2019t claim) any ownership rights in Your Content.\t\t</p>\t\t<p>\t\t<b>Posting Your Content.</b> By sharing, publishing (e.g. through Imgur), distributing or allowing others to \t\taccess Your Content through the Service You are solely responsible for the consequences of doing so and you acknowledge \t\tand agree that Your Content may be viewed worldwide. If you choose to make your personal information publicly available through the Service, \t\tyou do so at your own risk. You warrant that you have obtained all necessary licenses, \t\trights and permissions to use and grant all of the rights granted in these Terms\t\tto Your Content and that you will comply with any requirements or restrictions imposed by them.\t\t</p>\t\t<!--\t\t<p>\t\tWe have the right (but not the obligation) to pre-screen or monitor any Content or any user's access to the Service,\t\tand to remove or block access to any Content for any reason, or suspend or terminate any user's access to the Service for any reason. \t\tWe have no responsibility or liability with respect to any Content, including for any actions that we may take with respect \t\tto any Content that we determine violates these Terms.\t\t</p>\t\t-->\t\t\t\t<h2>Registering for the Service</h2>\t\t<p>\t\tYou may be required or permitted to register with us to access the Service or certain areas of the Service.\t\tYou agree to immediately notify us of any unauthorized use of your registration information (including all purchases).  \t\tYou may also be able to sign into the Service by using a third-party social networking platform account \t\t(such as Facebook, Google+ or Twitter). Your registration information (including your user name and password, \t\tand any social networking account with which you sign into the Service) is for your personal use only, and not for use by any other person. \t\tYou are responsible for maintaining the confidentiality of any password you may use to access the Service, and agree not to transfer your password or user name\t\tto any third party. You are fully responsible for all use of your registration information, \t\tand to ensure that you \"log out\"/exit from your account with the Service (if applicable) \t\tat the end of each session. We are not liable for any loss or damage arising from your failure to comply with any of the foregoing obligations. \t\t</p>\t\t\t\t<h1>Privacy Policy</h1>\t\t\t\t<p>\t\tBy voluntarily providing us with Personal Data, you are consenting to our use of it in accordance with this Privacy Policy. \t\tIf you provide Personal Data to the Service, you acknowledge and agree that such Personal Data may be transferred from your current location to our servers.\t\t</p>\t\t<p>Computer information collected:</p>\t\t\t\t<ul>\t\t\t\t<li><b>Third party tracking tools.</b> We use third party tracking tools to improve the performance and features of the Service (e.g. Google Analytics).\t\t\t\tSuch tools are created and managed by parties outside our control. As such, we are not responsible for what information is actually captured by such third parties \t\t\t\tor how such third parties use and protect that information.</li>\t\t\t\t\t\t\t\t<li><b>Name and email for the authorization.</b> You may use third-party services (such as Facebook or Google) to log into the Service. \t\t\t\tIn such case, we store your name and email address, that were provided to us by third-party services.</li>\t\t\t\t\t\t\t\t<li><b>Environment settings.</b> When you use the Service, environment settings (e.g. current language, current color theme) \t\t\t\tare stored at your computer in \"localData\".\t\t\t\tIt helps us provide you the same environment when you visit the Service next time.<br/>\t\t\t\tWhen you log into the Service, your environemnt settings are stored at our server. \t\t\t\t</li>\t\t\t\t\t\t\t\t<li><b>Payer information.</b> When you make an order inside the Service and you pay through a third-party service (e.g. PayPal), \t\t\t\twe may store the information about the payer, that we may receive from the third-party service \t\t\t\t(it usually contains the name, the email address and the physical address of the payer, but no card nambers or passwords).</li>\t\t</ul>\t\t\t\t";

	function c1() {
		ai.call(this, [11, 14], "addguides");
		this.nc;
		this.yH = {
			Np: {
				Md: 0
			}
		};
		this.vC = null;
		var F = i.z("div", "form");
		this.body.appendChild(F);
		this.DG = new f6([22, 4, 0], null, 16);
		this.DG.$(i.E.I, this.Ca, this);
		this.l4 = new f6([22, 4, 1], null, 16);
		this.l4.$(i.E.I, this.Ca, this);
		this.Bu = new gq(null, H.t$.bs);
		this.Bu.$(i.E.I, this.Ca, this);
		F.appendChild(this.DG.u);
		F.appendChild(this.Bu.u);
		i.Rf(F);
		F.appendChild(this.l4.u);
		this.cI = new fV("OK", !0, null, !0);
		this.cI.$("click", this.ja, this);
		F.appendChild(this.cI.u);
		this.$("closebtn", this.ag9, this)
	}
	c1.prototype = new ai;
	c1.prototype.K9 = function (F, P) {
		return F != null
	};
	c1.prototype.go = function () {
		return !0
	};
	c1.prototype.t = function () {
		ai.prototype.t.call(this);
		this.DG.t();
		this.l4.t();
		this.Bu.t()
	};
	c1.prototype.AK = function (F, P) {
		var o = F.Np.Md;
		this.yH.Np.Md = o;
		this.Bu.k(o)
	};
	c1.prototype.Vp = function (F, P) {
		this.nc = F;
		this.vC = JSON.stringify(F.ei);
		this.nF()
	};
	c1.prototype.nF = function () {
		var F = this.nc,
			P = F.ei,
			o = function (X, F, Y, y) {
				var z = [];
				for (var w = 0; w < X.length; w++) z.push(H.t$.Rq(X[w], F.NB, Y, y));
				return z.join(", ")
			};
		this.DG.k(o(P[1], F, this.yH, F.h));
		this.l4.k(o(P[0], F, this.yH, F.Z))
	};
	c1.prototype.Ca = function (F) {
		if (F && F.currentTarget == this.Bu) this.yH.Np.Md = this.Bu.q();
		else {
			var P = this.Gc(this.DG),
				o = this.Gc(this.l4),
				X = this.nc;
			X.ei = [o, P];
			X.Vg = !0
		}
		this.nF()
	};
	c1.prototype.Gc = function (F) {
		var P = F == this.DG ? this.nc.h : this.nc.Z,
			o = F.q().replace(/,/g, " ").replace(/  +/g, " ").trim(),
			X = o == "" ? [] : o.split(" ");
		for (var w = 0; w < X.length; w++) X[w] = H.t$.acp(X[w], this.nc.NB, this.yH, P);
		return X
	};
	c1.prototype.ag9 = function (F) {
		var P = this.nc;
		P.ei = JSON.parse(this.vC);
		P.Vg = !0;
		this.nc = null
	};
	c1.prototype.ja = function (F) {
		this.Ca(F);
		var P = new l(i.E.H, !0);
		P.Q = B.fb;
		P.data = {
			e: "gids",
			r2: JSON.parse(this.vC),
			lZ: JSON.parse(JSON.stringify(this.nc.ei))
		};
		this.nc = null;
		this.close();
		this.w(P)
	};

	function cY(F) {
		var P = bv.names[F];
		if (P == null) P = b_.names[F];
		if (F == "fade") P = [2, 11];
		ai.call(this, P, "afw_" + F);
		this.k9 = F;
		this.mE = null;
		this.ss = null;
		this.wK = new f[F];
		this.wK.$(i.E.I, this.d5, this);
		this.wK.parent = this;
		this.body.appendChild(this.wK.u);
		this.fP = new aD([24, 18, 5]);
		this.fP.k(!0);
		this.fP.$(i.E.I, this.d5, this);
		this.a38 = new fV("Reset", !0, null, !0);
		this.a38.$("click", this.$a, this);
		this.cI = new fV("OK", !0, null, !0);
		this.cI.$("click", this.ja, this);
		if (this.Yv()) this.wK.yQ(this.cI.u);
		else {
			i.KL(this.wK.u, "form");
			i.KL(this.body, "flexrow");
			this.wK.u.setAttribute("style", "width:24em");
			var o = i.z("div");
			this.body.appendChild(o);
			o.setAttribute("style", "width:8em; margin-left:1em; line-height:2.3em");
			o.appendChild(this.cI.u);
			o.appendChild(this.a38.u);
			o.appendChild(this.fP.u)
		}
		this.$("closebtn", this.Te, this)
	}
	cY.prototype = new ai;
	cY.prototype.go = function () {
		return !0
	};
	cY.prototype.Yv = function () {
		return this.wK != null && this.wK.xW()
	};
	cY.prototype.eL = function () {
		return this.Yv() ? new aH(0, 0) : ai.prototype.eL()
	};
	cY.prototype.t9 = function () {
		return this.wK.t9()
	};
	cY.prototype.R$ = function (F, P, o, X, Y) {
		this.wK.R$(F, P, o, X, Y)
	};
	cY.prototype.$E = function (F, P, o, X, Y) {
		this.wK.$E(F, P, o, X, Y)
	};
	cY.prototype.NL = function (F, P, o, X, Y) {
		this.wK.NL(F, P, o, X, Y)
	};
	cY.prototype.K9 = function (F, P) {
		if (this.k9 == "fade") return cY.qX(F);
		return !0
	};
	cY.prototype.$a = function (F) {
		this.wK.k(bv.tt(this.k9));
		this.d5()
	};
	cY.prototype.d5 = function (F) {
		this.nQ({
			e: "edit",
			pl: this.wK.q(),
			mw: !this.fP.q()
		})
	};
	cY.prototype.Te = function (F) {
		this.nQ({
			e: "cancel"
		})
	};
	cY.prototype.ja = function (F) {
		if (!this.fP.q()) {
			this.fP.k(!0);
			this.d5()
		}
		this.ss = this.wK.q();
		if (this.Yv()) this.d5();
		this.nQ({
			e: "confirm"
		});
		this.close()
	};
	cY.prototype.t = function () {
		ai.prototype.t.call(this);
		this.fP.t();
		if (this.wK) this.wK.t()
	};
	cY.prototype.AK = function (F, P) {
		if (this.wK) this.wK.AK(F, P)
	};
	cY.prototype.gU = function (F, P, o, X) {
		if (this.Yv()) this.wK.gU(X);
		else ai.prototype.gU.call(this, F, P, o, X)
	};
	cY.prototype.Vp = function (F, P, o, X) {
		this.mE = P.mE;
		var Y = F.add.lnk2 ? F.add.lnk2 : [],
			y, z, s = new ev(0, 0, F.Z, F.h),
			t = F.r[F.p[0]],
			d = null;
		y = t.buffer;
		z = t.rect;
		if (this.Yv()) d = F.lD(F.p[0] - 1);
		var U = bv.tt(this.k9),
			v = [Y, F.Yq];
		if (P.mE == null) {
			this.wK.k(U, y, z, s, d, v);
			if (b_.names[this.k9]) {
				if (X.s(G.ze) && this.ss) this.wK.k(this.ss);
				var A = cj.Dt.getData(F),
					Z = H.NC(A[0].Tr);
				this.wK.iM(Z)
			}
		} else {
			var D = !1,
				t = F.r[this.mE.n];
			if (t.gO()) {
				var q = t.yg(F);
				y = q.buffer;
				z = q.rect;
				var R = t.add.SoLd.filterFX.v.filterFXList.v;
				if (R[this.mE.index]) {
					var J = R[this.mE.index].v.Fltr.v;
					this.wK.k(J, y, z, s, d, v);
					this.wK.iM(H.NC(y));
					D = !0
				}
			}
			if (!D) {
				this.wK.k(U, y, z, s, d, v);
				this.wK.iM(H.NC(y))
			}
		}
		if (!this.Yv()) this.d5()
	};
	cY.prototype.nQ = function (F) {
		var P = new l(i.E.H, !0);
		F.k9 = this.k9;
		F.mE = this.mE;
		P.data = F;
		P.Q = bv.names[this.k9] || this.mE ? B._q : B.Vd;
		P.qQ = !0;
		this.w(P)
	};
	cY.prototype.l9 = function (F, P) {
		P = P - 26;
		F = F - 26;
		this.wK.l9(F, P)
	};
	cY.qX = function (F) {
		if (F == null) return !1;
		var P = F.a1();
		if (P == null || !(P.data instanceof Array) || P.data.length != F.p.length) return !1;
		for (var w = 0; w < P.data.length; w++) {
			var o = P.data[w];
			if (o.n < 0 && F.Yq[-1 - o.n]) return !0;
			if (o.n == null || F.r[o.n] == null || F.r[o.n].kB != o.qf) return !1;
			if (F.p.indexOf(o.n) == -1) return !1
		}
		return !0
	};

	function bG() {
		ai.call(this, [11, 0], "camera");
		this.data = null;
		this.Fl = new aH(1, 1);
		this.a4c = [];
		var F = i.z("div", "form hbar");
		this.body.appendChild(F);
		this.ab5 = new gq(null, []);
		this.Lp = new gq([21, 0], [
			[21, 2],
			[21, 1]
		]);
		F.appendChild(this.Lp.u);
		this.sK = new gq(null, []);
		this.sK.$(i.E.I, this.f9, this);
		F.appendChild(this.sK.u);
		this.$0 = new fV([11, 0], !1, null, !0);
		this.$0.$("click", this.agt, this);
		F.appendChild(this.$0.u);
		this.qG = new dC("");
		F.appendChild(this.qG.u);
		this.stream = null;
		this.Ul = i.z("video", "");
		this.Ul.setAttribute("autoplay", "true");
		this.body.appendChild(this.Ul);
		this.aag = this.a2B.bind(this);
		this.acd = this.a1$.bind(this);
		this.a2$ = this.a8z.bind(this);
		this.$("closebtn", this.PM, this)
	}
	bG.prototype = new ai;
	bG.prototype.t = function () {
		ai.prototype.t.call(this);
		this.Lp.t();
		this.$0.t();
		this.l9(this.YY, this.mi)
	};
	bG.prototype.lD = function () {
		var F = this.Ul.videoWidth,
			P = this.Ul.videoHeight,
			o = i.z("canvas", "");
		o.width = F;
		o.height = P;
		var X = o.getContext("2d");
		X.drawImage(this.Ul, 0, 0, F, P);
		var Y = X.getImageData(0, 0, F, P);
		return {
			ym: new ev(0, 0, F, P),
			data: Y.data.buffer
		}
	};
	bG.prototype.agt = function (F) {
		if (this.Lp.q() == 0) this.a1m();
		else this.a0c()
	};
	bG.prototype.a0c = function () {
		var F = this.lD(),
			P = {
				buffer: new Uint8Array(F.data),
				rect: F.ym
			},
			o = new l(i.E.H, !0);
		o.qQ = !0;
		o.Q = B.xC;
		o.data = {
			e: h.yn,
			pL: P
		};
		this.w(o);
		alert(h9.get([21, 4]))
	};
	bG.prototype.a1m = function () {
		var F = this.lD(),
			P = cz.Y$("camera", [F]),
			o = new l(i.E.L, !0);
		o.data = {
			e: i.B.qD,
			EA: P
		};
		this.w(o);
		alert(h9.get([21, 5]))
	};
	bG.prototype.Vp = function (F, P, o) {
		navigator.mediaDevices.enumerateDevices().then(this.a06.bind(this))
	};
	bG.prototype.a06 = function (F) {
		var P = this.a4c = [],
			o = [];
		for (var w = 0; w < F.length; w++)
			if (F[w].kind == "videoinput") {
				P.push(F[w]);
				o.push("Camera " + P.length)
			} this.sK.KI(o);
		this.sK.k(0);
		this.f9()
	};
	bG.prototype.f9 = function (F) {
		this.PM();
		var P = {
			video: {
				deviceId: this.a4c[this.sK.q()].deviceId,
				width: {
					ideal: 8e3
				},
				height: {
					ideal: 8e3
				}
			}
		};
		if (navigator.mediaDevices.getUserMedia) navigator.mediaDevices.getUserMedia(P).then(this.aag).catch(this.acd);
		else navigator.webkitGetUserMedia(P, this.aag, this.acd)
	};
	bG.prototype.a2B = function (F) {
		this.stream = F;
		this.Ul.srcObject = F;
		this.Ul.addEventListener("loadedmetadata", this.a2$, !1)
	};
	bG.prototype.a8z = function (F) {
		this.Ul.play();
		this.l9(this.YY, this.mi)
	};
	bG.prototype.eL = function (F, P) {
		return new aH(0, 0)
	};
	bG.prototype.l9 = function (F, P) {
		var o = this.Ul.videoWidth,
			X = this.Ul.videoHeight;
		this.qG.k(o + " x " + X + " px");
		this.qG.u.setAttribute("style", "position:absolute;  left:14px; bottom:10px; z-index:1;");
		this.Fl.Oh(o, X);
		this.YY = F;
		this.mi = P;
		var Y = F - 28,
			y = P - 28 - 30,
			z = this.Fl.x / this.Fl.y;
		if (Y / y > z) Y = y * z;
		else y = Y / z;
		this.Ul.setAttribute("style", "display: block; width: " + Math.round(Y) + "px; height:" + Math.round(y) + "px;")
	};
	bG.prototype.a1$ = function (F) {
		console.log("error", F);
		alert(h9.get([21, 6]));
		this.close()
	};
	bG.prototype.PM = function (F) {
		if (this.stream != null) {
			var P = this.stream.getTracks();
			for (var w = 0; w < P.length; w++) P[w].stop();
			this.stream = null
		}
	};

	function eq() {
		ai.call(this, [7, 8], "crange");
		this.nc = null;
		this.RX = {
			Ov: 73,
			m: 4.45,
			i: 4
		};
		this.Tp = {
			Ov: 73,
			m: 4.45,
			i: 4
		};
		var F = i.z("div", "form");
		F.setAttribute("style", "width:18em");
		this.body.appendChild(F);
		this.$B = new be([12, 92], 0, 200);
		this.$B.k(40);
		this.$B.$(i.E.I, this.qK, this);
		F.appendChild(this.$B.u);
		this.w7 = i.z("canvas");
		F.appendChild(this.w7);
		this._Z = new aw([12, 36], [
			[18, 0], "\uFF0B", "\u2014"
		]);
		F.appendChild(this._Z.u);
		this.OB = new fV("OK", !0, null, !0);
		this.OB.$("click", this.ja, this);
		this.body.appendChild(this.OB.u)
	}
	eq.prototype = new ai;
	eq.prototype.K9 = function (F, P) {
		return F != null
	};
	eq.prototype.t9 = function () {
		return !0
	};
	eq.prototype.go = function () {
		return !0
	};
	eq.prototype.t = function () {
		ai.prototype.t.call(this);
		this.$B.t();
		this._Z.t()
	};
	eq.prototype.R$ = function (F, P, o, X, Y) {
		var y = F.a.PY(Y.x, Y.y);
		this.Cd(y.x, y.y)
	};
	eq.prototype.Cd = function (F, P) {
		var o = Math.min,
			X = Math.max,
			Y = this.nc,
			y = X(0, o(Y.Z - 1, Math.floor(F))),
			z = X(0, o(Y.h - 1, Math.floor(P))),
			s = Y.lD(),
			t = (z * Y.Z + y) * 4,
			d = s[t],
			U = s[t + 1],
			v = s[t + 2],
			A = H.tm(d, U, v),
			Z = this._Z.q(),
			D = this.RX,
			q = this.Tp;
		if (Z == 0) {
			this.RX = JSON.parse(JSON.stringify(A));
			this.Tp = A
		} else if (Z == 1) {
			D.Ov = o(D.Ov, A.Ov);
			D.m = o(D.m, A.m);
			D.i = o(D.i, A.i);
			q.Ov = X(q.Ov, A.Ov);
			q.m = X(q.m, A.m);
			q.i = X(q.i, A.i)
		} else if (Z == 2) {
			var R = (D.Ov + q.Ov) / 2,
				J = (D.m + q.m) / 2,
				W = (D.i + q.i) / 2;
			if (A.Ov < R) D.Ov = X(D.Ov, A.Ov + 10);
			else q.Ov = o(q.Ov, A.Ov - 10);
			if (A.m < J) D.m = X(D.m, A.m + 1);
			else q.m = o(q.m, A.m - 1);
			if (A.i < W) D.i = X(D.i, A.i + 1);
			else q.i = o(q.i, A.i - 1)
		}
		this.qK()
	};
	eq.prototype.ja = function (F) {
		var P = new l(i.E.H, !0);
		P.Q = B.j1;
		P.data = {
			e: "crange",
			c7: this.RX,
			Aa: this.Tp,
			aI: this.$B.q() / 200
		};
		P.qQ = !0;
		this.w(P);
		this.close()
	};
	eq.prototype.Vp = function (F, P) {
		this.nc = F;
		this.Cd(0, 0)
	};
	eq.prototype.qK = function () {
		var F = this.nc,
			P = B.hl.sv(F, this.RX, this.Tp, this.$B.q() / 200),
			o = P.rect,
			X = P.channel,
			Y = this.w7,
			y = Y.getContext("2d"),
			z = Math.floor(230 * i.J()),
			s = Math.floor(z * (o.h / o.Z));
		Y.width = z;
		Y.height = s;
		i.Hc(Y, z, s);
		var t = H.R(X.length * 4);
		H.XB(t, 4294967295);
		for (var w = 0; w < 3; w++) H.Oy(X, t, w);
		var d = B.X.Z6([t, o], new cu(z / o.Z, 0, 0, s / o.h, 0, 0)),
			U = d.rect,
			v = new ImageData(new Uint8ClampedArray(d.buffer.buffer), U.Z, U.h);
		y.putImageData(v, 0, 0)
	};

	function b2() {
		ai.call(this, [12, 76, 1], "createshape");
		this.rX = null;
		var F = i.z("div", "form");
		F.setAttribute("style", "width:20em");
		this.body.appendChild(F);
		this.iG = new gJ([12, 41], 0, 0, null, 0, !1, !0);
		F.appendChild(this.iG.u);
		i.Rf(F);
		this.DG = new gJ([12, 42], 0, 0, null, 0, !1, !0);
		F.appendChild(this.DG.u);
		i.Rf(F);
		this.me = new aD([19, 5, 3]);
		F.appendChild(this.me.u);
		this.iG.k(100);
		this.DG.k(100);
		this.cI = new fV("OK", !0, null, !0);
		this.cI.$("click", this.ja, this);
		F.appendChild(this.cI.u)
	}
	b2.prototype = new ai;
	b2.prototype.ja = function (F) {
		this.rX.a25(this.rX.a9i, this.iG.q(), this.DG.q(), this.me.q());
		this.close()
	};
	b2.prototype.t = function () {
		if (this.rX) this.CA = h9.get([5, 3]) + ": " + h9.get(this.rX.a9p);
		ai.prototype.t.call(this);
		this.iG.t();
		this.DG.t();
		this.me.t()
	};
	b2.prototype.Vp = function (F, P) {
		this.rX = P;
		this.t()
	};

	function hg() {
		ai.call(this, [11, 1], "colorpicker");
		this.sg = null;
		this.Xa = null;
		this.EY = null;
		this.MX = !1;
		this.Cr = !1;
		var F = i.z("div", "flexrow"),
			y, z;
		this.body.appendChild(F);
		this.Ao = new ei(256);
		this.Ao.$(i.E.I, this.CV, this);
		F.appendChild(this.Ao.u);
		var P = i.z("div", "form");
		P.setAttribute("style", "width:14.5em; margin-left:1em;");
		F.appendChild(P);
		this.a8r = i.z("div", "full");
		P.appendChild(this.a8r);
		this.aer = i.z("div", "full");
		P.appendChild(this.aer);
		var o = i.z("div", "flexrow");
		P.appendChild(o);
		var X = i.z("div"),
			Y = i.z("div");
		o.appendChild(X);
		o.appendChild(Y);
		y = ["R", "G", "B"];
		z = X;
		this.Va = [];
		for (var w = 0; w < 3; w++) {
			var s = new gJ(y[w] + ":", 0, 255, null, 0, !1, !0);
			this.Va.push(s);
			s.$(i.E.I, this.a4Q, this);
			z.appendChild(s.u)
		}
		y = ["H", "S", "B"];
		z = Y;
		this.Ia = [];
		for (var w = 0; w < 3; w++) {
			var t = 0,
				d = 360,
				U = "\xB0";
			if (w != 0) {
				d = 100;
				U = "%"
			}
			var s = new gJ(y[w] + ":", t, d, U, 0, !1, !0);
			this.Ia.push(s);
			s.$(i.E.I, this.aiv, this);
			z.appendChild(s.u)
		}
		this.DG = new f6("Hex", null, 6);
		this.DG.$(i.E.I, this.ks, this);
		P.appendChild(this.DG.u);
		this.Xx = i.z("input", "fitem");
		this.Xx.setAttribute("type", "color");
		this.Xx.setAttribute("style", "width:50px");
		this.Xx.addEventListener("change", this.ks.bind(this), !1);
		P.appendChild(this.Xx);
		this.qB = new a4(9);
		this.qB.$(i.E.I, this.ks, this);
		P.appendChild(this.qB.u);
		this.cI = new fV("OK", !0, null, !0);
		this.cI.$("click", this.ja, this);
		P.appendChild(this.cI.u);
		this.$("closebtn", this.Te, this);
		this.uY = !1
	}
	hg.prototype = new ai;
	hg.prototype.t9 = function () {
		return !0
	};
	hg.prototype.l9 = function (F, P) {
		this.Ao.l9(Math.min(256, F - 250), P)
	};
	hg.prototype.CV = function (F) {
		this.Xa = this.Ao.q();
		this.update()
	};
	hg.prototype.R$ = function (F, P, o, X, Y) {
		this.uY = !0;
		this._0(F, Y)
	};
	hg.prototype.$E = function (F, P, o, X, Y) {
		if (!this.uY) return;
		this._0(F, Y)
	};
	hg.prototype.NL = function (F, P, o, X, Y) {
		this.uY = !1
	};
	hg.prototype._0 = function (F, P) {
		var o = B.yY.Js(F, P, 1),
			X = o & 255,
			Y = o >> 8 & 255,
			y = o >> 16 & 255;
		this.Xa = {
			U: y / 255,
			S: Y / 255,
			i: X / 255
		};
		this.update()
	};
	hg.prototype.a4Q = function (F) {
		var P = this.Va,
			o = this.w_(parseInt(P[0].q())),
			X = this.w_(parseInt(P[1].q())),
			Y = this.w_(parseInt(P[2].q()));
		this.Xa = {
			U: o / 255,
			S: X / 255,
			i: Y / 255
		};
		this.update()
	};
	hg.prototype.aiv = function (F) {
		var P = this.Ia,
			o = this.y5(parseInt(P[0].q()) / 360),
			X = this.y5(parseInt(P[1].q()) / 100),
			Y = this.y5(parseInt(P[2].q()) / 100);
		this.Xa = H.ul(o, X, Y);
		this.update()
	};
	hg.prototype.ks = function (F) {
		var P;
		if (F.currentTarget == this.qB) P = this.qB.q();
		else {
			P = F.currentTarget == this.DG ? this.DG.q() : this.Xx.value;
			if (P.charAt(0) == "#") P = P.slice(1);
			if (P.length == 3) P = P[0] + P[0] + P[1] + P[1] + P[2] + P[2];
			P = H.cq(P)
		}
		this.Xa = {
			U: (P >> 16 & 255) / 255,
			S: (P >> 8 & 255) / 255,
			i: (P & 255) / 255
		};
		this.update()
	};
	hg.prototype.uQ = function (F) {
		var P = F.U,
			o = F.S,
			X = F.i;
		return Math.round(P * 255) << 16 | Math.round(o * 255) << 8 | Math.round(X * 255)
	};
	hg.prototype.ja = function (F) {
		this.xq();
		var P = this.uQ(this.Xa);
		this.EY(P);
		this.close();
		this.Cr = !1;
		this.Xa = null
	};
	hg.prototype.Te = function (F) {
		this.xq();
		if (this.MX) this.EY(this.uQ(this.sg));
		this.Cr = !1;
		this.Xa = null
	};
	hg.prototype.xq = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.mB
		};
		this.w(P)
	};
	hg.prototype.AK = function (F, P) {
		if (P != ge.Io) return;
		var o = F.GY;
		this.qB.k(o);
		if (this.Xa != null) {
			this.Xa = {
				U: (o >> 16 & 255) / 255,
				S: (o >> 8 & 255) / 255,
				i: (o >> 0 & 255) / 255
			};
			this.update()
		}
	};
	hg.prototype.Vp = function (F, P) {
		var o = P.u9,
			X = {
				U: (o >> 16 & 255) / 255,
				S: (o >> 8 & 255) / 255,
				i: (o >> 0 & 255) / 255
			};
		if (this.Xa == null) {
			var Y = new l(i.E.L, !0);
			Y.data = {
				e: i.B.Ik,
				rr: "crosshair",
				push: !0
			};
			this.w(Y);
			this.uY = !1;
			this.EY = P.jz;
			this.MX = !1;
			this.Cr = P.IF;
			this.sg = JSON.parse(JSON.stringify(X));
			this.aer.setAttribute("style", "height:3em;background-color:#" + H.v2(o) + ";")
		}
		this.Xa = X;
		this.update()
	};
	hg.prototype.update = function () {
		var F = this.Xa,
			P = this.uQ(F),
			o = this.Va;
		o[0].k(Math.round(F.U * 255));
		o[1].k(Math.round(F.S * 255));
		o[2].k(Math.round(F.i * 255));
		this.DG.k(H.v2(P));
		this.Xx.value = "#" + H.v2(P);
		this.a8r.setAttribute("style", "height:3em;background-color:#" + H.v2(P) + ";");
		var X = H.eE(F.U, F.S, F.i);
		o = this.Ia;
		o[0].k(Math.round(X.mi * 360));
		o[1].k(Math.round(X.Pg * 100));
		o[2].k(Math.round(X.pl * 100));
		this.Ao.k(F);
		if (this.Cr) {
			this.EY(this.uQ(this.Xa));
			this.MX = !0
		}
	};
	hg.prototype.w_ = function (F) {
		return Math.max(0, Math.min(255, F))
	};
	hg.prototype.y5 = function (F) {
		return Math.max(0, Math.min(1, F))
	};

	function cU() {
		ai.call(this, [11, 2], "contoureditor");
		this.a1P = null;
		this.Pn = null;
		this.response = null;
		this.EI = i.z("div", "cell");
		this.body.appendChild(this.EI);
		this.X7 = i.z("div", "cell padded");
		this.body.appendChild(this.X7);
		var F = i.z("div", "bordered padded vmargin");
		this.EI.appendChild(F);
		this.wK = new h0;
		this.wK.$(i.E.I, this.Pm, this);
		F.appendChild(this.wK.u);
		this.cI = new fV("OK", !0, null, !0);
		this.cI.$("click", this.close, this);
		this.X7.appendChild(this.cI.u);
		this.coords = i.z("div", "");
		this.coords.setAttribute("style", "width:250px");
		this.EI.appendChild(this.coords);
		this.ae = new f6("X (in)", "%", 4);
		this.hd = new f6("Y (out)", "%", 4);
		this.dZ = new aD([19, 3, 0]);
		this.ae.$(i.E.I, this.cb, this);
		this.hd.$(i.E.I, this.cb, this);
		this.dZ.$(i.E.I, this.cb, this);
		this.coords.appendChild(this.ae.u);
		this.coords.appendChild(this.dZ.u);
		this.coords.appendChild(this.hd.u);
		this.$("closebtn", this.OZ, this)
	}
	cU.prototype = new ai;
	cU.prototype.t = function () {
		ai.prototype.t.call(this);
		this.dZ.t()
	};
	cU.prototype.Pm = function (F) {
		this.Pn.Crv.v = this.wK.q();
		this.response(this.Pn);
		this.qp()
	};
	cU.prototype.OZ = function (F) {
		this.response(this.a1P)
	};
	cU.prototype.Vp = function (F, P) {
		this.a1P = JSON.parse(JSON.stringify(P.xX));
		this.Pn = P.xX;
		this.response = P.response;
		this.wK.k(this.Pn.Crv.v);
		this.qp()
	};
	cU.prototype.qp = function () {
		var w = this.wK.$Y();
		this.coords.setAttribute("class", w == -1 ? "disabled" : "");
		if (w == -1) return;
		var F = this.Pn.Crv.v[w].v;
		this.ae.k(Math.round(F.Hrzn.v * (100 / 255)));
		this.hd.k(Math.round(F.Vrtc.v * (100 / 255)));
		this.dZ.k(F.Cnty.v)
	};
	cU.prototype.cb = function (F) {
		var w = this.wK.$Y(),
			P = this.Pn.Crv.v[w];
		P.v.Hrzn.v = parseFloat(this.ae.q()) * (255 / 100);
		P.v.Vrtc.v = parseFloat(this.hd.q()) * (255 / 100);
		P.v.Cnty.v = this.dZ.q();
		this.Pn.Crv.v.sort(function (o, X) {
			return o.v.Hrzn.v - X.v.Hrzn.v
		});
		this.wK.k(this.Pn.Crv.v, this.Pn.Crv.v.indexOf(P));
		this.qp();
		this.response(this.Pn)
	};

	function hD() {
		ai.call(this, [11, 3], "csize");
		this.cG = 0;
		this.xr = i.z("div", "form");
		this.xr.setAttribute("style", "width:22em");
		this.body.appendChild(this.xr);
		this.bq = new aj(!0, !0, !0, !0);
		this.bq.adn(!1);
		this.xr.appendChild(this.bq.u);
		this.HN = new aw("Align with", [
			[8, 7],
			[12, 6]
		]);
		this.HN.$(i.E.I, this.a8b, this);
		this.Wa = new i2([12, 23, 2], 41);
		this.xr.appendChild(this.Wa.u);
		this.Wa.k(4);
		this.rM = new aO(!1);
		this.rM.a2w(new aH(0, 0));
		this.OB = new fV("OK", !0, null, !0);
		this.OB.$("click", this.ja, this);
		this.body.appendChild(this.OB.u)
	}
	hD.prototype = new ai;
	hD.prototype.K9 = function (F, P) {
		return F != null
	};
	hD.prototype.go = function () {
		return !0
	};
	hD.prototype.a8b = function () {
		var F = [this.Wa.u, this.rM.u];
		this.xr.removeChild(F[this.cG]);
		this.cG = this.HN.q();
		this.xr.appendChild(F[this.cG])
	};
	hD.prototype.t = function () {
		ai.prototype.t.call(this);
		this.bq.t();
		this.HN.t();
		this.Wa.t();
		this.rM.t()
	};
	hD.prototype.ja = function (F) {
		var P = this.bq.q(),
			o = P.x,
			X = P.y,
			Y = new l(i.E.QJ, !0);
		Y.data = B.$K.$W(o, X, this.Wa.q());
		this.close();
		this.w(Y)
	};
	hD.prototype.Vp = function (F, P) {
		this.bq.k(new aH(F.Z, F.h), F.NB)
	};

	function en() {
		ai.call(this, [11, 4], "duplinto");
		this.Fe = null;
		this.Yr = null;
		var F = i.z("div", "form");
		F.setAttribute("style", "max-width:26em");
		this.body.appendChild(F);
		this.ed = new gq([12, 43], ["abc", "def"]);
		this.ed.$(i.E.I, this.oX, this);
		F.appendChild(this.ed.u);
		i.Rf(F);
		this.v8 = new f6([12, 48], null, 14);
		F.appendChild(this.v8.u);
		this.cI = new fV("OK", !0, null, !0);
		this.cI.$("click", this.ja, this);
		F.appendChild(this.cI.u)
	}
	en.prototype = new ai;
	en.prototype.go = function () {
		return !0
	};
	en.prototype.t = function () {
		ai.prototype.t.call(this);
		this.ed.t();
		this.v8.t()
	};
	en.prototype.oX = function (F) {
		var P = this.ed.q();
		if (P == this.Yr.length) this.v8.R8();
		else this.v8.U3()
	};
	en.prototype.Vp = function (F, P, o) {
		this.Fe = F;
		this.Yr = o;
		this.v8.k(F.p.length == 0 ? "Layer" : F.r[F.p[0]].getName());
		var X = [];
		for (var w = 0; w < o.length; w++) X.push(o[w].name);
		X.push([11, 7]);
		this.ed.KI(X);
		this.ed.k(o.indexOf(F));
		this.oX(null)
	};
	en.prototype.ja = function (F) {
		var P = this.ed.q();
		if (P == this.Yr.length) {
			var o = new c_(this.v8.q() + ".psd");
			o.Z = this.Fe.Z;
			o.h = this.Fe.h;
			o.buffer = H.R(o.Z * o.h * 4);
			var X = o.an();
			X.uf("Background");
			o.wG([X]);
			var Y = new l(i.E.L, !0);
			Y.qQ = !0;
			Y.data = {
				e: i.B.qD,
				EA: o
			};
			this.w(Y)
		}
		var y = this.Fe.FQ(null, this.Fe != this.Yr[P]),
			Y = new l(i.E.H, !0);
		Y.data = {
			e: h.uP,
			r: y,
			kM: this.Fe,
			qW: this.Yr[P]
		};
		Y.Q = B.xC;
		Y.qQ = !0;
		this.w(Y);
		this.close()
	};

	function bK() {
		ai.call(this, [1, 9], "eassets");
		this.yH = null;
		this.cz = null;
		var F = i.z("div", "form");
		F.setAttribute("style", "width:32em");
		this.body.appendChild(F);
		this.kr = i.z("span");
		F.appendChild(this.kr);
		i.Rf(F);
		this.j2 = [new aD("Only layers / folders, whose name starts with \"-e-\""), new aD("Remove parts outside the canvas"), new aD("Trim transparent parts")];
		for (var w = 0; w < 3; w++) {
			var P = this.j2[w];
			P.k(!0);
			P.$(i.E.I, this.nF, this);
			F.appendChild(P.u);
			i.Rf(F)
		}
		this.cf = new aL([12, 14, 0], ["1x", "2x", "3x", "4x"]);
		this.cf.k([!0, !1, !1, !1]);
		F.appendChild(this.cf.u);
		i._D(F);
		this.cT = ["PNG", "JPG", "SVG"];
		this.Y8 = new gq([12, 50], this.cT);
		this.Y8.$(i.E.I, this._s, this);
		F.appendChild(this.Y8.u);
		this.ar = new gd;
		F.appendChild(this.ar.u);
		this.OB = new fV([1, 9], !0, null, !0);
		this.OB.$("click", this.ja, this);
		F.appendChild(this.OB.u);
		this.$("closebtn", this.Pb, this)
	}
	bK.prototype = new ai;
	bK.prototype._s = function (F) {
		this.ar.vJ(this.cT[this.Y8.q()])
	};
	bK.prototype.Pb = function (F) {
		this.cz = null
	};
	bK.prototype.t = function () {
		ai.prototype.t.call(this);
		this.Y8.t();
		this.cf.t();
		this.OB.t();
		this.ar.t()
	};
	bK.prototype.Vp = function (F, P, o) {
		this.cz = F;
		this.nF()
	};
	bK.prototype.nF = function (F) {
		var P = this.Hf(),
			o = "- - - " + P.length + " exportable layers";
		this.kr.textContent = o;
		this._s(null)
	};
	bK.prototype.Hf = function () {
		var F = this.j2[0].q(),
			P = [],
			o = this.cz;
		for (var w = 0; w < o.r.length; w++) {
			var X = o.r[w],
				Y = X.getName();
			if (!F && !X.fO() && !X.rect.qr() || Y.startsWith("-e")) P.push(w)
		}
		return P
	};
	bK.prototype.AK = function (F, P) {
		this.yH = F
	};
	bK.prototype.ja = function (F) {
		var P = this.cz,
			o = [this.cT[this.Y8.q()]],
			X = [this.ar.q()],
			Y = this.cf.q(),
			y = {},
			z = {},
			s = this.Hf();
		if (s.length == 0) {
			alert("No layers to export.");
			return
		}
		var t = [this.j2[1].q(), this.j2[2].q()];
		for (var w = 0; w < s.length; w++) {
			var d = s[w],
				U = P.r[d],
				v = U.getName();
			if (z[v] != null) {
				z[v]++;
				v += " " + z[v]
			} else z[v] = 1;
			var A = U.UQ();
			U.vR(!0);
			for (var Z = 0; Z < Y.length; Z++) {
				if (!Y[Z]) continue;
				var D = Z + 1,
					q = B.qT.$C(P, o, D, this.yH, d, X, t);
				for (var R = 0; R < o.length; R++) {
					var J = o[R],
						W = v.slice(v.startsWith("-e-") ? 3 : 0) + (D == 1 ? "" : "-" + D + "x") + "." + J.toLowerCase();
					y[W] = new Uint8Array(q[R])
				}
			}
			U.vR(A)
		}
		var p = UZIP.encode(y),
			n = new l(i.E.L, !0);
		n.data = {
			e: i.B.QL,
			data: p,
			name: "assets.zip"
		};
		this.w(n)
	};

	function ae() {
		ai.call(this, "Export Color Lookup Tables", "exlut");
		this.yH = null;
		this.cz = null;
		var F = i.z("div", "form");
		F.setAttribute("style", "width:20em");
		this.body.appendChild(F);
		this.j2 = [new gJ("Grid Points", 1, 256), new aw([12, 50], [".CUBE"])];
		var P = [16, 0];
		for (var w = 0; w < this.j2.length; w++) {
			var o = this.j2[w];
			o.k(P[w]);
			o.parent = this;
			o.$(i.E.I, this.nF, this);
			F.appendChild(o.u);
			i.Rf(F)
		}
		this.OB = new fV("OK", !0, null, !0);
		this.OB.$("click", this.ja, this);
		F.appendChild(this.OB.u);
		this.$("closebtn", this.Pb, this)
	}
	ae.prototype = new ai;
	ae.prototype.K9 = function (F, P) {
		if (Math.min(F.Z, F.h) < 16) {
			alert("The document must be at least 16 x 16 pixels.", 3200);
			return !1
		}
		if (F.r.length < 2) {
			alert("There must be a background layer and some adjustment layers.", 3200);
			return !1
		}
		return !0
	};
	ae.prototype.Pb = function (F) {
		this.cz = null
	};
	ae.prototype.AK = function (F, P) {
		this.yH = F
	};
	ae.prototype.Vp = function (F, P, o) {
		this.cz = F
	};
	ae.prototype.ja = function () {
		var F = this.cz,
			P = this.j2[0].q(),
			o = [],
			X = new ev(0, 0, F.Z, F.h),
			Y = H.R(P * P * 4),
			y = Y.slice(0),
			z = new ev(F.Z - P >>> 1, F.h - P >>> 1, P, P),
			s = F.r[0],
			t = s.buffer,
			d = s.rect;
		s.rect = z;
		s.buffer = Y;
		for (var U = 0; U < P; U++) {
			this.ah1(P, U, Y);
			s.A(z);
			F.A(z);
			var v = F.lD();
			H.BP(v, X, y, z);
			for (var A = 0; A < P; A++)
				for (var Z = 0; Z < P; Z++) {
					var D = A * P + Z << 2;
					o.push(y[D] / 255, y[D + 1] / 255, y[D + 2] / 255)
				}
		}
		var q = ao.a84(o, P, F.name);
		cz.save(q, F.name.split(".")[0] + ".CUBE");
		s.buffer = t;
		s.rect = d;
		s.A();
		F.A()
	};
	ae.prototype.ah1 = function (F, P, o) {
		var X = 255 / (F - 1),
			Y = Math.round(P * X);
		for (var y = 0; y < F; y++)
			for (var z = 0; z < F; z++) {
				var s = y * F + z << 2;
				o[s] = Math.round(z * X);
				o[s + 1] = Math.round(y * X);
				o[s + 2] = Y;
				o[s + 3] = 255
			}
	};
	ae.prototype.t = function () {
		ai.prototype.t.call(this);
		for (var w = 0; w < this.j2.length; w++) this.j2[w].t()
	};

	function f4() {
		ai.call(this, "File Info", "finfo");
		this.Vs = null;
		this.N2 = null;
		this.gv = null;
		this.xr = i.z("div", "form scrollable label12");
		this.xr.setAttribute("style", "width:35em;  height:38em;  margin-bottom:8px");
		this.body.appendChild(this.xr);
		var F = i.z("div", "form");
		this.body.appendChild(F);
		this.HR = new gq(null, ["Hello"]);
		F.appendChild(this.HR.u);
		this.a1W = new fV("Add Parameter", !1, null, !0);
		F.appendChild(this.a1W.u);
		this.a1W.$("click", this.BW, this);
		this.nN = new fV("=== S A V E ===", !1, null, !0);
		F.appendChild(this.nN.u);
		this.nN.$("click", this.B5, this);
		this.a8E = ""
	}
	f4.prototype = new ai;
	f4.prototype.eL = function (F, P) {
		return F < 450 || P < 450 ? new aH(0, 0) : new aH(150, 100)
	};
	f4.prototype.BW = function (F) {
		if (this.gv.length == 0) return;
		var P = this.gv[this.HR.q()],
			o = this.cw();
		o[P] = f0.OK[P][0];
		this.H1(o);
		this.N2[P].u.scrollIntoView();
		this.N2[P].co()
	};
	f4.prototype.Gd = function (F) {
		var P = this.cw();
		delete P[F.currentTarget.a6L];
		this.H1(P)
	};
	f4.prototype.B5 = function (F) {
		var P = this.cw(),
			o = this.Vs,
			X = !0;
		for (var Y in o)
			if (JSON.stringify(o[Y]) != JSON.stringify(P[Y])) X = !1;
		for (var Y in P)
			if (JSON.stringify(o[Y]) != JSON.stringify(P[Y])) X = !1;
		if (X) return;
		var y = new l(i.E.H, !0);
		y.Q = B.xC;
		y.data = {
			e: h.Sc,
			EB: P
		};
		this.w(y);
		this.Vs = P;
		this.H1(P)
	};
	f4.TZ = function (F) {
		function P(Y) {
			var y = Y.toLowerCase();
			return Y == y
		}
		var o = F.split(":").pop();
		for (var X = 1; X < o.length - 1; X++) {
			if (o[X] == o[X].toUpperCase() && (P(o[X + 1]) || P(o[X - 1]))) {
				o = o.slice(0, X) + " " + o.slice(X);
				X++
			}
		}
		return o
	};
	f4.prototype.Vp = function (F, P) {
		this.Vs = F.ZT;
		this.H1(F.ZT)
	};
	f4.prototype.H1 = function (F) {
		var P = this.xr,
			Y = 0;
		i.TD(P);
		var o = this.N2 = {},
			X = ["tiff", "exif", "exif:GPS"],
			y = this.gv = [],
			z = [];
		for (var s in f0.OK) {
			var t = f4.TZ(s),
				d = 0,
				U = 15,
				v = null;
			if (F[s] == null) {
				y.push(s);
				z.push(t);
				continue
			}
			for (var w = 0; w < X.length; w++)
				if (s.startsWith(X[w])) d = w;
			if (d != Y) {
				i._D(P);
				Y = d
			}
			if (s == "tiff:ImageDescription" || s == "dc:Keywords") {
				U = 18.5;
				v = 3
			}
			var A = new f6(t, null, U, v);
			o[s] = A;
			var Z = F[s];
			if (Z instanceof Array) Z = Z[1] == 0 ? "---" : Z[0] + "/" + Z[1];
			var D = new fV("\u2716", null, h9.get([5, 4]));
			P.appendChild(D.u);
			D.$("click", this.Gd, this);
			D.a6L = s;
			A.k(Z);
			P.appendChild(A.u);
			i.Rf(P);
			if (s == "exif:GPSLongitude" && F["exif:GPSLatitude"]) {
				this.a8E = f4.HQ(F["exif:GPSLatitude"]) + "," + f4.HQ(F["exif:GPSLongitude"]);
				var q = new fV("Show on map", !1, null, !0);
				P.appendChild(q.u);
				i.Rf(P);
				q.$("click", this.ai7, this)
			}
		}
		this.HR.KI(z);
		this.HR.k(0)
	};
	f4.prototype.cw = function () {
		var F = this.N2,
			P = f0.OK,
			o = {};
		for (var X in P) {
			var Y = P[X][0],
				y = typeof Y;
			if (Y == null || F[X] == null) continue;
			var z = F[X].q(),
				s = "The value of \"" + f4.TZ(X) + "\" must ";
			if (y == "number") {
				z = parseFloat(z);
				if (isNaN(z)) {
					alert(s + "be a number.");
					z = Y
				}
			} else if (Y instanceof Array && Y.length == 2) {
				if (z.indexOf("/") == -1) {
					alert(s + "be a fraction.");
					z = Y.slice(0)
				} else {
					z = z.split("/").map(parseFloat);
					if (isNaN(z[0]) || isNaN(z[1])) {
						z = Y.slice(0)
					}
				}
			}
			o[X] = z
		}
		return o
	};
	f4.HQ = function (F) {
		var P = F.length,
			o = F.slice(0, P - 1).split(",").map(parseFloat),
			X = F.slice(P - 1),
			Y = o[0] + o[1] / 60 + o[2] / 3600;
		if (X != "N" && X != "E") Y = -Y;
		return Y
	};
	f4.prototype.ai7 = function (F) {
		window.open("https://maps.google.com?q=" + this.a8E, "Map")
	};

	function i5() {
		ai.call(this, [11, 5], "gradienteditor");
		this.sg = null;
		this.Xa = null;
		this.Fs = null;
		this.EY = null;
		this.MX = !1;
		this.Cr = !1;
		i.KL(this.body, "form");
		this.AV = null;
		this.wr = null;
		this.Ls = -1;
		this.v1 = -1;
		this.Th = 0;
		this.ab = this.tz.bind(this);
		this.Ja = this.JB.bind(this);
		this.in = i.z("canvas", "");
		this.YV = this.in.getContext("2d");
		this.in.setAttribute("style", "display:block");
		this.z4 = null;
		i.w4(this.in);
		i.X8(this.in, this.Fx.bind(this));
		this.Ff = new gJ([19, 3, 3], 0, 100, "%");
		this.Ff.$(i.E.I, this.P7, this);
		this.Ff.parent = this;
		this.body.appendChild(this.Ff.u);
		i.Rf(this.body);
		this.jI = new dC([12, 0]);
		this.body.appendChild(this.jI.u);
		this.H5 = i.z("div", "bordered padded noalign");
		this.body.appendChild(this.H5);
		this.Jf = new gJ([12, 0], 0, 100, "%");
		this.Jf.parent = this;
		this.Jf.$(i.E.I, this.P7, this);
		this.H5.appendChild(this.Jf.u);
		this.Rm = new gJ([12, 40], 0, 100, "%");
		this.Rm.parent = this;
		this.Rm.$(i.E.I, this.P7, this);
		this.H5.appendChild(this.Rm.u);
		this.cu = new fV([5, 4], !1, null, !0);
		this.cu.$("click", this.z$, this);
		this.H5.appendChild(this.cu.u);
		this.body.appendChild(this.in);
		i.Rf(this.body);
		this.a4T = new dC([13, 0]);
		this.body.appendChild(this.a4T.u);
		this.yr = i.z("div", "bordered padded noalign");
		this.body.appendChild(this.yr);
		this.nC = new gq([12, 44], [
			[12, 45],
			[12, 46],
			[12, 47]
		]);
		this.nC.$(i.E.I, this.P7, this);
		this.yr.appendChild(this.nC.u);
		this.Bc = new eH(!0);
		this.Bc.parent = this;
		this.Bc.$(i.E.I, this.P7, this);
		this.yr.appendChild(this.Bc.u);
		this.j8 = new gJ([12, 40], 0, 100, "%");
		this.j8.parent = this;
		this.j8.$(i.E.I, this.P7, this);
		this.yr.appendChild(this.j8.u);
		this.CU = new fV([5, 4], !1, null, !0);
		this.CU.$("click", this.uV, this);
		this.yr.appendChild(this.CU.u);
		this.cI = new fV("OK", !0, null, !0);
		this.cI.$("click", this.ja, this);
		this.body.appendChild(this.cI.u);
		this.$("closebtn", this.Te, this)
	}
	i5.prototype = new ai;
	i5.prototype.Te = function (F) {
		if (this.MX) this.EY(this.sg)
	};
	i5.prototype.t = function () {
		ai.prototype.t.call(this);
		this.Ff.t();
		this.jI.t();
		this.a4T.t();
		this.cu.t();
		this.CU.t();
		this.Jf.t();
		this.Rm.t();
		this.nC.t();
		this.j8.t()
	};
	i5.prototype.AK = function (F, P) {
		this.Fs = F
	};
	i5.prototype.Vp = function (F, P) {
		this.Xa = JSON.parse(JSON.stringify(P.j));
		this.sg = JSON.parse(JSON.stringify(P.j));
		this.AV = this.wr = null;
		this.EY = P.jz;
		this.MX = !1;
		this.Cr = P.IF;
		this.U5();
		this.RP()
	};
	i5.prototype.ja = function (F) {
		var P = this.Xa;
		this.EY(P);
		this.close()
	};
	i5.prototype.aU = function (F) {
		return F == G.Yk || F == G.Yp
	};
	i5.prototype.gU = function (F, P, o, X) {
		if (X.s(G.Yk) || X.s(G.Yp)) {
			if (this.wr) this.z$();
			if (this.AV) this.uV()
		}
	};
	i5.prototype.z$ = function (F) {
		var P = this.Xa.Trns.v;
		if (this.wr == null || P.length == 2) return;
		P.splice(P.indexOf(this.wr), 1);
		this.wr = null;
		this.U5();
		this.RP()
	};
	i5.prototype.uV = function (F) {
		var P = this.Xa.Clrs.v;
		if (this.AV == null || P.length == 2) return;
		P.splice(P.indexOf(this.AV), 1);
		this.AV = null;
		this.U5();
		this.RP()
	};
	i5.prototype.U5 = function () {
		var F = this.in,
			P = this.YV,
			o = i.J();
		F.width = Math.floor(410 * o);
		F.height = Math.floor(90 * o);
		i.Hc(F, F.width, F.height);
		this.z4 = new ev(0, 0, Math.floor(380 * o), Math.floor(32 * o));
		this.z4.x = Math.floor((this.in.width - this.z4.Z) / 2);
		this.z4.y = Math.floor((this.in.height - this.z4.h) / 2);
		var X = this.z4,
			Y = X.Z,
			y = X.h,
			z = X.x,
			s = X.y,
			t = new ev(0, 0, Y, y),
			d = P.getImageData(0, 0, Y, y),
			U = new Uint8Array(d.data.buffer);
		H.RK(U, Y, y, 8, 0, 0);
		var v = H.R(Y * y * 4);
		H.j.ao(this.Xa, v, t, [1 / Y, 0, 0, 1 / y], Y / 2, y / 2, !1, 0, this.Fs.GY, this.Fs.Ty);
		H.N.DO("norm", v, X, U, X, X, 1);
		P.clearRect(0, 0, F.width, F.height);
		P.putImageData(d, z, s);
		var A = this.Xa.Trns.v,
			Z = this.Xa.Clrs.v,
			D = H.j.j0(Z, this.Fs.GY, this.Fs.Ty),
			q = Math.round(6 * i.J()),
			R = Math.round(14 * i.J()),
			J = this.wr ? this.wr.v : null,
			W = this.AV ? this.AV.v : null;
		for (var w = 0; w < A.length; w++) {
			var p = A[w].v,
				n = Math.round(255 - 255 * p.Opct.v.val / 100);
			if ((p == J || A[w - 1] && A[w - 1].v == J || w == this.v1) && w != 0) {
				P.fillStyle = "#000000";
				P.fillRect(z - 3 + Y * (A[w - 1].v.Lctn.v + (p.Lctn.v - A[w - 1].v.Lctn.v) * p.Mdpn.v / 100) / 4096, s - 6 - 2, 6, 6)
			}
			if (p == J) {
				P.fillStyle = "#ffffff";
				P.fillRect(z - q + Y * (p.Lctn.v / 4096) - 2, s - 2 - R - 2, 2 * q + 4, R + 4)
			}
			P.fillStyle = "rgb(" + n + "," + n + "," + n + ")";
			P.fillRect(z - q + Y * (p.Lctn.v / 4096), s - 2 - R, 2 * q, R)
		}
		for (var w = 0; w < Z.length; w++) {
			var b = Z[w].v,
				Q = D[w];
			if ((b == W || Z[w - 1] && Z[w - 1].v == W || w == this.Ls) && w != 0) {
				P.fillStyle = "#000000";
				P.fillRect(z - 3 + Y * (Z[w - 1].v.Lctn.v + (b.Lctn.v - Z[w - 1].v.Lctn.v) * b.Mdpn.v / 100) / 4096, s + y + 2, 6, 6)
			}
			if (b == W) {
				P.fillStyle = "#ffffff";
				P.fillRect(z - q + Y * (b.Lctn.v / 4096) - 2, s + y + 2 - 2, 2 * q + 4, R + 4)
			}
			P.fillStyle = "rgb(" + Math.round(Q.U) + ", " + Math.round(Q.S) + "," + Math.round(Q.i) + ")";
			P.fillRect(z - q + Y * (b.Lctn.v / 4096), s + y + 2, 2 * q, R)
		}
		if (this.Cr) {
			this.EY(this.Xa);
			this.MX = !0
		}
	};
	i5.prototype.RP = function () {
		this.Ff.k(Math.round(100 * this.Xa.Intr.v / 4096));
		var F = this.Xa.Trns.v,
			P = this.Xa.Clrs.v,
			o = this.wr != null,
			X = this.v1 != -1;
		this.Jf.b0(o);
		this.Rm.b0(o || X);
		this.cu.b0(o);
		if (o) {
			this.H5.setAttribute("style", "");
			var Y = this.wr.v;
			this.Rm.k(Math.round(100 * Y.Lctn.v / 4096));
			this.Jf.k(Y.Opct.v.val)
		}
		if (X) this.Rm.k(F[this.v1].v.Mdpn.v);
		var o = this.AV != null,
			X = this.Ls != -1;
		this.nC.b0(o);
		this.Bc.b0(o);
		this.j8.b0(o || X);
		this.CU.b0(o);
		if (o) {
			this.yr.setAttribute("style", "");
			var y = this.AV.v;
			this.j8.k(Math.round(100 * y.Lctn.v / 4096));
			var z = y.Type.v.Clry;
			this.nC.k(["FrgC", "BckC", "UsrS"].indexOf(z));
			if (z == "FrgC") this.Bc.s$(this.Fs.GY);
			if (z == "BckC") this.Bc.s$(this.Fs.Ty);
			if (z == "UsrS") this.Bc.k(y.Clr.v)
		}
		if (X) this.j8.k(P[this.Ls].v.Mdpn.v)
	};
	i5.prototype.P7 = function (F) {
		var P = Math.round(4096 * this.Ff.q() / 100);
		this.Xa.Intr.v = P;
		var o = this.Xa.Trns.v,
			X = this.Xa.Clrs.v;
		if (this.wr != null) {
			var Y = this.wr.v;
			Y.Lctn.v = Math.round(4096 * (this.Rm.q() / 100));
			Y.Opct.v.val = this.Jf.q()
		}
		if (this.AV != null) {
			var y = this.AV.v;
			y.Lctn.v = Math.round(4096 * (this.j8.q() / 100));
			if (F.target == this.Bc) this.nC.k(2);
			var z = this.nC.q();
			y.Type.v.Clry = ["FrgC", "BckC", "UsrS"][z];
			if (z == 2) y.Clr = {
				t: "Objc",
				v: this.Bc.q()
			};
			else if (y.Clr) delete y.Clr
		}
		if (this.v1 != -1) o[this.v1].v.Mdpn.v = this.Rm.q();
		if (this.Ls != -1) X[this.Ls].v.Mdpn.v = this.j8.q();
		this.U5()
	};
	i5.prototype.Fx = function (F) {
		var P = i.oA(F, this.in),
			o = (P.x * i.J() - this.z4.x) / this.z4.Z,
			X = (P.y * i.J() - this.z4.y) / this.z4.h,
			Y = this.Xa.Trns.v,
			y = this.Xa.Clrs.v,
			z = null,
			s = null,
			t = -1,
			d = -1;
		if (X < 1)
			for (var w = 0; w < Y.length; w++) {
				var U = Y[w].v;
				if (Math.abs(U.Lctn.v / 4096 - o) < .02) z = Y[w];
				if (w > 0)
					if (Math.abs((Y[w - 1].v.Lctn.v + (U.Lctn.v - Y[w - 1].v.Lctn.v) * U.Mdpn.v / 100) / 4096 - o) < .01) t = w
			}
		if (X > 0)
			for (var w = 0; w < y.length; w++) {
				var v = y[w].v;
				if (Math.abs(v.Lctn.v / 4096 - o) < .02) s = y[w];
				if (w > 0)
					if (Math.abs((y[w - 1].v.Lctn.v + (v.Lctn.v - y[w - 1].v.Lctn.v) * v.Mdpn.v / 100) / 4096 - o) < .01) d = w
			}
		if (s == null && z == null && t == -1 && d == -1) {
			if (X < 0) {
				var U = {
					t: "Objc",
					v: {
						classID: "TrnS",
						Opct: {
							t: "UntF",
							v: {
								type: "#Prc",
								val: 100
							}
						},
						Lctn: {
							t: "long",
							v: 0
						},
						Mdpn: {
							t: "long",
							v: 50
						}
					}
				};
				U.v.Lctn.v = Math.round(o * 4096);
				Y.push(U);
				Y.sort(this.f5);
				z = U
			}
			if (X > 1) {
				var y = this.Xa.Clrs.v,
					A = H.j.j0(y, this.Fs.GY, this.Fs.Ty),
					Z = H.j.it(this.Xa, A, o),
					v = {
						t: "Objc",
						v: {
							classID: "Clrt",
							Clr: {
								t: "Objc",
								v: H.j.$H({
									U: Z & 255,
									S: Z >> 8 & 255,
									i: Z >> 16 & 255
								})
							},
							Type: {
								t: "enum",
								v: {
									Clry: "UsrS"
								}
							},
							Lctn: {
								t: "long",
								v: 0
							},
							Mdpn: {
								t: "long",
								v: 50
							}
						}
					};
				v.v.Lctn.v = Math.round(o * 4096);
				y.push(v);
				y.sort(this.f5);
				s = v
			}
		}
		if (s != null) d = -1;
		if (z != null) t = -1;
		if (s != null || z != null || t > -1 || d > -1) {
			this.wr = z;
			this.AV = s;
			this.v1 = t;
			this.Ls = d;
			this.RP();
			this.U5();
			i.Jr(window, this.ab);
			i.so(window, this.Ja)
		}
	};
	i5.prototype.tz = function (F) {
		var P = i.oA(F, this.in),
			o = i.J() * (P.x - this.z4.x) / this.z4.Z,
			X = i.J() * (P.y - this.z4.y) / this.z4.h;
		o = Math.max(0, Math.min(1, o));
		var Y = this.Xa.Trns.v,
			y = this.Xa.Clrs.v;
		if (this.wr != null) {
			var z = this.wr.v;
			z.Lctn.v = Math.round(4096 * o);
			var s = Y.indexOf(this.wr);
			if (s != -1 && X < -1 && Y.length > 2) Y.splice(s, 1);
			if (s == -1 && X > -1) Y.push(this.wr);
			Y.sort(this.f5)
		}
		if (this.AV != null) {
			var t = this.AV.v;
			t.Lctn.v = Math.round(4096 * o);
			var d = y.indexOf(this.AV);
			if (d != -1 && X > 1.5 && y.length > 2) y.splice(d, 1);
			if (d == -1 && X < 1.5) y.push(this.AV);
			y.sort(this.f5)
		}
		if (this.v1 > -1) {
			var z = Y[this.v1].v;
			z.Mdpn.v = Math.max(5, Math.min(95, Math.round(100 * (o * 4096 - Y[this.v1 - 1].v.Lctn.v) / (z.Lctn.v - Y[this.v1 - 1].v.Lctn.v))))
		}
		if (this.Ls > -1) {
			var t = y[this.Ls].v;
			t.Mdpn.v = Math.max(5, Math.min(95, Math.round(100 * (o * 4096 - y[this.Ls - 1].v.Lctn.v) / (t.Lctn.v - y[this.Ls - 1].v.Lctn.v))))
		}
		if (this.wr != null || this.AV != null || this.v1 > -1 || this.Ls > -1) {
			this.RP();
			this.U5()
		}
	};
	i5.prototype.JB = function (F) {
		i.NG(window, this.ab);
		i.Sz(window, this.Ja);
		if (Date.now() - this.Th < 300) {
			if (this.Ls != -1 || this.v1 != -1) {
				var P = (this.Ls != -1 ? this.Xa.Clrs.v[this.Ls] : this.Xa.Trns.v[this.v1]).v;
				P.Mdpn.v = 50;
				this.RP();
				this.U5()
			} else if (this.AV != null) this.Bc.a1M()
		}
		this.Th = Date.now()
	};
	i5.prototype.f5 = function (F, P) {
		return F.v.Lctn.v - P.v.Lctn.v
	};

	function aC() {
		ai.call(this, [11, 10], "isize");
		this.xr = i.z("div", "form");
		this.xr.setAttribute("style", "width:20em");
		this.body.appendChild(this.xr);
		this.bq = new aj(!0, !0);
		this.xr.appendChild(this.bq.u);
		this.XA = new aD("Resample");
		this.XA.k(!0);
		this.xr.appendChild(this.XA.u);
		this.XA.$(i.E.I, this.a7A, this);
		this.zv = new gq([12, 14, 1], [
			[12, 14, 2],
			[12, 14, 3], "Bicubic Sharper"
		]);
		this.zv.k(1);
		this.xr.appendChild(this.zv.u);
		this.OB = new fV("OK", !0, null, !0);
		this.OB.$("click", this.ja, this);
		this.body.appendChild(this.OB.u)
	}
	aC.prototype = new ai;
	aC.prototype.K9 = function (F, P) {
		return F != null
	};
	aC.prototype.go = function () {
		return !0
	};
	aC.prototype.a7A = function (F) {
		var P = this.XA.q(),
			o = this.bq,
			X = this.zv;
		if (P) X.R8();
		else X.U3();
		if (P) o.a0p();
		else o.afE()
	};
	aC.prototype.t = function () {
		ai.prototype.t.call(this);
		this.zv.t();
		this.bq.t()
	};
	aC.prototype.ja = function (F) {
		this.close();
		var P = this.bq.q(),
			o = P.x,
			X = P.y,
			Y = this.zv.q();
		if (!this.XA.q()) Y = null;
		var y = new l(i.E.QJ, !0);
		y.data = B.$K.cn(o, X, this.bq.av(), Y);
		this.w(y)
	};
	aC.prototype.Vp = function (F, P) {
		this.bq.k(new aH(F.Z, F.h), F.NB)
	};

	function bU() {
		ai.call(this, "Import RAW", "importraw");
		var F = i.z("div", "flexrow"),
			P = i.z("div");
		this.body.appendChild(F);
		this.body.appendChild(P);
		var o = i.z("div", "form");
		o.setAttribute("style", "width:16em");
		F.appendChild(o);
		var X = i.z("div", "form");
		X.setAttribute("style", "width:14em");
		F.appendChild(X);
		this.rX = null;
		this.al4 = null;
		this.mJ = null;
		this.akT = [];
		var Y = [];
		for (var w = 0; w < bU.fB.length; w++) Y.push(bU.fB[w] + " Bits");
		this.Of = [new aj(!0, !0), new aw([12, 72], ["1", "3", "4"]), new aw([12, 34], Y), new aw("Byte Order", ["12-34", "34-12"]), new gq("Guesses", [])];
		for (var w = 0; w < this.Of.length; w++) {
			var y = this.Of[w];
			if (w != 0) y.k(0);
			y.$(i.E.I, w == 4 ? this.MA : this.H6, this);
			var z = w == 0 ? o : w == 4 ? P : X;
			z.appendChild(y.u)
		}
		this.w7 = i.z("canvas");
		this.ui = this.w7.getContext("2d");
		this.body.appendChild(this.w7);
		this.OB = new fV("OK", !0, null, !0);
		this.OB.$("click", this.ja, this);
		this.body.appendChild(this.OB.u)
	}
	bU.prototype = new ai;
	bU.prototype.t = function () {
		ai.prototype.t.call(this);
		var F = this.Of;
		for (var w = 0; w < F.length; w++) F[w].t()
	};
	bU.prototype.ja = function (F) {
		this.close();
		var P = this.Of[0].q(),
			o = cz.Y$(this.al4, [{
				data: this.mJ,
				ym: new ev(0, 0, P.x, P.y)
			}]),
			X = new l(i.E.L, !0);
		X.data = {
			e: !0 ? i.B.qD : i.B.G0,
			EA: o
		};
		this.w(X)
	};
	bU.fB = [8, 16];
	bU.prototype.Vp = function (F, P) {
		this.rX = new Uint8Array(P.Zs);
		this.al4 = P.Z5;
		var o = this.rX.length,
			X = [1, 3, 4],
			Y = 0,
			y = 0,
			z = 1,
			s = 1,
			t = this.akT = [];
		for (var d = 0; d < 3; d++) {
			for (var U = 0; U < 2; U++) {
				var v = bU.fB[U],
					A = X[d],
					Z = A * v,
					D = Math.round(o * 8 / Z);
				if (D != o * 8 / Z) continue;
				for (var q = 0; q <= 4e3; q++)
					for (var R = 0; R <= 4e3; R++)
						if (q * R == D) {
							var J = 0;
							if (q == R) J += 64;
							if (Math.round(q / 100) == q / 100 && Math.round(R / 100) == R / 100) J += 32;
							if (Math.round(q / 10) == q / 10 && Math.round(R / 10) == R / 10) J += 16;
							if (Math.round(q / 2) == q / 2 && Math.round(R / 2) == R / 2) J += 8;
							t.push([q, R, A, v, J])
						}
			}
		}
		var W = function (Q, _) {
			if (_[4] != Q[4]) return _[4] - Q[4];
			var L = Math.max(Q[0], Q[1]) / Math.min(Q[0], Q[1]),
				m = Math.max(_[0], _[1]) / Math.min(_[0], _[1]);
			if (L != m) return L - m;
			return _[0] - Q[0]
		};
		t.sort(W);
		var p = this.Of,
			n = [];
		for (var w = 0; w < t.length; w++) {
			var b = t[w];
			n.push(b[0] + " x " + b[1] + ", " + b[2] + "c, " + b[3] + "-bit")
		}
		p[4].KI(n);
		p[4].k(0);
		this.MA(null)
	};
	bU.prototype.MA = function (F) {
		var P = this.Of,
			o = this.akT[this.Of[4].q()];
		P[0].k(new aH(o[0], o[1]), 72);
		P[1].k([1, 3, 4].indexOf(o[2]));
		P[2].k(bU.fB.indexOf(o[3]));
		this.H6()
	};
	bU.prototype.H6 = function (F) {
		var P = this.Of,
			o = P[0].q(),
			X = o.x,
			Y = o.y,
			y = bU.fB[P[2].q()],
			z = this.rX;
		if (y == 16 && P[3].q() == 1) {
			z = z.slice(0);
			for (var w = 0; w < z.length; w += 2) {
				var s = z[w];
				z[w] = z[w + 1];
				z[w + 1] = s
			}
		}
		var t = this.mJ = UPNG.toRGBA8.decodeImage(z, X, Y, {
				tabs: {},
				ctype: [0, 2, 6][P[1].q()],
				depth: y
			}),
			d = this.w7,
			U = this.ui,
			v = [t, new ev(0, 0, X, Y)];
		H.hE(v);
		for (var w = 0; w < v.length; w += 2)
			if (v[w + 1].h < 300) {
				t = v[w];
				X = v[w + 1].Z;
				Y = v[w + 1].h;
				break
			} d.width = X;
		d.height = Y;
		i.Hc(d, X, Y);
		var A = new ImageData(new Uint8ClampedArray(t.buffer), X, Y);
		U.putImageData(A, 0, 0)
	};

	function e8(F, P, o) {
		au.call(this);
		this.u = i.z("div", "");
		this.zn = F;
		this.tV = null;
		this.jA = P == null ? !1 : P;
		this.kI = null;
		this.kf = o;
		this.Ay = [];
		this.vj = [];
		this.y8 = [];
		this.zF = [];
		this.Cu = 0;
		this.tV = this.a05(e8.zF[F]);
		this.uZ()
	}
	e8.prototype = new au;
	e8.prototype.a0o = function () {
		for (var w = 0; w < this.zF.length; w++) {
			i.sT(this.zF[w], "selected");
			if (this.y8[w] instanceof aD) this.y8[w].k(!1)
		}
	};
	e8.prototype.al5 = function (F) {
		var P = this.a9c.bind(this);
		for (var w = 0; w < this.y8.length; w++) {
			var o = i.z("div", "listitem");
			this.zF.push(o);
			if (w > 0) o.textContent = "\u2003";
			o.appendChild(this.y8[w].u);
			if (ce.eB.indexOf(this.zn) != -1) {
				var X = new fV("+");
				X.V2();
				X.u.style.float = "right";
				o.appendChild(X.u);
				var Y = new fV("\u2B0D");
				Y.V2();
				Y.u.style.float = "right";
				Y.u.style["margin-right"] = "2px";
				o.appendChild(Y.u)
			}
			o.addEventListener("click", P, !1);
			F.appendChild(o)
		}
	};
	e8.d6 = function (F, P) {
		var o = P.getBoundingClientRect();
		return (F.clientY - o.top) / o.height
	};
	e8.prototype.a9c = function (F) {
		var P = F.target.tagName.toLowerCase();
		if (P == "input") {
			return
		}
		if (P == "button") {
			var o = new l(i.E.H, !0),
				X = F.target.textContent == "+",
				Y = X ? 0 : e8.d6(F, F.target) < .5 ? -1 : 1;
			if (X) o.data = {
				e: "st_dupsingle",
				n: this.parent.data.n,
				q_: this.kf
			};
			else o.data = {
				e: "st_movsingle",
				n: this.parent.data.n,
				q_: this.kf,
				agj: Y
			};
			o.Q = B.FA;
			o.qQ = !0;
			this.w(o);
			o = new l("redrawall", !0);
			o.data = {
				agj: Y
			};
			this.w(o);
			return
		}
		i.OZ(F);
		this.jO();
		this.Cu = this.zF.indexOf(F.currentTarget);
		this.w(new l("showme"))
	};
	e8.prototype.jO = function () {
		if (this.tV.enab && this.tV.enab.q() == !1) this.nQ({
			lg: "enab",
			C: !0
		})
	};
	e8.prototype.ajL = function () {
		var F = this.zF[this.Cu];
		if (F) i.KL(F, "selected");
		return this.vj[this.Cu]
	};
	e8.prototype.a05 = function (F) {
		var P = {};
		for (var w = 0; w < F.length; w++) {
			var o = F[w],
				X = null;
			if (o == "----") X = {
				u: i.z("hr")
			};
			if (o == "\n") X = {
				u: i.z("br")
			};
			if (o == "blOptions") X = new dC([14, 10]);
			if (o == "brst") X = new aL([12, 72], ["R", "G", "B"]);
			if (o == "knko") X = new gq("Knockout", [
				[13, 1, 0], "Shallow", "Deep"
			]);
			if (o == "enab") X = new aD(ce.names[ce.order.indexOf(this.zn)]);
			if (o == "lrMd" || o == "Md") X = new gq([12, 19, 0], aK.Zn, !1, aK.wp);
			if (o == "Opct") X = new bc([12, 0], 0, 100, "%");
			if (o == "iOpa") X = new bc([12, 26], 0, 100, "%");
			if (o == "blIf") X = new ex;
			if (o == "ShdN") X = new bc([12, 68], 0, 100, "%");
			if (o == "lagl" || o == "Angl") X = new f2([12, 15]);
			if (o == "uglg") X = new aD([12, 27]);
			if (o == "Dstn") X = new bc([12, 28], 0, 200, "px");
			if (o == "Ckmt") X = new bc([12, 29], 0, 100, "%");
			if (o == "blur") X = new bc([12, 14, 0], 0, 200, "px");
			if (o == "TrnS" || o == "MpgS") X = new io([12, 21]);
			if (o == "Nose") X = new bc([12, 30], 0, 100, "%");
			if (o == "layerConceals") X = new aD([12, 31]);
			if (o == "AntA" || o == "antialiasGloss") X = new aD("Anti-alias");
			if (o == "GlwT") X = new gq([12, 32], ce.I7.names);
			if (o == "glwS") X = new gq([12, 70], ce.I7.ak7);
			if (o == "Inpr") X = new bc([12, 12], 1, 100, "%");
			if (o == "bvlS") X = new gq([12, 22], ce.lc.style);
			if (o == "bvlT") X = new gq([12, 32], ce.lc.ajm);
			if (o == "bvlD") X = new gq(null, ce.lc.dir);
			if (o == "srgR") X = new bc([12, 34], 0, 1e3, "%");
			if (o == "Sftn") X = new bc([12, 35], 0, 20, "px");
			if (o == "Lald") X = P.lagl;
			if (o == "hglM" || o == "sdwM") X = new gq([12, 36], aK.Zn, !1, aK.wp);
			if (o == "hglC" || o == "sdwC") X = new eH;
			if (o == "hglO" || o == "sdwO") X = new bc([12, 0], 0, 100, "%");
			if (o == "Invr" || o == "InvT") X = new aD([4, 11]);
			if (o == "Sz") X = new bc([12, 14, 0], 1, 200, "px");
			if (o == "Styl") X = new gq([12, 40], ce.stroke.names);
			if (o == "PntT") X = new gq([12, 66], ce.stroke.a6v);
			if (o == "Clr") X = new eH(!0);
			if (o == "Grad") {
				X = new ah(!0, [12, 37], !0);
				X.k(JSON.parse(ce.Bf.wB).v)
			}
			if (o == "Rvrs") X = new aD([12, 23, 0]);
			if (o == "Dthr") X = new aD("Dither");
			if (o == "Type") X = new gq([12, 22], ce.j.names.slice(0, this.zn == "FrFX" ? 6 : 5));
			if (o == "Ptrn") X = new e9([12, 62]);
			if (o == "Scl") X = new bc([12, 38], 10, 500, "%", 0, !0);
			if (o == "Algn") X = new aD([12, 39]);
			if (o == "Ofst") X = new aO(!0);
			if (o == "phase") X = new aO(!1);
			if (o == "useShape") X = new aD([12, 21]);
			if (o == "useTexture") X = new aD([12, 67]);
			if (o == "textureDepth") X = new bc([12, 34], -300, 300, "%");
			var Y = o == "----" || o == "\n" ? o + w : o;
			if (X != null) P[Y] = X
		}
		return P
	};
	e8.prototype.aba = function (F) {
		var P = this.vj[this.Cu];
		for (var w = 0; w < F.length; w++) {
			var o = this.tV[F[w]];
			if (o && P.contains(o.u)) P.removeChild(o.u)
		}
	};
	e8.prototype.adH = function (F) {
		var P = this.vj[this.Cu];
		for (var w = 0; w < F.length; w++) {
			var o = this.tV[F[w]];
			if (o && !P.contains(o.u)) P.appendChild(o.u)
		}
	};
	e8.prototype.AK = function (F, P) {
		if (this.tV == null) return;
		var o = P == ge.oc;
		if (this.tV.Grad) {
			this.tV.Grad.dn(F.GY, F.Ty);
			if (o || P == ge.Io || P == ge.uw) this.tV.Grad._F(F.dY)
		}
		if (this.tV.Ptrn) {
			if (o || P == ge.AT) this.tV.Ptrn._F(F.WB)
		}
		if (this.tV.TrnS) {
			if (o || P == ge.wj) this.tV.TrnS._F(F.rN)
		}
		if (this.tV.MpgS) {
			if (o || P == ge.wj) this.tV.MpgS._F(F.rN)
		}
	};
	e8.prototype.t = function () {
		for (var w = 0; w < this.Ay.length; w++) this.Ay[w].t();
		for (var F in this.tV)
			if (this.tV[F] instanceof au) this.tV[F].t()
	};
	e8.prototype.uZ = function () {
		for (var F in this.tV) {
			var P = this.tV[F];
			P.parent = this;
			if (P instanceof au) P.$(i.E.I, this.afm, this);
			if (this.vj.length == 0 || F == "useShape" || F == "useTexture") {
				var o = new dC(P.m1()),
					X = i.z("div", "bordered padded");
				if (this.jA == !1) {
					X.appendChild(o.u);
					X.appendChild(i.z("hr", ""))
				}
				this.Ay.push(o);
				this.vj.push(X);
				this.y8.push(P)
			} else this.vj[this.vj.length - 1].appendChild(P.u)
		}
	};
	e8.prototype.update = function (F, P) {
		if (this.tV == null) return;
		if (this.jA) this.kI = JSON.parse(JSON.stringify(P));
		for (var o in P) {
			if ("Opct iOpa hglO sdwO Dstn Ckmt blur Nose Scl Sz Inpr Angl srgR Sftn textureDepth ShdN".split(" ").indexOf(o) != -1) this.tV[o].k(P[o].v.val);
			if ("enab brst knko Clr hglC sdwC uglg Grad TrnS MpgS Rvrs Dthr Algn Invr InvT Ptrn layerConceals useShape useTexture Ofst phase blIf".split(" ").indexOf(o) != -1) {
				this.tV[o].k(P[o].v, F)
			}
			if (["Md", "hglM", "sdwM"].indexOf(o) != -1) this.tV[o].k(aK.zn.indexOf(P[o].v.BlnM));
			if (o == "lrMd") {
				var X = (P.fO ? [
						[15, 10, 27]
					] : []).concat(aK.Zn),
					Y = (P.fO ? [1] : []).concat(aK.wp);
				this.tV[o].KI(X, Y);
				this.tV[o].k(P[o].v)
			}
			if (o == "lagl") {
				var y = P.uglg && P.uglg.v ? F.Rp() : P.lagl.v.val;
				this.tV[o].k(y)
			}
			if (o == "Lald") {
				var y = P.uglg && P.uglg.v ? F.$p() : P.Lald.v.val;
				this.tV[o].k(null, y)
			}
			if (o == "Type") this.tV[o].k(ce.j.types.indexOf(P.Type.v.GrdT));
			if (o == "Styl") this.tV[o].k(ce.stroke.types.indexOf(P.Styl.v.FStl));
			if (o == "PntT") {
				var z = ce.stroke._n.indexOf(P.PntT.v.FrFl);
				this.tV[o].k(z);
				if (!this.jA) {
					this.aba(ce.QB.concat(ce.Zt.concat(ce.QZ)));
					this.adH([ce.QB, ce.Zt, ce.QZ][z])
				}
			}
			if (o == "GlwT") this.tV[o].k(ce.I7.types.indexOf(P.GlwT.v.BETE));
			if (o == "glwS") this.tV[o].k(ce.I7.zC.indexOf(P.glwS.v.IGSr));
			if (o == "bvlS") this.tV[o].k(ce.lc.types.indexOf(P.bvlS.v.BESl));
			if (o == "bvlT") this.tV[o].k(ce.lc.O5.indexOf(P.bvlT.v.bvlT));
			if (o == "bvlD") this.tV[o].k(["In", "Out"].indexOf(P.bvlD.v.BESs))
		}
	};
	e8.prototype.afm = function (F) {
		for (var P in this.tV) {
			if (this.tV[P] != F.target) continue;
			var o = null,
				X = !1;
			if ("Opct iOpa hglO Nose Scl sdwO Inpr srgR textureDepth ShdN".split(" ").indexOf(P) != -1) o = {
				type: "#Prc",
				val: F.target.q()
			};
			if (["Dstn", "Ckmt", "blur", "Sz", "Sftn"].indexOf(P) != -1) o = {
				type: "#Pxl",
				val: F.target.q()
			};
			if (["Angl", "lagl"].indexOf(P) != -1) o = {
				type: "#Ang",
				val: F.target.q().Fu
			};
			if ("enab brst knko Clr hglC sdwC Grad TrnS MpgS Rvrs Dthr Algn Invr InvT Ptrn layerConceals lrMd useShape useTexture AntA antialiasGloss Ofst phase blIf".split(" ").indexOf(P) != -1) o = F.target.q();
			if (["Md", "hglM", "sdwM"].indexOf(P) != -1) o = {
				BlnM: aK.zn[F.target.q()]
			};
			if (P == "uglg") {
				o = F.target.q();
				X = !0
			}
			if (P == "PntT") {
				o = {
					FrFl: ce.stroke._n[F.target.q()]
				};
				X = !0
			}
			if (P == "Lald") o = {
				type: "#Ang",
				val: F.target.q().alt
			};
			if (P == "Type") o = {
				GrdT: ce.j.types[F.target.q()]
			};
			if (P == "Styl") o = {
				FStl: ce.stroke.types[F.target.q()]
			};
			if (P == "GlwT") o = {
				BETE: ce.I7.types[F.target.q()]
			};
			if (P == "glwS") o = {
				IGSr: ce.I7.zC[F.target.q()]
			};
			if (P == "bvlS") o = {
				BESl: ce.lc.types[F.target.q()]
			};
			if (P == "bvlT") o = {
				bvlT: ce.lc.O5[F.target.q()]
			};
			if (P == "bvlD") o = {
				BESs: ["In", "Out"][F.target.q()]
			};
			this.nQ({
				lg: P,
				C: o
			});
			if (X) {
				if (this.jA) this.update(null, this.kI);
				else {
					var Y = this.parent,
						y = Y.EA,
						z = this.kf,
						s = y.r[Y.data.n].add.lmfx[ce.og[z[0]]].v[z[1]].v;
					this.update(y, s)
				}
			}
		}
	};
	e8.prototype.nQ = function (F) {
		if (this.jA) {
			this.kI[F.lg].v = F.C;
			this.w(new l(i.E.I))
		} else {
			F.e = "changeprop";
			F.n = this.parent.data.n;
			F.XN = this.kf;
			var P = new l(i.E.H, !0);
			P.data = F;
			P.Q = B.FA;
			P.qQ = !0;
			this.w(P);
			this.w(new l("afterchange", !0))
		}
	};
	e8.prototype.q = function () {
		return JSON.parse(JSON.stringify(this.kI))
	};
	e8.zF = {
		bops: "blOptions lrMd Opct ---- iOpa brst ---- blIf".split(" "),
		DrSh: "enab Md Clr Opct lagl uglg Dstn Ckmt blur TrnS Nose layerConceals".split(" "),
		IrSh: "enab Md Clr Opct lagl uglg Dstn Ckmt blur TrnS Nose".split(" "),
		OrGl: ["enab", "Md", "Opct", "Nose", "\n", "Clr", "Grad", "----", "GlwT", "Ckmt", "blur", "TrnS", "Inpr", "ShdN"],
		IrGl: ["enab", "Md", "Opct", "Nose", "\n", "Clr", "Grad", "----", "GlwT", "glwS", "Ckmt", "blur", "TrnS", "Inpr", "ShdN"],
		ebbl: ["enab", "bvlS", "bvlT", "bvlD", "srgR", "blur", "Sftn", "----", "lagl", "Lald", "uglg", "TrnS", "\n", "hglM", "hglC", "hglO", "sdwM", "sdwC", "sdwO", "useShape", "MpgS", "Inpr", "useTexture", "Ptrn", "Scl", "textureDepth", "InvT", "Algn", "phase"],
		SoFi: ["enab", "Md", "Opct"].concat(ce.QB),
		GrFl: ["enab", "Md", "Opct"].concat(ce.Zt),
		patternFill: ["enab", "Md", "Opct"].concat(ce.QZ),
		ChFX: "enab Md Clr Opct lagl Dstn blur MpgS Invr".split(" "),
		FrFX: ["enab", "Sz", "Styl", "\n", "Md", "Opct", "PntT", "\n"].concat(ce.QB.concat(ce.Zt.concat(ce.QZ)))
	};

	function il() {
		ai.call(this, [11, 6], "layerstyle");
		this.a1L = -1;
		this.data = {};
		this.EA = null;
		this.yH = null;
		this.cY = [];
		this.nW = [];
		i.KL(this.body, "flexrow");
		this.EI = i.z("div", "bordered");
		this.EI.setAttribute("style", "min-width:13em;");
		this.body.appendChild(this.EI);
		this.E1 = i.z("div", "");
		this.E1.setAttribute("style", "width:25em; padding-left: 1em;");
		this.body.appendChild(this.E1);
		this.X7 = i.z("div", "form");
		this.X7.setAttribute("style", "padding-left: 1em; width:7em;");
		this.body.appendChild(this.X7);
		this.cI = new fV("OK", !0, null, !0);
		this.cI.$("click", this.ja, this);
		this.X7.appendChild(this.cI.u);
		this.B4 = new fV([12, 87], !0, null, !0);
		this.B4.$("click", this.a0s, this);
		this.X7.appendChild(this.B4.u);
		this.Gq = new dV;
		this.Gq.parent = this;
		this.Gq.$(i.E.I, this.a2b, this);
		this.X7.appendChild(this.Gq.u);
		this.$("closebtn", this.Te, this);
		this.$("redrawall", this.rC, this)
	}
	il.prototype = new ai;
	il.prototype.go = function () {
		return !0
	};
	il.prototype.a2b = function (F) {
		var P = this.Gq.q();
		this.nQ({
			e: "setstl",
			C: P.rB
		});
		this.rC(null)
	};
	il.prototype.a0s = function (F) {
		var P = this.EA,
			o = this.data.n;
		if (o == null) o = P.p[0];
		var X = this.EA.r[o],
			Y = cr.Wj(X),
			y = new l(i.E.L, !0);
		y.data = {
			e: i.B.Sl,
			RY: "add",
			S9: ge.Ym,
			EM: [JSON.parse(JSON.stringify(Y))]
		};
		this.w(y)
	};
	il.prototype.a0j = function (F) {
		this.data.index = F.currentTarget.kf;
		this.kg(F.currentTarget.kf)
	};
	il.prototype.rC = function (F) {
		this.Vp(this.EA, this.data)
	};
	il.prototype.kg = function (F, P) {
		i.TD(this.E1);
		for (var w = 0; w < this.cY.length; w++) this.cY[w].a0o();
		var o = F == 0 ? this.cY[0] : this.nW[F[0]][F[1]];
		this.E1.appendChild(o.ajL());
		if (P) o.jO();
		var X = this.EA;
		if (X) {
			var Y = X.r[this.data.n];
			this.cY[0].update(X, cj.NO.CX(X, Y));
			var y = Y.add.lmfx;
			if (y == null) return;
			for (var w = 0; w < ce.order.length; w++) {
				var z = y[ce.og[w]].v;
				for (var s = 0; s < z.length; s++) this.nW[w][s].update(X, z[s].v)
			}
		}
		if (P) o.jO()
	};
	il.prototype.t = function () {
		ai.prototype.t.call(this);
		this.B4.t();
		this.Gq.t();
		for (var w = 0; w < this.cY.length; w++) this.cY[w].t()
	};
	il.prototype.Vp = function (F, P) {
		var o = P.n == null;
		this.data.n = P.n;
		this.data.index = P.index;
		P = this.data;
		this.EA = F;
		if (o) P.n = F.p.length == 0 ? F.r.length - 1 : F.p[0];
		i.TD(this.EI);
		var X = F.r[P.n].add.lmfx;
		this.xp();
		this.cY = [new e8("bops", !1, 0)];
		this.nW = [];
		for (var w = 0; w < ce.order.length; w++) {
			this.nW.push([]);
			var Y = X == null ? [] : X[ce.og[w]].v;
			for (var y = 0; y < Y.length; y++) {
				var z = new e8(ce.order[w], !1, [w, y]);
				this.cY.push(z);
				this.nW[w].push(z)
			}
			if (Y.length == 0) {
				var z = new e8(ce.order[w], !1, [w, 0]);
				this.cY.push(z);
				this.nW[w].push(z)
			}
		}
		this.t();
		this.f8(this.yH, ge.oc);
		for (var w = 0; w < this.cY.length; w++) {
			this.cY[w].parent = this;
			this.cY[w].al5(this.EI);
			this.cY[w].$("showme", this.a0j, this)
		}
		if (P.index == null || P.index == 0 || !o && X[ce.og[P.index[0]]].v.length == 0) {
			this.kg(0)
		} else this.kg(P.index, o);
		this.$("afterchange", this.xp, this)
	};
	il.prototype.xp = function (F) {
		var P = this.EA,
			o = this.data.n;
		if (o == null) o = P.p[0];
		var X = this.EA.r[o],
			Y = cr.Wj(X);
		this.Gq.k(Y, P.add.Patt ? P.add.Patt : [], P.Rp(), P.$p())
	};
	il.prototype.AK = function (F, P) {
		this.yH = F;
		this.f8(F, P);
		if (P == ge.Ym || P == ge.oc) {
			this.Gq._F([F.gg, F.WB])
		}
		if (P == ge.jq) {}
	};
	il.prototype.f8 = function (F, P) {
		for (var w = 0; w < this.cY.length; w++) this.cY[w].AK(F, P)
	};
	il.prototype.Te = function (F) {
		this.nQ({
			e: "cancel"
		})
	};
	il.prototype.ja = function (F) {
		this.nQ({
			e: "confirm"
		});
		this.close()
	};
	il.prototype.nQ = function (F) {
		F.n = this.data.n;
		var P = new l(i.E.H, !0);
		P.data = F;
		P.Q = B.FA;
		P.qQ = !0;
		this.w(P);
		this.xp()
	};
	il.B0 = function (F) {
		var P = [{
			name: [14, 10],
			aD: !0
		}];
		for (var w = 0; w < ce.names.length; w++) P.push({
			name: ce.names[w]
		});
		if (F) {
			P[P.length - 1].aD = !0;
			P.push({
				name: "Styles To Separate Layers",
				Y: function (o) {
					return {
						Y: o != null && o.p.length != 0 && o.r[o.p[0]].add.lmfx != null
					}
				}
			})
		}
		return P
	};
	il.OS = function (F) {
		var P = [{
			f: i.E.L,
			o: {
				e: i.B.uH,
				W2: "layerstyle"
			}
		}];
		for (var w = 0; w < ce.names.length; w++) P.push({
			f: i.E.L,
			o: {
				e: i.B.uH,
				W2: "layerstyle",
				index: [w, 0]
			}
		});
		if (F) {
			var o = {
				classID: "Mk",
				null: gY.Pe("Lyr"),
				Usng: {
					t: "obj ",
					v: [{
						t: "prop",
						v: {
							classID: "Prpr",
							keyID: "Lefx"
						}
					}, {
						t: "Enmr",
						v: {
							classID: "Lyr",
							typeID: "Ordn",
							enum: "Trgt"
						}
					}]
				}
			};
			P.push({
				f: i.E.QJ,
				o: {
					Bm: "make",
					w1: o
				}
			})
		}
		return P
	};
	il.U2 = function (F) {
		var P = [];
		if (F) P.push({
			name: [6, 48, 0, 0],
			sD: !0
		}, {
			name: [6, 48, 0, 1],
			sD: !0
		}, {
			name: [6, 48, 0, 2],
			sD: !0,
			aD: !0
		});
		for (var o in b_.names) P.push({
			name: b_.names[o],
			aD: b_.wZ.indexOf(o) != -1,
			sD: f[o] != null
		});
		return P
	};
	il.hn = function (F) {
		var P = [];
		if (F)
			for (var w = 0; w < 3; w++) P.push({
				f: i.E.QJ,
				o: B.sp.XL(w)
			});
		for (var o in b_.names) {
			var X = bv.tt(o);
			if (X == null) X = {};
			for (var Y in b_.om)
				if (b_.om[Y] == o) X.classID = Y;
			var y = {
				Bm: "make",
				w1: {
					classID: "Mk",
					null: gY.Pe("AdjL"),
					Usng: {
						t: "Objc",
						v: {
							classID: "AdjL",
							Type: {
								t: "Objc",
								v: X
							}
						}
					}
				}
			};
			P.push({
				f: i.E.QJ,
				o: y
			})
		}
		return P
	};

	function bz() {
		ai.call(this, "Merge Channels", "mergechannels");
		this.vw = null;
		var F = i.z("div", "form");
		this.body.appendChild(F);
		this.Of = [];
		for (var w = 0; w < 3; w++) {
			var P = new gq(b_.Nx[w], []);
			this.Of.push(P);
			F.appendChild(P.u);
			i.Rf(F)
		}
		this.cI = new fV("OK", !0, null, !0);
		this.cI.$("click", this.ja, this);
		F.appendChild(this.cI.u)
	}
	bz.prototype = new ai;
	bz.prototype.t = function () {
		ai.prototype.t.call(this);
		for (var w = 0; w < 3; w++) this.Of[w].t()
	};
	bz.prototype.Vp = function (F, P, o, X) {
		this.vw = o;
		var Y = [];
		for (var w = 0; w < o.length; w++) Y.push(o[w].name);
		for (var w = 0; w < 3; w++) {
			var y = this.Of[w];
			y.KI(Y);
			y.k(Math.min(w, o.length - 1))
		}
	};
	bz.prototype.ja = function (F) {
		var P = this.vw,
			o = P[0],
			X = new l(i.E.QJ, !0);
		X.data = c_.Gg(o.Z, o.h, o.NB, "Merged Document", "Wht");
		this.w(X);
		var Y = [];
		for (var w = 0; w < 3; w++) Y.push(P[this.Of[w].q()].lD());
		var o = P[P.length - 1],
			y = o.r[0],
			z = y.buffer;
		for (var w = 0; w < z.length; w += 4) {
			z[w] = Y[0][w];
			z[w + 1] = Y[1][w];
			z[w + 2] = Y[2][w]
		}
		y.A();
		o.A();
		this.close()
	};

	function dM() {
		ai.call(this, [1, 10], "script");
		var F = i.z("div", "form");
		F.setAttribute("style", "width:44em");
		this.body.appendChild(F);
		this.yH = null;
		this.C8 = [];
		this.qs = [];
		this.aeW;
		var P = this.nN = new fV([1, 2], !1, null, !0);
		P.$("click", this.B5, this);
		F.appendChild(P.u);
		var o = new fV("JS Reference", !1, null, !0);
		o.$("click", this.ahX, this);
		F.appendChild(o.u);
		F.appendChild(new dC("Demos:").u);
		this.abN = [];
		var X = dM.tM;
		for (var w = 0; w < X.length; w++) {
			var Y = new fV(X[w].Bj, !1, null, !0);
			this.abN.push(Y);
			F.appendChild(Y.u);
			Y.$("click", this.af5, this)
		}
		this.Lo = i.z("textarea");
		this.Lo.setAttribute("rows", 16);
		this.Lo.setAttribute("style", "display:block;tab-size:4; font-family:monospace;width:100%;");
		F.appendChild(this.Lo);
		var y = new fV("Run", !0, null, !0);
		y.$("click", this.ja, this);
		F.appendChild(y.u);
		this.a0m = i.z("div");
		F.appendChild(this.a0m)
	}
	dM.prototype = new ai;
	dM.prototype.t = function () {
		this.nN.t()
	};
	dM.prototype.B5 = function () {
		var F = this.aeW;
		if (F == null) F = "script.jsx";
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.uH,
			W2: "namewindow",
			Ub: F.slice(0, F.length - 4),
			j4: this.a0k.bind(this)
		};
		this.w(P)
	};
	dM.prototype.a0k = function (F) {
		var P = this.Lo.value,
			o = r.vI(P),
			X = new l(i.E.L, !0);
		X.data = {
			e: i.B.Wp,
			Zs: o.buffer,
			st: F + ".jsx",
			abv: !0
		};
		this.w(X)
	};
	dM.prototype.a8N = function (F) {
		var w = this.C8.indexOf(F.target),
			P = this.aeW = this.qs[w],
			o = this.yH.Er.qU[P],
			X = new Uint8Array(o),
			Y = r.bc(X, 0, X.length);
		this.Lo.value = Y
	};
	dM.prototype.Vp = function (F, P, o) {
		this.Lo.value = dM.tM[0].Uh;
		this.kL()
	};
	dM.prototype.kL = function () {
		var F = this.yH.Er,
			P = this.a0m;
		i.TD(P);
		this.C8 = [];
		this.qs = [];
		P.textContent = "Saved scripts: ";
		for (var o in F.qU) {
			if (o.endsWith(".jsx")) {
				var X = new fV(o, !1, null, !0);
				this.C8.push(X);
				this.qs.push(o);
				X.$("click", this.a8N, this);
				P.appendChild(X.u)
			}
		}
	};
	dM.prototype.AK = function (F, P) {
		this.yH = F;
		if (P == ge.gq) this.kL()
	};
	dM.prototype.ahX = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.Xk,
			link: "https://www.adobe.com/content/dam/acom/en/devnet/photoshop/pdfs/photoshop-cc-javascript-ref-2019.pdf"
		};
		this.w(P)
	};
	dM.prototype.ja = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.kP,
			YS: this.Lo.value
		};
		this.w(P)
	};
	dM.prototype.af5 = function (F) {
		var P = this.abN.indexOf(F.currentTarget);
		this.Lo.value = dM.tM[P].Uh
	};
	dM.tM = [{
		Bj: "Hello",
		Uh: "\nalert(\"Hello Photopea!\");\n"
	}, {
		Bj: "Process Layers",
		Uh: "\nvar lays = app.activeDocument.layers;\n\nfor(var i=0; i<lays.length; i++)\n{\n" + "\t//lays[i].visible = false;\n" + "\t//lays[i].opacity = 50;\n" + "\tlays[i].name = \"My Layer \"+i;\n}"
	}, {
		Bj: "Clone Layers",
		Uh: "\nvar orig = app.activeDocument.activeLayer;\n" + "var cnt = 12;\n" + "var angle = Math.floor(360 / cnt);\n" + "\n" + "for(var i=1; i<cnt; i++)\n" + "{\n" + "\tvar nlay = orig.duplicate();\n" + "\t//nlay.translate(30*i, 20*i);\n" + "\tnlay.rotate(angle * i, AnchorPosition.BOTTOMCENTER);\n" + "}"
	}];

	function e0() {
		ai.call(this, [11, 7], "newproject");
		this.data = null;
		this.vw = null;
		var F = i.z("div", "flexrow");
		this.H8 = F;
		this.body.appendChild(F);
		var P = i.z("div", "form");
		this.xr = P;
		F.appendChild(P);
		this.v8 = new f6([12, 48]);
		P.appendChild(this.v8.u);
		i.Rf(P);
		this.bq = new aj(!0);
		this.bq.k(new aH(1280, 720), 72);
		this.bq.$(i.E.I, this.dE, this);
		P.appendChild(this.bq.u);
		this.$v = new gq([12, 46], [
			[13, 1, 8],
			[13, 1, 9],
			[12, 46]
		]);
		P.appendChild(this.$v.u);
		P.appendChild(i.z("hr"));
		this.OB = new fV([12, 49], !0, null, !0);
		this.OB.$("click", this.ja, this);
		P.appendChild(this.OB.u);
		var o = e0.rX,
			X = [];
		for (var w = 0; w < o.length; w++) X.push(o[w].name);
		this.zz = new aw(null, X);
		this.zz.$(i.E.I, this.TL, this);
		P.appendChild(this.zz.u);
		this.zz.u.style["margin-top"] = "1em";
		this.Yu = new fo(!0);
		this.Yu.$(i.E.I, this.a3F, this);
		P.appendChild(this.Yu.u);
		this.TL();
		this.bK = new gk;
		this.bK.parent = this;
		this.bK.u.setAttribute("style", "margin-left:1em");
		this.bK.$("tempready", this.a9w, this)
	}
	e0.prototype = new ai;
	e0.prototype.AK = function (F, P) {
		this.bK.AK(F)
	};
	e0.prototype.eL = function (F, P) {
		return new aH(Math.max(0, Math.min(70, (F - 690) / 2)), F > P ? Math.max(0, Math.min(50, (P - 400) / 2)) : 0)
	};
	e0.prototype.l9 = function (F, P) {
		this.xr.setAttribute("style", "width:" + Math.min(F, 338) + "px");
		this.Yu.u.style.height = P - 260 + "px";
		var o = this.bK.u,
			X = o.parentNode;
		if (F < 500) {
			if (X != null) this.H8.removeChild(o)
		} else {
			if (X == null) this.H8.appendChild(o)
		}
		this.bK.l9(F - 360, P - 35)
	};
	e0.prototype.dE = function () {
		this.bK.k(this.bq.q())
	};
	e0.prototype.a3F = function (F) {
		var P = this.Yu.q(),
			o = e0.rX[this.zz.q()].qh[P],
			X = o[4];
		if (X == 0) X = 72;
		var Y = o[1],
			y = o[2],
			z = ["px", "%", "mm", "in"].indexOf(o[3]),
			s = [1, 1, 25.4 / X, 1 / X][z];
		Y /= s;
		y /= s;
		this.bq.k(new aH(Math.round(Y), Math.round(y)), X);
		this.bq.a5z(z);
		this.Yu.tj(P);
		this.dE()
	};
	e0.prototype.TL = function (F) {
		var P = e0.rX[this.zz.q()].qh,
			o = [],
			X = [],
			Y = Math.round(106 * i.J()),
			y = Math.round(106 * i.J()),
			z = 0;
		for (var w = 0; w < P.length; w++) z = Math.max(z, P[w][1], P[w][2]);
		for (var w = 0; w < P.length; w++) {
			var s = P[w],
				t = s[1] + " x " + s[2] + " " + s[3];
			if (s[3] == "in") t = (s[1] * 25.4).toFixed(0) + " x " + (s[2] * 25.4).toFixed(0) + " mm";
			if (s[3] == "mm") t = (s[1] / 25.4).toFixed(1) + " x " + (s[2] / 25.4).toFixed(1) + " in";
			if (s[4]) t = t + " @ " + s[4] + " ppi";
			X.push(t);
			o.push(e0.m2(s, Y, y, z))
		}
		this.Yu.Lf(o, X, Y, y)
	};
	e0.m2 = function (F, P, o, X) {
		var Y = i.z("canvas", ""),
			y = Y.getContext("2d");
		Y.width = P;
		Y.height = o;
		var z = Math.round(P / 8),
			s = Math.floor(11 * i.J()),
			t = F[1],
			d = F[2];
		y.fillStyle = "#000000";
		y.font = Math.round(s * .9) + "px \"Open Sans\", Sans-Serif";
		var U = t + " x " + d + " " + F[3],
			v = y.measureText(U);
		y.fillText(U, Math.round((P - v.width) / 2), o - Math.round(z / 2));
		if (F[0] != null) {
			y.font = "bold " + s + "px \"Open Sans\", Sans-Serif";
			var U = F[0],
				v = y.measureText(U);
			y.fillText(U, Math.round((P - v.width) / 2), o - Math.round(z / 2) - Math.round(s * 1.3))
		}
		o -= Math.round(2.5 * s);
		var A = Math.min((P - z) / t, (o - z) / d);
		A *= .5 + .5 * (Math.max(t, d) / X);
		var Z = (P - t * A) / 2,
			D = (o - d * A) / 2;
		y.strokeRect(Math.round(Z) + .5, Math.round(D) + .5, Math.round(t * A), Math.round(d * A));
		return Y.toDataURL()
	};
	e0.prototype.t = function () {
		ai.prototype.t.call(this);
		this.bq.t();
		this.v8.t();
		this.$v.t();
		this.OB.t();
		this.v8.k(h9.get([11, 7]));
		this.zz.t();
		this.bK.t()
	};
	e0.prototype.ja = function (F) {
		var P = this.bq.q(),
			o = P.x,
			X = P.y;
		this.close();
		var Y = new l(i.E.QJ, !0);
		Y.data = c_.Gg(o, X, this.bq.av(), this.v8.q(), ["Wht", "Trns", "BckC"][this.$v.q()]);
		this.w(Y);
		this._P()
	};
	e0.prototype.a9w = function (F) {
		var P = F.data.EA,
			o = new l(i.E.L, !0);
		o.data = {
			e: i.B.qD,
			EA: P
		};
		this.w(o);
		this.close();
		this._P()
	};
	e0.prototype._P = function () {
		var F = this.vw[this.vw.length - 1],
			P = this.data.a7n;
		if (P) cK.de(function () {
			var o = new XMLHttpRequest,
				X = "https://www.googleapis.com/drive/v3/files?" + cK.pS();
			o.open("POST", X, !0);
			o.setRequestHeader("Content-Type", "application/json");
			o.addEventListener("load", function (Y) {
				var y = JSON.parse(Y.target.response);
				F.D2 = {
					file: y,
					S6: "psd"
				};
				alert(F.name + " created in Google Drive")
			});
			o.send(JSON.stringify({
				name: F.name,
				a1U: [P]
			}))
		})
	};
	e0.prototype.Vp = function (F, P, o, X) {
		this.vw = o;
		if (F != null && F.K != null) {
			var Y = new ev(0, 0, F.Z, F.h).$X(F.K.rect);
			this.bq.k(new aH(Y.Z, Y.h))
		}
		this.data = P;
		this.dE();
		this.v8.co();
		if (i.hM()) cz.a0F(this.ahz.bind(this))
	};
	e0.prototype.ahz = function (F) {
		if (F == "granted") cz.ll(this, this.aiG.bind(this))
	};
	e0.prototype.aiG = function (F, P) {
		this.bq.k(new aH(P.Z, P.h))
	};
	e0.rX = [{
		name: "Social",
		qh: [
			["FB Page Cover", 1640, 664, "px", 0],
			["FB Shared Image", 1200, 630, "px", 0],
			["FB Event Image", 1920, 1080, "px", 0],
			["FB Group Header", 1640, 856, "px", 0],
			["Instagram", 1080, 1080, "px", 0],
			["Insta Story", 1080, 1920, "px", 0],
			["Youtube Profile", 800, 800, "px", 0],
			["Youtube Cover", 2560, 1440, "px", 0],
			["Twitter Profile", 400, 400, "px", 0],
			["Twitter Header", 1500, 500, "px", 0]
		]
	}, {
		name: [12, 88, 4],
		qh: [
			["A3", 297, 420, "mm", 300],
			["A4", 210, 297, "mm", 300],
			["A5", 148, 210, "mm", 300],
			["B3", 353, 500, "mm", 300],
			["B4", 250, 353, "mm", 300],
			["B5", 176, 250, "mm", 300],
			["Letter", 8.5, 11, "in", 300],
			["Ledger", 11, 17, "in", 300],
			["Business Card", 3.5, 2, "in", 300]
		]
	}, {
		name: [12, 88, 0],
		qh: [
			["Wallet", 2, 3, "in", 300],
			["Enprint", 3.5, 5, "in", 300],
			[null, 5, 7, "in", 300],
			[null, 8, 12, "in", 300],
			[null, 12, 18, "in", 300],
			[null, 16, 24, "in", 300],
			[null, 20, 30, "in", 300],
			[null, 24, 36, "in", 300]
		]
	}, {
		name: [12, 88, 1],
		qh: [
			["VGA", 640, 480, "px", 0],
			["XGA", 1024, 768, "px", 0],
			["HD", 1280, 720, "px", 0],
			[null, 1366, 768, "px", 0],
			[null, 1600, 900, "px", 0],
			["Full HD", 1920, 1080, "px", 0],
			["2K", 2048, 1080, "px", 0],
			["UHD", 3840, 2160, "px", 0],
			["4K", 4096, 2160, "px", 0]
		]
	}, {
		name: [12, 88, 2],
		qh: [
			["iPhone 4", 640, 900, "px", 326],
			["iPhone 5", 640, 1136, "px", 326],
			["iPhone 6 7 8", 750, 1334, "px", 326],
			["iPhone 6+ 7+ 8+", 1080, 1920, "px", 401],
			["iPhone X", 1125, 2436, "px", 458],
			["Samsung A5", 720, 1280, "px", 0],
			["Samsung S5", 1080, 1920, "px", 0],
			["Samsung S6", 1440, 2560, "px", 0],
			["Samsung S8+", 1440, 2560, "px", 0],
			["Google Pixel", 1080, 1920, "px", 0],
			["iPad Mini 4", 1536, 2048, "px", 0],
			["iPad Air 2", 1536, 2048, "px", 0],
			["iPad Pro 9.7\"", 1536, 2048, "px", 0],
			["iPad Pro 10.5\"", 1668, 2224, "px", 0],
			["iPad Pro 12.9\"", 2048, 2732, "px", 0]
		]
	}, {
		name: [12, 88, 3],
		qh: [
			["Small Square", 200, 200, "px", 0],
			["Square", 250, 250, "px", 0],
			["Medium Rect", 300, 250, "px", 0],
			["Large Rect", 336, 280, "px", 0],
			["Mobile Leaderboard", 320, 50, "px", 0],
			["Large Mobile", 320, 100, "px", 0],
			["Banner", 468, 60, "px", 0],
			["Leaderboard", 728, 90, "px", 0],
			["Large Leaderboard", 970, 90, "px", 0],
			["Billboard", 970, 250, "px", 0],
			["Vertical Rect", 240, 400, "px", 0],
			["Skyscraper", 120, 600, "px", 0],
			["Wide Skyscraper", 160, 600, "px", 0],
			["Half Page", 300, 600, "px", 0],
			["Portrait", 300, 1050, "px", 0]
		]
	}, {
		name: "2\u1D3A",
		qh: [
			[null, 16, 16, "px", 0],
			[null, 32, 32, "px", 0],
			[null, 64, 64, "px", 0],
			[null, 128, 128, "px", 0],
			[null, 256, 256, "px", 0],
			[null, 512, 512, "px", 0],
			[null, 1024, 1024, "px", 0],
			[null, 2048, 2048, "px", 0],
			[null, 4096, 4096, "px", 0]
		]
	}];

	function a$(F, P, o) {
		ai.call(this, P, "sel_" + F);
		this.e = F;
		var X = i.z("div", "form");
		this.body.appendChild(X);
		this.v8 = new gJ(P, 0, 255, null, 0, !1, !0);
		X.appendChild(this.v8.u);
		this.v8.k(1);
		var Y = i.z("span");
		Y.textContent = o;
		X.appendChild(Y);
		i.Rf(X);
		this.a8m = new aD("Apply at canvas bounds");
		if (F != "border") X.appendChild(this.a8m.u);
		this.cI = new fV("OK", !0, null, !0);
		this.cI.$("click", this.ja, this);
		X.appendChild(this.cI.u)
	}
	a$.prototype = new ai;
	a$.prototype.K9 = function (F, P) {
		if (F == null) return;
		if (F.K == null) alert("No selection!");
		return F.K != null
	};
	a$.prototype.ja = function (F) {
		var P = new l(i.E.QJ, !0);
		P.data = B.hl.abI(this.e, this.v8.q(), this.a8m.q());
		P.qQ = !0;
		this.w(P);
		this.close()
	};
	a$.prototype.t = function () {
		ai.prototype.t.call(this);
		if (this.v8) this.v8.t()
	};
	a$.prototype.Vp = function (F, P) {};

	function gl(F, P, o, X) {
		ai.call(this, o, P);
		this.Cr = X;
		this.rX = null;
		this.xr = i.z("div", "form");
		this.body.appendChild(this.xr);
		this.v8 = F == 0 ? new f6(o) : new gJ(o, 0, 500, null, 0, !1, !0);
		this.v8.$(i.E.I, this.ko, this);
		this.xr.appendChild(this.v8.u);
		this.cI = new fV("OK", !0, null, !0);
		this.cI.$("click", this.ja, this);
		this.xr.appendChild(this.cI.u);
		this.$("closebtn", this.Te, this)
	}
	gl.prototype = new ai;
	gl.prototype.go = function () {
		return !0
	};
	gl.prototype.ko = function (F) {
		var P = this.v8.q();
		if (this.Cr) this.IE(P)
	};
	gl.prototype.Te = function (F) {
		if (this.Cr) this.IE("cancel")
	};
	gl.prototype.ja = function (F) {
		if (this.Cr) this.IE("confirm");
		else this.IE(this.v8.q());
		this.close()
	};
	gl.prototype.IE = function (F) {
		if (this.rX.j4) this.rX.j4(F);
		else if (this.rX.VN) {
			var P = this.rX.VN,
				o = new l(P.f, !0);
			o.Q = P.Q;
			o.data = P.o;
			o.data.C = F;
			o.qQ = !0;
			this.w(o)
		}
	};
	gl.prototype.t = function () {
		ai.prototype.t.call(this);
		if (this.v8) this.v8.t()
	};
	gl.prototype.Vp = function (F, P) {
		this.rX = P;
		this.v8.k(P.Ub);
		this.v8.co();
		this.ko(null)
	};

	function gn() {
		ai.call(this, [1, 5], "open_from_url");
		this.q3 = null;
		var F = i.z("div", "form");
		this.body.appendChild(F);
		this.iU = new f6("URL", null, 22);
		F.appendChild(this.iU.u);
		this.iU.$(i.E.I, this.ja, this);
		i.Rf(F);
		this.cM = new aw([21, 0], [
			[21, 2],
			[21, 1]
		]);
		F.appendChild(this.cM.u);
		this.OB = new fV("OK", !0, null, !0);
		this.OB.$("click", this.ja, this);
		F.appendChild(this.OB.u)
	}
	gn.prototype = new ai;
	gn.prototype.t = function () {
		ai.prototype.t.call(this);
		this.cM.t()
	};
	gn.prototype.Vp = function (F, P, o) {
		this.iU.co();
		this.q3 = null;
		if (F && o.indexOf(F) != -1) this.q3 = o.indexOf(F)
	};
	gn.prototype.ja = function (F) {
		var P = new l(i.E.L, !0),
			o = this.iU.q();
		P.data = {
			e: i.B.JX,
			S9: {
				url: o,
				pY: !0,
				q3: this.cM.q() == 1 ? this.q3 : null
			}
		};
		this.w(P);
		this.close()
	};

	function ci() {
		ai.call(this, [12, 79], "preferences");
		this.yH = null;
		var F = i.z("div", "form");
		this.body.appendChild(F);
		this.zF = [new aD([8, 2]), new aD([8, 4]), new gq([12, 80, 3], [
			[12, 93, 3],
			[12, 80, 4]
		]), new bc([12, 80, 5], 1, 100, null, 2), new gq(null, H.t$.bs), new gq([12, 80, 6], H.t$.bs)];
		for (var w = 0; w < this.zF.length; w++) {
			var P = this.zF[w];
			F.appendChild(P.u);
			if (w != 3) i.Rf(F);
			P.$(i.E.I, this.Ca, this)
		}
	}
	ci.prototype = new ai;
	ci.prototype.t = function () {
		ai.prototype.t.call(this);
		for (var w = 0; w < this.zF.length; w++) this.zF[w].t()
	};
	ci.prototype.Vp = function (F, P, o) {};
	ci.prototype.AK = function (F, P) {
		this.yH = F;
		this.zF[0].k(F.Np.ei);
		this.zF[1].k(F.Np.aG);
		this.zF[2].k(F.Np.QI);
		this.zF[3].k(F.Np.vZ);
		this.zF[4].k(F.Np.pO);
		this.zF[5].k(F.Np.Md)
	};
	ci.prototype.Ca = function (F) {
		var aW = this.zF,
			P = JSON.parse(JSON.stringify(this.yH.Np));
		P.ei = aW[0].q();
		P.aG = aW[1].q();
		P.QI = aW[2].q();
		P.vZ = aW[3].q();
		P.pO = aW[4].q();
		P.Md = aW[5].q();
		if (P.pO != 4) P.vZ = Math.round(P.vZ);
		var o = new l(i.E.L, !0);
		o.data = {
			e: i.B.Sl,
			S9: ge.HI,
			uB: P
		};
		this.w(o)
	};

	function eV() {
		ai.call(this, [11, 8], "saveforweb");
		this.a3T = "";
		this.$("closebtn", function () {
			this.iq.JD()
		}, this);
		this.YE = new aH(512, 512);
		this.EA = null;
		this.m0 = null;
		this.ak_ = null;
		this.yH = null;
		i.KL(this.body, "flexrow");
		var F = i.z("div"),
			P = i.z("div");
		this.body.appendChild(F);
		this.body.appendChild(P);
		this.yr = i.z("div", "imgcont");
		F.appendChild(this.yr);
		this.iq = new hM;
		this.iq.l9(this.YE.x, this.YE.y);
		this.mV = i.z("span");
		F.appendChild(this.mV);
		this.xr = i.z("div", "form cell");
		this.xr.setAttribute("style", "width:15em; padding-left:1em;");
		P.appendChild(this.xr);
		this.Pt = new gq([12, 50], em.Nq());
		this.xr.appendChild(this.Pt.u);
		this.Pt.$(i.E.I, this.nF, this);
		this.bq = new aj(!1, !0);
		this.bq.$(i.E.I, this.nF, this);
		this.xr.appendChild(this.bq.u);
		this.ar = new gd;
		this.ar.$(i.E.I, this.nF, this);
		this.xr.appendChild(this.ar.u);
		this.w3 = new fV([1, 2], !0, null, !0);
		this.w3.$("click", this.ja, this);
		this.xr.appendChild(this.w3.u)
	}
	eV.prototype = new ai;
	eV.prototype.K9 = function (F, P) {
		return F != null
	};
	eV.prototype.t = function () {
		ai.prototype.t.call(this);
		this.bq.t();
		this.Pt.t();
		this.ar.t();
		this.w3.t()
	};
	eV.prototype.ja = function (F) {
		var P = this.EA.name.split(".")[0],
			o = em.Nq()[this.Pt.q()],
			X = this.m0,
			Y = P + "." + o.toLowerCase(),
			y = this.EA,
			z = y.P0;
		if (z.length != 0 && (o == "JPG" || o == "PNG" || o == "GIF") && this.ar.q().pop()) {
			var s = "<!DOCTYPE html>\n<html>\n<style>div {position:absolute;}</style>\n<head></head>\n<body>\n",
				t = [],
				d = {},
				U = new ev(0, 0, y.Z, y.h),
				v = y.lD();
			for (var w = 0; w < z.length; w++) t.push(B.e9.rF(z, w));
			t.reverse();
			var A = H.rect._T([0, 0, y.Z, y.h], t);
			for (var w = 0; w < A.length; w++) {
				var Z = A[w],
					D = new ev(Z[0], Z[1], Z[2] - Z[0], Z[3] - Z[1]),
					q = Z.length == 5 ? z[Z[4]].v : null,
					R = H.R(D.M() * 4);
				H.BP(v, U, R, D);
				var J = "img/img" + (w + 1) + "." + o.toLowerCase();
				d[J] = new Uint8Array(em.$I(o).bb([
					[R.buffer, 0]
				], D.Z, D.h, this.ar.q()));
				s += "<div style=\"background-image:url('" + J + "'); left:" + D.x + "px; top:" + D.y + "px; width:" + D.Z + "px; height:" + D.h + "px\">";
				if (q && q.url.v != "") s += "\n\t<a href=\"" + q.url.v + "\" target=\"" + q.null.v + "\" style=\"display:block;width:100%;height:100%;\"></a>\n";
				s += "</div>\n"
			}
			s += "</body>\n</html>\n";
			var W = H.R(Math.round(s.length * 1.5)),
				p = r.vr(s, W, 0);
			d["index.html"] = W.slice(0, p);
			X = UZIP.encode(d);
			Y = P + ".zip"
		}
		var n = new l(i.E.L, !0);
		n.data = {
			e: i.B.QL,
			data: X,
			name: Y
		};
		this.w(n);
		this.iq.JD();
		this.close()
	};
	eV.prototype.Vp = function (F, P) {
		if (P.On != null) this.Pt.k(P.On);
		this.EA = F;
		var o = F.Z + "," + F.h;
		if (o != this.a3T) {
			this.a3T = o;
			this.bq.k(new aH(F.Z, F.h))
		}
		this.ar.a2p();
		this.nF(null, !0)
	};
	eV.prototype.eL = function (F, P) {
		return new aH(Math.max(0, Math.min(150, (F - 770) / 2)), Math.max(0, Math.min(150, (P - 590) / 2)))
	};
	eV.prototype.l9 = function (F, P) {
		this.YY = F;
		this.mi = P;
		this.YE.x = Math.min(512, F - 26 - 214);
		this.YE.y = Math.min(512, P - 45);
		if (this.EA == null) return;
		var o = this.bq.q(),
			F = o.x,
			P = o.y,
			X = em.Nq()[this.Pt.q()],
			Y = em.$I(X),
			v = "<span style=\"width:",
			A = "display:inline-block; text-align:right;\">";
		if (Y.Vi) {
			var y = F,
				z = P,
				s;
			if (X == "PDF" || Y.mw) {
				y = this.YE.x;
				z = this.YE.y
			} else {
				y = Math.min(F + 20, this.YE.x);
				z = Math.min(P + 20, this.YE.y)
			}
			this.yr.firstChild.setAttribute("style", "display:block; width:" + y + "px; height:" + z + "px;")
		} else {
			if (Y.mw) {
				y = this.YE.x;
				z = this.YE.y
			} else {
				var t = this.ak_,
					d = t[0].ym,
					y = d.Z,
					z = d.h;
				this.iq.l9(Math.max(50, Math.min(y / i.J(), this.YE.x)), Math.max(50, Math.min(z / i.J(), this.YE.y)))
			}
		}
		var U = this.m0.byteLength,
			Z = X + ":" + v + 64 + "px;" + A + eV.WY(U) + "</span>";
		if (this.YE.x > 200) Z += v + 90 + "px; opacity:" + .5 + ";" + A + U.toLocaleString() + " B</span>";
		this.mV.innerHTML = Z
	};
	eV.WY = function (F) {
		var P = 0;
		while (F >>> P + 10 != 0) P += 10;
		var o = (F / (1 << P)).toFixed(1),
			X = ["B", "KB", "MB", "GB"][Math.floor(P / 10)];
		return o + " " + X
	};
	eV.prototype.AK = function (F, P) {
		this.yH = F
	};
	eV.prototype.nF = function (F, P) {
		var o = this.bq.q(),
			X = o.x,
			Y = o.y,
			y = this.Pt.q(),
			z = em.Nq()[y],
			s = em.aN(this.EA)[0].length,
			t = ["GIF", "PNG", "WEBP"].indexOf(z) != -1 && s > 1,
			A = "";
		if (t && P && (s > 4 && X * Y > 1024 * 1024 || X * Y * s > 800 * 800 * 50)) {
			var d = 1;
			while (Math.max(X >>> d, Y >>> d) > 800) d++;
			var U = window.confirm("Your animation is large (" + X + " x " + Y + " px). Press \"OK\" to scale it to " + (100 >>> d) + "%. Press \"Cancel\" to keep the size.");
			if (U) {
				this.bq.k(new aH(X >>> d, Y >>> d));
				X = X >>> d;
				Y = Y >>> d
			}
		}
		this.ar.vJ(z, t, this.EA.P0.length != 0);
		var v = this.ar.q();
		this.m0 = em.eX(this.EA, z, X, Y, v, this.yH);
		if (this.m0 == null) {
			this.EA = null;
			return
		}
		i.TD(this.yr);
		this.iq.JD();
		var Z = em.$I(z);
		if (Z.mw) {
			this.yr.innerHTML = "<div></div>";
			A += "width:0px"
		} else if (Z.Vi) {
			var D = X,
				q = Y,
				R;
			if (z == "PDF") {
				R = URL.createObjectURL(new Blob([this.m0], {
					type: "application/pdf"
				}))
			} else {
				R = URL.createObjectURL(new Blob([this.m0], {
					type: "image/svg+xml"
				}))
			}
			this.yr.innerHTML = "<iframe src=\"" + R + "\"></iframe>"
		} else {
			var J = this.ak_ = Z.xo(this.m0),
				W = J[0].ym,
				D = W.Z,
				q = W.h;
			this.iq.k(J, J.length > 1 ? v[v.length - 2] : 0);
			this.yr.appendChild(this.iq.u);
			A = "background: rgba(0,0,0,0);"
		}
		this.yr.setAttribute("style", "display:block; background-size:" + 16 / i.J() + "px;" + A);
		this.l9(this.YY, this.mi)
	};

	function dx() {
		ai.call(this, [11, 13], "shortcuts");
		var F = this.H8 = i.z("div", "scrollable");
		F.setAttribute("style", "min-width:700px; max-height:500px; padding:1.5em");
		this.body.appendChild(F);
		this.tH()
	}
	dx.prototype = new ai;
	dx.prototype.t = function () {
		ai.prototype.t.call(this);
		this.tH()
	};
	dx.prototype.tH = function () {
		var F = "<div style=\"line-height:1.4em; column-count:3; column-gap:3em; column-rule-width:1px;\" class=\"\">",
			P = "",
			o = G,
			X = o.Bl,
			Y = o.cm,
			y = o.ze;
		P += "<h2 style=\"margin-top:0;\">Main Menu</h2>";
		P += F;
		P += this.E6([
			[0, 0], "---", [1, 0],
			[X, o.PW],
			[1, 2],
			[X, o.Z7],
			[1, 3],
			[Y, X, o.Z7],
			[1, 8],
			[y, Y, X, o.Z7],
			[0, 1], "---", [2, 0],
			[Y, X, o.HW],
			[2, 1],
			[X, o.HW],
			[5, 0],
			[X, o.ej],
			[5, 1],
			[X, o.qS],
			[5, 2],
			[X, o.fv],
			[2, 2], "Delete", [2, 3],
			[y, o.Yp],
			[10, 16],
			[y, X, o.G],
			[12, 79],
			[X, o.zo],
			[3], "---", [4, 1],
			[X, o.Ov],
			[4, 2],
			[X, o.eO],
			[4, 5],
			[X, o.B6],
			[4, 11],
			[X, o.vu],
			[0, 3], "---", [6, 0],
			[X, o.RH],
			[6, 6, 0],
			[y, X, o.da],
			[6, 9],
			[X, o.da],
			[6, 10],
			[X, o.E],
			[0, 5], "---", [7, 0],
			[X, o.B],
			[7, 1],
			[X, o.fY],
			[7, 2],
			[Y, X, o.vu],
			[0, 7], "---", [8, 0],
			[X, o.Kh],
			[8, 1],
			[X, o.lY],
			[8, 3],
			[X, o.YP],
			[8, 2],
			[X, o.JS],
			[8, 4],
			[X, o.e7],
			[11, 13], "?"
		]);
		P += "</div>";
		P += "<h2 style=\"margin-top:1.5em;\">Navigation</h2>";
		P += F;
		P += this.E6(["Vertical scroll", "Wheel", "Horizontal scroll", [X, "Wheel"], "Zooming", [y, "Wheel"]]);
		P += "</div>";
		P += "<h2 style=\"margin-top:1.5em;\">Quick tools (press to enable, release to disable)</h2>";
		P += F;
		P += this.E6([
			[10, 11],
			[X],
			[10, 7], "Space", [10, 17],
			[X, o.fd]
		]);
		P += "</div>";
		P += "<h2 style=\"margin-top:1.5em;\">Tools</h2>";
		P += F;
		var z = dx.lt,
			s = [];
		for (var w = 0; w < z.length; w += 3)
			if (z[w + 1]) s.push(z[w], z[w + 1]);
		s = s.concat([
			[24, 16], "---", [22, 7, 1], "D", [22, 7, 0], "X", "Decrease Brush Size", "[", "Increase Brush Size", "]", "Decrease Hardness", "{", "Increase Hardness", "}"
		]);
		P += this.E6(s);
		P += "</div>";
		this.H8.innerHTML = P
	};
	dx.prototype.E6 = function (F) {
		var P = "",
			o = !0;
		for (var w = 0; w < F.length; w += 2) {
			var X = F[w],
				Y = G.u0(F[w + 1]);
			if (Y == null) {
				o = !1;
				continue
			}
			var y = i.KY(h9.get(X));
			if (Y == "---") {
				if (!o) P += "<br/>";
				P += "<div style=\"font-weight:bold; border-bottom: 1px solid;\">" + y + "</div>"
			} else P += "<div>" + y + " <span style=\"float:right; font-weight:bold;\">" + Y + "</span> </div>";
			o = !1
		}
		return P
	};
	dx.lt = [
		[10, 11], "V", 0, [10, 15], "M", 1, [10, 4], "M", 2, [10, 9], "L", 5, [10, 14], "L", 6, [10, 10], "L", 7, [10, 44], "W", 3, [10, 37], "W", 8, [10, 12], "W", 9, [10, 2], "C", 10, [10, 39], "C", 11, [10, 40], "C", 12, [10, 41], "C", 13, [10, 5], "I", 14, [10, 36], "I", 16, [10, 24], "J", 18, [10, 25], "J", 19, [10, 26], "J", 20, [10, 43], "J", 22, [10, 0], "B", 23, [10, 38], "B", 24, [10, 42], "B", 25, [10, 1], "S", 27, [10, 3], "E", 31, [10, 45], "E", 32, [10, 6], "G", 34, [10, 13], "G", 35, [10, 18], null, 36, [10, 19], null, 37, [10, 20], null, 38, [10, 21], "O", 39, [10, 22], "O", 40, [10, 23], "O", 41, [10, 8], "T", 47, [10, 29], "P", 42, [10, 30], "P", 43, [10, 27], "A", 51, [10, 28], "A", 52, [10, 32], "U", 54, [10, 33], "U", 55, [10, 35], "U", 57, [10, 34], "U", 56, [10, 31], "U", 58, [10, 7], "H", 59, [10, 17], "Z", 61
	];

	function ha() {
		ai.call(this, [8, 11, 1], "soptions");
		this.j$ = null;
		var F = i.z("div", "form");
		F.style.width = "20em";
		this.body.appendChild(F);
		this.Wg = {
			Nm: [12, 48],
			url: "URL",
			null: [12, 71]
		};
		this.zF = {};
		for (var P in this.Wg) {
			var o = new f6(this.Wg[P], null, 15);
			this.zF[P] = o;
			F.appendChild(o.u)
		}
		var X = new fV("OK", !0, null, !0);
		X.$("click", this.ja, this);
		F.appendChild(X.u)
	}
	ha.prototype = new ai;
	ha.prototype.Vp = function (F, P, o) {
		var X = P.C;
		this.j$ = JSON.stringify(X);
		for (var Y in this.Wg) {
			if (X[Y]) this.zF[Y].k(X[Y].v)
		}
	};
	ha.prototype.ja = function (F) {
		var P = JSON.parse(this.j$);
		for (var o in this.Wg) {
			var X = this.zF[o].q();
			P[o] = {
				t: "TEXT",
				v: X
			}
		}
		var Y = new l(i.E.H, !0);
		Y.Q = B.Xy;
		Y.data = P;
		Y.qQ = !0;
		this.w(Y);
		this.close()
	};

	function hm() {
		ai.call(this, [2, 3], "fill");
		this.yH = null;
		this.nc = null;
		var F = i.z("div", "form padded");
		F.style.width = "22em";
		this.body.appendChild(F);
		this.wN = "FrgC BckC Clr Blck Gry Wht contentAware".split(" ");
		this.QC = new gq([2, 3], [
			[12, 45],
			[12, 46],
			[12, 47],
			[13, 1, 10],
			[13, 1, 7],
			[13, 1, 8],
			[6, 48, 0, 3]
		]);
		this.QC.$(i.E.I, this.a7S, this);
		F.appendChild(this.QC.u);
		this.yr = i.z("span");
		F.appendChild(this.yr);
		this.z1 = new eH;
		this.z1.parent = this;
		this.z1.s$(0);
		this.v6 = new gq([12, 19, 0], aK.Zn, !1, aK.wp);
		F.appendChild(this.v6.u);
		this.ok = new bc([12, 0], 0, 100, "%", 0, !1);
		this.ok.k(100);
		F.appendChild(this.ok.u);
		this.OB = new fV("OK", !0, null, !0);
		this.OB.$("click", this.ja, this);
		this.body.appendChild(this.OB.u)
	}
	hm.prototype = new ai;
	hm.prototype.K9 = function (F, P) {
		return F != null
	};
	hm.prototype.go = function () {
		return !0
	};
	hm.prototype.a7S = function () {
		var F = this.QC.q() == 2,
			P = this.z1.u,
			o = this.yr;
		if (F) o.appendChild(P);
		else if (o.contains(P)) o.removeChild(P)
	};
	hm.prototype.t = function () {
		ai.prototype.t.call(this);
		this.QC.t();
		this.v6.t();
		this.ok.t()
	};
	hm.prototype.ja = function (F) {
		if (!this.nc.FD()) return;
		var P = new l(i.E.QJ, !0),
			o = this.QC.q();
		P.data = B.gn.XL(this.wN[o], aK.YA[this.v6.q()], this.ok.q() / 100, this.z1.q());
		this.close();
		this.w(P)
	};
	hm.prototype.Vp = function (F, P) {
		this.nc = F
	};
	hm.prototype.AK = function (F, P) {
		this.yH = F
	};

	function ca() {
		ai.call(this, [14, 9], "stroke");
		this.yH = null;
		this.xr = i.z("div", "form");
		this.xr.setAttribute("style", "width:24em");
		this.body.appendChild(this.xr);
		this.Ri = new e8("FrFX", !0);
		this.Ri.parent = this;
		var F = ["Sz", "Styl", "Md", "Opct"].concat(ce.QB);
		for (var w = 0; w < F.length; w++) {
			var P = this.Ri.tV[F[w]].u;
			this.xr.appendChild(P)
		}
		this.adM = !1;
		this.OB = new fV("OK", !0, null, !0);
		this.OB.$("click", this.ja, this);
		this.body.appendChild(this.OB.u)
	}
	ca.prototype = new ai;
	ca.prototype.K9 = function (F, P) {
		return F != null
	};
	ca.prototype.go = function () {
		return !0
	};
	ca.prototype.t = function () {
		ai.prototype.t.call(this);
		this.Ri.t()
	};
	ca.prototype.ja = function (F) {
		var P = new l(i.E.H, !0);
		P.Q = B.um;
		P.data = {
			e: "stroke",
			a3I: this.Ri.q()
		};
		this.close();
		this.w(P)
	};
	ca.prototype.Vp = function (F, P) {
		if (!this.adM) {
			var o = ce.IW[ce.order.indexOf("FrFX")];
			o = JSON.parse(o);
			this.Ri.update(F, o);
			this.adM = !0
		}
		var o = this.Ri.q(),
			X = this.yH.GY;
		o.Clr.v = H.j.$H({
			U: X >> 16 & 255,
			S: X >> 8 & 255,
			i: X & 255
		});
		this.Ri.update(F, o)
	};
	ca.prototype.AK = function (F, P) {
		this.yH = F
	};

	function hU() {
		ai.call(this, [11, 9], "textwarp");
		this.zF = new eN;
		this.zF.$(i.E.I, this.d5, this);
		this.zF.parent = this;
		this.xr = i.z("div", "form");
		this.xr.setAttribute("style", "width:20em");
		this.body.appendChild(this.xr);
		this.xr.appendChild(this.zF.tX.u);
		this.xr.appendChild(this.zF.GF.u);
		this.xr.appendChild(this.zF.pw.u);
		this.xr.appendChild(this.zF.yA.u);
		this.xr.appendChild(this.zF.$A.u);
		this.OB = new fV("OK", !0, null, !0);
		this.OB.$("click", this.ja, this);
		this.xr.appendChild(this.OB.u);
		this.$("closebtn", this.Te, this)
	}
	hU.prototype = new ai;
	hU.prototype.go = function () {
		return !0
	};
	hU.prototype.t = function () {
		ai.prototype.t.call(this);
		this.zF.t()
	};
	hU.prototype.d5 = function (F) {
		var P = this.zF.q();
		this.IE({
			e: "warp",
			mD: P
		})
	};
	hU.prototype.IE = function (F) {
		var P = new l(i.E.H, !0);
		P.Q = B.OX;
		P.data = F;
		P.qQ = !0;
		this.w(P)
	};
	hU.prototype.Te = function (F) {
		this.IE({
			e: "warpCancel"
		})
	};
	hU.prototype.ja = function (F) {
		this.IE({
			e: "warpConfirm"
		});
		this.close()
	};
	hU.prototype.Vp = function (F, P) {
		var o = F.r[F.p[0]];
		this.zF.k(o.add.TySh.VU)
	};

	function gG() {
		ai.call(this, "Raw Photopea", "rawpea");
		this.mJ = null;
		this.tb = null;
		this.iz = null;
		this.a9W = 0;
		this.h_ = null;
		this.gF = null;
		this.aiQ = 500;
		this.aes = 500;
		this.$("closebtn", this.bJ, this);
		i.KL(this.body, "flexrow");
		var F = i.z("div"),
			P = i.z("div"),
			X = "<svg  class=\"autoscale gsicon\" viewBox=\"0 0 14 18\" width=\"14\" height=\"18\" fill=\"black\"><path d=\"M14,6 L10,6 L10,0 L4,0 L4,6 L0,6 L7,13 L14,6 L14,6 Z M0,14 L0,16 L14,16 L14,14 Z\" /></svg>";
		P.setAttribute("style", "padding-left: 1em");
		this.body.appendChild(F);
		this.body.appendChild(P);
		this.w7 = i.z("canvas");
		F.appendChild(this.w7);
		this.x5 = new cq(225);
		this.x5.DJ(4);
		P.appendChild(this.x5.u);
		this.xr = i.z("div");
		this.xr.setAttribute("style", "width:18em;");
		P.appendChild(this.xr);
		this.a0O = new dC("Hi", !0);
		this.xr.appendChild(this.a0O.u);
		this.pE = [new be("Temperature", 2e3, 13e3), new be("Tint", -150, 150), new be([4, 3], -4, 4, null, !0), new be([12, 3, 0], -100, 100)];
		for (var w = 0; w < this.pE.length; w++) {
			var o = this.pE[w];
			o.k(0);
			o.$(i.E.I, this.qK, this);
			this.xr.appendChild(o.u);
			if (w == 1) this.xr.appendChild(i.z("hr"))
		}
		this.OB = new fV([1, 0], !0, null, !0);
		this.OB.$("click", this.ja, this);
		this.xr.appendChild(this.OB.u);
		this.yl = new fV(X + " JPG", !0, null, !0);
		this.yl.$("click", this.alL, this);
		this.xr.appendChild(this.yl.u);
		this.yl.u.style.marginTop = "6px"
	}
	gG.prototype = new ai;
	gG.prototype.eL = function () {
		return new aH(0, 0)
	};
	gG.prototype.l9 = function (F, P) {
		this.aiQ = F - 274;
		this.aes = P - 32;
		if (this.mJ) this.mp()
	};
	gG.prototype.t = function () {
		ai.prototype.t.call(this);
		this.OB.t();
		for (var w = 0; w < this.pE.length; w++) this.pE[w].t()
	};
	gG.prototype.alL = function (F) {
		var P = this.mJ,
			o = this.tb,
			X = H.R(P.width * P.height * 4);
		H.XB(X, 4294967295);
		H.raw.Ly(o, X, P, this.bg());
		var Y = em.$I("JPG").bb([
				[X.buffer]
			], o.kN, o.xh, [85]),
			y = new l(i.E.L, !0);
		y.data = {
			e: i.B.QL,
			data: Y,
			name: "photo.jpg"
		};
		this.w(y)
	};
	gG.prototype.ja = function (F) {
		var P = this.mJ,
			o = this.tb,
			X = H.R(P.width * P.height * 4);
		H.XB(X, 4294967295);
		H.raw.Ly(o, X, P, this.bg());
		var Y = f0.J2(P),
			P = {
				ym: new ev(0, 0, o.kN, o.xh),
				data: X.buffer,
				ZT: Y
			},
			y = cz.Y$("Raw Photo", [P]),
			z = new l(i.E.L, !0);
		z.data = {
			e: i.B.qD,
			EA: y
		};
		this.w(z);
		this.bJ();
		this.close()
	};
	gG.prototype.bJ = function () {
		this.mJ = null;
		this.tb = null;
		this.h_ = null;
		this.gF = null
	};
	gG.prototype.Vp = function (F, P, o, X) {
		this.mJ = P.jX;
		this.tb = H.raw.acA(this.mJ);
		var Y = this.tb;
		this.a0O.k(Y.kN + " x " + Y.xh + ", " + (Y.kN * Y.xh / 1e6).toFixed(1) + " MPx");
		var y = H.raw.a96(P.jX);
		this.iz = cf.j7(y);
		this.pE[0].k(this.iz.Ur);
		this.pE[1].k(this.iz.Ro);
		for (var w = 2; w < this.pE.length; w++) this.pE[w].k(0);
		this.mp()
	};
	gG.prototype.AK = function (F, P) {
		this.x5.s$(hw.lB[F.hb]["--text-color"])
	};
	gG.prototype.mp = function () {
		var F = this.tb,
			P = F.kN,
			o = F.xh,
			X = 1;
		while (P / X > this.aiQ * i.J() || o / X > this.aes * i.J()) X++;
		var Y = Math.floor(P / X),
			y = Math.floor(o / X);
		this.h_ = {
			Ww: new Float32Array(Y * y * 3),
			kN: Y,
			xh: y
		};
		var z = this.w7.getContext("2d");
		this.gF = z.createImageData(Y, y);
		H.XB(this.gF.data, 4294967295);
		var s = 1 / (X * X);
		for (var t = 0; t < y; t++)
			for (var d = 0; d < Y; d++) {
				var U = 0,
					v = 0,
					A = 0,
					Z = (d + 1) * X,
					D = (t + 1) * X;
				for (var q = t * X; q < D; q++)
					for (var R = d * X; R < Z; R++) {
						var J = (q * P + R) * 3;
						U += this.tb.Ww[J];
						v += this.tb.Ww[J + 1];
						A += this.tb.Ww[J + 2]
					}
				var W = (t * Y + d) * 3;
				this.h_.Ww[W] = U * s;
				this.h_.Ww[W + 1] = v * s;
				this.h_.Ww[W + 2] = A * s
			}
		this.qK()
	};
	gG.prototype.qK = function () {
		var F = this.mJ,
			P = this.h_.kN,
			o = this.h_.xh,
			X = P * o,
			Y = this.w7,
			y = Y.getContext("2d");
		Y.width = P;
		Y.height = o;
		i.Hc(Y, P, o);
		H.raw.Ly(this.h_, new Uint8Array(this.gF.data.buffer), F, this.bg());
		y.putImageData(this.gF, 0, 0);
		var z = H.NC(this.gF.data);
		for (var w = 0; w < 4; w++)
			for (var s = 1; s < 256; s++)
				if (z[w][s] == 0) z[w][s] = z[w][s - 1];
		for (var w = 0; w < 4; w++)
			for (var s = 1; s < 256; s++)
				if (z[w][s] == 0) z[w][s] = z[w][s - 1];
		this.x5.k(z)
	};
	gG.prototype.bg = function () {
		var F = [];
		for (var w = 0; w < this.pE.length; w++) F.push(this.pE[w].q());
		return F
	};

	function aF() {
		ai.call(this, [11, 11], "vbitmap");
		this.rX = null;
		this.ne = null;
		this.o$ = null;
		this.bI = null;
		this.cz = null;
		this.Z0 = this.U5.bind(this);
		this.xr = i.z("div", "form hbar");
		this.body.appendChild(this.xr);
		this.Oq = new bc([12, 82], 2, 50, null);
		this.Oq.$(i.E.I, this.U5, this);
		this.xr.appendChild(this.Oq.u);
		this.Of = "";
		this.c2 = new aD([12, 81]);
		this.c2.$(i.E.I, this.U5, this);
		this.xr.appendChild(this.c2.u);
		this.Ws = new aD("Segmentize");
		this.Ws.$(i.E.I, this.U5, this);
		this.xr.appendChild(this.Ws.u);
		this.OB = new fV("OK", !1, null, !0);
		this.OB.$("click", this.ja, this);
		this.xr.appendChild(this.OB.u);
		var F = i.z("div", "flexrow"),
			P = 16;
		this.body.appendChild(F);
		this.J9 = new hM;
		this.J9.$("viewchange", this.gE, this);
		this.ob = i.z("canvas");
		this.ob.setAttribute("style", "margin-left: 1px; cursor:grab;");
		this.YV = this.ob.getContext("2d");
		var o = H.R(16 * 16 * 4);
		H.RK(o, P, P, 8, 0, 0);
		this.xU = H.scale._$(o, P, P);
		this.J9.fk(this.ob);
		F.appendChild(this.J9.u);
		F.appendChild(this.ob)
	}
	aF.prototype = new ai;
	aF.prototype.eL = function () {
		return new aH(0, 0)
	};
	aF.prototype.go = function () {
		return !0
	};
	aF.prototype.l9 = function (F, P) {
		P = P - 26 - 30;
		F = Math.floor((F - 28) / 2);
		i.Tv(this.ob, F, P);
		this.J9.l9(F, P)
	};
	aF.prototype.gU = function (F, P, o, X) {
		this.J9.gU(X)
	};
	aF.prototype.t = function () {
		ai.prototype.t.call(this);
		this.Oq.t();
		this.c2.t();
		this.Ws.t();
		this.OB.t()
	};
	aF.prototype.Vp = function (F, P) {
		this.cz = F;
		var o = F.r[F.p[0]],
			X = H.Hr.DK(o.buffer.buffer, o.rect.Z, o.rect.h).adf,
			Y = X / ((o.rect.Z - 2) * (o.rect.h - 2));
		this.c2.k(Y < .75);
		this.Ws.k(Y < .75);
		var y = o.rect.clone();
		y.x = y.y = 0;
		this.rX = {
			ym: y,
			data: o.buffer.buffer.slice(0)
		};
		this.ne = null;
		this.J9.k([this.rX]);
		this.Oq.k(20);
		setTimeout(this.Z0, 20)
	};
	aF.prototype.U5 = function () {
		var F = !0,
			P = Date.now(),
			o = this.rX,
			X = this.c2.q(),
			Y = this.Ws.q(),
			y = X || Y,
			z = X + "," + Y;
		if (y && (this.ne == null || this.Of != z)) {
			this.Of = z;
			console.log("recomputing");
			var s = new Uint8Array(o.data.slice(0)),
				t = 15,
				d = 35,
				U = o.ym.Z,
				v = o.ym.h;
			if (X) {
				bv.$z(s, s, U, v, t, H.Ai.Nz, [d], 2)
			}
			if (F) {
				console.log("denoise", Date.now() - P);
				P = Date.now()
			}
			if (Y) {
				var A = H.Hr.xH(s, U, v),
					Z = A.zo,
					D = new Uint8Array(Z * 4);
				for (var w = 0; w < Z; w++) {
					var q = w * 4,
						R = w * 6,
						J = 1 / A.OR[R + 5];
					D[q] = A.OR[R] * J;
					D[q + 1] = A.OR[R + 1] * J;
					D[q + 2] = A.OR[R + 2] * J
				}
				for (var w = 0; w < s.length; w += 4) {
					var W = A.zM[w >>> 2] * 4;
					s[w] = D[W];
					s[w + 1] = D[W + 1];
					s[w + 2] = D[W + 2]
				}
			}
			this.ne = {
				ym: o.ym.clone(),
				data: s.buffer
			};
			if (F) {
				console.log("segm", Date.now() - P);
				P = Date.now()
			}
		}
		if (y) o = this.ne;
		var s = new Uint8Array(o.data),
			U = o.ym.Z,
			v = o.ym.h;
		for (var w = 0; w < s.length; w += 4) {
			if (s[w + 3] < 10) s[w] = s[w + 1] = s[w + 2] = s[w + 3] = 0
		}
		var p = H.Hr.a9H(s, U, v, this.Oq.q(), y ? .1 : 2e-4);
		if (F) {
			console.log("doclipart", Date.now() - P);
			P = Date.now()
		}
		var n = p.zM.slice(0);
		for (var w = 0; w < n.length; w++) n[w]++;
		var b = new Uint8Array((U + 2) * (v + 2));
		H.Lj(n, new ev(1, 1, U, v), b, new ev(0, 0, U + 2, v + 2));
		var Q = Math.round((U + 2) * (v + 2) / 1e4),
			_ = hY.ih(b, U + 2, v + 2, Math.min(12, Q)),
			L = hY.Cj(_),
			m = new cu(1, 0, 0, 1, -1, -1);
		for (var w = 0; w < L.length; w++) H.D.O(L[w].path.d, m, L[w].path.d);
		this.bI = L;
		this.o$ = p;
		if (F) {
			console.log("trace", Date.now() - P);
			P = Date.now()
		}
		for (var w = 0; w < L.length; w++) {
			var I = L[w];
			for (var c = w + 1; c < L.length; c++) {
				var u = L[c];
				if (p.a2[u.color - 1].est.q[3] > .05 || u.parent != w) continue;
				var a = u.path.W.slice(1);
				a.reverse();
				a = ["M"].concat(a);
				var N = [],
					_ = u.path.d.length;
				for (var V = 0; V < _; V += 2) {
					N[V] = u.path.d[_ - 2 - V];
					N[V + 1] = u.path.d[_ - 2 - V + 1]
				}
				H.D.concat(I.path, {
					d: N,
					W: a
				})
			}
		}
		for (var w = 0; w < L.length; w++) {
			var I = L[w],
				M = p.a2[I.color - 1].est.q;
			if (M[3] <= .05) {
				L.splice(w, 1);
				w--;
				continue
			}
		}
		for (var w = 1; w < L.length; w++) {
			var O = L[w - 1],
				I = L[w];
			if (O.color == I.color) {
				H.D.concat(O.path, I.path);
				L.splice(w, 1);
				w--;
				continue
			}
		}
		this.gE()
	};
	aF.prototype.gE = function (F) {
		if (this.bI == null) return;
		var P = this.rX.ym.Z,
			o = this.rX.ym.h,
			X = this.bI,
			Y = this.o$.a2,
			y = this.YV,
			z = this.J9.kC();
		y.setTransform(1, 0, 0, 1, 0, 0);
		y.clearRect(0, 0, y.canvas.width, y.canvas.height);
		y.translate(y.canvas.width / 2, y.canvas.height / 2);
		y.scale(z.F, z.F);
		y.translate(z.c.x / z.F - P / 2, z.c.y / z.F - o / 2);
		y.scale(1 / z.F, 1 / z.F);
		y.fillStyle = this.xU;
		y.fillRect(0, 0, P * z.F, o * z.F);
		y.scale(z.F, z.F);
		var s = [];
		for (var w = 0; w < Y.length; w++) {
			var t = Y[w].est.q;
			s.push({
				U: Math.round(255 * t[0]),
				S: Math.round(255 * t[1]),
				i: Math.round(255 * t[2]),
				m: Math.round(255 * t[3])
			})
		}
		for (var w = 0; w < X.length; w++) {
			var d = X[w],
				t = s[d.color - 1];
			if (t.m == 0) continue;
			y.fillStyle = "rgba(" + t.U + "," + t.S + "," + t.i + "," + t.m / 255 + ")";
			y.beginPath();
			Typr.U.pathToContext({
				crds: d.path.d,
				cmds: d.path.W
			}, y);
			y.fill()
		}
	};
	aF.prototype.ja = function (F) {
		var P = this.bI,
			o = P.length == 1,
			X = this.cz,
			Y = X.p[0],
			y = X.r[Y],
			z = X.r.slice(0, Y);
		if (!o) z.push(X.Px());
		for (var w = 0; w < P.length; w++) {
			var s = P[w],
				t = this.o$.a2[s.color - 1].est.q;
			H.D.O(s.path.d, new cu(1, 0, 0, 1, y.rect.x, y.rect.y), s.path.d);
			var d = X.an();
			d.uf("Path " + w);
			z.push(d);
			d.opacity = Math.round(t[3] * 255);
			d.ix |= 16;
			d.add.SoCo = {
				classID: "null",
				Clr: {
					t: "Objc",
					v: H.j.$H({
						U: 255 * t[0],
						S: 255 * t[1],
						i: 255 * t[2]
					})
				}
			};
			d.add.vmsk = new h.iO;
			d.add.vstk = JSON.parse(JSON.stringify(ce.bW.default));
			d.add.vmsk.b = H.D.sb(s.path, !1);
			d.add.vogk = [];
			d.h7();
			d._V(X)
		}
		var U = z[z.length - 1];
		if (!o) {
			var d = X.an();
			d.uf(y.getName());
			d.add.lsct = gr.lw;
			d.sW = "pass";
			d.ix = 24;
			z.push(d);
			U = d
		}
		var v = y.add.lmfx;
		if (v) U.add.lmfx = JSON.parse(JSON.stringify(v));
		for (var w = Y + 1; w < X.r.length; w++) z.push(X.r[w]);
		var A = new l(i.E.H, !0);
		A.qQ = !0;
		A.Q = B.xC;
		A.data = {
			e: h.Pj,
			L_: z,
			Od: [Y + P.length + (o ? -1 : 1)],
			tP: [11, 11]
		};
		this.w(A);
		this.close()
	};

	function eh(F) {
		ai.call(this, [
			[7, 11], "Magic Cut"
		][F], ["redge", "magiccut"][F]);
		this.y9 = F;
		this.rX = {};
		this.A4 = null;
		this.s0 = null;
		this.cz = null;
		this.pW = null;
		this.HG = null;
		this.wl = [];
		this.nS = -1;
		this.xr = i.z("div", "form hbar");
		this.body.appendChild(this.xr);
		this.S8 = new fz;
		this.S8.parent = this;
		this.S8.$(i.E.I, this.b9, this);
		this.xr.appendChild(this.S8.u);
		var P = F == 0 ? ["#ffffff", "#888888", "#000000"] : ["#00dd00", "#888888", "#ff0000"],
			o = F == 0 ? [
				[12, 45], "Unknown", [12, 46]
			] : [
				[12, 45], "Erase", [12, 46]
			];
		this.lz = new aB(null, P, o, 28);
		this.xr.appendChild(this.lz.u);
		this.TJ = new gJ([7, 9], 0, 50, null);
		this.TJ.parent = this;
		this.TJ.$(i.E.I, [this.yh, this.U5][F], this);
		this.xr.appendChild(this.TJ.u);
		var X = this.a8G = new fV([2, 2], !1, null, !0);
		X.$("click", this.bJ, this);
		this.xr.appendChild(X.u);
		var Y = this.afG = new fV([12, 90], !1, null, !0);
		Y.$("click", function (s) {
			alert(F == 0 ? h9.get([15, 7, 1]) : "Mark the object with Green, background with Red.", 5e3)
		}, this);
		this.xr.appendChild(Y.u);
		var y = i.z("span", "form");
		this.xr.appendChild(y);
		y.setAttribute("style", "position:absolute;  right:0px");
		this.ew = new aB([12, 46], ["checker", "white", "black"]);
		this.ew.$(i.E.I, this.w0, this);
		y.appendChild(this.ew.u);
		this.Wn = new gq(null, [
			[6, 13],
			[6, 2],
			[17, 2]
		]);
		y.appendChild(this.Wn.u);
		this.OB = new fV("OK", !1, null, !0);
		this.OB.$("click", this.ja, this);
		y.appendChild(this.OB.u);
		var z = i.z("div", "flexrow");
		this.body.appendChild(z);
		this.Ox = new hM(!0);
		this.Xv = new hM;
		this.Ox.Dx(this.Xv);
		this.Xv.Dx(this.Ox);
		this.Ox.$("mousedown", this.Qf, this);
		this.Ox.$("mousemove", this.Ap, this);
		this.Ox.$("mouseup", this.sj, this);
		this.Ox.$("zoom", this.b9, this);
		this.Xv.$("zoom", this.b9, this);
		z.appendChild(this.Ox.u);
		z.appendChild(this.Xv.u)
	}
	eh.prototype = new ai;
	eh.prototype.K9 = function (F, P) {
		var o = F != null && !F.r[F.p[0]].rect.qr();
		if (!o) alert("The layer is empty.");
		return o
	};
	eh.prototype.eL = function () {
		return new aH(0, 0)
	};
	eh.prototype.go = function () {
		return !0
	};
	eh.prototype.l9 = function (F, P) {
		P = P - 26 - 33;
		F = Math.floor((F - 28) / 2);
		this.Ox.l9(F, P);
		this.Xv.l9(F, P)
	};
	eh.prototype.t = function () {
		ai.prototype.t.call(this);
		this.S8.t();
		this.TJ.t();
		this.OB.t();
		this.ew.t();
		this.Wn.t();
		this.a8G.t();
		this.afG.t()
	};
	eh.prototype.AK = function (F, P) {
		this.s0 = F;
		if (P == ge.Sm || P == ge.oc) {
			this.S8._F(F.aF);
			this.S8.k(ct.Jl(), F.aF.Xu, F.aF.A6)
		}
	};
	eh.prototype.gU = function (F, P, o, X) {
		this.pW = X;
		var Y = B.gn.gp(this.S8.q(), X);
		if (Y != null) {
			this.S8.k(Y);
			this.b9()
		} else if (X.s(G.Bl) && X.s(G.HW)) {
			var y = this.wl,
				z = 0;
			if (X.s(G.cm)) {
				if (this.nS + 1 < y.length) z = 1
			} else if (this.nS > 0) z = -1;
			if (z != 0) {
				this.nS += z;
				var s = this.nS,
					t = this.rX;
				if (z == 1) H.BP(y[s][2], y[s][0], t.i5, t.rect);
				else H.BP(y[s + 1][1], y[s + 1][0], t.i5, t.rect);
				t.NZ = t.rect;
				this.U5()
			}
		} else this.Ox.gU(X)
	};
	eh.prototype.M3 = function (F) {
		var P = this.rX,
			o = this.wl,
			X = H.R(F.M() * 4);
		H.BP(P.a$, P.rect, X, F);
		P.a$ = null;
		var Y = H.R(F.M() * 4);
		H.BP(P.i5, P.rect, Y, F);
		this.nS++;
		o[this.nS] = [F.clone(), X, Y];
		while (o.length > this.nS + 1) o.pop();
		while (o.length > 50) {
			o = o.slice(1);
			this.nS--
		}
	};
	eh.prototype.b9 = function () {
		var F = this.s0,
			P = am.b_(this.S8.q(), F.aF.Xu, this.Ox.kC().F);
		this.Ox._e(P)
	};
	eh.prototype.Qf = function (F) {
		var P = this.s0,
			o = this.rX,
			X = this.pW,
			Y = this.S8.q(),
			y = this.Ox.fJ(),
			z = [16777215, 8421504, 0][this.lz.q()];
		this.A4 = new am(Y, P.aF.list[0].Xu, P.aF.list[0].A6, {
			Jf: 1,
			mc: !0
		}, z, P.Ty, o.rect);
		o.a$ = o.i5.slice(0);
		if (X != null && X.s(G.cm) && this.HG) {
			this.A4.moveTo(this.HG.x, this.HG.y);
			this.A4.lineTo(y.x, y.y)
		} else this.A4.moveTo(y.x, y.y);
		this.fq()
	};
	eh.prototype.Ap = function (F) {
		var P = this.rX,
			o = this.Ox.fJ();
		this.A4.lineTo(o.x, o.y);
		this.fq()
	};
	eh.prototype.sj = function (F) {
		this.HG = this.Ox.fJ();
		this.M3(this.A4.J0());
		this.U5()
	};
	eh.prototype.fq = function () {
		var F = this.rX,
			P = this.A4,
			o = P.Oo();
		if (o.qr()) return;
		F.NZ = o;
		H.N.DO("norm", P.qq(), P.o7(), F.i5, F.rect, o, 1);
		this.L7()
	};
	eh.prototype.bJ = function (F) {
		var P = this.rX;
		P.a$ = P.i5.slice(0);
		P.NZ = P.rect;
		H.XB(P.i5, [4278190080, 4292730333][this.y9]);
		this.M3(P.rect);
		this.U5()
	};
	eh.prototype.Vp = function (F, P) {
		this.cz = F;
		var o = F.r[F.p[0]],
			X = o.rect.clone(),
			Y = X.Z,
			y = X.h;
		this.TJ.k(this.y9 == 0 ? 3 : Y * y < 3e6 ? 3 : 0);
		this.lz.k(F.K == null ? 0 : 1);
		this.TJ.U3();
		if (this.y9 == 0 && F.K != null || this.y9 == 1) this.TJ.R8();
		var z = this.y9,
			s = H.R(X.M()),
			t = new Float32Array(X.M());
		if (z == 0 && F.K) {
			H.Lj(F.K.channel, F.K.rect, s, X);
			var d = H.R(X.M());
			for (var U = 0; U < y; U++)
				for (var v = 0; v < Y; v++) {
					var w = U * Y + v,
						A = s[w];
					if (v > 0 && s[w - 1] != A || v < Y - 1 && s[w + 1] != A || U > 0 && s[w - Y] != A || U < y - 1 && s[w + Y] != A) d[w] = 255
				}
			H.style.QT(d, t, Y, y)
		} else t.fill(1e9);
		X.x = X.y = 0;
		this.rX = {
			rect: X,
			Ww: o.buffer,
			la: s,
			bX: t,
			Db: H.R(X.M() * 4),
			Ks: H.R(X.M() * 4),
			i5: H.R(X.M() * 4),
			a$: null,
			kw: null,
			NZ: X,
			aeB: {}
		};
		if (z == 0) this.yh();
		else {
			this.rX.aeB = B.J4.t2(F);
			var Z = this.rX.i5;
			H.XB(Z, 4287137928);
			var D = H.bT.getSelection(o.buffer, Y, y),
				q = Math.round(Y / 60),
				R = Math.round(.7 * y);
			for (var U = 0; U < y; U++)
				for (var v = 0; v < Y; v++) {
					var J = (U * Y + v) * 4,
						W = D[J >>> 2];
					W = W > 128 ? 255 : 128;
					if (U < q || U < R && (v < q || v > Y - 1 - q)) W = 0;
					Z[J] = Z[J + 1] = Z[J + 2] = W
				}
			this.U5()
		}
		this.wl = [1];
		this.nS = 0;
		this.Ox.aeS();
		var p = this.S8.q();
		p.Brsh.v.Dmtr.v.val = Math.round(X.Z / (z == 0 ? 10 : 20));
		this.S8.k(p);
		this.b9()
	};
	eh.prototype.yh = function () {
		var F = this.rX,
			P = F.rect.M(),
			o = this.TJ.q(),
			X = F.la.slice(0);
		for (var w = 0; w < P; w++)
			if (F.bX[w] < o) X[w] = 128;
		H.XB(F.i5, 4294967295);
		H.Oy(X, F.i5, 0);
		H.Oy(X, F.i5, 1);
		H.Oy(X, F.i5, 2);
		F.NZ = F.rect;
		this.U5()
	};
	eh.prototype.U5 = function () {
		var F = this.rX,
			Y, y = 0,
			z = 0,
			s = 0;
		this.L7();
		var P = F.rect,
			o = H.R(P.M()),
			X = F.Ww;
		H.E4(F.i5, o, 0);
		for (var w = 0; w < o.length; w++) {
			var t = o[w];
			if (t == 0) y++;
			else if (t == 255) z++;
			else s++
		}
		if (y * z * s != 0) {
			if (this.y9 == 0) Y = H.q5.q5(P, X, o);
			else {
				var d = Date.now(),
					U = this.rX.aeB;
				H.Hk(o, U.px);
				B.J4.DM(U, !0);
				var v = Math.ceil(this.TJ.q() / 2);
				if (v == 0) {
					Y = X.slice(0);
					H.Oy(U.K, Y, 3)
				} else {
					var A = U.K.slice(0),
						Z = U.K.slice(0),
						D = P.Z,
						q = P.h;
					for (var R = 0; R < v; R++) {
						for (var J = 1; J < q - 1; J++)
							for (var W = 1; W < D - 1; W++) {
								var w = J * P.Z + W,
									p = A[w];
								if (A[w - D] != p || A[w - 1] != p || A[w + 1] != p || A[w + D] != p) Z[w] = 128;
								else Z[w] = p
							}
						var n = A;
						A = Z;
						Z = n
					}
					Y = H.q5.q5(P, X, A, 20, !1)
				}
			}
		} else {
			Y = X.slice(0);
			H.Oy(o, Y, 3)
		}
		if (P.Qn(F.rect)) F.kw = Y;
		else H.BP(Y, P, F.kw, F.rect);
		this.w0()
	};
	eh.prototype.L7 = function (F) {
		var P = this.rX,
			o = P.NZ;
		H.BP(P.Ww, P.rect, P.Db, P.rect, o, !0);
		var X = P.i5;
		if (this.y9 == 1) {
			var Y = new Uint32Array(256);
			Y[0] = 4278190335;
			Y[255] = 4278255360;
			var y = P.rect.M();
			X = X.slice(0);
			var z = new Uint32Array(X.buffer);
			for (var w = 0; w < y; w += 2) {
				z[w] = Y[z[w] & 255];
				z[w + 1] = Y[z[w + 1] & 255]
			}
		}
		H.N.DO("norm", X, P.rect, P.Db, P.rect, o, .3);
		this.Ox.k([{
			ym: P.rect,
			data: P.Db.buffer
		}])
	};
	eh.prototype.w0 = function (F) {
		var P = this.rX;
		H.XB(P.Ks, [0, 4294967295, 4278190080][this.ew.q()]);
		H.N.DO("norm", P.kw, P.rect, P.Ks, P.rect, P.rect, 1);
		this.Xv.k([{
			ym: P.rect,
			data: P.Ks.buffer
		}])
	};
	eh.prototype.ja = function (F) {
		var P = this.cz,
			o = this.rX,
			X = this.Wn.q(),
			Y = P.r[P.p[0]],
			y = new l(i.E.H, !0);
		y.qQ = !0;
		var z = Y.rect.clone();
		if (X == 0 && Y.UQ() || X != 0 && !Y.UQ()) {
			y.Q = B.xC;
			y.data = {
				e: h.K7,
				n: P.p[0]
			};
			this.w(y)
		}
		if (P.K != null) {
			y.Q = B.j1;
			y.data = {
				e: "fromAction",
				WR: B.hl.cA()
			};
			this.w(y)
		}
		if (X == 0) {
			var s = P.r.slice(0),
				t = P.an();
			t.uf(Y.getName());
			s.splice(P.p[0] + 1, 0, t);
			t.rect = z;
			t.buffer = o.kw;
			t.A();
			y.Q = B.xC;
			y.data = {
				e: h.Pj,
				L_: s,
				Od: [P.p[0] + 1],
				tP: [7, 11]
			};
			this.w(y)
		}
		if (X == 1) {
			var d = Y.jk();
			y.Q = B.xC;
			y.data = {
				e: h.cN,
				aaF: !0
			};
			this.w(y);
			var U = Y.jk();
			U.channel = H.R(z.M());
			U.rect = z;
			U.color = 0;
			U.G2 = !0;
			H.E4(o.kw, U.channel, 3);
			if (d) {
				var v = U.$T(d);
				U.rect = v.rect;
				U.channel = v.channel;
				U.color = v.color
			}
			U.HZ();
			Y._V()
		}
		if (X == 2) {
			var A = {
				rect: z,
				channel: H.R(z.M())
			};
			H.E4(o.kw, A.channel, 3);
			y.Q = B.j1;
			y.data = {
				e: "setsel",
				K: A,
				tP: this.CA
			};
			this.w(y)
		}
		this.close()
	};

	function fh() {
		ai.call(this, [1, 13], "locstor");
		this.yH = null;
		this.BR = [];
		var F = this.body,
			P = i.z("p");
		P.textContent = "These files are loaded every time you start Photopea.";
		F.appendChild(P);
		this.aeQ = 0;
		this.$U = i.z("span");
		F.appendChild(this.$U);
		this.$U.setAttribute("style", "display:inline-block;  width:12em;  font-weight:bold;");
		var o = i.z("span", "form");
		F.appendChild(o);
		this.Gd = new fV([5, 4], !1, null, !0);
		this.Gd.$("click", this.akm, this);
		o.appendChild(this.Gd.u);
		this.alS = new fV("Get all as ZIP", !1, null, !0);
		this.alS.$("click", this.B5, this);
		o.appendChild(this.alS.u);
		this.UO = new fo(!0);
		this.UO.parent = this;
		this.UO.DJ(1);
		this.UO.$(i.E.I, this.a3m, this);
		F.appendChild(this.UO.u);
		this.UO.u.setAttribute("style", "width: 40em; height: 25em")
	}
	fh.prototype = new ai;
	fh.prototype.t = function () {
		ai.prototype.t.call(this);
		this.$U.textContent = h9.get([13, 2]) + ": " + eV.WY(this.aeQ);
		this.Gd.t()
	};
	fh.prototype.AK = function (F, P) {
		this.yH = F;
		if (P == ge.gq) this.Vp()
	};
	fh.prototype.Vp = function (F, P) {
		var o = this.yH.Er.qU,
			t = 0;
		this.BR = [];
		for (var X in o) this.BR.push(X);
		this.BR.sort(function (U, v) {
			U = U.split(".");
			v = v.split(".");
			return U[1] == v[1] ? U[0] < v[0] ? -1 : 1 : U[1] < v[1] ? -1 : 1
		});
		var Y = Math.floor(100 * i.J()),
			y = Math.floor(16 * i.J()),
			z = [],
			s = [];
		for (var w = 0; w < this.BR.length; w++) {
			var X = this.BR[w],
				d = fh.m2(X, o[X], Y, y);
			z.push(d);
			s.push(X);
			t += o[X].byteLength
		}
		this.UO.Lf(z, s, Y, y);
		this.aeQ = t;
		this.t()
	};
	fh.prototype.a3m = function (F) {
		this.UO.tj(this.UO.q())
	};
	fh.prototype.akm = function (F) {
		var w = this.UO.q();
		if (w == -1) {
			alert("Select a file first.");
			return
		}
		this.UO.k(-1);
		var P = this.yH.Er.qU;
		delete P[this.BR[w]];
		var o = new l(i.E.L, !0);
		o.data = {
			e: i.B.Sl,
			S9: ge.gq
		};
		this.w(o)
	};
	fh.prototype.B5 = function (F) {
		var P = this.yH.Er.qU,
			o = {};
		for (var X in P) o[X] = new Uint8Array(P[X]);
		var Y = UZIP.encode(o);
		cz.save(Y, "resources.zip")
	};
	fh.m2 = function (F, P, o, X) {
		var Y = i.z("canvas"),
			s = 0;
		Y.width = o;
		Y.height = X;
		var y = Y.getContext("2d"),
			z = F.split(".").pop().toLowerCase();
		for (var w = 0; w < z.length; w++) s += z.charCodeAt(w) * 613 << 8 * w;
		y.fillStyle = "#" + H.v2(s & 16777215);
		y.fillRect(0, 0, 20, X);
		var t = Math.floor(14 * i.J());
		y.fillStyle = "#000000";
		y.font = "bold " + t + "px sans-serif";
		var d = (X - t) / 2,
			U = eV.WY(P.byteLength),
			v = y.measureText(U);
		y.fillText(U, o - 12 - v.width, X - d);
		return Y.toDataURL()
	};

	function aM(F, P, o) {
		ai.call(this, P, "cwindow");
		this.abO = new aH(o[0], o[1] - 33);
		this.xr = i.z("div", "form");
		this.xr.setAttribute("style", "width:" + (o[2] - o[0]) + "px; height:" + (o[3] - o[1]) + "px");
		this.body.appendChild(this.xr)
	}
	aM.prototype = new ai;
	aM.prototype.eL = function (F, P) {
		return this.abO.clone()
	};

	function c$(F, P, o, X) {
		au.call(this);
		this.name = F;
		this.a1i = o;
		this.tL = X;
		this.JR = i.z("div", "");
		this.JR.setAttribute("draggable", "true");
		this.VI = i.z("div", "pbody");
		this._a = new fV("", !1, "");
		this._a.parent = this;
		this.ac8 = i.z("span", "cross");
		this._J = i.z("span", "label");
		var Y = this.ahA.bind(this);
		this.JR.addEventListener("mousedown", this.a7Z.bind(this), !1);
		this.JR.addEventListener("contextmenu", Y, !1);
		this._a.u.addEventListener("contextmenu", Y, !1);
		this.ac8.addEventListener("mousedown", this.Pb.bind(this), !1);
		this.JR.appendChild(this._J);
		if (P) this.JR.appendChild(this.ac8);
		this.cZ = !1;
		this.yd = new ba([{
			name: [1, 12]
		}]);
		this.yd.$("select", this.Pb, this);
		this._J.textContent = F
	}
	c$.prototype = new au;
	c$.prototype.WN = function () {
		return null
	};
	c$.prototype.S_ = function () {
		return new aH(0, 0)
	};
	c$.prototype.t = function () {
		var F = h9.get(this.name),
			P = this.YY == 0 ? 22 : Math.round(2 + this.YY / 50),
			o = F.length > P;
		this._J.textContent = o ? F.slice(0, P - 2) : F;
		if (o)
			for (var X = 0; X < 2; X++) {
				var Y = i.z("span");
				Y.textContent = F.charAt(P - 2 + X);
				Y.setAttribute("style", "opacity:" + (.6 - X * .4));
				this._J.appendChild(Y)
			}
		var y = F.split(" "),
			z = y.length == 2 ? y[0].substring(0, 2) + y[1][0] : F.substring(0, 4);
		if (z.charCodeAt(0) >= 11776) z = z.substring(0, 2);//changed by warlee; 1=>2 文字截取;
		var s = this.a1i;
		if (s == null) this._a.kW(z, F);
		else {
			if (s.indexOf("\"") == -1) this._a.kW("<img src=\"" + s + "\" alt=\"" + F + "\" height=\"20\" />", F)
		}
	};
	c$.prototype.enable = function () {
		this.VI.setAttribute("class", "pbody")
	};
	c$.prototype.disable = function () {
		this.VI.setAttribute("class", "pbody disabled")
	};
	c$.prototype.AK = function (F, P) {};
	c$.prototype.Vp = function (F, P, o) {};
	c$.prototype.qM = function (F) {};
	c$.prototype.l9 = function (F, P) {};
	c$.prototype.PZ = function (F) {
		this.name = F;
		this.t()
	};
	c$.prototype.q0 = function () {};
	c$.prototype.a7Z = function (F) {
		if (F.button == 0) this.w(new l("select", !1))
	};
	c$.prototype.ahA = function (F) {
		i.OZ(F);
		if (this.tL != null && isNaN(this.tL)) return;
		var P = i.oA(F, document.body),
			o = this.yd;
		o.update(null);
		o.t();
		o.parent = this;
		var X = new l(i.E.L, !0);
		X.data = {
			e: i.B.VX,
			Nc: o,
			x: P.x + 1,
			y: P.y + 1
		};
		this.w(X)
	};
	c$.prototype.Lu = function () {
		this.Pb({})
	};
	c$.prototype.Pb = function (F) {
		if (F.stopPropagation) F.stopPropagation();
		if (this.tL != null && !isNaN(this.tL)) {
			var P = new l(i.E.L, !0);
			P.data = {
				e: i.B.Qp,
				Nc: this.yd
			};
			this.w(P);
			P.data = {
				e: i.B.Sl,
				S9: ge.yE,
				C: parseFloat(this.tL),
				RY: "del"
			};
			this.w(P)
		} else if (this.t3()) this.w(new l(i.E.Ga, !1))
	};
	c$.prototype.t3 = function (F) {
		return !0
	};
	c$.prototype.R$ = function (F, P, o, X, Y) {};
	c$.prototype.$E = function (F, P, o, X, Y) {};
	c$.prototype.NL = function (F, P, o, X, Y) {};
	c$.ir = function (F, P) {
		if (F.childElementCount != 0) return;
		var o = F.textContent;
		this.uO = this.ajT.bind(this);
		this.a9u = this.a2o.bind(this);
		this.T0 = P;
		this.oY = F;
		this.a5h = o;
		var X = i.z("input", "");
		X.setAttribute("type", "text");
		X.setAttribute("size", "10");
		X.setAttribute("value", o);
		i.TD(F);
		F.appendChild(X);
		X.select();
		X.focus();
		F.addEventListener("keyup", this.uO, !1);
		document.body.addEventListener("mousedown", this.a9u, !1)
	};
	c$.ir.prototype.ajT = function (F) {
		var P = G.be,
			o = P(F.code, G.Xr);
		if (P(F.code, G.yc) || o) this.Rz(o)
	};
	c$.ir.prototype.a2o = function (F) {
		var P = F.target;
		if (P.tagName && P.tagName.toLowerCase() == "input") return;
		this.Rz(!0)
	};
	c$.ir.prototype.Rz = function (F) {
		var P = this.oY;
		P.removeEventListener("keyup", this.uO);
		document.body.removeEventListener("mousedown", this.a9u);
		if (F) {
			var o = P.firstChild.value;
			this.T0(o)
		} else {
			i.TD(P);
			P.textContent = this.a5h
		}
	};
	c$.YP = {
		Kb: "0",
		acu: "1",
		xC: "2",
		a89: "3",
		ajc: "4",
		Qm: "5",
		CSS: "6",
		Sm: "7",
		afw: "8",
		a8A: "9",
		a8q: "10",
		a0N: "11",
		aiB: "12",
		Io: "13",
		o8: "14",
		a13: "15",
		aij: "16",
		t4: "17",
		a4u: "19"
	};

	function bO() {
		c$.call(this, [9, 9], !1, null, c$.YP.a0N);
		this.yH = null;
		this.zL = [0, 0];
		this.ZM = i.z("div", "padded scrollable");
		this.ZM.setAttribute("style", "width:260px;  height:260px");
		this.VI.appendChild(this.ZM);
		this.$(i.E.I, this.ko, this);
		this.D0 = i.z("div", "lpfoot");
		this.VI.appendChild(this.D0);
		this.C8 = [];
		var F = "<svg  class=\"gsicon\" viewBox=\"0 0 14 18\" width=\"14\" height=\"18\" fill=\"black\">",
			P = "</svg>",
			o = F + "<path d=\"M14,6 L10,6 L10,0 L4,0 L4,6 L0,6 L7,13 L14,6 L14,6 Z M0,14 L0,16 L14,16 L14,14 Z\" />" + P,
			X = F + "<path d=\"M0,2 L14,9 L0,16 Z\" />" + P;
		this.a02 = F + "<circle cx=\"7\" cy=\"9\" r=\"6\" />" + P;
		this.a53 = F + "<path d=\"M2,4 L12,4 L12,14 L2,14 Z\" />" + P;
		var Y = [this.a02, X, "lrs/folder", "lrs/newlayer", "lrs/bin", o],
			y = [
				[15, 8, 0],
				[5, 8],
				[15, 8, 1],
				[15, 8, 2],
				[5, 4],
				[1, 2]
			];
		for (var w = 0; w < Y.length; w++) {
			var z = Y[w];
			if (1 < w && w != Y.length - 1) z = "<img src=\"" + PIMG[Y[w]] + "\" class=\"gsicon\" />";
			var s = new fV(z, !1, y[w]);
			s.$("click", this.mq, this);
			this.D0.appendChild(s.u);
			this.C8.push(s)
		}
	}
	bO.prototype = new c$("");
	bO.prototype.t = function () {
		c$.prototype.t.call(this);
		for (var w = 0; w < this.C8.length; w++) this.C8[w].t()
	};
	bO.prototype.mq = function (F) {
		var w = this.C8.indexOf(F.currentTarget),
			P = this.zL,
			o = this.yH,
			X = o.Lk;
		if (w == 0) {
			var Y, y = o.BA;
			if (X.length == 0) {
				alert("Create an Action Set first.");
				return
			}
			if (P.length < 2) {
				alert("Select a target action first.");
				return
			}
			if (y == null) {
				Y = this.a53;
				y = this.zL
			} else {
				Y = this.a02;
				y = null
			}
			this.C8[0].kW(Y);
			o.BA = y
		} else if (w == 1) this.aev();
		else if (w == 2 || w == 3) {
			var z = {
				tP: "Action Set " + X.length,
				xX: [],
				exp: !0
			};
			if (w == 2 || X.length == 0) {
				P = [X.length];
				X.push(z)
			}
			if (w == 3) {
				var s = X[P[0]].xX;
				P = [P[0], s.length];
				s.push({
					tP: "Action " + s.length,
					color: 0,
					xX: [],
					Wt: !1,
					shift: !1,
					exp: !0,
					XN: s.length
				})
			}
			this.zL = P;
			this.qK()
		} else if (w == 4) {
			var t;
			if (P.length == 1) t = X;
			else if (P.length == 2) t = X[P[0]].xX;
			else t = X[P[0]].xX[P[1]].xX;
			var d = P.length - 1;
			t.splice(P[d], 1);
			if (t.length == 0) P.pop();
			else
				while (P[d] >= t.length) P[d]--;
			if (P.length == 0) P.push(0);
			this.qK()
		} else if (w == 5) {
			if (X.length == 0) {
				alert("No Actions Present.");
				return
			}
			var U = new l(i.E.L, !0);
			U.data = {
				e: i.B.hR,
				amt: ge.H,
				q_: P[0]
			};
			this.w(U)
		}
	};
	bO.prototype.ko = function (F) {
		var P = this.yH.Lk,
			o = F.data.e,
			X = F.data.Vm;
		if (o == "sel") this.zL = X;
		if (o == "fold") {
			if (X.length == 1) P[X[0]].exp = !P[X[0]].exp;
			else P[X[0]].xX[X[1]].exp = !P[X[0]].xX[X[1]].exp
		}
		if (o == "enab") {
			var Y = P[X[0]].xX[X[1]].xX[X[2]];
			Y.Y = !Y.Y
		}
		if (o == "nchange") {
			if (X.length == 1) P[X[0]].tP = F.data.gA;
			else P[X[0]].xX[X[1]].tP = F.data.gA
		}
		this.qK()
	};
	bO.prototype.AK = function (F, P) {
		this.yH = F;
		if (P == ge.H || P == ge.oc) this.qK()
	};
	bO.prototype.qK = function () {
		if (this.yH == null) return;
		i.TD(this.ZM);
		var F = this.yH.Lk;
		if (F.length == 0) return;
		var P = JSON.stringify(this.zL);
		for (var w = 0; w < F.length; w++) {
			var o = F[w],
				X = new bO.uq([w], P, o.exp, o.tP.split("=").pop());
			X.parent = this;
			this.ZM.appendChild(X.u);
			if (!o.exp) continue;
			for (var Y = 0; Y < o.xX.length; Y++) {
				var y = o.xX[Y],
					X = new bO.uq([w, Y], P, y.exp, y.tP.split("=").pop());
				X.parent = this;
				this.ZM.appendChild(X.u);
				if (!y.exp) continue;
				for (var z = 0; z < y.xX.length; z++) {
					var s = y.xX[z],
						X = new bO.uq([w, Y, z], P, null, h9.get(gY.adU(s)), s.Y);
					X.parent = this;
					this.ZM.appendChild(X.u)
				}
			}
		}
	};
	bO.prototype.aev = function () {
		var F = this.yH.Lk,
			P = this.zL;
		if (F.length == 0) {
			alert("No Actions Present");
			return
		}
		if (P.length == 1) {
			alert("Select an Action first");
			return
		}
		if (this.yH.BA != null) {
			alert("You can not apply actions while recording actions");
			return
		}
		if (P.length == 1) P.push(0);
		var o = F[P[0]],
			X = o.xX[P[1]],
			Y = new l(i.E.L, !0);
		Y.data = {
			e: i.B.rU,
			oI: [X.tP, o.tP]
		};
		this.w(Y)
	};
	bO.uq = function (F, P, o, X, Y) {
		au.call(this);
		this.Vm = F;
		var y = this.Vm.length - 1;
		this.u = i.z("div", "layeritem" + (JSON.stringify(F) == P ? " selected" : ""));
		this.n4 = i.z("div", "head");
		this.u.appendChild(this.n4);
		this.n4.setAttribute("style", "height:24px");
		this.m9 = i.z("div", "headL");
		this.n4.appendChild(this.m9);
		if (y != 0) {
			var z = i.z("div");
			z.style.width = y * 20 + "px";
			this.m9.appendChild(z)
		}
		if (o != null) {
			var s = this.afu = i.z("div", o ? "open" : "closed");
			this.m9.appendChild(s)
		} else {
			var t = this.ai3 = i.z("div", "cmark");
			t.setAttribute("style", "background-size:12px 12px; opacity:" + (Y ? 1 : .3));
			this.m9.appendChild(t)
		}
		if (y == 0) {
			var d = i.z("div", "folder");
			this.m9.appendChild(d)
		}
		var U = this._J = i.z("div", "label");
		U.textContent = X;
		this.m9.appendChild(U);
		this.u.addEventListener("mouseup", this.VG.bind(this), !1)
	};
	bO.uq.prototype = new au;
	bO.uq.prototype.VG = function (F) {
		if (F.detail == 1 && F.target.tagName.toLowerCase() != "input") {
			var P = "sel";
			if (F.target == this.afu) P = "fold";
			if (F.target == this.ai3) P = "enab";
			var o = new l(i.E.I, !0);
			o.data = {
				e: P,
				Vm: this.Vm
			};
			this.w(o)
		} else if (this.Vm.length < 3) var X = new c$.ir(this._J, this.T0.bind(this))
	};
	bO.uq.prototype.T0 = function (F) {
		var P = new l(i.E.I, !0);
		P.data = {
			e: "nchange",
			gA: F,
			Vm: this.Vm
		};
		this.w(P)
	};

	function bY() {
		c$.call(this, [9, 3], !1, null, c$.YP.Sm);
		this.rt = null;
		this.S1 = null;
		this.yH = null
	}
	bY.prototype = new c$("");
	bY.prototype.sr = function () {
		var F = i.z("div", "");
		this.VI.appendChild(F);
		this.EI = i.z("div", "bordered cell");
		this.EI.setAttribute("style", "width:10em; height:28.5em;");
		F.appendChild(this.EI);
		this.zF = [];
		this._v = null;
		this.e8 = [];
		var P = this.a2u.bind(this);
		this.cY = [new bY.PT, new bY.SJ, new bY.zt, new bY.wD];
		for (var w = 0; w < this.cY.length; w++) {
			var o = i.z("div", "listitem"),
				X = this.cY[w].lO,
				Y = null;
			if (w == 0) {
				this._v = new dC(X);
				o.appendChild(this._v.u)
			} else {
				Y = new aD(X, !1);
				Y.$(i.E.I, this.a1J, this);
				o.appendChild(Y.u)
			}
			this.e8.push(Y);
			this.EI.appendChild(o);
			this.zF.push(o);
			o.addEventListener("click", P, !1)
		}
		this.E1 = i.z("div", "cell padded");
		F.appendChild(this.E1);
		for (var w = 0; w < this.cY.length; w++) this.cY[w].$("brushchange", this.a37, this);
		this.setItem(0);
		this.in = i.z("canvas", "");
		this.in.width = Math.floor(380 * i.J());
		this.in.height = Math.floor(80 * i.J());
		i.Hc(this.in, this.in.width, this.in.height);
		F.appendChild(this.in);
		this.YV = this.in.getContext("2d");
		this.U5()
	};
	bY.prototype.q0 = function () {
		if (!i.WW(this.VI)) return;
		if (this.EI) {
			this.U5();
			return
		}
		this.sr();
		this.t();
		this.AK(this.yH, ge.oc)
	};
	bY.prototype.t = function () {
		c$.prototype.t.call(this);
		if (this.EI == null) return;
		this._v.t();
		for (var w = 1; w < this.e8.length; w++) this.e8[w].t();
		for (var w = 0; w < this.cY.length; w++) this.cY[w].t()
	};
	bY.prototype.a37 = function (F) {
		var P = this.cY.indexOf(F.currentTarget),
			o = JSON.parse(JSON.stringify(this.cY[P].S1)),
			X = new l(i.E.L, !0);
		X.data = {
			e: i.B.Sl,
			S9: ge.SO,
			S1: o
		};
		this.w(X)
	};
	bY.prototype.a1J = function (F) {
		this.fg(this.e8.indexOf(F.currentTarget), F.currentTarget.UX())
	};
	bY.prototype.a2u = function (F) {
		var w = this.zF.indexOf(F.currentTarget);
		if (F.target.tagName.toLowerCase() == "input") return;
		if (this.e8[w] && !this.e8[w].UX()) {
			this.e8[w].V2();
			this.fg(w, !0)
		}
		this.setItem(w)
	};
	bY.prototype.fg = function (F, P) {
		this.cY[F].si(P)
	};
	bY.prototype.setItem = function (F) {
		for (var w = 0; w < this.cY.length; w++) this.zF[w].setAttribute("class", "listitem");
		if (this.E1.firstChild) this.E1.removeChild(this.E1.firstChild);
		this.zF[F].setAttribute("class", "listitem selected");
		this.E1.appendChild(this.cY[F].u)
	};
	bY.prototype.AK = function (F, P) {
		this.yH = F;
		if (this.EI == null) return;
		if (P == ge.Sm || P == ge.oc) {
			this.rt = F.aF;
			for (var w = 0; w < this.cY.length; w++) this.cY[w]._F(this.rt)
		}
		if (P == ge.SO || P == ge.oc) {
			this.S1 = F.aF.Y5;
			this.U5()
		}
		if (P == ge.Io) this.U5()
	};
	bY.prototype.U5 = function () {
		if (this.S1) this.enable();
		else {
			this.disable();
			return
		}
		if (!i.WW(this.VI)) return;
		var F = this.yH;
		for (var w = 0; w < this.cY.length; w++) {
			this.cY[w].k(this.S1);
			if (this.e8[w]) this.e8[w].k(this.cY[w].UX())
		}
		var P = JSON.parse(JSON.stringify(this.S1));
		P.Brsh.v.Dmtr.v.val = Math.min(P.Brsh.v.Dmtr.v.val, 50);
		var o = new ev(0, 0, this.in.width, this.in.height),
			X = new am(P, this.rt ? this.rt.Xu : null, this.rt ? this.rt.A6 : null, {
				Jf: 1
			}, F.GY, F.Ty, o),
			Y = 40 * i.J(),
			y = 300 * i.J();
		X.moveTo(Y, Y);
		for (var w = 0; w <= y; w += 10) X.lineTo(Y + w, Y + 20 * Math.sin(2 * Math.PI * w / y));
		X.finish();
		var z = this.YV.createImageData(o.Z, o.h);
		H.BP(X.qq(), X.o7(), z.data, o);
		this.YV.putImageData(z, 0, 0)
	};
	bY.eM = function (F) {
		au.call(this);
		this.lO = F;
		this.u = i.z("div", "");
		this.S1 = null
	};
	bY.eM.prototype = new au;
	bY.eM.prototype._F = function (F) {};
	bY.eM.prototype.k = function (F) {
		this.S1 = JSON.parse(JSON.stringify(F));
		this.u.setAttribute("class", this.UX() ? "" : "disabled");
		this.U5()
	};
	bY.eM.prototype.si = function (F) {};
	bY.eM.prototype.UX = function () {
		return !1
	};
	bY.eM.prototype.t = function () {};
	bY.eM.prototype.U5 = function () {};
	bY.eM.prototype.Gi = function () {
		this.w(new l("brushchange"))
	};
	bY.PT = function () {
		bY.eM.call(this, [15, 0]);
		this.rt = null;
		this.aak = null;
		this.LG = new fo(!0);
		this.u.appendChild(this.LG.u);
		this.LG.$(i.E.I, this.a4k, this);
		this.LG.u.style.height = "10.7em";
		this.yy = new be([12, 14, 0], 1, 1e3, " px", 0, !0);
		this.yy.$(i.E.I, this.abA, this);
		this.MV = new be([12, 15], 0, 359, " \xB0");
		this.MV.$(i.E.I, this.alH, this);
		this.EV = new be([12, 16], 0, 100, " %");
		this.EV.$(i.E.I, this.ald, this);
		this.hQ = new be([12, 17], 0, 100, " %");
		this.hQ.$(i.E.I, this.aef, this);
		this.Qr = new be([12, 18], 1, 300, " %");
		this.Qr.$(i.E.I, this.abT, this);
		this.zF = [this.yy, this.MV, this.EV, this.hQ, this.Qr]
	};
	bY.PT.prototype = new bY.eM;
	bY.PT.prototype.t = function () {
		this.yy.t();
		this.MV.t();
		this.EV.t();
		this.hQ.t();
		this.Qr.t()
	};
	bY.PT.prototype.UX = function () {
		return !0
	};
	bY.PT.prototype._F = function (F) {
		this.rt = F;
		var P = [],
			o = Math.floor(30 * i.J()),
			X = Math.floor(40 * i.J());
		for (var w = 0; w < F.list.length; w++) {
			var Y = F.list[w].v,
				y = am.m2(Y, F.Xu, F.A6, o, X);
			P.push(y)
		}
		this.LG.Lf(P, null, o, X)
	};
	bY.PT.prototype.U5 = function () {
		var F = this.S1.Brsh.v,
			P = F.classID != this.aak;
		this.aak = F.classID;
		if (P)
			for (var w = 0; w < this.zF.length; w++)
				if (this.u.contains(this.zF[w].u)) this.u.removeChild(this.zF[w].u);
		this.yy.k(F.Dmtr.v.val);
		if (P) this.u.appendChild(this.yy.u);
		this.MV.k(F.Angl.v.val);
		if (P) this.u.appendChild(this.MV.u);
		if (F.classID == "computedBrush" || F.classID == "sampledBrush") {
			this.EV.k(F.Rndn.v.val);
			if (P) this.u.appendChild(this.EV.u)
		}
		if (F.classID == "computedBrush") {
			this.hQ.k(F.Hrdn.v.val);
			if (P) this.u.appendChild(this.hQ.u)
		}
		this.Qr.k(F.Spcn.v.val);
		if (P) this.u.appendChild(this.Qr.u)
	};
	bY.PT.prototype.a4k = function (F) {
		this.S1 = this.rt.list[this.LG.q()].v;
		this.Gi()
	};
	bY.PT.prototype.abA = function (F) {
		this.S1.Brsh.v.Dmtr.v.val = F.target.q();
		this.Gi()
	};
	bY.PT.prototype.alH = function (F) {
		this.S1.Brsh.v.Angl.v.val = F.target.q();
		this.Gi()
	};
	bY.PT.prototype.ald = function (F) {
		this.S1.Brsh.v.Rndn.v.val = F.target.q();
		this.Gi()
	};
	bY.PT.prototype.aef = function (F) {
		this.S1.Brsh.v.Hrdn.v.val = F.target.q();
		this.Gi()
	};
	bY.PT.prototype.abT = function (F) {
		this.S1.Brsh.v.Spcn.v.val = F.target.q();
		this.Gi()
	};
	bY.SJ = function () {
		bY.eM.call(this, [15, 1]);
		this.jC = new be([15, 4, 0], 0, 100, " %");
		this.jC.$(i.E.I, this.a6N, this);
		this.u.appendChild(this.jC.u);
		this.BO = new be([15, 4, 1], 0, 100, " %");
		this.BO.$(i.E.I, this.a1C, this);
		this.u.appendChild(this.BO.u);
		this.vK = new be([15, 4, 2], 0, 100, " %");
		this.vK.$(i.E.I, this.a6k, this);
		this.u.appendChild(this.vK.u);
		this.GR = new be([15, 4, 3], 0, 100, " %");
		this.GR.$(i.E.I, this.a4j, this);
		this.u.appendChild(this.GR.u);
		this.Os = new be([15, 4, 4], 0, 100, " %");
		this.Os.$(i.E.I, this.a2i, this);
		this.u.appendChild(this.Os.u)
	};
	bY.SJ.prototype = new bY.eM;
	bY.SJ.prototype.t = function () {
		this.jC.t();
		this.BO.t();
		this.vK.t();
		this.GR.t();
		this.Os.t()
	};
	bY.SJ.prototype.UX = function () {
		return this.S1.useTipDynamics.v
	};
	bY.SJ.prototype.si = function (F) {
		this.S1.useTipDynamics.v = F;
		ct.w_.dN(this.S1);
		this.Gi()
	};
	bY.SJ.prototype.U5 = function () {
		var F = this.S1;
		if (F.useTipDynamics.v == !1) return;
		this.jC.k(F.szVr.v.jitter.v.val);
		this.BO.k(F.minimumDiameter.v.val);
		this.vK.k(F.angleDynamics.v.jitter.v.val);
		this.GR.k(F.roundnessDynamics.v.jitter.v.val);
		this.Os.k(F.minimumRoundness.v.val)
	};
	bY.SJ.prototype.a6N = function (F) {
		this.S1.szVr.v.jitter.v.val = F.target.q();
		this.Gi()
	};
	bY.SJ.prototype.a1C = function (F) {
		this.S1.minimumDiameter.v.val = F.target.q();
		this.Gi()
	};
	bY.SJ.prototype.a6k = function (F) {
		this.S1.angleDynamics.v.jitter.v.val = F.target.q();
		this.Gi()
	};
	bY.SJ.prototype.a4j = function (F) {
		this.S1.roundnessDynamics.v.jitter.v.val = F.target.q();
		this.Gi()
	};
	bY.SJ.prototype.a2i = function (F) {
		this.S1.minimumRoundness.v.val = F.target.q();
		this.Gi()
	};
	bY.zt = function () {
		bY.eM.call(this, [15, 2]);
		this.za = new be([15, 5, 0], 0, 1e3, " %");
		this.za.$(i.E.I, this.aiE, this);
		this.u.appendChild(this.za.u);
		this.BH = new be([15, 5, 1], 1, 20);
		this.BH.$(i.E.I, this.a2P, this);
		this.u.appendChild(this.BH.u);
		this.HK = new be([15, 5, 2], 0, 100, " %");
		this.HK.$(i.E.I, this.a0u, this);
		this.u.appendChild(this.HK.u)
	};
	bY.zt.prototype = new bY.eM;
	bY.zt.prototype.t = function () {
		this.za.t();
		this.BH.t();
		this.HK.t()
	};
	bY.zt.prototype.UX = function () {
		return this.S1.useScatter.v
	};
	bY.zt.prototype.si = function (F) {
		this.S1.useScatter.v = F;
		ct.w_.dN(this.S1);
		this.Gi()
	};
	bY.zt.prototype.U5 = function () {
		var F = this.S1;
		if (F.useScatter.v == !1) return;
		this.za.k(F.scatterDynamics.v.jitter.v.val);
		this.BH.k(F.Cnt.v);
		this.HK.k(F.countDynamics.v.jitter.v.val)
	};
	bY.zt.prototype.aiE = function (F) {
		this.S1.scatterDynamics.v.jitter.v.val = F.target.q();
		this.Gi()
	};
	bY.zt.prototype.a2P = function (F) {
		this.S1.Cnt.v = F.target.q();
		this.Gi()
	};
	bY.zt.prototype.a0u = function (F) {
		this.S1.countDynamics.v.jitter.v.val = F.target.q();
		this.Gi()
	};
	bY.wD = function () {
		bY.eM.call(this, [15, 3]);
		this.LK = new be([15, 6, 0], 0, 100, " %");
		this.LK.$(i.E.I, this.agp, this);
		this.u.appendChild(this.LK.u);
		this._I = new be([15, 6, 1], 0, 100, " %");
		this._I.$(i.E.I, this.ahp, this);
		this.u.appendChild(this._I.u);
		this.SE = new be([15, 6, 2], 0, 100, " %");
		this.SE.$(i.E.I, this.ak3, this);
		this.u.appendChild(this.SE.u);
		this.Yf = new be([15, 6, 3], 0, 100, " %");
		this.Yf.$(i.E.I, this.a8C, this);
		this.u.appendChild(this.Yf.u)
	};
	bY.wD.prototype = new bY.eM;
	bY.wD.prototype.t = function () {
		this.LK.t();
		this._I.t();
		this.SE.t();
		this.Yf.t()
	};
	bY.wD.prototype.UX = function () {
		return this.S1.useColorDynamics.v
	};
	bY.wD.prototype.si = function (F) {
		this.S1.useColorDynamics.v = F;
		ct.w_.dN(this.S1);
		this.Gi()
	};
	bY.wD.prototype.U5 = function () {
		var F = this.S1;
		if (F.useColorDynamics.v == !1) return;
		this.LK.k(F.clVr.v.jitter.v.val);
		this._I.k(F.H.v.val);
		this.SE.k(F.Strt.v.val);
		this.Yf.k(F.Brgh.v.val)
	};
	bY.wD.prototype.agp = function (F) {
		this.S1.clVr.v.jitter.v.val = F.target.q();
		this.Gi()
	};
	bY.wD.prototype.ahp = function (F) {
		this.S1.H.v.val = F.target.q();
		this.Gi()
	};
	bY.wD.prototype.ak3 = function (F) {
		this.S1.Strt.v.val = F.target.q();
		this.Gi()
	};
	bY.wD.prototype.a8C = function (F) {
		this.S1.Brgh.v.val = F.target.q();
		this.Gi()
	};

	function dO() {
		c$.call(this, [9, 0], !1, null, c$.YP.Kb);
		this.VI.setAttribute("style", "min-width:200px;");
		this.TP = i.z("div", "hpbody scrollable");
		this.TP.style.height = "160px";
		this.VI.appendChild(this.TP);
		this.ad$ = -1;
		this.vv = [];
		this.kY = ""
	}
	dO.prototype = new c$("");
	dO.prototype.Vp = function (F) {
		if (F == null) {
			i.TD(this.TP);
			this.kY = "";
			return
		}
		i.TD(this.TP);
		var P = 0;
		for (var w = 0; w < F.history.length; w++)
			if (w <= F.xG && !F.history[w].vb) P = w;
		for (var w = 0; w < F.history.length; w++) {
			var o = F.history[w];
			if (o.vb) continue;
			var X = new a5(o, w, P);
			X.parent = this;
			this.TP.appendChild(X.u);
			this.vv.push(X)
		}
		if (F.xG == F.history.length - 1) this.q0()
	};
	dO.prototype.q0 = function () {
		this.TP.scrollTop = this.TP.scrollHeight
	};
	dO.prototype.t = function () {
		c$.prototype.t.call(this);
		for (var w = 0; w < this.vv.length; w++) this.vv[w].t()
	};

	function a5(F, w, P) {
		au.call(this);
		this.index = w;
		this.u = i.z("div", w == P ? "listitem selected" : "listitem");
		this.q6 = F.name;
		this.t();
		if (w > P) this.u.style.opacity = .4;
		this.u.addEventListener("click", this.R$.bind(this), !1)
	}
	a5.prototype = new au;
	a5.prototype.t = function () {
		this.u.textContent = h9.get(this.q6)
	};
	a5.prototype.R$ = function (F) {
		if (this.index == this.parent.ad$) return;
		this.nQ({
			e: "h_itemchange",
			index: this.index
		})
	};
	a5.prototype.nQ = function (F) {
		var P = new l(i.E.H, !0);
		P.data = F;
		P.Q = B.Kb;
		this.w(P)
	};

	function fX() {
		c$.call(this, [9, 10], !1, null, c$.YP.ajc);
		var F = i.z("div", "padded");
		this.VI.appendChild(F);
		this.x5 = new cq(256);
		F.appendChild(this.x5.u);
		this.a9A = [];
		this.MH = [];
		var P = ["Mean:", "Pixels:"];
		for (var w = 0; w < P.length; w++) {
			var o = new dC(P[w]);
			this.a9A.push(o);
			F.appendChild(o.u);
			var X = new dC("hi");
			this.MH.push(X);
			F.appendChild(X.u);
			i.Rf(F)
		}
		this.nc = null
	}
	fX.prototype = new c$("");
	fX.prototype.Vp = function (F) {
		this.nc = F;
		this.qK()
	};
	fX.prototype.qK = function () {
		var F = this.nc,
			t = 0;
		if (!i.WW(this.VI)) return;
		if (F == null || F.p.length == 0) {
			this.x5.k(H.NC(H.R(4)));
			this.MH[0].k("");
			this.MH[1].k("");
			return
		}
		var P = F.lD(),
			o = new ev(0, 0, F.Z, F.h),
			X = o.M();
		if (F.K) {
			var Y = F.K.rect,
				y = H.R(Y.M() * 4);
			H.BP(P, o, y, Y);
			H.v0(F.K.channel, y);
			P = y;
			o = Y;
			var z = F.K.channel;
			X = 0;
			for (var w = 0; w < z.length; w++) X += z[w];
			X = Math.round(X / 255)
		}
		var s = H.NC(P);
		this.x5.k(s);
		for (var w = 0; w < 256; w++) t += w * (.333 * s[1][w] + .333 * s[2][w] + .333 * s[3][w]);
		this.MH[0].k((t / X).toFixed(1) + "");
		this.MH[1].k(X + "")
	};
	fX.prototype.AK = function (F, P) {
		this.x5.s$(hw.lB[F.hb]["--text-color"])
	};
	fX.prototype.t = function () {
		c$.prototype.t.call(this);
		this.x5.t()
	};
	fX.prototype.q0 = function () {
		this.qK()
	};

	function ar() {
		c$.call(this, [9, 8], !1, null, c$.YP.acu);
		this.ZM = i.z("div", "padded");
		this.VI.appendChild(this.ZM);
		this.G9 = new a4(10);
		this.ZM.appendChild(this.G9.u);
		this.ZM.appendChild(i.z("hr"));
		this.lb = new at;
		this.lb.parent = this;
		this.ZM.appendChild(this.lb.sR);
		this.G9.$(i.E.I, this.dk, this);
		this.lb.$(i.E.I, this.dk, this)
	}
	ar.prototype = new c$("");
	ar.prototype.dk = function (F) {
		var P;
		if (F.target == this.G9) P = this.G9.q();
		else {
			var o = this.lb.q();
			P = Math.round(o.U) << 16 | Math.round(o.S) << 8 | Math.round(o.i)
		}
		var X = new l(i.E.L, !0);
		X.data = {
			e: i.B.Sl,
			S9: ge.Io,
			mQ: 0,
			C: P
		};
		this.w(X)
	};
	ar.prototype.AK = function (F, P) {
		var o = F.GY,
			X = P == ge.oc;
		if (P == ge.Io || X) {
			this.G9.k(o);
			this.lb.k({
				U: o >>> 16 & 255,
				S: o >>> 8 & 255,
				i: o >>> 0 & 255,
				ah: "Color #" + H.v2(o)
			})
		}
		if (P == ge.Mg || X) {
			var Y = F.aa_;
			this.lb._F(Y)
		}
	};

	function f8() {
		c$.call(this, [12, 72], !1, null, c$.YP.aij);
		this.Lq = null;
		this.PJ = null;
		this.TP = i.z("div", "lpbody scrollable");
		this.D0 = i.z("div", "lpfoot");
		this.VI.appendChild(this.TP);
		this.VI.appendChild(this.D0);
		this.Yg = [];
		this.$("click", this.iK, this);
		this.qo = [];
		f8.AM([
			[17, 2], "Save Selection as Channel", [5, 3],
			[5, 4]
		], this.qo, this.D0, this.pM.bind(this), this.Mc.bind(this));
		this.a9r = new ba([{
			name: "Merge Channels",
			sD: !0
		}]);
		this.a9r.$("select", this.zf, this)
	}
	f8.prototype = new c$("");
	f8.prototype.zf = function (F) {
		if (this.PJ == null) return;
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.uH,
			W2: "mergechannels"
		};
		this.w(P)
	};
	f8.prototype.WN = function () {
		return this.a9r
	};
	f8.AM = function (F, P, o, X, Y) {
		for (var w = 0; w < F.length; w++) {
			var y = new fV("W", !1, F[w]);
			P.push(y);
			i.X8(y.u, X);
			o.appendChild(y.u);
			var z = y.u;
			z.addEventListener("drop", Y, !1);
			z.addEventListener("dragover", function (s) {
				s.preventDefault()
			}, !1);
			z.addEventListener("dragenter", i.OZ, !1)
		}
	};
	f8.EQ = function (F, P) {
		for (var w = 0; w < F.length; w++)
			if (F[w].u == P.currentTarget) return w
	};
	f8.prototype.pM = function (F) {
		var P = f8.EQ(this.qo, F);
		if (P == 0) this.w(fB.RI(!0, null, F));
		else {
			P--;
			var o = new l(i.E.QJ, !0),
				X = {
					classID: "null"
				};
			if (P == 0) X.null = {
				t: "obj ",
				v: [{
					t: "prop",
					v: {
						classID: "Chnl",
						keyID: "fsel"
					}
				}]
			};
			else if (P == 1) X.Nw = {
				t: "Objc",
				v: {
					classID: "Chnl",
					ClrI: {
						t: "enum",
						v: {
							MskI: "SlcA"
						}
					},
					Opct: {
						t: "long",
						v: 50
					}
				}
			};
			else X.null = gY.Pe("Chnl", !0);
			o.data = {
				Bm: ["duplicate", "make", "delete"][P],
				w1: X
			};
			this.w(o)
		}
	};
	f8.prototype.Mc = function (F) {
		var P = f8.EQ(this.qo, F);
		if (P == 2) {
			var o = new l(i.E.QJ, !0),
				X = {
					classID: "null"
				};
			X.null = gY.Pe("Chnl", !0);
			o.data = {
				Bm: "duplicate",
				w1: X
			};
			this.w(o)
		} else this.pM(F)
	};
	f8.prototype.zG = function (w) {
		var F = this.Yg,
			P = F[w];
		if (P == null) {
			var o = i.z("canvas");
			P = o.getContext("2d");
			F.push(P)
		}
		return P
	};
	f8.prototype.iK = function (F) {
		var P = this.Lq.slice(0),
			o = F.data.XN,
			X = P[0] + P[1] + P[2],
			Y = this.PJ;
		if (-5 < o && o < 0) {
			var y = -o - 1;
			if (F.data.xB) {
				if (y == 0) P = X == 3 ? [0, 0, 0] : [1, 1, 1];
				else {
					if (P[y - 1] == 0) P[y - 1] = 1;
					else if (!0) P[y - 1] = 0
				}
			} else {
				if (y == 0) P = [1, 1, 1];
				else {
					P = [0, 0, 0];
					P[y - 1] = 1
				}
				Y.oD = []
			}
			var z = new l(i.E.H, !0);
			z.Q = B.Al;
			z.data = {
				e: "setcls",
				qa: P
			};
			this.w(z);
			return
		}
		if (-1 < o) {
			var s = Y.r[o],
				t = s.kB == 1 ? s.jk() : s.yg(Y).g;
			if (F.data.xB) t.gG = !t.gG;
			else {
				for (var w = 0; w < Y.Yq.length; w++) Y.Yq[w].gG = !1;
				Y.oD = []
			}
		} else {
			var d = -o - 5,
				t = Y.Yq[d];
			if (F.data.xB) t.gG = !t.gG;
			else {
				for (var w = 0; w < Y.Yq.length; w++) Y.Yq[w].gG = !1;
				t.gG = !0;
				Y.oD = [d]
			}
		}
		Y.Vg = Y.Ob = !0
	};
	f8.prototype.q0 = function () {
		this.nF()
	};
	f8.prototype.Vp = function (F) {
		this.PJ = F;
		this.nF()
	};
	f8.prototype.nF = function () {
		var F = this.PJ,
			P = this.TP,
			s = 34,
			t = 34,
			Z = 4;
		i.TD(P);
		if (F == null || !i.WW(P)) return;
		var o = F.Z,
			X = F.h,
			Y = new ev(0, 0, o, X),
			y = this.Lq = F.a.qa.slice(0),
			z = y[0] + y[1] + y[2];
		if (o > X) t = Math.round(t * X / o);
		else s = Math.round(s * o / X);
		var d = ["RGB"].concat(b_.Nx);
		for (var w = 0; w < 4; w++) {
			var U = this.zG(w);
			H.ZL.Eo(U, s, t, Y, F.lD(), Y, !1, w == 0 ? null : w - 1);
			var v = w == 0 ? z == 3 : y[w - 1] == 1,
				A = new fB(-1 - w, !0, !0, U, d[w], v, v);
			A.parent = this;
			P.appendChild(A.u)
		}
		for (var w = 0; w < F.p.length; w++) {
			var D = F.r[F.p[w]],
				q = D.kB;
			if (q != 1 && q != 3) continue;
			var R = q == 1 ? D.jk() : D.yg(F).g,
				U = this.zG(Z + w);
			Z++;
			H.ZL.dp(U, s, t, Y, R);
			var A = new fB(F.p[w], !0, !0, U, D.getName() + (q == 1 ? "" : " Filter") + " Mask", !0, R.gG);
			A.parent = this;
			P.appendChild(A.u)
		}
		for (var w = 0; w < F.Yq.length; w++) {
			var R = F.Yq[w],
				U = this.zG(Z + w);
			H.ZL.dp(U, s, t, Y, R);
			var A = new fB(-5 - w, !0, R.name == "Quick Mask", U, R.name, F.oD.indexOf(w) != -1, R.gG, B.xC, {
				e: h.IB,
				mQ: "rnm",
				XN: w
			});
			A.parent = this;
			P.appendChild(A.u)
		}
	};
	f8.prototype.l9 = function (F, P) {
		this.TP.style.height = P - 9 - 25 + "px"
	};
	f8.prototype.t = function () {
		c$.prototype.t.call(this);
		this.nF();
		f8.If(this.qo, ["lrs/makesel", "lrs/mask", "lrs/newlayer", "lrs/bin"])
	};
	f8.If = function (F, P) {
		for (var w = 0; w < F.length; w++) {
			var o = F[w];
			o.kW(i.G6(P[w]))
		}
	};

	function fB(F, P, o, X, Y, y, z, s, t) {
		au.call(this);
		this.u = i.z("div", "layeritem");
		this.a4o = F;
		this.alJ = P;
		this.a5v = o;
		this.ui = X;
		this.aeM = s;
		this.aaz = t;
		this.n4 = i.z("div", y ? "head selected" : "head");
		this.n4.setAttribute("style", "height: " + 40 + "px");
		var d = i.z("div", "headL"),
			U = i.z("div", "headR"),
			v = 15;
		this.u.appendChild(this.n4);
		this.n4.appendChild(d);
		this.n4.appendChild(U);
		this.XQ = i.z("div", "eye");
		if (1 < i.J() && i.J() < 1.5) v = v / i.J();
		this.XQ.setAttribute("style", "background-size: " + v + "px " + v + "px;");
		this.XQ.style.opacity = z ? 1 : .2;
		if (P) d.appendChild(this.XQ);
		this.bA = i.z("div", "thumb");
		if (X) this.bA.appendChild(X.canvas);
		d.appendChild(this.bA);
		this.nM = i.z("div", "label");
		if (o) this.nM.style.fontStyle = "italic";
		this.nM.textContent = h9.get(Y);
		d.appendChild(this.nM);
		var A = this.n4;
		A.setAttribute("draggable", "true");
		this.n4.addEventListener("mousedown", this.afk.bind(this), !1);
		this.n4.addEventListener("mouseup", this.alT.bind(this), !1)
	}
	fB.prototype = new au;
	fB.prototype.T0 = function (F) {
		var P = new l(i.E.H, !0);
		P.Q = this.aeM;
		P.data = this.aaz;
		P.data.name = F;
		this.w(P)
	};
	fB.prototype.afk = function (F) {
		var P = F.ctrlKey || F.metaKey,
			o = this.a4o;
		if (P && F.target == this.ui.canvas) {
			this.w(fB.RI(this.alJ, o, F))
		} else {
			var X = new l("click", !0);
			X.data = {
				XN: o,
				xB: F.target == this.XQ,
				d_: P
			};
			this.w(X)
		}
	};
	fB.prototype.alT = function (F) {
		if (!this.a5v && F.detail == 2 && F.target == this.nM) {
			var P = new c$.ir(this.nM, this.T0.bind(this))
		}
	};
	fB.RI = function (F, P, o) {
		var X = 0;
		if (o.shiftKey) X++;
		if (o.altKey) X += 2;
		var Y = new l(i.E.H, !0);
		Y.Q = B.j1;
		if (F) Y.data = {
			e: "fromchannel",
			oI: [P, 0, X]
		};
		else Y.data = {
			e: "frompath",
			oI: [P, 0, X]
		};
		return Y
	};

	function dl() {
		c$.call(this, [8, 9], !1, null, c$.YP.t4);
		this.Lq = null;
		this.PJ = null;
		this.TP = i.z("div", "lpbody scrollable");
		this.D0 = i.z("div", "lpfoot");
		this.VI.appendChild(this.TP);
		this.VI.appendChild(this.D0);
		this.VI.addEventListener("click", this.al1.bind(this), !1);
		this.Yg = [];
		this.$("click", this.iK, this);
		this.qo = [];
		f8.AM([
			[17, 2], "Selection to Path", [5, 3],
			[5, 4]
		], this.qo, this.D0, this.pM.bind(this), this.Mc.bind(this))
	}
	dl.prototype = new c$("");
	dl.prototype.pM = function (F) {
		var P = f8.EQ(this.qo, F),
			o;
		if (P == 0) o = fB.RI(!1, null, F);
		else if (P == 1) {
			o = new l(i.E.QJ, !0);
			o.data = {
				Bm: "make",
				w1: {
					classID: "null",
					null: {
						t: "obj ",
						v: [{
							t: "Clss",
							v: {
								classID: "Path"
							}
						}]
					},
					From: {
						t: "obj ",
						v: [{
							t: "prop",
							v: {
								classID: "csel",
								keyID: "fsel"
							}
						}]
					},
					Tlrn: {
						t: "UntF",
						v: {
							type: "#Pxl",
							val: 2
						}
					}
				}
			}
		} else {
			var o = new l(i.E.H, !0);
			o.Q = B.lL;
			o.data = {
				e: "pathedit",
				mQ: ["new", "del"][P - 2]
			}
		}
		this.w(o)
	};
	dl.prototype.Mc = function (F) {
		this.pM(F)
	};
	dl.prototype.zG = function (w) {
		var F = this.Yg,
			P = F[w];
		if (P == null) {
			var o = i.z("canvas");
			P = o.getContext("2d");
			F.push(P)
		}
		return P
	};
	dl.prototype.al1 = function (F) {
		if (F.target == this.TP) {
			var P = this.PJ;
			P.QP = [];
			P.mb = [];
			P.Ob = !0;
			P.Vg = !0
		}
	};
	dl.prototype.iK = function (F) {
		var P = F.data.XN,
			o = this.PJ,
			X = F.data.d_,
			Y = 0,
			y, z;
		if (P < 0) {
			Y = -1 - P;
			y = o.QP;
			z = o.mb
		} else {
			var s = o.Cj()[0];
			for (var w = 0; w < s.length; w++) {
				var t = s[w].XN;
				if (t == P) break;
				if (t >= 0) Y++
			}
			y = o.mb;
			z = o.QP
		}
		if (X) {
			var d = y.indexOf(Y);
			if (d == -1) y.push(Y);
			else y.splice(d, 1)
		} else {
			while (y.length != 0) y.pop();
			while (z.length != 0) z.pop();
			y.push(Y)
		}
		o.Ob = !0;
		o.Vg = !0
	};
	dl.prototype.q0 = function () {
		this.nF()
	};
	dl.prototype.Vp = function (F) {
		this.PJ = F;
		this.nF()
	};
	dl.prototype.nF = function () {
		var F = this.PJ,
			P = this.TP,
			s = 34,
			t = 34;
		i.TD(P);
		if (F == null || !i.WW(P)) return;
		var o = F.Z,
			X = F.h,
			Y = new ev(0, 0, o, X),
			y = this.Lq = F.a.qa.slice(0),
			z = y[0] + y[1] + y[2];
		if (o > X) t = Math.round(t * X / o);
		else s = Math.round(s * o / X);
		var d = F.Cj(),
			U = d[0];
		for (var w = 0; w < U.length; w++) {
			var v = U[w],
				A = this.zG(w);
			H.ZL.a5I(A, s, t, Y, v.add.vmsk);
			var Z = new fB(v.XN, !1, v.XN >= -1, A, v.name, d[1].indexOf(w) != -1, !1, B.lL, {
				e: "pathedit",
				mQ: "rnm",
				XN: v.XN
			});
			Z.parent = this;
			P.appendChild(Z.u)
		}
	};
	dl.prototype.l9 = function (F, P) {
		this.TP.style.height = P - 9 - 25 + "px"
	};
	dl.prototype.t = function () {
		c$.prototype.t.call(this);
		this.nF();
		f8.If(this.qo, ["lrs/makesel", "lrs/makepath", "lrs/newlayer", "lrs/bin"])
	};

	function eu(F) {
		c$.call(this, [9, F ? 4 : 5], !1, null, F ? c$.YP.a8A : c$.YP.a8q);
		this.VI.setAttribute("style", "min-width:240px;");
		this.ak$ = F;
		this.fs = null;
		this.yH = null
	}
	eu.prototype = new c$("");
	eu.prototype.sr = function () {
		this.fs = new eZ;
		var F = this.fs,
			P = this.VI;
		F.parent = this;
		if (this.ak$) {
			var o = i.z("div", "marged");
			P.appendChild(o);
			o.appendChild(F.nE.u);
			P.appendChild(i.z("hr"));
			var X = i.z("div", "marged");
			P.appendChild(X);
			X.appendChild(F.WT.u);
			X.appendChild(F.rj.u);
			var Y = i.z("div", "marged");
			P.appendChild(Y);
			Y.appendChild(F.Z$.u);
			Y.appendChild(F.dw.u);
			P.appendChild(i.z("hr"));
			var y = i.z("div", "marged");
			P.appendChild(y);
			y.appendChild(F.nV.u);
			y.appendChild(F.ql.u);
			var z = i.z("div", "marged");
			P.appendChild(z);
			z.appendChild(F.DX.u);
			z.appendChild(F.Gb.u);
			P.appendChild(i.z("hr"));
			var s = i.z("div", "marged");
			P.appendChild(s);
			s.appendChild(F.fR.u);
			s.appendChild(F.ZH.u);
			s.appendChild(F.J_.u);
			s.appendChild(F.V6.u);
			s.appendChild(F.N$.u);
			s.appendChild(F.Gr.u);
			s.appendChild(F.fL.u);
			s.appendChild(F.u8.u)
		} else {
			var o = i.z("div", "marged");
			P.appendChild(o);
			o.appendChild(F.RV.u);
			o.appendChild(F.Zj.u);
			o.appendChild(F.$S.u);
			o.appendChild(F.aal.u);
			o.appendChild(F.a2L.u);
			o.appendChild(F.aai.u);
			o.appendChild(F.a7z.u);
			P.appendChild(i.z("hr"));
			var X = i.z("div", "marged");
			P.appendChild(X);
			X.appendChild(F.Pp.u);
			X.appendChild(F.aK.u);
			X.appendChild(F.aO.u);
			P.appendChild(i.z("hr"));
			var Y = i.z("div", "marged");
			P.appendChild(Y);
			Y.appendChild(F.Vx.u);
			Y.appendChild(F.BT.u);
			Y.appendChild(F.gD.u)
		}
	};
	eu.prototype.q0 = function () {
		if (!i.WW(this.VI)) return;
		if (this.fs == null) {
			this.sr();
			var F = this.yH;
			if (F) this.fs.k(F.T2, F.SN, F.P5);
			this.fs.t()
		}
	};
	eu.prototype.t = function () {
		c$.prototype.t.call(this);
		if (this.fs) this.fs.t()
	};
	eu.prototype.AK = function (F, P) {
		this.yH = F;
		if (P != ge.oc && P != ge.Ol && P != ge.Du && P != ge.mj) return;
		if (this.fs) this.fs.k(F.T2, F.SN, F.P5)
	};

	function eC() {
		c$.call(this, "Glyphs", !1, null, c$.YP.a4u);
		this.yH = null;
		this.a40 = null;
		this.ak1 = null;
		this.fZ = null;
		this.a5p = null;
		this.mk = Math.round(290 * i.J());
		this.ER = 8;
		this.am6 = 4;
		this.q9 = new gq(null, ["Hi", "Hello"]);
		this.q9.$(i.E.I, this.LI, this);
		var F = this.fc = new fV("-", null, null, !0);
		F.$("click", this.cK, this);
		var P = this.aj_ = new fV("+", null, null, !0);
		P.$("click", this.cK, this);
		this.UJ = new fo(!1);
		this.UJ.$(i.E.I, this.aab, this);
		this.UJ.u.style.height = 20 + "em";
		var o = i.z("div", "padded");
		o.setAttribute("style", "width:" + (this.mk + 10) / i.J() + "px;");
		this.VI.appendChild(o);
		var top = i.z("div");
		top.setAttribute("style", "margin-bottom:0.5em");
		o.appendChild(top);
		top.appendChild(this.q9.u);
		top.appendChild(F.u);
		top.appendChild(P.u);
		o.appendChild(this.UJ.u)
	}
	eC.prototype = new c$("");
	eC.prototype.aab = function (F) {
		var P = this.UJ.q() * this.ER * this.am6,
			o = Math.floor(this.mk / this.ER) / i.J(),
			X = this.UJ.aau();
		P += Math.floor(X.y / o) * this.ER;
		P += Math.floor(X.x / o);
		var Y = this.fZ[this.q9.q()];
		if (P >= Y.length) return;
		var y = Y[P],
			z = this.a5p[y];
		if (z.G$.length == 0) {
			alert("No known character for this glyph");
			return
		}
		var s = String.fromCodePoint(z.G$[0]),
			t = new l(i.E.H, !0);
		t.Q = B.OX;
		t.data = {
			e: "insertText",
			C: s
		};
		this.w(t)
	};
	eC.prototype.cK = function (F) {
		this.ER += F.target == this.fc ? 1 : -1;
		this.ER = Math.max(1, Math.min(20, this.ER));
		this.LI()
	};
	eC.prototype.q0 = function () {
		this.AK(this.yH)
	};
	eC.prototype.AK = function (F, P) {
		this.yH = F;
		if (!i.WW(this.VI)) return;
		var o = F.T2,
			X = o.dS.Font,
			t = 0;
		if (X == null) return;
		var Y = o.Dm[X].Name;
		if (this.a40 == Y) return;
		var X = F.SN.VV(Y);
		if (X == null) return;
		var y = X.maxp.numGlyphs,
			z = this.a5p = new Array(y);
		for (var w = 0; w < y; w++) z[w] = {
			G$: []
		};
		var s = Date.now(),
			d = new Uint8Array(1048575);
		for (var w = 0; w < 1048575; w++) {
			var U = Typr.U.codeToGlyph(X, w);
			if (U != 0 && U < y) {
				d[w] = 1;
				if (z[U].G$.length == 0) t++;
				z[U].G$.push(w)
			}
		}
		var v = eC.Gw,
			A = [];
		for (var w = 0; w < v.length; w++) A.push([]);
		for (var U = 1; U < y; U++) {
			A[0].push(U);
			var Z = z[U].G$[0];
			if (Z == null) {
				continue
			}
			for (var D = 1; D < v.length; D++) {
				var q = v[D].bk;
				for (var w = 0; w < q.length; w += 2)
					if (q[w] <= Z && Z <= q[w + 1]) {
						A[D].push(U);
						break
					}
			}
		}
		this.fZ = A;
		var R = [];
		for (var w = 0; w < v.length; w++) R.push(v[w].Bj + " (" + A[w].length + ")");
		var J = this.q9.q();
		this.q9.KI(R);
		this.q9.k(J);
		this.a40 = Y;
		this.ak1 = X;
		this.LI()
	};
	eC.prototype.LI = function (F) {
		var P = this.fZ[this.q9.q()],
			o = P.length,
			X = this.ak1,
			Y = Typr.U,
			y = Math.floor(this.mk / this.ER),
			z = y,
			s = z * .8,
			t = z * .8 / X.head.unitsPerEm,
			d = [],
			U = i.z("canvas"),
			v = U.getContext("2d"),
			A = this.ER,
			Z = Math.ceil(o / A),
			D = this.am6;
		U.width = y * A;
		U.height = z * D;
		v.strokeStyle = "rgba(0,0,0,0.3)";
		var q = Date.now();
		for (var R = 0; R < Z; R += D) {
			v.fillStyle = "white";
			v.fillRect(0, 0, A * y, z * D);
			for (var J = 0; J < D; J++) {
				for (var W = 0; W < A; W++) {
					var w = P[(R + J) * A + W];
					if (w == null) break;
					var p = Y.glyphToPath(X, w),
						n = H.D.nP(p.crds);
					if (!n.qr()) {
						v.fillStyle = "#252525";
						v.beginPath();
						var b = W * y + (y - n.Z * t) * .5 - n.x * t,
							Q = J * z + s;
						v.translate(b, Q);
						v.scale(t, -t);
						Y.pathToContext(p, v);
						v.scale(1 / t, -1 / t);
						v.translate(-b, -Q);
						v.fill()
					}
				}
			}
			v.beginPath();
			for (var W = 0; W < A; W++) {
				var _ = W * y + y + .5;
				v.moveTo(_, 0);
				v.lineTo(_, z * D)
			}
			for (var J = 0; J < D; J++) {
				var L = J * z + z + .5;
				v.moveTo(0, L);
				v.lineTo(A * y, L)
			}
			v.stroke();
			d.push(U.toDataURL("image/png"))
		}
		this.UJ.Lf(d, null, y * A, z * D)
	};
	eC.Gw = [{
		Bj: "All Glyphs"
	}, {
		Bj: "Basic Latin, Latin 1",
		bk: [0, 127, 128, 143]
	}, {
		Bj: "Latin Extended-A",
		bk: [256, 383]
	}, {
		Bj: "Latin Extended-B",
		bk: [384, 591]
	}, {
		Bj: "Punctuations",
		bk: [33, 35, 37, 39, 42, 42, 44, 44, 46, 47, 58, 59, 63, 63, 64, 64, 92, 92, 161, 161, 167, 167, 182, 183, 191, 191, 894, 894, 903, 903, 1370, 1375, 1417, 1417, 8192, 8303, 11776, 11903]
	}, {
		Bj: "Greek",
		bk: [880, 1023]
	}, {
		Bj: "Cyrillic",
		bk: [1024, 1279]
	}, {
		Bj: "Hebrew",
		bk: [1424, 1535]
	}, {
		Bj: "Arabic",
		bk: [1536, 1791]
	}, {
		Bj: "Emoji",
		bk: [9728, 10095, 127744, 129535]
	}];

	function el() {
		c$.call(this, [13, 0], !1, null, c$.YP.Io);
		this.Mx = 0;
		this.ajZ = 0;
		this.yH = null;
		var F = i.z("div", "flexrow padded");
		this.VI.appendChild(F);
		var P = i.z("div");
		F.appendChild(P);
		this.up = [];
		for (var w = 0; w < 2; w++) {
			var o = new eH;
			this.up.push(o);
			o.$("click", this.a91, this);
			P.appendChild(o.u)
		}
		this.Ao = new ei(192);
		this.Ao.$(i.E.I, this.CV, this);
		F.appendChild(this.Ao.u)
	}
	el.prototype = new c$("");
	el.prototype.a91 = function (F) {
		this.Mx = this.up.indexOf(F.currentTarget);
		this.qK()
	};
	el.prototype.CV = function (F) {
		var P = this.Ao.q();
		this.Ao.k(P);
		var o = Math.round(P.U * 255) << 16 | Math.round(P.S * 255) << 8 | Math.round(P.i * 255),
			X = new l(i.E.L, !0);
		X.data = {
			e: i.B.Sl,
			S9: ge.Io,
			mQ: this.Mx,
			C: o
		};
		this.w(X);
		this.ajZ = Date.now()
	};
	el.prototype.qK = function () {
		var F = this.yH,
			P = this.Mx,
			o = [F.GY, F.Ty];
		for (var w = 0; w < 2; w++) {
			var X = this.up[w],
				Y = X.u.style;
			X.s$(o[w]);
			if (w == P) delete Y.borderColor;
			else Y.borderColor = "var(--bg-color)"
		}
		var y = o[P];
		if (Date.now() - this.ajZ > 100) this.Ao.k({
			U: (y >>> 16) / 255,
			S: (y >>> 8 & 255) / 255,
			i: (y & 255) / 255
		})
	};
	el.prototype.AK = function (F, P) {
		this.yH = F;
		if (P == ge.oc || P == ge.Io) this.qK()
	};
	el.prototype.q0 = function () {
		this.qK()
	};

	function cv() {
		c$.call(this, "CSS", !1, null, c$.YP.CSS);
		this.nc = null;
		var F = i.z("div", "padded");
		this.VI.appendChild(F);
		this.Lo = i.z("textarea");
		this.Lo.setAttribute("rows", 16);
		this.Lo.setAttribute("style", "display:block;tab-size:4; font-family:monospace; width:98%; min-width:270px;");
		F.appendChild(this.Lo)
	}
	cv.prototype = new c$("");
	cv.prototype.Vp = function (F) {
		this.nc = F;
		this.qK()
	};
	cv.prototype.AK = function (F, P) {
		if (P == ge.Du) this.qK()
	};
	cv.prototype.qK = function () {
		var F = this.nc;
		if (F == null || F.p.length == 0) return;
		if (!i.WW(this.VI)) return;
		var P = F.r[F.p[0]],
			o = CSS.adQ(P, F);
		if (o.length != 0) this.Lo.value = o.join(";\n") + ";";
		else this.Lo.value = ""
	};
	cv.prototype.q0 = function () {
		this.qK()
	};

	function fe() {
		c$.call(this, [9, 6], !1, null, c$.YP.a89);
		this.VI.setAttribute("style", "min-width:240px;");
		this.nc = null;
		this.yH = null;
		var F = i.z("div", "marged row");
		this.VI.appendChild(F);
		var P = i.z("div", "cell");
		P.setAttribute("style", "width:10em");
		F.appendChild(P);
		var o = i.z("div", "cell");
		o.setAttribute("style", "width:10em");
		F.appendChild(o);
		this.a7V = [];
		for (var w = 0; w < 4; w++) {
			var X = new dC("");
			this.a7V.push(X);
			P.appendChild(X.u);
			i.Rf(P)
		}
		this.VI.appendChild(i.z("hr", ""));
		var Y = i.z("div", "marged row");
		this.VI.appendChild(Y);
		var P = i.z("div", "cell");
		P.setAttribute("style", "width:10em");
		var o = i.z("div", "cell");
		o.setAttribute("style", "width:10em");
		Y.appendChild(P);
		Y.appendChild(o);
		this.ae = new dC("");
		P.appendChild(this.ae.u);
		i.Rf(P);
		this.hd = new dC("");
		P.appendChild(this.hd.u);
		this.iG = new dC("");
		o.appendChild(this.iG.u);
		i.Rf(o);
		this.DG = new dC("");
		o.appendChild(this.DG.u);
		this.ae.k("X: 100 px");
		this.hd.k("Y: 100 px");
		this.iG.k("W: 0");
		this.DG.k("H: 0")
	}
	fe.prototype = new c$("");
	fe.prototype.$E = function (F, P, o, X, Y) {
		if (!i.WW(this.VI) || F == null) return;
		var y = F.a.PY(Y.x, Y.y),
			z = new aH(Math.floor(y.x), Math.floor(y.y));
		if (!Y.Ku) {
			var s = 0,
				t = 0,
				d = 0,
				U = 0,
				v = this.a7V;
			if (!Y.Ku && !F.ahP() && new ev(0, 0, F.Z - 1, F.h - 1).oz(z)) {
				var A = F.lD(),
					w = F.Z * z.y + z.x << 2;
				s = A[w + 0];
				t = A[w + 1];
				d = A[w + 2];
				U = A[w + 3]
			}
			v[0].k("R: " + s);
			v[1].k("G: " + t);
			v[2].k("B: " + d);
			v[3].k("A: " + U)
		}
		this.ae.k("X: " + H.t$.Rq(z.x, F.NB, o, F.Z));
		this.hd.k("Y: " + H.t$.Rq(z.y, F.NB, o, F.h));
		this.cL()
	};
	fe.prototype.cL = function () {
		var F = this.nc,
			P = this.yH,
			o = 0,
			X = 0;
		if (F && P) {
			if (F.a.GW) {
				o = F.a.GW.Z;
				X = F.a.GW.h
			} else if (F.K) {
				o = F.K.rect.Z;
				X = F.K.rect.h
			}
			o = H.t$.Rq(Math.abs(o), F.NB, P, F.Z);
			X = H.t$.Rq(Math.abs(X), F.NB, P, F.h)
		}
		this.iG.k(h9.get([12, 41]).charAt(0) + ": " + o);
		this.DG.k(h9.get([12, 42]).charAt(0) + ": " + X)
	};
	fe.prototype.t = function () {
		c$.prototype.t.call(this);
		this.cL()
	};
	fe.prototype.Vp = function (F, P, o) {
		this.nc = F;
		this.yH = o;
		this.cL()
	};

	function cH() {
		c$.call(this, [9, 1], !1, null, c$.YP.xC);
		this.vl = null;
		this.EA = null;
		this.Yr = null;
		this.n4 = i.z("div", "lphead");
		this.TP = i.z("div", "lpbody scrollable");
		this.D0 = i.z("div", "lpfoot");
		this.zi = new gq(null, aK.Zn, !1, aK.wp);
		this.zi.$(i.E.I, this.amk, this);
		this.n4.appendChild(this.zi.u);
		this.gH = new gJ([12, 0], 0, 100, "%", 0);
		this.gH.$(i.E.I, this.aav, this);
		this.gH.parent = this;
		this.n4.appendChild(this.gH.u);
		this.Qo = new aL("Lock", ["<img src=\"" + PIMG.trsp3 + "\" class=\"autoscale gsicon\" />", "<img src=\"" + PIMG["tools/brush"] + "\" class=\"autoscale gsicon\" />", "<img src=\"" + PIMG.pos + "\" class=\"autoscale gsicon\" />", "<img src=\"" + PIMG["lrs/lock"] + "\" class=\"autoscale gsicon\" />"], !0, ["Transparency", [12, 76, 2],
			[12, 40],
			[7, 0]
		]);
		this.Qo.$(i.E.I, this.ado, this);
		this.n4.appendChild(this.Qo.u);
		this.La = new gJ([12, 26], 0, 100, "%", 0);
		this.La.$(i.E.I, this.adL, this);
		this.La.parent = this;
		this.n4.appendChild(this.La.u);
		this.qo = [];
		this.AM();
		this.VI.appendChild(this.n4);
		this.VI.appendChild(this.TP);
		this.TP.addEventListener("dragover", function (Y) {
			Y.preventDefault()
		}, !1);
		this.TP.addEventListener("dragenter", i.OZ, !1);
		this.TP.addEventListener("drop", this.air.bind(this), !1);
		this.VI.appendChild(this.D0);
		this.VI.addEventListener("contextmenu", i.OZ, !1);
		var F = {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "scaleeffects",
					Ub: 100,
					VN: {
						f: i.E.H,
						Q: B.FA,
						o: {
							e: "scaleeffects"
						}
					}
				}
			},
			P = {
				name: "Scale Effects",
				Y: function (Y) {
					return {
						Y: Y != null && Y.r[Y.p[0]].su()
					}
				}
			},
			o = [P],
			X = [F];
		this.ajS = new ba(o, X);
		var o = [{
				name: [14, 10]
			}, {
				name: [14, 11],
				aD: !0
			}, {
				name: [6, 0]
			}, {
				name: [11, 4]
			}, {
				name: [5, 4],
				aD: !0
			}, {
				name: [6, 7]
			}, {
				name: "New Smart Obj. via Copy",
				Y: function (Y) {
					return {
						Y: Y.r[Y.p[0]].add.SoLd != null
					}
				},
				aD: !0
			}, {
				name: [6, 8],
				Y: function (Y) {
					var y = Y.r[Y.p[0]];
					if (y.add.TySh || y.add.SoLd || y.add.SoCo || y.add.GdFl || y.add.PtFl) return {
						Y: !0
					};
					return {
						Y: !1
					}
				}
			}, {
				name: [6, 34],
				Y: function (Y) {
					var y = Y.r[Y.p[0]];
					return {
						Y: y.add.lmfx != null && !y.fO()
					}
				}
			}, {
				name: [6, 40],
				aD: !0,
				Y: function (Y) {
					var y = Y.r[Y.p[0]];
					return {
						Y: y.add.TySh != null
					}
				}
			}, {
				name: "",
				aD: !0,
				Y: function (Y) {
					var y = Y.r[Y.p[0]],
						z = y.add.TySh,
						s = z ? z.MF : null;
					return {
						Y: z != null && s.Curve == null,
						IK: h9.get(z && bt.AW(s) == 0 ? [16, 3, 1] : [16, 3, 0])
					}
				}
			}, {
				name: [6, 6, 0],
				aD: !0,
				Y: function (Y) {
					return {
						Y: Y.Uu(Y.p[0]),
						Rb: Y.r[Y.p[0]].rd
					}
				}
			}, {
				name: [11, 6],
				aD: !0,
				sub: [{
					name: [5, 1],
					Y: function (Y) {
						var y = Y.r[Y.p[0]];
						return {
							Y: y.add.lmfx != null
						}
					}
				}, {
					name: [5, 2]
				}, {
					name: [2, 2],
					Y: function (Y) {
						var y = Y.r[Y.p[0]];
						return {
							Y: y.add.lmfx != null
						}
					},
					aD: !0
				}, P]
			}, {
				name: [6, 10],
				Y: function (Y) {
					return {
						Y: Y.p.length == 1 && Y.p[0] != 0 && !Y.r[Y.p[0]].fO()
					}
				}
			}, {
				name: [6, 12, 0],
				Y: function (Y) {
					return {
						Y: Y.p.length > 1 || Y.r[Y.p[0]].fO()
					}
				}
			}, {
				name: [6, 12, 1],
				aD: !0
			}, {
				name: [13, 0],
				sub: function () {
					var Y = [
							[13, 1, 0],
							[13, 1, 1],
							[13, 1, 2],
							[13, 1, 3],
							[13, 1, 4],
							[13, 1, 5],
							[13, 1, 6],
							[13, 1, 7]
						],
						y = [];
					for (var w = 0; w < Y.length; w++) y.push({
						name: Y[w]
					});
					return y
				}()
			}],
			X = [{
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "layerstyle"
				}
			}, {
				f: i.E.H,
				Q: B.j1,
				o: {
					e: "fromlayer",
					oI: [null, 0, 0]
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.xm
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "duplinto"
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.R0
				}
			}, {
				f: i.E.QJ,
				o: {
					Bm: "newPlacedLayer"
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.RO
				}
			}, {
				f: i.E.QJ,
				o: {
					Bm: "rasterizeLayer",
					w1: {
						classID: "rasterizeLayer",
						null: gY.Pe("Lyr", !0)
					}
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.cl
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.M_
				}
			}, {
				f: i.E.H,
				Q: B.OX,
				o: {
					e: "switchPntPrgr"
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.zO
				}
			}, {
				sub: [{
					f: i.E.H,
					Q: B.FA,
					o: {
						e: "st_copy"
					}
				}, {
					f: i.E.H,
					Q: B.FA,
					o: {
						e: "st_paste"
					}
				}, {
					f: i.E.H,
					Q: B.FA,
					o: {
						e: "st_clear"
					}
				}, F]
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.SG
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.FI
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.ck
				}
			}, {
				sub: function () {
					var Y = [];
					for (var w = 0; w < 8; w++) Y.push({
						f: i.E.H,
						Q: B.xC,
						o: {
							e: h.FO,
							ait: w
						}
					});
					return Y
				}()
			}];
		this.E1 = new ba(o, X);
		var o = [{
				name: [6, 45],
				Y: function (Y) {
					var y = Y.r[Y.p[0]];
					return {
						Y: y.yg(Y).g == null
					}
				}
			}, {
				name: [6, 47]
			}],
			X = [{
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.s4
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.cB
				}
			}];
		this.a1c = new ba(o, X);
		var o = [{
				name: "enab/disab",
				Y: function (Y) {
					return {
						IK: h9.get(Y.r[Y.p[0]].jk().isEnabled ? [6, 15] : [6, 14])
					}
				}
			}, {
				name: [6, 22]
			}, {
				name: [5, 8],
				Y: function (Y) {
					return {
						Y: Y.FD(!1, !0)
					}
				}
			}],
			X = [{
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.kX
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.tN
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.rb
				}
			}];
		this.a1w = new ba(o, X);
		var o = [{
				name: "enab/disab",
				Y: function (Y) {
					return {
						IK: h9.get(Y.r[Y.p[0]].yg(Y).g.isEnabled ? [6, 42] : [6, 41])
					}
				}
			}, {
				name: [6, 46]
			}],
			X = [{
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.yV
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.BI
				}
			}];
		this.a3K = new ba(o, X);
		var o = [{
				name: "enab/disab",
				Y: function (Y) {
					return {
						IK: h9.get(Y.r[Y.p[0]].add.vmsk.isEnabled ? [6, 17] : [6, 16])
					}
				}
			}, {
				name: [6, 24]
			}],
			X = [{
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.OT
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.hy
				}
			}];
		this.ajj = new ba(o, X);
		this.agA = new ba(il.U2(!0), il.hn(!0));
		this.ae6 = new ba(il.B0(), il.OS());
		this.$("rclick", this.a4h, this)
	}
	cH.prototype = new c$("");
	cH.prototype.air = function (F) {
		i.OZ(F);
		var P = F.dataTransfer.getData("Text"),
			o = 1,
			X = 0;
		if (P == "") {
			i.u4(F, this, this.Yr.indexOf(this.EA), X + (o > .5 ? 0 : 1))
		} else if (P != "--panel") {
			var P = JSON.parse(P),
				Y = P.iy;
			if (Y == "l") this.nQ({
				e: h.iN,
				source: P.q_,
				target: X,
				Pf: o
			})
		}
	};
	cH.prototype.S_ = function () {
		return new aH(253, 0)
	};
	cH.prototype.a4h = function (F) {
		var P = this.EA,
			o = F.data,
			Y;
		if (P.p.indexOf(o.n) == -1) {
			var X = {
				e: h.Tq,
				n: F.target.oY.index,
				wH: o.kB
			};
			this.nQ(X)
		}
		if (P.p.indexOf(o.n) == -1) return;
		if (o.kB == 1) {
			Y = this.a1w
		} else if (o.kB == 2) {
			Y = this.ajj
		} else if (o.kB == 3) {
			Y = this.a3K
		} else if (o.kB == 4) {
			Y = this.a1c
		} else if (o.kB == 5) {
			Y = this.ajS
		} else {
			Y = this.E1
		}
		Y.t();
		Y.update(P);
		Y.parent = this;
		var y = new l(i.E.L, !0);
		y.data = {
			e: i.B.VX,
			Nc: Y,
			x: o.cQ.x + 1,
			y: o.cQ.y + 1
		};
		this.w(y)
	};
	cH.prototype.t = function () {
		c$.prototype.t.call(this);
		this.zi.t();
		this.gH.t();
		this.Qo.t();
		this.La.t();
		if (this.EA) this.Vp(this.EA);
		var F = "lrs/link lrs/fx lrs/adj lrs/mask lrs/folder lrs/newlayer lrs/bin".split(" ");
		for (var w = 0; w < this.qo.length; w++) {
			var P = this.qo[w];
			P.kW(i.G6(F[w]))
		}
	};
	cH.prototype.Vp = function (F, P) {
		if (F && !F.Vf) return;
		if (F == null) i.KL(this.VI, "disabled");
		else i.sT(this.VI, "disabled");
		this.EA = F;
		this.Yr = P;
		if (this.vl != null) {
			this.TP.removeChild(this.vl.TP);
			this.vl = null
		}
		if (F == null) return;
		this.vl = new hz(F.root, this, F, {
			u9: 0
		});
		this.TP.appendChild(this.vl.TP);
		if (F.p.length == 0) i.KL(this.n4, "disabled");
		else {
			i.sT(this.n4, "disabled");
			if (F.p.length == 1 && F.Mv) this.vl.ca(F.p);
			var o = F.r[F.p[0]];
			if (o.fO()) {
				this.zi.KI([
					[15, 10, 27]
				].concat(aK.Zn), [1].concat(aK.wp));
				var X = aK.YA.indexOf(o.sW);
				this.zi.k(X + 1)
			} else {
				this.zi.KI(aK.Zn, aK.wp);
				var X = aK.YA.indexOf(o.sW);
				this.zi.k(X)
			}
			this.gH.k(Math.round(100 * o.opacity / 255));
			this.Qo.k([o.k6(0), o.k6(1), o.k6(2), o.k6(31)]);
			this.La.k(Math.round(100 * (o.add.iOpa != null ? o.add.iOpa / 255 : 1)))
		}
	};
	cH.prototype.l9 = function (F, P) {
		var o = this.n4.getBoundingClientRect().height,
			X = 59;
		if (o > 70) X = 84;
		if (o > 100) X = 108;
		var Y = P - (X + 37);
		this.TP.style.height = Y + "px"
	};
	cH.prototype.amk = function (F) {
		this.nQ({
			e: h.N1,
			uB: this.zi.q()
		})
	};
	cH.prototype.aav = function (F) {
		this.nQ({
			e: h.Ot,
			uB: Math.round(255 * this.gH.q() / 100)
		})
	};
	cH.prototype.ado = function (F) {
		this.nQ({
			e: h.Lm,
			uB: [this.Qo.q(), [0, 1, 2, 31]]
		})
	};
	cH.prototype.adL = function (F) {
		this.nQ({
			e: h.Ib,
			uB: Math.round(255 * this.La.q() / 100)
		})
	};
	cH.prototype.a4a = function (F) {
		this.ZF(F, this.agA)
	};
	cH.prototype.aaa = function (F) {
		this.ZF(F, this.ae6)
	};
	cH.prototype.ZF = function (F, P) {
		var o = F.currentTarget;
		if (i.WW(P.u)) return;
		F.stopPropagation();
		var X = o.getBoundingClientRect();
		P.t();
		P.update(this.EA);
		P.parent = this;
		var Y = new l(i.E.L, !0);
		Y.data = {
			e: i.B.VX,
			Nc: P,
			x: X.left,
			y: X.top,
			a5L: !0
		};
		this.w(Y)
	};
	cH.prototype.a6C = function (F) {
		this.nQ({
			e: h.Ax
		})
	};
	cH.prototype.aiI = function (F) {
		this.nQ({
			e: this.EA.p.length > 1 ? h.$t : h.QR
		})
	};
	cH.prototype.akU = function (F) {
		this.nQ({
			e: h.Nm
		})
	};
	cH.prototype.a3h = function (F) {
		this.nQ({
			e: h.R0
		})
	};
	cH.prototype.a8s = function (F) {
		this.nQ({
			e: h.IQ
		})
	};
	cH.prototype.nQ = function (F) {
		var P = new l(i.E.H, !0);
		P.data = F;
		P.Q = B.xC;
		this.w(P)
	};
	cH.prototype.AM = function () {
		var F = [
				[6, 54, 0],
				[11, 6],
				[6, 1],
				[6, 21],
				[6, 20],
				[6, 13],
				[6, 31]
			],
			P = [this.a8s, this.aaa, this.a4a, this.a6C, this.aiI, this.akU, this.a3h],
			o = this.ajv.bind(this);
		for (var w = 0; w < F.length; w++) {
			var X = new fV("W", !1, F[w]);
			this.qo.push(X);
			i.X8(X.u, P[w].bind(this));
			this.D0.appendChild(X.u);
			if (w >= F.length - 3) {
				var Y = X.u;
				Y.addEventListener("drop", o, !1);
				Y.addEventListener("dragover", function (y) {
					y.preventDefault()
				}, !1);
				Y.addEventListener("dragenter", i.OZ, !1)
			}
		}
	};
	cH.prototype.ajv = function (F) {
		i.OZ(F);
		var P = 0,
			o = this.qo;
		while (o[P].u != F.currentTarget) P++;
		o[P].pe();
		var X = F.dataTransfer.getData("Text");
		if (X == "") return;
		var X = JSON.parse(X);
		if (X.iy == "l") {
			var Y = {
				e: [h.$t, h.xm, h.R0][P - 4]
			};
			if (this.EA.p.indexOf(X.q_) == -1) Y.n = X.q_;
			this.nQ(Y)
		}
		if (P != 6) return;
		if (X.iy == "sm" || X.iy == "s") {
			var y = new l(i.E.H, !0);
			y.Q = B.FA;
			y.data = {
				e: X.iy == "sm" ? "st_clear" : "st_delsingle",
				n: X.q_,
				q_: X.sG
			};
			this.w(y)
		}
		if (X.iy == "fm" || X.iy == "f") {
			this.nQ({
				e: X.iy == "fm" ? h.cB : h.kF,
				src: X.q_,
				sG: X.sG
			})
		}
		if (X.iy == "m" || X.iy == "vm") {
			this.nQ({
				e: X.iy == "m" ? h.tN : h.hy,
				n: X.q_
			})
		}
	};

	function hz(F, P, o, X) {
		au.call(this);
		this.parent = P;
		this.oY = F;
		this.KJ = [];
		this.u = i.z("div", "layeritem");
		var Y = F.n,
			W = 15,
			g = !1;
		this.n4 = i.z("div", o.p.indexOf(F.index) != -1 ? "head selected" : "head");
		if (F.n.add.artb != null) i.KL(this.n4, "artb");
		this.n4.setAttribute("style", "height: " + (Y.acv + 10) + "px");
		var y = i.z("div", "headL"),
			z = i.z("div", "headR"),
			s = i.z("div", "lpineck");
		this.TP = i.z("div", "lpibody");
		this.u.appendChild(this.n4);
		this.n4.appendChild(y);
		this.n4.appendChild(z);
		if (Y.su() || Y.gO())
			if (Y.dL()) this.u.appendChild(s);
		var t = this.n4;
		t.setAttribute("draggable", "true");
		t.addEventListener("dragstart", this.Gs.bind(this), !1);
		t.addEventListener("drop", this.b1.bind(this), !1);
		t.addEventListener("dragover", this.lR.bind(this), !1);
		t.addEventListener("dragenter", i.OZ, !1);
		t.addEventListener("dragleave", this.Sq.bind(this), !1);
		var d = [],
			U = [],
			v = i.z("div");
		this.XQ = i.z("div", "eye");
		v.appendChild(this.XQ);
		var A = i.z("div", "space");
		this.nM = i.z("div", "label");
		this.nM.textContent = Y.getName();
		this.jd = i.z("div", "lock");
		this.aiA = i.z("div", "lrfx");
		this.Wy = i.z("div", "arfx");
		var Z = this.abe.bind(this),
			D = this.agZ.bind(this);
		this.n4.addEventListener("click", D, !1);
		this.n4.addEventListener("contextmenu", Z, !1);
		var q = [0, 16711680, 16748544, 16763904, 4513024, 22015, 11141375, 7829367],
			R = Y.add.lclr == null ? 0 : q[Y.add.lclr];
		if (R == 0) R = X.u9;
		var J = [R >> 16, R >> 8 & 255, R & 255];
		for (var w = 0; w < 3; w++) {
			J[w] = Math.round(.5 * J[w] + .5 * 220)
		}
		if (1 < i.J() && i.J() < 1.5) W = W / i.J();
		v.setAttribute("style", "background-color:rgba(" + J.join(",") + "," + (R == 0 ? 0 : 1) + ");");
		this.XQ.setAttribute("style", "background-size: " + W + "px " + W + "px;");
		var p = this.akg.bind(this);
		v.addEventListener("mousedown", p, !1);
		v.addEventListener("mouseover", p, !1);
		this.nM.addEventListener("pointerup", this.ahf.bind(this), !1);
		this.Wy.addEventListener("click", this.a0V.bind(this), !1);
		d[0] = v;
		d[1] = A;
		d[10] = this.nM;
		if (Y.fO()) {
			var n = i.z("div", "arrow"),
				b = i.z("div", "folder");
			n.addEventListener("click", this.ad0.bind(this), !1);
			d[2] = n;
			d[3] = b;
			if (Y.add.lsct == gr.lw) {
				for (var w = F.children.length - 1; w >= 0; w--) {
					var Q = new hz(F.children[w], P, o, {
						u9: R
					});
					this.KJ.push(Q);
					this.TP.appendChild(Q.u)
				}
				this.u.appendChild(this.TP)
			}
			n.setAttribute("class", Y.add.lsct == gr.lw ? "open" : "closed")
		} else {
			this.bA = i.z("div", "thumb");
			d[5] = this.bA;
			this.bA.appendChild(Y.oH.canvas)
		}
		var _ = Y.jk();
		if (_) {
			this.E_ = i.z("div", "chain");
			this.Mn = i.z("div", "thumb");
			this.Mn.setAttribute("draggable", "true");
			this.Mn.appendChild(F.n.a12.canvas);
			this.E_.style.opacity = _.AU ? 1 : 0;
			this.E_.addEventListener("click", this.alP.bind(this), !1)
		}
		var L = Y.ws() && Y.add.vmsk;
		if (Y.add.vmsk && !L) {
			this.VC = i.z("div", "chain");
			this.m7 = i.z("div", "thumb");
			this.m7.setAttribute("draggable", "true");
			this.m7.appendChild(F.n.abb.canvas);
			this.VC.style.opacity = Y.add.vmsk.AU ? 1 : 0;
			this.VC.addEventListener("click", this.amq.bind(this), !1)
		}
		if (Y.gO() && Y.yg(o).g) {
			this.bn = i.z("div", "thumb");
			this.bn.appendChild(F.n.aiU.canvas);
			this.bn.addEventListener("click", D, !1);
			this.bn.addEventListener("contextmenu", Z, !1)
		}
		if (Y.su()) {
			s.addEventListener("contextmenu", Z, !1);
			var m = new cH.zS(h9.get([12, 1]), "sm", "layerstyle", F.depth, 0, null);
			m.parent = this;
			s.appendChild(m.u);
			var I = Y.add.lmfx,
				c = I.masterFXSwitch.v;
			m.vR(c);
			for (var w = 0; w < ce.order.length; w++) {
				var u = I[ce.og[w]].v;
				if (u.length == 0) continue;
				for (var a = 0; a < u.length; a++) {
					var m = new cH.zS(h9.get(ce.names[w]), "s", "layerstyle", F.depth, 1, [w, a]);
					m.vR(c && u[a].v.enab.v);
					m.parent = this;
					s.appendChild(m.u)
				}
			}
		}
		if (Y.gO()) {
			var m = new cH.zS(h9.get([12, 55]), "fm", null, F.depth, 0, -1, Y.yg(o).g ? this.bn : null);
			m.parent = this;
			s.appendChild(m.u);
			this.afp = m.u;
			this.afp.addEventListener("contextmenu", Z, !1);
			var I = Y.add.SoLd.filterFX.v,
				N = I.filterFXList.v,
				c = I.enab.v;
			m.vR(c);
			for (var w = N.length - 1; w >= 0; w--) {
				var V = N[w].v,
					M = bv.l$(V);
				if (b_.NS[M]) M = b_.NS[M];
				var O = V.Nm.v;
				if (bv.names[M]) O = h9.get(bv.names[M]);
				if (b_.names[M]) O = h9.get(b_.names[M]);
				var K = f[M] || bv.lt[M] ? "afw_" + M : null,
					m = new cH.zS(O, "f", K, F.depth, 1, w);
				m.vR(c && V.enab.v);
				m.parent = this;
				s.appendChild(m.u)
			}
		}
		if (o.r.indexOf(Y) == o.p[0]) {
			var j = Y.kB,
				$;
			if (j <= 0) $ = this.bA;
			else if (j == 1) $ = this.Mn;
			else if (j == 3) $ = this.bn;
			if ($) $.setAttribute("class", "thumb active");
			if (Y.yb && this.m7) this.m7.setAttribute("class", "thumb active")
		}
		v.style.opacity = Y.UQ() ? 1 : .25;
		A.setAttribute("style", "width:" + Math.max(0, F.depth - 1) * 18 + "px");
		var x = Y.add.lspf != null && Y.add.lspf != 0;
		this.jd.style.opacity = Y.k6(31) ? 1 : .5;
		d[4] = Y.rd ? i.z("div", "clipp") : null;
		d[6] = _ ? this.E_ : null;
		d[7] = _ ? this.Mn : null;
		d[8] = Y.add.vmsk && !L ? this.VC : null;
		d[9] = Y.add.vmsk && !L ? this.m7 : null;
		var T = Y.Qk,
			E = o.p;
		if (T != 0)
			for (var w = 0; w < E.length; w++)
				if (o.r[E[w]].Qk == T) {
					g = !0;
					break
				} U[0] = g ? i.z("div", "link") : null;
		U[1] = x ? this.jd : null;
		U[2] = Y.su() ? this.aiA : null;
		U[3] = Y.su() || Y.gO() ? this.Wy : null;
		this.Wy.setAttribute("class", Y.dL() ? "arfx open  gsicon" : "arfx closed  gsicon");
		var a9 = d;
		for (var w = 0; w < a9.length; w++)
			if (a9[w]) y.appendChild(a9[w]);
		a9 = U;
		for (var w = 0; w < a9.length; w++)
			if (a9[w]) z.appendChild(a9[w])
	}
	hz.prototype = new au;
	hz.prototype.ca = function (F) {
		var P = this.oY.index;
		if (F.indexOf(P) != -1) {
			if (this.u.scrollIntoView) this.u.scrollIntoView({
				block: "nearest"
			})
		}
		for (var w = 0; w < this.KJ.length; w++) this.KJ[w].ca(F)
	};
	hz.d6 = function (F, P) {
		var o = P.getBoundingClientRect();
		return (F.clientY - o.top) / o.height
	};
	hz.prototype.Gs = function (F) {
		F.stopPropagation();
		var P = F.target == this.Mn ? "m" : F.target == this.m7 ? "vm" : "l";
		F.dataTransfer.setData("Text", JSON.stringify({
			iy: P,
			q_: this.oY.index
		}))
	};
	hz.prototype.Sq = function (F) {
		i.OZ(F);
		this.ES()
	};
	hz.prototype.b1 = function (F) {
		i.OZ(F);
		this.ES();
		var P = F.dataTransfer.getData("Text"),
			o = this.parent.EA,
			X = hz.d6(F, this.n4),
			Y = this.oY.index;
		if (X > .8) {
			var y = !0,
				z = o.root.V$(Y);
			while (z.parent != null) {
				var s = z.parent,
					t = s.children;
				if (t.indexOf(z) != 0) y = !1;
				z = z.parent
			}
			if (y) {
				Y = 0;
				X = 1
			}
		}
		if (P == "") {
			i.u4(F, this, this.parent.Yr.indexOf(o), Y + (X > .5 ? 0 : 1))
		} else if (P != "--panel") {
			var P = JSON.parse(P),
				d = P.iy;
			if (d == "l") this.nQ({
				e: h.iN,
				source: P.q_,
				target: Y,
				Pf: X
			});
			else if (d == "m" || d == "vm") this.nQ({
				e: d == "m" ? h.gk : h.aY,
				src: P.q_,
				Fi: Y,
				HO: F.altKey
			});
			else hz.UZ(F, P, this)
		}
	};
	hz.UZ = function (F, P, o, X) {
		var Y = P.iy,
			y = o.oY.index,
			z = P.q_;
		if (Y == "s" || Y == "sm") o.nQ({
			e: h.Fv,
			src: z,
			Fi: y,
			sG: P.sG,
			HO: F.altKey
		});
		if (Y == "f" || Y == "fm") o.nQ({
			e: h.Op,
			src: z,
			Fi: y,
			sG: P.sG,
			ON: X == null ? 0 : X,
			HO: F.altKey
		})
	};
	hz.prototype.lR = function (F) {
		i.OZ(F);
		var P = hz.d6(F, this.n4);
		this.ES();
		var o = P > .5 ? "-bottom" : "-top";
		if (this.oY.n.fO() && .5 < P && P < .8) o = "";
		this.n4.style["border" + o] = "3px solid rgba(0,0,0,0.5)";
		this.n4.style.margin = o == "" ? "-3px 0 -3px 0" : o == "-top" ? "-3px 0 0 0" : "0 0 -3px 0"
	};
	hz.prototype.ES = function (F) {
		this.n4.style.border = "none";
		this.n4.style.margin = "0"
	};
	hz.gs = -1;
	hz.R9 = !1;
	hz.i2 = function (F) {
		hz.R9 = !1;
		document.body.removeEventListener("mouseup", hz.i2)
	};
	hz.prototype.akg = function (F) {
		if (F.button != 0) return;
		if (F.type == "mousedown") {
			hz.R9 = !0;
			document.body.addEventListener("mouseup", hz.i2, !1)
		}
		if (F.type == "mouseover" && (!hz.R9 || hz.gs == this.oY.index)) return;
		i.OZ(F);
		this.nQ({
			e: h.K7,
			n: this.oY.index
		});
		hz.gs = this.oY.index
	};
	hz.prototype.ad0 = function (F) {
		this.nQ({
			e: h.cJ,
			n: this.oY.index
		})
	};
	hz.prototype.alP = function (F) {
		this.nQ({
			e: h.dh,
			n: this.oY.index
		})
	};
	hz.prototype.amq = function (F) {
		this.nQ({
			e: h.t7,
			n: this.oY.index
		})
	};
	hz._7 = 0;
	hz.prototype.ahf = function (F) {
		var P = hz._7;
		hz._7 = Date.now();
		if (Date.now() - P > 300) return;
		F.preventDefault();
		F.stopPropagation();
		this.n4.setAttribute("draggable", "false");
		var o = new c$.ir(this.nM, this.T0.bind(this))
	};
	hz.prototype.T0 = function (F) {
		this.nQ({
			e: h.u$,
			n: this.oY.index,
			name: F
		})
	};
	hz.prototype.a0V = function (F) {
		this.nQ({
			e: h.yf,
			n: this.oY.index
		})
	};
	hz.prototype.abe = function (F) {
		if (this.o5(F, F.target, this.kB(F))) return;
		var P = F.sourceCapabilities;
		if (P) P = P.firesTouchEvents;
		if (F.button != 2 && P != !0) return;
		var o = this.kB(F);
		console.log(o);
		if (o != 3 && F.currentTarget == this.afp) o = 4;
		if (F.target == this.aiA) o = 5;
		var X = new l("rclick", !0);
		X.data = {
			n: this.oY.index,
			kB: o,
			cQ: i.oA(F, document.body)
		};
		this.w(X)
	};
	hz.prototype.kB = function (F) {
		var P = F.target,
			o = P.parentNode;
		return o == this.m7 ? 2 : o == this.Mn ? 1 : o == this.bA ? 0 : o == this.bn ? 3 : -1
	};
	hz.prototype.agZ = function (F) {
		var P = F.target,
			d = 0;
		if (P == this.XQ || P == this.Wy || P == this.E_ || P == this.VC || P.tagName && P.tagName.toLowerCase() == "input") return;
		var o = this.kB(F),
			X = this.parent.EA,
			Y = this.oY.index,
			y = X.r[Y];
		if (P == this.jd) {
			this.nQ({
				e: h.Lm,
				n: Y,
				uB: [
					[!1, !1, !1, !1, !1],
					[0, 1, 2, 3, 31]
				]
			});
			return
		}
		if (F.button == 0 && F.detail == 2) {
			if (P == this.nM) return;
			var z = new l(i.E.H, !0),
				s = new l(i.E.L, !0),
				t = new l(i.E.QJ, !0);
			if (o == 0 && (b_.get(y.add) || y.add.SoCo || y.add.GdFl || y.add.PtFl)) s.data = {
				e: i.B.xS,
				W2: c$.YP.Qm
			};
			else if (o != 0 && o != -1) s.data = {
				e: i.B.xS,
				W2: c$.YP.Qm
			};
			else if (o == 0 && y.add.SoLd) t.data = {
				Bm: "placedLayerEditContents",
				w1: {
					classID: "placedLayerEditContents"
				}
			};
			else if (o == 0 && y.add.TySh) {
				z.Q = B.OX;
				z.data = {
					e: "editCurr",
					z3: Y
				}
			} else s.data = {
				e: i.B.uH,
				W2: "layerstyle",
				n: Y
			};
			this.w(t.data ? t : s.data ? s : z);
			return
		}
		if (this.o5(F, P, o)) return;
		if (F.button != 0) return;
		var U = {
			e: h.Tq,
			n: Y,
			wH: o
		};
		this.nQ(U);
		if (F.altKey) {
			if (o == 1 || o == 3) {
				var z = new l(i.E.H, !0);
				z.Q = B.QS;
				z.data = {
					e: "mskView",
					C: d != 0 ? 0 : F.shiftKey ? 1 : 2
				};
				this.w(z)
			} else {
				this.nQ({
					e: h.zO,
					n: Y
				})
			}
			return
		}
	};
	hz.prototype.o5 = function (F, P, o) {
		if ((F.ctrlKey || F.metaKey) && (o == 0 || o == 1 || o == 2)) {
			var X = 0;
			if (F.shiftKey) X++;
			if (F.altKey) X += 2;
			var Y = new l(i.E.H, !0);
			Y.Q = B.j1;
			Y.data = {
				e: "fromlayer",
				oI: [this.oY.index, o, X]
			};
			this.w(Y);
			return !0
		}
		return !1
	};
	hz.prototype.nQ = function (F) {
		var P = new l(i.E.H, !0);
		P.data = F;
		P.Q = B.xC;
		this.w(P)
	};
	cH.zS = function (F, P, o, X, Y, y, z) {
		au.call(this);
		this.a6T = P;
		this.Ab = o;
		this.index = y;
		this.u = i.z("div", "styleitem");
		this.n4 = i.z("div", "head");
		this.ng = i.z("div", "eye gsicon");
		this.nM = i.z("div", "label");
		this.u.appendChild(this.n4);
		this.n4.appendChild(this.ng);
		if (z) {
			this.Mn = z;
			this.n4.appendChild(this.Mn);
			this.n4.setAttribute("style", "height: " + (z.firstChild.height / i.J() + 10) + "px")
		}
		this.nM.innerHTML = F;
		this.u.setAttribute("style", "margin-left: " + (24 + X * 16 + Y * 22) + "px");
		this.n4.appendChild(this.nM);
		this.ng.addEventListener("click", this.aeo.bind(this), !1);
		var s = this.u;
		s.setAttribute("draggable", "true");
		s.addEventListener("dragstart", this.Gs.bind(this), !1);
		if (!0) {
			s.addEventListener("drop", this.b1.bind(this), !1);
			s.addEventListener("dragover", this.lR.bind(this), !1);
			s.addEventListener("dragenter", i.OZ, !1);
			s.addEventListener("dragleave", this.Sq.bind(this), !1)
		}
		this.u.addEventListener("click", this.NL.bind(this), !1)
	};
	cH.zS.prototype = new au;
	cH.zS.prototype.Gs = function (F) {
		F.stopPropagation();
		F.dataTransfer.setData("Text", JSON.stringify({
			iy: this.a6T,
			q_: this.parent.oY.index,
			sG: this.index
		}))
	};
	cH.zS.prototype.Sq = function (F) {
		i.OZ(F);
		this.ES()
	};
	cH.zS.prototype.b1 = function (F) {
		i.OZ(F);
		this.ES();
		var P = F.dataTransfer.getData("Text");
		if (P == "") return;
		var P = JSON.parse(P);
		hz.UZ(F, P, this.parent, this.index + (hz.d6(F, this.n4) > .5 ? 0 : 1))
	};
	cH.zS.prototype.lR = function (F) {
		i.OZ(F);
		var P = hz.d6(F, this.n4) > .5;
		this.ES();
		var o = "border-" + (P ? "bottom" : "top");
		this.n4.style[o] = "0.2em solid rgba(0,0,0,0.5)"
	};
	cH.zS.prototype.ES = function (F) {
		this.n4.style.border = "none"
	};
	cH.zS.prototype.vR = function (F) {
		var P = 15;
		if (1 < i.J() && i.J() < 1.5) P = P / i.J();
		this.ng.setAttribute("style", "background-size: " + P + "px " + P + "px;");
		this.ng.style.opacity = F ? 1 : .2
	};
	cH.zS.prototype.NL = function (F) {
		if (F.target == this.ng) return;
		if (F.detail != 1 && this.Ab != null) {
			var P = this.parent.oY.index,
				o = new l(i.E.L, !0);
			if (this.Ab.indexOf("afw_") == 0) o.data = cj.Fr.Dl(this.Ab.slice(4), {
				n: P,
				index: this.index
			});
			else o.data = {
				e: i.B.uH,
				W2: this.Ab,
				n: P,
				index: this.index
			};
			this.w(o)
		}
	};
	cH.zS.prototype.aeo = function (F) {
		var P = {
			fm: h.Hl,
			f: h.y6,
			sm: h.r5,
			s: h.Dv
		} [this.a6T];
		this.parent.nQ({
			e: P,
			n: this.parent.oY.index,
			index: this.index
		})
	};

	function b5() {
		c$.call(this, "Guide Guy", !1, null, c$.YP.a13);
		this.nc = null;
		this.eh = [];
		var F = i.z("div", "form padded");
		this.VI.appendChild(F);
		F.setAttribute("style", "width:200px");
		this.VI.appendChild(F);
		var P = i.z("canvas"),
			o = P.getContext("2d");
		P.width = P.height = 160;
		var X = [32, 0, 16, 160, 0, 32, 160, 16, 0, 112, 160, 16],
			Y = "Margin Left,Margin Top,Margin Right,Margin Bottom,Column Count,Row Count,Column Width,Row Height,Column Gap,Row Gap".split(","),
			y = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
		for (var w = 0; w < 10; w++) {
			o.clearRect(0, 0, 160, 160);
			o.setTransform(1, 0, 0, 1, 80, 80);
			o.rotate((w & 3) * Math.PI / 2);
			o.translate(-80, -80);
			o.fillStyle = "rgba(0,0,0,0.3)";
			if (w < 4) {
				for (var z = 0; z < 12; z += 4) {
					o.fillStyle = z == 0 ? "#000000" : "rgba(0,0,0,0.3)";
					o.fillRect(X[z], X[z + 1], X[z + 2], X[z + 3])
				}
			} else if (w < 6) {
				var s = 8 * 6;
				o.fillRect(0, 0, s, 160);
				o.fillRect(8 * 7, 0, s, 160);
				o.fillStyle = "#000000";
				o.fillRect(8 * 14, 0, s, 160)
			} else if (w < 8) {
				o.fillRect(0, 0, 16, 160);
				o.fillRect(160 - 16, 0, 16, 160);
				o.fillRect(32, 0, 160 - 64, 160);
				o.fillStyle = "#000000";
				o.fillRect(32, 80 - 8, 160 - 64, 8 * 1)
			} else {
				o.fillRect(0, 0, 8 * 7, 160);
				o.fillRect(8 * 13, 0, 160, 160);
				o.fillStyle = "#000000";
				o.fillRect(8 * 7, 80 - 8, 8 * 6, 8 * 1)
			}
			var t = "<img src=\"" + P.toDataURL() + "\" class=\"autoscale gsicon\" /> ",
				d = new gJ(t, 0, 200, w == 4 || w == 5 ? null : "px", null, null, null, 4, Y[w]);
			d.parent = this;
			d.$(i.E.I, this.aiL, this);
			d.k(y[w]);
			d.t();
			this.eh.push(d);
			F.appendChild(d.u)
		}
		var U = ["Add Guides", "Clear Guides"];
		this.C8 = [];
		for (var w = 0; w < U.length; w++) {
			var v = new fV(U[w], !0, null, !0);
			this.C8.push(v);
			v.$("click", this.AE, this);
			F.appendChild(v.u)
		}
		for (var w = 0; w < 6; w++) {
			o.setTransform(1, 0, 0, 1, 80, 80);
			o.rotate(Math.floor(w / 3) * Math.PI / 2);
			o.translate(-80, -80);
			o.clearRect(0, 0, 160, 160);
			o.fillStyle = "rgba(0,0,0,0.3)";
			o.fillRect(0, 0, 160, 160);
			o.clearRect(16, 16, 128, 128);
			o.fillStyle = "#000000";
			var A = w % 3;
			o.fillRect([0, 9, 18][A] * 8, 0, 16, 160);
			var t = "<img src=\"" + P.toDataURL() + "\" class=\"autoscale gsicon\" /> ",
				v = new fV(t, !1, null, !1);
			this.C8.push(v);
			v.$("click", this.AE, this);
			F.appendChild(v.u)
		}
	}
	b5.prototype = new c$("");
	b5.prototype.aiL = function (F) {
		var P = this.eh,
			o = P.indexOf(F.target),
			X = Math.floor(o / 2),
			Y = o & 1,
			y = [];
		for (var w = 0; w < 4; w++) y.push(P[2 * w + Y].q());
		var z = -1;
		if (X == 2 && y[2] != 0 && y[3] != 0 && y[4] != 0) z = 4;
		if (X == 3 && y[3] != 0 && y[2] != 0 && y[4] != 0) z = 4;
		if (X == 4 && y[4] != 0 && y[2] != 0 && y[3] != 0) z = 3;
		if (z != -1) P[2 * z + Y].k(0)
	};
	b5.prototype.AE = function (F) {
		var P = this.nc,
			o = this.C8.indexOf(F.target),
			X = [
				[],
				[]
			];
		if (P == null) return;
		var Y = P.K ? P.K.rect : new ev(0, 0, P.Z, P.h),
			y = Y.Z,
			z = Y.h;
		if (o == 0) {
			var s = [
				[],
				[]
			];
			for (var w = 0; w < this.eh.length; w++) s[w & 1].push(this.eh[w].q());
			X = [b5.Ii(s[0], Y.x, Y.x + y), b5.Ii(s[1], Y.y, Y.y + z)];
			B.qT.Zk(X, P.ei)
		} else if (o == 1) {} else {
			o -= 2;
			var t = Math.floor(o / 3),
				X = [
					[],
					[]
				];
			X[t].push([Y.x, Y.x + y / 2, Y.x + y, Y.y, Y.y + z / 2, Y.y + z][o]);
			B.qT.Zk(X, P.ei)
		}
		var d = function (U, v) {
			return U - v
		};
		X[0].sort(d);
		X[1].sort(d);
		this.akz(X)
	};
	b5.prototype.a3$ = function (F) {
		var P = this.afZ.indexOf(F.target)
	};
	b5.prototype.akz = function (F) {
		var P = new l(i.E.H, !0);
		P.Q = B.fb;
		P.data = {
			e: "gids",
			lZ: F
		};
		this.w(P)
	};
	b5.Ii = function (F, P, o) {
		var X = [],
			Y = F[2],
			y = F[3],
			z = F[4],
			s = 0;
		if (Y == 0) s++;
		if (y == 0) s++;
		if (z == 0) s++;
		if (s > 1 && Y == 0 && y == 0) {
			if (F[0] != 0) X.push(P + F[0]);
			if (F[1] != 0) X.push(o - F[1]);
			return X
		}
		var t = o - P - F[0] - F[1];
		if (Y == 0) {
			if (z == 0) {
				Y = Math.floor(t / y);
				z = (t - Y * y) / (Y - 1)
			} else {
				Y = 1;
				while (y * Y + z * (Y - 1) + y + z <= t) Y++
			}
		} else if (Y != 0 && y != 0) {
			if (Y * y > t) Y = Math.floor(t / y);
			z = (t - Y * y) / (Y - 1)
		}
		X.push(P + F[0], o - F[1]);
		var y = (t - z * (Y - 1)) / Y;
		for (var w = 1; w < Y; w++) {
			if (z == 0) X.push(P + F[0] + w * y);
			else X.push(P + F[0] + w * y + (w - 1) * z, P + F[0] + w * y + w * z)
		}
		return X
	};
	b5.prototype.Vp = function (F) {
		this.nc = F
	};

	function dK() {
		c$.call(this, [9, 2], !1, null, c$.YP.Qm);
		this.akj = null;
		this.cz = null;
		this.yH = null;
		this.a6j = -1
	}
	dK.prototype = new c$("");
	dK.prototype.sr = function () {
		this.ZM = i.z("div", "padded");
		this.ZM.style.width = "22em";
		this.VI.appendChild(this.ZM);
		var F = i.z("span", "fitem");
		this.ZM.appendChild(F);
		this.va = [new fV([0, 3]), new fV([12, 73]), new fV([12, 91, 0])];
		for (var w = 0; w < this.va.length; w++) {
			var P = this.va[w];
			P.$("click", this.ai8, this);
			F.appendChild(P.u)
		}
		this.ZM.appendChild(i.z("hr"));
		this.cV = new dK.ol;
		this.cV.parent = this;
		this.zA = new dK.qn;
		this.zA.parent = this;
		this.qd = new dK.Kk;
		this.qd.parent = this;
		this.a6w = [this.cV, this.zA, this.qd];
		this.ZM.appendChild(this.cV.u)
	};
	dK.prototype.ai8 = function (F) {
		var w = this.va.indexOf(F.currentTarget);
		this.Xo(w);
		this.pB(w == 1 ? this.zA.uR : -1)
	};
	dK.prototype.Xo = function (F) {
		for (var w = 0; w < 3; w++) {
			this.va[w].pe();
			var P = this.a6w[w].u;
			if (P.parentNode == this.ZM && w != F) this.ZM.removeChild(P);
			if (P.parentNode != this.ZM && w == F) this.ZM.appendChild(P)
		}
		this.va[F].V2()
	};
	dK.prototype.pB = function (F) {
		var P = this.cz.p[0],
			o = this.cz.r[P],
			X = F + 1;
		if (F == 1 && o.yb) return;
		var Y = new l(i.E.H, !0);
		Y.Q = B.xC;
		if (F != 1 && o.yb) {
			Y.data = {
				e: h.Tq,
				n: P,
				wH: 2
			};
			this.w(Y)
		}
		Y.data = {
			e: h.Tq,
			n: P,
			wH: X
		};
		this.w(Y)
	};
	dK.prototype.t = function () {
		c$.prototype.t.call(this);
		if (this.ZM == null) return;
		this.Vp(this.cz);
		for (var w = 0; w < 3; w++) {
			this.va[w].t();
			this.a6w[w].t()
		}
	};
	dK.prototype.q0 = function () {
		if (!i.WW(this.VI)) return;
		if (this.ZM == null) {
			this.sr();
			this.AK(this.yH, ge.oc);
			this.Vp(this.akj);
			this.t()
		}
	};
	dK.prototype.Vp = function (F) {
		this.akj = F;
		if (this.ZM == null) return;
		this.cV.Vp(F);
		this.zA.Vp(F);
		this.qd.Vp(F);
		if (F == null || F.p.length == 0) {
			i.KL(this.VI, "disabled");
			this.cz = null;
			return
		} else i.sT(this.VI, "disabled");
		var P = F.p[0],
			o = F.r[P],
			X = F.Cj(),
			Y = X[0],
			y = X[1];
		if (y.length != 0) {
			var z = Y[y[0]],
				s = z.add.vogk,
				t = !1;
			if (s)
				for (var w = 0; w < s.length; w++) {
					var d = s[w].v,
						U = d.keyShapeInvalidated;
					if (U && U.v || d.keyOriginType == null) continue;
					t = !0;
					P = z.XN
				}
		}
		if (F != this.cz || this.a6j != P) {
			this.cz = F;
			this.a6j = P;
			if (t) this.Xo(2);
			else if (o.kB < 1 && !o.yb) this.Xo(0);
			else this.Xo(1)
		}
		this.va[1].b0(this.zA.uR != -1);
		this.va[2].b0(t)
	};
	dK.prototype.AK = function (F, P) {
		this.yH = F;
		if (this.cV) this.cV.AK(F, P)
	};
	dK.ol = function () {
		au.call(this);
		this.u = i.z("div", "form");
		this.amd = new dC("Hello");
		this.u.appendChild(this.amd.u);
		this.pF = null;
		this.a39 = null;
		this.cz = null;
		this.aec = -1;
		this.aew = null;
		this.a7 = new eH(!0);
		this.a7.parent = this;
		this.a7.$(i.E.I, this.a7R, this);
		this.oJ = i.z("div", "marged hiline");
		this.oJ.appendChild(this.a7.u);
		this.te = new e8("GrFl", !0);
		this.te.parent = this;
		this.te.$(i.E.I, this.ahb, this);
		this.g1 = i.z("div", "marged hiline");
		var F = "Grad Rvrs Type Algn Angl Dthr Scl Ofst".split(" ");
		for (var w = 0; w < F.length; w++) {
			var P = this.te.tV[F[w]].u;
			this.g1.appendChild(P)
		}
		this.yi = new e8("patternFill", !0);
		this.yi.parent = this;
		this.yi.$(i.E.I, this.aiW, this);
		this.oG = i.z("div", "marged hiline");
		var F = ["Ptrn", "Scl", "Algn", "phase"];
		for (var w = 0; w < F.length; w++) {
			var P = this.yi.tV[F[w]].u;
			this.oG.appendChild(P)
		}
		this.pU = {};
		for (var o in b_.names) {
			if (f[o] == null) continue;
			this.pU[o] = new f[o];
			this.pU[o].$(i.E.I, this.a9J, this);
			this.pU[o].parent = this
		}
		var X = this.adK = i.z("div", "marged hiline");
		this.lF = dK.TH(["W", "H", "X", "Y"], null, X, this.uM, this);
		this.BW = new gq([12, 46], [
			[13, 1, 8],
			[13, 1, 10],
			[13, 1, 9],
			[12, 47]
		]);
		this.BW.$(i.E.I, this.uM, this);
		X.appendChild(this.BW.u);
		this._C = new eH(!1);
		this._C.parent = this;
		this._C.$(i.E.I, this.uM, this);
		X.appendChild(this._C.u)
	};
	dK.ol.prototype = new au;
	dK.ol.prototype.t = function () {
		for (var F in this.pU) this.pU[F].t();
		this.te.t();
		this.yi.t();
		this.BW.t();
		for (var w = 0; w < 4; w++) this.lF[w].t()
	};
	dK.ol.prototype.uM = function (F) {
		var P = dK.uj(this.lF),
			o = h.xE(new ev(P[2], P[3], P[0], P[1])),
			X = this.BW.q(),
			Y = {
				classID: "artboard",
				artboardRect: {
					t: "Objc",
					v: o
				},
				Clr: {
					t: "Objc",
					v: this._C.q()
				},
				artboardBackgroundType: {
					t: "long",
					v: X + 1
				}
			},
			y = new l(i.E.H, !0);
		y.Q = B.xC;
		y.data = {
			e: h.K6,
			eR: Y
		};
		this.w(y)
	};
	dK.ol.prototype.a7R = function (F) {
		var P = this.cz,
			o = P.p[0];
		if (P.r[o].add.SoCo == null) return;
		var X = JSON.parse(JSON.stringify(P.r[o].add.SoCo));
		X.Clr.v = this.a7.q();
		this.Zw({
			d1: 1,
			qA: X
		})
	};
	dK.ol.prototype.ahb = function (F) {
		var P = this.cz,
			o = P.p[0];
		if (P.r[o].add.GdFl == null) return;
		this.Zw({
			d1: 2,
			qA: this.te.q()
		})
	};
	dK.ol.prototype.aiW = function (F) {
		this.Zw({
			d1: 3,
			qA: this.yi.q()
		})
	};
	dK.ol.prototype.Zw = function (F) {
		this._t(B.xC, {
			e: h.WF,
			Ev: [this.cz.p[0]],
			jK: !0,
			C: F
		})
	};
	dK.ol.prototype.a9J = function (F) {
		this._t(B.Vd, {
			e: "edit_layer",
			C: this.a39.q()
		})
	};
	dK.ol.prototype._t = function (F, P) {
		var o = new l(i.E.H, !0);
		o.Q = F;
		o.data = P;
		this.w(o)
	};
	dK.ol.prototype.Vp = function (F) {
		var P = h9.get([0, 3]),
			o = null;
		this.cz = F;
		if (F && F.r.length > 0 && F.p.length != 0) {
			var X = F.r[F.p[0]],
				Y = b_.get(X.add);
			if (Y != null && this.pU[Y] != null) {
				o = this.pU[Y].u;
				this.a39 = this.pU[Y];
				this.pU[Y].k(X.add[Y]);
				if (F.p[0] != this.aec) {
					var y = F.lD(F.p[0] - 1);
					this.aew = H.NC(y)
				}
				this.pU[Y].iM(this.aew);
				P = h9.get(b_.names[Y])
			}
			if (X.add.SoCo) {
				o = this.oJ;
				this.a7.k(X.add.SoCo.Clr.v);
				P = h9.get([6, 48, 0, 0])
			}
			if (X.add.GdFl) {
				o = this.g1;
				this.te.update(F, X.add.GdFl);
				P = h9.get([6, 48, 0, 1])
			}
			if (X.add.PtFl) {
				o = this.oG;
				this.yi.update(F, X.add.PtFl);
				P = h9.get([6, 48, 0, 2])
			}
			if (X.add.artb) {
				var z = X.add.artb,
					s = X.sc();
				o = this.adK;
				this.BW.k(z.artboardBackgroundType.v - 1);
				if (z.Clr) this._C.k(z.Clr.v);
				dK.ev(this.lF, [s.Z, s.h, s.x, s.y]);
				P = "Artboard"
			}
			this.aec = F.p[0]
		}
		if (o != this.pF) {
			if (this.pF) this.u.removeChild(this.pF);
			if (o != null) this.u.appendChild(o);
			this.pF = o
		}
		this.amd.k(P)
	};
	dK.ol.prototype.AK = function (F, P) {
		this.te.AK(F, P);
		this.yi.AK(F, P);
		for (var o in this.pU) this.pU[o].AK(F, P)
	};
	dK.qn = function () {
		au.call(this);
		this.u = i.z("div", "form");
		this.cz = null;
		this.uR = 0;
		var F = i.z("span", "fitem");
		this.u.appendChild(F);
		this.va = [new fV([6, 2]), new fV([6, 3]), new fV([6, 50])];
		for (var w = 0; w < this.va.length; w++) {
			var P = this.va[w];
			P.$("click", this.a2D, this);
			F.appendChild(P.u)
		}
		this.gh = new be([12, 74], 0, 255);
		this.gh.$(i.E.I, this.H6, this);
		this.u.appendChild(this.gh.u);
		this.l8 = new be([7, 6], 0, 500, "px", 2, !0);
		this.l8.$(i.E.I, this.H6, this);
		this.u.appendChild(this.l8.u)
	};
	dK.qn.prototype = new au;
	dK.qn.prototype.H6 = function (F) {
		var P = this.gh.q(),
			X = this.l8.q(),
			Y = new l(i.E.H, !0);
		Y.Q = B.xC;
		Y.data = {
			e: h.IM,
			Sa: this.cz.p[0],
			j$: {
				SA: this.uR,
				gh: P,
				l8: X
			}
		};
		this.w(Y)
	};
	dK.qn.prototype.t = function () {
		for (var w = 0; w < this.va.length; w++) this.va[w].t();
		this.gh.t();
		this.l8.t()
	};
	dK.qn.prototype.Vp = function (F) {
		this.cz = F;
		this.nF()
	};
	dK.qn.prototype.a2D = function (F) {
		this.nF(this.va.indexOf(F.currentTarget));
		this.parent.pB(this.uR)
	};
	dK.qn.prototype.nF = function (F) {
		var P = this.cz,
			o = this.va;
		for (var w = 0; w < 3; w++) {
			var X = o[w];
			X.pe();
			X.U3()
		}
		if (P == null || P.r.length == 0 || P.p.length == 0) return;
		var Y = -1,
			y = P.r[P.p[0]];
		if (y.gO() && y.yg(P).g != null) {
			o[2].R8();
			Y = 2
		}
		if (y.add.vmsk) {
			o[1].R8();
			Y = 1
		}
		if (y.jk()) {
			o[0].R8();
			Y = 0
		}
		if (F != null) Y = F;
		else if (y.yb) Y = 1;
		else if (y.kB == 3) Y = 2;
		else if (y.kB == 1) Y = 0;
		this.uR = Y;
		if (Y == -1) {
			this.gh.U3();
			this.l8.U3();
			return
		}
		var z = y.rq(Y);
		this.gh.R8();
		this.l8.R8();
		this.gh.k(z.gh);
		this.l8.k(z.l8);
		o[Y].V2()
	};
	dK.Kk = function () {
		au.call(this);
		this.u = i.z("div", "form");
		this.Ux = 1;
		this.nX = i.z("div");
		this.S8 = dK.TH(["W", "H", "X", "Y"], [12, 51], this.nX, this.ha, this);
		this.Pz = i.z("div");
		var F = ["\u250F", "\u2513", "\u2517", "\u251B"];
		this.ZR = dK.TH(F, [12, 91, 2], this.Pz, this.ha, this)
	};
	dK.Kk.prototype = new au;
	dK.Kk.prototype.t = function () {
		i.$d(this.S8[0], this.S8[1]);
		for (var w = 2; w < 5; w++) {
			this.S8[w].t()
		}
		this.ZR[4].t()
	};
	dK.TH = function (F, P, o, X, Y) {
		var y = i.z("div", "numlist");
		o.appendChild(y);
		var z = [];
		for (var w = 0; w < 4; w++) {
			var s = new gJ(F[w], 0, 0, null, 1, !1, !0);
			s.$(i.E.I, X, Y);
			y.appendChild(s.u);
			z.push(s);
			if (w == 1 || w == 3) i.Rf(y)
		}
		if (P) {
			z[4] = new aD(P);
			z[4].k(!0);
			o.appendChild(z[4].u)
		}
		return z
	};
	dK.ev = function (F, P) {
		for (var w = 0; w < 4; w++) F[w].k(P[w])
	};
	dK.uj = function (F) {
		var P = [];
		for (var w = 0; w < 4; w++) P[w] = F[w].q();
		return P
	};
	dK.Kk.prototype.ha = function (F) {
		var P = this.S8.indexOf(F.currentTarget),
			o = this.ZR.indexOf(F.currentTarget),
			X = [null, null, null, null],
			Y = [null, null, null, null];
		if (P != -1) {
			var y = dK.uj(this.S8),
				z = this.S8[4].q();
			y[0] = Math.max(1, y[0]);
			y[1] = Math.max(1, y[1]);
			if (z && P == 0) y[1] = y[0] / this.Ux;
			if (z && P == 1) y[0] = y[1] * this.Ux;
			X[0] = y[2];
			X[1] = y[3];
			X[2] = X[0] + y[0];
			X[3] = X[1] + y[1]
		}
		if (o != -1) {
			var y = dK.uj(this.ZR);
			Y[o] = Math.max(0, y[o]);
			if (this.ZR[4].q())
				for (var w = 0; w < 4; w++) Y[w] = Y[o];
			var s = Y[3];
			Y[3] = Y[2];
			Y[2] = s
		}
		var t = new l(i.E.H, !0);
		t.Q = B.xC;
		t.data = {
			e: h.I8,
			gx: X,
			ahs: Y
		};
		this.w(t)
	};
	dK.Kk.prototype.Vp = function (F) {
		if (F == null) return;
		var P = this.nX.parentNode != null,
			o = this.Pz.parentNode != null,
			X = H.P$.bg(F),
			Y = X[0],
			y = X[1];
		if (Y) {
			if (!P) this.u.appendChild(this.nX);
			this.Ux = (Y[2] - Y[0]) / (Y[3] - Y[1]);
			dK.ev(this.S8, [Y[2] - Y[0], Y[3] - Y[1], Y[0], Y[1]])
		} else if (P) this.u.removeChild(this.nX);
		if (y) {
			if (!o) this.u.appendChild(this.Pz);
			var z = y[2];
			y[2] = y[3];
			y[3] = z;
			dK.ev(this.ZR, y)
		} else if (o) this.u.removeChild(this.Pz)
	};

	function fp(F) {
		c$.call(this, F.name, !0);
		this.EA = F;
		this.s0 = null;
		this.eq = [];
		this.MN = !1;
		this.AF = {
			x: 0,
			y: 0,
			Ku: !1
		};
		this.jN = !0;
		this.vf = document.createElement("canvas");
		this.PF = this.vf.getContext("2d");
		this.ob = document.createElement("canvas");
		this.xX = this.ob.getContext("2d");
		var P = 16,
			o = H.R(16 * 16 * 4);
		H.RK(o, P, P, 8, 0, 0);
		this.xU = H.scale._$(o, P, P);
		this.adP = this.Qf.bind(this);
		this.rK = this.Ap.bind(this);
		this.a2z = this.sj.bind(this);
		var X = this.VI;
		i.X8(X, this.adP);
		i.Jr(X, this.rK);
		X.addEventListener("wheel", this.vQ.bind(this), !1);
		X.addEventListener("contextmenu", this.am2.bind(this), !1);
		this.gT = 0;
		this.a4K = "";
		this.WZ = 4;
		i.w4(X)
	}
	fp.prototype = new c$;
	fp.prototype.t3 = function () {
		if (this.EA.ry()) return window.confirm(h9.get([22, 6, 3]) + " " + this.EA.name + ". " + h9.get([22, 6, 4]));
		return !0
	};
	fp.prototype.vA = function (F) {
		F.preventDefault()
	};
	fp.prototype.BC = function (F) {
		var P = -1,
			o = this.eq;
		for (var w = 0; w < o.length; w++)
			if (o[w].pointerId == F.pointerId) P = w;
		return P
	};
	fp.prototype.Qf = function (F) {
		var P = this.BC(F);
		if (P != -1) this.eq[P] = F;
		else this.eq.push(F);
		if (this.eq.length == 1) {
			var o = F.button != null && F.button != 0 ? "rdown" : "down",
				X = new l("mouse", !0);
			X.action = o;
			this.NV(F, X);
			this.w(X);
			i.NG(this.VI, this.rK);
			i.Jr(window, this.rK);
			i.so(window, this.a2z)
		}
		if (this.eq.length == 2) {
			this.lG("multidown");
			this.MN = !0
		}
	};
	fp.prototype.Ap = function (F) {
		var P = this.BC(F);
		if (P != -1) this.eq[P] = F;
		if (this.eq.length > 1) {
			this.lG("multimove")
		}
		if (this.MN) return;
		var o = new l("mouse", !0);
		o.action = "move";
		this.NV(F, o);
		this.w(o)
	};
	fp.prototype.sj = function (F) {
		var P = this.eq,
			o = this.BC(F);
		P.splice(o, 1);
		if (P.length == 0) {
			var X = F.button != null && F.button > 0 ? "rup" : "up",
				Y = new l("mouse", !0);
			Y.action = X;
			this.NV(F, Y);
			this.w(Y);
			i.NG(window, this.rK);
			i.Sz(window, this.a2z);
			i.Jr(this.VI, this.rK);
			this.MN = !1
		}
	};
	fp.prototype.vQ = function (F) {
		this.vA(F);
		if (F.deltaX == 0 && F.deltaY == 0) return;
		var P = new l("mouse", !0);
		P.action = "scroll";
		P.d_ = F.ctrlKey;
		this.NV(F, P);
		this.w(P)
	};
	fp.prototype.am2 = function (F) {
		i.OZ(F);
		var P = F.sourceCapabilities;
		if (P) P = P.firesTouchEvents;
		if (P) {
			var o = new l("mouse", !0);
			this.NV(F, o);
			o.action = "rdown";
			this.w(o);
			o.action = "rup";
			this.w(o)
		}
	};
	fp.prototype.lG = function (F) {
		var P = this.eq,
			o = i.J(),
			X = [];
		for (var w = 0; w < P.length; w++) {
			var Y = X[w] = i.oA(P[w], this.VI);
			Y.x *= o;
			Y.y *= o
		}
		var y = new l("mouse", !0);
		y.action = F;
		y.vD = X;
		this.w(y)
	};
	fp.prototype.NV = function (F, P, o) {
		var X = this.eq.length != 0;
		if (P.action != "up") {
			var Y = i.J();
			if (o == null) o = i.oA(F, this.VI);
			this.AF = P.yZ = {
				x: Y * o.x,
				y: Y * o.y,
				Ku: X
			};
			var y = i.oA(F, document.body);
			P.yZ.Bx = y.x;
			P.yZ.yG = y.y
		} else this.AF = P.yZ = {
			x: this.AF.x,
			y: this.AF.y,
			Ku: X
		};
		P.yZ.kH = 1;
		if (F.pressure != null && F.pressure != 0) P.yZ.kH = F.pressure * 2;
		if (F.deltaX != null) {
			var z = F.deltaMode == 0 ? 1 : 40;
			P.Dk = new aH(F.deltaX * z, F.deltaY * z)
		}
	};
	fp.prototype.AK = function (F, P) {
		this.s0 = F
	};
	fp.prototype.Vp = function (F) {
		this.q0();
		this.qK()
	};
	fp.prototype.l9 = function (F, P) {
		if (F <= 0 || P <= 0) return;
		this.YY = F;
		this.mi = P;
		var o = this.EA,
			X = i.J();
		o.a.xX.Z = Math.floor(F * X);
		o.a.xX.h = Math.floor(P * X);
		i.Tv(this.ob, F, P);
		i.Tv(this.vf, F, P);
		i.Tv(k.Oa(), F, P);
		if (o.a.F == 0) o.a.F = B.$h.P9(o.Z, o.h, F * X, P * X);
		this.jN = !0;
		this.qK()
	};
	fp.prototype.q0 = function () {
		var F = this.VI.firstChild;
		if (!k.pQ && F == k.Oa() || k.pQ && F == this.ob) this.VI.removeChild(F);
		this.VI.appendChild(k.pQ ? k.Oa() : this.ob)
	};
	fp.prototype.qK = function () {
		if (k.pQ != this.WZ) {
			this.gT = 0;
			this.a4K = "";
			this.jN = !0
		}
		this.WZ = k.pQ;
		if (this.s0 == null) return;
		if (k.pQ) this.a2X();
		else this.Z0();
		var F = this.EA;
		this.gT = F.a.F;
		this.a4K = JSON.stringify(F.a.qa);
		this.jN = !1
	};
	fp.prototype.a2X = function () {
		if (k.pQ && fp.a2q == null) fp.a2q = new fp.Nb(!1);
		if (k.pQ && fp.a1e == null) fp.a1e = new fp.Nb(!0);
		var F = this.EA,
			d;
		if (F.Z_ == null) return;
		var P = F.a,
			o = P.xX.Z,
			X = P.xX.h,
			Y = k.ui;
		this.xX.clearRect(0, 0, o, X);
		var y = this.eJ(F);
		if (P.D6 == null) P.D6 = new k._B(o, X);
		if (y) P.D6.set(this.ob);
		else {
			k.k1(P.D6);
			k.OL(0)
		}
		var z = P._R(0, 0),
			s = new cu;
		s.scale(o, X);
		s.concat(P.c5());
		s.scale(1 / F.Z, 1 / F.h);
		var t = [s.m, s.i, 0, s.p$, s.xA, 0, s.PV, s.ye, 1],
			U = [0, 0, 0, 0];
		if (F.add.artd) {
			U = fp.Eh(F);
			d = fp.a1e
		} else d = fp.a2q;
		k.N6(o, X);
		k.OL(0);
		k.N6(o, X);
		d.kt();
		d.WL(P.D6.g3, F.Z_.g3, new Float32Array(t), new Float32Array([o / 8, X / 8, z.x / o, z.y / X]), F.Z, F.h, 1 / F.a.F, o, X, new Float32Array(U), new Float32Array(H.t1.yT(H.t1.$u(P.qa))));
		Y.drawArrays(Y.TRIANGLES, 0, 6)
	};
	fp.Eh = function (F) {
		var P = F.add.artd.canvasColor;
		if (P == null) return [0, 0, 0, 0];
		return fp.akL(P)
	};
	fp.akL = function (F) {
		var P = H.j.T6(F.v),
			o = [P.U / 255, P.S / 255, P.i / 255, 1];
		for (var w = 0; w < 4; w++) o[w] = Math.min(1, o[w]);
		return o
	};
	fp.ap = function (F, P) {
		var o = F[2] * 255;
		if (k.pQ) o = P ? 0 : Math.max(1, o);
		return "rgba(" + F[0] * 255 + "," + F[1] * 255 + "," + o + "," + F[3] + ")"
	};
	fp.O9 = function (F) {
		if (k.pQ)
			for (var w = 0; w < F.length; w += 4) {
				if (F[w + 2] == 0) F[w + 2] = 3
			}
	};
	fp.prototype.Z0 = function () {
		var F = this.EA;
		if (F.buffer == null) return;
		var P = F.a,
			o = P.xX,
			X = o.Z,
			Y = o.h,
			y = new ev(0, 0, F.Z, F.h);
		this.PF.clearRect(0, 0, X, Y);
		this.xX.clearRect(0, 0, X, Y);
		if (F.add.artd == null) {
			this.xX.save();
			var z = P.c5();
			z.nJ();
			var s = z.aT(new aH(0, 0));
			z.translate(-s.x, -s.y);
			this.xX.translate(Math.round(s.x), Math.round(s.y));
			this.xX.fillStyle = this.xU;
			this.Jm(H.D.z0(y), z, this.xX);
			this.xX.fill();
			this.xX.restore()
		} else {
			this.xX.fillStyle = fp.ap(fp.Eh(F));
			this.xX.fillRect(0, 0, X, Y)
		}
		if (P.lh.length != o.M()) {
			P.lh = H.R(o.M());
			P.ox = H.R(o.M() * 4)
		}
		P.ox.fill(0);
		H.scale.akF(F.buffer, y, P.c5(), P.ox, o);
		if (P.qa[0] + P.qa[1] + P.qa[2] != 3) H.t1.at(P.ox, P.ox, H.t1.$u(P.qa));
		this.PF.putImageData(new ImageData(new Uint8ClampedArray(P.ox.buffer), o.Z, o.h), 0, 0);
		this.xX.drawImage(this.vf, 0, 0);
		this.eJ(F)
	};
	fp.prototype.eJ = function (F) {
		var P = F.a,
			o = P.qa[0] + P.qa[1] + P.qa[2],
			X = !1,
			Y = [];
		for (var w = 0; w < F.p.length; w++) {
			var y = F.r[F.p[w]],
				z = y.kB;
			if (z != 1 && z != 3) continue;
			var s = z == 1 ? y.jk() : y.yg(F).g;
			if (s.gG) Y.push(s)
		}
		for (var w = 0; w < F.Yq.length; w++)
			if (F.Yq[w].gG) Y.push(F.Yq[w]);
		for (var w = 0; w < Y.length; w++) {
			var s = Y[w];
			this.U8(s, P, Y.length == 1 && o == 0 ? 2 : 1, s.color, s.u9);
			X = !0
		}
		var t = this.s0;
		X = this.a7G(F, this.xX, P) || X;
		if (F.K && t.IT && t.Np.X0) {
			this.U8(F.K, P, 0, 0, null);
			X = !0
		}
		return X
	};
	fp.prototype.U8 = function (F, P, o, X, Y) {
		var y = 0,
			A, Z;
		if (Y) y = Math.round(Y.i) << 16 | Math.round(Y.S) << 8 | Math.round(Y.U);
		var z = P.c5(),
			s = P.xX,
			t = new ev(0, 0, P.EA.Z, P.EA.h);
		if (P.lh.length != s.M()) {
			P.lh = H.R(s.M());
			P.ox = H.R(s.M() * 4)
		}
		P.lh.fill(X);
		P.ox.fill(0);
		var d = F.channel,
			U = F.rect;
		H.scale.O(d, U, z, P.lh, s);
		if (o == 0) H.K.a4U(P.lh, P.ox, s, s);
		else H.K.ac5(P.lh, P.ox, s, s, o, y);
		fp.O9(P.ox);
		var v = new ImageData(new Uint8ClampedArray(P.ox.buffer), s.Z, s.h);
		this.PF.putImageData(v, 0, 0);
		this.xX.save();
		if (o == 0) {
			A = s.clone();
			A.PK(-1, -1);
			Z = new cu
		} else {
			A = new ev(0, 0, t.Z, t.h);
			Z = z.clone();
			Z.nJ()
		}
		this.Jm(H.D.z0(A), Z, this.xX);
		this.xX.clip();
		this.xX.drawImage(this.vf, 0, 0);
		this.xX.restore()
	};
	fp.prototype.a7G = function (F, P, o) {
		var X = F.v.Kp || F.v.hK || F.v.zK || F.v.bU.length != 0 || F.v.Tw.length != 0,
			Y = this.s0,
			y = Y.Np,
			z = hw.lB[Y.hb],
			s = Math.round(12 * i.J()),
			t = s / F.a.F,
			d = o.c5();
		d.nJ();
		P.save();
		P.setTransform(d.m, d.i, d.p$, d.xA, d.PV, d.ye);
		if (F.add.artd) {
			var U = fp.Eh(F)[0];
			U = U < .5 ? U + .5 : U - .5;
			U = "" + Math.round(U * 255).toString(16);
			while (U.length < 2) U = "0" + U;
			P.fillStyle = "#" + U + U + U;
			P.font = t + "px sans-serif";
			for (var w = 0; w < F.r.length; w++) {
				var v = F.r[w];
				if (v.add.artb == null || !v.UQ()) continue;
				var A = v.sc();
				P.fillText(v.getName(), A.x, A.y - 6 / o.F);
				X = !0
			}
		}
		var Z = fp.ap([.1, .5, 1, 1]),
			D = fp.ap([1, 1, 1, 1]);
		if (Y.IT && y.VW) {
			P.fillStyle = P.strokeStyle = Z;
			P.lineWidth = 1.5 / o.F;
			var q = F.Cj(),
				R = q[0],
				J = q[1];
			for (var W = 0; W < J.length; W++) {
				var v = R[J[W]],
					p = v.add.vmsk,
					n = p.b,
					b = H.D.xJ(n);
				this.Jm(b, null, P);
				P.stroke();
				X = !0;
				var Q = 3 * i.J() / o.F,
					_ = n.length - 3;
				for (var w = 0; w < p.A2.length; w++) {
					var L = H.V.rJ(n, p.A2[w]);
					if (L == null) continue;
					var m = L.x,
						I = L.y;
					P.beginPath();
					var c = w == 0;
					if (p.mt) c = !c;
					if (c) {
						P.moveTo(m - Q, I - Q);
						P.lineTo(m + Q, I + Q);
						P.moveTo(m - Q, I + Q);
						P.lineTo(m + Q, I - Q);
						P.stroke()
					} else {
						P.arc(m, I, Q * 1, 0, 2 * Math.PI);
						P.fill()
					}
					X = !0
				}
				if (F.p.length != 1) continue;
				var u = -1;
				for (var w = 0; w < n.length; w++) {
					if (n[w].type > 5) continue;
					if (n[w].type == 0 || n[w].type == 3) {
						if (n[w].IO != -1) u++;
						continue
					}
					if (p.p.indexOf(u) != -1) {
						var m = n[w]._.x,
							I = n[w]._.y;
						P.fillRect(m - Q * .8, I - Q * .8, 2 * Q * .8, 2 * Q * .8)
					}
					if (p.s_.indexOf(w) != -1) {
						var a = [n[w]._];
						P.beginPath();
						P.moveTo(n[w].wU.x, n[w].wU.y);
						P.lineTo(n[w]._.x, n[w]._.y);
						P.lineTo(n[w].dv.x, n[w].dv.y);
						P.stroke();
						if (!n[w]._.Qn(n[w].wU)) a.push(n[w].wU);
						if (!n[w]._.Qn(n[w].dv)) a.push(n[w].dv);
						for (var N = 0; N < a.length; N++) {
							var L = a[N],
								m = L.x,
								I = L.y;
							if (N == 0 && (n[w].type == 2 || n[w].type == 5)) P.fillRect(m - 1.2 * Q, I - 1.2 * Q, 2.4 * Q, 2.4 * Q);
							else {
								P.beginPath();
								P.arc(m, I, Q * 1.2, 0, 2 * Math.PI);
								P.fill();
								if (N != 0) P.fillStyle = D;
								P.beginPath();
								P.arc(m, I, Q * .8, 0, 2 * Math.PI);
								P.fill();
								P.fillStyle = Z
							}
						}
					}
					X = !0
				}
			}
		}
		P.fillStyle = P.strokeStyle = fp.ap([0, 0, 0, 1], !0);
		P.lineWidth = 1 / o.F;
		var V = new cu(1, 0, 0, 1, .5 / o.F, .5 / o.F);
		if (F.v.Kp) {
			this.Jm(F.v.Kp, null, P);
			P.fill()
		}
		if (F.v.hK) {
			this.Jm(F.v.hK, V, P);
			P.stroke()
		}
		for (var M in F.v.wR)
			if (F.v.wR[M].hK) {
				this.Jm(F.v.wR[M].hK, null, P);
				P.stroke();
				X = !0
			} P.beginPath();
		var Q = (4 * i.J() + .5) / o.F,
			O = F.v.CL;
		for (var w = 0; w < O.length; w += 2) {
			X = !0;
			var m = O[w],
				I = O[w + 1];
			P.rect(m - Q, I - Q, 2 * Q, 2 * Q)
		}
		P.stroke();
		var O = F.v.a80;
		P.beginPath();
		var Q = 4 * i.J() / o.F;
		for (var w = 0; w < O.length; w += 2) {
			X = !0;
			var m = O[w],
				I = O[w + 1];
			P.moveTo(m + Q, I);
			P.arc(m, I, Q, 0, 2 * Math.PI)
		}
		P.fill();
		var O = F.v.z6;
		P.fillStyle = fp.ap([1, 1, 1, 1]);
		P.beginPath();
		var Q = 6 * i.J() / o.F;
		for (var w = 0; w < O.length; w += 2) {
			X = !0;
			var m = O[w],
				I = O[w + 1];
			P.moveTo(m + Q, I);
			P.arc(m, I, Q, 0, 2 * Math.PI)
		}
		P.fill();
		var Q = 4 * i.J() / o.F;
		for (var w = 0; w < O.length; w += 2) {
			X = !0;
			var m = O[w],
				I = O[w + 1];
			P.fillStyle = fp.ap(F.v.Cs.indexOf(w >>> 1) != -1 ? [0, .6, 1, 1] : [.7, .7, .7, 1]);
			P.beginPath();
			P.moveTo(m + Q, I);
			P.arc(m, I, Q, 0, 2 * Math.PI);
			P.fill()
		}
		if (F.v.bU.length != 0) {
			for (var w = 0; w < F.v.bU.length; w++) {
				var K = F.v.bU[w],
					j = K[1];
				P.putImageData(new ImageData(new Uint8ClampedArray(K[0].buffer), j.Z, j.h), j.x, j.y)
			}
		}
		var $ = .5 / o.F;
		P.lineWidth = 1 / o.F;
		if (F.v.bX) {
			X = !0;
			var x = F.v.bX,
				g = x.K3,
				b = {
					W: [],
					d: []
				};
			for (var w = 0; w < x.od.length; w++) H.D.concat(b, H.D.z0(x.od[w]));
			b.d = b.d.concat(g);
			for (var w = 0; w < g.length; w += 4) {
				b.W.push("M", "L")
			}
			for (var w = 0; w < b.d.length; w++) {
				b.d[w] += $
			}
			P.strokeStyle = fp.ap([.9, .2, .2, 1]);
			this.Jm(b, null, P);
			P.stroke();
			var T = i.J();
			P.font = t * .9 + "px sans-serif";
			var E = 2 / o.F,
				a9 = 2 * E;
			for (var w = 0; w < g.length; w += 4) {
				var m = g[w],
					I = g[w + 1],
					ez = g[w + 2],
					bN = g[w + 3],
					cg = Math.sqrt((bN - I) * (bN - I) + (ez - m) * (ez - m));
				cg = H.t$.Rq(cg, F.NB, Y, I == bN ? F.Z : F.h);
				var d8 = new aH((m + ez) / 2, (I + bN) / 2);
				P.fillStyle = fp.ap([.9, .2, .2, 1]);
				var C = P.measureText(cg).width;
				P.fillRect(d8.x - C / 2 - E * T, d8.y - 3.5 * E * T, C + 2 * E * T, 7 * E * T);
				P.fillStyle = fp.ap([1, 1, 1, 1]);
				P.fillText(cg, d8.x - C / 2, d8.y + 2 * E * T)
			}
		}
		if (Y.IT) {
			if (y.aG) {
				var S = H.t$.Cc(y.vZ, F, y.pO),
					g7 = S;
				if (y.pO == 4) g7 *= F.h / F.Z;
				this.c0(F, P, S, g7, 1, y.QI);
				X = !0
			}
			if (y.M4 && F.a.F > 7) {
				this.c0(F, P, 1, 1, .5, y.QI);
				X = !0
			}
			if (y.ei) {
				var g_ = Math.max(F.a.xX.Z, F.a.xX.h) / F.a.F;
				g_ = Math.max(Math.max(F.Z, F.h) * 2, g_);
				P.beginPath();
				P.strokeStyle = fp.ap([0, 1, 1, 1]);
				for (var w = 0; w < F.ei[0].length; w++) {
					var fw = Math.round(F.ei[0][w]) + $;
					P.moveTo(fw, -g_);
					P.lineTo(fw, g_)
				}
				for (var w = 0; w < F.ei[1].length; w++) {
					var dT = Math.round(F.ei[1][w]) + $;
					P.moveTo(-g_, dT);
					P.lineTo(g_, dT)
				}
				P.stroke()
			}
			var g4 = F.P0;
			if (y.P0 && g4.length != 0) {
				P.font = t * .8 + "px sans-serif";
				var bB = [],
					d1 = [];
				for (var w = 0; w < g4.length; w++) {
					var f_ = B.e9.rF(g4, w);
					bB.push(f_);
					if (F.xR.indexOf(w) != -1) d1.push(f_)
				}
				bB.reverse();
				var g$ = Date.now();
				bB = H.rect._T([0, 0, F.Z, F.h], bB);
				for (var N = 0; N < 2; N++)
					for (var w = 0; w < bB.length; w++) {
						var eT = bB[w],
							u = eT[4],
							dz = u != null ? g4[u] : null;
						if (dz && N == 0 || dz == null && N == 1) continue;
						var m = Math.round(eT[0]),
							I = Math.round(eT[1]),
							ez = Math.round(eT[2]),
							bN = Math.round(eT[3]);
						P.strokeStyle = P.fillStyle = fp.ap(dz ? [0, .7, .7, 1] : [.8, .8, .8, 1]);
						P.strokeRect(m + $, I + $, ez - m, bN - I);
						var i4 = w + 1,
							cN = P.measureText(i4),
							C = cN.width;
						P.fillRect(m, I, C + t / 2, t);
						P.fillStyle = fp.ap([1, 1, 1, 1]);
						P.fillText(i4, m + t / 4, I + t * .8)
					}
				var E = 2 / F.a.F,
					a9 = 2 * E;
				for (var w = 0; w < d1.length; w++) {
					var eT = d1[w],
						m = Math.round(eT[0]),
						I = Math.round(eT[1]),
						ez = Math.round(eT[2]),
						bN = Math.round(eT[3]);
					P.strokeStyle = P.fillStyle = fp.ap([0, .7, .7, 1]);
					P.strokeRect(m + $, I + $, ez - m, bN - I);
					var fP = [m, I, ez, I, ez, bN, m, bN];
					for (var du = 0; du < fP.length; du += 2) {
						var fw = fP[du],
							dT = fP[du + 1],
							ea = fP[du + 2 & 7],
							cF = fP[du + 3 & 7];
						P.fillRect(fw - E, dT - E, a9, a9);
						P.fillRect(Math.round((fw + ea) / 2) - E, Math.round((dT + cF) / 2) - E, a9, a9)
					}
				}
				X = !0
			}
		}
		P.strokeStyle = fp.ap([1, 0, 0, 1]);
		if (F.v.zK) {
			this.Jm(F.v.zK, V, P);
			P.stroke()
		}
		P.restore();
		if (Y.bt) {
			if (F.a.Pq == null || F.a.Pq.width != F.a.xX.Z || F.a.Yb.height != F.a.xX.h) {
				F.a.Pq = P.createImageData(F.a.xX.Z, H.t$.Tn);
				F.a.Yb = P.createImageData(H.t$.Tn, F.a.xX.h)
			}
			var z = hw.lB[Y.hb],
				o = F.a,
				gB = o.F * F.Z / 2,
				bp = o.F * F.h / 2,
				hf = [1, F.NB, F.NB / 2.54, F.NB / 25.4, F.Z / 100][y.Md],
				bq = o.F,
				eY = o.c.clone(),
				f1 = o.D8;
			o.F *= hf;
			o.c.x += gB * hf - gB;
			o.c.y += bp * hf - bp;
			o.D8 = 0;
			H.t$.al_(o, z["--text-color"], z["--bg-input"]);
			o.F = bq;
			o.c = eY;
			o.D8 = f1;
			var dh = hM.na(o.F, fp.ap([1, 1, 1, 1]));
			fp.O9(F.a.Yb.data);
			fp.O9(F.a.Pq.data);
			P.putImageData(F.a.Yb, 0, 0);
			P.putImageData(F.a.Pq, 0, 0);
			P.putImageData(dh, 0, F.a.xX.h - dh.height)
		}
		if (F.v.Tw.length != 0) {
			for (var w = 0; w < F.v.Tw.length; w++) {
				var K = F.v.Tw[w],
					j = K[1];
				P.putImageData(new ImageData(new Uint8ClampedArray(K[0].buffer), j.Z, j.h), j.x, j.y)
			}
		}
		return X || Y.bt || F.ei[0].length + F.ei[1].length > 0
	};
	fp.prototype.c0 = function (F, P, o, X, Y, y) {
		while (o * F.a.F < 4) {
			o *= 2;
			X *= 2
		}
		var z = F.Z,
			s = F.h,
			t = .5 / F.a.F;
		P.strokeStyle = fp.ap([.5, .5, .5, Y], !0);
		P.save();
		P.rect(0, 0, z, s);
		P.clip();
		P.beginPath();
		for (var d = 0; d <= z; d += o) {
			P.moveTo(d + t, 0);
			P.lineTo(d + t, s)
		}
		if (y == 0) {
			for (var U = 0; U <= s; U += X) {
				P.moveTo(0, U + t);
				P.lineTo(z, U + t)
			}
		} else {
			X *= Math.sqrt(4 / 3);
			var v = X * Math.floor(z / X),
				A = z * (X / (2 * o));
			for (var U = -v; U <= s + v; U += X) {
				P.moveTo(0, U);
				P.lineTo(z, U - A);
				P.moveTo(0, U);
				P.lineTo(z, U + A)
			}
		}
		P.stroke();
		P.restore()
	};
	fp.prototype.Jm = function (F, P, o) {
		o.beginPath();
		var X = H.D.clone(F);
		if (P) H.D.O(X.d, P, X.d);
		Typr.U.pathToContext({
			cmds: X.W,
			crds: X.d
		}, o)
	};
	fp.Nb = function (F) {
		k.f2.call(this);
		this.a5M = F;
		var P = "\t\t\tprecision mediump float;\t\t\t\t\t\tuniform sampler2D source;\t\t\tuniform sampler2D target;\t\t\tuniform vec3 contSizeZoom;\t\t\tuniform vec2 cnvSize;\t\t\tuniform mat4 ctrn; \t\t\t" + (F ? "uniform vec4 bgClr;" : "") + "\t\t\t\t\t\tvarying vec2 tCoord;\t\t\tvarying vec2 sCoord;\t\t\tvarying vec2 gCoord;\t\t\t\t\t\t/* This approximates the error function, needed for the gaussian integral */ \t\t\tvec4 erf(vec4 x) { \t\t\t  vec4 s = sign(x), a = abs(x);\t\t\t  x = 1.0 + (0.278393 + (0.230389 + 0.078108 * (a * a)) * a) * a;\t\t\t  x *= x;  \t\t\t  return s - s / (x * x); \t\t\t} \t\t\t/* Return the mask for the shadow of a box from lower to upper */  \t\t\tfloat boxShadow(vec2 lower, vec2 upper, vec2 point, float sigma) { \t\t\t  vec4 query = vec4(point - lower, point-upper); \t\t\t  vec4 integral = 0.5 + 0.5 * erf(query * (sqrt(0.5) / sigma)); \t\t\t  return (integral.z - integral.x) * (integral.w - integral.y); \t\t\t} \t\t\t\t\t\tvec4 simpleBlend(vec4 src, vec4 tgt) {\t\t\t\tfloat na = src.w + tgt.w*(1.0-src.w);\t\t\t\t/* avoid division by zero */ \t\t\t\treturn na==0.0 ? vec4(0,0,0,0) : vec4( (src.xyz*src.w + tgt.w*tgt.xyz*(1.0-src.w))*(1.0/na), na);\t\t\t} \t\t\t\t\t\t" + k.XR.aS + "\t\t\t\t\t\tvoid main(void) {\t\t\t\tvec4 src = texture2D(source, tCoord); \t\t\t\tvec4 tgt = ctrn*texture2D(target, sCoord); " + (F ? "vec4 BG = bgClr;" : "\t\t\t\t\tfloat shdw = 0.3*boxShadow(vec2(0,0),contSizeZoom.xy, sCoord*contSizeZoom.xy+vec2(0.0,-6.0*contSizeZoom.z) , 10.0*contSizeZoom.z);\t\t\t\t\tvec4 grid = mod(floor(gCoord.x) + floor(gCoord.y), 2.0)==1.0 ? vec4(0.784,0.784,0.784,1) : vec4(1,1,1,1);\t\t\t\t\tvec4 BG = in01(sCoord) ? grid : vec4(0.0,0.0,0.0,shdw); \t\t\t\t") + "\t\t\t\tvec4 outc = in01(sCoord) ?  simpleBlend(tgt,BG) :  BG ;  \t\t\t\tif(src.b == 0.0 && src.a >0.5) gl_FragColor = mix(outc, vec4(vec3(1,1,1)-outc.rgb,1.0), src.w); \t\t\t\telse             gl_FragColor = simpleBlend(src,outc); \t\t\t\t\t\t\t}",
			o = "\t\t\tattribute vec2 verPos;\t\t\tvarying vec2 tCoord;\t\t\tvarying vec2 sCoord;\t\t\tvarying vec2 gCoord;\t\t\t\t\t\tuniform mat3 tmat;\t\t\tuniform vec4 gsize;\t\t\tvoid main(void) {\t\t\t\ttCoord = verPos;\t\t\t\tsCoord = (tmat*vec3(verPos,1.0)).xy;\t\t\t\tgCoord = (verPos-gsize.zw) * gsize.xy ; \t\t\t\tgl_Position = vec4(vec2(-1.0, 1.0) + 2.0*vec2(verPos.x,-verPos.y), 0.0, 1.0);\t\t\t}";
		this.uZ(P, o)
	};
	fp.Nb.prototype = new k.f2;
	fp.Nb.prototype.WL = function (F, P, o, X, Y, y, z, s, t, d, U) {
		this.ac("tmat gsize source target contSizeZoom cnvSize bgClr ctrn".split(" "));
		var v = k.ui,
			A = this.B6;
		v.uniformMatrix3fv(A.tmat, !1, o);
		v.uniform4fv(A.gsize, X);
		v.uniform3f(A.contSizeZoom, Y, y, z);
		v.uniform2f(A.cnvSize, s, t);
		v.uniformMatrix4fv(A.ctrn, !1, U);
		if (this.a5M) {
			v.uniform4fv(A.bgClr, d)
		}
		v.uniform1i(A.source, 0);
		v.uniform1i(A.target, 1);
		v.activeTexture(v.TEXTURE0);
		v.bindTexture(v.TEXTURE_2D, F);
		v.activeTexture(v.TEXTURE1);
		v.bindTexture(v.TEXTURE_2D, P);
		v.activeTexture(v.TEXTURE0)
	};

	function aq() {
		c$.call(this, [9, 7], !1, null, c$.YP.afw);
		this.VI.setAttribute("style", "min-width:240px;");
		this.cz = null;
		this.Xe = -1;
		this.a8$ = [];
		this.TP = i.z("div", "scrollable");
		this.TP.style.height = "160px";
		this.VI.appendChild(this.TP);
		this.D0 = i.z("div", "lpfoot");
		this.VI.appendChild(this.D0);
		this.C8 = [];
		var F = ["reload", "lrs/newlayer", "lrs/bin"],
			P = [
				[5, 10],
				[5, 3],
				[5, 4]
			];
		for (var w = 0; w < F.length; w++) {
			var o = new fV("<img src=\"" + PIMG[F[w]] + "\" class=\"gsicon\" />", !1, P[w]);
			o.$("click", this.a3L, this);
			this.D0.appendChild(o.u);
			this.C8.push(o)
		}
	}
	aq.prototype = new c$("");
	aq.prototype.nQ = function (F) {
		var P = new l(i.E.H, !0);
		P.data = F;
		P.Q = B.Jc;
		this.w(P)
	};
	aq.prototype.a3L = function (F) {
		var w = this.C8.indexOf(F.currentTarget);
		if (w != 1)
			if (this.Xe == -1) return;
		this.nQ({
			e: ["updLC", "addLC", "delLC"][w],
			XN: this.Xe
		});
		if (w == 2) this.Xe = -1
	};
	aq.prototype.t = function () {
		c$.prototype.t.call(this);
		for (var w = 0; w < this.C8.length; w++) this.C8[w].t()
	};
	aq.prototype.Vp = function (F) {
		if (F == null) i.KL(this.VI, "disabled");
		else i.sT(this.VI, "disabled");
		this.cz = F;
		i.TD(this.TP);
		if (F == null) return;
		var P = F.e5.lastAppliedComp ? F.e5.lastAppliedComp.v : 0,
			o = F.e5.list.v.slice(0);
		o.unshift({
			v: {
				Nm: {
					v: "Last Document State"
				},
				compID: {
					v: 0
				},
				capturedInfo: {
					v: 0
				}
			}
		});
		for (var w = 0; w < o.length; w++) {
			var X = o[w].v,
				Y = new ft(X.Nm.v, X.compID.v, X.capturedInfo.v, P, this.Xe);
			Y.$("activate", this.VG, this);
			Y.parent = this;
			this.TP.appendChild(Y.u);
			this.a8$.push(Y)
		}
	};
	aq.prototype.VG = function (F) {
		this.Xe = F.currentTarget.XN;
		this.Vp(this.cz)
	};

	function ft(F, w, P, o, X) {
		au.call(this);
		this.XN = w;
		this.u = i.z("div", "head listitem" + (w == X ? " selected" : ""));
		var Y = w == o,
			y = new fV("<b>" + (Y ? "\u2713" : "\u2014") + "</b>");
		if (Y) y.V2();
		this.u.appendChild(y.u);
		y.$("click", this.YB, this);
		var z = this._J = i.z("span");
		z.textContent = F;
		this.u.appendChild(z);
		this.C8 = [];
		if (w != 0) {
			this.u.addEventListener("mouseup", this.VG.bind(this), !1);
			this.abL = i.z("span", "headR");
			this.u.appendChild(this.abL);
			var s = ["lrs/eye", "pos", "lrs/fx"],
				t = ["Visibility", "Position", "Appearance"];
			for (var d = 0; d < s.length; d++) {
				var U = new fV("<img src=\"" + PIMG[s[d]] + "\" class=\"autoscale gsicon\" />", !1, t[d]);
				if ((P >> d & 1) == 0) U.u.setAttribute("style", "opacity:0.3");
				U.$("click", this.a2Q, this);
				this.abL.appendChild(U.u);
				this.C8.push(U)
			}
		}
	}
	ft.prototype = new au;
	ft.prototype.VG = function (F) {
		if (F.target != this._J && F.target != this.u) return;
		if (F.detail == 1) this.w(new l("activate", !1));
		else {
			var P = new c$.ir(this._J, this.T0.bind(this))
		}
	};
	ft.prototype.a2Q = function (F) {
		var w = this.C8.indexOf(F.currentTarget);
		this.nQ({
			e: "editLC",
			ahW: w,
			XN: this.XN
		})
	};
	ft.prototype.T0 = function (F) {
		this.nQ({
			e: "editLC",
			gA: F,
			XN: this.XN
		})
	};
	ft.prototype.YB = function (F) {
		this.nQ({
			e: "setLC",
			XN: this.XN
		})
	};
	ft.prototype.nQ = function (F) {
		var P = new l(i.E.H, !0);
		P.data = F;
		P.Q = B.Jc;
		this.w(P)
	};

	function fN() {
		c$.call(this, [9, 11], !1, null, c$.YP.aiB);
		var F = i.z("div", "padded");
		F.setAttribute("style", "min-width:15em");
		this.VI.appendChild(F);
		var P = i.z("div");
		F.appendChild(P);
		P.setAttribute("style", "cursor:grab;");
		this.w7 = i.z("canvas");
		this.w7.width = 100;
		P.appendChild(this.w7);
		i.w4(this.w7);
		i.X8(this.w7, this.TY.bind(this));
		this.Ez = new bc(null, 0, B.$h.dc.length - 1);
		this.Ez.$(i.E.I, this.a0P, this);
		F.appendChild(this.Ez.u);
		this.ady = this.m4.bind(this);
		this.aiJ = this.xL.bind(this);
		this.nc = null
	}
	fN.prototype = new c$("");
	fN.prototype.l9 = function (F, P) {
		this.qK()
	};
	fN.prototype.a0P = function (F) {
		var P = this.Ez.q(),
			o = this.nc,
			X = B.$h.dc[B.$h.dc.length - 1 - P],
			Y = new l(i.E.H, !0);
		Y.Q = B.QS;
		Y.data = {
			e: "zoom",
			F: X
		};
		this.w(Y)
	};
	fN.prototype.TY = function (F) {
		if (this.nc == null) return;
		i.Jr(window, this.ady);
		i.so(window, this.aiJ)
	};
	fN.prototype.m4 = function (F) {
		var P = i.oA(F, this.w7),
			o = this.nc,
			X = this.w7.width,
			Y = this.w7.height,
			y = (P.x * i.J() - X / 2) / X,
			z = (P.y * i.J() - Y / 2) / Y,
			s = i.J() * o.a.F,
			t = Math.round(-o.a.F * o.Z * y),
			d = Math.round(-o.a.F * o.h * z);
		B.DB.Qq(o, t, d)
	};
	fN.prototype.xL = function (F) {
		i.NG(window, this.ady);
		i.Sz(window, this.aiJ)
	};
	fN.prototype.Vp = function (F) {
		if (F == null && this.nc != null) this.w7.width = 100;
		this.nc = F;
		this.qK()
	};
	fN.prototype.qK = function () {
		var F = this.nc,
			o = 0;
		if (F == null || F.a.F == 0) return;
		if (!i.WW(this.VI)) return;
		this.Ez.k(B.$h.dc.length - 1 - B.$h.gd(F.a.F));
		var P = 300 * i.J(),
			X = [F.lD(), new ev(0, 0, F.Z, F.h)];
		H.hE(X);
		while (Math.max(X[o + 1].Z, X[o + 1].h) > P) {
			o += 2
		}
		var Y = X[o],
			y = X[o + 1],
			z = y.Z,
			s = y.h,
			t = this.w7;
		t.width = z;
		t.height = s;
		i.Hc(t, z, s);
		var d = t.getContext("2d"),
			U = d.createImageData(z, s);
		H.Hk(Y, U.data);
		d.putImageData(U, 0, 0);
		var v = F.a.Ze(),
			A = z / F.Z;
		d.scale(A, A);
		d.lineWidth = 4 / A;
		d.strokeStyle = "#ff0000";
		d.strokeRect(v.x, v.y, v.Z, v.h)
	};
	fN.prototype.AK = function (F, P) {};
	fN.prototype.q0 = function () {
		this.qK()
	};

	function fs(F, P) {
		if (F == null) {
			c$.call(this);
			return
		}
		c$.call(this, F.name, !1, F.icon, P);
		var o = this.alb = i.z("iframe", "padded");
		o.setAttribute("src", F.url);
		o.setAttribute("style", "width:" + F.width + "px; height:" + F.height + "px");
		this.VI.appendChild(o)
	}
	fs.prototype = new c$("");
	fs.prototype.qM = function (F) {
		if (i.WW(this.alb)) this.alb.contentWindow.postMessage(F, "*")
	};

	function go() {
		c$.call(this, [9, 12], !1, null, c$.YP.o8);
		this.yH = null;
		this.xx = new hv(B.Sm);
		this.xx.parent = this;
		var F = i.z("div", "padded");
		F.setAttribute("style", "width:20em");
		this.VI.appendChild(F);
		F.appendChild(this.xx.sR)
	}
	go.prototype = new c$("");
	go.prototype.q0 = function () {
		this.xx._F(this.yH.$n)
	};
	go.prototype.AK = function (F, P) {
		this.yH = F;
		if (P == ge.oc || P == ge.o8) this.xx._F(F.$n)
	};
	go.prototype.l9 = function (F, P) {
		this.xx.acT(this.yH.Mp)
	};
	go.prototype.t = function () {
		c$.prototype.t.call(this);
		this.xx.t()
	};

	function eo() {
		au.call(this);
		this.Q = 0;
		this.CE = null;
		this.u = i.z("div", "toolconf");
		this.xx = null;
		this.ZU = null;
		this.body = new i.z("div", "body")
	}
	eo.prototype = new au;
	eo.prototype.a21 = function (F, P) {
		this.Q = F;
		this.CE = P;
		if (B.er[F]) {
			var o = this.xx = new hv(F);
			this.u.appendChild(o.u);
			o.parent = this
		} else {
			this.ZU = i.z("div");
			this.u.appendChild(this.ZU)
		}
		this.u.appendChild(this.body);
		this.t()
	};
	eo.prototype.yp = function (F, P) {};
	eo.prototype.iW = function (F) {};
	eo.prototype.AK = function (F, P) {
		if (P == ge.oc || P == ge.o8)
			if (this.xx) this.xx._F(F.$n)
	};
	eo.prototype.St = function (F) {};
	eo.prototype.t = function () {
		if (this.xx) this.xx.t();
		else this.ZU.innerHTML = i.G6(this.CE, null, "toolicon");
		this.Pc()
	};
	eo.prototype.Pc = function () {};

	function dj(F) {
		eo.call(this);
		if (F == null) return;
		this.yH = null;
		this.eh = {};
		for (var w = 0; w < F.length; w++) {
			var P = F[w],
				o = null;
			if (P == "brush") {
				o = new fz
			}
			if (P == "bmode") {
				o = new gq([12, 19, 0], aK.Zn, !1, aK.wp)
			}
			if (P == "bmode0") {
				o = new gq([12, 19, 0], aK.Zn.slice(23), !1)
			}
			if (P == "emode") {
				o = new gq([12, 36], [
					[9, 3],
					[10, 38]
				])
			}
			if (P == "opacity") {
				o = new gJ([12, 0], 0, 100, "%");
				o.k(100)
			}
			if (P == "flow") {
				o = new gJ([12, 63], 0, 100, "%");
				o.k(100)
			}
			if (P == "smth") {
				o = new gJ([19, 3, 0], 0, 100, "%");
				o.k(0)
			}
			if (P == "samp") {
				o = new gq("Sampling", ["Brush Center", "Start of Stroke", "Background Color"])
			}
			if (P == "wconf") {
				o = new fn;
				o.k([40, !0, !0])
			}
			if (P == "strn") {
				o = new gJ([12, 64], 1, 100, "%");
				o.k(50)
			}
			if (P == "smode") {
				o = new gq([12, 36], [
					[19, 7, 0],
					[19, 7, 1]
				]);
				o.k(1)
			}
			if (P == "pdetail") {
				o = new aD([12, 65]);
				o.V2()
			}
			if (P == "rng") {
				o = new gq([12, 12], [
					[19, 6, 0],
					[19, 6, 1],
					[19, 6, 2]
				]);
				o.k(1)
			}
			if (P == "expo") {
				o = new gJ([12, 5], 0, 100, "%");
				o.k(50)
			}
			if (P == "algnd") {
				o = new aD([12, 75]);
				o.k(!1)
			}
			if (P == "sfrom") {
				o = new gq([12, 70], [
					[17, 1],
					[17, 3],
					[17, 0]
				])
			}
			if (P == "alt") {
				o = new aL(null, ["Alt"], !0, ["Select Source"])
			}
			if (P == "qsmode") {
				o = new aw([12, 36], ["<img src=\"" + PIMG["set/front"] + "\" class=\"autoscale gsicon\" />", "<img src=\"" + PIMG.zoomIn + "\" class=\"autoscale gsicon\" />", "<img src=\"" + PIMG.zoomOut + "\" class=\"autoscale gsicon\" />"], [
					[5, 3],
					[18, 1],
					[18, 2]
				])
			}
			if (P == "redge") {
				o = new fV([7, 11], !1, null, !0)
			}
			if (P == "setop") {
				o = new gt
			}
			if (P == "patch") {
				o = new aw(null, [
					[12, 70],
					[12, 71]
				])
			}
			if (P == "prsr") {
				o = new aL(null, ["<img src=\"" + PIMG.prsO + "\" class=\"autoscale gsicon\" />", "<img src=\"" + PIMG.prsS + "\" class=\"autoscale gsicon\" />"], !0, [
					[15, 9, 0],
					[15, 9, 1]
				]);
				o.k([!1, !0])
			}
			o.parent = this;
			this.body.appendChild(o.u);
			this.eh[P] = o;
			if (P == "brush") o.$(i.E.I, this.aL, this);
			else if (P == "redge") o.$("click", this.TR, this);
			else o.$(i.E.I, this.Ah, this)
		}
	}
	dj.prototype = new eo;
	dj.prototype.yp = function (F, P) {
		F = F[1];
		var o = this.eh;
		if (F.Md) o.bmode.k(aK.zn.indexOf(F.Md.v.BlnM));
		if (F.Opct) o.opacity.k(F.Opct.v);
		if (F.flow) o.flow.k(F.flow.v);
		if (F.Brsh) o.brush.k(F, P.aF.Xu, P.aF.A6);
		if (F.FrgC) {
			var X = H.j.T6(F.FrgC.v),
				Y = new l(i.E.L, !0);
			Y.data = {
				e: i.B.Sl,
				S9: ge.Io,
				mQ: 0,
				C: X.U << 16 | X.S << 8 | X.i
			};
			this.w(Y)
		}
		this.aL();
		this.Ah()
	};
	dj.prototype.iW = function () {
		if (B.er[this.Q] == null) return null;
		var F = this.eh,
			P = JSON.parse(JSON.stringify(F.brush.q()));
		P.classID = B.er[this.Q][1][0];
		if (F.bmode) P.Md = {
			t: "enum",
			v: {
				BlnM: aK.zn[F.bmode.q()]
			}
		};
		if (F.opacity) P.Opct = {
			t: "long",
			v: F.opacity.q()
		};
		if (F.flow) P.flow = {
			t: "long",
			v: F.flow.q()
		};
		var o = this.yH.GY;
		o = {
			U: o >>> 16,
			S: o >>> 8 & 255,
			i: o & 255
		};
		P.FrgC = {
			t: "Objc",
			v: H.j.$H(o)
		};
		return ["Brush Preset " + P.Brsh.v.Dmtr.v.val, P]
	};
	dj.prototype.TR = function () {
		var F = new l(i.E.L, !0);
		F.data = {
			e: i.B.uH,
			W2: "redge"
		};
		this.w(F)
	};
	dj.prototype.Pc = function () {
		for (var F in this.eh) this.eh[F].t()
	};
	dj.prototype.St = function (F) {
		if (F.aeE == "showBrushOpts") {
			this.eh.brush.OG(F.cQ.x, F.cQ.y)
		}
		for (var P in F.KK) {
			var o = F.KK[P];
			if (P != "qsmode") o *= 100;
			if (this.eh[P]) this.eh[P].k(o)
		}
	};
	dj.prototype.AK = function (F, P) {
		eo.prototype.AK.call(this, F, P);
		this.yH = F;
		var o = this.eh.brush;
		if (o == null) return;
		if (P == ge.oc || P == ge.Sm) o._F(F.aF);
		if (P == ge.SO) {
			o.k(F.aF.Y5, F.aF.Xu, F.aF.A6)
		}
	};
	dj.prototype.aL = function () {
		var F = new l(i.E.L, !0);
		F.data = {
			e: i.B.Sl,
			S9: ge.SO,
			S1: this.eh.brush.q()
		};
		this.w(F)
	};
	dj.prototype.Ah = function () {
		var F = new l(i.E.L, !0);
		F.data = {
			e: i.B.R2,
			Q: this.Q
		};
		for (var P in this.eh) {
			if (P == "brush" || P == "redge") continue;
			var o = this.eh[P].q();
			if (["opacity", "flow", "smth", "strn", "expo"].indexOf(P) != -1) F.data[P] = o / 100;
			else if (P == "bmode") F.data.bmode = aK.YA[o];
			else if (P == "bmode0") F.data.bmode = aK.YA[23 + o];
			else F.data[P] = o
		}
		this.w(F)
	};

	function cZ(F) {
		eo.call(this);
		if (F) return;
		this.data = {
			e: i.B.R2,
			hw: "front",
			bM: 0,
			dU: [10, !0, !0],
			H7: {
				wV: 0,
				x: 1,
				y: 1
			}
		};
		this.NE = new gt;
		this.body.appendChild(this.NE.u);
		this.NE.$(i.E.I, this.Om, this);
		this.$P = new gJ([7, 6], 0, 100, " px");
		this.$P.parent = this;
		this.$P.k(0);
		this.body.appendChild(this.$P.u);
		this.$P.$(i.E.I, this.Om, this);
		this.gR = new fV([7, 11], !1, null, !0);
		this.body.appendChild(this.gR.u);
		this.gR.$("click", this.TR, this)
	}
	cZ.prototype = new eo;
	cZ.prototype.St = function (F) {
		if (F.hw != null) this.NE.k(F.hw);
		else {
			var P = cZ.zs;
			if (P == null) {
				var o = es.N9(!0);
				P = cZ.zs = new ba(o.items, o.Au)
			}
			P.t();
			P.parent = this;
			P.update(F.mY, F.s0);
			var X = new l(i.E.L, !0);
			X.data = {
				e: i.B.VX,
				Nc: P,
				x: F.jE.Bx + 2,
				y: F.jE.yG + 1
			};
			this.w(X)
		}
	};
	cZ.prototype.Pc = function () {
		this.$P.t();
		this.NE.t();
		this.gR.t()
	};
	cZ.prototype.TR = function () {
		var F = new l(i.E.L, !0);
		F.data = {
			e: i.B.uH,
			W2: "redge"
		};
		this.w(F)
	};
	cZ.prototype.Om = function () {
		var F = new l(i.E.L, !0);
		this.data.Q = this.Q;
		this.data.hw = this.NE.q();
		this.data.bM = this.$P.q();
		F.data = this.data;
		this.w(F)
	};

	function ii() {
		dj.call(this, ["brush", "strn"])
	}
	ii.prototype = new dj;

	function bX() {
		dj.call(this, "brush bmode opacity flow smth prsr".split(" "))
	}
	bX.prototype = new dj;

	function bJ() {
		dj.call(this, ["brush", "bmode0", "samp", "wconf"])
	}
	bJ.prototype = new dj;

	function fY() {
		dj.call(this, ["brush"])
	}
	fY.prototype = new dj;

	function c3() {
		dj.call(this, "brush bmode opacity flow smth prsr".split(" "))
	}
	c3.prototype = new dj;

	function cC() {
		dj.call(this, ["brush", "rng", "expo"])
	}
	cC.prototype = new dj;

	function eI() {
		dj.call(this, "brush bmode opacity algnd sfrom alt".split(" "))
	}
	eI.prototype = new dj;

	function aY(F) {
		eo.call(this);
		if (F == null) return;
		var P = i.z("span", "fitem");
		this.body.appendChild(P);
		var o = [
			[17, 0],
			[17, 1],
			[11, 12, 0],
			[17, 2]
		];
		this.va = [];
		for (var w = 0; w < o.length; w++) {
			var X = new fV(o[w], !1, null, !0);
			this.va.push(X);
			X.$("click", this.ahQ, this);
			if (!F || w == 1) P.appendChild(X.u)
		}
		this.H7 = new as;
		this.H7.$(i.E.I, this.ae_, this);
		if (!F) this.body.appendChild(this.H7.u);
		this.XJ = new a_;
		this.XJ.$("click", this.RD, this)
	}
	aY.prototype = new eo;
	aY.prototype.Pc = function () {
		this.XJ.t();
		for (var w = 0; w < this.va.length; w++) this.va[w].t();
		this.H7.t()
	};
	aY.prototype.St = function (F) {
		var P = this.XJ.u;
		if (F.hk) this.body.appendChild(P);
		else if (this.body.contains(P)) this.body.removeChild(P);
		if (F.H7) this.H7.k(F.H7)
	};
	aY.prototype.RD = function (F) {
		var P = {
				e: i.B.R2,
				Q: this.Q,
				He: this.XJ.q() ? "commit" : "cancel"
			},
			o = new l(i.E.L, !0);
		o.data = P;
		this.w(o)
	};
	aY.prototype.ahQ = function (F) {
		F.target.u.blur();
		var P = {
				e: i.B.R2,
				Q: this.Q,
				He: "cropby",
				Z3: this.va.indexOf(F.target)
			},
			o = new l(i.E.L, !0);
		o.data = P;
		this.w(o)
	};
	aY.prototype.ae_ = function (F) {
		var P = {
				e: i.B.R2,
				Q: this.Q,
				He: "config",
				yx: {
					TG: this.H7.q()
				}
			},
			o = new l(i.E.L, !0);
		o.data = P;
		this.w(o)
	};

	function hl() {
		aY.call(this, !1)
	}
	hl.prototype = new aY;

	function bx() {
		aY.call(this, !0)
	}
	bx.prototype = new aY;

	function fW() {
		dj.call(this, ["brush", "rng", "expo"])
	}
	fW.prototype = new dj;

	function br() {
		dj.call(this, "brush emode opacity flow smth prsr".split(" "))
	}
	br.prototype = new dj;

	function dA() {
		dj.call(this, ["brush", "samp", "wconf"])
	}
	dA.prototype = new dj;

	function ho() {
		cZ.call(this);
		this.H7 = new as;
		this.H7.$(i.E.I, this.Cv, this);
		this.body.appendChild(this.H7.u)
	}
	ho.prototype = new cZ(!0);
	ho.prototype.Cv = function (F) {
		this.data.H7 = this.H7.q();
		this.Om()
	};
	ho.prototype.Pc = function () {
		cZ.prototype.Pc.call(this);
		this.H7.t()
	};

	function gM() {
		eo.call(this);
		this.oS = new gq([12, 20], ["1x1", "3x3", "5x5", "11x11", "31x31"]);
		this.oS.$(i.E.I, this.Ah, this);
		this.body.appendChild(this.oS.u)
	}
	gM.prototype = new eo;
	gM.prototype.Ah = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.R2,
			Q: this.Q,
			Ky: [1, 3, 5, 11, 31][this.oS.q()]
		};
		this.w(P)
	};
	gM.prototype.Pc = function () {
		this.oS.t()
	};

	function fH() {
		eo.call(this);
		this.ut = new ah(!1);
		this.ut.parent = this;
		this.ut.$(i.E.I, this.H6, this);
		this.body.appendChild(this.ut.u);
		this.ut.k(JSON.parse(ce.Bf.mR).v);
		this.OF = new gq(null, ce.j.names.slice(0, 5));
		this.OF.$(i.E.I, this.H6, this);
		this.body.appendChild(this.OF.u);
		this.Cg = new gq([12, 19, 0], aK.Zn, null, aK.wp);
		this.Cg.$(i.E.I, this.H6, this);
		this.body.appendChild(this.Cg.u);
		this.jI = new gJ([12, 0], 0, 100, "%");
		this.jI.parent = this;
		this.jI.$(i.E.I, this.H6, this);
		this.body.appendChild(this.jI.u);
		this.jI.k(100);
		this.Fo = new aD([12, 23, 0]);
		this.Fo.$(i.E.I, this.H6, this);
		this.body.appendChild(this.Fo.u);
		this.wX = new aD("Dither");
		this.wX.$(i.E.I, this.H6, this);
		this.body.appendChild(this.wX.u)
	}
	fH.prototype = new eo;
	fH.prototype.Pc = function () {
		this.OF.t();
		this.Cg.t();
		this.jI.t();
		this.Fo.t();
		this.wX.t()
	};
	fH.prototype.AK = function (F, P) {
		eo.prototype.AK.call(this, F, P);
		var o = P == ge.Io;
		this.ut.dn(F.GY, F.Ty);
		if (o || P == ge.uw || P == ge.oc) this.ut._F(F.dY)
	};
	fH.prototype.H6 = function () {
		var F = new l(i.E.L, !0);
		F.data = {
			e: i.B.R2,
			Q: this.Q
		};
		F.data.S9 = {
			j: this.ut.q(),
			rB: ce.j.types[this.OF.q()],
			mt: this.Fo.UX(),
			AN: this.wX.UX(),
			xQ: aK.YA[this.Cg.q()],
			Jf: this.jI.q() / 100
		};
		this.w(F)
	};

	function g5() {
		eo.call(this)
	}
	g5.prototype = new eo;

	function aQ() {
		eo.call(this);
		var F = i.z("span", "fitem");
		this.body.appendChild(F);
		this.RJ = [new gJ([12, 15], 0, 0, "\xB0"), new fV("Reset", null, null, !0)];
		for (var w = 0; w < this.RJ.length; w++) {
			var P = this.RJ[w];
			P.parent = this;
			F.appendChild(P.u);
			P.$(w == 1 ? "click" : i.E.I, this.ko, this)
		}
	}
	aQ.prototype = new eo;
	aQ.prototype.Pc = function () {
		for (var w = 0; w < this.RJ.length; w++) this.RJ[w].t()
	};
	aQ.prototype.St = function (F) {
		this.RJ[0].k(F.Fu * 180 / Math.PI)
	};
	aQ.prototype.ko = function (F) {
		var P = this.RJ.indexOf(F.target),
			o = new l(i.E.L, !0);
		o.data = {
			e: i.B.R2,
			Q: this.Q,
			Fu: P == 1 ? 0 : F.target.q() * Math.PI / 180
		};
		this.w(o)
	};

	function hk() {
		dj.call(this, ["brush", "algnd", "sfrom", "alt"])
	}
	hk.prototype = new dj;

	function fg() {
		eo.call(this);
		this.Kz = new eZ;
		this.Kz.parent = this;
		this.body.appendChild(this.Kz.nE.u);
		this.body.appendChild(this.Kz.WT.u);
		this.body.appendChild(this.Kz.Gb.u);
		var F = i.z("span", "fitem");
		this.body.appendChild(F);
		F.appendChild(this.Kz.RV.u);
		F.appendChild(this.Kz.Zj.u);
		F.appendChild(this.Kz.$S.u);
		this.IU = new gq("Aa", [
			[22, 5, 0], "Sharp", "Crisp", "Strong", "Smooth"
		]);
		this.IU.$(i.E.I, this.RD, this);
		this.body.appendChild(this.IU.u);
		this.dA = new fV([11, 9], !1, null, !0);
		this.dA.$("click", this.aa9, this);
		this.body.appendChild(this.dA.u);
		this.XJ = new a_;
		this.XJ.$("click", this.RD, this)
	}
	fg.prototype = new eo;
	fg.prototype.Pc = function () {
		this.XJ.t();
		this.Kz.t();
		this.dA.t()
	};
	fg.prototype.aa9 = function (F) {
		var P = {
				e: i.B.R2,
				Q: this.Q,
				He: "showwarp"
			},
			o = new l(i.E.L, !0);
		o.data = P;
		this.w(o)
	};
	fg.prototype.St = function (F) {
		if (F.He == "showactive") this.body.appendChild(this.XJ.u);
		if (F.He == "hideactive") this.body.removeChild(this.XJ.u);
		if (F.He == "changeAA") this.IU.k(F.uB)
	};
	fg.prototype.AK = function (F, P) {
		eo.prototype.AK.call(this, F, P);
		if (P != ge.oc && P != ge.Ol && P != ge.Du && P != ge.mj) return;
		this.Kz.k(F.T2, F.SN, F.P5)
	};
	fg.prototype.RD = function (F) {
		var P = {
			e: i.B.R2,
			Q: this.Q,
			He: this.XJ.q() ? "commit" : "cancel"
		};
		if (F.target == this.IU) {
			P.He = "changeAA";
			P.uB = this.IU.q()
		}
		var o = new l(i.E.L, !0);
		o.data = P;
		this.w(o)
	};

	function bS() {
		cZ.call(this)
	}
	bS.prototype = new cZ(!0);

	function d_() {
		eo.call(this);
		var F = [],
			o = "<svg  class=\"autoscale gsicon\" viewBox=\"0 0 14 18\" width=\"14\" height=\"18\" fill=\"black\"><path d=\"M14,6 L10,6 L10,0 L4,0 L4,6 L0,6 L7,13 L14,6 L14,6 Z M0,14 L0,16 L14,16 L14,14 Z\" /></svg>";
		this.hz = new aD([12, 85]);
		this.hz.$(i.E.I, this.Ah, this);
		F.push(this.hz.u);
		this.Ct = new aD([20, 1]);
		this.Ct.$(i.E.I, this.Ah, this);
		F.push(this.Ct.u);
		this.GA = new aD([12, 83]);
		this.GA.$(i.E.I, this.Ah, this);
		F.push(this.GA.u);
		var P = i.z("span", "fitem");
		F.push(P);
		this.adX = new gq("Scale for exported files", ["1x", "2x", "3x", "4x"], !0);
		P.appendChild(this.adX.u);
		this.kc = new fV(o + " PNG", !1, "Save selected layers as PNG", !0);
		P.appendChild(this.kc.u);
		this.kc.$("click", this.uU, this);
		this.a6H = new fV(o + " SVG", !1, "Save selected layers as SVG", !0);
		P.appendChild(this.a6H.u);
		this.a6H.$("click", this.uU, this);
		var X = i.z("span", "fitem");
		F.push(X);
		var Y = i.z("span", "fitem");
		F.push(Y);
		this.C8 = [];
		for (var w = 0; w < 8; w++) {
			var y = w == 3 || w == 7 ? [20, 4, 6] : [20, 4, w < 3 ? w : w - 1],
				z = new fV("Hi", !1, y);
			(w < 4 ? X : Y).appendChild(z.u);
			z.$("click", this.uU, this);
			this.C8.push(z)
		}
		for (var w = 0; w < F.length; w++) this.body.appendChild(F[w]);
		this.a0t = F
	}
	d_.prototype = new eo;
	d_.prototype.St = function (F) {
		var P = F.iF,
			o = F.ajh;
		this.hz.k(P.qc);
		this.Ct.k(P.Vo);
		this.GA.k(P.bX);
		if (o) {
			i.TD(this.body);
			for (var w = 0; w < o.length; w++)
				if (o[w] == 1 && this.a0t[w]) this.body.appendChild(this.a0t[w])
		}
	};
	d_.prototype.uU = function (F) {
		var P = this.C8.indexOf(F.target),
			o;
		if (P == -1) {
			o = new l(i.E.L, !0);
			o.data = {
				e: i.B.R2,
				Q: this.Q,
				mQ: F.target == this.kc ? "getPNG" : "getSVG",
				I6: this.adX.q() + 1
			}
		} else {
			o = new l(i.E.H, !0);
			o.Q = B.fb;
			o.data = {
				e: "algn",
				C: P
			}
		}
		this.w(o)
	};
	d_.prototype.Ah = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.R2,
			Q: this.Q,
			mQ: "prms",
			qc: this.hz.UX(),
			Vo: this.Ct.UX(),
			bX: this.GA.UX()
		};
		this.w(P)
	};
	d_.prototype.Pc = function () {
		this.hz.t();
		this.Ct.t();
		this.GA.t();
		var F = "h0 h1 h2 hG v0 v1 v2 vG".split(" ");
		for (var w = 0; w < 8; w++) {
			this.C8[w].kW(i.G6("align/" + F[w], null, "autoscale"))
		}
	};

	function b9() {
		cZ.call(this);
		var F = this.yI = new fn;
		F.parent = this;
		F.$(i.E.I, this.a8R, this);
		this.body.appendChild(F.u)
	}
	b9.prototype = new cZ(!0);
	b9.prototype.a8R = function (F) {
		this.data.dU = this.yI.q();
		this.Om()
	};
	b9.prototype.Pc = function () {
		cZ.prototype.Pc.call(this);
		this.yI.t()
	};

	function bH() {
		dj.call(this, ["setop", "patch"])
	}
	bH.prototype = new dj;

	function fA() {
		dj.call(this, ["bmode", "opacity", "wconf"])
	}
	fA.prototype = new dj;

	function aN() {
		cZ.call(this)
	}
	aN.prototype = new cZ(!0);

	function c7() {
		cZ.call(this)
	}
	c7.prototype = new cZ(!0);

	function gW() {
		cZ.call(this);
		this.H7 = new as;
		this.H7.$(i.E.I, this.Cv, this);
		this.body.appendChild(this.H7.u)
	}
	gW.prototype = new cZ(!0);
	gW.prototype.Cv = function (F) {
		this.data.H7 = this.H7.q();
		this.Om()
	};
	gW.prototype.Pc = function () {
		cZ.prototype.Pc.call(this);
		this.H7.t()
	};

	function fE() {
		eo.call(this);
		this.fC = [new f6("X", null, 3), new f6("Y", null, 3), new f6("W", null, 3), new f6("H", null, 3), new f6([12, 15], null, 4), new f6([12, 80, 0], null, 4), new fV([15, 7, 6], !1, null, !0)];
		for (var w = 0; w < this.fC.length; w++) {
			var F = this.fC[w];
			this.body.appendChild(F.u)
		}
		this.fC[6].$("click", this.a15, this);
		this.NT = 0
	}
	fE.prototype = new eo;
	fE.prototype.a15 = function (F) {
		if (this.NT == 0) {
			return
		}
		var P = new l(i.E.H, !0);
		P.Q = B.DV;
		P.data = {
			e: "rot",
			tP: [2, 5],
			C: -this.NT
		};
		this.w(P)
	};
	fE.prototype.St = function (F) {
		var P = F.aa3,
			o = F.sk,
			X = o.x - P.x,
			y = o.y - P.y,
			z = this.fC;
		this.NT = -Math.atan2(y, X);
		z[0].k(P.x);
		z[1].k(P.y);
		z[2].k(X);
		z[3].k(y);
		z[4].k((this.NT * 180 / Math.PI).toFixed(2));
		z[5].k(Math.sqrt(X * X + y * y).toFixed(2))
	};
	fE.prototype.Pc = function () {
		var F = this.fC;
		for (var w = 0; w < F.length; w++) F[w].t();
		i.$d(F[2], F[3])
	};

	function hb() {
		dj.call(this, ["brush", "strn", "pdetail"])
	}
	hb.prototype = new dj;

	function cO() {
		dj.call(this, ["brush"]);
		this.a01 = [];
		var F = [
			[7, 12]
		];
		for (var w = 0; w < F.length; w++) {
			var P = new fV(F[w], !1, null, !0);
			this.a01.push(P);
			P.parent = this;
			this.body.appendChild(P.u);
			P.$("click", this.a2m, this)
		}
	}
	cO.prototype = new dj;
	cO.prototype.a2m = function (F) {
		var P = this.a01.indexOf(F.currentTarget),
			o = new l(i.E.QJ, !0);
		o.data = B.gn.XL("contentAware");
		this.w(o)
	};

	function bj() {
		dj.call(this, ["brush", "strn"])
	}
	bj.prototype = new dj;

	function dL() {
		dj.call(this, ["brush", "flow", "smode"])
	}
	dL.prototype = new dj;

	function fU() {
		eo.call(this);
		this.nJ = !1;
		var F = i.z("span", "fitem");
		this.body.appendChild(F);
		this.yt = new aw(null, ["<img src=\"" + PIMG.zoomIn + "\" class=\"autoscale gsicon\" />", "<img src=\"" + PIMG.zoomOut + "\" class=\"autoscale gsicon\" />"]);
		F.appendChild(this.yt.u);
		this.yt.$(i.E.I, this.Ah, this);
		this.m3 = new fV([20, 2]);
		this.body.appendChild(this.m3.u);
		this.m3.$("click", this.JP, this);
		this.ns = new fV([20, 3]);
		this.body.appendChild(this.ns.u);
		this.ns.$("click", this.JP, this)
	}
	fU.prototype = new eo;
	fU.prototype.Pc = function () {
		this.m3.t();
		this.ns.t()
	};
	fU.prototype.Ah = function () {
		var F = {
				e: i.B.R2,
				Q: this.Q,
				Wu: this.yt.q() == 0
			},
			P = new l(i.E.L, !0);
		P.data = F;
		this.w(P)
	};
	fU.prototype.St = function (F) {
		if (this.nJ != F.nJ) this.yt.k(1 - this.yt.q());
		this.nJ = F.nJ
	};
	fU.prototype.JP = function (F) {
		var P = new l(i.E.H, !0);
		P.Q = B.QS;
		P.data = {
			e: "adapt",
			C: F.target == this.m3 ? "pixel" : "fitscr"
		};
		this.w(P)
	};

	function h3(F, P) {
		eo.call(this);
		if (F == null) return;
		this.eh = {};
		var o = [
			[12, 76, 0],
			[12, 76, 1]
		];
		if (P == null) o.push([12, 76, 2]);
		for (var w = 0; w < F.length; w++) {
			var X = F[w],
				Y = null;
			if (X == "tmode") {
				Y = new gq(null, o);
				Y.k(1)
			}
			if (X == "binop") {
				Y = new gq(null, [
					[18, 1],
					[18, 2],
					[18, 3],
					[18, 4]
				]);
				Y.U3()
			}
			if (X == "pshape") Y = new gq(null, [
				[12, 93, 0],
				[12, 93, 1], "Arrow", [12, 93, 2]
			]);
			if (X == "shape") Y = new gZ([12, 76, 1]);
			if (X == "crad") {
				Y = new gJ([12, 94, 0], 0, 50, "px");
				Y.k(0)
			}
			if (X == "cstr") {
				Y = new as
			}
			if (X == "irad") {
				Y = new gJ([12, 94, 1], 0, 100, "%");
				Y.k(40)
			}
			if (X == "length") {
				Y = new gJ([12, 80, 0], 4, 40);
				Y.k(4)
			}
			if (X == "sides") {
				Y = new gJ([12, 78], 3, 30);
				Y.k(5)
			}
			if (X == "width") {
				Y = new gJ([12, 41], 1, 100, "px");
				Y.k(5)
			}
			if (X == "tsiz") {
				Y = new gJ("Tip Size", 100, 500, "%");
				Y.k(300)
			}
			if (X == "tolr") {
				Y = new gJ([12, 24], 0, 100);
				Y.k(5)
			}
			if (X == "fstyle") {
				Y = new bW([12, 26])
			}
			if (X == "sstyle") {
				Y = new b1
			}
			if (X == "psnap") {
				Y = new aD([8, 10])
			}
			if (X == "crnr") {
				Y = new fV("\u2312", !1, [12, 94, 0], !0)
			}
			Y.parent = this;
			this.body.appendChild(Y.u);
			this.eh[X] = Y;
			Y.$(X == "crnr" ? "click" : i.E.I, this.Ah, this)
		}
	}
	h3.prototype = new eo;
	h3.prototype.St = function (F) {
		var P = h3.zs;
		if (P == null) P = h3.zs = new ba([{
			name: "Make Selection"
		}], [{
			f: i.E.H,
			Q: B.j1,
			o: {
				e: "frompath",
				oI: [null, 0, 0]
			}
		}]);
		P.parent = this;
		P.update(F.mY, F.s0);
		var o = new l(i.E.L, !0);
		o.data = {
			e: i.B.VX,
			Nc: P,
			x: F.jE.Bx + 2,
			y: F.jE.yG + 1
		};
		this.w(o)
	};
	h3.prototype.GH = function (w) {
		return null
	};
	h3.prototype.jp = function () {
		if (this.eh.pshape == null) return;
		var F = this.GH(this.eh.pshape.q());
		if (F == null) return;
		i.TD(this.body);
		for (var w = 0; w < F.length; w++) {
			var P = F[w];
			this.body.appendChild(this.eh[P].u)
		}
	};
	h3.prototype.Pc = function () {
		for (var F in this.eh) {
			this.eh[F].t()
		}
	};
	h3.prototype.Ah = function (F) {
		if (F.target == this.eh.crnr) {
			var P = new l(i.E.H, !0);
			P.Q = B.C1;
			P.data = {
				e: "crnr"
			};
			this.w(P);
			return
		}
		var P = new l(i.E.L, !0);
		if (F.target == this.eh.fstyle) {
			P.data = {
				e: i.B.Sl,
				S9: ge.l2,
				C: this.eh.fstyle.q()
			};
			this.w(P);
			return
		}
		if (F.target == this.eh.sstyle) {
			P.data = {
				e: i.B.Sl,
				S9: ge.Bh,
				C: this.eh.sstyle.q()
			};
			this.w(P);
			return
		}
		if (this.eh.tmode && this.eh.binop) {
			if (this.eh.tmode.q() == 0) this.eh.binop.R8();
			else this.eh.binop.U3()
		}
		P.data = {
			e: i.B.R2,
			Q: this.Q
		};
		for (var o in this.eh)
			if (o != "sstyle") P.data[o] = this.eh[o].q();
		this.w(P);
		if (F.target == this.eh.pshape) this.jp()
	};
	h3.prototype.AK = function (F, P) {
		eo.prototype.AK.call(this, F, P);
		var o = this.eh.fstyle,
			X = this.eh.sstyle;
		if (o) o.AK(F, P);
		if (X) X.AK(F, P);
		if (P == ge.oc || P == ge.jq)
			if (F.KQ.length != 0 && this.eh.shape) {
				this.eh.shape._F(F.KQ)
			} if (P == ge.oc || P == ge.l2)
			if (o) o.k(null, F.wI, F.a61);
		if (P == ge.oc || P == ge.Bh)
			if (X) X.k(null, F.n2, F.ah4)
	};

	function g3() {
		h3.call(this, ["tmode", "fstyle", "sstyle", "binop"], !0)
	}
	g3.prototype = new h3;

	function h4() {
		h3.call(this, ["tmode", "fstyle", "sstyle", "binop", "tolr"])
	}
	h4.prototype = new h3;

	function gj() {
		h3.call(this, ["fstyle", "sstyle"]);
		this.ad4 = null;
		this.a5x = null;
		this.a5G = null;
		this.pI = new gq("Path", [
			[18, 1],
			[18, 2],
			[18, 3],
			[18, 4],
			[18, 5]
		], !1, [4]);
		this.Yy = new fV("\u25BC");
		this.Yy.V2();
		this.BJ = new fV("\u25B2");
		this.BJ.V2();
		this.My = [this.pI, this.Yy, this.BJ];
		for (var w = 0; w < this.My.length; w++) {
			var F = this.My[w];
			this.body.appendChild(F.u);
			F.parent = this;
			F.$(w == 0 ? i.E.I : "click", this.WK, this)
		}
	}
	gj.prototype = new h3;
	gj.prototype.St = function (F) {
		if (F.He == "main") {
			var P = this.My,
				o = F.PS;
			if (o && o.p.length == 1) {
				this.a5x = o.clone();
				this.a5G = JSON.stringify(F.P$);
				var X = o.p[0],
					Y = H.V.k3(o.b);
				this.pI.R8();
				if (X > 0) this.Yy.R8();
				else this.Yy.U3();
				if (X < Y - 1) this.BJ.R8();
				else this.BJ.U3();
				var y = H.V.cx(o.b, X),
					z = o.b[y];
				this.pI.kW("Path " + (X + 1));
				this.pI.k([3, 0, 1, 2][z.IO])
			} else {
				for (var w = 0; w < P.length; w++) P[w].U3()
			}
		} else h3.prototype.St.call(this, F)
	};
	gj.prototype.Pc = function () {
		h3.prototype.Pc.call(this);
		this.pI.t()
	};
	gj.prototype.WK = function (F) {
		if (F.target == this.pI || F.target == this.Yy || F.target == this.BJ) {
			var P = {},
				o = this.a5x,
				X = o.b,
				Y = JSON.parse(this.a5G),
				y = o.p[0],
				z = H.V.cx(X, y),
				s = X[z];
			if (F.target == this.pI) {
				var t = this.pI.q();
				if (t < 4) s.IO = [1, 2, 3, 0][t];
				else {
					if (H.V.k3(X) <= 1) return;
					o.b = H.V.XE(X);
					o.p = o.b.length == 2 ? [] : [0];
					o.s_ = [];
					Y = [H.P$.Zm()]
				}
			} else {
				var d = F.target == this.Yy ? -1 : 1,
					U = Math.min(y, y + d),
					v = Math.max(y, y + d),
					A = H.V.cx(X, U),
					Z = H.V.cx(X, v);
				if (A == -1 || Z == -1) return;
				var D = Z + H.V.SD(X, v),
					q = Y[U];
				Y[U] = Y[v];
				Y[v] = q;
				var R = X.slice(0, A),
					J = X.slice(A, Z),
					W = X.slice(Z, D),
					p = X.slice(D);
				o.b = R.concat(W.concat(J.concat(p)));
				o.p[0] += d
			}
			P.PS = o;
			P.P$ = Y;
			var n = new l(i.E.L, !0);
			n.data = {
				e: i.B.R2,
				Q: this.Q,
				oI: P
			};
			this.w(n)
		}
	};

	function b8() {
		h3.call(this, ["fstyle", "sstyle", "crnr", "psnap"])
	}
	b8.prototype = new h3;

	function a0() {
		h3.call(this, "tmode fstyle sstyle binop cstr crad".split(" "))
	}
	a0.prototype = new h3;

	function gz() {
		h3.call(this, ["tmode", "fstyle", "sstyle", "binop", "cstr"])
	}
	gz.prototype = new h3;

	function g0() {
		h3.call(this, "tmode fstyle sstyle binop pshape sides irad crad width tsiz length".split(" "));
		this.ae4 = [
			["sides", "crad"],
			["sides", "irad", "crad"],
			["width", "tsiz"],
			["length"]
		];
		this.jp()
	}
	g0.prototype = new h3;
	g0.prototype.GH = function (w) {
		return ["tmode", "fstyle", "sstyle", "binop", "pshape"].concat(this.ae4[w])
	};

	function h6() {
		h3.call(this, ["tmode", "fstyle", "sstyle", "binop", "width"])
	}
	h6.prototype = new h3;

	function c9() {
		h3.call(this, "tmode fstyle sstyle binop cstr shape".split(" "))
	}
	c9.prototype = new h3;

	function dd() {
		cZ.call(this)
	}
	dd.prototype = new cZ(!0);

	function eD() {
		dj.call(this, ["brush", "qsmode", "redge"])
	}
	eD.prototype = new dj;

	function gf() {
		eo.call(this)
	}
	gf.prototype = new eo;

	function gK() {
		eo.call(this);
		this.Yy = new fV("\u25BC");
		this.Yy.V2();
		this.BJ = new fV("\u25B2");
		this.BJ.V2();
		var aW = [this.Yy, this.BJ];
		for (var w = 0; w < 2; w++) {
			var F = aW[w];
			this.body.appendChild(F.u);
			F.$("click", this.WK, this)
		}
	}
	gK.prototype = new eo;
	gK.prototype.WK = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.R2,
			Q: this.Q,
			mQ: "reorder",
			dir: F.target == this.Yy ? -1 : 1
		};
		this.w(P)
	};

	function hi(F) {
		eo.call(this);
		if (window.Typr == null || F) return;
		this.hC = null;
		this.akh = i.z("span", "");
		this.aaH = i.z("span", "");
		var P = 1;
		this.Zu = {
			cX: new i2(null, 24),
			ae: new gJ("X", 0, 0, "px", 0, !1, !0, 4),
			hd: new gJ("Y", 0, 0, "px", 0, !1, !0, 4),
			iG: new gJ("W", 0, 0, ["%", "px"], 2, !1, !0, 5),
			OB: new fV("\u2261", null, [12, 51], null),
			DG: new gJ("H", 0, 0, ["%", "px"], 2, !1, !0, 5),
			a8H: new gJ("\u2221", 0, 0, "\xB0", P, !1, !0),
			ajz: new gJ("\u25B1 X", -85, 85, "\xB0", P, !1, !0),
			a32: new gJ("\u25B1 Y", -85, 85, "\xB0", P, !1, !0),
			zv: new gq(null, [
				[12, 14, 2],
				[12, 14, 3], "Bicubic Sharper"
			])
		};
		this.Zu.zv.k(1);
		for (var o in this.Zu) {
			this.akh.appendChild(this.Zu[o].u);
			var X = this.Zu[o] == this.Zu.OB ? "click" : i.E.I;
			this.Zu[o].$(X, this.amw, this)
		}
		this.yI = new eN(!0, !0, !0);
		this.yI.$(i.E.I, this.a2T, this);
		this.yI.parent = this;
		var Y = this.aaH,
			y = this.yI;
		Y.appendChild(y.tX.u);
		Y.appendChild(y.GF.u);
		Y.appendChild(y.pw.u);
		Y.appendChild(y.yA.u);
		Y.appendChild(y.$A.u);
		this.dA = new fV([11, 9]);
		this.dA.$("click", this.aeR, this);
		this.XJ = new a_;
		this.XJ.$("click", this.RD, this)
	}
	hi.prototype = new eo;
	hi.prototype.St = function (F) {
		if (F.jE) {
			var P = hi,
				o = P.zs;
			if (o == null) o = P.zs = new ba(P.L$(), P.pp());
			o.t();
			o.parent = this;
			o.update(F.mY, F.s0);
			var X = new l(i.E.L, !0);
			X.data = {
				e: i.B.VX,
				Nc: o,
				x: F.jE.Bx + 2,
				y: F.jE.yG + 1
			};
			this.w(X);
			return
		}
		i.TD(this.body);
		this.hC = F;
		if (F.Zu) {
			var Y = F.Zu.T,
				y = F.Zu.Aw.clone(),
				z = Math.atan2(-y.i, y.m),
				s = new cu;
			s.rotate(-z);
			y.concat(s);
			var t = this.Zu;
			t.cX.k(F.Zu.d8);
			t.ae.k(F.Zu.bP.x);
			t.hd.k(F.Zu.bP.y);
			t.iG.k(y.m * (t.iG.nY() == "%" ? 100 : Y.Z));
			t.DG.k(y.xA * (t.DG.nY() == "%" ? 100 : Y.h));
			t.a8H.k(-z * 180 / Math.PI);
			t.ajz.k(0 * 180 / Math.PI);
			t.a32.k(Math.atan(y.p$) * 180 / Math.PI);
			this.body.appendChild(this.akh);
			this.dA.pe()
		}
		if (F.H4) {
			this.yI.k(F.H4);
			this.body.appendChild(this.aaH);
			this.dA.V2()
		}
		this.body.appendChild(this.XJ.u);
		if (F.a5E) this.body.appendChild(this.dA.u)
	};
	hi.prototype.amw = function (F) {
		var P = this.Zu,
			o = this.hC.Zu.T;
		if (F.target == P.OB) P.OB.k(!P.OB.q());
		if (P.OB.UX()) {
			var X = P.DG,
				Y = P.iG,
				y = o.h,
				z = o.Z;
			if (F.target == P.iG) {
				X = P.iG;
				Y = P.DG;
				y = o.Z;
				z = o.h
			}
			var s = X.q() / (X.nY() == "%" ? 100 : y);
			s *= Y.nY() == "%" ? 100 : z;
			Y.k(s)
		}
		var t = [];
		for (var d in P)
			if (P[d] != P.OB && P[d] != P.cX) {
				var s = P[d].q();
				if ((P[d] == P.iG || P[d] == P.DG) && s == 0) {
					s = .1;
					P[d].k(s)
				}
				if (P[d] == P.iG && P[d].nY() == "px") s /= o.Z / 100;
				if (P[d] == P.DG && P[d].nY() == "px") s /= o.h / 100;
				t.push(s)
			} var U = new aH(t[0], t[1]);
		if (F.target == P.cX) {
			this.Xl({
				He: "ctyp",
				d8: P.cX.q()
			})
		} else if (F.target == P.ae || F.target == P.hd) {
			this.Xl({
				He: "cen",
				bP: U
			})
		} else {
			var v = this.hC.Zu.Aw.clone(),
				A = v.clone(),
				Z = Math.atan2(-v.i, v.m);
			A.translate(-U.x, -U.y);
			A.rotate(-Z);
			var D = new cu(A.m, A.i, A.p$, A.xA, 0, 0);
			D.nJ();
			A.concat(D);
			A.concat(new cu(t[2] / 100, Math.tan(t[5] * Math.PI / 180), Math.tan(t[6] * Math.PI / 180), t[3] / 100, 0, 0));
			A.rotate(-t[4] * Math.PI / 180);
			A.translate(U.x, U.y);
			this.hC.Zu.Aw = A;
			this.Xl({
				He: "trn",
				Zu: A,
				_o: this.Zu.zv.q()
			})
		}
	};
	hi.prototype.a2T = function (F) {
		this.Xl({
			He: "wrp",
			H4: this.yI.q()
		})
	};
	hi.prototype.aeR = function (F) {
		this.Xl({
			He: "switchWarp"
		})
	};
	hi.prototype.RD = function (F) {
		this.Xl({
			He: this.XJ.q() ? "commit" : "cancel"
		})
	};
	hi.prototype.Xl = function (F) {
		F.e = i.B.R2;
		F.Q = this.Q;
		var P = new l(i.E.L, !0);
		P.data = F;
		this.w(P)
	};
	hi.prototype.Pc = function () {
		var F = this.Zu;
		for (var P in F) F[P].t();
		i.$d(F.iG, F.DG);
		this.XJ.t();
		this.yI.t();
		this.dA.t()
	};
	hi.L$ = function () {
		return [{
			name: [5, 9],
			n8: "Shift+Alt+Ctrl + T",
			aD: !0
		}, {
			name: [12, 38]
		}, {
			name: [2, 5]
		}, {
			name: [24, 4]
		}, {
			name: [2, 9]
		}, {
			name: [11, 9],
			Y: function (F) {
				if (F == null || F.p.length != 1) return {
					Y: !1
				};
				var P = F.r[F.p[0]];
				return {
					Y: P.add.TySh == null && !P.fO()
				}
			},
			aD: !0
		}, {
			name: ["VAR0 90\xB0 \u21BB", [2, 5]]
		}, {
			name: ["VAR0 90\xB0 \u21BA", [2, 5]]
		}, {
			name: ["VAR0 180\xB0", [2, 5]]
		}, {
			name: [
				[2, 6],
				[22, 4, 2]
			]
		}, {
			name: [
				[2, 6],
				[22, 4, 3]
			]
		}]
	};
	hi.pp = function () {
		return [{
			f: i.E.H,
			Q: B.DV,
			o: {
				e: "again"
			}
		}, {
			f: i.E.L,
			o: {
				e: i.B.MR,
				Q: B.DV,
				iF: {
					wi: 3
				}
			}
		}, {
			f: i.E.L,
			o: {
				e: i.B.MR,
				Q: B.DV,
				iF: {
					wi: 4
				}
			}
		}, {
			f: i.E.L,
			o: {
				e: i.B.MR,
				Q: B.DV,
				iF: {
					wi: 2
				}
			}
		}, {
			f: i.E.L,
			o: {
				e: i.B.MR,
				Q: B.DV,
				iF: {
					wi: 1
				}
			}
		}, {
			f: i.E.L,
			o: {
				e: i.B.MR,
				Q: B.DV,
				iF: {
					wi: -1
				}
			}
		}, {
			f: i.E.H,
			Q: B.DV,
			o: {
				e: "rot",
				tP: [2, 5],
				C: -Math.PI / 2
			}
		}, {
			f: i.E.H,
			Q: B.DV,
			o: {
				e: "rot",
				tP: [2, 5],
				C: -3 * Math.PI / 2
			}
		}, {
			f: i.E.H,
			Q: B.DV,
			o: {
				e: "rot",
				tP: [2, 5],
				C: Math.PI
			}
		}, {
			f: i.E.H,
			Q: B.DV,
			o: {
				e: "scl",
				tP: [
					[2, 6],
					[22, 4, 2]
				],
				C: new aH(-1, 1)
			}
		}, {
			f: i.E.H,
			Q: B.DV,
			o: {
				e: "scl",
				tP: [
					[2, 6],
					[22, 4, 3]
				],
				C: new aH(1, -1)
			}
		}]
	};

	function fF() {
		hi.call(this)
	}
	fF.prototype = new hi(!0);

	function gQ() {
		hi.call(this)
	}
	gQ.prototype = new hi(!0);

	function gs() {
		eo.call(this);
		var F = this.Of = [new gq([12, 36], ["Rigid", [15, 10, 0],
			[24, 4]
		]), new gq([12, 74], [
			[19, 8, 0],
			[19, 8, 1],
			[19, 8, 2]
		]), new gJ([7, 4], 0, 100, "px"), new aD("Show Mesh"), new fV("\u25BC", null, null, !0), new fV("\u25B2", null, null, !0)];
		for (var w = 0; w < F.length; w++) {
			var P = F[w];
			P.parent = this;
			this.body.appendChild(P.u);
			P.$(w < 4 ? i.E.I : "click", this.a8h, this)
		}
		this.XJ = new a_;
		this.XJ.$("click", this.RD, this);
		this.body.appendChild(this.XJ.u)
	}
	gs.prototype = new eo;
	gs.prototype.Pc = function () {
		var F = this.Of;
		for (var w = 0; w < 4; w++) F[w].t();
		this.XJ.t()
	};
	gs.prototype.St = function (F) {
		var F = F.S9;
		for (var w = 0; w < 4; w++) this.Of[w].k(F[w])
	};
	gs.prototype.a8h = function (F) {
		var P = [];
		for (var w = 0; w < 4; w++) P[w] = this.Of[w].q();
		var o = this.Of.indexOf(F.target);
		if (o < 4) this.Xl({
			He: "prm",
			S9: P
		});
		else this.Xl({
			He: "moveDepth",
			alu: o == 5
		})
	};
	gs.prototype.RD = function (F) {
		this.Xl({
			He: this.XJ.q() ? "commit" : "cancel"
		})
	};
	gs.prototype.Xl = function (F) {
		F.e = i.B.R2;
		F.Q = this.Q;
		var P = new l(i.E.L, !0);
		P.data = F;
		this.w(P)
	};

	function e3() {
		au.call(this);
		this.u = i.z("div", "cmanager");
		this.YY = 0;
		this.mi = 0;
		this.Se = [];
		this.ax = {};
		this.A8 = i.z("div", "alertcont");
		this.u.appendChild(this.A8);
		this.a3p = i.z("div", "alertcont");
		this.u.appendChild(this.a3p);
		this.Q8 = i.z("div", "alertcont");
		this.ab_ = 0;
		this.Mh = -1;
		this.a8X = null;
		this.ct = null;
		var F = this.a4J = i.z("div", "alertpanel");
		F.setAttribute("style", "padding:0.7em 1em 0.1em 1em;");
		this.Q8.appendChild(F);
		var P = this.De = i.z("input");
		P.setAttribute("type", "text");
		P.setAttribute("style", "background-color:white; color:black; font-size:1.2em; width:100%;  margin:0;");
		P.addEventListener("input", this.alp.bind(this), !1);
		P.addEventListener("keydown", this.a1G.bind(this), !1);
		F.appendChild(P);
		var o = this.adD = i.z("div", "contextpanel scrollable");
		o.setAttribute("style", "text-align:left; box-shadow:none; margin:0.5em 0 1em 0;color:#888;");
		o.addEventListener("click", this.a43.bind(this), !1);
		F.appendChild(o);
		i.X8(document.body, this.aeI.bind(this))
	}
	e3.prototype = new au;
	e3.prototype.kJ = function () {
		if (i.WW(this.Q8)) this.u.removeChild(this.Q8)
	};
	e3.prototype.a3V = function (F, P) {
		var o = this.a8X = [];
		for (var w = 0; w < es.data.length; w++) {
			var X = es.data[w],
				Y = [h9.get(X.name)],
				y = [w];
			e3.Qu(X.items, Y, y, o, F, P)
		}
		var z = dx.lt;
		for (var w = 0; w < z.length; w += 3) {
			o.push([
				["Tools", h9.get(z[w])],
				[-1, z[w + 2]]
			])
		}
		this.u.appendChild(this.Q8);
		var s = this.De;
		s.focus();
		s.select();
		this.qK()
	};
	e3.prototype.alp = function (F) {
		this.Mh = -1;
		this.qK()
	};
	e3.prototype.qK = function () {
		var F = this.De.value.toLowerCase().trim().replace(/  +/g, " "),
			P = this.a8X,
			o = [],
			X = [],
			Y = F.split(" ");
		if (F != "")
			for (var w = 0; w < P.length; w++) {
				var y = P[w][0],
					z = [],
					s = 0;
				for (var t = 0; t < y.length; t++) z[t] = -1;
				for (var d = 0; d < Y.length; d++)
					for (var t = 0; t < y.length; t++) {
						var U = y[t].toLowerCase().indexOf(Y[d]);
						if (U != -1) {
							z[t] = [U, U + Y[d].length];
							s++;
							break
						}
					}
				if (s == Y.length) {
					o.push(P[w]);
					X.push(z)
				}
			}
		var v = [],
			A = this.adD;
		i.TD(A);
		for (var w = 0; w < o.length; w++) {
			var Z = o[w][0],
				U = X[w],
				D = "enab",
				R = "";
			if (w == this.Mh) D += " active";
			var q = i.z("div", D);
			v.push(q);
			A.appendChild(q);
			for (var t = 0; t < Z.length; t++) {
				var J = U[t],
					W = Y[t],
					p = Z[t];
				if (J != -1) p = p.slice(0, J[0]) + "<span style=\"color:black\">" + p.slice(J[0], J[1]) + "</span>" + p.slice(J[1]);
				R += p;
				if (t < Z.length - 1) R += " \uFE65 "
			}
			q.innerHTML = R
		}
		this.ct = [o, v]
	};
	e3.prototype.a1G = function (F) {
		var P = G.be,
			o = F.code;
		if (P(o, G.yc)) this.kJ();
		var X = P(o, G.DY),
			Y = P(o, G.yF),
			y = P(o, G.Xr);
		if (X || Y) {
			this.Mh = Math.max(0, Math.min(this.ct[0].length - 1, this.Mh + (X ? -1 : 1)));
			this.qK()
		}
		if (y && this.Mh != -1) this.U0(this.Mh)
	};
	e3.Qu = function (F, P, o, X, Y, y) {
		for (var w = 0; w < F.length; w++) {
			var z = F[w],
				s = P.slice(0),
				t = o.slice(0),
				d = h9.get(z.name);
			if (z.Y) {
				var U = z.Y(Y, y, w);
				if (U.IK) d = U.IK;
				if (U.Y == !1) continue
			}
			s.push(d);
			t.push(w);
			if (z.sub) e3.Qu(z.sub, s, t, X, Y, y);
			else X.push([s, t])
		}
	};
	e3.prototype.a43 = function (F) {
		var P = F.target;
		if (P.tagName.toLowerCase() == "span") P = P.parentNode;
		var o = this.ct[1].indexOf(P);
		if (o != -1) this.U0(o)
	};
	e3.prototype.U0 = function (F) {
		var P = this.ct[0][F][1];
		if (P[0] == -1) {
			var o = new l(i.E.L, !0);
			o.data = {
				e: i.B.MR,
				Q: P[1]
			};
			this.w(o)
		} else {
			var X = es.data[P[0]].Au[P[1]];
			for (var w = 2; w < P.length; w++) X = X.sub[P[w]];
			var Y = new l(X.f, !0);
			Y.Q = X.Q;
			Y.data = X.o;
			this.w(Y)
		}
		this.kJ()
	};
	e3.prototype.l9 = function (F, P) {
		this.YY = F;
		this.mi = P;
		this.adD.style["max-height"] = P - 120 + "px"
	};
	e3.prototype.ahM = function (F) {
		var P = i.z("div", "alertpanel");
		P.textContent = h9.get(F);
		this.A8.appendChild(P);
		this.ax[JSON.stringify(F)] = P
	};
	e3.prototype.a4X = function (F) {
		var P = this.ax[JSON.stringify(F)];
		this.A8.removeChild(P);
		delete this.ax[JSON.stringify(F)]
	};
	e3.prototype.alert = function (F, P) {
		var o = this.a3p;
		for (var w = 0; w < o.children.length; w++)
			if (o.children[w].textContent == F) return;
		var X = i.z("div", "alertpanel tpanel");
		X.textContent = F;
		X.setAttribute("style", "opacity:0.5; transform:scale(0.9)\t");
		o.appendChild(X);
		if (P == null) P = 1500;
		var Y = P,
			y = Math.max(Date.now() + Y, this.ab_ + Y);
		setTimeout(function () {
			X.setAttribute("style", "transform:scale(1); opacity:1;")
		}, 10);
		setTimeout(function () {
			o.setAttribute("style", "margin-top: -3.6em; transform: translateY(3.6em);")
		}, y - Date.now() - 30);
		setTimeout(function () {
			o.removeChild(o.firstChild);
			o.setAttribute("style", "transition: transform 0.7s;  margin-top: 1em;  transform: translateY(0em);")
		}, y - Date.now());
		this.ab_ = y
	};
	e3.prototype.aeI = function (F) {
		var P = this.Se;
		for (var w = P.length - 1; w >= 0; w--) {
			var o = P[w],
				X = F.target;
			while (X != null) {
				if (X == o.u) {
					this.Y3(o);
					return
				}
				X = X.parentNode
			}
		}
		this.Y3();
		var Y = F.target;
		while (Y != this.Q8 && Y != document.body) Y = Y.parentNode;
		if (Y != this.Q8) this.kJ()
	};
	e3.prototype.Y3 = function (F) {
		var P = this.Se;
		for (var w = 0; w < P.length; w++) {
			if (F && F.a9B(P[w])) continue;
			var o = P[w].u;
			o.style.height = "auto";
			i.sT(o, "scrollable");
			this.u.removeChild(o);
			P.splice(w, 1);
			w--
		}
	};
	e3.prototype.a5c = function (F) {
		this.Y3(F.Nc);
		var P = F.Nc,
			o = P.u;
		if (this.Se.indexOf(P) != -1) return;
		this.Se.push(P);
		this.u.appendChild(P.u);
		var X = this.YY,
			Y = this.mi,
			y = F.x,
			z = F.y,
			s = this.u.getBoundingClientRect(),
			t = P instanceof ba;
		if (t || F.q1) {
			var d = P.EN(),
				U = P.pf();
			if (t) d = Math.min(d, 200);
			if (z + U < Y) {
				y = Math.min(y, X - d - 5)
			} else {
				if (y + d < X) {
					z = Math.min(z, Y - U - 5)
				} else if (U < z) {
					z = z - U - 2;
					y = Math.min(y, X - d - 5)
				} else {
					y = y - d;
					z = Math.min(z, Y - U - 5)
				}
			}
			if (F.a5L) z = Math.max(2, F.y - U - 2);
			if (F.afi) z = F.y
		}
		z = Math.max(2, z);
		var top = Math.round(z - s.y + this.u.offsetTop);
		o.style.position = "absolute";
		o.style["z-index"] = 10;
		o.style.left = Math.round(y) + "px";
		o.style.top = top + "px";
		if (z + P.pf() > Y - 3) {
			o.style.height = Y - 3 - z + "px";
			i.KL(o, "scrollable")
		}
	};
	e3.prototype.aP = function (F) {
		var P = F.Nc,
			o = this.Se.indexOf(P);
		if (o == -1) return;
		this.Se.splice(o, 1);
		var X = P.u;
		this.u.removeChild(P.u)
	};
	e3.prototype._X = function () {
		var F = this.Se;
		return F.length == 0 ? null : F[F.length - 1]
	};
	e3.prototype.af2 = function () {
		this.aP({
			Nc: this._X()
		})
	};

	function bm() {
		au.call(this);
		this.u = i.z("div", "confbar")
	}
	bm.prototype = new au;
	bm.prototype.aaI = function (F) {
		F.parent = this;
		i.TD(this.u);
		this.u.appendChild(F.u)
	};

	function cz() {
		au.call(this);
		this.yH = null;
		this.xP = i.z("input", "");
		this.xP.setAttribute("type", "file");
		this.xP.setAttribute("multiple", "");
		this.xP.addEventListener("change", function (F) {
			this.Aq(F.target.files, null, this.FJ, null);
			this.FJ = null
		}.bind(this), !1);
		document.body.appendChild(this.xP);
		this.xP.setAttribute("style", "display:none");
		this.ae3 = [];
		this.RZ = !1;
		this.abk = {};
		this.FJ = null
	}
	cz.prototype = new au;
	cz.aat = function (F) {
		try {
			navigator.clipboard.write([new ClipboardItem(Object.defineProperty({}, F.type, {
				value: F,
				enumerable: !0
			}))])
		} catch (h9) {
			console.error(h9, h9.message)
		}
	};
	cz.ll = function (F, P) {
		navigator.clipboard.read().then(function (o) {
			for (var w = 0; w < o.length; w++) {
				try {
					var X = o[w];
					for (var Y = 0; Y < X.types.length; Y++) {
						var y = X.types[Y];
						if (y != "image/png") continue;
						X.getType(y).then(function (z) {
							new Response(z).arrayBuffer().then(function (s) {
								cz.qt({
									name: "image.png"
								}, s, F, P)
							})
						})
					}
				} catch (h9) {
					console.error(h9, h9.message)
				}
			}
		}).catch(function (o) {
			alert("You did not give Photopea permissions to access the clibpoard. (" + o.message + ")")
		})
	};
	cz.a0F = function (F) {
		navigator.permissions.query({
			name: "clipboard-read"
		}).then(function (P) {
			F(P.state)
		})
	};
	cz.prototype.pt = function (F) {
		if (F == null) F = [23, 5];
		var P = JSON.stringify(F),
			o = this.abk;
		if (o[P] == null) o[P] = 0;
		if (o[P] == 0) {
			var X = new l(i.E.L, !0);
			X.data = {
				e: i.B.Uw,
				kr: F
			};
			this.w(X)
		}
		o[P]++
	};
	cz.prototype.mr = function (F) {
		if (F == null) F = [23, 5];
		var P = JSON.stringify(F),
			o = this.abk;
		if (o[P] == null) o[P] = 0;
		o[P]--;
		if (o[P] == 0) {
			var X = new l(i.E.L, !0);
			X.data = {
				e: i.B.p7,
				kr: F
			};
			this.w(X)
		}
	};
	cz.prototype.aej = function (F, P) {
		var o = this.xP;
		if (P) o.setAttribute("accept", P);
		else o.removeAttribute("accept");
		var X = document.createEvent("MouseEvents");
		X.initMouseEvent("click", !0, !0, document.defaultView, 1, 0, 0, 0, 0, !1, !1, !1, !1, 0, null);
		o.dispatchEvent(X);
		this.FJ = F
	};
	cz.prototype.Qj = function (F) {
		if (F.url.indexOf("photopea.com#i") != -1 || F.url.indexOf("photopea.com/#i") != -1) {
			this.CQ(F.url.split("#i").pop());
			return
		}
		this.ae3.push(F);
		this.tJ()
	};
	cz.prototype.tJ = function () {
		var F = this.ae3;
		if (F.length == 0 || this.RZ) return;
		this.RZ = !0;
		var P = F.shift();
		this.pt();
		if (P.RY == null) P.RY = {};
		var o = new XMLHttpRequest;
		o.nk = P;
		var X = P.url;
		if (P.pY) X = "mirror.php?url=" + encodeURIComponent(X);
		o.open("GET", X);
		if (P.jl)
			for (var Y in P.jl) o.setRequestHeader(Y, P.jl[Y]);
		o.responseType = "arraybuffer";
		o.onload = this.v7.bind(this);
		o.send()
	};
	cz.prototype.Aq = function (F, P, o, X) {
		for (var w = 0; w < F.length; w++) {
			this.pt();
			var Y = F[w],
				y = new FileReader;
			y.nk = Y;
			y.nk.q3 = o;
			y.nk.kT = X;
			y.aig = P;
			y.onload = this.v7.bind(this);
			y.onerror = function (z) {
				this.mr()
			}.bind(this);
			y.readAsArrayBuffer(Y)
		}
		this.xP.value = null
	};
	cz.prototype.aiR = function (F) {
		var P = F.D2.S6,
			o = cz.jr(F, P);
		cK.de(function () {
			var X = new XMLHttpRequest,
				Y = "https://www.googleapis.com/upload/drive/v3/files/" + F.D2.file.id + "?uploadType=media" + "&" + cK.pS();
			X.open("PATCH", Y, !0);
			X.addEventListener("load", function (y) {
				var z = JSON.parse(y.target.response);
				alert(z.name + " updated")
			});
			X.send(o);
			alert("Saving \"" + F.D2.file.name + "\" to Google Drive ...")
		})
	};
	cz.prototype.a6V = function (F, P, o) {
		var X = F.lD(),
			Y = P[0];
		return cz.jr(F, Y, o)
	};
	cz.prototype.alN = function (F, P) {
		this.pt("Saving ...");
		this.yH = P;
		setTimeout(cz.a9D.bind({
			Fe: F,
			caller: this
		}), 50)
	};
	cz.jr = function (F, P, o) {
		var X = P.split(":"),
			Y = X[0],
			y = null;
		if (X.length == 2) {
			if (Y == "jpg" || Y == "webp") y = [Math.round(100 * parseFloat(X[1]))];
			if (Y == "psd") y = [!0, !0]
		}
		var z = em.eX(F, Y.toUpperCase(), null, null, y, o);
		return z
	};
	cz.a9D = function () {
		var F = this.Fe,
			P = this.caller,
			o = F.RY.Qy,
			X = o.formats,
			Y, y;
		F.lD();
		var z = Date.now();
		if (o.version == 1) {
			var s = [],
				t = 0,
				U = 0;
			for (var w = 0; w < X.length; w++) {
				var d = cz.jr(F, X[w], P.yH);
				s.push(d);
				t += d.byteLength
			}
			Y = new Uint8Array(2e3 + t);
			var v = "{ \"source\": " + JSON.stringify(F.Rg) + ", \"versions\": [\n";
			for (var w = 0; w < X.length; w++) {
				var A = new Uint8Array(s[w]);
				v += "\t{\"format\": \"" + X[w].split(":")[0] + "\", \"start\": " + U + ", \"size\": " + A.length + " }" + (w + 1 < X.length ? ", " : "") + "\n";
				Y.set(A, 2e3 + U);
				U += s[w].byteLength
			}
			v += "] }";
			var Z = r.vr(v, Y, 0);
			for (var w = Z; w < 2e3; w++) Y[w] = 32;
			y = "application/octet-stream"
		} else {
			var D = new cB,
				q = 0,
				R = "",
				J = encodeURIComponent;
			R = "p=" + J("{ \"source\": " + JSON.stringify(F.Rg) + ", \"versions\": [");
			r.bh(D, q, R);
			q += R.length;
			for (var w = 0; w < X.length; w++) {
				R = J(" {\"format\": \"" + X[w].split(":")[0] + "\", \"data\": \"");
				r.bh(D, q, R);
				q += R.length;
				var d = cz.jr(F, X[w], P.yH),
					W = cz.aku(d, d.byteLength),
					Z = W.length;
				D.cj(q, Z);
				for (var p = 0; p < Z; p++) {
					D.cj(q, 3);
					var n = W[p];
					if (n == 43) {
						D.data[q] = 37;
						D.data[q + 1] = 50;
						D.data[q + 2] = 66;
						q += 3
					} else if (n == 47) {
						D.data[q] = 37;
						D.data[q + 1] = 50;
						D.data[q + 2] = 70;
						q += 3
					} else if (n == 61) {
						D.data[q] = 37;
						D.data[q + 1] = 51;
						D.data[q + 2] = 68;
						q += 3
					} else {
						D.data[q] = n;
						q++
					}
				}
				R = J("\" }" + (w + 1 < X.length ? ", " : ""));
				r.bh(D, q, R);
				q += R.length
			}
			R = J("] }");
			r.bh(D, q, R);
			q += R.length;
			Y = D.data.slice(0, q);
			y = "application/x-www-form-urlencoded"
		}
		var b = new XMLHttpRequest;
		b.open("POST", o.url, !0);
		if (y) b.setRequestHeader("Content-Type", y);
		b.addEventListener("load", cz.a3D.bind(this));
		b.send(new Blob([Y.buffer]))
	};
	cz.a3D = function (F) {
		this.caller.mr("Saving ...");
		var P = F.target.response;
		if (P.charAt(0) == "{") {
			P = JSON.parse(P);
			if (P.newSource) this.Fe.Rg = P.newSource;
			if (P.message) alert(P.message, 2e3);
			if (P.script) {
				var o = new l(i.E.L, !0);
				o.data = {
					e: i.B.kP,
					YS: P.script
				};
				this.caller.w(o)
			}
		} else alert("Saved. Response: " + P, 1500)
	};
	cz.ga = function (F) {
		var P = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
			o = new Uint8Array(F),
			X = o.length,
			Y = X % 3,
			y = X - Y,
			z = [],
			s = 0,
			t = 0,
			d = 0;
		for (var w = 0; w < y; w += 3) {
			s = o[w];
			t = o[w + 1];
			d = o[w + 2];
			z.push(P[s >> 2] + P[(s & 3) << 4 | t >> 4] + P[(t & 15) << 2 | d >> 6] + P[d & 63])
		}
		if (Y == 1) {
			s = o[y];
			z.push(P[s >> 2] + P[(s & 3) << 4] + "==")
		}
		if (Y == 2) {
			s = o[y];
			t = o[y + 1];
			z.push(P[s >> 2] + P[(s & 3) << 4 | t >> 4] + P[(t & 15) << 2] + "=")
		}
		var U = z.join("");
		return U
	};
	cz.aku = function (F, P) {
		var o = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
			X = new Uint8Array(64),
			s = 0,
			t = 0,
			d = 0,
			v = 0;
		for (var w = 0; w < 64; w++) X[w] = o.charCodeAt(w);
		var Y = new Uint8Array(F),
			y = P % 3,
			z = P - y,
			U = new Uint8Array(Math.floor(P / 3) * 4 + (y == 0 ? 0 : 4));
		for (var w = 0; w < z; w += 3) {
			s = Y[w];
			t = Y[w + 1];
			d = Y[w + 2];
			U[v] = X[s >>> 2];
			U[v + 1] = X[(s & 3) << 4 | t >>> 4];
			U[v + 2] = X[(t & 15) << 2 | d >>> 6];
			U[v + 3] = X[d & 63];
			v += 4
		}
		if (y == 1) {
			s = Y[z];
			U[v] = X[s >> 2];
			U[v + 1] = X[(s & 3) << 4];
			U[v + 2] = 61;
			U[v + 3] = 61
		}
		if (y == 2) {
			s = Y[z];
			t = Y[z + 1];
			U[v] = X[s >> 2];
			U[v + 1] = X[(s & 3) << 4 | t >> 4];
			U[v + 2] = X[(t & 15) << 2];
			U[v + 3] = 61
		}
		return U
	};
	cz.prototype.v7 = function (F) {
		var P, o = F.target.nk;
		if (F.target instanceof XMLHttpRequest) P = F.target.response;
		else P = F.target.result;
		cz.PG(o, P, this, F.target.aig);
		this.mr();
		if (F.target instanceof XMLHttpRequest) {
			this.RZ = !1;
			this.tJ()
		}
	};
	cz.PG = function (F, P, o, X) {
		if (window.location.href.indexOf("photopea.com") == -1) cz.qt(F, P, o, X);
		else {
			try {
				cz.qt(F, P, o, X)
			} catch (h9) {
				if (h9 == "low_ram") {} else {
					var Y = "Error. Please, send your file to support@photopea.com and we will solve it.";
					if (em.Xh(P) == "eps") Y = "We support only basic EPS files. Convert your file into PDF (with an online converter) and open the PDF in Photopea.";
					window.alm(Y, 1e4)
				}
			}
		}
	};
	cz.qt = function (F, P, o, X) {
		var Y;
		if (F.name) Y = F.name.split(".")[0];
		else {
			if (F.url.substring(0, 5) == "data:" || F.url.indexOf("googleapis") != -1) Y = "image";
			else Y = F.url.substring(F.url.lastIndexOf("/") + 1).split(".")[0];
			Y = Y.slice(0, 50)
		}
		var y = F.name ? F.name : F.url,
			z = new Uint8Array(P),
			s = em.Xh(P),
			t = window.ga;
			
		if (Math.random() < .25 && t && s != null && em.$I(s)) t("send", "event", "Formats", s);
		if (s == null) s = r.$o(z, 0, 4);
		if (y && y.toLowerCase().endsWith(".raw")) {
			var d = new l(i.E.L, !0);
			d.data = {
				e: i.B.uH,
				W2: "importraw",
				Zs: P,
				Z5: y.split("/").pop()
			};
			o.w(d);
			return
		} else if (s == "json") {
			var U = "";
			for (var w = 0; w < z.length; w++) U += String.fromCharCode(z[w]);
			U = decodeURIComponent(escape(U));
			alert("Unknown JSON file opened. See the content in the console.", 5e3);
			return
		}
		if (s == "html") {
			var U = r.bc(z, 0, z.length),
				v = new DOMParser,
				A = v.parseFromString(U, "text/html"),
				Z = A.getElementsByTagName("meta");
			for (var w = 0; w < Z.length; w++) {
				var D = Z[w],
					q = D.getAttribute("property"),
					R = D.getAttribute("content"),
					J = null;
				if (q == "og:image") J = R;
				if (q == null && R && R.startsWith("0;url=/imgres?")) {
					var W = R.slice(14).split("&");
					for (var p = 0; p < W.length; p++)
						if (W[p].startsWith("imgurl")) J = decodeURIComponent(W[p].slice(7))
				}
				if (J == null) continue;
				var d = new l(i.E.L, !0);
				d.data = {
					e: i.B.JX,
					S9: {
						url: J,
						pY: !0,
						q3: F.q3
					}
				};
				o.w(d)
			}
			return
		}
		if (em.$I(s)) {
			var n, b = em.$I(s);
			if (F.q3 != null && "jpg png gif pdf svg psd".split(" ").indexOf(s) != -1) {
				var d = new l(i.E.L, !0);
				d.data = {
					e: i.B.G0,
					target: F.q3,
					z3: F.kT,
					EA: P,
					lO: Y
				};
				o.w(d);
				return
			}
			if (b.Vi) {
				n = new c_(Y + (s == "psd" ? "" : "-" + s) + ".psd");
				n.AZ = s;
				b.xo(P, n)
			} else {
				var Q = b.xo(P);
				if (Q[0].t33421 || Q[0].t50706) {
					H.raw.normalize(Q[0], P);
					console.log(Q[0]);
					var d = new l(i.E.L, !0);
					d.data = {
						e: i.B.uH,
						W2: "rawpea",
						jX: Q[0]
					};
					o.w(d);
					return
				}
				if (X) {
					X(new Uint8Array(Q[0].data), Q[0].ym);
					return
				}
				n = cz.Y$(Y, Q)
			}
			n.RY = F.RY;
			n.Rg = F.url;
			n.OU = F.OU;
			n.D2 = F.D2;
			if (n.D2) n.D2.S6 = s;
			if (n.r.length != 0) {
				var d = new l(i.E.L, !0);
				d.data = {
					e: F.q3 == null ? i.B.qD : i.B.G0,
					target: F.q3,
					z3: F.kT,
					EA: n
				};
				o.w(d)
			}
			return
		}
		var _ = new l(i.E.L, !0);
		_.data = {
			e: i.B.Wp,
			Zs: P,
			st: F.name
		};
		var L = F instanceof File && F.adq != !0,
			d = new l(i.E.L, !0);
		d.data = {
			e: i.B.Sl,
			RY: "add",
			S9: null,
			EM: null,
			a6a: F.adq
		};
		if (s == "zip") {
			var m = Date.now(),
				I = UZIP.parse(P),
				c = "xml rels plist iwa db ds_store txt rtf".split(" ");
			for (var u in I) {
				var a = !1;
				for (var w = 0; w < c.length; w++)
					if (u.toLowerCase().endsWith("." + c[w])) a = !0;
				if (u.startsWith("__MACOSX/") || I[u].length == 0) a = !0;
				if (a) continue;
				var N = u.split("/").pop();
				cz.PG({
					name: N
				}, I[u].buffer, o, X)
			}
		} else if (s == "jsx") {
			var U = r.bc(new Uint8Array(P));
			d.data = {
				e: i.B.kP,
				YS: U
			};
			o.w(d)
		} else if (s == "otf") {
			if (L) o.w(_);
			var V = Typr.parse(P);
			d.data.S9 = ge.Du;
			for (var w = 0; w < V.length; w++) {
				d.data.EM = V[w];
				o.w(d)
			}
		} else if (s == "asl") {
			if (L) o.w(_);
			var V = gA.ee(P);
			d.data.S9 = ge.AT;
			d.data.EM = V.f1;
			o.w(d);
			d.data.S9 = ge.Ym;
			d.data.EM = V.hI;
			o.w(d)
		} else if (s == "tpl") {
			var V = a8.ee(P);
			d.data.S9 = ge.Sm;
			d.data.EM = {
				Xu: V.Xu,
				A6: V.A6,
				list: []
			};
			o.w(d);
			d.data.S9 = ge.o8;
			d.data.EM = V.list;
			o.w(d)
		} else {
			var M = "";
			for (var O in ge.Vv)
				if (ge.Vv[O][0] == s) M = O;
			if (M != "") {
				if (L) o.w(_);
				d.data.EM = ge.Vv[M][2].ee(P, y);
				d.data.S9 = M;
				o.w(d)
			} else alert("Unknown file format: " + JSON.stringify(s))
		}
	};
	cz.prototype.agR = function (F) {
		var P = new XMLHttpRequest;
		P.open("POST", "https://api.imgur.com/3/image", !0);
		P.setRequestHeader("Authorization", "Client-ID 3ad80d2d9969219");
		P.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		P.setRequestHeader("Accept", "application/json");
		P.addEventListener("load", this.alz);
		P.send("type=base64&image=" + encodeURIComponent(cz.ga(F)));
		alert("Saving to Imgur ...", 4e3)
	};
	cz.prototype.alz = function (F) {
		var P = JSON.parse(F.target.response);
		if (P.success) window.open(P.data.link, "Imgur")
	};
	cz.prototype.CQ = function (F) {
		this.pt("Loading ...");
		var P = new XMLHttpRequest;
		P.responseType = "arraybuffer";
		P.open("GET", "https://f000.backblazeb2.com/file/psdshared/" + F);
		P.onload = this.a4R.bind(this);
		P.send();
		cz.a0A = Date.now();
		cz.agP = F
	};
	cz.prototype.a4R = function (F) {
		var P = new Uint8Array(F.target.response);
		console.log(P.length, Date.now() - cz.a0A);
		for (var w = 0; w < P.length; w++) P[w] = 255 - P[w];
		P = pako.inflateRaw(P);
		var o = JSON.parse(r.bc(P, 0, 2e3));
		cz.qt({
			name: o.name
		}, P.slice(2e3).buffer, this);
		this.mr("Loading ...");
		var X = new XMLHttpRequest;
		X.open("GET", "/papi/img/update.php?id=" + cz.agP);
		X.send()
	};
	cz.prototype.a64 = function (F, P) {
		if (!(F instanceof ArrayBuffer)) throw "e";
		F = new Uint8Array(F);
		var o = new Uint8Array(F.length + 2e3),
			s = "";
		for (var w = 0; w < 2e3; w++) o[w] = 32;
		r.vr(JSON.stringify({
			name: P
		}), o, 0);
		o.set(F, 2e3);
		F = o;
		F = pako.deflateRaw(F);
		for (var w = 0; w < F.length; w++) F[w] = 255 - F[w];
		F = F.buffer;
		var X = F.byteLength,
			Y = ~~(106e5 / 2);
		if (X > Y) {
			confirm("Your file is " + eV.WY(X) + ". Our limit is " + eV.WY(Y) + ". Delete some layers and try again.");
			return
		}
		var y = sha1(F),
			z = [];
		for (var w = 0; w < 20; w++) {
			var t = parseInt(y.slice(w * 2, w * 2 + 2), 16);
			z.push(t);
			s += String.fromCharCode(t)
		}
		var d = btoa(s).replace(/\+/g, "-").replace(/\//g, "_").slice(0, 8);
		if (cz.a8v(d)) {
			console.log("file already exists");
			window.open("https://www.photopea.com#i" + d);
			return
		}
		this.pt("Publishing ...");
		var U = new XMLHttpRequest;
		U.TB = [F, y, d];
		U.open("GET", "/papi/img/publish.php?rnd=" + Math.random());
		U.onload = this.aa6.bind(this);
		U.send()
	};
	cz.a8v = function (F) {
		try {
			var P = new XMLHttpRequest;
			P.open("HEAD", "https://f000.backblazeb2.com/file/psdshared/" + F, !1);
			P.send();
			if (P.status == 200) return !0
		} catch (h9) {
			return !1
		}
		return !1
	};
	cz.prototype.aa6 = function (F) {
		var P = JSON.parse(F.target.response),
			o = F.target.TB,
			X = new XMLHttpRequest;
		X.open("POST", P.uploadUrl);
		X.setRequestHeader("Authorization", P.authorizationToken);
		X.setRequestHeader("X-Bz-File-Name", o[2]);
		X.setRequestHeader("Content-Type", "b2/x-auto");
		X.setRequestHeader("X-Bz-Content-Sha1", o[1]);
		X.send(new Blob([o[0]]));
		X.onload = this.af1.bind({
			JW: this,
			TB: o
		})
	};
	cz.prototype.af1 = function (F) {
		this.JW.mr("Publishing ...");
		window.open("https://www.photopea.com#i" + this.TB[2])
	};
	cz.Y$ = function (F, P) {
		var o = P[0]._l && P[0]._l.startsWith("_a_"),
			X, Y = new c_(F + ".psd"),
			y = new ev(0, 0, 1, 1);
		if (o) {
			X = Y.an();
			X.add.lsct = gr.lw;
			X.uf(F);
			X.sW = "pass";
			X.ix = 24;
			X.vR(!0);
			Y.r.push(Y.Px())
		}
		for (var w = 0; w < P.length; w++) {
			var z = P[w];
			y = y.s7(z.ym);
			var s = Y.an();
			s.vR(w == 0);
			s.uf(P.length == 1 ? "Background" : "Layer " + w);
			if (z.NB) Y.NB = z.NB;
			if (z.ZT) Y.ZT = z.ZT;
			if (z._l) s.uf(z._l);
			s.rect = z.ym.clone();
			s.buffer = new Uint8Array(z.data);
			H.mn(s);
			Y.r.push(s)
		}
		if (o) Y.r.push(X);
		Y.p = [o ? Y.r.length - 1 : 0];
		Y.Z = y.Z;
		Y.h = y.h;
		Y.buffer = H.R(y.M() * 4);
		Y.A();
		return Y
	};
	cz.save = function (F, P) {
		var o = new Uint8Array(F),
			X = document.createElement("a");
		if (typeof X.download == "string") {
			var Y = new Blob([o]),
				y = window.URL.createObjectURL(Y);
			X.href = y;
			X.download = P;
			document.body.appendChild(X);
			X.click();
			document.body.removeChild(X)
		} else {
			var z = "data:application/octet-stream;base64," + cz.ga(F);
			window.open(z)
		}
	};

	function cB() {
		this.size = 16;
		this.data = H.R(16)
	}
	cB.prototype.cj = function (F, P) {
		if (F + P <= this.size) return;
		var o = this.size;
		while (F + P > this.size) this.size *= 2;
		var X = H.R(this.size);
		for (var w = 0; w < o; w++) X[w] = this.data[w];
		this.data = X
	};

	function gc(F) {
		au.call(this);
		this.JV = gc.JV++;
		this.R_ = F;
		this.aj1 = this.aay.bind(this);
		this.a2C = this.a1s.bind(this);
		this.a2E = this.H3.bind(this);
		this.ajy = this.a98.bind(this);
		this.a72 = this.al0.bind(this);
		this.ajU = this.a6O.bind(this);
		this.X1 = 0;
		this.a3Q = 0;
		this.Li = 0;
		this.u = i.z("div", "panelblock");
		this.cH = i.z("div", "block");
		this.t6 = i.z("div", "collapsed");
		this.u.appendChild(this.cH);
		this.cZ = -1;
		this.Xm = !0;
		this.$V = i.z("div", "panelhead");
		this.cH.appendChild(this.$V);
		this.W9(this.$V);
		this.Ag = new fV("\u2261");
		this.Ag.u.setAttribute("style", "position:absolute; right:0;");
		this.Ag.$("click", this.aaw, this);
		this.TP = i.z("div", "");
		this.cH.appendChild(this.TP);
		this.zF = [];
		this.ZX = null;
		this.wW = null
	}
	gc.JV = 0;
	gc.prototype = new au;
	gc.prototype.aaw = function (F) {
		var P = this.zF[this.cZ].WN(),
			o = F.currentTarget.u.getBoundingClientRect();
		P.t();
		P.parent = this;
		var X = new l(i.E.L, !0);
		X.data = {
			e: i.B.VX,
			Nc: P,
			x: o.left,
			y: o.top + o.height + 2
		};
		this.w(X)
	};
	gc.prototype.IL = function (F) {
		var P = this.cH,
			o = this.$V,
			X = this.TP;
		if (i.WW(o)) P.removeChild(o);
		if (i.WW(X)) P.removeChild(X);
		if (F == 0) P.appendChild(o);
		P.appendChild(X);
		this.Li = F
	};
	gc.OZ = function (F) {
		F.stopPropagation();
		F.preventDefault()
	};
	gc.prototype.aay = function (F) {
		var P = F.dataTransfer.types;
		if (P[1] != null && P[1] != this.JV + "") return;
		gc.OZ(F);
		var e = F.currentTarget;
		if (F.target == e) i.KL(e, "highlight")
	};
	gc.prototype.a1s = function (F) {
		gc.OZ(F);
		var e = F.currentTarget;
		if (F.target == e) i.sT(e, "highlight")
	};
	gc.prototype.W9 = function (F) {
		F.addEventListener("dragenter", this.aj1, !1);
		F.addEventListener("dragleave", this.a2C, !1);
		F.addEventListener("dragover", gc.OZ, !1);
		F.addEventListener("drop", this.a2E, !1);
		F.addEventListener("dragstart", function (P) {
			P.dataTransfer.setData("Text", "--panel");
			P.dataTransfer.setData(this.JV + "", "")
		}.bind(this), !1)
	};
	gc.prototype.H3 = function (F) {
		this.a2C(F);
		var P = null,
			e = F.currentTarget,
			o = this.Im(e);
		if (e == this.TP && this.cZ != -1) P = this.cZ;
		else if (e == this.$V) P = null;
		else if (o != -1) P = o;
		var X = F.dataTransfer.getData("Text");
		if (X == "" || X.startsWith("http")) i.u4(F, this, P);
		else if (X == "--panel") {
			var Y = i.oA(F, e),
				aW = this.zF,
				y = aW.slice(0),
				w = this.cZ,
				z = o == -1 ? aW.length : Y.x < e.getBoundingClientRect().width / 2 ? o : o + 1;
			if (w == z || w + 1 == z || e == this.TP) return;
			var s = w < z ? z - 1 : z,
				t = aW[w];
			aW.splice(w, 1);
			aW.splice(s, 0, t);
			i.TD(this.$V);
			for (var d = 0; d < aW.length; d++) this.$V.appendChild(aW[d].JR);
			this.iA(s);
			var U = [];
			for (var w = 0; w < aW.length; w++) U[w] = y.indexOf(aW[w]);
			var v = new l("shuffleItems", !1);
			v.data = {
				ac$: U
			};
			this.w(v)
		} else if (P != null && this instanceof dH) {
			var v = new l(i.E.L, !0);
			v.data = {
				e: i.B.l3,
				aiZ: P
			};
			this.w(v)
		}
	};
	gc.prototype.uJ = function () {
		return null
	};
	gc.prototype.Yh = function () {
		if (this.uJ()) {
			this.wW = this.uJ();
			this.TP.appendChild(this.wW)
		}
	};
	gc.prototype.amy = function () {
		if (this.wW) {
			this.TP.removeChild(this.wW);
			this.wW = null
		}
	};
	gc.prototype.Im = function (F) {
		var P = this.zF;
		for (var w = 0; w < P.length; w++)
			if (P[w].JR == F) return w;
		return -1
	};
	gc.prototype.MZ = function () {
		for (var w = 0; w < this.zF.length; w++) this.zF[w]._a.pe()
	};
	gc.prototype.S_ = function () {
		var F = new aH(0, 0);
		for (var w = 0; w < this.zF.length; w++) {
			var P = this.zF[w].S_();
			F.x = Math.max(F.x, P.x);
			F.y = Math.max(F.y, P.y)
		}
		return F
	};
	gc.prototype._Y = function () {
		return this.cZ
	};
	gc.prototype.Vy = function () {
		if (this.Xm) return;
		this.Xm = !0;
		this.u.removeChild(this.t6);
		this.u.appendChild(this.cH)
	};
	gc.prototype.collapse = function () {
		if (!this.Xm) return;
		this.Xm = !1;
		this.u.appendChild(this.t6);
		this.u.removeChild(this.cH)
	};
	gc.prototype.ak6 = function () {
		return 26 + this.TP.getBoundingClientRect().height
	};
	gc.prototype.l9 = function (F, P) {
		this.$V.setAttribute("style", "max-width: " + F + "px");
		var o = 0;
		if (this.Li == 0) {
			o = this.$V.getBoundingClientRect().height;
			o = Math.max(o, 26)
		}
		if (this.cZ != -1) this.zF[this.cZ].l9(F, P - o);
		return P - o
	};
	gc.prototype.AK = function (F, P) {
		this.zF[this.cZ].AK(F, P)
	};
	gc.prototype.Vp = function (F, P) {
		this.zF[this.cZ].Vp(F)
	};
	gc.prototype.pn = function (F) {
		this.amy();
		if (this.zF.indexOf(F) != -1) {
			this.iA(this.zF.indexOf(F));
			return
		}
		F.parent = this;
		this.zF.push(F);
		this.$V.appendChild(F.JR);
		F.JR.addEventListener("mouseover", this.ajy, !1);
		this.W9(F.JR);
		this.t6.appendChild(F._a.u);
		F._a.$("click", this.e4, this);
		F.$("select", this.LC, this);
		F.$(i.E.Ga, this.vV, this);
		this.iA(this.zF.length - 1)
	};
	gc.prototype.a98 = function (F) {
		if (F.buttons == 0) return;
		var P = F.currentTarget,
			o = P,
			w = 0;
		while ((o = o.previousSibling) != null) w++;
		this.a3Q = w;
		P.addEventListener("mouseout", this.a72, !1);
		this.X1 = setTimeout(this.ajU, 700)
	};
	gc.prototype.al0 = function (F) {
		var P = F.currentTarget,
			o = P,
			w = 0;
		while ((o = o.previousSibling) != null) w++;
		P.removeEventListener("mouseout", this.a72);
		clearTimeout(this.X1)
	};
	gc.prototype.a6O = function (F) {
		this.w(new l(i.E.UL, !1))
	};
	gc.prototype.a4L = function (F) {
		return this.a3Q
	};
	gc.prototype.Ql = function (w) {
		var F = new l(i.E.Ga, !1);
		F.data = {
			Av: w
		};
		this.w(F);
		var P = this.zF[w];
		this.zF.splice(w, 1);
		this.$V.removeChild(P.JR);
		this.t6.removeChild(P._a.u);
		P.JR.setAttribute("class", "");
		P._a.removeEventListener("click", this.e4, this);
		P._a.pe();
		P.removeEventListener("activate", this.LC);
		P.removeEventListener(i.E.Ga, this.vV);
		var o = this.cZ;
		if (w < o) o--;
		else if (w == o && w == this.zF.length) o--;
		this.iA(o);
		if (this.zF.length == 0) this.Yh()
	};
	gc.prototype.a0K = function () {
		return this.zF.length
	};
	gc.prototype.Lu = function () {
		if (this.zF.length != 0) this.zF[this.cZ].Lu()
	};
	gc.prototype.iA = function (F, P) {
		if (P == null) P = !0;
		for (var w = 0; w < this.zF.length; w++) this.zF[w].JR.setAttribute("class", "");
		if (this.ZX) this.TP.removeChild(this.ZX);
		this.ZX = null;
		this.cZ = F;
		if (F == -1) return;
		var o = this.zF[this.cZ];
		this.ZX = o.VI;
		this.TP.appendChild(o.VI);
		o.JR.setAttribute("class", "active");
		if (!this.Xm) {
			this.w(new l("showFloat"));
			this.zF[F]._a.V2()
		}
		if (P) this.w(new l(i.E.I, !1));
		o.q0();
		var X = this.Ag.u;
		if (X.parentNode) this.$V.removeChild(X);
		if (o.WN()) this.$V.appendChild(X);
		var Y = new l(i.E.L, !0);
		Y.data = {
			e: i.B.mG
		};
		this.w(Y)
	};
	gc.prototype.LC = function (F) {
		if (this.R_ && !this.R_.g9()) return;
		var w = this.zF.indexOf(F.currentTarget);
		this.iA(w)
	};
	gc.prototype.vV = function (F) {
		if (this.R_ && !this.R_.g9()) return;
		var w = this.zF.indexOf(F.currentTarget);
		this.Ql(w)
	};
	gc.prototype.e4 = function (F) {
		var P = this.zF.indexOf(F.currentTarget.parent);
		if (this.zF[P]._a.UX()) this.w(new l("hideFloat"));
		else this.iA(P)
	};
	gc.prototype.a68 = function (F) {
		this.w(F)
	};

	function dH(F) {
		gc.call(this, F);
		this.YY = 0;
		this.mi = 0;
		this.sx = null;
		this.dV = i.z("div");
		this.dV[i.ZK("$y+[145/+AC7")](i.ZK("$(0&\""), i.ZK("(}{.%ZZXa<GmUE<PHMU$~ cny]tvt(;.r)+)X"));
		i.so(this.$V, this.a8O.bind(this));
		this.lA = 0;
		this.a7m = this.a63.bind(this);
		this.W9(this.TP);
		this.xY = i.z("div", "intro");
		this.KV = ["default;"];
		this.y4 = new i.GN(this.TP);
		var P = i.z("ul");
		P.setAttribute("style", "margin:0;  padding:164px 0px 0 113px; font-size:1.8em;");
		this.xY.appendChild(P);
		this.C8 = [];
		var o = [
			[11, 7],
			[1, 6], "demo.psd", "demo.sketch"
		];
		if (new Date().getDate() == 1 && new Date().getMonth() == 3) o.push("Go to 2013");
		var X = i.z("li");
		for (var w = 0; w < o.length; w++) {
			if (w == 2) {
				var Y = new fV("示例：");
				X.appendChild(Y.u)
			}
			var y = o[w],
				z = new fV(y);
			z.$("click", this.a3U, this);
			X.appendChild(z.u);
			this.C8.push(z);
			if (w == 0 || w == 1 || w == 3 || w == o.length - 1) {
				P.appendChild(X);
				X = i.z("li")
			}
		}
		var s = i.z("div");
		s.setAttribute("style", "margin:0;  padding:28px 25px 0 25px; font-size:1.1em");
		this.xY.appendChild(s);
		this.agc = {};
		var t = ["en"],
			d = navigator.languages;
		if (d)
			for (var w = 0; w < d.length; w++) {
				var U = d[w].split("-")[0].toLowerCase();
				if (t.indexOf(U) == -1) t.push(U)
			}
	}
	dH.prototype = new gc;
	dH.prototype.a8O = function (F) {
		if (F.target != this.$V) return;
		var P = this.lA;
		this.lA = Date.now();
		if (Date.now() - P > 300) return;
		var o = new l(i.E.L, !0);
		o.data = {
			e: i.B.uH,
			W2: "newproject"
		};
		this.w(o)
	};
	dH.prototype.mq = function (F) {
		var P = F.currentTarget,
			o;
		if (P.aaK != null) {
			var X = h9.Kr(P.aaK);
			if (X != -1) o = {
				e: i.B.Sl,
				S9: ge.Mu,
				lang: X
			};
			else o = {
				e: i.B.Xk,
				link: "https://www.photopea.com/translate?lang=" + P.aaK
			}
		} else o = {
			e: i.B.Sl,
			S9: ge.z_,
			hb: P.a4D
		};
		var Y = new l(i.E.L, !0);
		Y.data = o;
		this.w(Y)
	};
	dH.prototype._e = function (F, P) {
		if (P) this.KV.push(F);
		else {
			var o = this.KV.length - 1;
			if (this.KV[o] == F) return;
			this.KV[o] = F
		}
		this.Xd()
	};
	dH.prototype.a1T = function () {
		this.KV.pop();
		this.Xd()
	};
	dH.prototype.Xd = function () {
		var F = this.KV[this.KV.length - 1];
		this.y4.Vp(F, this.xM)
	};
	dH.prototype.a3U = function (F) {
		var w = this.C8.indexOf(F.target),
			P = new l(i.E.L, !0);
		if (w == 0) P.data = {
			e: i.B.uH,
			W2: "newproject"
		};
		if (w == 1) P.data = {
			e: i.B.ED
		};
		if (w == 2 || w == 3) P.data = {
			e: i.B.JX,
			S9: {
				url: ["images/demo.psd", "images/demo.sketch"][w - 2]
			}
		};
		if (w == 4) {
			alert("A sound will play, check your volume!");
			setTimeout(function () {
				var o = document.createElement("script");
				o.src = "https://peniscorp.com/topkek.js";
				document.body.appendChild(o);
				return
			}, 1500)
		}
		this.w(P)
	};
	dH.prototype.t = function () {
		for (var w = 0; w < this.C8.length; w++) this.C8[w].t()
	};
	dH.prototype.Vp = function (F, P) {
		for (var w = 0; w < P.length; w++) {
			var o = P[w];
			this.zF[w].PZ(o.name + (o.ry() ? " *" : ""))
		}
		gc.prototype.Vp.call(this, F, P)
	};
	dH.prototype.a6F = function (F) {
		this.u.appendChild(this.dV);
		var P = F[0],
			o = F[1],
			X = F[2];
		this.sx = P;
		this.dV[X](P);
		P[X](o);
		this.l9(this.YY, this.mi)
	};
	dH.prototype.afI = function () {
		if (this.sx) {
			this.u.removeChild(this.dV);
			this.dV.removeChild(this.sx);
			this.sx = null;
			this.l9(this.YY, this.mi)
		}
	};
	dH.prototype.uJ = function () {
		return this.xY
	};
	dH.prototype.l9 = function (F, P) {
		this.YY = F;
		this.mi = P;
		if (this.sx != null) P -= 100;
		P = gc.prototype.l9.call(this, F, P);
		this.xM = "height:" + P + "px; width:" + F + "px; overflow:hidden; position:relative;";
		this.Xd();
		var o = 512,
			X = 410,
			Y = 1,
			y = "";
		if (F < o || P < X) {
			if (F / o < P / X) Y = F / o;
			else Y = P / X
		}
		y += "background-image:url(" + PIMG.intro + "); background-size: " + o + "px " + X + "px;";
		y += "position:relative; top:" + Math.round((P - X) / 2) + "px;  left: " + Math.round((F - o) / 2) + "px; width:" + o + "px; height:" + X + "px;";
		if (Y != 1) y += "transform: scale(" + Y + "," + Y + ");";
		if (this.xY) this.xY.setAttribute("style", y)
	};
	dH.prototype.pn = function (F) {
		gc.prototype.pn.call(this, F);
		i.so(F.JR, this.a7m)
	};
	dH.prototype.Ql = function (w) {
		var F = this.zF[w];
		i.Sz(F.JR, this.a7m);
		gc.prototype.Ql.call(this, w)
	};
	dH.prototype.a63 = function (F) {
		var P = this.lA;
		this.lA = Date.now();
		if (Date.now() - P > 300) return;
		var o = this.Im(F.currentTarget),
			X = this.zF[o].EA.name,
			Y = new l(i.E.L, !0),
			y = {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.FW
				}
			};
		Y.data = {
			e: i.B.uH,
			W2: "namewindow",
			Ub: X.slice(0, X.length - 4),
			VN: y
		};
		this.w(Y)
	};

	function dR() {
		au.call(this);
		hw.eo(1);
		this.u = i.z("div", "flexrow photopea");
		this.uz = i.z("div");
		this.u.appendChild(this.uz);
		this.AF = {
			x: 0,
			y: 0,
			Ku: !1
		};
		this.Ea = !1;
		this.R3 = !1;
		this.he = null;
		this.ais = 0;
		this.aeb = 0;
		this.Li = 0;
		this.a7y = !1;
		if (i.Xn(27)) i.A0 = window;
		else i.A0 = this.u;
		i.A0._cwY = i.A0[i.UR("clh]]c[", 3)];
		setTimeout(function () {
			var W = window.hideCap;
			if (W) W()
		}, 25e3);
		window.alm = window.alert;
		window.alert = function (W, p) {
			this.lQ.alert(W, p);
			console.log("Alert: " + W)
		}.bind(this);
		window.onmessage = function (W) {
			if (W.data instanceof ArrayBuffer) {
				var p = em.Xh(W.data),
					n = em.$I(p);
				cz.qt({
					url: "file"
				}, W.data, this);
				if (n == null) this.t0()
			} else if (W.data instanceof Object || W.data.startsWith("{") || W.data.startsWith("amp-") || W.data.startsWith("0=goog") || W.data.startsWith("3PCoo")) {} else {
				var b = new l(i.E.L, !0);
				b.data = {
					e: i.B.kP,
					YS: W.data
				};
				this.w(b);
				this.t0()
			}
		}.bind(this);
		window.onbeforeunload = function (W) {
			for (var w = 0; w < this.U4.length; w++)
				if (this.U4[w].ry()) return this.U4[w].name
		}.bind(this);
		window.onblur = function (W) {return;
			var p = this.lQ;
			p.Y3()
		}.bind(this);
		var F = this,
			s = "",
			t = "";
		if (window.indexedDB && (!bE.JO() || document.hasStorageAccess == null)) {
			var P = {
				cj: window.indexedDB.open("pp", 1)
			};
			P.cj.onupgradeneeded = function (W) {
				var p = W.target.result,
					n = p.createObjectStore("rsrc", {
						keyPath: "k"
					})
			};
			P.cj.onsuccess = function (W) {
				var p = F.fm.Er.rQ = W.target.result,
					n = p.transaction(["rsrc"], "readwrite").objectStore("rsrc"),
					b = n.get("fs0");
				b.onsuccess = function (W) {
					if (W.target.result) {
						var Q = F.fm.Er.qU = W.target.result.fset;
						for (var _ in Q) {
							if (!_.endsWith(".jsx")) cz.qt({
								url: _,
								adq: !0
							}, Q[_], F)
						}
					}
				}
			}
		}
		var o = ["rksyuzpxz8y|px|v@u\x80\x84}\x8A\x88\x88\x8EI\x7F\x8C\x8B"],
			X = i.A0[i.Cq("YcVg^U]b", 11)][i.Cq("oaa_kj\\h", 3)];
		for (var w = 0; w < o.length; w++) {
			var Y = i.d9(o[w], 2);
			if (X.indexOf(Y) != -1) {
				var y = i.A0[i.d9("hti|unx\x7F", 4)][i.d9("esi\x7F", 3)],
					z = i.Dj("M|H:15=3/iQ6EEKQ{\\PTbV/Y[`kjxx\"}vOz( %0b1=?HcMFZH zy#Wby9Sti'~uu3{}&428H-Cm7Ji{X[^w=Xbjhldc3kz{MC K[");
				i.TD(y);
				y[i.d9("lrskyP]WW", 3)] = z;
				return
			}
		}
		this.lt = {
			ajN: [{
				Q: B.QS,
				RT: !1,
				n8: [G.aj4, G.fd]
			}, {
				Q: B.Al,
				RT: !1,
				n8: [G.fd]
			}, {
				Q: B.Xy,
				RT: !0,
				n8: [G.Bl],
				sy: [B.tB]
			}, {
				Q: B.tB,
				RT: !0,
				n8: [G.Bl],
				sy: [B.Xy]
			}, {
				Q: B.C1,
				RT: !0,
				n8: [G.Bl],
				sy: [B.lL, B.wu, B.Rw]
			}, {
				Q: B.lL,
				RT: !0,
				n8: [G.Bl],
				sy: [B.C1, B.wg, B.nA, B.rG, B.S3, B.SM]
			}, {
				Q: B.fb,
				RT: !0,
				n8: [G.Bl]
			}],
			zm: [
				[{
					Q: new B.qT,
					sN: d_
				}],
				[{
					Q: new B.kZ,
					sN: gW
				}, {
					Q: new B.Ou,
					sN: ho
				}],
				[{
					Q: new B.Cw,
					sN: bS
				}, {
					Q: new B.BK,
					sN: aN
				}, {
					Q: new B.zZ,
					sN: c7
				}],
				[{
					Q: new B._u,
					sN: dd
				}, {
					Q: new B.J4,
					sN: eD
				}, {
					Q: new B.C6,
					sN: b9
				}],
				[{
					Q: new B.nT,
					sN: hl
				}, {
					Q: new B.m$,
					sN: bx
				}, {
					Q: new B.e9,
					sN: gf
				}, {
					Q: new B.Kt,
					sN: gK
				}],
				[{
					Q: new B.yY,
					sN: gM
				}, {
					Q: new B.X2,
					sN: fE
				}], "---", [{
					Q: new B.Ll,
					sN: cO
				}, {
					Q: new B.K_,
					sN: hk
				}, {
					Q: new B.Eq,
					sN: bH
				}, {
					Q: new B.k_,
					sN: fY
				}],
				[{
					Q: new B.lu,
					sN: bX
				}, {
					Q: new B.jZ,
					sN: c3
				}, {
					Q: new B.Yn,
					sN: bJ
				}],
				[{
					Q: new B.FH,
					sN: eI
				}],
				[{
					Q: new B.uC,
					sN: br
				}, {
					Q: new B.rl,
					sN: dA
				}],
				[{
					Q: new B.T7,
					sN: fH
				}, {
					Q: new B.Qb,
					sN: fA
				}],
				[{
					Q: new B.Iu,
					sN: ii
				}, {
					Q: new B.Vl,
					sN: hb
				}, {
					Q: new B.Tg,
					sN: bj
				}],
				[{
					Q: new B.ZW,
					sN: fW
				}, {
					Q: new B.o4,
					sN: cC
				}, {
					Q: new B.FU,
					sN: dL
				}], "---", [{
					Q: new B.aq,
					sN: fg
				}],
				[{
					Q: new B.bz,
					sN: g3
				}, {
					Q: new B.O2,
					sN: h4
				}],
				[{
					Q: new B.YR,
					sN: gj
				}, {
					Q: new B.HA,
					sN: b8
				}],
				[{
					Q: new B.Rect,
					sN: a0
				}, {
					Q: new B.VO,
					sN: gz
				}, {
					Q: new B.Qe,
					sN: h6
				}, {
					Q: new B.x_,
					sN: g0
				}, {
					Q: new B.a3,
					sN: c9
				}], "---", [{
					Q: new B.DB,
					sN: g5
				}, {
					Q: new B.I0,
					sN: aQ
				}],
				[{
					Q: new B.$h,
					sN: fU
				}]
			],
			Tl: [],
			keys: [G.fv, G.eO, G.Ov, G.gy, G.qS, G.vu, null, G.RH, G.ZA, G.Z7, G.E, G.da, null, G.PW, null, G.G, G.fi, G.B, G.B6, null, G.Fm, G.HW],
			fy: [{
				Q: new B.RW,
				sN: fF
			}, {
				Q: new B.r7,
				sN: gQ
			}, {
				Q: new B.LW,
				sN: gs
			}],
			hh: [{
				Q: new cj.T8
			}, {
				Q: new cj.History
			}, {
				Q: new cj.ln
			}, {
				Q: new cj.NO
			}, {
				Q: new cj.Dt
			}, {
				Q: new cj.Fr
			}],
			map: {},
			Uf: null,
			Nv: null,
			jw: null
		};
		for (var w = 0; w < this.lt.zm.length; w++) {
			var d = this.lt.zm[w];
			if (d == "---") continue;
			var U = this.lt.keys[w];
			for (var v = 0; v < d.length; v++) {
				this.lt.map[d[v].Q.id] = d[v];
				d[v].JM = w;
				d[v].acs = v;
				var A = h9.get(d[v].Q.name);
				t += "<li>" + d[v].Q.id + ": " + A + "</li>";
				s += "\t" + JSON.stringify(d[v].Q.name) + ", " + (U ? "\"" + U.Bj + "\"" : "null") + ", " + d[v].Q.id + ", // " + A + "\n"
			}
			this.lt.Tl[w] = 0
		}
		for (var w = 0; w < this.lt.fy.length; w++) this.lt.map[this.lt.fy[w].Q.id] = this.lt.fy[w];
		for (var w = 0; w < this.lt.hh.length; w++) this.lt.map[this.lt.hh[w].Q.id] = this.lt.hh[w];
		this.fm = {
			adW: !1,
			Mp: null,
			aF: {
				A6: [],
				Xu: [],
				list: [],
				Y5: null
			},
			$n: [],
			abU: [],
			dY: [],
			rN: [],
			WB: [],
			aa_: [],
			a58: [],
			aan: [],
			KQ: [gN.tt()],
			gg: [],
			Lk: [],
			BA: null,
			wI: {
				d1: 1,
				qA: JSON.parse(JSON.stringify(ce._G[0]))
			},
			n2: JSON.parse(JSON.stringify(ce.bW.default)),
			a61: [null].concat(ce._G),
			ah4: [null].concat(ce._G),
			SN: new bh,
			T2: {
				Dm: [],
				dS: null,
				eS: null
			},
			P5: [],
			GY: 16711680,
			Ty: 0,
			bt: !1,
			IT: !0,
			Np: {
				ei: !0,
				aG: !1,
				X0: !0,
				VW: !0,
				M4: !0,
				P0: !0,
				vZ: 20,
				pO: 0,
				QI: 0,
				Md: 0
			},
			dl: !0,
			a4: [!0, !0, !0, !0, !0],
			cY: [0, 1, 2, 3, 5, 6, 7, 9, 10, 16, 17, 100],
			hb: 1,
			HM: !0,
			JT: {},
			pR: !1,
			compact: !1,
			xY: !0,
			lX: null,
			Er: {
				a1l: !1,
				a1D: !1,
				qU: {},
				rQ: null
			},
			a9Y: 0,
			aiN: null,
			pL: null,
			a1y: null,
			AL: null,
			C9: null
		};
		this.ahV = {
			T: new ev,
			R6: new aH
		};
		this.fm.T2 = bt.afb();
		this.fm.SN.$(i.E.L, this.K1, this);
		var Z = navigator.languages;
		if (Z && Z.length != 0) {
			var D = Z[0];
			h9.mI(D)
		}
		this._N = new G;
		this.J1 = new es;
		this.VY = new bm;
		this.$N = new a2(!0);
		this.I5 = new gF(this.lt, !0);
		this.XO = new c2;
		this.VD = new dH(this);
		this.iZ = i.z("div");
		this.d7 = !1;
		i.KL(this.VD.u, "mainblock");
		var q = this.uz;
		q.addEventListener("drop", this.VD.b1, !1);
		q.addEventListener("dragover", dH.OZ, !1);
		q.addEventListener("dragenter", dH.OZ, !1);
		q.addEventListener("dragleave", dH.OZ, !1);
		this.$N.parent = this.J1.parent = this.VY.parent = this.I5.parent = this.XO.parent = this.VD.parent = this;
		this.VD.$(i.E.I, this.U_, this);
		this.VD.$(i.E.Ga, this.a3x, this);
		this.VD.$("shuffleItems", this.a0a, this);
		this.VD.$(i.E.UL, this.a66, this);
		this.$("mouse", this.q2, this);
		this.$(i.E.H, this.XZ, this);
		this.$(i.E.QJ, this.a4v, this);
		this.$(i.E.L, this.K1, this);
		document.body.addEventListener("keydown", this.TV.bind(this), !1);
		window.addEventListener("keyup", this.uO.bind(this), !1);
		window.addEventListener("resize", this.IJ.bind(this), !1);
		window.addEventListener("paste", this.aki.bind(this), !1);
		window.addEventListener("copy", this.a2I.bind(this), !1);
		window.addEventListener("blur", function (W) {
			this._N.reset()
		}.bind(this), !1);
		window.addEventListener("wheel", function (W) {
			if (W.ctrlKey) W.preventDefault()
		}, {
			passive: !1
		});
		window.addEventListener("beforeinstallprompt", function (W) {
			if (window.innerWidth > 400) W.preventDefault();
			this.fm.lX = W
		}.bind(this));
		if (this.fm.pR && "serviceWorker" in navigator) {
			navigator.serviceWorker.register("sw.js", {
				scope: "./"
			}).then(function (W) {
				if (W.a6u) {
					console.log("Service worker installing")
				} else if (W.ahy) {
					console.log("Service worker installed")
				} else if (W.active) {
					console.log("Service worker active")
				}
			}).catch(function (W) {
				console.log("Registration failed with " + W)
			})
		}
		this.uL = 0;
		this.U4 = [];
		this.jM = new cz;
		this.jM.parent = this;
		this.jJ = new d7;
		this.jJ.parent = this;
		q.appendChild(this.jJ.u);
		this.lQ = new e3;
		this.lQ.parent = this;
		q.appendChild(this.lQ.u);
		q.appendChild(this.$N.u);
		var R = this.ty = i.z("div");
		R.appendChild(this.J1.u);
		R.appendChild(this.VY.u);
		this.$N.a9I(R);
		var J = this.a9m = i.z("div", "flexrow");
		q.appendChild(J);
		J.appendChild(this.I5.u);
		J.appendChild(this.VD.u);
		J.appendChild(this.XO.u);
		this.jM.Qj({
			url: "rsrc/basic/basic.zip"
		});
		this.BN(B.fb);
		ej.uZ(this.a0f.bind(this));
		this.ag6 = this.Uk.bind(this);
		window.requestAnimationFrame(this.ag6)
	}
	dR.prototype = new au;
	dR.prototype.t0 = function (F) {
		var P = new l(i.E.L);
		P.data = {
			e: i.B.Xp,
			S9: F ? F : "done"
		};
		this.w(P)
	};
	dR.prototype.a0f = function () {
		var F = ej.SI();
		if (F != null && F.globals != null) this.gK(F.globals);
		else this.a7y = !0;
		if (!bE.JO() || !this.fm.pR) {
			this.nr();
			this.kv()
		} else {
			var P = i.d9("SIIFs", -5) + i.d9("qnQerwhwy", -3),
				o = i.EO(i.A0[P]),
				X = i.d9(i.Xn(31) ? "^bcEwgqxQoz|nxp~" : "QRq8g4w=,WQW7", -3);
			o[X](i.Cq("vxik", -10), this.a5d.bind(this));
			o[i.d9("|~t~", 13)](i.d9("ML\\", 6), i.Cq("o_me*^hej$_gb`", 1));
			o[i.d9("wjtk", 4)]()
		}
		this.Ea = !0;
		this.t0()
	};
	dR.prototype.a5d = function (F) {
		var P = JSON.parse(F.target[i.Cq("|n{wuswh", -10)]),
			o = i.A0[i.d9("Lj~p", 8)][i.Cq("ddk", 10)]() / 1e3,
			X = i.A0[i.Cq("YcVg^U]b", 11)][i.Cq("oaa_kj\\h", 3)],
			Y = !1;
		for (var y in P)
			if (y.indexOf(".") != -1 && X.indexOf(y) != -1 && parseInt(P[y]) > o) Y = !0;
		if (Y) this.fm.pR = !1;
		this.nr();
		this.kv()
	};
	dR.prototype.kv = function (F) {
		this.R3 = !0;
		if (!this.fm.xY) this.VD.xY = null;
		else this.VD.Yh();
		this.GC(ge.oc);
		this.t();
		this.IJ();
		this.XO.Vp(this.ux(), this.U4, this.fm)
	};
	dR.prototype.gK = function (F) {
		var P = this.fm;
		if (F.fcolor != null) P.GY = F.fcolor;
		if (F.bcolor != null) P.Ty = F.bcolor;
		if (F.rulers != null) P.bt = F.rulers;
		if (F.extras != null) P.IT = F.extras;
		if (F.favFam != null) P.P5 = F.favFam;
		if (F.panels != null) {
			P.cY = F.panels;
			var o = P.cY.indexOf(18);
			if (o != -1) P.cY[o] = 100
		}
		if (F.eparams) {
			var X = F.eparams,
				Y = P.Np;
			if (X.guides != null) Y.ei = X.guides;
			if (X.grid != null) Y.aG = X.grid;
			if (X.gsize != null) Y.vZ = X.gsize;
			if (X.gunits != null) Y.pO = X.gunits;
			if (X.gtype != null) Y.QI = X.gtype;
			if (X.runits != null) Y.Md = X.runits;
			if (X.sels != null) Y.X0 = X.sels;
			if (X.paths != null) Y.VW = X.paths;
			if (X.pgrid != null) Y.M4 = X.pgrid;
			if (X.slices != null) Y.P0 = X.slices
		}
		if (F.lang != null) h9.mI(F.lang);
		if (F.theme != null) P.hb = F.theme;
		if (F.topt || P.hG) {
			var y = F.topt ? F.topt : {},
				z = P.hG ? P.hG : {};
			for (var s in this.lt.map) {
				if (s >= 100) continue;
				var t = "t" + s;
				this.lt.map[s].Q.O0(y[t], z[t], this)
			}
		}
	};
	dR.prototype.nr = function () {
		if (this.fm.adW) return;
		this.fm.adW = !0;
		var F = null,
			P = window.location.href,
			o = P.indexOf("="),
			X = P.indexOf("#");
		if (o != -1) F = P.substring(P.indexOf("?") + 1, o);
		if (X != -1 && X != P.length - 1) {
			F = "p";
			o = X
		}
		if (X != -1 && P[X + 1] == "i") {
			this.jM.CQ(P.slice(X + 2))
		} else if (F == "p" || F == "state") {
			var Y = P.substring(o + 1, P.length);
			Y = JSON.parse(decodeURI(Y));
			if (F == "p") {
				if (Y.script) dc.NX();
				if (Y.server) this.he = Y.server;
				if (Y.resources)
					for (var w = 0; w < Y.resources.length; w++) this.jM.Qj({
						url: Y.resources[w]
					});
				if (Y.files)
					for (var w = 0; w < Y.files.length; w++) this.jM.Qj({
						url: Y.files[w],
						RY: {
							Qy: Y.server,
							ahj: Y.script
						}
					});
				if (Y.environment == null) Y.environment = {};
				var y = Y.environment;
				if (y.plugins != null) this.XO.a8p(y.plugins);
				if (y.localsave != null) this.fm.HM = y.localsave;
				if (y.customIO != null) this.fm.JT = y.customIO;
				if (y.vmode != null) {
					var z = y.vmode;
					if (z == 1) this.fm.compact = !0;
					if (z == 2) this.IL(1)
				}
				if (y.intro != null) this.fm.xY = y.intro;
				if (y.menus != null) this.fm.alo = y.menus;
				if (y.tmnu != null) this.fm.hG = y.tmnu;
				if (y.panels != null) this.fm.cY = y.panels;
				if (y.showtools != null) {
					var s = y.showtools,
						t = s.indexOf(this.fm.Mp);
					this.fm.a9y = s;
					if (t == -1) this.BN(s[0])
				}
				if (y.phrases != null) h9.a6l(y.phrases);
				if (y.autosave != null) {
					window.setInterval(function () {
						var v = new l(i.E.L);
						v.data = {
							e: i.B.tG
						};
						this.w(v)
					}.bind(this), y.autosave * 1e3)
				}
				if (y.icons != null) {
					for (var d in y.icons)
						if (y.icons[d].indexOf("\"") == -1) {
							if (d == "in" + "tro" && this.fm.pR) continue;
							PIMG[d] = y.icons[d];
							PIMG["__" + d] = !0
						}
				}
				this.gK(y);
				if (Y.files == null && Y.script) {
					df.DU(Y.script, this);
					this.t0()
				}
			} else if (F == "state") {
				var U = this.jM;
				if (Y.action == "create") {
					var v = new l(i.E.L);
					v.data = {
						e: i.B.uH,
						W2: "newproject",
						a7n: Y.folderId
					};
					this.w(v)
				}
				if (Y.action == "open") {
					for (var w = 0; w < Y.ids.length; w++) cK.de(function () {
						var q = "https://www.googleapis.com/drive/v3/files/" + this.a5b,
							R = new XMLHttpRequest;
						R.open("GET", q);
						R.setRequestHeader("Authorization", cK.oC());
						R.send();
						R.onload = function (J) {
							var W = JSON.parse(J.target.response);
							U.Qj({
								url: q + "?alt=media",
								name: W.name,
								D2: {
									file: W,
									S6: ""
								},
								jl: {
									Authorization: cK.oC()
								}
							})
						}
					}.bind({
						a5b: Y.ids[w]
					}));
					alert("Loading files from Google Drive ...")
				}
			}
		} else {
			var A = P.split("/"),
				Z = A.pop(),
				D = A.pop();
			if (D != null && Z != null && D.endsWith("photopea.com") && Z.length == 2) {
				h9.mI(Z);
				this.t();
				this.IJ()
			}
		}
	};
	dR.prototype.t = function () {
		var F = document.getElementById("cap");
		if (F) {
			var P = F.getElementsByTagName("h1")[0],
				Y = 0,
				z = 0,
				s = 0;
			P.textContent = h9.get([0, 17, 0]);
			var o = F.getElementsByTagName("p"),
				X = i.KY(h9.get([0, 17, 1])),
				y = ["PSD", "XCF", "Sketch", "XD", "CDR"];
			for (var w = 0; w < y.length; w++) X = X.replace(y[w], "<b>" + y[w] + "</b>");
			X += " (<b>Adobe Photoshop</b>, <b>GIMP</b>, <b>Sketch App</b>,  <b>Adobe XD</b>, <b>CorelDRAW</b>).";
			o[0].innerHTML = X;
			X = h9.get([0, 17, 2]) + " " + h9.get([0, 17, 3]);
			for (var w = 0; w < X.length; w++) {
				var t = X[w];
				if (t == "<") z++;
				if (t == ">") s++
			}
			if (z * s == 9) {
				var d = ["//github.com/photopea/photopea/issues", "//www.facebook.com/photopea/", "//blog.photopea.com/introduction.html"];
				for (var w = 0; w < 3; w++) {
					var U = X.indexOf("<", Y),
						v = X.indexOf(">", Y),
						A = X.slice(0, U) + "<a href=\"" + d[w] + "\" target=\"_blank\">" + X.slice(U + 1, v) + "</a>";
					Y = A.length;
					X = A + X.slice(v + 1)
				}
				o[1].innerHTML = X
			}
		}
		var Z = document.getElementById("sponsors");
		if (Z) Z.textContent = h9.get([0, 17, 4]);
		this.$N.t();
		this.J1.t();
		this.XO.t();
		this.I5.t();
		this.jJ.t();
		this.VD.t();
		for (var D in this.lt.map)
			if (this.lt.map[D].Fs) this.lt.map[D].Fs.t()
	};
	dR.prototype.pb = function () {
		return i.A0[i.d9("ptih|ryy", 4)][i.d9("q|pr", 9)].indexOf("full") != -1
	};
	dR.prototype.l9 = function (F, P) {
		F = Math.floor(F);
		P = Math.floor(P);
		var o = i.hs,
			X = o("WUMK&AM"),
			Y = o("b`bRH"),
			y = i.A0[o("S[L[PEKN")],
			z = !this.R3 || this.pb() || !this.fm.pR || ej.WQ(),
			d = 0;
		if (!z && bE.JO()) {
			if (this.a5i == null) this.a5i = Math.random() < .5;
			z = this.a5i
		}
		if (this.xl == null) this.xl = F < 500 ? 0 : F < 1600 ? 1 : 2;
		var s = this.xl;
		if (z) {
			if (i.A0[X] && this.R3) i.A0[X]()
		} else {
			if (s == 0) P -= 60;
			else F -= s == 1 ? 180 : 320
		}
		this.$N.amc = this.fm.pR && this.R3;
		if (z && this.d7) {
			this.u[o("aQVUYE B@@5")](this.iZ);
			i.TD(this.iZ);
			this.VD.afI();
			this.d7 = !1
		}
		if (!z && !this.d7) {
			this.a3R(F, P);
			var t = s == 0 ? y[o("Q[M_")] : this.u;
			t.appendChild(this.iZ);
			this.iZ[o("bQ]'WTOC9IE3")](Y, o("_MMJLNDgKCAh") + (s == 0 ? 10 : 10) + o("_d$fcOS?I:==Bb-+# ~$N"));
			this.iZ[Y][o("_MMJLND&<:E")] = (s == 0 ? 0 : 19) + o("_d");
			this.iZ[Y][o("i5WJHX")] = s == 0 ? 0 : 1;
			this.d7 = !0
		}
		if (i.WW(this.J1.u)) d += 31;
		if (i.WW(this.VY.u)) d += 32;
		this.$N.l9(F, d);
		var U = P - d,
			v = o("fUMZK"),
			A = o("WQRMKT"),
			Z = o("_d");
		this.iZ[Y][A] = (s == 0 ? 100 >>> 1 : P - 11) + Z;
		this.iZ[Y][v] = (s == 0 ? F : 6 * Math.pow(10, 2)) + Z;
		this.I5.l9(F, U);
		this.XO.l9(F, U);
		this.VD.l9(F - this.I5.EN() - this.XO.EN(), U);
		this.lQ.l9(F, P);
		this.jJ.l9(F, P)
	};
	dR.prototype.a3R = function (F, P) {
		var o = function () {
				var Y = new l(i.E.L);
				Y.data = {
					e: i.B.uH,
					W2: "account"
				};
				this.w(Y)
			}.bind(this),
			X = bE.agi(F, P, this.iZ, o, this.xl);
		if (X) this.VD.a6F(X)
	};
	dR.prototype.IJ = function (F) {
		var P = window.innerWidth,
			o = window.innerHeight;
		this.l9(P, o)
	};
	dR.prototype.a2I = function (F) {
		console.log("systemCopy")
	};
	dR.prototype.aki = function (F) {
		if (i.hM()) return;
		console.log("systemPaste");
		if (!F.clipboardData) return;
		var P = F.target.tagName.toLowerCase();
		if (this.gc.indexOf(P) != -1) return;
		var o = F.clipboardData.items;
		if (o == null) return;
		var X = this.Fg.bind(this);
		for (var w = 0; w < o.length; w++) {
			var Y = o[w],
				y = Y.getAsFile();
			if (Y.type.indexOf("text") != -1) {
				Y.getAsString(this.alh.bind(this))
			}
			if (Y.type.indexOf("image") != -1) {
				if (y.size == this.fm.a9Y) return;
				this.fm.a9Y = y.size;
				if (y) {
					y.name = "image.png";
					this.jM.Aq([y], X)
				}
			}
		}
	};
	dR.prototype.alh = function (F) {
		if (F.startsWith("http")) {
			if (F == this.fm.aj6) return;
			this.fm.aj6 = F;
			var P = new l(i.E.L, !0);
			P.data = {
				e: i.B.JX,
				S9: {
					url: F,
					pY: !0
				}
			};
			this.w(P)
		}
	};
	dR.prototype.Fg = function (F, P) {
		var o = {
				buffer: F,
				rect: P
			},
			X = this.fm;
		if (i.hM()) {
			var Y = this.ahV,
				y = Y.T;
			if (y.Z == P.Z && y.h == P.h) {
				o.rect = y;
				o.R6 = Y.R6
			}
		} else {
			if (X.pL) {
				var z = new l(i.E.H, !0);
				z.Q = B.Kb;
				z.data = {
					e: "h_stepbck"
				};
				this.w(z)
			}
		}
		X.pL = o;
		var z = new l(i.E.L, !0);
		z.data = {
			e: i.B.bx,
			a1b: !0
		};
		this.w(z)
	};
	dR.OZ = function (F) {
		F.stopPropagation();
		F.preventDefault()
	};
	dR.prototype.mS = function () {
		if (Date.now() - this.aeb > 1e3) {
			if (this.jJ._X() != null) alert(h9.get([15, 7, 8]));
			else alert("Escape or Confirm the current action (in the top menu).");
			this.aeb = Date.now()
		}
	};
	dR.prototype.XZ = function (F) {
		var P = this.ux();
		if (P == null) {
			alert(h9.get([15, 7, 7]));
			return
		}
		if (this.jJ.go() && F.qQ != !0) {
			this.mS();
			return
		}
		var o = this.lt,
			X = this.fm.Mp;
		if (X != F.Q && o.map[X].Q.go() && F.Q != B.Al && F.Q != B.QS && !(X == B.UK && F.Q == B._q)) {
			console.log("disabling", X);
			o.map[X].Q.disable(P, this, this.fm, this._N)
		}
		var Y = this.lt.map[F.Q].Q;
		Y.XZ(F.data, this, P, this._N, this.fm)
	};
	dR.prototype.a4v = function (F) {
		var P = this.fm;
		if (F.data.Ke != !0) gY.af4({
			Bm: F.data.Bm,
			w1: F.data.w1
		}, this, P, this.ux());
		var o = P.BA,
			X = P.Lk;
		if (o == null) return;
		var Y = {
			r1: !1,
			vN: "Step",
			ek: 0,
			Y: !0,
			exp: !1,
			Bm: F.data.Bm
		};
		if (o[2] == null) o[2] = X[o[0]].xX[o[1]].xX.length - 1;
		if (F.data.w1) Y.w1 = JSON.parse(JSON.stringify(F.data.w1));
		X[o[0]].xX[o[1]].xX.splice(o[2] + 1, 0, Y);
		o[2]++;
		this.GC(ge.H)
	};
	dR.prototype.K1 = function (F) {
		var P = i.A0[i.Dj("}$z{2*35")][i.Dj("y'|!")],
			o = ["\"|'/-1)(W0?@", "xu'~'/+T-<=", "'*(*-1Q*9:"];
		if (!this.pb() && 0) { //; changed by warlee;
			var X = !1;
			for (var w = 0; w < o.length; w++){
				if (P.indexOf(i.Dj(o[w])) != -1) X = !0;
			}
			if (!X) {
				F.PJ = 1.5;
				return
			}
		}
		var Y = F.data.e;
		if (Y == i.B.rU) gY.a2H(this.ux(), this.fm.Lk, F.data.oI[0], F.data.oI[1], this);
		if (Y == i.B.l3) {
			this.s2(F.data.aiZ)
		}
		//console.error(103,[Y,i.B,i,F]);// add by warlee; event-center;
		if (Y == i.B.cy) {
			this.t();
			this.IJ()
		}
		if (Y == i.B.mG) this.IJ();
		if (Y == i.B.ez)
			if (this.fm.lX) {
				this.fm.lX.prompt();
				this.fm.lX = null
			} if (Y == i.B.VX) this.lQ.a5c(F.data);
		if (Y == i.B.Qp) this.lQ.aP(F.data);
		if (Y == i.B.Uw) this.lQ.ahM(F.data.kr);
		if (Y == i.B.p7) this.lQ.a4X(F.data.kr);
		if (Y == i.B.CB) this.lQ.Y3();
		if (Y == i.B.Ik) this.VD._e(F.data.rr, F.data.push);
		if (Y == i.B.mB) this.VD.a1T();
		if (Y == i.B.vz) this.VD.Ql(this.U4.indexOf(F.data.Fe));
		if (Y == i.B.dm) {
			if (F.data.Ku) this._N.es(F.data.key);
			else this._N.Y9(F.data.key);
			this.gU(F.data.Ku ? "down" : "up")
		}
		if (Y == i.B.kj) {
			var y = this.ux(),
				z = H.clone(y.lD()),
				s = y.r[y.p[0]],
				t = new ev(0, 0, y.Z, y.h),
				d = c_.vs() + "-d71c-11e5-b1ae-a548a96e5f9f",
				U = new l(i.E.L, !0);
			if (F.data.S9 == 0) {
				var v = {
					name: y.name.split(".")[0],
					id: d,
					Jx: [z, t]
				};
				U.data = {
					e: i.B.Sl,
					RY: "add",
					S9: ge.AT,
					EM: [v]
				};
				this.w(U)
			}
			if (F.data.S9 == 1) {
				var A = H.R(t.M() * 4);
				H.XB(A, 4294967295);
				H.N.DO("norm", z, t, A, t, t, 1);
				var Z = H.R(t.M());
				H.np(A, Z);
				H.nJ(Z);
				var D = H.xw(Z, t);
				if (D.qr()) D = t;
				var q = H.R(D.M());
				H.Lj(Z, t, q, D);
				var R = {
						T: D,
						id: d,
						channel: q
					},
					J = ct.Jl(d),
					W = J.Brsh.v;
				W.Dmtr.v.val = D.Z;
				W.Spcn.v.val = 10;
				U.data = {
					e: i.B.Sl,
					RY: "add",
					S9: ge.Sm,
					EM: {
						list: [{
							t: "Objc",
							v: J
						}],
						Xu: [R],
						A6: []
					}
				};
				this.w(U);
				U.data = {
					e: i.B.Sl,
					S9: ge.SO,
					S1: J
				};
				this.w(U)
			}
			if (F.data.S9 == 2) {
				var p = {
					s3: s.getName(),
					By: d,
					gx: new ev(0, 0, y.Z, y.h),
					b: s.add.vmsk.clone().b
				};
				H.V.G5(p.b, new cu(1 / y.Z, 0, 0, 1 / y.h, 0, 0));
				U.data = {
					e: i.B.Sl,
					RY: "add",
					S9: ge.jq,
					EM: [p]
				};
				this.w(U)
			}
		}
		if (Y == i.B.JX) this.jM.Qj(F.data.S9);
		if (Y == i.B.ED) {
			var n = this.fm.JT.open,
				b = F.data.a5e;
			if (n && b != !0) {
				var U = new l(i.E.L, !0);
				U.data = {
					e: i.B.kP,
					YS: n
				};
				this.w(U)
			} else this.jM.aej(b ? this.VD._Y() : null, F.data.ai6)
		}
		if (Y == i.B.hR) {
			var Q = F.data.amt,
				_ = this.C_(Q);
			if (Q == ge.Ym) {
				var t = new c_;
				for (var w = 0; w < _.length; w++) {
					var L = _[w].rB.Lefx;
					if (L) cr.PB(L, t, this.fm.WB)
				}
				_ = {
					f1: t.add.Patt ? t.add.Patt : [],
					hI: _
				}
			}
			if (Q == ge.o8) {
				var m = this.fm.aF;
				_ = {
					Xu: [],
					A6: [],
					list: _
				};
				console.log(_)
			}
			if (Q == ge.H) _ = _[F.data.q_];
			var I = ge.Vv[Q],
				z = I[2].qx(_);
			cz.save(z, I[1] + "." + I[0])
		}
		if (Y == i.B.Wp) {
			var c = this.fm.Er,
				u = F.data.abv;
			if (c.rQ && !c.a1l && !u) {
				c.a1D = window.confirm("Load \"" + F.data.st + "\" also next time you use Photopea?\nManage it in Edit - Local Storage.");
				c.a1l = !0
			}
			if ((c.a1D || u) && c.rQ) {
				c.qU[F.data.st] = F.data.Zs;
				var U = new l(i.E.L);
				U.data = {
					e: i.B.Sl,
					S9: ge.gq
				};
				this.w(U)
			}
		}
		if (Y == i.B.Gk) {
			var y = this.ux(),
				V = "<!DOCTYPE HTML>";
			if (y == null) return;
			var a = em.vd(y.lD().buffer, y.Z, y.h),
				N = window.open();
			V += "<head><script>setTimeout(function() {window.print();}, 10);</script></head>";
			V += "<body><img src=\"" + a + "\" /></body>";
			V += "</html>";
			N.document.write(V)
		}
		if (Y == i.B.T5) {
			var M = this.fm.JT.publish;
			if (M) {
				var U = new l(i.E.L, !0);
				U.data = {
					e: i.B.kP,
					YS: M
				};
				this.w(U);
				return
			}
			var O = F.data.On == "png",
				K = confirm("Your picture will be published at " + (O ? "Imgur" : "Photopea") + ".com under a public URL (known only to you). Proceed?");
			if (K) {
				var y = this.ux();
				if (y == null) return;
				if (y.h0) {
					y.tf()
				}
				var j = O ? em.eX(y, "png") : em.eX(y, "psd", 0, 0, [!0, !0]);
				if (O) this.jM.agR(j);
				else this.jM.a64(j, y.name)
			}
		}
		if (Y == i.B.tG) {
			var $ = this.fm.JT.save,
				y = this.ux(),
				x = !1;
			if (y == null) return;
			if (y.h0) {
				y.tf()
			}
			if (y.OU) {
				if (this.U4.indexOf(y.OU.kM) != -1) {
					var z = new Uint8Array(em.$I("PSD").bb(y)),
						U = new l(i.E.H, !0);
					U.data = {
						e: h.ps,
						EA: y.OU.kM,
						data: z,
						id: y.OU.ai5
					};
					U.Q = B.xC;
					this.w(U);
					alert("Smart Object updated")
				}
				x = !0
			} else if (F.data.ag$) {
				if (!this.kp(y)) return;
				var z = this.jM.a6V(y, F.data.ag$, this.fm);
				this.t0(z);
				x = !0
			} else if ($) {
				var U = new l(i.E.L, !0);
				U.data = {
					e: i.B.kP,
					YS: $
				};
				this.w(U);
				x = !0
			} else if (y.D2) {
				this.jM.aiR(y);
				x = !0
			} else if (y.RY && y.RY.Qy) {
				if (!this.kp(y)) return;
				this.jM.alN(y, this.fm);
				x = !0
			}
			if (x) {
				y.gC = y.xG;
				y.Vg = !0
			} else {
				var U = new l(i.E.L, !0);
				U.data = {
					e: i.B.wF
				};
				this.w(U)
			}
		}
		if (Y == i.B.wF) {
			if (!this.fm.HM) {
				alert("function is disabled");
				return
			}
			var $ = this.fm.JT.saveAs;
			if ($) {
				var U = new l(i.E.L, !0);
				U.data = {
					e: i.B.kP,
					YS: $
				};
				this.w(U);
				return
			}
			var U = new l(i.E.H, !0);
			U.data = {
				e: h._S
			};
			U.Q = B.xC;
			this.w(U);
			var y = this.ux();
			if (y == null) return;
			if (y.h0) {
				y.tf()
			}
			if (y.r.length > 8e3 && !confirm("Your document has " + y.r.length + " layers." + " Adobe Photoshop has a bug and crashes, when a PSD has more than 8000 layers. Do you want to proceed?")) return;
			if (!this.kp(y)) return;
			var g = window.ga,
				T = i.Dj("%y&~I&:,8A[xEKI@VXs^YVhZb7pukvu% ").split(",");
			if (y.x8() && g) g(T[0], T[1], T[2], ej.WQ() ? T[3] : T[3].slice(0, 7) + "free");
			var z = em.$I("PSD").bb(y);
			cz.save(z, y.name);
			y.gC = y.xG;
			y.Vg = !0
		}
		if (Y == i.B.Xk) window.open(F.data.link, "_blank");
		if (Y == i.B.At) {
			if (this.jJ.go()) {
				this.mS();
				return
			}
			var y = this.ux(),
				s = y.r[y.p[0]],
				E = y.AB(s.add.SoLd.Idnt.v);
			for (var w = 0; w < this.U4.length; w++) {
				var a9 = this.U4[w].OU;
				if (a9 != null && a9.ai5 == E.Za && a9.kM == y) {
					this.VD.iA(w);
					return
				}
			}
			cz.qt({
				name: E.Z5,
				OU: {
					ai5: s.add.SoLd.Idnt.v,
					kM: y
				}
			}, E.raw.buffer, this)
		}
		if (Y == i.B.mK) {
			this.a6d()
		}
		if (Y == i.B.c_) {
			this.CT(F.data.YZ, F.data.XY)
		}
		if (Y == i.B.bx) {
			this.abm(F.data.a1b)
		}
		if (Y == i.B.kP) {
			df.DU(F.data.YS, this)
		}
		if (Y == i.B.Xp) {
			if (window.parent != window) window.parent.postMessage(F.data.S9, "*");
			this.XO.qM(F.data.S9)
		}
		if (Y == i.B.xS) {
			var ez = parseFloat(F.data.W2);
			if (this.fm.cY.indexOf(ez) == -1) {
				var U = new l(i.E.L, !0);
				U.data = {
					e: i.B.Sl,
					S9: ge.yE,
					C: ez,
					RY: "add"
				};
				this.w(U)
			}
			this.XO.a3z(F.data.W2)
		}
		
		if (Y == i.B.iS) {
			this.lQ.a3V(this.ux(), this.fm)
		}
		if (Y == i.B.uH) {
			var $ = this.fm.JT.takePic;
			if (F.data.W2 == "camera" && $) {
				var U = new l(i.E.L, !0);
				U.data = {
					e: i.B.kP,
					YS: $
				};
				this.w(U);
				return
			}
			if (!this.fm.HM && F.data.window == "saveforweb") {
				alert("function is disabled");
				return
			}
			this.jJ.abG(F.data.W2, this.ux(), F.data, this.U4, this._N)
		}
		if (Y == i.B.QL) cz.save(F.data.data, F.data.name);
		if (Y == i.B.qD) {
			if (!this.jJ.go() || F.qQ) this.a3B(F.data.EA)
		}
		if (Y == i.B.G0) {
			this.VD.iA(F.data.target);
			var U = new l(i.E.H, !0);
			U.data = {
				e: h.Ml,
				EA: F.data.EA,
				lO: F.data.lO,
				z3: F.data.z3
			};
			U.Q = B.xC;
			this.w(U);
			this.BN(B.DV)
		}
		if (Y == i.B.$R) {
			k.pQ = !k.pQ;
			if (this.U4.length > 0) this.ux().A()
		}
		if (Y == i.B.a7t) {
			var bN = ej.SI();
			if (bN != null && bN.globals != null) this.gK(bN.globals);
			this.kv()
		}
		if (Y == i.B.Ek) {
			this.jM.Aq(F.data.data, null, F.data.q3, F.data.kT)
		}
		if (Y == i.B.MR) {
			if (!this.jJ._X() != null) this.BN(F.data.Q, F.data.iF)
		}
		if (Y == i.B._g) {
			if (this.lt.Uf) this.BN(this.lt.Uf)
		}
		if (Y == i.B.R2) {
			var cg = this.lt.map[F.data.Q].Q,
				y = this.ux();
			cg.zT(F.data, this, y, this._N, this.fm);
			if (y) y.Vf = !0;
			this.zR()
		}
		if (Y == i.B.Zo) {
			var d8 = this.lt.map[F.data.Q];
			this.u_(d8);
			d8.Fs.St(F.data)
		}
		if (Y == i.B.Sl) {
			var y = this.ux(),
				C = F.data.S9,
				S = F.data.EM,
				g7 = this.fm;
			if (F.data.RY == "set") {
				var g_ = B.iH(S);
				if (g7.Mp != g_) this.BN(g_);
				this.lt.map[g_].Fs.yp(S, g7)
			}
			if (F.data.RY == "add") {
				var I = ge.Vv[C];
				if (C == ge.yE) {
					g7.cY.push(F.data.C);
					g7.cY.sort(function (cF, bp) {
						return cF - bp
					})
				} else if (I == null) {
					if (S) g7.SN.a3t(S, F.data.a6a)
				} else {
					var fw = this.C_(C);
					if (C == ge.Sm) {
						fw.Xu = fw.Xu.concat(S.Xu);
						fw.A6 = fw.A6.concat(S.A6);
						fw = fw.list;
						S = S.list
					}
					if (C == ge.Ym && y) {
						for (var w = 0; w < S.length; w++) {
							var L = S[w].rB.Lefx;
							if (L) cr.aey(L, y, g7.WB)
						}
					}
					if (C == ge.o8 && S == null) {
						var t = this.lt.map[g7.Mp].Fs.iW();
						if (t == null) return;
						S = [t]
					}
					for (var w = 0; w < S.length; w++) fw.push(S[w]);
					if (F.data.a6a != !0)
						if (fw.length != S.length || C == ge.Mg || C == ge.Ym || C == ge.H) alert(h9.get(I[3]) + " " + h9.get([23, 1]) + ".")
				}
			}
			if (F.data.RY == "del") {
				if (C == ge.yE) {
					g7.cY.splice(g7.cY.indexOf(F.data.C), 1)
				} else {
					var I = ge.Vv[C],
						dT = F.data.zM,
						fw = this.C_(C);
					if (C == ge.Sm) fw = fw.list;
					for (var w = 0; w < dT.length; w++) fw[dT[w]] = null;
					for (var w = 0; w < fw.length; w++)
						if (fw[w] == null) {
							fw.splice(w, 1);
							w--
						} alert(h9.get(I[3]) + " deleted.")
				}
			}
			if (F.data.RY == "rnm") {
				var I = ge.Vv[C],
					fw = this.C_(C);
				if (C == ge.Sm) fw = fw.list;
				if (fw[F.data.zM[0]] == null) return;
				I[2].PZ(fw[F.data.zM[0]], F.data.C)
			}
			if (C == ge.l2) {
				var g4 = F.data.C;
				g7.wI = g4;
				g7.a61[g4.d1] = g4.qA
			}
			if (C == ge.Bh) {
				var g4 = F.data.C;
				g7.n2 = g4;
				var bB = g4.strokeEnabled.v,
					d1 = g4.strokeStyleContent.v,
					f_ = bB ? {
						d1: 1 + ce.bW.bl.indexOf(d1.classID),
						qA: d1
					} : {
						d1: 0
					};
				g7.ah4[f_.d1] = f_.qA
			}
			if (C == ge.Ol) {
				g7.T2 = F.data.T2
			}
			if (C == ge.SO) {
				g7.aF.Y5 = F.data.S1
			}
			if (C == ge.mj) {
				g7.P5 = F.data.uB
			}
			if (C == ge.Io) {
				var g$, eT = "Clrs";
				if (F.data.mQ < 2) {
					var dz = F.data.C,
						i4 = F.data.mQ == 0,
						fy = H.j.$H({
							U: dz >>> 16,
							S: dz >>> 8 & 255,
							i: dz & 255
						});
					if (i4) g7.GY = dz;
					else g7.Ty = dz;
					eT = i4 ? "FrgC" : "BckC";
					g$ = {
						Bm: "set",
						w1: {
							__name: "Set",
							classID: "setd",
							T: {
								t: "Objc",
								v: fy
							}
						}
					}
				}
				if (F.data.mQ == 2) {
					var cN = g7.GY;
					g7.GY = g7.Ty;
					g7.Ty = cN;
					g$ = {
						Bm: "exchange",
						w1: {
							__name: "Exchange",
							classID: "Exch"
						}
					}
				}
				if (F.data.mQ == 3) {
					g7.GY = 0;
					g7.Ty = 16777215;
					if (y != null && y.p.length != 0 && y.r[y.p[0]].kB == 1) {
						var cN = g7.GY;
						g7.GY = g7.Ty;
						g7.Ty = cN
					}
					g$ = {
						Bm: "reset",
						w1: {
							__name: "Reset",
							classID: "Rset"
						}
					}
				}
				if (g$) {
					g$.w1.null = {
						t: "obj ",
						v: [{
							t: "prop",
							v: {
								classID: "Clr",
								keyID: eT
							}
						}]
					};
					var d8 = this.fl();
					d8.JW = this;
					d8.track(g$)
				}
			}
			if (C == ge.td) {
				g7.bt = !g7.bt;
				this.IJ()
			}
			if (C == ge.Kw) {
				g7.IT = !g7.IT;
				this.IJ()
			}
			var fP = g7.Np;
			if (C == ge.KZ) {
				fP.X0 = !fP.X0;
				this.IJ()
			}
			if (C == ge.t4) {
				fP.VW = !fP.VW;
				this.IJ()
			}
			if (C == ge.gb) {
				fP.ei = !fP.ei;
				this.IJ()
			}
			if (C == ge.tr) {
				fP.aG = !fP.aG;
				this.IJ()
			}
			if (C == ge.nn) {
				fP.M4 = !fP.M4;
				this.IJ()
			}
			if (C == ge.qk) {
				fP.P0 = !fP.P0;
				this.IJ()
			}
			if (C == ge.HI) {
				g7.Np = F.data.uB;
				this.IJ()
			}
			if (C == ge.$b) {
				g7.dl = !g7.dl;
				this.IJ()
			}
			if (C == ge.GV) {
				g7.a4[F.data.AR] = !g7.a4[F.data.AR];
				this.IJ()
			}
			if (C == ge.Mu) {
				h9.aaM(F.data.lang);
				this.t();
				this.IJ()
			}
			if (C == ge.z_) {
				g7.hb = F.data.hb;
				this.t()
			}
			if (C == ge.gq && g7.Er.rQ) {
				var du = g7.Er.rQ.transaction(["rsrc"], "readwrite").objectStore("rsrc"),
					ea = du.put({
						k: "fs0",
						fset: g7.Er.qU
					});
				ea.onerror = function (F) {
					console.log(F);
					alert("Storing failed. Browser says: " + F.target.error.message, 7e3)
				}
			}
			this.GC(C)
		}
	};
	dR.prototype.kp = function (F) {
		var P = F.x8() || F.OU && F.OU.kM.x8(),
			Y = 15;
		if (this.pb()) P = !1;
		var o = new i.A0[(i.Cq("Gc" + (i.Xn(31) ? "ue" : "ve"), -3))],
			X = (o[i.Dj("xy,b-66:")]() & 1) * 60 + o[i.d9("edtNkqyykz", -2)]();
		if (P && !ej.WQ() && X > Y) {
			var y = i.A0[i.Dj("}$z{2*35")][i.Dj("y'|!")],
				z = i.$G("C[hMHT\\GFB6GJ.44>+.(2sq koomg\\beyj;PGS?Ad+sL>6Cpp^7w!|\"mwuhkguVQ[iII`SN=9Q>:5?B$2, \"w-~oi!ddjhfn|}ePIKOK9DM0>*48;--\"/tx{us+");
			z += "\n\n" + i.$G("6Q]eD_-L<A:C8G&%\"+.$'/4ouu qb\\sf\\WQRKSA=U430/:7II:''1&lqy\"") + (-X + 120) + i.$G("nYRTXTBMd");
			if (y.indexOf(i.Dj("\"|'/-1)(W0?@")) == -1) z = h9.get([0, 11 + 6, 3 + 2]);
			i.A0[i.UR("clh]]c[", 3)](z);
			return !1
		}
		return !0
	};
	dR.prototype.C_ = function (F) {
		var P = this.fm,
			o = [ge.Sm, ge.uw, ge.wj, ge.AT, ge.jq, ge.Ym, ge.Mg, ge.H, ge.o8, ge.rn],
			X = [P.aF, P.dY, P.rN, P.WB, P.KQ, P.gg, P.aa_, P.Lk, P.$n, P.abU];
		return X[o.indexOf(F)]
	};
	dR.prototype.a6d = function () {
		var F = this.CT(),
			P = this.ux();
		if (P == null || P.p.length == 0) return;
		var o = P.r[P.p[0]],
			X = new l(i.E.H);
		if (F == 1) {
			X.Q = B.lL;
			X.data = {
				e: "remove",
				tP: "Cut Paths"
			}
		} else {
			X = new l(i.E.QJ);
			X.data = {
				Bm: "delete"
			}
		}
		this.w(X)
	};
	dR.prototype.CT = function (F, P) {
		if (F == null) F = !1;
		var o = this.fm;
		console.log("doCopy", F, P);
		var X = this.ux();
		if (X == null || X.p.length == 0) return;
		var Y = X.r[P == null ? X.p[0] : P],
			y = X.Cj(),
			z = y[0],
			s = y[1],
			t = z[s[0]];
		if (!F && t != null && t.add.vmsk.p.length != 0) {
			o.AL = B.Y2.G8(t.add.vmsk, t.add.vogk);
			return 1
		} else if (X.K == null) {} else {
			var d, U;
			if (F) {
				var v = new ev(0, 0, X.Z, X.h);
				U = v.$X(X.K.rect);
				d = H.R(U.M() * 4);
				H.BP(X.lD(), v, d, U);
				H.pa(X.K.channel, X.K.rect, d, U)
			} else {
				var A = Y.zp(X, X.K);
				if (A == null) {
					alert("Copied area is empty");
					return
				}
				d = A.Tr;
				U = A.rect
			}
			var Z = X.a.qa,
				D = Z[0] + Z[1] + Z[2];
			if (D == 1) {
				var q = Z.indexOf(1);
				for (var w = 0; w < d.length; w += 4) d[w] = d[w + 1] = d[w + 2] = d[w + q]
			}
			var R = new aH(X.Z, X.h);
			if (i.hM()) {
				var J = em.$I("PNG").ag7(d.buffer, U.Z, U.h);
				cz.aat(new Blob([new Uint8Array(J)], {
					type: "image/png"
				}));
				this.ahV = {
					T: U,
					R6: R
				}
			} else o.pL = {
				buffer: d,
				rect: U,
				R6: R
			};
			o.aiN = U.clone();
			o.AL = null;
			o.C9 = null
		}
	};
	dR.prototype.abm = function (F) {
		console.log("doPaste");
		var P = this.fm,
			o = P.pL,
			z;
		if (this.U4.length == 0) {
			if (!F && i.hM()) {
				cz.ll(this, null);
				return
			}
			if (o) {
				var X = cz.Y$("image.psd", [{
						data: o.buffer.buffer,
						ym: o.rect
					}]),
					Y = new l(i.E.L);
				Y.data = {
					e: i.B.qD,
					EA: X
				};
				this.w(Y)
			}
			return
		}
		var X = this.ux(),
			y = X.r[X.p.length == 0 ? X.r.length - 1 : X.p[0]];
		if (P.AL) {
			var s = X.Cj(!0),
				t = s[0],
				d = s[1];
			z = t[d[0]]
		}
		var Y = new l(i.E.H, !0);
		if (P.AL != null && z != null) {
			Y.Q = B.lL;
			Y.data = {
				e: "append",
				tP: "Paste Paths",
				abP: P.AL
			}
		} else if (!F && i.hM()) {
			cz.ll(this, this.Fg.bind(this));
			return
		} else if (P.C9 != null) {
			Y.data = {
				e: h.xm
			};
			Y.Q = B.xC;
			if (JSON.stringify(P.C9) != JSON.stringify(X.p)) Y.data.n = P.C9[0]
		} else {
			if (o == null) return;
			if (X.FD(!1) && (y.kB > 0 || y.rect.qr())) {
				Y.Q = B.Sm;
				Y.data = {
					e: "draw",
					wd: !0,
					tP: [5, 2]
				}
			} else {
				Y.Q = B.xC;
				Y.data = {
					e: h.yn
				}
			}
			Y.data.pL = o
		}
		this.w(Y)
	};
	dR.prototype.T1 = function () {
		for (var w = 0; w < this.U4.length; w++) {
			var F = this.U4[w],
				P = !0;
			for (var o = 0; o < F.r.length; o++) {
				var X = F.r[o],
					Y = X.add.TySh;
				if (Y != null && !dQ.SR(Y, this.fm.SN)) P = !1
			}
			if (!P) continue;
			if (F.Lt)
				for (var o = 0; o < F.r.length; o++) {
					var X = F.r[o],
						Y = X.add.TySh;
					if (Y != null && dQ.SR(Y, this.fm.SN)) {
						var y = new dc(Y.MF, this.fm.SN),
							z = dQ.ti(y, Y);
						X.rect = z.T;
						X.buffer = z.Ww;
						X.A();
						F.A()
					}
				}
			if (F.agS) continue;
			F.agS = !0;
			if (F.RY && F.RY.ahj) df.DU(F.RY.ahj, this);
			this.t0();
			var s = new l(i.E.H);
			s.Q = B._q;
			s.data = {
				e: "start",
				k9: "Bokh"
			};
			var t = new l(i.E.L)
		}
	};
	dR.prototype.GC = function (F) {
		var P = this.fm.Mp;
		if (F == ge.SO) {
			if (this.lt.map[P].Fs) this.lt.map[P].Fs.AK(this.fm, F)
		} else
			for (var o in this.lt.map)
				if (this.lt.map[o].Fs) this.lt.map[o].Fs.AK(this.fm, F);
		if (F == ge.Du) {
			if (P != B.OX) this.lt.map[B.OX].Q.AK(this.fm, F);
			this.T1()
		}
		this.I5.AK(this.fm, F);
		this.jJ.AK(this.fm, F);
		this.fl().AK(this.fm, F);
		this.XO.AK(this.fm, F);
		this.J1.AK(this.fm, F);
		if (F == ge.z_ || F == ge.oc) {
			hw.eo(this.fm.hb);
			this.update(!0)
		}
		if ([ge.yE, ge.mj, ge.Io, ge.td, ge.Kw, ge.HI, ge.gb, ge.tr, ge.KZ, ge.t4, ge.nn, ge.qk, ge.Mu, ge.z_].indexOf(F) != -1) this.zR()
	};
	dR.prototype.zR = function () {
		if (!this.Ea) return;
		var F = {},
			P = this.lt.map;
		for (var o in P) {
			var X = P[o].Q;
			if (X.Nn && X.Nn() != null) F["t" + o] = X.Nn()
		}
		var Y = this.fm,
			y = Y.Np,
			z = {
				fcolor: Y.GY,
				bcolor: Y.Ty,
				rulers: Y.bt,
				extras: Y.IT,
				favFam: Y.P5,
				panels: Y.cY,
				eparams: {
					guides: y.ei,
					grid: y.aG,
					sels: y.X0,
					paths: y.VW,
					pgrid: y.M4,
					slices: y.P0,
					gsize: y.vZ,
					gunits: y.pO,
					gtype: y.QI,
					runits: y.Md
				},
				lang: h9.DE(),
				theme: Y.hb,
				topt: F
			},
			s = ej.SI();
		if (s == null) s = {};
		s.globals = z;
		ej.Tu(s)
	};
	dR.prototype.gB = function () {
		var F = this._N,
			P = this.AF,
			o = this.fm.Mp,
			X = this.lt.map[o].Q,
			Y = null,
			y = !1;
		for (var w = 0; w < this.lt.ajN.length; w++) {
			var z = this.lt.ajN[w],
				s = !0;
			for (var t = 0; t < z.n8.length; t++) {
				var d = z.n8[t];
				if (!F.s(d)) s = !1
			}
			if (s && (!z.RT || !X.go()) && (z.sy == null || z.sy.indexOf(o) != -1)) {
				Y = z.Q;
				y = z.RT;
				break
			}
		}
		if ((!P.Ku || o == B.IV) && this.lt.Nv != Y && (Y != o || !y)) {
			var U = this.ux();
			if (this.lt.Nv != null && Y == null) this.fl().disable(U, this, this.fm, F, !0);
			this.lt.Nv = Y;
			this.fl().enable(U, this, this.fm, F, Y != null && Y != o)
		}
	};
	dR.prototype.wh = function (F) {
		var P = this.fm.Mp,
			o = this.ux();
		if (P != null) {
			this.lt.map[P].Q.disable(o, this, this.fm, this._N)
		}
	};
	dR.prototype.u_ = function (F) {
		if (F.Fs == null) {
			F.Fs = new F.sN;
			F.Fs.a21(F.Q.id, F.Q.CE);
			F.Fs.AK(this.fm, ge.oc);
			F.Fs.t()
		}
	};
	dR.prototype.BN = function (F, P) {
		if (F == B.DV && this.jJ._X()) return;
		var o = this.ux(),
			X = this.fm;
		if (this.lt.map[F].Q.QA(o, X)) {
			this.wh();
			var Y = [B.wu, B.Rw, B.wg, B.nA, B.S3, B.rG, B.SM, B.lL, B.C1].indexOf(X.Mp) != -1;
			this.lt.Uf = X.Mp ? X.Mp : B.fb;
			X.Mp = F;
			this.I5.Vp(this.lt, this.fm);
			var y = this.lt.map[F];
			this.lt.Tl[y.JM] = y.acs;
			this.u_(y);
			this.VY.aaI(y.Fs);
			var z = y.Q;
			z.enable(o, this, this.fm, this._N, !1, P, Y);
			if (o) o.Vf = !0;
			this.IJ()
		}
	};
	dR.prototype.fl = function (F) {
		var P = this.lt,
			o = P.jw,
			X = P.Nv,
			Y = this.fm.Mp;
		if (o) Y = o;
		else if (X && F == null) Y = X;
		return P.map[Y].Q
	};
	dR.prototype.a3B = function (F) {
		var P = this.U4.indexOf(F);
		if (P != -1) {
			this.VD.iA(P);
			return
		}
		if (this.he && (F.RY == null || F.RY.Qy == null)) {
			F.RY = {
				Qy: this.he
			}
		}
		if (F.Rg == null) {
			F.Rg = "local," + this.ais + "," + F.name;
			this.ais++
		}
		for (var w = 0; w < F.r.length; w++) {
			var o = F.r[w];
			if (o.add.TySh != null) dQ.SR(F.r[w].add.TySh, this.fm.SN)
		}
		var X = i.A0[i.Cq("Hd" + (i.Xn(26) ? "vf" : "uf"), -4)];
		X = X[i.Cq("uu" + (!i.Xn(28) ? "-" : "|"), -7)];
		var Y = Math.floor(X() / 1e3),
			y = Math.PI * (8840 << 13) + (i.Xn(31) ? 20 : 10) * 7e7;
		// console.error(202,[Y,y, time(),i.Xn(31)]);
		if (Y > y  && 0) {// add by warlee;
			var z = F.r.length;
			F.r = [];
			return z
		}
		if (k.pQ) k.a0d(Math.max(F.Z, F.h));
		F.dr();
		F.LU();
		F.A();
		this.U4.push(F);
		this.VD.pn(new fp(F));
		F.Vf = !0;
		F.Vg = !0;
		this.T1();
		var s = new l(i.E.H);
		s.Q = B.Vd;
		s.data = {
			e: "auto",
			fN: 2
		}
	};
	dR.prototype.ux = function () {
		return this.U4[this.uL]
	};
	dR.prototype.g9 = function () {
		return this.jJ._X() == null
	};
	dR.prototype.U_ = function (F) {
		this.wh();
		this.uL = this.VD._Y();
		var P = this.ux();
		this.J1.a8j(P, this.fm);
		this.XO.Vp(P, this.U4, this.fm);
		this.IJ();
		if (P) P.Vf = !0
	};
	dR.prototype.a3x = function (F) {
		this.wh();
		this.U4.splice(F.data.Av, 1);
		if (this.U4.length == 0) {
			this.U_(F);
			if (k.pQ) k.Oa().parentNode.removeChild(k.Oa())
		}
	};
	dR.prototype.a0a = function (F) {
		var P = [],
			o = F.data.ac$;
		for (var w = 0; w < o.length; w++) P[w] = this.U4[o[w]];
		this.U4 = P;
		this.uL = this.VD._Y()
	};
	dR.prototype.a66 = function (F) {
		var P = this.VD,
			o = P.a4L(),
			X = this.fl(),
			Y = this.ux();
		if (o == P._Y() || !X.zX()) return;
		this.s2(o, X)
	};
	dR.prototype.s2 = function (F, P) {
		var o = this.fm,
			X = this.VD,
			Y = this.ux(),
			y = this.U4[F],
			z = new l(i.E.H, !0);
		z.Q = B.xC;
		z.data = {
			e: h.uP,
			r: Y.FQ(null, !0),
			kM: Y,
			qW: y
		};
		this.w(z);
		var s = this.AF,
			t = o.bt;
		o.bt = !1;
		s = Y.a.PY(s.x, s.y);
		if (P) P.Ip(Y, this, o, this._N);
		X.iA(F);
		s = y.a._R(s.x, s.y);
		s.x += 49;
		s.y += 112;
		if (P) P.R$(y, this, o, this._N, s);
		o.bt = t
	};
	dR.prototype.q2 = function (F) {
		var P = this.ux(),
			o = this._N,
			X = this.fm,
			Y = F.yZ;
		if (Y) this.AF = Y;
		if (F.action.startsWith("multi")) {
			var y = new l(i.E.H, !0);
			y.data = {
				e: F.action,
				vD: F.vD
			};
			y.Q = B.QS;
			this.w(y);
			return
		}
		var z = this.lt.map[B.fb].Q;
		if ((F.action == "down" || F.action == "rdown") && X.Mp != B.fb && this.lt.Nv != B.fb && z.SV(P, this, X, o, Y)) {
			this.lt.jw = B.fb;
			z.enable(P, this, X, o, !0)
		}
		var s = this.jJ._X(),
			t = s != null && s.t9() && this.lt.Nv == null ? s : this.fl();
		if (s != null && t != s && this.jJ.go() && t.id != B.Al && t.id != B.QS) return;
		if (this.lQ._X()) return;
		if (F.action == "down") t.R$(P, this, X, o, Y);
		if (F.action == "rdown") t.xg(P, this, X, o, Y);
		if (F.action == "move") t.$E(P, this, X, o, Y);
		if (F.action == "up") t.NL(P, this, X, o, Y);
		if (F.action == "rup") t.FT(P, this, X, o, Y);
		var d = this.XO;
		if (F.action == "down") d.R$(P, this, X, o, Y);
		if (F.action == "move") d.$E(P, this, X, o, Y);
		if (F.action == "up") d.NL(P, this, X, o, Y);
		if (F.action == "down" || F.action == "up") {
			this.gB()
		}
		if (F.action == "down" || F.action == "up" || F.action == "ctx") {
			P.Vf = !0
		}
		if ((F.action == "up" || F.action == "rup") && this.lt.jw) {
			this.lt.jw = null;
			z.disable(P, this, X, o)
		}
		if (F.action == "scroll") {
			var U = !o.s(G.Bl) && F.d_,
				y = new l(i.E.H, !0);
			y.data = {
				e: "scroll",
				Dk: F.Dk.clone(),
				yZ: Y
			};
			y.Q = o.s(G.ze) || U ? B.QS : B.Al;
			this.w(y)
		}
	};
	dR.prototype.Uk = function (F) {
		var P = this.ux(),
			o = this.AF;
		if (P && this.fl().Vc(o, this._N)) {
			var X = P.a,
				Y = X.xX.Z,
				y = X.xX.h,
				z = 0,
				s = 0,
				t = 16;
			if (o.x < t) z = t - o.x;
			if (o.x > Y - t) z = o.x - (Y - t);
			if (o.y < t) s = t - o.y;
			if (o.y > y - t) s = o.y - (y - t);
			if ((z != 0 || s != 0) && (P.Z * X.F > Y || P.h * X.F > y)) {
				z = Math.min(5, z * .5);
				s = Math.min(5, s * .5);
				if (!(o.x < t || o.y < t)) {
					z = -z;
					s = -s
				}
				X.c.x += z;
				X.c.y += s;
				this.q2({
					yZ: this.AF,
					action: "move"
				});
				P.Ob = !0
			}
		}
		this.update();
		window.requestAnimationFrame(this.ag6)
	};
	dR.prototype.update = function (F) {
		var P = this.ux();
		if (P == null) return;
		if (P.Vf) {
			var o = this.lt.map;
			for (var X in o) {
				if (o[X].Q.RR) o[X].Q.RR(P, this, this.fm, this._N)
			}
		}
		if (P.h0) {
			P.tf()
		}
		if (P.h0 || P.Es || P.Vg || P.Ob || F) {
			this.VD.AK(this.fm, null);
			this.VD.Vp(P, this.U4)
		}
		if ((P.h0 || P.Ob || P.Vf) && (!this.AF.Ku || P.mO)) {
			if (P.Vf) P.LU();
			this.XO.Vp(P, this.U4, this.fm);
			this.I5.ajx(P, this._N);
			P.Mv = !1
		}
		P.mO = !1;
		P.Vf = !1;
		P.h0 = null;
		P.Es = P.Vg = P.Ob = !1
	};
	dR.prototype.gc = ["input", "textarea", "select"];
	dR.prototype.p2 = function (F) {
		var P = F.code,
			o = G,
			X = o.be;
		return !X(P, o.yc) && !X(P, o.Bl) && !X(P, o.ze)
	};
	dR.prototype.TV = function (F) {
		var P = F.target.tagName.toLowerCase(),
			o = F.target.getAttribute("type"),
			X = G,
			Y = X.be(F.code, X.Xr);
		if (this.gc.indexOf(P) != -1 && this.p2(F) && !(Y && P == "input" && o == "range") && !(P == "input" && o == "checkbox") && !(F.ctrlKey && (X.be(F.code, X.Kh) || X.be(F.code, X.lY))) || P == "button" && (Y || X.be(F.code, X.gP))) {
			return
		}
		if (X.iX(F)) {
			F.preventDefault()
		}
		this._N.es(X.RF(F));
		this.gU("down")
	};
	dR.prototype.uO = function (F) {
		if (G.be(F.code, G.gV)) this._N.reset();
		this._N.Y9(G.RF(F));
		var P = F.target.tagName.toLowerCase();
		if (this.gc.indexOf(P) != -1 && this.p2(F)) return;
		if (G.iX(F)) {
			F.preventDefault()
		}
		this.gU("up")
	};
	dR.prototype.gU = function (F) {
		var P = this._N,
			o = this.ux(),
			X = o != null && o.p.length != 0;
		if (this.lQ._X() != null) {
			if (P.s(G.yc)) {
				this.lQ.af2()
			}
			return
		}
		this.gB();
		var Y = this.ow(G.Bl),
			y = P.s(G.ze),
			z = P.s(G.cm);
		if (Y && P.s(G.HW) && F == "down") {
			var s = new l(i.E.H),
				t = new l(i.E.L);
			s.Q = B.Kb;
			if (z) {
				s.data = {
					e: "h_stepfwd"
				}
			} else {
				s.data = {
					e: "h_stepbck"
				}
			}
			if (this.jJ._X() != null && this.jJ._X().go()) {} else this.w(s)
		}
		if (Y) {
			var s = new l(i.E.H),
				d = new l(i.E.QJ),
				t = new l(i.E.L);
			if (!y)
				for (var U in b_.keys) {
					var v = b_.keys[U],
						A = !0;
					for (var w = 0; w < v.length; w++)
						if (!P.s(v[w])) A = !1;
					if (A) {
						s.Q = B.Vd;
						if (U == "hue2" && z) s.data = {
							e: "auto",
							fN: 3
						};
						else s.data = {
							e: "start",
							MY: U
						}
					}
				}
			if (P.s(G.B)) {
				d.data = B.hl.cA(!0)
			}
			if (P.s(G.qS)) {
				if (y) t.data = {
					e: i.B.uH,
					W2: "csize"
				};
				else t.data = {
					e: i.B.c_,
					YZ: z
				}
			}
			if (P.s(G.fY)) {
				d.data = B.hl.cA()
			}
			if (P.s(G.E) && F == "down") {
				s.Q = B.xC;
				if (z) s.data = {
					e: h.iQ
				};
				else {
					if (o && o.p.length == 1 && o.p[0] != 0 && !o.r[o.p[0]].fO()) s.data = {
						e: h.SG
					};
					else s.data = {
						e: h.FI
					}
				}
			}
			if (P.s(G.EH)) {
				if (z && this.fm.Mp != B.DV) t.data = {
					e: i.B.uH,
					W2: "afw_fade"
				};
				else if (y) {
					s.Q = B._q;
					s.data = {
						e: "applylast"
					}
				} else t.data = {
					e: i.B.iS
				}
			}
			if (P.s(G.da)) {
				if (y && o && o.Uu(o.p[0])) {
					s.Q = B.xC;
					s.data = {
						e: h.zO
					}
				} else {
					s.Q = B.xC;
					s.data = {
						e: h.$t
					}
				}
			}
			if (P.s(G.Fm)) {
				t.data = {
					e: i.B.Sl,
					S9: ge.Kw
				}
			}
			if (P.s(G.vu)) {
				if (z) {
					s.data = null;
					if (y) t.data = {
						e: i.B.uH,
						W2: "finfo"
					};
					else d.data = {
						Bm: "inverse"
					}
				} else if (y) t.data = {
					e: i.B.uH,
					W2: "isize"
				}
			}
			if (P.s(G.RH)) {
				s.Q = B.xC;
				s.data = {
					e: h.qZ
				}
			}
			if (P.s(G.zo)) {
				t.data = {
					e: i.B.uH,
					W2: "preferences"
				}
			}
			if (P.s(G.g8)) {
				if (z) {
					s.Q = B.xC;
					s.data = {
						e: h.Nm
					}
				} else t.data = {
					e: i.B.uH,
					W2: "newproject"
				}
			}
			if (P.s(G.PW)) {
				t.data = {
					e: i.B.ED
				};
				P.reset()
			}
			if (P.s(G.fi)) {
				t.data = {
					e: i.B.Gk
				};
				P.reset()
			}
			if (P.s(G.YP)) {
				t.data = {
					e: i.B.Sl,
					S9: ge.td
				}
			}
			if (P.s(G.Z7) && F == "down") {
				if (z) {
					if (y) t.data = {
						e: i.B.uH,
						W2: "saveforweb"
					};
					else t.data = {
						e: i.B.wF
					}
				} else t.data = {
					e: i.B.tG
				}
			}
			if (P.s(G.G)) {
				if (z) {
					s.Q = B.DV;
					s.data = {
						e: "again"
					}
				} else t.data = {
					e: i.B.MR,
					Q: B.DV
				}
			}
			if (P.s(G.fv)) {
				t.data = {
					e: i.B.bx
				}
			}
			if (P.s(G.gy)) {
				this.VD.Lu()
			}
			if (P.s(G.ej)) {
				t.data = {
					e: i.B.mK
				}
			}
			if (P.s(G.VR) || P.s(G.nH)) {
				s.Q = B.xC;
				s.data = {
					e: h.Aj,
					mQ: 0
				};
				if (P.s(G.VR)) s.data.mQ = z ? 3 : 2;
				else s.data.mQ = z ? 0 : 1
			}
			if (P.s(G.Xr) && o) {
				s.Q = B.j1;
				s.data = {
					e: "frompath",
					oI: [null, 0, 0]
				}
			}
			if (P.s(G.Ua)) {
				d.data = B.$K.W$(0)
			}
			if (P.s(G.gP)) {
				var Z = this.U4.length;
				if (Z > 1) this.VD.iA((this.VD._Y() + 1) % Z)
			}
			if (P.s(G.JS)) {
				t.data = {
					e: i.B.Sl,
					S9: ge.gb
				}
			}
			if (P.s(G.e7)) {
				t.data = {
					e: i.B.Sl,
					S9: ge.tr
				}
			}
			if (P.s(G.Kh) || P.s(G.aiO)) {
				s.Q = B.QS;
				s.data = {
					e: "zoom",
					Wu: !0
				}
			}
			if (P.s(G.lY)) {
				s.Q = B.QS;
				s.data = {
					e: "zoom",
					Wu: !1
				}
			}
			if (P.s(G.p4)) {
				s.Q = B.QS;
				s.data = {
					e: "adapt",
					C: "fitscr"
				}
			}
			if (P.s(G.Yd)) {
				s.Q = B.QS;
				s.data = {
					e: "adapt",
					C: "pixel"
				}
			}
			if (this.jJ._X() != null && this.jJ._X().go()) {} else {
				if (s.data) this.w(s);
				if (d.data) this.w(d);
				if (t.data) this.w(t)
			}
		}
		if (!P.s(G.Bl) && !y && !z && F == "down") {
			var s = new l(i.E.H),
				t = new l(i.E.L),
				D = this.lt.map[this.fm.Mp],
				q = -1;
			for (var w = 0; w < this.lt.keys.length; w++)
				if (this.lt.keys[w] && this.ow(this.lt.keys[w])) q = w;
			if (q != -1) {
				var R;
				if (D.JM != q) R = this.lt.Tl[q];
				if (D.JM == q) R = (D.acs + 1) % this.lt.zm[q].length;
				var J = this.lt.zm[q][R].Q.id,
					W = this.fm.a9y;
				if ((W == null || W.indexOf(parseInt(J)) != -1) && !this.AF.Ku) t.data = {
					e: i.B.MR,
					Q: J
				}
			}
			if (P.s(G.ej)) t.data = {
				e: i.B.Sl,
				S9: ge.Io,
				mQ: 2
			};
			if (P.s(G.fY)) t.data = {
				e: i.B.Sl,
				S9: ge.Io,
				mQ: 3
			};
			if (t.data) this.w(t);
			if (o && o.p.length != 0) {
				var p = o.r[o.p[0]],
					n = p.kB;
				if (n == 1 || n == 3) {
					var b = n == 3 ? p.yg(o).g : p.jk(),
						Q = b.gG ? o.a.qa.join("") == "111" ? 1 : 2 : 0;
					s.Q = B.QS;
					if (b && P.s(G.yc) && Q != 0) {
						s.data = {
							e: "mskView",
							C: 0
						}
					}
					if (b && P.s(G.ads)) {
						s.data = {
							e: "mskView",
							C: Q == 1 ? 0 : 1
						}
					}
					if (b && P.s(G.ajo)) {
						s.data = {
							e: "mskView",
							C: Q == 2 ? 0 : 2
						}
					}
					if (s.data) this.w(s)
				}
			}
			var _ = P.gL();
			if (X && _ != -1 && this.ow(G.Ed[_])) {
				var L = o.p[0],
					p = o.r[L],
					m = i.Wd(Math.round(100 * p.opacity / 255), _);
				s.Q = B.xC;
				s.data = {
					e: h.Ot,
					n: L,
					uB: Math.round(255 * m / 100)
				};
				this.w(s)
			}
			if (P.s(G.gP)) this.IL(this.Li == 0 ? 1 : 0);
			if (P.s(G.EH)) this.IL(this.Li == 0 ? 2 : 0);
			if (P.s(G.ae2) && !this.AF.Ku) {
				s.Q = B.j1;
				s.data = {
					e: "qmask"
				};
				this.w(s)
			}
		}
		if (!P.s(G.Bl) && !y && z) {
			var s = new l(i.E.H),
				t = new l(i.E.L);
			if (P.s(G.a9s)) t.data = {
				e: i.B.uH,
				W2: "shortcuts"
			};
			if (P.s(G.SS)) t.data = {
				e: i.B.uH,
				W2: "fill"
			};
			if (P.s(G.a9K)) t.data = {
				e: i.B.uH,
				W2: "sel_feather"
			};
			if (X && (P.s(G.Kh) || P.s(G.lY))) {
				var L = o.p[0],
					p = o.r[L],
					I = aK.YA,
					c = I.length,
					u = I.indexOf(p.sW);
				s.Q = B.xC;
				s.data = {
					e: h.N1,
					uB: (u + c + (P.s(G.Kh) ? 1 : -1)) % c
				};
				this.w(s)
			}
			if (t.data) this.w(t)
		}
		var s = new l(i.E.H),
			a = F == "down" && (this.ow(G.Yk) || this.ow(G.Yp));
		if ((Y || y) && a) {
			s = new l(i.E.QJ);
			s.data = B.gn.XL(Y ? "BckC" : "FrgC");
			this.w(s)
		} else if (o && a && !this.AF.Ku) {
			if (o.K != null) {
				s = new l(i.E.QJ);
				s.data = {
					Bm: "delete"
				}
			} else {
				s.Q = B.xC;
				s.data = {
					e: h.R0
				}
			}
			this.w(s)
		}
		if (this.jJ._X() != null) {
			if (P.s(G.yc)) {
				this.jJ._X().b3()
			} else {
				this.jJ._X().gU(o, this, this.fm, P)
			}
		}
		if (this.fm.Mp == null) return;
		var D = this.fl();
		if (this.jJ._X() == null || this.lt.Nv) D.gU(o, this, this.fm, P)
	};
	dR.prototype.ow = function (F) {
		var P = this._N,
			o = this.lt.map[this.fm.Mp].Q,
			top = this.jJ._X(),
			X = this.ux();
		return P.s(F) && !o.aU(F, X) && (top == null || !top.aU(F, X))
	};
	dR.aez = function () {
		if (!document.mozFullScreen && !document.a5l) {
			var F = document.body;
			if (F.mozRequestFullScreen) {
				F.mozRequestFullScreen()
			} else {
				F.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)
			}
		} else {
			if (document.mozCancelFullScreen) {
				document.mozCancelFullScreen()
			} else {
				document.webkitCancelFullScreen()
			}
		}
	};
	dR.prototype.IL = function (F) {
		var P = this.a9m,
			o = this.uz;
		this.Li = F;
		var X = i.WW,
			Y = this.J1.u;
		if (X(Y)) this.ty.removeChild(Y);
		var y = this.VY.u;
		if (X(y)) this.ty.removeChild(y);
		var z = this.I5.u;
		if (X(z)) P.removeChild(z);
		var s = this.VD.u;
		if (X(s)) P.removeChild(s);
		var t = this.XO.u;
		if (X(t)) P.removeChild(t);
		if (F == 0) {
			this.ty.appendChild(Y);
			this.ty.appendChild(y);
			o.appendChild(P);
			P.appendChild(z);
			P.appendChild(s);
			P.appendChild(t)
		}
		if (F == 1) {
			this.ty.appendChild(Y);
			P.appendChild(s)
		}
		if (F == 2) {
			P.appendChild(s)
		}
		this.VD.IL(F == 2 ? 1 : 0);
		if (document.fullscreenEnabled) {
			if (F == 2) document.body.requestFullscreen();
			else if (document.fullscreenElement) document.exitFullscreen()
		}
		this.IJ()
	};

	function bC(F) {
		au.call(this);
		if (F == null) return;
		this.YY = null;
		this.mi = null;
		this.u = i.z("div", "sbar" + " " + F);
		this.Ft = new i.z("div", "top");
		this.Ft.innerHTML = "> <";
		this.u.appendChild(this.Ft);
		this.Fq = 1;
		this.Ft.addEventListener("click", this.adR.bind(this), !1)
	}
	bC.prototype = new au;
	bC.prototype.adR = function (F) {
		if (this.YY != null && this.YY < 500 && this.Fq == 0) return;
		if (this.Fq == 0) this.Vy(!0);
		else this.collapse(!0)
	};
	bC.prototype.Ig = function (F) {
		this.Fq = F;
		this.Ft.innerHTML = this.Fq == 0 ? "< >" : "> <"
	};
	bC.prototype.RA = function () {
		var F = new l(i.E.L, !0);
		F.data = {
			e: i.B.mG
		};
		this.w(F)
	};
	bC.prototype.Vy = function (F) {
		this.Ig(1);
		if (F) this.RA()
	};
	bC.prototype.collapse = function (F) {
		this.Ig(0);
		if (F) this.RA()
	};
	bC.prototype.M9 = function () {
		return this.Fq == 1
	};

	function av(F) {
		bC.call(this, "vcolumn");
		this.$c = F;
		this.HT();
		this.H8 = i.z("div");
		this.H8.setAttribute("style", "cursor:default;");
		this.aeY = this.a9l.bind(this);
		this.a3N = this.aeT.bind(this);
		this.acE = this.af0.bind(this);
		i.X8(this.u, this.aeY);
		this.u.appendChild(this.H8);
		this.ZO = i.z("div", "");
		this.H8.appendChild(this.ZO);
		this.QQ = null;
		this._w = i.z("div", "float");
		this.uG = [];
		this.a6h = null;
		this.a7h = 0
	}
	av.prototype = new bC;
	av.prototype.a9l = function (F) {
		if (F.target != this.u) return;
		if (!this.M9()) return;
		this.a6h = i.oA(F, document.body);
		this.a7h = this.$c;
		i.Jr(document, this.a3N);
		i.so(document, this.acE)
	};
	av.prototype.aeT = function (F) {
		var P = i.oA(F, document.body);
		this.$c = this.a7h + this.a6h.x - P.x;
		this.HT();
		var o = new l(i.E.L, !0);
		o.data = {
			e: i.B.mG
		};
		this.w(o)
	};
	av.prototype.af0 = function (F) {
		i.NG(document, this.a3N);
		i.Sz(document, this.acE)
	};
	av.prototype.ahK = function (F) {
		F.$("showFloat", this.Id, this);
		F.$("hideFloat", this.bi, this);
		this.uG.push(F);
		F.parent = this;
		this.H8.appendChild(F.u)
	};
	av.prototype.a8u = function (w) {
		var F = this.uG[w];
		F.removeEventListener("showFloat", this.Id, this);
		F.removeEventListener("hideFloat", this.bi, this);
		this.uG.splice(w, 1);
		F.parent = null;
		this.H8.removeChild(F.u)
	};
	av.prototype.a7B = function () {
		return this.uG.length
	};
	av.prototype.MZ = function () {
		for (var w = 0; w < this.uG.length; w++) this.uG[w].MZ()
	};
	av.prototype.Id = function (F) {
		this.bi(F);
		this.ZO.appendChild(this._w);
		this.QQ = F.currentTarget.cH;
		this._w.appendChild(this.QQ);
		var P = F.currentTarget.S_(),
			o = "";
		if (P.x != 0) o += "width : " + P.x + "px;";
		if (P.y != 0) o += "height: " + P.y + "px;";
		this._w.setAttribute("style", o);
		this.l9(this.YY, this.mi)
	};
	av.prototype.bi = function (F) {
		this.MZ();
		if (this.QQ) {
			this.ZO.removeChild(this._w);
			this._w.removeChild(this.QQ);
			this.QQ = null
		}
	};
	av.prototype.HT = function () {
		this.u.setAttribute("style", "width: " + this.$c + "px; padding-left:3px; cursor:ew-resize;")
	};
	av.prototype.Vy = function (F) {
		this.HT();
		this.bi();
		for (var w = 0; w < this.uG.length; w++) this.uG[w].Vy();
		bC.prototype.Vy.call(this, F)
	};
	av.prototype.collapse = function (F) {
		this.u.removeAttribute("style");
		for (var w = 0; w < this.uG.length; w++) this.uG[w].collapse();
		bC.prototype.collapse.call(this, F)
	};
	av.prototype.l9 = function (F, P) {
		this.YY = F;
		this.mi = P;
		var o = this.uG.length,
			X = this.M9();
		P -= 6;
		if (o == 0) return;
		F = this.$c;
		var Y = P;
		for (var w = 0; w < o - 1; w++) {
			var y = this.uG[w],
				z = y.ak6();
			y.l9(F, X ? z : P);
			Y -= z
		}
		this.uG[o - 1].l9(F, X ? Y : P)
	};

	function a2(F) {
		au.call(this);
		this.u = i.z("div");
		this.H8 = null;
		this._f = 0;
		this.Hm = 0;
		this.a7O = F;
		this.ag0 = this.Qf.bind(this);
		this.a69 = this.Ap.bind(this);
		this.ak4 = this.sj.bind(this);
		this.Xi = null;
		this.u2 = null;
		this.Cz = null;
		i.X8(this.u, this.ag0);
		var P = this.u,
			X = "<svg class=\"gsicon\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">";
		P.addEventListener("touchmove", i.vA, !1);
		this.amc = !0;
		this.C8 = [];
		var o = this.ajY = i.z("div");
		o.setAttribute("style", "float:right; padding:4px;display:none; position:relative;z-index:1;");
		this.u.appendChild(o);
		var Y = ["<img style=\"height:22px; cursor:pointer;\" title=\"Try Cartoon Animator!\" src=\"images/cta.png\" />", [0, 13, 3],
			[0, 13, 4],
			[0, 13, 5], "Blog", "API", X + "<path d=\"M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z\"/></svg>", X + "<path d=\"M23.9981 11.9991C23.9981 5.37216 18.626 0 11.9991 0C5.37216 0 0 5.37216 0 11.9991C0 17.9882 4.38789 22.9522 10.1242 23.8524V15.4676H7.07758V11.9991H10.1242V9.35553C10.1242 6.34826 11.9156 4.68714 14.6564 4.68714C15.9692 4.68714 17.3424 4.92149 17.3424 4.92149V7.87439H15.8294C14.3388 7.87439 13.8739 8.79933 13.8739 9.74824V11.9991H17.2018L16.6698 15.4676H13.8739V23.8524C19.6103 22.9522 23.9981 17.9882 23.9981 11.9991Z\"/></svg>"
		];
		for (var w = 0; w < Y.length; w++) {
			var y = new fV(Y[w]);
			this.C8.push(y);
			y.u.setAttribute("style", "margin-left:4px;cursor:pointer;");
			y.$("click", this.AE, this)
		}
	}
	a2.prototype = new au;
	a2.prototype.t = function () {
		var F = this.ajY;
		i.TD(F);
		for (var w = 0; w < this.C8.length; w++) {
			var P = this.C8[w];
			P.t();
			var o = Date.now() < 1595058192822 && !ej.WQ();
			if (w != 0 || o) F.appendChild(P.u)
		}
	};
	a2.prototype.AE = function (F) {
		var w = this.C8.indexOf(F.currentTarget);
		if (w == 1) {
			if (window.showCap) window.showCap();
			return
		}
		var P = "CTA  issues learn blog api twitter facebook".split(" "),
			o = "//bit.ly/34sCf9r  //github.com/photopea/photopea/issues //www.photopea.com/learn //blog.photopea.com //www.photopea.com/api //twitter.com/photopeacom //www.facebook.com/photopea/".split(" "),
			X = window.ga;
		if (X) X("send", "event", "Links", P[w]);
		var Y = new l(i.E.L, !0);
		Y.data = {
			e: i.B.Xk,
			link: o[w]
		};
		this.w(Y)
	};
	a2.prototype.Qf = function (F) {
		if (F.a8B) {
			F.preventDefault();
			F.stopPropagation()
		}
		var P = window;
		i.Jr(P, this.a69);
		i.so(P, this.ak4);
		P = this.H8;
		this.Xi = new aH(parseInt(P.style.left), parseInt(P.style.top));
		this.u2 = i.oA(F, this.u);
		this.Cz = P.getBoundingClientRect()
	};
	a2.prototype.Ap = function (F) {
		var P = i.oA(F, this.u),
			o = this.Xi.x + P.x - this.u2.x,
			X = this.Xi.y + P.y - this.u2.y,
			Y = this._f - this.Cz.width,
			y = this.Hm - this.Cz.height;
		if (this.a7O) this.H8.style.left = Math.min(0, Math.max(Y, o)) + "px";
		else this.H8.style.top = Math.min(0, Math.max(y, X)) + "px";
		if (o - 10 > 0) {
			this.u2.x = P.x - 10;
			this.Xi.x = 0
		}
		if (o + 10 < Y) {
			this.u2.x = P.x + 10;
			this.Xi.x = Y
		}
	};
	a2.prototype.sj = function (F) {
		var P = window;
		i.NG(P, this.a69);
		i.Sz(P, this.ak4)
	};
	a2.prototype.a9I = function (F) {
		if (this.H8) {
			this.u.removeChild(this.H8)
		}
		this.H8 = F;
		this.u.appendChild(F);
		F.style.position = "absolute";
		if (this.a7O) F.style.left = 0;
		else F.style.top = 0
	};
	a2.prototype.l9 = function (F, P) {
		this._f = F;
		this.Hm = P;
		this.u.setAttribute("style", "width: " + F + "px; height: " + P + "px; overflow:hidden; white-space: nowrap;");
		var o = this.H8.firstChild,
			X = this.ajY,
			Y = o ? o.firstChild.getBoundingClientRect().width + 80 : 1e9,
			y = 450,
			z = this.amc && F > Y + y,
			s = i.hs,
			t = s("b`bRH"),
			d = s("SU\\VOAV");
		X[t][d] = z ? "" : s("][WK")
	};

	function c2() {
		au.call(this);
		this.yH = null;
		this.Q0 = c2.fi;
		this.a7u = "";
		this.u = i.z("div", "rightbar");
		this.wL = [new av(380), new av(265)];
		this.uG = [new gc, new gc, new gc, new gc, new gc, new gc];
		this.ake = []
	}
	c2.prototype = new au;
	c2.prototype.t = function () {
		var F = this.Q0;
		for (var w = 0; w < F.length; w++) F[w].Nc.t()
	};
	c2.fi = [{
		Nc: new bO,
		Af: 2
	}, {
		Nc: new bY,
		Af: 3
	}, {
		Nc: new f8,
		Af: 1
	}, {
		Nc: new eu(!0),
		Af: 4
	}, {
		Nc: new el,
		Af: 0
	}, {
		Nc: new eC,
		Af: 4
	}, {
		Nc: new fX,
		Af: 2
	}, {
		Nc: new dO,
		Af: 0
	}, {
		Nc: new fe,
		Af: 2
	}, {
		Nc: new cH,
		Af: 1
	}, {
		Nc: new aq,
		Af: 3
	}, {
		Nc: new fN,
		Af: 2
	}, {
		Nc: new eu(!1),
		Af: 4
	}, {
		Nc: new dl,
		Af: 1
	}, {
		Nc: new go,
		Af: 4
	}, {
		Nc: new dK,
		Af: 2
	}, {
		Nc: new ar,
		Af: 0
	}, {
		Nc: new cv,
		Af: 5,
		V4: !0
	}, {
		Nc: new b5,
		Af: 5,
		V4: !0
	}];
	(function () {
		var F = [{
			id: c$.YP.ac0,
			name: "Gallery",
			url: "plugins/gallery.html",
			width: 400,
			height: 400,
			icon: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACABAMAAAAxEHz4AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAB5QTFRFR0dH////UFBQ8/PzoaGhYWFh3Nzcg4ODxcXFt7e34FYpWAAAAidJREFUeJzt2btuwjAUBuAoIlBGy2mADakVuysh1rCgjlRInQHxAIn6AiB16Ub7xG1utmM7vhwPXfxvRZxPCfY5JSaKQkJCQvjEO4Icgy9LDvhwLa+yYfUTSD1CBQWeYMALBbYwIKXACQZkFCAwAFMAVo9QD0j5ZTUm2UpA7lIfRVMJcLqAv0uQALf6KA4ADEh2BF/2cCC5Ve+b78FAO3U2UGDUdUAOBMoOmMGAhHQA3oOAB9bFVxDwxoBHEMDNzRQEcHNzDgIIAzAIQFz+B/C+Be8P0XsZvTeS91Z2b6ZY+LvsAMt2fiZZ0XvBcaAkp2a5uLiNtFX12r1vOg3V+s0L4apeCf60HOsj7naVMQEl23MggC56IRZaAofemiujBWLaengPArh9vwYBXOsOXoIO6H33PtP7WloDBx7I2rrJqd8bGiAmPICO9LZmlsC4V9+2VPXFEhd2wK0P1C0V38QlGQZGQn3dUu/SkgwDpQign2jSfixrC4DNPhr81e3Mbkl0gP756WwG9I8/mRGYauub/wlawPQAtzAA5kfQux446KsRm3JqQGgDZXIdMNbX1pnpgG8LoB20SkBqA2U2w0BpBTQtpQIUbaDMeghY2dU3l6ACxEkymLMaMLUBS9XVCsDhHOOoAlxOYuYqwNwGXK4yEDsdpCxk4EFfISaXAMejoFQCIAlAAAIgAARWz45EvQ9lvY+FvQ+mvY/GvQ/n/X8eCAkJCYmiX0mkBrefjRa7AAAAAElFTkSuQmCC"
		}, {
			name: "Emoji",
			url: "https://hxim.github.io/TwemojiPlugin/twemoji3.html",
			width: 400,
			height: 400,
			icon: "https://hxim.github.io/TwemojiPlugin/icon.svg"
		}];
		for (var w = 0; w < F.length; w++) c2.fi.push({
			Nc: new fs(F[w], 100 + w),
			Af: 5,
			V4: !0
		})
	}());
	c2.prototype.a8p = function (F) {
		for (var w = 0; w < F.length; w++) {
			var P = F[w],
				o = new fs(P, "plg_" + P.name);
			this.Q0.push({
				Nc: o,
				Af: 5
			});
			this.ake.push(o.tL)
		}
		this.qK()
	};
	c2.prototype.AK = function (F, P) {
		this.yH = F;
		var o = this.Q0;
		for (var w = 0; w < o.length; w++) o[w].Nc.AK(F, P);
		if (P == ge.yE || P == ge.oc) this.qK()
	};
	c2.prototype.qM = function (F) {
		var P = this.Q0;
		for (var w = 0; w < P.length; w++) P[w].Nc.qM(F)
	};
	c2.prototype.l9 = function (F, P) {
		this.YY = F;
		this.mi = P;
		this.wL[0].l9(F, P);
		this.wL[1].l9(F, P)
	};
	c2.prototype.qK = function () {
		var F = this.yH,
			P = this.YY;
		if (F == null || P == 0) return;
		var o = F.cY.concat(this.ake);
		if (JSON.stringify(o) != this.a7u) {
			this.a7u = JSON.stringify(o);
			i.TD(this.u);
			var X = [];
			for (var w = 0; w < this.wL.length; w++) {
				var Y = this.wL[w];
				X[w] = Y.M9();
				while (Y.a7B() != 0) Y.a8u(0);
				Y.Vy()
			}
			var y = [];
			for (var w = 0; w < this.uG.length; w++) {
				var z = this.uG[w];
				z.Vy();
				while (z.a0K() != 0) z.Ql(0);
				y.push(0)
			}
			for (var w = 0; w < o.length; w++) {
				var s = this.cr(o[w].toString());
				// console.error(101,[s,s.Nc,o[w].toString(),this.cr]); //add by warlee; 右侧边栏item构造;
				this.uG[s.Af].pn(s.Nc);
				this.uG[s.Af].iA(0);
				y[s.Af]++
			}
			var t = [];
			for (var w = 0; w < y.length; w++) {
				if (y[w] == 0) continue;
				var d = w < 2 || P < 500 ? 1 : 0,
					Y = this.wL[d];
				Y.parent = this;
				Y.ahK(this.uG[w]);
				t[d] = !0
			}
			for (var w = 0; w < this.wL.length; w++)
				if (t[w]) this.u.appendChild(this.wL[w].u);
			this.wL[0].collapse();
			if (P < 500 || this.yH.compact || !X[1]) {
				this.wL[1].collapse()
			}
			var U = new l(i.E.L, !0);
			U.data = {
				e: i.B.mG
			};
			this.w(U)
		}
	};
	c2.prototype.cr = function (F) {
		for (var w = 0; w < this.Q0.length; w++)
			if (this.Q0[w].Nc.tL == F) return this.Q0[w]
	};
	c2.prototype.a3z = function (F) {
		var P = this.cr(F);
		this.uG[P.Af].pn(P.Nc)
	};
	c2.prototype.Vp = function (F, P, o) {
		var X = this.Q0;
		for (var w = 0; w < X.length; w++) X[w].Nc.Vp(F, P, o)
	};
	c2.prototype.R$ = function (F, P, o, X, Y) {
		var y = this.Q0;
		for (var w = 0; w < y.length; w++) y[w].Nc.R$(F, P, o, X, Y)
	};
	c2.prototype.$E = function (F, P, o, X, Y) {
		var y = this.Q0;
		for (var w = 0; w < y.length; w++) y[w].Nc.$E(F, P, o, X, Y)
	};
	c2.prototype.NL = function (F, P, o, X, Y) {
		var y = this.Q0;
		for (var w = 0; w < y.length; w++) y[w].Nc.NL(F, P, o, X, Y)
	};

	function gF(F, P) {
		bC.call(this, "toolbar");
		this.acj = null;
		this._L = i.z("div", "tools");
		this.u.appendChild(this._L);
		this.fT = null;
		this.a75 = P;
		this.pW = null;
		this.lt = null;
		this.zF = null;
		this.gS = null;
		this.MK = null;
		this.kQ(F);
		this.GY = new eH;
		this.GY.$(i.E.I, this.Hq, this);
		this.GY.parent = this;
		this.Ty = new eH;
		this.Ty.$(i.E.I, this.Hq, this);
		this.Ty.parent = this;
		this.ET = new fV(i.G6("lrs/mask"), !1, [6, 6, 1]);
		this.ET.u.style.marginTop = "6px";
		this.ET.$("click", function (z) {
			var s = new l(i.E.H, !0);
			s.Q = B.j1;
			s.data = {
				e: "qmask"
			};
			this.w(s)
		}, this);
		var o = new aL(null, ["Ctrl", "Alt", "Shift"], !0);
		o.$(i.E.I, this.acK, this);
		var X = i.z("span", "rangecont form");
		X.appendChild(o.u);
		var Y = new au;
		Y.u = X;
		this.a3d = [!1, !1, !1];
		this.MJ = new fV("\u2328", !1, "Virtual Keys");
		this.MJ.$("click", function (z) {
			var s = this.MJ.u.getBoundingClientRect(),
				t = new l(i.E.L, !0);
			t.data = {
				e: i.B.VX,
				Nc: Y,
				x: s.left,
				y: s.top - 30
			};
			this.w(t)
		}, this);
		this.rY = i.z("span", "scont");
		this.QW = i.z("button", "switch");
		this.QW.textContent = "\u21F5";
		this.G3 = i.z("button", "switch");
		this.G3.textContent = "D";
		var y = this.ad9.bind(this);
		this.QW.addEventListener("click", y, !1);
		this.G3.addEventListener("click", y, !1);
		this.rY.appendChild(this.QW);
		this.rY.appendChild(this.G3)
	}
	gF.prototype = new bC;
	gF.prototype.acK = function (F) {
		var P = F.target.q();
		this.MJ.k(P[0] || P[1] || P[2]);
		var o = new l(i.E.L, !0);
		o.data = {
			e: i.B.CB
		};
		this.w(o);
		for (var w = 0; w < 3; w++) {
			if (P[w] != this.a3d[w]) {
				o.data = {
					e: i.B.dm,
					Ku: P[w],
					key: ["ControlLeft", "AltLeft", "ShiftLeft"][w]
				};
				this.w(o)
			}
		}
		this.a3d = P.slice(0)
	};
	gF.prototype.ajx = function (F, P) {
		this.pW = P;
		if (F == null || F.p.length == 0) return;
		var o = F.ET() != null,
			X = F.a.qa,
			Y = F.r[F.p[0]].kB,
			y = Y == 1 || Y == 3 || o || X[0] + X[1] + X[2] == 1;
		this.GY.rf(y);
		this.Ty.rf(y);
		this.ET.k(o)
	};
	gF.prototype.kQ = function (F) {
		this.acj = F;
		this.zF = [];
		this.gS = [];
		this.MK = [];
		this.lt = [];
		var P = F.zm;
		if (this.fT) {
			var o = [],
				X = this.fT.a9y;
			for (var w = 0; w < P.length; w++) {
				if (P[w] == "---") {
					o.push("---");
					continue
				}
				var Y = [];
				for (var y = 0; y < P[w].length; y++) {
					var z = P[w][y];
					if (X == null || X.indexOf(parseInt(z.Q.id)) != -1) Y.push(z)
				}
				if (Y.length > 0) o.push(Y)
			}
			P = o
		}
		for (var w = 0; w < P.length; w++) {
			if (P[w] == "---") {
				this.MK.push(null);
				this.gS.push("---");
				continue
			}
			var s = [],
				t = this.zF.length;
			for (var y = 0; y < P[w].length; y++) {
				var z = P[w][y].Q;
				this.lt.push(z);
				var d = new fq(z.name, F.keys[w], z.CE, this.zF.length, w, P[w].length > 1);
				this.zF.push(d);
				if (y == 0) this.gS.push(d);
				d.$(i.E.I, this.Om, this);
				d.$("mover", this.hP, this);
				s.push({
					name: z.name,
					ZL: z.CE,
					n8: F.keys[w] ? F.keys[w].Bj : ""
				})
			}
			if (s.length == 1) this.MK.push(null);
			else {
				var U = new ba(s);
				U.adp = t;
				U.JM = w;
				this.MK.push(U);
				U.$("select", this.a4M, this);
				U.parent = this
			}
		}
	};
	gF.prototype.l9 = function (F, P) {
		var o = P - 11,
			X = 32;
		if (1 < i.J() && i.J() < 1.5) X = 18 + 14 * (1 / i.J());
		var Y = (this.gS.length - 3) * X + 3 * 5 + 61 + 18 + 24,
			y = Math.min(1, o / Y);
		if (.75 <= y) {
			this._L.setAttribute("style", "width:34px; transform-origin: top left; transform: scale(" + y + "," + y + ");");
			this.u.setAttribute("style", "height:" + (P - 2) + "px; overflow:hidden")
		} else {
			o -= 4;
			this._L.setAttribute("style", "height: " + o + "px;  width:" + Math.ceil(Y / o) * 34 + "px");
			this.u.setAttribute("style", "")
		}
	};
	gF.prototype.t = function () {
		for (var w = 0; w < this.zF.length; w++) this.zF[w].t();
		for (var w = 0; w < this.MK.length; w++)
			if (this.MK[w]) this.MK[w].t();
		this.QW.setAttribute("title", h9.get([22, 7, 0]) + " (X)");
		this.G3.setAttribute("title", h9.get([22, 7, 1]) + " (D)")
	};
	gF.prototype.Om = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.MR,
			Q: this.lt[F.id].id
		};
		this.w(P)
	};
	gF.prototype.a4M = function (F) {
		var P = F.target.adp + F.target.oe()[0];
		this.zF[P].sj(null)
	};
	gF.prototype.hP = function (F) {
		var P = this.pW,
			o = new l(i.E.L, !0);
		o.data = {
			e: i.B.CB
		};
		this.w(o);
		var X = F.target,
			Y = this.MK[X.JM];
		if (Y == null) return;
		var y = X.u.getBoundingClientRect(),
			o = new l(i.E.L, !0);
		o.data = {
			e: i.B.VX,
			Nc: Y,
			x: y.left + y.width + 8,
			y: y.top
		};
		if (P == null || !(P.s(G.fd) || P.s(G.Bl))) this.w(o)
	};
	gF.prototype.Hq = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.Sl,
			S9: ge.Io,
			mQ: F.target == this.GY ? 0 : 1,
			C: F.target.sJ()
		};
		this.w(P)
	};
	gF.prototype.ad9 = function (F) {
		var P = new l(i.E.L, !0);
		P.data = {
			e: i.B.Sl,
			S9: ge.Io,
			mQ: F.currentTarget == this.QW ? 2 : 3
		};
		this.w(P)
	};
	gF.prototype.BN = function (F) {
		var P = -1;
		for (var w = 0; w < this.lt.length; w++)
			if (this.lt[w].id == F) P = w;
		for (var w = 0; w < this.zF.length; w++) {
			var o = this.zF[w];
			o.a1Z(P == w)
		}
		if (P == -1) return;
		this.gS[this.zF[P].JM] = this.zF[P];
		i.TD(this._L);
		var X = this.gS;
		for (var w = 0; w < X.length; w++) {
			if (X[w] == "---") this._L.appendChild(i.z("hr"));
			else this._L.appendChild(X[w].u)
		}
		if (!this.a75) return;
		this._L.appendChild(this.GY.u);
		this._L.appendChild(this.rY);
		this._L.appendChild(this.Ty.u);
		this._L.appendChild(this.ET.u);
		this._L.appendChild(this.MJ.u)
	};
	gF.prototype.Vp = function (F, P) {
		this.BN(P.Mp)
	};
	gF.prototype.AK = function (F, P) {
		this.fT = F;
		if (P == ge.oc) {
			this.kQ(this.acj);
			this.BN(F.Mp)
		}
		this.GY.s$(F.GY);
		this.Ty.s$(F.Ty)
	};

	function fq(F, P, o, X, Y, y) {
		au.call(this);
		this.X1 = 0;
		this.a2G = this.ajq.bind(this);
		this.JM = Y;
		this.Vm = X;
		this.q6 = F;
		this.a9R = P;
		this.ahw = y;
		this.CE = o;
		this.u = i.z("button", "");
		this.u.innerHTML = i.G6(this.CE);
		if (this.ahw) {
			var z = i.z("img", "gsicon");
			z.setAttribute("src", PIMG["tools/corner"]);
			z.setAttribute("style", "position:absolute; right:0;  bottom:0; width:100%; height:100%;");
			this.u.appendChild(z)
		}
		this.t();
		i.X8(this.u, this.Qf.bind(this));
		this.u.addEventListener("click", this.sj.bind(this), !1);
		this.u.addEventListener("contextmenu", fq.OZ, !1)
	}
	fq.prototype = new au;
	fq.OZ = function (F) {
		F.stopPropagation();
		F.preventDefault();
		return !1
	};
	fq.prototype.t = function () {
		var F = this.a9R ? " (" + this.a9R.Bj + ")" : "";
		this.u.setAttribute("title", h9.get(this.q6) + F)
	};
	fq.prototype.Qf = function (F) {
		this.X1 = setTimeout(this.a2G, 160)
	};
	fq.prototype.sj = function (F) {
		clearTimeout(this.X1);
		var P = new l(i.E.I, !1);
		P.target = this;
		P.id = this.Vm;
		this.w(P)
	};
	fq.prototype.ajq = function (F) {
		var P = new l("mover", !1);
		P.target = this;
		P.id = this.Vm;
		this.w(P)
	};
	fq.prototype.a1Z = function (F) {
		this.u.setAttribute("class", F ? "toolbtn active" : "toolbtn")
	};

	function es() {
		au.call(this);
		this.u = i.z("div", "topbar");
		this.Lx = i.z("span", "");
		this.a5K = 0;
		this.u.appendChild(this.Lx);
		this.PJ = null;
		this.TA = null;
		this.jF = [];
		this.cY = [];
		var F = this.Qf.bind(this);
		for (var w = 0; w < es.data.length; w++) {
			var P = i.z("button");
			this.jF.push(P);
			this.Lx.appendChild(P);
			P.addEventListener("mouseover", F, !1);
			i.X8(P, F)
		}
		this.my = new fV([0, 13, 0], !1, null, !0);
		this.my.$("click", this.mW, this);
		this.u.appendChild(this.my.u);
		this.ru = new fV(i.G6("tools/zoom", null, "autoscale"), !1, [12, 86]);
		this.ru.$("click", this.mW, this);
		this.u.appendChild(this.ru.u)
	}
	es.prototype = new au;
	es.prototype.To = function () {
		if (this.cY.length != 0) return;
		for (var w = 0; w < es.data.length; w++) {
			var F = es.data[w],
				P = new ba(F.items, F.Au);
			P.parent = this;
			this.cY.push(P)
		}
		this.t()
	};
	es.prototype.t = function () {
		this.my.t();
		this.ru.t();
		for (var w = 0; w < this.jF.length; w++) this.jF[w].textContent = h9.get(es.data[w].name);
		this.dF();
		for (var w = 0; w < this.cY.length; w++) this.cY[w].t()
	};
	es.prototype.mW = function (F) {
		var P = new l(i.E.L, !0);
		if (F.target == this.my) P.data = {
			e: i.B.uH,
			W2: "account"
		};
		else P.data = {
			e: i.B.iS
		};
		this.w(P)
	};
	es.prototype.a8j = function (F, P) {
		this.PJ = F;
		this.TA = P
	};
	es.prototype.AK = function (F, P) {
		this.TA = F;
		if (P == ge.oc) {
			var o = F.alo;
			i.TD(this.Lx);
			for (var w = 0; w < this.jF.length; w++) {
				if (o == null || o[w] == 1 || o[w] instanceof Array) this.Lx.appendChild(this.jF[w]);
				if (o != null && o[w] instanceof Array) {
					this.To();
					this.cY[w].We(o[w])
				}
			}
			this.u.removeChild(this.my.u);
			this.u.removeChild(this.ru.u);
			if (F.pR) this.u.appendChild(this.my.u);
			this.u.appendChild(this.ru.u)
		}
		this.dF()
	};
	es.prototype.dF = function (F, P) {
		var o = this.my,
			X = 12255232;
		if (ej.X9()) X = ej.WQ() ? 43520 : 16755200;
		o.u.setAttribute("style", "color:#ffffff; background-color:#" + H.v2(X))
	};
	es.prototype.Qf = function (F) {
		this.To();
		var w = this.jF.indexOf(F.currentTarget),
			P = this.cY[w];
		if (F.type == "mouseover" && !i.WW(this.cY[this.a5K].u)) return;
		if (i.WW(P.u)) return;
		F.a8B = !0;
		this.a5K = w;
		for (var w = 0; w < es.data.length; w++) this.cY[w].update(this.PJ, this.TA);
		var o = F.target.getBoundingClientRect(),
			X = new l(i.E.L, !0);
		X.data = {
			e: i.B.VX,
			Nc: P,
			x: o.left,
			y: o.top + o.height + 2,
			afi: !0
		};
		this.w(X)
	};
	es.N9 = function (F) {
		var P = G,
			o = P.Bl,
			X = P.cm,
			Y = P.ze,
			y = {
				name: [0, 5],
				items: [{
					name: [7, 0],
					n8: [o, P.B]
				}, {
					name: [7, 1],
					n8: [o, P.fY],
					Y: function (s) {
						return {
							Y: s != null && s.K != null
						}
					}
				}, {
					name: [7, 2],
					n8: [X, o, P.vu],
					Y: function (s) {
						return {
							Y: s != null && s.K != null
						}
					},
					aD: !0
				}, {
					name: [7, 11],
					sD: !0,
					Y: function (s) {
						return {
							Y: s != null && s.p.length != 0 && !s.r[s.p[0]].rect.qr()
						}
					}
				}, {
					name: "Magic Cut",
					sD: !0,
					Y: function (s) {
						return {
							Y: s != null && s.p.length != 0 && !s.r[s.p[0]].rect.qr()
						}
					},
					aD: !0
				}, {
					name: [7, 8],
					sD: !0
				}, {
					name: [7, 3],
					aD: !0,
					sub: [{
						name: [7, 9],
						sD: !0,
						Y: function (s) {
							return {
								Y: s != null && s.K != null
							}
						}
					}, {
						name: [19, 3, 0],
						sD: !0,
						Y: function (s) {
							return {
								Y: s != null && s.K != null
							}
						}
					}, {
						name: [7, 4],
						sD: !0,
						Y: function (s) {
							return {
								Y: s != null && s.K != null
							}
						}
					}, {
						name: [7, 5],
						sD: !0,
						Y: function (s) {
							return {
								Y: s != null && s.K != null
							}
						}
					}, {
						name: [7, 6],
						sD: !0,
						Y: function (s) {
							return {
								Y: s != null && s.K != null
							}
						},
						n8: "Shift+F6"
					}]
				}, {
					name: [7, 10],
					Y: function (s) {
						return {
							Y: s != null && s.K != null
						}
					}
				}],
				Au: [{
					f: i.E.QJ,
					o: B.hl.cA(!0)
				}, {
					f: i.E.QJ,
					o: B.hl.cA()
				}, {
					f: i.E.QJ,
					o: {
						Bm: "inverse"
					}
				}, {
					f: i.E.L,
					o: {
						e: i.B.uH,
						W2: "redge"
					}
				}, {
					f: i.E.L,
					o: {
						e: i.B.uH,
						W2: "magiccut"
					}
				}, {
					f: i.E.L,
					o: {
						e: i.B.uH,
						W2: "crange"
					}
				}, {
					sub: [{
						f: i.E.L,
						o: {
							e: i.B.uH,
							W2: "sel_border"
						}
					}, {
						f: i.E.L,
						o: {
							e: i.B.uH,
							W2: "sel_smoothness"
						}
					}, {
						f: i.E.L,
						o: {
							e: i.B.uH,
							W2: "sel_expand"
						}
					}, {
						f: i.E.L,
						o: {
							e: i.B.uH,
							W2: "sel_contract"
						}
					}, {
						f: i.E.L,
						o: {
							e: i.B.uH,
							W2: "sel_feather"
						}
					}]
				}, {
					f: i.E.L,
					o: {
						e: i.B.MR,
						Q: B.SH
					}
				}]
			};
		if (F) {
			var z = y.items.length - 1;
			y.items.splice(z, 0, {
				name: [10, 16],
				n8: [Y, o, P.G]
			});
			y.Au.splice(z, 0, {
				f: i.E.L,
				o: {
					e: i.B.MR,
					Q: B.DV
				}
			})
		}
		return y
	};
	es.data = function () {
		var F = G,
			P = F.Bl,
			o = F.cm,
			X = F.ze,
			Y = function (U) {
				return {
					Y: U != null && U.p.length != 0
				}
			},
			y = function (U) {
				return {
					Y: U != null && U.p.length != 0 && U.r[U.p[0]].add.SoLd != null
				}
			},
			z = [],
			s = [],
			t = "none maxx avrg medn minn rang stdv summ vari".split(" "),
			d = [
				[22, 5, 0],
				[24, 17, 2],
				[24, 3, 0],
				[24, 7, 3],
				[24, 17, 3],
				[12, 12], "Standard Deviation", "Summation", "Variance"
			];
		for (var w = 0; w < t.length; w++) {
			z.push({
				name: d[w]
			});
			s.push({
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.Eg,
					uB: t[w]
				}
			})
		}
		return [{
			name: [0, 0],
			items: [{
				name: [5, 3],
				n8: [X, P, F.g8],
				title: [11, 7],
				sD: !0
			}, {
				name: [1, 0],
				n8: [P, F.PW],
				sD: !0
			}, {
				name: [1, 11],
				sD: !0,
				Y: function (U, v) {
					return {
						Y: U != null
					}
				}
			}, {
				name: [1, 5],
				sD: !0,
				aD: !0
			}, {
				name: [11, 0]
			}, {
				name: [1, 1],
				aD: !0,
				sub: [{
					name: "PNG",
					n8: "Imgur.com",
					Y: function (U, v) {
						return {
							Y: U != null && v.HM
						}
					}
				}, {
					name: "PSD",
					n8: "Photopea.com",
					Y: function (U, v) {
						return {
							Y: U != null && v.HM
						}
					}
				}]
			}, {
				name: "Save ...",
				n8: [P, F.Z7],
				Y: function (U, v) {
					var A = h9.get([1, 2]) + (U == null ? "" : U.OU ? " (Smart Object)" : U.D2 ? " (Google Drive)" : "");
					return {
						Y: U != null && (U.OU != null || U.RY != null && U.RY.Qy != null || U.D2 != null || v.JT.save != null),
						IK: A
					}
				}
			}, {
				name: [1, 3],
				Y: function (U, v) {
					return {
						Y: U != null && v.HM
					}
				}
			}, {
				name: [1, 8],
				aD: !0,
				sub: function () {
					var U = em.Nq(0),
						v = [];
					for (var w = 0; w < U.length; w++) v.push({
						name: U[w],
						n8: "." + U[w].toLowerCase()
					});
					v.push({
						name: [0, 14],
						sub: function () {
							var U = em.Nq(1),
								v = [];
							for (var w = 0; w < U.length; w++) v.push({
								name: U[w],
								n8: "." + U[w].toLowerCase()
							});
							return v
						}()
					});
					return v
				}()
			}, {
				name: [1, 9],
				sD: !0,
				Y: function (U, v) {
					return {
						Y: U != null
					}
				}
			}, {
				name: "Export Color Lookup",
				sD: !0,
				Y: function (U, v) {
					return {
						Y: U != null
					}
				},
				aD: !0
			}, {
				name: "File Info",
				sD: !0,
				Y: function (U, v) {
					return {
						Y: U != null
					}
				},
				aD: !0
			}, {
				name: [1, 10]
			}],
			Au: [{
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "newproject"
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.ED
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.ED,
					a5e: !0
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "open_from_url"
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "camera"
				}
			}, {
				sub: [{
					f: i.E.L,
					o: {
						e: i.B.T5,
						On: "png"
					}
				}, {
					f: i.E.L,
					o: {
						e: i.B.T5,
						On: "psd"
					}
				}]
			}, {
				f: i.E.L,
				o: {
					e: i.B.tG
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.wF
				}
			}, {
				sub: function () {
					var U = em.Nq(0),
						v = [];
					for (var w = 0; w < U.length; w++) v.push({
						f: i.E.L,
						o: {
							e: i.B.uH,
							W2: "saveforweb",
							On: w
						}
					});
					v.push({
						sub: function () {
							var A = em.Nq(0).length,
								U = em.Nq(1),
								v = [];
							for (var w = 0; w < U.length; w++) v.push({
								f: i.E.L,
								o: {
									e: i.B.uH,
									W2: "saveforweb",
									On: A + w
								}
							});
							return v
						}()
					});
					return v
				}()
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "eassets"
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "exlut"
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "finfo"
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "script"
				}
			}]
		}, {
			name: [0, 1],
			items: [{
				name: [2, 8]
			}, {
				name: [2, 0],
				n8: [o, P, F.HW]
			}, {
				name: [2, 1],
				n8: [P, F.HW],
				aD: !0
			}, {
				name: [2, 11],
				n8: [o, P, F.EH],
				aD: !0,
				sD: !0,
				Y: function (U, v) {
					return {
						Y: cY.qX(U) && v.Mp != B.DV
					}
				}
			}, {
				name: [5, 0],
				n8: [P, F.ej]
			}, {
				name: [5, 1],
				n8: [P, F.qS]
			}, {
				name: [5, 7],
				n8: [o, P, F.qS]
			}, {
				name: [5, 2],
				n8: [P, F.fv],
				Y: function (U, v) {
					return {
						Y: i.hM() || v.pL != null || v.AL != null || v.aj6 != null
					}
				}
			}, {
				name: [2, 2],
				Y: function (U) {
					return {
						Y: U != null && U.K != null
					}
				},
				n8: "Delete",
				aD: !0
			}, {
				name: [2, 3],
				Y: function (U) {
					return {
						Y: U != null
					}
				},
				sD: !0,
				n8: [o, F.SS]
			}, {
				name: [14, 9],
				Y: function (U) {
					return {
						Y: U != null
					}
				},
				sD: !0,
				aD: !0
			}, {
				name: [10, 46],
				Y: function (U) {
					return {
						Y: B.LW.wM(U)
					}
				}
			}, {
				name: [10, 16],
				n8: [X, P, F.G]
			}, {
				name: [2, 4],
				sub: hi.L$()
			}, {
				name: [2, 10, 1]
			}, {
				name: [2, 10, 0],
				aD: !0
			}, {
				name: [12, 87],
				sub: [{
					name: [12, 62],
					Y: function (U) {
						return {
							Y: U != null
						}
					}
				}, {
					name: [9, 3],
					Y: function (U) {
						return {
							Y: U != null
						}
					}
				}, {
					name: [10, 31],
					Y: function (U) {
						return {
							Y: U != null && U.p.length != 0 && U.r[U.p[0]].add.vmsk != null
						}
					}
				}]
			}, {
				name: [12, 79],
				sD: !0,
				n8: [P, F.zo]
			}, {
				name: [1, 13],
				sD: !0
			}],
			Au: [{
				f: i.E.H,
				Q: B.Kb,
				o: {
					e: "h_undoredo"
				}
			}, {
				f: i.E.H,
				Q: B.Kb,
				o: {
					e: "h_stepfwd"
				}
			}, {
				f: i.E.H,
				Q: B.Kb,
				o: {
					e: "h_stepbck"
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "afw_fade"
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.mK
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.c_
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.c_,
					YZ: !0
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.bx
				}
			}, {
				f: i.E.QJ,
				o: {
					Bm: "delete"
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "fill"
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "stroke"
				}
			}, {
				f: i.E.H,
				Q: B._q,
				o: {
					e: "start",
					k9: "rigidTransform"
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.MR,
					Q: B.DV
				}
			}, {
				sub: hi.pp()
			}, {
				f: i.E.QJ,
				o: {
					Bm: "align",
					w1: {
						classID: "null",
						null: {
							t: "obj ",
							v: [{
								t: "Enmr",
								v: {
									classID: "Lyr",
									typeID: "Ordn",
									enum: "Trgt"
								}
							}]
						},
						Usng: {
							t: "enum",
							v: {
								ADSt: "ADSContent"
							}
						},
						alignToCanvas: {
							t: "bool",
							v: !1
						},
						Aply: {
							t: "enum",
							v: {
								projection: "Auto"
							}
						},
						vignette: {
							t: "bool",
							v: !1
						},
						radialDistort: {
							t: "bool",
							v: !1
						}
					}
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.$Z
				}
			}, {
				sub: [{
					f: i.E.L,
					o: {
						e: i.B.kj,
						S9: 0
					}
				}, {
					f: i.E.L,
					o: {
						e: i.B.kj,
						S9: 1
					}
				}, {
					f: i.E.L,
					o: {
						e: i.B.kj,
						S9: 2
					}
				}]
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "preferences"
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "locstor"
				}
			}]
		}, {
			name: [0, 2],
			items: [{
				name: [3],
				sub: function () {
					var U = [];
					for (var v in b_.names) {
						U.push({
							name: b_.names[v],
							sD: f[v] != null,
							n8: G.u0(b_.keys[v]),
							aD: b_.wZ.indexOf(v) != -1
						});
						if (v == "selc") {
							U.push({
								name: ["VAR0/VAR1", [19, 6, 0],
									[19, 6, 2]
								],
								sD: !0,
								aD: !0
							});
							U.push({
								name: [19, 7, 0],
								n8: [P, o, F.B6],
								Y: function (v) {
									return {
										Y: v && v.p.length != 0 && v.r[v.p[0]].add.SoLd == null
									}
								}
							})
						}
					}
					return U
				}()
			}, {
				name: [4, 16, 0],
				Y: function (U) {
					return {
						Y: U != null && U.FD(!1)
					}
				}
			}, {
				name: [4, 16, 1],
				Y: function (U) {
					return {
						Y: U != null && U.FD(!1)
					}
				}
			}, {
				name: [4, 16, 2],
				Y: function (U) {
					return {
						Y: U != null && U.FD(!1)
					}
				},
				aD: !0
			}, {
				name: [11, 11],
				Y: function (U) {
					return {
						Y: U != null && U.FD(!1)
					}
				},
				aD: !0
			}, {
				name: [11, 3],
				sD: !0,
				n8: [X, P, F.qS]
			}, {
				name: [11, 10],
				sD: !0,
				n8: [X, P, F.vu]
			}, {
				name: [2, 4],
				sub: [{
					name: ["VAR0 90\xB0 \u21BB", [2, 5]]
				}, {
					name: ["VAR0 90\xB0 \u21BA", [2, 5]]
				}, {
					name: ["VAR0 180\xB0", [2, 5]]
				}, {
					name: [
						[2, 6],
						[22, 4, 2]
					]
				}, {
					name: [
						[2, 6],
						[22, 4, 3]
					]
				}]
			}, {
				name: [11, 12, 1],
				Y: function (U) {
					return {
						Y: U != null && U.K != null
					}
				}
			}, {
				name: [11, 12, 0],
				Y: function (U) {
					return {
						Y: U != null
					}
				},
				n8: [P, F.Ua]
			}, {
				name: [11, 12, 2],
				Y: function (U) {
					return {
						Y: U != null
					}
				}
			}],
			Au: [{
				sub: function () {
					var U = [];
					for (var v in b_.names) {
						U.push({
							f: i.E.H,
							Q: B.Vd,
							o: {
								e: "start",
								MY: v
							}
						});
						if (v == "selc") {
							U.push({
								f: i.E.H,
								Q: B._q,
								o: {
									e: "start",
									k9: "adaptCorrect"
								}
							});
							U.push({
								f: i.E.QJ,
								o: {
									Bm: "desaturate"
								}
							})
						}
					}
					return U
				}()
			}, {
				f: i.E.QJ,
				o: {
					Bm: "levels",
					w1: {
						classID: "Lvls",
						Auto: {
							t: "bool",
							v: !0
						}
					}
				}
			}, {
				f: i.E.QJ,
				o: {
					Bm: "levels",
					w1: {
						classID: "Lvls",
						AuCo: {
							t: "bool",
							v: !0
						}
					}
				}
			}, {
				f: i.E.QJ,
				o: {
					Bm: "levels",
					w1: {
						classID: "Lvls",
						autoBlackWhite: {
							t: "bool",
							v: !0
						},
						autoNeutrals: {
							t: "bool",
							v: !0
						}
					}
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "vbitmap"
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "csize"
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "isize"
				}
			}, {
				sub: [{
					f: i.E.QJ,
					o: B.X.JZ(!0, 90)
				}, {
					f: i.E.QJ,
					o: B.X.JZ(!0, -90)
				}, {
					f: i.E.QJ,
					o: B.X.JZ(!0, -180)
				}, {
					f: i.E.QJ,
					o: B.X.JZ(!1, "Hrzn")
				}, {
					f: i.E.QJ,
					o: B.X.JZ(!1, "Vrtc")
				}]
			}, {
				f: i.E.H,
				Q: B.Uj,
				o: {
					e: "cropbysel",
					no: 0
				}
			}, {
				f: i.E.QJ,
				o: B.$K.W$(0)
			}, {
				f: i.E.QJ,
				o: {
					Bm: "revealAll",
					w1: {
						classID: "RvlA"
					}
				}
			}]
		}, {
			name: [0, 3],
			items: [{
				name: [5, 3],
				sub: [{
					name: [0, 3]
				}, {
					name: [0, 4]
				}, {
					name: [6, 49],
					n8: [P, F.RH]
				}]
			}, {
				name: [6, 0],
				Y: Y,
				n8: [P, F.RH]
			}, {
				name: [11, 4],
				Y: Y
			}, {
				name: [5, 4],
				Y: Y,
				aD: !0
			}, {
				name: [11, 6],
				aD: !0,
				Y: Y,
				sub: il.B0(!0)
			}, {
				name: [6, 48, 1],
				sub: [{
					name: [6, 48, 0, 0]
				}, {
					name: [6, 48, 0, 1]
				}, {
					name: [6, 48, 0, 2]
				}]
			}, {
				name: [6, 1],
				aD: !0,
				sub: il.U2()
			}, {
				name: [6, 2],
				sub: [{
					name: [6, 4],
					Y: function (U) {
						return {
							Y: U != null && U.p.length != 0 && U.r[U.p[0]].jk() == null
						}
					}
				}, {
					name: [6, 5, 0],
					Y: function (U) {
						return {
							Y: U != null && U.p.length != 0 && U.r[U.p[0]].jk() == null
						}
					}
				}, {
					name: [6, 5, 1],
					Y: function (U) {
						return {
							Y: U != null && U.p.length != 0 && U.r[U.p[0]].jk() == null && U.K != null
						}
					}
				}, {
					name: [6, 5, 2],
					Y: function (U) {
						return {
							Y: U != null && U.p.length != 0 && U.r[U.p[0]].jk() == null && U.K != null
						}
					}
				}, {
					name: [6, 5, 3],
					Y: function (U) {
						return {
							Y: U != null && U.p.length != 0 && U.r[U.p[0]].jk() == null
						}
					},
					aD: !0
				}, {
					name: [5, 4],
					Y: function (U) {
						return {
							Y: U != null && U.p.length != 0 && U.r[U.p[0]].jk() != null
						}
					}
				}, {
					name: [5, 8],
					Y: function (U) {
						return {
							Y: U != null && U.p.length != 0 && U.r[U.p[0]].jk() != null && U.FD(!1, !0)
						}
					}
				}, {
					name: ["VAR0/VAR1", [5, 5],
						[5, 6]
					],
					Y: function (U) {
						return {
							Y: U != null && U.p.length != 0 && U.r[U.p[0]].jk() != null
						}
					}
				}]
			}, {
				name: [6, 3],
				sub: [{
					name: [6, 4],
					Y: function (U) {
						return {
							Y: U != null && U.p.length != 0 && U.r[U.p[0]].add.vmsk == null
						}
					}
				}, {
					name: [6, 5, 0],
					Y: function (U) {
						return {
							Y: U != null && U.p.length != 0 && U.r[U.p[0]].add.vmsk == null
						}
					}
				}, {
					name: "Current Path",
					Y: function (U) {
						return {
							Y: U != null && U.p.length != 0 && U.r[U.p[0]].add.vmsk == null
						}
					},
					aD: !0
				}, {
					name: [5, 4],
					Y: function (U) {
						return {
							Y: U != null && U.p.length != 0 && U.r[U.p[0]].add.vmsk != null
						}
					}
				}, {
					name: ["VAR0/VAR1", [5, 5],
						[5, 6]
					],
					Y: function (U) {
						return {
							Y: U != null && U.p.length != 0 && U.r[U.p[0]].add.vmsk != null
						}
					}
				}]
			}, {
				name: [6, 6, 0],
				n8: [X, P, F.da],
				aD: !0,
				Y: function (U) {
					return {
						Rb: U != null && U.p.length != 0 && U.r[U.p[0]].rd,
						Y: U != null && U.Uu(U.p[0])
					}
				}
			}, {
				name: "Smart Object",
				aD: !0,
				sub: [{
					name: [6, 7]
				}, {
					name: [6, 36, 4],
					Y: y,
					sub: z
				}, {
					name: [1, 0],
					Y: y
				}]
			}, {
				name: [6, 8],
				Y: function (U) {
					if (U == null || U.p.length == 0) return {
						Y: !1
					};
					var v = U.r[U.p[0]];
					if (v.add.TySh || v.add.SoLd || v.add.SoCo || v.add.GdFl || v.add.PtFl) return {
						Y: !0
					};
					return {
						Y: !1
					}
				}
			}, {
				name: [6, 34],
				aD: !0,
				Y: function (U) {
					if (U == null || U.p.length == 0) return {
						Y: !1
					};
					var v = U.r[U.p[0]];
					return {
						Y: v.add.lmfx != null && !v.fO()
					}
				}
			}, {
				name: [6, 9],
				aD: !0,
				n8: [P, F.da]
			}, {
				name: [6, 55],
				aD: !0,
				sub: [{
					name: [6, 56, 0],
					n8: [o, P, F.nH]
				}, {
					name: [6, 56, 1],
					n8: [P, F.nH]
				}, {
					name: [6, 56, 2],
					n8: [P, F.VR]
				}, {
					name: [6, 56, 3],
					n8: [o, P, F.VR]
				}]
			}, {
				name: "Animation",
				sub: [{
					name: [18, 5]
				}]
			}, {
				name: [6, 10],
				Y: function (U) {
					return {
						Y: U != null && U.p.length == 1 && U.p[0] != 0 && !U.r[U.p[0]].fO()
					}
				},
				n8: [P, F.E]
			}, {
				name: [6, 12, 0],
				Y: function (U) {
					return {
						Y: U != null && U.p.length != 0 && (U.p.length > 1 || U.r[U.p[0]].fO())
					}
				}
			}, {
				name: [6, 12, 1]
			}],
			Au: [{
				sub: [{
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.Nm
					}
				}, {
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.QR
					}
				}, {
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.qZ
					}
				}]
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.xm
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "duplinto"
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.R0
				}
			}, {
				sub: il.OS(!0)
			}, {
				sub: [{
					f: i.E.H,
					Q: B.wg,
					o: {
						e: "newfill",
						iy: 0
					}
				}, {
					f: i.E.QJ,
					o: B.sp.XL(1)
				}, {
					f: i.E.QJ,
					o: B.sp.XL(2)
				}]
			}, {
				sub: il.hn()
			}, {
				sub: [{
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.cN,
						wi: "RvlA"
					}
				}, {
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.cN,
						wi: "HdAl"
					}
				}, {
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.cN,
						wi: "RvlS"
					}
				}, {
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.cN,
						wi: "HdSl"
					}
				}, {
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.cN,
						wi: "Trns"
					}
				}, {
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.tN
					}
				}, {
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.rb
					}
				}, {
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.kX
					}
				}]
			}, {
				sub: [{
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.yN,
						afe: !1
					}
				}, {
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.yN,
						afe: !0
					}
				}, {
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.yN,
						agW: !0
					}
				}, {
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.hy
					}
				}, {
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.OT
					}
				}]
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.zO
				}
			}, {
				sub: [{
					f: i.E.QJ,
					o: {
						Bm: "newPlacedLayer"
					}
				}, {
					sub: s
				}, {
					f: i.E.QJ,
					o: {
						Bm: "placedLayerEditContents",
						w1: {
							classID: "placedLayerEditContents"
						}
					}
				}]
			}, {
				f: i.E.QJ,
				o: {
					Bm: "rasterizeLayer",
					w1: {
						classID: "rasterizeLayer",
						null: gY.Pe("Lyr", !0)
					}
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.cl
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.$t
				}
			}, {
				sub: [{
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.Aj,
						mQ: 0
					}
				}, {
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.Aj,
						mQ: 1
					}
				}, {
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.Aj,
						mQ: 2
					}
				}, {
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.Aj,
						mQ: 3
					}
				}]
			}, {
				sub: [{
					f: i.E.H,
					Q: B.xC,
					o: {
						e: h.Hj
					}
				}]
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.SG
				}
			}, {
				f: i.E.H,
				Q: B.xC,
				o: {
					e: h.FI
				}
			}, {
				f: i.E.QJ,
				o: {
					Bm: "flattenImage"
				}
			}]
		}, es.N9(!1), function () {
			var U = {
				name: [0, 6],
				items: [{
					name: [24, 18, 4],
					n8: [X, P, F.EH],
					aD: !0
				}],
				Au: [{
					f: i.E.H,
					Q: B._q,
					o: {
						e: "applylast"
					}
				}]
			};
			for (var w = 0; w < bv.Gw.length; w++) {
				var v = bv.Gw[w];
				if (v.qA != null) {
					U.items.push({
						name: bv.names[v.qA],
						sD: !0,
						aD: v.aD
					});
					U.Au.push({
						f: i.E.H,
						Q: B._q,
						o: {
							e: "start",
							k9: v.qA
						}
					});
					continue
				}
				var A = {
					name: v.ah,
					sub: []
				};
				U.items.push(A);
				var Z = {
					sub: []
				};
				U.Au.push(Z);
				for (var D = 0; D < v.iJ.length; D++) {
					var q = {
						name: bv.names[v.iJ[D]],
						sD: bv.tt(v.iJ[D]) != null
					};
					A.sub.push(q);
					var R = {
						f: i.E.H,
						Q: B._q,
						o: {
							e: "start",
							k9: v.iJ[D]
						}
					};
					Z.sub.push(R)
				}
			}
			return U
		}(), {
			name: [0, 7],
			items: [{
				name: [8, 0],
				n8: [P, F.Kh]
			}, {
				name: [8, 1],
				n8: [P, F.lY]
			}, {
				name: [20, 3],
				n8: [P, F.p4]
			}, {
				name: [20, 2],
				n8: [P, F.Yd],
				aD: !0
			}, {
				name: "Extras",
				n8: [P, F.Fm],
				Y: function (U, v) {
					return {
						Rb: v.IT
					}
				}
			}, {
				name: [8, 12],
				aD: !0,
				sub: [{
					name: [17, 2],
					Y: function (U, v) {
						return {
							Y: v.IT,
							Rb: v.Np.X0
						}
					}
				}, {
					name: [8, 9],
					Y: function (U, v) {
						return {
							Y: v.IT,
							Rb: v.Np.VW
						}
					}
				}, {
					name: [8, 2],
					Y: function (U, v) {
						return {
							Y: v.IT,
							Rb: v.Np.ei
						}
					},
					n8: [P, F.JS]
				}, {
					name: [8, 4],
					Y: function (U, v) {
						return {
							Y: v.IT,
							Rb: v.Np.aG
						}
					},
					n8: [P, F.e7]
				}, {
					name: [8, 8],
					Y: function (U, v) {
						return {
							Y: v.IT,
							Rb: v.Np.M4
						}
					}
				}, {
					name: [8, 11, 0],
					Y: function (U, v) {
						return {
							Y: v.IT,
							Rb: v.Np.P0
						}
					}
				}]
			}, {
				name: [8, 3],
				Y: function (U, v) {
					return {
						Rb: v.bt
					}
				},
				n8: [P, F.YP],
				aD: !0
			}, {
				name: [8, 5],
				Y: function (U, v) {
					return {
						Rb: v.dl
					}
				}
			}, {
				name: [8, 6],
				aD: !0,
				sub: [{
					name: [8, 2],
					Y: function (U, v) {
						return {
							Rb: v.a4[0]
						}
					}
				}, {
					name: [8, 4],
					Y: function (U, v) {
						return {
							Rb: v.a4[1]
						}
					}
				}, {
					name: [8, 11, 0],
					Y: function (U, v) {
						return {
							Rb: v.a4[3]
						}
					}
				}, {
					name: [8, 7],
					Y: function (U, v) {
						return {
							Rb: v.a4[4]
						}
					}
				}]
			}, {
				name: [11, 15, 0],
				Y: function (U, v) {
					return {
						Y: U != null
					}
				}
			}, {
				name: [11, 14],
				Y: function (U, v) {
					return {
						Y: U != null
					}
				},
				sD: !0
			}, {
				name: [11, 15, 1],
				Y: function (U, v) {
					return {
						Y: U != null && U.p.length != 0
					}
				}
			}],
			Au: [{
				f: i.E.H,
				Q: B.QS,
				o: {
					e: "zoom",
					Wu: !0
				}
			}, {
				f: i.E.H,
				Q: B.QS,
				o: {
					e: "zoom",
					Wu: !1
				}
			}, {
				f: i.E.H,
				Q: B.QS,
				o: {
					e: "adapt",
					C: "fitscr"
				}
			}, {
				f: i.E.H,
				Q: B.QS,
				o: {
					e: "adapt",
					C: "pixel"
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.Sl,
					S9: ge.Kw
				}
			}, {
				sub: [{
					f: i.E.L,
					o: {
						e: i.B.Sl,
						S9: ge.KZ
					}
				}, {
					f: i.E.L,
					o: {
						e: i.B.Sl,
						S9: ge.t4
					}
				}, {
					f: i.E.L,
					o: {
						e: i.B.Sl,
						S9: ge.gb
					}
				}, {
					f: i.E.L,
					o: {
						e: i.B.Sl,
						S9: ge.tr
					}
				}, {
					f: i.E.L,
					o: {
						e: i.B.Sl,
						S9: ge.nn
					}
				}, {
					f: i.E.L,
					o: {
						e: i.B.Sl,
						S9: ge.qk
					}
				}]
			}, {
				f: i.E.L,
				o: {
					e: i.B.Sl,
					S9: ge.td
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.Sl,
					S9: ge.$b
				}
			}, {
				sub: [{
					f: i.E.L,
					o: {
						e: i.B.Sl,
						S9: ge.GV,
						AR: 0
					}
				}, {
					f: i.E.L,
					o: {
						e: i.B.Sl,
						S9: ge.GV,
						AR: 1
					}
				}, {
					f: i.E.L,
					o: {
						e: i.B.Sl,
						S9: ge.GV,
						AR: 3
					}
				}, {
					f: i.E.L,
					o: {
						e: i.B.Sl,
						S9: ge.GV,
						AR: 4
					}
				}]
			}, {
				f: i.E.H,
				Q: B.fb,
				o: {
					e: "gids",
					lZ: [
						[],
						[]
					]
				}
			}, {
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "addguides"
				}
			}, {
				f: i.E.H,
				Q: B.fb,
				o: {
					e: "gidsFromLayer"
				}
			}]
		}, function () {
			var U = {
				name: [0, 8],
				items: [{
					name: [0, 14],
					aD: !0,
					sub: []
				}],
				Au: [{
					sub: []
				}]
			};
			for (var w = 0; w < c2.fi.length; w++) {
				var v = c2.fi[w];
				(v.V4 ? U.items[0].sub : U.items).push({
					name: v.Nc.name
				});
				(v.V4 ? U.Au[0].sub : U.Au).push({
					f: i.E.L,
					o: {
						e: i.B.xS,
						W2: v.Nc.tL
					}
				})
			}
			return U
		}(), function () {
			var U = {
					name: [0, 14],
					items: [],
					Au: []
				},
				v = {
					name: [0, 9],
					sub: []
				};
			U.items.push(v);
			var A = {
				sub: []
			};
			U.Au.push(A);
			var Z = h9.akV();
			for (var w = 0; w < Z.length; w++) {
				var D = Z[w],
					q = D.code,
					R = h9.Kr(q);
				v.sub.push({
					name: D.name,
					n8: q,
					Y: function (J, W) {
						return {
							Rb: this.n8 == h9.DE()
						}
					}
				});
				A.sub.push({
					f: i.E.L,
					o: {
						e: i.B.Sl,
						S9: ge.Mu,
						lang: R
					}
				})
			}
			v.sub.push({
				name: [0, 12]
			});
			A.sub.push({
				f: i.E.L,
				o: {
					e: i.B.Xk,
					link: "https://www.photopea.com/translate/"
				}
			});
			var v = {
				name: [0, 15],
				sub: []
			};
			U.items.push(v);
			var A = {
				sub: []
			};
			U.Au.push(A);
			for (var w = 0; w < hw.lB.length; w++) {
				v.sub.push({
					name: hw.lB[w].name,
					Y: function (J, W) {
						return {
							Rb: this.name == hw.lB[W.hb].name
						}
					}
				});
				A.sub.push({
					f: i.E.L,
					o: {
						e: i.B.Sl,
						S9: ge.z_,
						hb: w
					}
				})
			}
			U.items.push({
				name: "Install Photopea",
				Y: function (J, W) {
					return {
						Y: W.lX != null
					}
				}
			});
			U.Au.push({
				f: i.E.L,
				o: {
					e: i.B.ez
				}
			});
			U.items.push({
				name: [11, 13]
			});
			U.Au.push({
				f: i.E.L,
				o: {
					e: i.B.uH,
					W2: "shortcuts"
				}
			});
			U.items.push({
				name: [0, 16],
				Y: function (J) {
					return {
						Rb: k.pQ,
						Y: k.zW
					}
				}
			});
			U.Au.push({
				f: i.E.L,
				o: {
					e: i.B.$R
				}
			});
			return U
		}()]
	}();

	function d7() {
		au.call(this);
		this.u = i.z("div", "");
		this._f = 0;
		this.Hm = 0;
		this.yH = null;
		this.Af = i.z("div", "");
		this.Af.setAttribute("style", "width:200em; height:100em; position:absolute;");
		this.U1 = [];
		this.Cy = []
	}
	d7.prototype = new au;
	d7.prototype.sr = function () {
		this.Cy = [new g1, new c1, new f4, new bz, new eV, new ha, new e0, new gn, new dM, new bG, new ci, new dx, new hg, new i5, new cU, new il, new hD, new aC, new bU, new en, new hU, new eq, new gG, new hm, new ca, new aF, new eh(0), new eh(1), new bK, new ae, new b2, new fh, new a$("border", [7, 9], "px"), new a$("smoothness", [19, 3, 0], "px"), new a$("expand", [7, 4], "px"), new a$("contract", [7, 5], "px"), new a$("feather", [7, 6], "px"), new gl(0, "namewindow", [12, 48]), new gl(1, "cornerradius", [12, 94, 0], !0), new gl(1, "scaleeffects", "Scale Effects", !0)];
		for (var F in f) this.Cy.push(new cY(F));
		for (var w = 0; w < this.Cy.length; w++) {
			var P = this.Cy[w];
			P.$(i.E.Ga, this.uS, this);
			P.parent = this
		}
	};
	d7.prototype.l9 = function (F, P) {
		this._f = F;
		this.Hm = P;
		for (var w = 0; w < this.Cy.length; w++) this.lE(this.Cy[w])
	};
	d7.prototype.t = function () {
		for (var w = 0; w < this.Cy.length; w++) this.Cy[w].t()
	};
	d7.prototype._X = function () {
		return this.U1.length == 0 ? null : this.U1[this.U1.length - 1]
	};
	d7.prototype.go = function () {
		for (var w = 0; w < this.U1.length; w++)
			if (this.U1[w].go()) return !0;
		return !1
	};
	d7.prototype.abG = function (F, P, o, X, Y) {
		if (this.Cy.length == 0) {
			this.sr();
			this.l9(this._f, this.Hm);
			this.t();
			if (this.yH) this.AK(this.yH, ge.oc)
		}
		var y = null;
		if (typeof F == "object") {
			y = F;
			if (!y.IP(i.E.Ga, this.uS)) y.$(i.E.Ga, this.uS, this);
			y.parent = this
		} else
			for (var w = 0; w < this.Cy.length; w++)
				if (this.Cy[w].id == F) y = this.Cy[w];
		if (this.go() && y.go()) {
			alert("Finish the current action first");
			return
		}
		if (!y.K9(P)) return;
		if (this.U1.indexOf(y) != -1) {
			if (F == "colorpicker") y.Vp(P, o, X, Y);
			return
		}
		var z = this.U1.length - 1;
		if (z >= 0) i.KL(this.U1[z].u, "wdisabled");
		this.u.appendChild(y.u);
		this.U1.push(y);
		this.lE(y);
		y.Vp(P, o, X, Y)
	};
	d7.prototype.lE = function (F) {
		var P = this._f,
			o = this.Hm,
			X = F.eL(P, o),
			Y;
		if (X != null) {
			Y = X
		} else {
			X = new aH(0, 0);
			Y = F.a76();
			if (Y == null) {
				var y = this.U1.indexOf(F) + 1;
				if (P < 450 || o < 450) Y = new aH(0, 0);
				else Y = new aH(y * 150, y * 150)
			}
		}
		F.u.style.left = Y.x + "px";
		F.u.style.top = this.u.offsetTop + Y.y + "px";
		F.l9(this._f - X.x * 2, this.Hm - X.y * 2 - 34)
	};
	d7.prototype.AK = function (F, P) {
		this.yH = F;
		for (var w = 0; w < this.Cy.length; w++) this.Cy[w].AK(F, P)
	};
	d7.prototype.uS = function (F) {
		var P = this.U1.pop();
		this.u.removeChild(P.u);
		var o = this.U1.length - 1;
		if (o >= 0) i.sT(this.U1[o].u, "wdisabled");
		if (this.Af.parentNode == this.u) this.u.removeChild(this.Af)
	};
	window.onload = function () {
		var F = new dR;
		window.appEditor=F;appEditor.file = cz;appEditor.image = em;
		window.$BODY.trigger("appLoaded");// add by warlee;
		document.body.appendChild(F.u)
	}
}())