diff --git a/README.md b/README.md
index b8de4b3..dff19ad 100644
--- a/README.md
+++ b/README.md
@@ -10,10 +10,10 @@
-
+
-
+
diff --git a/vendors/color-schema/0.2.3/build/color-schema.json b/vendors/color-schema/0.2.3/build/color-schema.json
new file mode 100644
index 0000000..f09cf48
--- /dev/null
+++ b/vendors/color-schema/0.2.3/build/color-schema.json
@@ -0,0 +1,1056 @@
+{
+ "$ref": "#/definitions/ColorSchema",
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "definitions": {
+ "AssetPack": {
+ "additionalProperties": false,
+ "properties": {
+ "brandName": {
+ "type": "string"
+ },
+ "palettes": {
+ "items": {
+ "$ref": "#/definitions/Palette"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "brandName",
+ "palettes"
+ ],
+ "type": "object"
+ },
+ "CMYKValue": {
+ "additionalProperties": false,
+ "properties": {
+ "c": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "k": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "m": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "c",
+ "m",
+ "y",
+ "k"
+ ],
+ "type": "object"
+ },
+ "CategoricalPalette": {
+ "additionalProperties": false,
+ "properties": {
+ "colorScheme": {
+ "$ref": "#/definitions/ColorSchemeType"
+ },
+ "colors": {
+ "items": {
+ "$ref": "#/definitions/Color"
+ },
+ "type": "array"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "semantic": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "const": "categorical",
+ "type": "string"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "colors",
+ "name",
+ "semantic",
+ "type"
+ ],
+ "type": "object"
+ },
+ "Color": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "hsl",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSLValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "hsv",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSVValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "hsi",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSIValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "rgb",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/RGBValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "rgba",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/RGBAValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "lab",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/LABValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "lch",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/LCHValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "cmyk",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/CMYKValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "ColorSchema": {
+ "$ref": "#/definitions/AssetPack"
+ },
+ "ColorSchemeType": {
+ "enum": [
+ "monochromatic",
+ "complementary",
+ "split-complementary",
+ "achromatic",
+ "analogous",
+ "triadic",
+ "tetradic",
+ "polychromatic",
+ "customized"
+ ],
+ "type": "string"
+ },
+ "ContinuousColor": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "hsl",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSLValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "hsv",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSVValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "hsi",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSIValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "rgb",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/RGBValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "rgba",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/RGBAValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "lab",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/LABValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "lch",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/LCHValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "cmyk",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/CMYKValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "ContinuousScalePalette": {
+ "additionalProperties": false,
+ "properties": {
+ "colorScheme": {
+ "$ref": "#/definitions/ColorSchemeType"
+ },
+ "colors": {
+ "items": {
+ "$ref": "#/definitions/ContinuousColor"
+ },
+ "type": "array"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "semantic": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "const": "continuous-scale",
+ "type": "string"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "colors",
+ "name",
+ "semantic",
+ "type"
+ ],
+ "type": "object"
+ },
+ "DiscreteScalePalette": {
+ "additionalProperties": false,
+ "properties": {
+ "colorScheme": {
+ "$ref": "#/definitions/ColorSchemeType"
+ },
+ "colors": {
+ "items": {
+ "$ref": "#/definitions/Color"
+ },
+ "type": "array"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "semantic": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "const": "discrete-scale",
+ "type": "string"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "colors",
+ "name",
+ "semantic",
+ "type"
+ ],
+ "type": "object"
+ },
+ "HSIValue": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "maximum": 360,
+ "minimum": 0,
+ "type": "number"
+ },
+ "i": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "s": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "h",
+ "s",
+ "i"
+ ],
+ "type": "object"
+ },
+ "HSLValue": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "maximum": 360,
+ "minimum": 0,
+ "type": "number"
+ },
+ "l": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "s": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "h",
+ "s",
+ "l"
+ ],
+ "type": "object"
+ },
+ "HSVValue": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "maximum": 360,
+ "minimum": 0,
+ "type": "number"
+ },
+ "s": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "v": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "h",
+ "s",
+ "v"
+ ],
+ "type": "object"
+ },
+ "LABValue": {
+ "additionalProperties": false,
+ "properties": {
+ "a": {
+ "maximum": 98.254,
+ "minimum": -86.185,
+ "type": "number"
+ },
+ "b": {
+ "maximum": 94.482,
+ "minimum": -107.863,
+ "type": "number"
+ },
+ "l": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "l",
+ "a",
+ "b"
+ ],
+ "type": "object"
+ },
+ "LCHValue": {
+ "additionalProperties": false,
+ "properties": {
+ "c": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ },
+ "h": {
+ "maximum": 360,
+ "minimum": 0,
+ "type": "number"
+ },
+ "l": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "l",
+ "c",
+ "h"
+ ],
+ "type": "object"
+ },
+ "MatrixPalette": {
+ "additionalProperties": false,
+ "properties": {
+ "colorScheme": {
+ "$ref": "#/definitions/ColorSchemeType"
+ },
+ "colors": {
+ "items": {
+ "items": {
+ "$ref": "#/definitions/Color"
+ },
+ "type": "array"
+ },
+ "type": "array"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "origin": {
+ "additionalProperties": false,
+ "properties": {
+ "x": {
+ "items": {
+ "$ref": "#/definitions/Color"
+ },
+ "type": "array"
+ },
+ "y": {
+ "items": {
+ "$ref": "#/definitions/Color"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "x",
+ "y"
+ ],
+ "type": "object"
+ },
+ "semantic": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "const": "matrix",
+ "type": "string"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "colors",
+ "name",
+ "origin",
+ "semantic",
+ "type"
+ ],
+ "type": "object"
+ },
+ "Palette": {
+ "anyOf": [
+ {
+ "$ref": "#/definitions/CategoricalPalette"
+ },
+ {
+ "$ref": "#/definitions/DiscreteScalePalette"
+ },
+ {
+ "$ref": "#/definitions/ContinuousScalePalette"
+ },
+ {
+ "$ref": "#/definitions/MatrixPalette"
+ }
+ ]
+ },
+ "RGBAValue": {
+ "additionalProperties": false,
+ "properties": {
+ "a": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "b": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ },
+ "g": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ },
+ "r": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "r",
+ "g",
+ "b",
+ "a"
+ ],
+ "type": "object"
+ },
+ "RGBValue": {
+ "additionalProperties": false,
+ "properties": {
+ "b": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ },
+ "g": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ },
+ "r": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "r",
+ "g",
+ "b"
+ ],
+ "type": "object"
+ },
+ "Undertone": {
+ "enum": [
+ "warm",
+ "neutral",
+ "cool"
+ ],
+ "type": "string"
+ }
+ }
+}
diff --git a/vendors/color-schema/0.2.3/esm/__tests__/generated.test.d.ts b/vendors/color-schema/0.2.3/esm/__tests__/generated.test.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/__tests__/generated.test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/vendors/color-schema/0.2.3/esm/__tests__/generated.test.js b/vendors/color-schema/0.2.3/esm/__tests__/generated.test.js
new file mode 100644
index 0000000..d9fcdc1
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/__tests__/generated.test.js
@@ -0,0 +1,23 @@
+import Ajv from 'ajv';
+import { matchersWithOptions } from 'jest-json-schema';
+import colorSchema from '../build/color-schema.json';
+import classic from '../examples/classic.json';
+expect.extend(matchersWithOptions({
+ schemas: [colorSchema],
+}));
+const colorAssets = classic;
+describe('test', () => {
+ test('schema itself is valid', () => {
+ expect(colorSchema).toBeValidSchema();
+ });
+ it('schema validate', () => {
+ // by jest-json-schema (powered by ajv)
+ expect(colorAssets).toMatchSchema(colorSchema);
+ // by ajv
+ const ajv = new Ajv();
+ const validate = ajv.compile(colorSchema);
+ const valid = validate(colorAssets);
+ expect(valid).toBe(true);
+ });
+});
+//# sourceMappingURL=generated.test.js.map
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/esm/__tests__/generated.test.js.map b/vendors/color-schema/0.2.3/esm/__tests__/generated.test.js.map
new file mode 100644
index 0000000..55a8d07
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/__tests__/generated.test.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"generated.test.js","sourceRoot":"src/","sources":["__tests__/generated.test.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,OAAO,MAAM,0BAA0B,CAAC;AAE/C,MAAM,CAAC,MAAM,CACX,mBAAmB,CAAC;IAClB,OAAO,EAAE,CAAC,WAAW,CAAC;CACvB,CAAC,CACH,CAAC;AAEF,MAAM,WAAW,GAAG,OAAO,CAAC;AAE5B,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,uCAAuC;QACvC,MAAM,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAE/C,SAAS;QACT,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/esm/__tests__/index.test.d.ts b/vendors/color-schema/0.2.3/esm/__tests__/index.test.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/__tests__/index.test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/vendors/color-schema/0.2.3/esm/__tests__/index.test.js b/vendors/color-schema/0.2.3/esm/__tests__/index.test.js
new file mode 100644
index 0000000..ee402c0
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/__tests__/index.test.js
@@ -0,0 +1,24 @@
+// import * as colorSchema from "../hand-made-schema.json";
+import Ajv from 'ajv';
+import { matchersWithOptions } from 'jest-json-schema';
+import * as colorSchema from '../build/color-schema.json';
+import classic from '../examples/classic.json';
+expect.extend(matchersWithOptions({
+ schemas: [colorSchema],
+}));
+const colorAssets = classic;
+describe('test', () => {
+ test('schema itself is valid', () => {
+ expect(colorSchema).toBeValidSchema();
+ });
+ it('schema validate', () => {
+ // by jest-json-schema (powered by ajv)
+ expect(colorAssets).toMatchSchema(colorSchema);
+ // by ajv
+ const ajv = new Ajv();
+ const validate = ajv.compile(colorSchema);
+ const valid = validate(colorAssets);
+ expect(valid).toBe(true);
+ });
+});
+//# sourceMappingURL=index.test.js.map
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/esm/__tests__/index.test.js.map b/vendors/color-schema/0.2.3/esm/__tests__/index.test.js.map
new file mode 100644
index 0000000..471b48f
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/__tests__/index.test.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.test.js","sourceRoot":"src/","sources":["__tests__/index.test.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,WAAW,MAAM,4BAA4B,CAAC;AAC1D,OAAO,OAAO,MAAM,0BAA0B,CAAC;AAE/C,MAAM,CAAC,MAAM,CACX,mBAAmB,CAAC;IAClB,OAAO,EAAE,CAAC,WAAW,CAAC;CACvB,CAAC,CACH,CAAC;AAEF,MAAM,WAAW,GAAG,OAAO,CAAC;AAE5B,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,uCAAuC;QACvC,MAAM,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAE/C,SAAS;QACT,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/esm/build/color-schema.json b/vendors/color-schema/0.2.3/esm/build/color-schema.json
new file mode 100644
index 0000000..fa6f023
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/build/color-schema.json
@@ -0,0 +1,1056 @@
+{
+ "$ref": "#/definitions/ColorSchema",
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "definitions": {
+ "AssetPack": {
+ "additionalProperties": false,
+ "properties": {
+ "brandName": {
+ "type": "string"
+ },
+ "palettes": {
+ "items": {
+ "$ref": "#/definitions/Palette"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "brandName",
+ "palettes"
+ ],
+ "type": "object"
+ },
+ "CMYKValue": {
+ "additionalProperties": false,
+ "properties": {
+ "c": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "k": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "m": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "c",
+ "m",
+ "y",
+ "k"
+ ],
+ "type": "object"
+ },
+ "CategoricalPalette": {
+ "additionalProperties": false,
+ "properties": {
+ "colorScheme": {
+ "$ref": "#/definitions/ColorSchemeType"
+ },
+ "colors": {
+ "items": {
+ "$ref": "#/definitions/Color"
+ },
+ "type": "array"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "semantic": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "const": "categorical",
+ "type": "string"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "colors",
+ "name",
+ "semantic",
+ "type"
+ ],
+ "type": "object"
+ },
+ "Color": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "hsl",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSLValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "hsv",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSVValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "hsi",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSIValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "rgb",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/RGBValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "rgba",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/RGBAValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "lab",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/LABValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "lch",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/LCHValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "cmyk",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/CMYKValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "ColorSchema": {
+ "$ref": "#/definitions/AssetPack"
+ },
+ "ColorSchemeType": {
+ "enum": [
+ "monochromatic",
+ "complementary",
+ "split-complementary",
+ "achromatic",
+ "analogous",
+ "triadic",
+ "tetradic",
+ "polychromatic",
+ "customized"
+ ],
+ "type": "string"
+ },
+ "ContinuousColor": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "hsl",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSLValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "hsv",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSVValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "hsi",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSIValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "rgb",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/RGBValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "rgba",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/RGBAValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "lab",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/LABValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "lch",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/LCHValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "cmyk",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/CMYKValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "ContinuousScalePalette": {
+ "additionalProperties": false,
+ "properties": {
+ "colorScheme": {
+ "$ref": "#/definitions/ColorSchemeType"
+ },
+ "colors": {
+ "items": {
+ "$ref": "#/definitions/ContinuousColor"
+ },
+ "type": "array"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "semantic": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "const": "continuous-scale",
+ "type": "string"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "colors",
+ "name",
+ "semantic",
+ "type"
+ ],
+ "type": "object"
+ },
+ "DiscreteScalePalette": {
+ "additionalProperties": false,
+ "properties": {
+ "colorScheme": {
+ "$ref": "#/definitions/ColorSchemeType"
+ },
+ "colors": {
+ "items": {
+ "$ref": "#/definitions/Color"
+ },
+ "type": "array"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "semantic": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "const": "discrete-scale",
+ "type": "string"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "colors",
+ "name",
+ "semantic",
+ "type"
+ ],
+ "type": "object"
+ },
+ "HSIValue": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "maximum": 360,
+ "minimum": 0,
+ "type": "number"
+ },
+ "i": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "s": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "h",
+ "s",
+ "i"
+ ],
+ "type": "object"
+ },
+ "HSLValue": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "maximum": 360,
+ "minimum": 0,
+ "type": "number"
+ },
+ "l": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "s": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "h",
+ "s",
+ "l"
+ ],
+ "type": "object"
+ },
+ "HSVValue": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "maximum": 360,
+ "minimum": 0,
+ "type": "number"
+ },
+ "s": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "v": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "h",
+ "s",
+ "v"
+ ],
+ "type": "object"
+ },
+ "LABValue": {
+ "additionalProperties": false,
+ "properties": {
+ "a": {
+ "maximum": 98.254,
+ "minimum": -86.185,
+ "type": "number"
+ },
+ "b": {
+ "maximum": 94.482,
+ "minimum": -107.863,
+ "type": "number"
+ },
+ "l": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "l",
+ "a",
+ "b"
+ ],
+ "type": "object"
+ },
+ "LCHValue": {
+ "additionalProperties": false,
+ "properties": {
+ "c": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ },
+ "h": {
+ "maximum": 360,
+ "minimum": 0,
+ "type": "number"
+ },
+ "l": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "l",
+ "c",
+ "h"
+ ],
+ "type": "object"
+ },
+ "MatrixPalette": {
+ "additionalProperties": false,
+ "properties": {
+ "colorScheme": {
+ "$ref": "#/definitions/ColorSchemeType"
+ },
+ "colors": {
+ "items": {
+ "items": {
+ "$ref": "#/definitions/Color"
+ },
+ "type": "array"
+ },
+ "type": "array"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "origin": {
+ "additionalProperties": false,
+ "properties": {
+ "x": {
+ "items": {
+ "$ref": "#/definitions/Color"
+ },
+ "type": "array"
+ },
+ "y": {
+ "items": {
+ "$ref": "#/definitions/Color"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "x",
+ "y"
+ ],
+ "type": "object"
+ },
+ "semantic": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "const": "matrix",
+ "type": "string"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "colors",
+ "name",
+ "origin",
+ "semantic",
+ "type"
+ ],
+ "type": "object"
+ },
+ "Palette": {
+ "anyOf": [
+ {
+ "$ref": "#/definitions/CategoricalPalette"
+ },
+ {
+ "$ref": "#/definitions/DiscreteScalePalette"
+ },
+ {
+ "$ref": "#/definitions/ContinuousScalePalette"
+ },
+ {
+ "$ref": "#/definitions/MatrixPalette"
+ }
+ ]
+ },
+ "RGBAValue": {
+ "additionalProperties": false,
+ "properties": {
+ "a": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "b": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ },
+ "g": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ },
+ "r": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "r",
+ "g",
+ "b",
+ "a"
+ ],
+ "type": "object"
+ },
+ "RGBValue": {
+ "additionalProperties": false,
+ "properties": {
+ "b": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ },
+ "g": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ },
+ "r": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "r",
+ "g",
+ "b"
+ ],
+ "type": "object"
+ },
+ "Undertone": {
+ "enum": [
+ "warm",
+ "neutral",
+ "cool"
+ ],
+ "type": "string"
+ }
+ }
+}
diff --git a/vendors/color-schema/0.2.3/esm/examples/classic.json b/vendors/color-schema/0.2.3/esm/examples/classic.json
new file mode 100644
index 0000000..9cf335e
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/examples/classic.json
@@ -0,0 +1,137 @@
+{
+ "brandName": "antd",
+ "palettes": [
+ {
+ "name": "trinity",
+ "semantic": "three",
+ "type": "categorical",
+ "colors": [
+ {
+ "model": "rgb",
+ "value": { "r": 255, "g": 0, "b": 0 },
+ "name": "red",
+ "undertone": "warm",
+ "usage": ["danger", "apple"]
+ },
+ {
+ "model": "rgb",
+ "value": { "r": 0, "g": 255, "b": 0 },
+ "name": "green",
+ "undertone": "neutral"
+ },
+ {
+ "model": "rgb",
+ "value": { "r": 0, "g": 0, "b": 255 },
+ "name": "blue",
+ "undertone": "cool"
+ }
+ ],
+ "usage": ["highlight"]
+ },
+ {
+ "name": "scale1",
+ "semantic": "passional",
+ "type": "discrete-scale",
+ "colors": [
+ { "model": "rgb", "value": { "r": 255, "g": 247, "b": 236 } },
+ { "model": "rgb", "value": { "r": 253, "g": 212, "b": 158 } },
+ { "model": "rgb", "value": { "r": 252, "g": 141, "b": 89 } },
+ { "model": "rgb", "value": { "r": 215, "g": 48, "b": 31 } },
+ { "model": "rgb", "value": { "r": 127, "g": 0, "b": 0 } }
+ ],
+ "usage": ["visualization"]
+ },
+ {
+ "name": "Leaf Yellow",
+ "semantic": "tranquil",
+ "type": "discrete-scale",
+ "description": "Colors of leaves in different seasons.",
+ "colors": [
+ { "model": "rgb", "value": { "r": 255, "g": 235, "b": 176 } },
+ { "model": "rgb", "value": { "r": 255, "g": 223, "b": 128 } },
+ { "model": "rgb", "value": { "r": 250, "g": 202, "b": 62 } },
+ { "model": "rgb", "value": { "r": 230, "g": 184, "b": 1 } },
+ { "model": "rgb", "value": { "r": 181, "g": 172, "b": 35 } },
+ { "model": "rgb", "value": { "r": 106, "g": 154, "b": 72 } },
+ { "model": "rgb", "value": { "r": 32, "g": 135, "b": 107 } },
+ { "model": "rgb", "value": { "r": 6, "g": 116, "b": 107 } },
+ { "model": "rgb", "value": { "r": 4, "g": 78, "b": 72 } }
+ ]
+ },
+ {
+ "name": "scale3",
+ "semantic": "passional",
+ "type": "continuous-scale",
+ "colors": [
+ { "model": "rgb", "value": { "r": 255, "g": 247, "b": 236 }, "location": 0 },
+ { "model": "rgb", "value": { "r": 252, "g": 141, "b": 89 }, "location": 0.2 },
+ { "model": "rgb", "value": { "r": 127, "g": 0, "b": 0 }, "location": 1 }
+ ]
+ },
+ {
+ "name": "Matrix",
+ "semantic": "mysterious",
+ "type": "matrix",
+ "colors": [
+ [{
+ "model": "rgb",
+ "value": { "r": 139, "g": 89, "b": 255 }
+ },
+ {
+ "model": "rgb",
+ "value": { "r": 103, "g": 82, "b": 255 }
+ },
+ {
+ "model": "rgb",
+ "value": { "r": 20, "g": 68, "b": 237 }
+ }],
+ [{
+ "model": "rgb",
+ "value": { "r": 183, "g": 141, "b": 255 }
+ }, {
+ "model": "rgb",
+ "value": { "r": 136, "g": 129, "b": 255 }
+ }, {
+ "model": "rgb",
+ "value": { "r": 27, "g": 107, "b": 237 }
+ }],
+ [{
+ "model": "rgb",
+ "value": { "r": 215, "g": 209, "b": 255 }
+ }, {
+ "model": "rgb",
+ "value": { "r": 160, "g": 191, "b": 255 }
+ }, {
+ "model": "rgb",
+ "value": { "r": 32, "g": 159, "b": 237 }
+ }]
+ ],
+ "origin": {
+ "x": [{
+ "model": "rgb",
+ "value": { "r": 215, "g": 209, "b": 255 }
+ },
+ {
+ "model": "rgb",
+ "value": { "r": 160, "g": 191, "b": 255 }
+ },
+ {
+ "model": "rgb",
+ "value": { "r": 32, "g": 159, "b": 237 }
+ }],
+ "y": [{
+ "model": "rgb",
+ "value": { "r": 215, "g": 209, "b": 255 }
+ },
+ {
+ "model": "rgb",
+ "value": { "r": 183, "g": 141, "b": 255 }
+ },
+ {
+ "model": "rgb",
+ "value": { "r": 139, "g": 89, "b": 255 }
+ }]
+ }
+ }
+ ]
+}
diff --git a/vendors/color-schema/0.2.3/esm/package.json b/vendors/color-schema/0.2.3/esm/package.json
new file mode 100644
index 0000000..d7050b2
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/package.json
@@ -0,0 +1,111 @@
+{
+ "name": "@antv/color-schema",
+ "version": "0.2.3",
+ "description": "JSON Schema for Color Palette",
+ "main": "lib/src/index.js",
+ "types": "lib/src/index.d.ts",
+ "unpkg": "dist/index.min.js",
+ "module": "esm/src/index.js",
+ "files": [
+ "src",
+ "esm",
+ "lib",
+ "build"
+ ],
+ "scripts": {
+ "clean": "rimraf lib esm dist",
+ "lint-staged": "lint-staged",
+ "size": "limit-size",
+ "format": "prettier --write \"src/**/*.ts\" \"__tests__/**/*.ts\" \"demo/**/*.{ts,tsx}\"",
+ "format-check": " prettier ./src/**/*.ts ./__tests__/**/*.ts ./demo/**/*.{ts,tsx} --check",
+ "lint": "eslint ./src/**/*.ts ./__tests__/**/*.ts ./demo/**/*.{ts,tsx} && npm run format-check",
+ "fix": "eslint ./src/**/*.ts ./__tests__/**/*.ts ./demo/**/*.{ts,tsx} --fix && npm run format",
+ "test": "jest",
+ "build:umd": "rimraf ./dist && rollup -c && npm run size",
+ "build:cjs": "rimraf ./lib && tsc --module commonjs --outDir lib",
+ "build:esm": "rimraf ./esm && tsc --module ESNext --outDir esm",
+ "build": "run-p build:*",
+ "schema": "mkdir -p build && ts-json-schema-generator -f tsconfig.json -p src/index.ts -t ColorSchema --no-type-check --no-ref-encode > build/color-schema.json",
+ "ci": "run-s lint test build schema",
+ "prepublishOnly": "npm run ci",
+ "prepare": "husky install",
+ "setup:demo": "cd demo && npm install --package-lock=false",
+ "start:demo": "npm run setup:demo && cd demo && npm start",
+ "deploy:site": "cd demo && npm run deploy:site",
+ "preversion": "npm run lint",
+ "version": "npm run format && git add -A src",
+ "postversion": "git push && git push --tags",
+ "one-stop-setup": "npm install --package-lock=false && run-s build setup:demo"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/antvis/color-schema.git"
+ },
+ "author": {
+ "name": "AntV",
+ "url": "https://antv.vision/"
+ },
+ "license": "MIT",
+ "homepage": "https://antvis.github.io/color-schema",
+ "publishConfig": {
+ "access": "public"
+ },
+ "bugs": {
+ "url": "https://github.com/antvis/color-schema/issues"
+ },
+ "dependencies": {
+ "@types/chroma-js": "^2.1.3"
+ },
+ "devDependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@commitlint/cli": "^12.1.4",
+ "@commitlint/config-conventional": "^12.1.4",
+ "@rollup/plugin-commonjs": "^21.0.1",
+ "@rollup/plugin-node-resolve": "^13.0.0",
+ "@rollup/plugin-typescript": "^8.2.1",
+ "@types/jest": "^26.0.22",
+ "@types/jest-json-schema": "^2.1.3",
+ "@typescript-eslint/eslint-plugin": "^4.28.3",
+ "@typescript-eslint/parser": "^4.28.3",
+ "ajv": "^8.0.4",
+ "chroma-js": "^2.1.1",
+ "eslint": "^7.29.0",
+ "eslint-config-airbnb": "^18.2.1",
+ "eslint-config-prettier": "^8.3.0",
+ "eslint-import-resolver-typescript": "^2.4.0",
+ "eslint-plugin-import": "^2.23.4",
+ "eslint-plugin-prettier": "^3.4.0",
+ "eslint-plugin-react": "^7.24.0",
+ "husky": "^7.0.1",
+ "jest": "^26.6.3",
+ "jest-json-schema": "^5.0.0",
+ "limit-size": "^0.1.4",
+ "lint-staged": "^11.0.1",
+ "npm-run-all": "^4.1.5",
+ "prettier": "^2.3.0",
+ "rimraf": "^3.0.2",
+ "rollup": "^2.53.1",
+ "rollup-plugin-terser": "^7.0.2",
+ "ts-jest": "^26.5.4",
+ "ts-json-schema-generator": "^0.89.2",
+ "typescript": "^4.2.4"
+ },
+ "lint-staged": {
+ "*.{ts,tsx}": [
+ "eslint --fix",
+ "prettier --write",
+ "git add"
+ ]
+ },
+ "limit-size": [
+ {
+ "path": "dist/index.min.js",
+ "limit": "8 Kb",
+ "gzip": true
+ },
+ {
+ "path": "dist/index.min.js",
+ "limit": "24 Kb"
+ }
+ ]
+}
diff --git a/vendors/color-schema/0.2.3/esm/src/index.d.ts b/vendors/color-schema/0.2.3/esm/src/index.d.ts
new file mode 100644
index 0000000..48252c7
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/index.d.ts
@@ -0,0 +1,2 @@
+export declare const version: string;
+export * from './schema';
diff --git a/vendors/color-schema/0.2.3/esm/src/index.js b/vendors/color-schema/0.2.3/esm/src/index.js
new file mode 100644
index 0000000..ea77669
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/index.js
@@ -0,0 +1,4 @@
+import pkg from '../package.json';
+export const version = pkg.version;
+export * from './schema';
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/esm/src/index.js.map b/vendors/color-schema/0.2.3/esm/src/index.js.map
new file mode 100644
index 0000000..d9b2a90
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["src/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAClC,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;AAEnC,cAAc,UAAU,CAAC"}
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/esm/src/schema/assetPack.d.ts b/vendors/color-schema/0.2.3/esm/src/schema/assetPack.d.ts
new file mode 100644
index 0000000..fc4750b
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/schema/assetPack.d.ts
@@ -0,0 +1,5 @@
+import { Palette } from './palette';
+export interface AssetPack {
+ brandName: string;
+ palettes: Palette[];
+}
diff --git a/vendors/color-schema/0.2.3/esm/src/schema/assetPack.js b/vendors/color-schema/0.2.3/esm/src/schema/assetPack.js
new file mode 100644
index 0000000..9f21fd9
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/schema/assetPack.js
@@ -0,0 +1,2 @@
+export {};
+//# sourceMappingURL=assetPack.js.map
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/esm/src/schema/assetPack.js.map b/vendors/color-schema/0.2.3/esm/src/schema/assetPack.js.map
new file mode 100644
index 0000000..f5c7107
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/schema/assetPack.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"assetPack.js","sourceRoot":"src/","sources":["src/schema/assetPack.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/esm/src/schema/color.d.ts b/vendors/color-schema/0.2.3/esm/src/schema/color.d.ts
new file mode 100644
index 0000000..b33c170
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/schema/color.d.ts
@@ -0,0 +1,17 @@
+import { ColorValue } from './colorValue';
+export declare type Undertone = 'warm' | 'neutral' | 'cool';
+export interface ColorBaseInfo {
+ id?: string;
+ name?: string;
+ undertone?: Undertone;
+ usage?: string[];
+}
+export declare type Color = ColorBaseInfo & ColorValue;
+export declare type ContinuousColor = Color & {
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ location?: number;
+};
+export declare function colorToHex(color: Color): string;
diff --git a/vendors/color-schema/0.2.3/esm/src/schema/color.js b/vendors/color-schema/0.2.3/esm/src/schema/color.js
new file mode 100644
index 0000000..746a26f
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/schema/color.js
@@ -0,0 +1,15 @@
+import chroma from 'chroma-js';
+const isChromaColor = (color) => {
+ if (chroma.valid(color)) {
+ return true;
+ }
+ return false;
+};
+export function colorToHex(color) {
+ const { value } = color;
+ if (isChromaColor(value)) {
+ return chroma(value).hex();
+ }
+ return '';
+}
+//# sourceMappingURL=color.js.map
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/esm/src/schema/color.js.map b/vendors/color-schema/0.2.3/esm/src/schema/color.js.map
new file mode 100644
index 0000000..ceba8a3
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/schema/color.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"color.js","sourceRoot":"src/","sources":["src/schema/color.ts"],"names":[],"mappings":"AAAA,OAAO,MAAgC,MAAM,WAAW,CAAC;AAsBzD,MAAM,aAAa,GAAG,CAAC,KAAU,EAAwB,EAAE;IACzD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,KAAY;IACrC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAExB,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;KAC5B;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/esm/src/schema/colorValue.d.ts b/vendors/color-schema/0.2.3/esm/src/schema/colorValue.d.ts
new file mode 100644
index 0000000..e7f6238
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/schema/colorValue.d.ts
@@ -0,0 +1,195 @@
+export declare type ColorModel = 'hsl' | 'hsv' | 'hsi' | 'rgb' | 'rgba' | 'lab' | 'lch' | 'cmyk';
+export interface HSLValue {
+ /**
+ * @minimum 0
+ * @maximum 360
+ */
+ h: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ s: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ l: number;
+}
+declare type range = [number, number];
+export declare const HSLValueRange: Record;
+export interface HSLColor {
+ model: 'hsl';
+ value: HSLValue;
+}
+export interface HSVValue {
+ /**
+ * @minimum 0
+ * @maximum 360
+ */
+ h: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ s: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ v: number;
+}
+export declare const HSVValueRange: Record;
+export interface HSVColor {
+ model: 'hsv';
+ value: HSVValue;
+}
+export interface HSIValue {
+ /**
+ * @minimum 0
+ * @maximum 360
+ */
+ h: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ s: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ i: number;
+}
+export declare const HSIValueRange: Record;
+export interface HSIColor {
+ model: 'hsi';
+ value: HSIValue;
+}
+export interface RGBValue {
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ r: number;
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ g: number;
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ b: number;
+}
+export declare const RGBValueRange: Record;
+export interface RGBColor {
+ model: 'rgb';
+ value: RGBValue;
+}
+export interface RGBAValue {
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ r: number;
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ g: number;
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ b: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ a: number;
+}
+export declare const RGBAValueRange: Record;
+export interface RGBAColor {
+ model: 'rgba';
+ value: RGBAValue;
+}
+export interface LABValue {
+ /**
+ * @minimum 0
+ * @maximum 100
+ */
+ l: number;
+ /**
+ * @minimum -86.185
+ * @maximum 98.254
+ */
+ a: number;
+ /**
+ * @minimum -107.863
+ * @maximum 94.482
+ */
+ b: number;
+}
+export declare const LABRange: Record;
+export interface LABColor {
+ model: 'lab';
+ value: LABValue;
+}
+export interface LCHValue {
+ /**
+ * @minimum 0
+ * @maximum 100
+ */
+ l: number;
+ /**
+ * @minimum 0
+ * @maximum 100
+ */
+ c: number;
+ /**
+ * @minimum 0
+ * @maximum 360
+ */
+ h: number;
+}
+export declare const LCHRange: Record;
+export interface LCHColor {
+ model: 'lch';
+ value: LCHValue;
+}
+export interface CMYKValue {
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ c: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ m: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ y: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ k: number;
+}
+export declare const CMYKRange: Record;
+export interface CMYKColor {
+ model: 'cmyk';
+ value: CMYKValue;
+}
+interface ColorModelInfo {
+ [key: string]: range;
+}
+export declare const ColorModelRange: Record;
+export declare function isColorValue(colorValue: ColorValue): colorValue is ColorValue;
+export declare type ColorValue = HSLColor | HSVColor | HSIColor | RGBColor | RGBAColor | LABColor | LCHColor | CMYKColor;
+export {};
diff --git a/vendors/color-schema/0.2.3/esm/src/schema/colorValue.js b/vendors/color-schema/0.2.3/esm/src/schema/colorValue.js
new file mode 100644
index 0000000..8d24aa0
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/schema/colorValue.js
@@ -0,0 +1,59 @@
+export const HSLValueRange = {
+ h: [0, 360],
+ s: [0, 1],
+ l: [0, 1],
+};
+export const HSVValueRange = {
+ h: [0, 360],
+ s: [0, 1],
+ v: [0, 1],
+};
+export const HSIValueRange = {
+ h: [0, 360],
+ s: [0, 1],
+ i: [0, 1],
+};
+export const RGBValueRange = {
+ r: [0, 255],
+ g: [0, 255],
+ b: [0, 255],
+};
+export const RGBAValueRange = {
+ r: [0, 255],
+ g: [0, 255],
+ b: [0, 255],
+ a: [0, 1],
+};
+export const LABRange = {
+ l: [0, 100],
+ a: [-86.185, 98.254],
+ b: [-107.863, 94.482],
+};
+export const LCHRange = {
+ l: [0, 100],
+ c: [0, 100],
+ h: [0, 360],
+};
+export const CMYKRange = {
+ c: [0, 1],
+ m: [0, 1],
+ y: [0, 1],
+ k: [0, 1],
+};
+export const ColorModelRange = {
+ lab: LABRange,
+ lch: LCHRange,
+ rgb: RGBValueRange,
+ rgba: RGBAValueRange,
+ hsl: HSLValueRange,
+ hsv: HSVValueRange,
+ hsi: HSIValueRange,
+ cmyk: CMYKRange,
+};
+export function isColorValue(colorValue) {
+ const { model, value } = colorValue;
+ const colorModelRange = ColorModelRange[model];
+ return (Object.keys(value).sort().join(',') === Object.keys(colorModelRange).sort().join(',') &&
+ Object.entries(value).every(([key, v]) => v >= colorModelRange[key][0] && v <= colorModelRange[key][1]));
+}
+//# sourceMappingURL=colorValue.js.map
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/esm/src/schema/colorValue.js.map b/vendors/color-schema/0.2.3/esm/src/schema/colorValue.js.map
new file mode 100644
index 0000000..a5be2e3
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/schema/colorValue.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"colorValue.js","sourceRoot":"src/","sources":["src/schema/colorValue.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/esm/src/schema/index.d.ts b/vendors/color-schema/0.2.3/esm/src/schema/index.d.ts
new file mode 100644
index 0000000..41d662f
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/schema/index.d.ts
@@ -0,0 +1,5 @@
+import { AssetPack } from './assetPack';
+export declare type ColorSchema = AssetPack;
+export * from './palette';
+export * from './color';
+export * from './colorValue';
diff --git a/vendors/color-schema/0.2.3/esm/src/schema/index.js b/vendors/color-schema/0.2.3/esm/src/schema/index.js
new file mode 100644
index 0000000..20d502e
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/schema/index.js
@@ -0,0 +1,4 @@
+export * from './palette';
+export * from './color';
+export * from './colorValue';
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/esm/src/schema/index.js.map b/vendors/color-schema/0.2.3/esm/src/schema/index.js.map
new file mode 100644
index 0000000..75fac63
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/schema/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["src/schema/index.ts"],"names":[],"mappings":"AAIA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/esm/src/schema/palette.d.ts b/vendors/color-schema/0.2.3/esm/src/schema/palette.d.ts
new file mode 100644
index 0000000..50bb296
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/schema/palette.d.ts
@@ -0,0 +1,36 @@
+import { Color, ContinuousColor } from './color';
+export declare type ColorSchemeType = 'monochromatic' | 'complementary' | 'split-complementary' | 'achromatic' | 'analogous' | 'triadic' | 'tetradic' | 'polychromatic' | 'customized';
+export interface PaletteBaseInfo {
+ id?: string;
+ name: string;
+ semantic: string | null;
+ description?: string;
+ colorScheme?: ColorSchemeType;
+ usage?: string[];
+}
+export declare type PaletteType = 'categorical' | 'discrete-scale' | 'continuous-scale' | 'matrix';
+export declare type CategoricalPalette = PaletteBaseInfo & {
+ type: 'categorical';
+ colors: Color[];
+};
+export declare type DiscreteScalePalette = PaletteBaseInfo & {
+ type: 'discrete-scale';
+ colors: Color[];
+};
+export declare type ContinuousScalePalette = PaletteBaseInfo & {
+ type: 'continuous-scale';
+ colors: ContinuousColor[];
+};
+export declare type MatrixPalette = PaletteBaseInfo & {
+ type: 'matrix';
+ colors: Color[][];
+ origin: {
+ x: Color[];
+ y: Color[];
+ };
+};
+export declare function isCategoricalPalette(palette: Palette): palette is CategoricalPalette;
+export declare function isDiscreteScalePalette(palette: Palette): palette is DiscreteScalePalette;
+export declare function isContinuousPalette(palette: Palette): palette is ContinuousScalePalette;
+export declare function isMatrixPalette(palette: Palette): palette is MatrixPalette;
+export declare type Palette = CategoricalPalette | DiscreteScalePalette | ContinuousScalePalette | MatrixPalette;
diff --git a/vendors/color-schema/0.2.3/esm/src/schema/palette.js b/vendors/color-schema/0.2.3/esm/src/schema/palette.js
new file mode 100644
index 0000000..fb0e008
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/schema/palette.js
@@ -0,0 +1,21 @@
+export function isCategoricalPalette(palette) {
+ if (palette.type === 'categorical')
+ return true;
+ return false;
+}
+export function isDiscreteScalePalette(palette) {
+ if (palette.type === 'discrete-scale')
+ return true;
+ return false;
+}
+export function isContinuousPalette(palette) {
+ if (palette.type === 'continuous-scale')
+ return true;
+ return false;
+}
+export function isMatrixPalette(palette) {
+ if (palette.type === 'matrix')
+ return true;
+ return false;
+}
+//# sourceMappingURL=palette.js.map
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/esm/src/schema/palette.js.map b/vendors/color-schema/0.2.3/esm/src/schema/palette.js.map
new file mode 100644
index 0000000..84b67bc
--- /dev/null
+++ b/vendors/color-schema/0.2.3/esm/src/schema/palette.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"palette.js","sourceRoot":"src/","sources":["src/schema/palette.ts"],"names":[],"mappings":"AAgDA,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,IAAI,CAAC;IACnD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB;QAAE,OAAO,IAAI,CAAC;IACrD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,KAAK,CAAC;AACf,CAAC"}
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/lib/__tests__/generated.test.d.ts b/vendors/color-schema/0.2.3/lib/__tests__/generated.test.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/__tests__/generated.test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/vendors/color-schema/0.2.3/lib/__tests__/generated.test.js b/vendors/color-schema/0.2.3/lib/__tests__/generated.test.js
new file mode 100644
index 0000000..21f05a3
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/__tests__/generated.test.js
@@ -0,0 +1,26 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const tslib_1 = require("tslib");
+const ajv_1 = (0, tslib_1.__importDefault)(require("ajv"));
+const jest_json_schema_1 = require("jest-json-schema");
+const color_schema_json_1 = (0, tslib_1.__importDefault)(require("../build/color-schema.json"));
+const classic_json_1 = (0, tslib_1.__importDefault)(require("../examples/classic.json"));
+expect.extend((0, jest_json_schema_1.matchersWithOptions)({
+ schemas: [color_schema_json_1.default],
+}));
+const colorAssets = classic_json_1.default;
+describe('test', () => {
+ test('schema itself is valid', () => {
+ expect(color_schema_json_1.default).toBeValidSchema();
+ });
+ it('schema validate', () => {
+ // by jest-json-schema (powered by ajv)
+ expect(colorAssets).toMatchSchema(color_schema_json_1.default);
+ // by ajv
+ const ajv = new ajv_1.default();
+ const validate = ajv.compile(color_schema_json_1.default);
+ const valid = validate(colorAssets);
+ expect(valid).toBe(true);
+ });
+});
+//# sourceMappingURL=generated.test.js.map
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/lib/__tests__/generated.test.js.map b/vendors/color-schema/0.2.3/lib/__tests__/generated.test.js.map
new file mode 100644
index 0000000..7f7e7c5
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/__tests__/generated.test.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"generated.test.js","sourceRoot":"src/","sources":["__tests__/generated.test.ts"],"names":[],"mappings":";;;AAAA,2DAAsB;AACtB,uDAAuD;AACvD,gGAAqD;AACrD,yFAA+C;AAE/C,MAAM,CAAC,MAAM,CACX,IAAA,sCAAmB,EAAC;IAClB,OAAO,EAAE,CAAC,2BAAW,CAAC;CACvB,CAAC,CACH,CAAC;AAEF,MAAM,WAAW,GAAG,sBAAO,CAAC;AAE5B,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,2BAAW,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,uCAAuC;QACvC,MAAM,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,2BAAW,CAAC,CAAC;QAE/C,SAAS;QACT,MAAM,GAAG,GAAG,IAAI,aAAG,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,2BAAW,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/lib/__tests__/index.test.d.ts b/vendors/color-schema/0.2.3/lib/__tests__/index.test.d.ts
new file mode 100644
index 0000000..cb0ff5c
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/__tests__/index.test.d.ts
@@ -0,0 +1 @@
+export {};
diff --git a/vendors/color-schema/0.2.3/lib/__tests__/index.test.js b/vendors/color-schema/0.2.3/lib/__tests__/index.test.js
new file mode 100644
index 0000000..1d9fc85
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/__tests__/index.test.js
@@ -0,0 +1,27 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const tslib_1 = require("tslib");
+// import * as colorSchema from "../hand-made-schema.json";
+const ajv_1 = (0, tslib_1.__importDefault)(require("ajv"));
+const jest_json_schema_1 = require("jest-json-schema");
+const colorSchema = (0, tslib_1.__importStar)(require("../build/color-schema.json"));
+const classic_json_1 = (0, tslib_1.__importDefault)(require("../examples/classic.json"));
+expect.extend((0, jest_json_schema_1.matchersWithOptions)({
+ schemas: [colorSchema],
+}));
+const colorAssets = classic_json_1.default;
+describe('test', () => {
+ test('schema itself is valid', () => {
+ expect(colorSchema).toBeValidSchema();
+ });
+ it('schema validate', () => {
+ // by jest-json-schema (powered by ajv)
+ expect(colorAssets).toMatchSchema(colorSchema);
+ // by ajv
+ const ajv = new ajv_1.default();
+ const validate = ajv.compile(colorSchema);
+ const valid = validate(colorAssets);
+ expect(valid).toBe(true);
+ });
+});
+//# sourceMappingURL=index.test.js.map
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/lib/__tests__/index.test.js.map b/vendors/color-schema/0.2.3/lib/__tests__/index.test.js.map
new file mode 100644
index 0000000..ffb75e6
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/__tests__/index.test.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.test.js","sourceRoot":"src/","sources":["__tests__/index.test.ts"],"names":[],"mappings":";;;AAAA,2DAA2D;AAC3D,2DAAsB;AACtB,uDAAuD;AACvD,qFAA0D;AAC1D,yFAA+C;AAE/C,MAAM,CAAC,MAAM,CACX,IAAA,sCAAmB,EAAC;IAClB,OAAO,EAAE,CAAC,WAAW,CAAC;CACvB,CAAC,CACH,CAAC;AAEF,MAAM,WAAW,GAAG,sBAAO,CAAC;AAE5B,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,uCAAuC;QACvC,MAAM,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAE/C,SAAS;QACT,MAAM,GAAG,GAAG,IAAI,aAAG,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/lib/build/color-schema.json b/vendors/color-schema/0.2.3/lib/build/color-schema.json
new file mode 100644
index 0000000..fa6f023
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/build/color-schema.json
@@ -0,0 +1,1056 @@
+{
+ "$ref": "#/definitions/ColorSchema",
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "definitions": {
+ "AssetPack": {
+ "additionalProperties": false,
+ "properties": {
+ "brandName": {
+ "type": "string"
+ },
+ "palettes": {
+ "items": {
+ "$ref": "#/definitions/Palette"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "brandName",
+ "palettes"
+ ],
+ "type": "object"
+ },
+ "CMYKValue": {
+ "additionalProperties": false,
+ "properties": {
+ "c": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "k": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "m": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "c",
+ "m",
+ "y",
+ "k"
+ ],
+ "type": "object"
+ },
+ "CategoricalPalette": {
+ "additionalProperties": false,
+ "properties": {
+ "colorScheme": {
+ "$ref": "#/definitions/ColorSchemeType"
+ },
+ "colors": {
+ "items": {
+ "$ref": "#/definitions/Color"
+ },
+ "type": "array"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "semantic": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "const": "categorical",
+ "type": "string"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "colors",
+ "name",
+ "semantic",
+ "type"
+ ],
+ "type": "object"
+ },
+ "Color": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "hsl",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSLValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "hsv",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSVValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "hsi",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSIValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "rgb",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/RGBValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "rgba",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/RGBAValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "lab",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/LABValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "lch",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/LCHValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "model": {
+ "const": "cmyk",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/CMYKValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "ColorSchema": {
+ "$ref": "#/definitions/AssetPack"
+ },
+ "ColorSchemeType": {
+ "enum": [
+ "monochromatic",
+ "complementary",
+ "split-complementary",
+ "achromatic",
+ "analogous",
+ "triadic",
+ "tetradic",
+ "polychromatic",
+ "customized"
+ ],
+ "type": "string"
+ },
+ "ContinuousColor": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "hsl",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSLValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "hsv",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSVValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "hsi",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/HSIValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "rgb",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/RGBValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "rgba",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/RGBAValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "lab",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/LABValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "lch",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/LCHValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "location": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "model": {
+ "const": "cmyk",
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "undertone": {
+ "$ref": "#/definitions/Undertone"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "value": {
+ "$ref": "#/definitions/CMYKValue"
+ }
+ },
+ "required": [
+ "model",
+ "value"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "ContinuousScalePalette": {
+ "additionalProperties": false,
+ "properties": {
+ "colorScheme": {
+ "$ref": "#/definitions/ColorSchemeType"
+ },
+ "colors": {
+ "items": {
+ "$ref": "#/definitions/ContinuousColor"
+ },
+ "type": "array"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "semantic": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "const": "continuous-scale",
+ "type": "string"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "colors",
+ "name",
+ "semantic",
+ "type"
+ ],
+ "type": "object"
+ },
+ "DiscreteScalePalette": {
+ "additionalProperties": false,
+ "properties": {
+ "colorScheme": {
+ "$ref": "#/definitions/ColorSchemeType"
+ },
+ "colors": {
+ "items": {
+ "$ref": "#/definitions/Color"
+ },
+ "type": "array"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "semantic": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "const": "discrete-scale",
+ "type": "string"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "colors",
+ "name",
+ "semantic",
+ "type"
+ ],
+ "type": "object"
+ },
+ "HSIValue": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "maximum": 360,
+ "minimum": 0,
+ "type": "number"
+ },
+ "i": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "s": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "h",
+ "s",
+ "i"
+ ],
+ "type": "object"
+ },
+ "HSLValue": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "maximum": 360,
+ "minimum": 0,
+ "type": "number"
+ },
+ "l": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "s": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "h",
+ "s",
+ "l"
+ ],
+ "type": "object"
+ },
+ "HSVValue": {
+ "additionalProperties": false,
+ "properties": {
+ "h": {
+ "maximum": 360,
+ "minimum": 0,
+ "type": "number"
+ },
+ "s": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "v": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "h",
+ "s",
+ "v"
+ ],
+ "type": "object"
+ },
+ "LABValue": {
+ "additionalProperties": false,
+ "properties": {
+ "a": {
+ "maximum": 98.254,
+ "minimum": -86.185,
+ "type": "number"
+ },
+ "b": {
+ "maximum": 94.482,
+ "minimum": -107.863,
+ "type": "number"
+ },
+ "l": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "l",
+ "a",
+ "b"
+ ],
+ "type": "object"
+ },
+ "LCHValue": {
+ "additionalProperties": false,
+ "properties": {
+ "c": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ },
+ "h": {
+ "maximum": 360,
+ "minimum": 0,
+ "type": "number"
+ },
+ "l": {
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "l",
+ "c",
+ "h"
+ ],
+ "type": "object"
+ },
+ "MatrixPalette": {
+ "additionalProperties": false,
+ "properties": {
+ "colorScheme": {
+ "$ref": "#/definitions/ColorSchemeType"
+ },
+ "colors": {
+ "items": {
+ "items": {
+ "$ref": "#/definitions/Color"
+ },
+ "type": "array"
+ },
+ "type": "array"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "origin": {
+ "additionalProperties": false,
+ "properties": {
+ "x": {
+ "items": {
+ "$ref": "#/definitions/Color"
+ },
+ "type": "array"
+ },
+ "y": {
+ "items": {
+ "$ref": "#/definitions/Color"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "x",
+ "y"
+ ],
+ "type": "object"
+ },
+ "semantic": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "const": "matrix",
+ "type": "string"
+ },
+ "usage": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "colors",
+ "name",
+ "origin",
+ "semantic",
+ "type"
+ ],
+ "type": "object"
+ },
+ "Palette": {
+ "anyOf": [
+ {
+ "$ref": "#/definitions/CategoricalPalette"
+ },
+ {
+ "$ref": "#/definitions/DiscreteScalePalette"
+ },
+ {
+ "$ref": "#/definitions/ContinuousScalePalette"
+ },
+ {
+ "$ref": "#/definitions/MatrixPalette"
+ }
+ ]
+ },
+ "RGBAValue": {
+ "additionalProperties": false,
+ "properties": {
+ "a": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "b": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ },
+ "g": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ },
+ "r": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "r",
+ "g",
+ "b",
+ "a"
+ ],
+ "type": "object"
+ },
+ "RGBValue": {
+ "additionalProperties": false,
+ "properties": {
+ "b": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ },
+ "g": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ },
+ "r": {
+ "maximum": 255,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "r",
+ "g",
+ "b"
+ ],
+ "type": "object"
+ },
+ "Undertone": {
+ "enum": [
+ "warm",
+ "neutral",
+ "cool"
+ ],
+ "type": "string"
+ }
+ }
+}
diff --git a/vendors/color-schema/0.2.3/lib/examples/classic.json b/vendors/color-schema/0.2.3/lib/examples/classic.json
new file mode 100644
index 0000000..9cf335e
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/examples/classic.json
@@ -0,0 +1,137 @@
+{
+ "brandName": "antd",
+ "palettes": [
+ {
+ "name": "trinity",
+ "semantic": "three",
+ "type": "categorical",
+ "colors": [
+ {
+ "model": "rgb",
+ "value": { "r": 255, "g": 0, "b": 0 },
+ "name": "red",
+ "undertone": "warm",
+ "usage": ["danger", "apple"]
+ },
+ {
+ "model": "rgb",
+ "value": { "r": 0, "g": 255, "b": 0 },
+ "name": "green",
+ "undertone": "neutral"
+ },
+ {
+ "model": "rgb",
+ "value": { "r": 0, "g": 0, "b": 255 },
+ "name": "blue",
+ "undertone": "cool"
+ }
+ ],
+ "usage": ["highlight"]
+ },
+ {
+ "name": "scale1",
+ "semantic": "passional",
+ "type": "discrete-scale",
+ "colors": [
+ { "model": "rgb", "value": { "r": 255, "g": 247, "b": 236 } },
+ { "model": "rgb", "value": { "r": 253, "g": 212, "b": 158 } },
+ { "model": "rgb", "value": { "r": 252, "g": 141, "b": 89 } },
+ { "model": "rgb", "value": { "r": 215, "g": 48, "b": 31 } },
+ { "model": "rgb", "value": { "r": 127, "g": 0, "b": 0 } }
+ ],
+ "usage": ["visualization"]
+ },
+ {
+ "name": "Leaf Yellow",
+ "semantic": "tranquil",
+ "type": "discrete-scale",
+ "description": "Colors of leaves in different seasons.",
+ "colors": [
+ { "model": "rgb", "value": { "r": 255, "g": 235, "b": 176 } },
+ { "model": "rgb", "value": { "r": 255, "g": 223, "b": 128 } },
+ { "model": "rgb", "value": { "r": 250, "g": 202, "b": 62 } },
+ { "model": "rgb", "value": { "r": 230, "g": 184, "b": 1 } },
+ { "model": "rgb", "value": { "r": 181, "g": 172, "b": 35 } },
+ { "model": "rgb", "value": { "r": 106, "g": 154, "b": 72 } },
+ { "model": "rgb", "value": { "r": 32, "g": 135, "b": 107 } },
+ { "model": "rgb", "value": { "r": 6, "g": 116, "b": 107 } },
+ { "model": "rgb", "value": { "r": 4, "g": 78, "b": 72 } }
+ ]
+ },
+ {
+ "name": "scale3",
+ "semantic": "passional",
+ "type": "continuous-scale",
+ "colors": [
+ { "model": "rgb", "value": { "r": 255, "g": 247, "b": 236 }, "location": 0 },
+ { "model": "rgb", "value": { "r": 252, "g": 141, "b": 89 }, "location": 0.2 },
+ { "model": "rgb", "value": { "r": 127, "g": 0, "b": 0 }, "location": 1 }
+ ]
+ },
+ {
+ "name": "Matrix",
+ "semantic": "mysterious",
+ "type": "matrix",
+ "colors": [
+ [{
+ "model": "rgb",
+ "value": { "r": 139, "g": 89, "b": 255 }
+ },
+ {
+ "model": "rgb",
+ "value": { "r": 103, "g": 82, "b": 255 }
+ },
+ {
+ "model": "rgb",
+ "value": { "r": 20, "g": 68, "b": 237 }
+ }],
+ [{
+ "model": "rgb",
+ "value": { "r": 183, "g": 141, "b": 255 }
+ }, {
+ "model": "rgb",
+ "value": { "r": 136, "g": 129, "b": 255 }
+ }, {
+ "model": "rgb",
+ "value": { "r": 27, "g": 107, "b": 237 }
+ }],
+ [{
+ "model": "rgb",
+ "value": { "r": 215, "g": 209, "b": 255 }
+ }, {
+ "model": "rgb",
+ "value": { "r": 160, "g": 191, "b": 255 }
+ }, {
+ "model": "rgb",
+ "value": { "r": 32, "g": 159, "b": 237 }
+ }]
+ ],
+ "origin": {
+ "x": [{
+ "model": "rgb",
+ "value": { "r": 215, "g": 209, "b": 255 }
+ },
+ {
+ "model": "rgb",
+ "value": { "r": 160, "g": 191, "b": 255 }
+ },
+ {
+ "model": "rgb",
+ "value": { "r": 32, "g": 159, "b": 237 }
+ }],
+ "y": [{
+ "model": "rgb",
+ "value": { "r": 215, "g": 209, "b": 255 }
+ },
+ {
+ "model": "rgb",
+ "value": { "r": 183, "g": 141, "b": 255 }
+ },
+ {
+ "model": "rgb",
+ "value": { "r": 139, "g": 89, "b": 255 }
+ }]
+ }
+ }
+ ]
+}
diff --git a/vendors/color-schema/0.2.3/lib/package.json b/vendors/color-schema/0.2.3/lib/package.json
new file mode 100644
index 0000000..d7050b2
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/package.json
@@ -0,0 +1,111 @@
+{
+ "name": "@antv/color-schema",
+ "version": "0.2.3",
+ "description": "JSON Schema for Color Palette",
+ "main": "lib/src/index.js",
+ "types": "lib/src/index.d.ts",
+ "unpkg": "dist/index.min.js",
+ "module": "esm/src/index.js",
+ "files": [
+ "src",
+ "esm",
+ "lib",
+ "build"
+ ],
+ "scripts": {
+ "clean": "rimraf lib esm dist",
+ "lint-staged": "lint-staged",
+ "size": "limit-size",
+ "format": "prettier --write \"src/**/*.ts\" \"__tests__/**/*.ts\" \"demo/**/*.{ts,tsx}\"",
+ "format-check": " prettier ./src/**/*.ts ./__tests__/**/*.ts ./demo/**/*.{ts,tsx} --check",
+ "lint": "eslint ./src/**/*.ts ./__tests__/**/*.ts ./demo/**/*.{ts,tsx} && npm run format-check",
+ "fix": "eslint ./src/**/*.ts ./__tests__/**/*.ts ./demo/**/*.{ts,tsx} --fix && npm run format",
+ "test": "jest",
+ "build:umd": "rimraf ./dist && rollup -c && npm run size",
+ "build:cjs": "rimraf ./lib && tsc --module commonjs --outDir lib",
+ "build:esm": "rimraf ./esm && tsc --module ESNext --outDir esm",
+ "build": "run-p build:*",
+ "schema": "mkdir -p build && ts-json-schema-generator -f tsconfig.json -p src/index.ts -t ColorSchema --no-type-check --no-ref-encode > build/color-schema.json",
+ "ci": "run-s lint test build schema",
+ "prepublishOnly": "npm run ci",
+ "prepare": "husky install",
+ "setup:demo": "cd demo && npm install --package-lock=false",
+ "start:demo": "npm run setup:demo && cd demo && npm start",
+ "deploy:site": "cd demo && npm run deploy:site",
+ "preversion": "npm run lint",
+ "version": "npm run format && git add -A src",
+ "postversion": "git push && git push --tags",
+ "one-stop-setup": "npm install --package-lock=false && run-s build setup:demo"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/antvis/color-schema.git"
+ },
+ "author": {
+ "name": "AntV",
+ "url": "https://antv.vision/"
+ },
+ "license": "MIT",
+ "homepage": "https://antvis.github.io/color-schema",
+ "publishConfig": {
+ "access": "public"
+ },
+ "bugs": {
+ "url": "https://github.com/antvis/color-schema/issues"
+ },
+ "dependencies": {
+ "@types/chroma-js": "^2.1.3"
+ },
+ "devDependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@commitlint/cli": "^12.1.4",
+ "@commitlint/config-conventional": "^12.1.4",
+ "@rollup/plugin-commonjs": "^21.0.1",
+ "@rollup/plugin-node-resolve": "^13.0.0",
+ "@rollup/plugin-typescript": "^8.2.1",
+ "@types/jest": "^26.0.22",
+ "@types/jest-json-schema": "^2.1.3",
+ "@typescript-eslint/eslint-plugin": "^4.28.3",
+ "@typescript-eslint/parser": "^4.28.3",
+ "ajv": "^8.0.4",
+ "chroma-js": "^2.1.1",
+ "eslint": "^7.29.0",
+ "eslint-config-airbnb": "^18.2.1",
+ "eslint-config-prettier": "^8.3.0",
+ "eslint-import-resolver-typescript": "^2.4.0",
+ "eslint-plugin-import": "^2.23.4",
+ "eslint-plugin-prettier": "^3.4.0",
+ "eslint-plugin-react": "^7.24.0",
+ "husky": "^7.0.1",
+ "jest": "^26.6.3",
+ "jest-json-schema": "^5.0.0",
+ "limit-size": "^0.1.4",
+ "lint-staged": "^11.0.1",
+ "npm-run-all": "^4.1.5",
+ "prettier": "^2.3.0",
+ "rimraf": "^3.0.2",
+ "rollup": "^2.53.1",
+ "rollup-plugin-terser": "^7.0.2",
+ "ts-jest": "^26.5.4",
+ "ts-json-schema-generator": "^0.89.2",
+ "typescript": "^4.2.4"
+ },
+ "lint-staged": {
+ "*.{ts,tsx}": [
+ "eslint --fix",
+ "prettier --write",
+ "git add"
+ ]
+ },
+ "limit-size": [
+ {
+ "path": "dist/index.min.js",
+ "limit": "8 Kb",
+ "gzip": true
+ },
+ {
+ "path": "dist/index.min.js",
+ "limit": "24 Kb"
+ }
+ ]
+}
diff --git a/vendors/color-schema/0.2.3/lib/src/index.d.ts b/vendors/color-schema/0.2.3/lib/src/index.d.ts
new file mode 100644
index 0000000..48252c7
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/index.d.ts
@@ -0,0 +1,2 @@
+export declare const version: string;
+export * from './schema';
diff --git a/vendors/color-schema/0.2.3/lib/src/index.js b/vendors/color-schema/0.2.3/lib/src/index.js
new file mode 100644
index 0000000..6c072ad
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/index.js
@@ -0,0 +1,8 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.version = void 0;
+const tslib_1 = require("tslib");
+const package_json_1 = (0, tslib_1.__importDefault)(require("../package.json"));
+exports.version = package_json_1.default.version;
+(0, tslib_1.__exportStar)(require("./schema"), exports);
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/lib/src/index.js.map b/vendors/color-schema/0.2.3/lib/src/index.js.map
new file mode 100644
index 0000000..d439ed3
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["src/index.ts"],"names":[],"mappings":";;;;AAAA,gFAAkC;AACrB,QAAA,OAAO,GAAG,sBAAG,CAAC,OAAO,CAAC;AAEnC,wDAAyB"}
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/lib/src/schema/assetPack.d.ts b/vendors/color-schema/0.2.3/lib/src/schema/assetPack.d.ts
new file mode 100644
index 0000000..fc4750b
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/schema/assetPack.d.ts
@@ -0,0 +1,5 @@
+import { Palette } from './palette';
+export interface AssetPack {
+ brandName: string;
+ palettes: Palette[];
+}
diff --git a/vendors/color-schema/0.2.3/lib/src/schema/assetPack.js b/vendors/color-schema/0.2.3/lib/src/schema/assetPack.js
new file mode 100644
index 0000000..8c60274
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/schema/assetPack.js
@@ -0,0 +1,3 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=assetPack.js.map
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/lib/src/schema/assetPack.js.map b/vendors/color-schema/0.2.3/lib/src/schema/assetPack.js.map
new file mode 100644
index 0000000..f5c7107
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/schema/assetPack.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"assetPack.js","sourceRoot":"src/","sources":["src/schema/assetPack.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/lib/src/schema/color.d.ts b/vendors/color-schema/0.2.3/lib/src/schema/color.d.ts
new file mode 100644
index 0000000..b33c170
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/schema/color.d.ts
@@ -0,0 +1,17 @@
+import { ColorValue } from './colorValue';
+export declare type Undertone = 'warm' | 'neutral' | 'cool';
+export interface ColorBaseInfo {
+ id?: string;
+ name?: string;
+ undertone?: Undertone;
+ usage?: string[];
+}
+export declare type Color = ColorBaseInfo & ColorValue;
+export declare type ContinuousColor = Color & {
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ location?: number;
+};
+export declare function colorToHex(color: Color): string;
diff --git a/vendors/color-schema/0.2.3/lib/src/schema/color.js b/vendors/color-schema/0.2.3/lib/src/schema/color.js
new file mode 100644
index 0000000..480949d
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/schema/color.js
@@ -0,0 +1,20 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.colorToHex = void 0;
+const tslib_1 = require("tslib");
+const chroma_js_1 = (0, tslib_1.__importDefault)(require("chroma-js"));
+const isChromaColor = (color) => {
+ if (chroma_js_1.default.valid(color)) {
+ return true;
+ }
+ return false;
+};
+function colorToHex(color) {
+ const { value } = color;
+ if (isChromaColor(value)) {
+ return (0, chroma_js_1.default)(value).hex();
+ }
+ return '';
+}
+exports.colorToHex = colorToHex;
+//# sourceMappingURL=color.js.map
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/lib/src/schema/color.js.map b/vendors/color-schema/0.2.3/lib/src/schema/color.js.map
new file mode 100644
index 0000000..126706f
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/schema/color.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"color.js","sourceRoot":"src/","sources":["src/schema/color.ts"],"names":[],"mappings":";;;;AAAA,uEAAyD;AAsBzD,MAAM,aAAa,GAAG,CAAC,KAAU,EAAwB,EAAE;IACzD,IAAI,mBAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,SAAgB,UAAU,CAAC,KAAY;IACrC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAExB,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,IAAA,mBAAM,EAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;KAC5B;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AARD,gCAQC"}
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/lib/src/schema/colorValue.d.ts b/vendors/color-schema/0.2.3/lib/src/schema/colorValue.d.ts
new file mode 100644
index 0000000..e7f6238
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/schema/colorValue.d.ts
@@ -0,0 +1,195 @@
+export declare type ColorModel = 'hsl' | 'hsv' | 'hsi' | 'rgb' | 'rgba' | 'lab' | 'lch' | 'cmyk';
+export interface HSLValue {
+ /**
+ * @minimum 0
+ * @maximum 360
+ */
+ h: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ s: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ l: number;
+}
+declare type range = [number, number];
+export declare const HSLValueRange: Record;
+export interface HSLColor {
+ model: 'hsl';
+ value: HSLValue;
+}
+export interface HSVValue {
+ /**
+ * @minimum 0
+ * @maximum 360
+ */
+ h: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ s: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ v: number;
+}
+export declare const HSVValueRange: Record;
+export interface HSVColor {
+ model: 'hsv';
+ value: HSVValue;
+}
+export interface HSIValue {
+ /**
+ * @minimum 0
+ * @maximum 360
+ */
+ h: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ s: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ i: number;
+}
+export declare const HSIValueRange: Record;
+export interface HSIColor {
+ model: 'hsi';
+ value: HSIValue;
+}
+export interface RGBValue {
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ r: number;
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ g: number;
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ b: number;
+}
+export declare const RGBValueRange: Record;
+export interface RGBColor {
+ model: 'rgb';
+ value: RGBValue;
+}
+export interface RGBAValue {
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ r: number;
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ g: number;
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ b: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ a: number;
+}
+export declare const RGBAValueRange: Record;
+export interface RGBAColor {
+ model: 'rgba';
+ value: RGBAValue;
+}
+export interface LABValue {
+ /**
+ * @minimum 0
+ * @maximum 100
+ */
+ l: number;
+ /**
+ * @minimum -86.185
+ * @maximum 98.254
+ */
+ a: number;
+ /**
+ * @minimum -107.863
+ * @maximum 94.482
+ */
+ b: number;
+}
+export declare const LABRange: Record;
+export interface LABColor {
+ model: 'lab';
+ value: LABValue;
+}
+export interface LCHValue {
+ /**
+ * @minimum 0
+ * @maximum 100
+ */
+ l: number;
+ /**
+ * @minimum 0
+ * @maximum 100
+ */
+ c: number;
+ /**
+ * @minimum 0
+ * @maximum 360
+ */
+ h: number;
+}
+export declare const LCHRange: Record;
+export interface LCHColor {
+ model: 'lch';
+ value: LCHValue;
+}
+export interface CMYKValue {
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ c: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ m: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ y: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ k: number;
+}
+export declare const CMYKRange: Record;
+export interface CMYKColor {
+ model: 'cmyk';
+ value: CMYKValue;
+}
+interface ColorModelInfo {
+ [key: string]: range;
+}
+export declare const ColorModelRange: Record;
+export declare function isColorValue(colorValue: ColorValue): colorValue is ColorValue;
+export declare type ColorValue = HSLColor | HSVColor | HSIColor | RGBColor | RGBAColor | LABColor | LCHColor | CMYKColor;
+export {};
diff --git a/vendors/color-schema/0.2.3/lib/src/schema/colorValue.js b/vendors/color-schema/0.2.3/lib/src/schema/colorValue.js
new file mode 100644
index 0000000..5a75f35
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/schema/colorValue.js
@@ -0,0 +1,63 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isColorValue = exports.ColorModelRange = exports.CMYKRange = exports.LCHRange = exports.LABRange = exports.RGBAValueRange = exports.RGBValueRange = exports.HSIValueRange = exports.HSVValueRange = exports.HSLValueRange = void 0;
+exports.HSLValueRange = {
+ h: [0, 360],
+ s: [0, 1],
+ l: [0, 1],
+};
+exports.HSVValueRange = {
+ h: [0, 360],
+ s: [0, 1],
+ v: [0, 1],
+};
+exports.HSIValueRange = {
+ h: [0, 360],
+ s: [0, 1],
+ i: [0, 1],
+};
+exports.RGBValueRange = {
+ r: [0, 255],
+ g: [0, 255],
+ b: [0, 255],
+};
+exports.RGBAValueRange = {
+ r: [0, 255],
+ g: [0, 255],
+ b: [0, 255],
+ a: [0, 1],
+};
+exports.LABRange = {
+ l: [0, 100],
+ a: [-86.185, 98.254],
+ b: [-107.863, 94.482],
+};
+exports.LCHRange = {
+ l: [0, 100],
+ c: [0, 100],
+ h: [0, 360],
+};
+exports.CMYKRange = {
+ c: [0, 1],
+ m: [0, 1],
+ y: [0, 1],
+ k: [0, 1],
+};
+exports.ColorModelRange = {
+ lab: exports.LABRange,
+ lch: exports.LCHRange,
+ rgb: exports.RGBValueRange,
+ rgba: exports.RGBAValueRange,
+ hsl: exports.HSLValueRange,
+ hsv: exports.HSVValueRange,
+ hsi: exports.HSIValueRange,
+ cmyk: exports.CMYKRange,
+};
+function isColorValue(colorValue) {
+ const { model, value } = colorValue;
+ const colorModelRange = exports.ColorModelRange[model];
+ return (Object.keys(value).sort().join(',') === Object.keys(colorModelRange).sort().join(',') &&
+ Object.entries(value).every(([key, v]) => v >= colorModelRange[key][0] && v <= colorModelRange[key][1]));
+}
+exports.isColorValue = isColorValue;
+//# sourceMappingURL=colorValue.js.map
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/lib/src/schema/colorValue.js.map b/vendors/color-schema/0.2.3/lib/src/schema/colorValue.js.map
new file mode 100644
index 0000000..d621a86
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/schema/colorValue.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"colorValue.js","sourceRoot":"src/","sources":["src/schema/colorValue.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/lib/src/schema/index.d.ts b/vendors/color-schema/0.2.3/lib/src/schema/index.d.ts
new file mode 100644
index 0000000..41d662f
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/schema/index.d.ts
@@ -0,0 +1,5 @@
+import { AssetPack } from './assetPack';
+export declare type ColorSchema = AssetPack;
+export * from './palette';
+export * from './color';
+export * from './colorValue';
diff --git a/vendors/color-schema/0.2.3/lib/src/schema/index.js b/vendors/color-schema/0.2.3/lib/src/schema/index.js
new file mode 100644
index 0000000..f2df038
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/schema/index.js
@@ -0,0 +1,7 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const tslib_1 = require("tslib");
+(0, tslib_1.__exportStar)(require("./palette"), exports);
+(0, tslib_1.__exportStar)(require("./color"), exports);
+(0, tslib_1.__exportStar)(require("./colorValue"), exports);
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/lib/src/schema/index.js.map b/vendors/color-schema/0.2.3/lib/src/schema/index.js.map
new file mode 100644
index 0000000..ea2157d
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/schema/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["src/schema/index.ts"],"names":[],"mappings":";;;AAIA,yDAA0B;AAC1B,uDAAwB;AACxB,4DAA6B"}
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/lib/src/schema/palette.d.ts b/vendors/color-schema/0.2.3/lib/src/schema/palette.d.ts
new file mode 100644
index 0000000..50bb296
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/schema/palette.d.ts
@@ -0,0 +1,36 @@
+import { Color, ContinuousColor } from './color';
+export declare type ColorSchemeType = 'monochromatic' | 'complementary' | 'split-complementary' | 'achromatic' | 'analogous' | 'triadic' | 'tetradic' | 'polychromatic' | 'customized';
+export interface PaletteBaseInfo {
+ id?: string;
+ name: string;
+ semantic: string | null;
+ description?: string;
+ colorScheme?: ColorSchemeType;
+ usage?: string[];
+}
+export declare type PaletteType = 'categorical' | 'discrete-scale' | 'continuous-scale' | 'matrix';
+export declare type CategoricalPalette = PaletteBaseInfo & {
+ type: 'categorical';
+ colors: Color[];
+};
+export declare type DiscreteScalePalette = PaletteBaseInfo & {
+ type: 'discrete-scale';
+ colors: Color[];
+};
+export declare type ContinuousScalePalette = PaletteBaseInfo & {
+ type: 'continuous-scale';
+ colors: ContinuousColor[];
+};
+export declare type MatrixPalette = PaletteBaseInfo & {
+ type: 'matrix';
+ colors: Color[][];
+ origin: {
+ x: Color[];
+ y: Color[];
+ };
+};
+export declare function isCategoricalPalette(palette: Palette): palette is CategoricalPalette;
+export declare function isDiscreteScalePalette(palette: Palette): palette is DiscreteScalePalette;
+export declare function isContinuousPalette(palette: Palette): palette is ContinuousScalePalette;
+export declare function isMatrixPalette(palette: Palette): palette is MatrixPalette;
+export declare type Palette = CategoricalPalette | DiscreteScalePalette | ContinuousScalePalette | MatrixPalette;
diff --git a/vendors/color-schema/0.2.3/lib/src/schema/palette.js b/vendors/color-schema/0.2.3/lib/src/schema/palette.js
new file mode 100644
index 0000000..47559fc
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/schema/palette.js
@@ -0,0 +1,28 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isMatrixPalette = exports.isContinuousPalette = exports.isDiscreteScalePalette = exports.isCategoricalPalette = void 0;
+function isCategoricalPalette(palette) {
+ if (palette.type === 'categorical')
+ return true;
+ return false;
+}
+exports.isCategoricalPalette = isCategoricalPalette;
+function isDiscreteScalePalette(palette) {
+ if (palette.type === 'discrete-scale')
+ return true;
+ return false;
+}
+exports.isDiscreteScalePalette = isDiscreteScalePalette;
+function isContinuousPalette(palette) {
+ if (palette.type === 'continuous-scale')
+ return true;
+ return false;
+}
+exports.isContinuousPalette = isContinuousPalette;
+function isMatrixPalette(palette) {
+ if (palette.type === 'matrix')
+ return true;
+ return false;
+}
+exports.isMatrixPalette = isMatrixPalette;
+//# sourceMappingURL=palette.js.map
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/lib/src/schema/palette.js.map b/vendors/color-schema/0.2.3/lib/src/schema/palette.js.map
new file mode 100644
index 0000000..3c8f440
--- /dev/null
+++ b/vendors/color-schema/0.2.3/lib/src/schema/palette.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"palette.js","sourceRoot":"src/","sources":["src/schema/palette.ts"],"names":[],"mappings":";;;AAgDA,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO,KAAK,CAAC;AACf,CAAC;AAHD,oDAGC;AAED,SAAgB,sBAAsB,CAAC,OAAgB;IACrD,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,IAAI,CAAC;IACnD,OAAO,KAAK,CAAC;AACf,CAAC;AAHD,wDAGC;AAED,SAAgB,mBAAmB,CAAC,OAAgB;IAClD,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB;QAAE,OAAO,IAAI,CAAC;IACrD,OAAO,KAAK,CAAC;AACf,CAAC;AAHD,kDAGC;AAED,SAAgB,eAAe,CAAC,OAAgB;IAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,KAAK,CAAC;AACf,CAAC;AAHD,0CAGC"}
\ No newline at end of file
diff --git a/vendors/color-schema/0.2.3/src/index.ts b/vendors/color-schema/0.2.3/src/index.ts
new file mode 100644
index 0000000..47ded7e
--- /dev/null
+++ b/vendors/color-schema/0.2.3/src/index.ts
@@ -0,0 +1,4 @@
+import pkg from '../package.json';
+export const version = pkg.version;
+
+export * from './schema';
diff --git a/vendors/color-schema/0.2.3/src/schema/assetPack.ts b/vendors/color-schema/0.2.3/src/schema/assetPack.ts
new file mode 100644
index 0000000..2062ec4
--- /dev/null
+++ b/vendors/color-schema/0.2.3/src/schema/assetPack.ts
@@ -0,0 +1,6 @@
+import { Palette } from './palette';
+
+export interface AssetPack {
+ brandName: string;
+ palettes: Palette[];
+}
diff --git a/vendors/color-schema/0.2.3/src/schema/color.ts b/vendors/color-schema/0.2.3/src/schema/color.ts
new file mode 100644
index 0000000..6f22d97
--- /dev/null
+++ b/vendors/color-schema/0.2.3/src/schema/color.ts
@@ -0,0 +1,38 @@
+import chroma, { Color as ChromaColor } from 'chroma-js';
+import { ColorValue } from './colorValue';
+
+export type Undertone = 'warm' | 'neutral' | 'cool';
+
+export interface ColorBaseInfo {
+ id?: string;
+ name?: string;
+ undertone?: Undertone;
+ usage?: string[];
+}
+
+export type Color = ColorBaseInfo & ColorValue;
+
+export type ContinuousColor = Color & {
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ location?: number;
+};
+
+const isChromaColor = (color: any): color is ChromaColor => {
+ if (chroma.valid(color)) {
+ return true;
+ }
+ return false;
+};
+
+export function colorToHex(color: Color): string {
+ const { value } = color;
+
+ if (isChromaColor(value)) {
+ return chroma(value).hex();
+ }
+
+ return '';
+}
diff --git a/vendors/color-schema/0.2.3/src/schema/colorValue.ts b/vendors/color-schema/0.2.3/src/schema/colorValue.ts
new file mode 100644
index 0000000..863b480
--- /dev/null
+++ b/vendors/color-schema/0.2.3/src/schema/colorValue.ts
@@ -0,0 +1,273 @@
+export type ColorModel = 'hsl' | 'hsv' | 'hsi' | 'rgb' | 'rgba' | 'lab' | 'lch' | 'cmyk';
+
+export interface HSLValue {
+ /**
+ * @minimum 0
+ * @maximum 360
+ */
+ h: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ s: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ l: number;
+}
+
+type range = [number, number];
+export const HSLValueRange: Record = {
+ h: [0, 360],
+ s: [0, 1],
+ l: [0, 1],
+};
+
+export interface HSLColor {
+ model: 'hsl';
+ value: HSLValue;
+}
+
+export interface HSVValue {
+ /**
+ * @minimum 0
+ * @maximum 360
+ */
+ h: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ s: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ v: number;
+}
+
+export const HSVValueRange: Record = {
+ h: [0, 360],
+ s: [0, 1],
+ v: [0, 1],
+};
+
+export interface HSVColor {
+ model: 'hsv';
+ value: HSVValue;
+}
+
+export interface HSIValue {
+ /**
+ * @minimum 0
+ * @maximum 360
+ */
+ h: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ s: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ i: number;
+}
+
+export const HSIValueRange: Record = {
+ h: [0, 360],
+ s: [0, 1],
+ i: [0, 1],
+};
+
+export interface HSIColor {
+ model: 'hsi';
+ value: HSIValue;
+}
+
+export interface RGBValue {
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ r: number;
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ g: number;
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ b: number;
+}
+
+export const RGBValueRange: Record = {
+ r: [0, 255],
+ g: [0, 255],
+ b: [0, 255],
+};
+
+export interface RGBColor {
+ model: 'rgb';
+ value: RGBValue;
+}
+
+export interface RGBAValue {
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ r: number;
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ g: number;
+ /**
+ * @minimum 0
+ * @maximum 255
+ */
+ b: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ a: number;
+}
+
+export const RGBAValueRange: Record = {
+ r: [0, 255],
+ g: [0, 255],
+ b: [0, 255],
+ a: [0, 1],
+};
+
+export interface RGBAColor {
+ model: 'rgba';
+ value: RGBAValue;
+}
+
+export interface LABValue {
+ /**
+ * @minimum 0
+ * @maximum 100
+ */
+ l: number;
+ /**
+ * @minimum -86.185
+ * @maximum 98.254
+ */
+ a: number;
+ /**
+ * @minimum -107.863
+ * @maximum 94.482
+ */
+ b: number;
+}
+
+export const LABRange: Record = {
+ l: [0, 100],
+ a: [-86.185, 98.254],
+ b: [-107.863, 94.482],
+};
+
+export interface LABColor {
+ model: 'lab';
+ value: LABValue;
+}
+
+export interface LCHValue {
+ /**
+ * @minimum 0
+ * @maximum 100
+ */
+ l: number;
+ /**
+ * @minimum 0
+ * @maximum 100
+ */
+ c: number;
+ /**
+ * @minimum 0
+ * @maximum 360
+ */
+ h: number;
+}
+
+export const LCHRange: Record = {
+ l: [0, 100],
+ c: [0, 100],
+ h: [0, 360],
+};
+
+export interface LCHColor {
+ model: 'lch';
+ value: LCHValue;
+}
+
+export interface CMYKValue {
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ c: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ m: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ y: number;
+ /**
+ * @minimum 0
+ * @maximum 1
+ */
+ k: number;
+}
+
+export const CMYKRange: Record = {
+ c: [0, 1],
+ m: [0, 1],
+ y: [0, 1],
+ k: [0, 1],
+};
+
+export interface CMYKColor {
+ model: 'cmyk';
+ value: CMYKValue;
+}
+
+interface ColorModelInfo {
+ [key: string]: range;
+}
+
+export const ColorModelRange: Record = {
+ lab: LABRange,
+ lch: LCHRange,
+ rgb: RGBValueRange,
+ rgba: RGBAValueRange,
+ hsl: HSLValueRange,
+ hsv: HSVValueRange,
+ hsi: HSIValueRange,
+ cmyk: CMYKRange,
+};
+
+export function isColorValue(colorValue: ColorValue): colorValue is ColorValue {
+ const { model, value } = colorValue;
+ const colorModelRange = ColorModelRange[model];
+
+ return (
+ Object.keys(value).sort().join(',') === Object.keys(colorModelRange).sort().join(',') &&
+ Object.entries(value).every(([key, v]) => v >= colorModelRange[key][0] && v <= colorModelRange[key][1])
+ );
+}
+
+export type ColorValue = HSLColor | HSVColor | HSIColor | RGBColor | RGBAColor | LABColor | LCHColor | CMYKColor;
diff --git a/vendors/color-schema/0.2.3/src/schema/index.ts b/vendors/color-schema/0.2.3/src/schema/index.ts
new file mode 100644
index 0000000..d046c5c
--- /dev/null
+++ b/vendors/color-schema/0.2.3/src/schema/index.ts
@@ -0,0 +1,7 @@
+import { AssetPack } from './assetPack';
+
+export type ColorSchema = AssetPack;
+
+export * from './palette';
+export * from './color';
+export * from './colorValue';
diff --git a/vendors/color-schema/0.2.3/src/schema/palette.ts b/vendors/color-schema/0.2.3/src/schema/palette.ts
new file mode 100644
index 0000000..0cc51c7
--- /dev/null
+++ b/vendors/color-schema/0.2.3/src/schema/palette.ts
@@ -0,0 +1,69 @@
+import { Color, ContinuousColor } from './color';
+
+export type ColorSchemeType =
+ | 'monochromatic'
+ | 'complementary'
+ | 'split-complementary'
+ | 'achromatic'
+ | 'analogous'
+ | 'triadic'
+ | 'tetradic'
+ | 'polychromatic'
+ | 'customized';
+
+export interface PaletteBaseInfo {
+ id?: string;
+ name: string;
+ semantic: string | null;
+ description?: string;
+ colorScheme?: ColorSchemeType;
+ usage?: string[];
+}
+
+export type PaletteType = 'categorical' | 'discrete-scale' | 'continuous-scale' | 'matrix';
+
+export type CategoricalPalette = PaletteBaseInfo & {
+ type: 'categorical';
+ colors: Color[];
+};
+
+export type DiscreteScalePalette = PaletteBaseInfo & {
+ type: 'discrete-scale';
+ colors: Color[];
+};
+
+export type ContinuousScalePalette = PaletteBaseInfo & {
+ type: 'continuous-scale';
+ colors: ContinuousColor[];
+};
+
+export type MatrixPalette = PaletteBaseInfo & {
+ type: 'matrix';
+ colors: Color[][];
+ origin: {
+ x: Color[];
+ y: Color[];
+ };
+};
+
+export function isCategoricalPalette(palette: Palette): palette is CategoricalPalette {
+ if (palette.type === 'categorical') return true;
+ return false;
+}
+
+export function isDiscreteScalePalette(palette: Palette): palette is DiscreteScalePalette {
+ if (palette.type === 'discrete-scale') return true;
+ return false;
+}
+
+export function isContinuousPalette(palette: Palette): palette is ContinuousScalePalette {
+ if (palette.type === 'continuous-scale') return true;
+ return false;
+}
+
+export function isMatrixPalette(palette: Palette): palette is MatrixPalette {
+ if (palette.type === 'matrix') return true;
+ return false;
+}
+
+export type Palette = CategoricalPalette | DiscreteScalePalette | ContinuousScalePalette | MatrixPalette;
diff --git a/vendors/color-schema/LICENSE b/vendors/color-schema/LICENSE
new file mode 100644
index 0000000..a5b3635
--- /dev/null
+++ b/vendors/color-schema/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 AntV team
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/vendors/color-schema/README.md b/vendors/color-schema/README.md
new file mode 100644
index 0000000..5567a48
--- /dev/null
+++ b/vendors/color-schema/README.md
@@ -0,0 +1,228 @@
+ English | [简体中文](./README.zh-CN.md)
+
+
+@antv/color-schema
+
+
+
+A JSON schema used to regulate semantic color assets or palettes.
+
+
+## ✨ Features
+* **Validate**: Validate data with JSON schema.
+* **Develop**: Develop with types and interfaces.
+
+## 📖 Example
+
+```js
+{
+ brandName: "antd",
+ palettes: [
+ {
+ name: "trinity",
+ semantic: "three",
+ type: "categorical",
+ colors: [
+ {
+ model: "rgb",
+ value: { r: 255, g: 0, b: 0 },
+ name: "red",
+ undertone: "warm",
+ usage: [ "danger", "apple" ]
+ },
+ {
+ model: "rgb",
+ value: { r: 0, g: 255, b: 0 },
+ name: "green",
+ undertone: "neutral"
+ },
+ {
+ model: "rgb",
+ value: { r: 0, g: 0, b: 255 },
+ name: "blue",
+ undertone: "cool"
+ }
+ ]
+ },
+ {
+ name: "Leaf Yellow",
+ semantic: "tranquil",
+ type: "discrete-scale",
+ description: "Colors of leaves in different seasons.",
+ colors: [
+ { model: "rgb", value: { r: 255, g: 235, b: 176} },
+ { model: "rgb", value: { r: 255, g: 223, b: 128} },
+ { model: "rgb", value: { r: 250, g: 202, b: 62 },
+ { model: "rgb", value: { r: 230, g: 184, b: 1 },
+ { model: "rgb", value: { r: 181, g: 172, b: 35} },
+ { model: "rgb", value: { r: 106, g: 154, b: 72} },
+ { model: "rgb", value: { r: 32, g: 135, b: 107} },
+ { model: "rgb", value: { r: 6, g: 116, b: 107} },
+ { model: "rgb", value: { r: 4, g: 78, b: 72} }
+ ],
+ "usage": ["visualization"]
+ },
+ {
+ name: "scale3",
+ semantic: "passional",
+ type: "continuous-scale",
+ colors: [
+ { model: "rgb", value: {r: 255, g: 247, b: 236}, location: 0 },
+ { model: "rgb", value: {r: 252, g: 141, b: 89}, location: 0.2 },
+ { model: "rgb", value: {r: 127, g: 0, b: 0}, location: 1 }
+ ]
+ },
+ {
+ name: "Matrix",
+ semantic: "mysterious",
+ type: "matrix",
+ colors: [
+ [
+ { model: "rgb", value: { r: 139, g: 89, b: 255 } },
+ { model: "rgb", value: { r: 103, g: 82, b: 255 } },
+ { model: "rgb", value: { r: 20, g: 68, b: 237 } }
+ ],
+ [
+ { model: "rgb", value: { r: 183, g: 141, b: 255 } },
+ { model: "rgb", value: { r: 136, g: 129, b: 255 } },
+ { model: "rgb", value: { r: 27, g: 107, b: 237 } }
+ ],
+ [
+ { model: "rgb", value: { r: 215, g: 209, b: 255 } },
+ { model: "rgb", value: { r: 160, g: 191, b: 255 } },
+ { model: "rgb", value: { r: 32, g: 159, b: 237 } }
+ ]
+ ],
+ origin: {
+ x: [
+ { model: "rgb", value: { r: 215, g: 209, b: 255 } },
+ { model: "rgb", value: { r: 160, g: 191, b: 255 } },
+ { model: "rgb", value: { r: 32, g: 159, b: 237 } }
+ ],
+ y: [
+ { model: "rgb", value: { r: 215, g: 209, b: 255 } },
+ { model: "rgb", value: { r: 183, g: 141, b: 255 } },
+ { model: "rgb", value: { r: 139, g: 89, b: 255 } }
+ ]
+ }
+ }
+ ]
+}
+```
+
+
+
+
+## 📦 Installation
+```bash
+$ npm install @antv/color-schema
+```
+
+## 🔨 Usage
+
+### Validate
+Validate by [Ajv](https://github.com/ajv-validator/ajv) (JSON schema validator):
+
+```js
+import Ajv from "ajv";
+import colorSchema from "build/color-schema.json";
+
+const ajv = new Ajv();
+const validate = ajv.compile(colorSchema);
+const valid = validate(data);
+```
+
+### Types & Interfaces
+
+Some types and interfaces:
+
+```js
+import { ColorSchema, Palette, Color } from '@antv/color-schema';
+```
+
+#### ColorSchema
+Color Schema is a color assets package consisting of a collection of palettes.
+```ts
+interface ColorSchema {
+ brandName: string;
+ palettes: Palette[];
+}
+```
+
+#### Palette
+Color palette is a collection of colors.
+```ts
+interface Palette {
+ id?: string;
+ name: string;
+ type: PaletteType;
+ semantic: string | null;
+ description?: string;
+ colorScheme?: ColorSchemeType;
+ usage?: string[];
+ colors: Color[] | ContinuousColor[] | colors: Color[][];
+ origin?: {
+ x: Color[];
+ y: Color[];
+ };
+}
+```
+
+#### PaletteType
+According to different data types and usage scenarios, four different [types](https://antv.vision/en/docs/specification/language/palette#6-%E5%A4%A7%E8%89%B2%E6%9D%BF%E7%B1%BB%E5%9E%8B) of color plates are provided.
+```ts
+type PaletteType = "categorical" | "discrete-scale" | "continuous-scale" | "matrix";
+```
+
+#### ColorSchemeType
+[Color scheme](https://en.wikipedia.org/wiki/Color_scheme) is described in terms of logical combinations of colors on a color wheel. Different types of schemes, like monochromatic or complementary, are used.
+```ts
+type ColorSchemeType =
+ | "monochromatic"
+ | "complementary"
+ | "split-complementary"
+ | "achromatic"
+ | "analogous"
+ | "triadic"
+ | "tetradic"
+ | "polychromatic"
+ | "customized";
+```
+
+#### Color
+```ts
+interface Color {
+ model: ColorModel;
+ value: ColorValue;
+ id?: string;
+ name?: string;
+ undertone?: Undertone;
+ usage?: string[];
+}
+```
+
+#### ColorModel
+```ts
+type ColorModel = "hsl" | "hsv" | "hsi" | "rgb" | "rgba" | "lab" | "lch" | "cmyk";
+```
+
+#### Undertone
+```ts
+type Undertone = "warm" | "neutral" | "cool";
+```
+
+## 💻 Dev
+
+```bash
+npm install
+npm run start
+```
+
+## 🔗 Reference
+
+* [Ant Design Colors](https://ant.design/docs/spec/colors)
+* [AntV Color Design](https://antv.vision/en/docs/specification/language/palette)
+
+## License
+
+MIT
diff --git a/vendors/smart-color/0.2.1/esm/constant.d.ts b/vendors/smart-color/0.2.1/esm/constant.d.ts
new file mode 100644
index 0000000..35be048
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/constant.d.ts
@@ -0,0 +1,9 @@
+import { Color } from '@antv/color-schema';
+export declare const COLOR_BLINDNESS_SIMULATION_TYPES: readonly ["normal", "protanomaly", "deuteranomaly", "tritanomaly", "protanopia", "deuteranopia", "tritanopia", "achromatomaly", "achromatopsia"];
+export declare const TENDENCIES: readonly ["tint", "shade"];
+export declare const COLOR_DIFFERENCE_MEASURES: readonly ["euclidean", "CIEDE2000", "contrastRatio"];
+export declare const COLOR_AESTHETIC_MEASURES: readonly ["pairPreference", "harmony"];
+export declare const WHITE: Color;
+export declare const SEPARABLE_BLEND_MODES: string[];
+export declare const NON_SEPARABLE_BLEND_MODES: readonly ["hue", "saturation", "color", "luminosity"];
+export declare const BLEND_MODES: readonly [...string[], "hue", "saturation", "color", "luminosity"];
diff --git a/vendors/smart-color/0.2.1/esm/constant.js b/vendors/smart-color/0.2.1/esm/constant.js
new file mode 100644
index 0000000..a6c7b1c
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/constant.js
@@ -0,0 +1,47 @@
+export const COLOR_BLINDNESS_SIMULATION_TYPES = [
+ 'normal',
+ 'protanomaly',
+ 'deuteranomaly',
+ 'tritanomaly',
+ 'protanopia',
+ 'deuteranopia',
+ 'tritanopia',
+ 'achromatomaly',
+ 'achromatopsia',
+];
+// color optimization configuration
+export const TENDENCIES = ['tint', 'shade'];
+export const COLOR_DIFFERENCE_MEASURES = ['euclidean', 'CIEDE2000', 'contrastRatio'];
+export const COLOR_AESTHETIC_MEASURES = ['pairPreference', 'harmony'];
+export const WHITE = {
+ model: 'rgb',
+ value: {
+ r: 255,
+ g: 255,
+ b: 255,
+ },
+};
+// Separable blend modes https://www.w3.org/TR/compositing/#blendingseparable
+export const SEPARABLE_BLEND_MODES = [
+ 'normal',
+ 'darken',
+ 'multiply',
+ 'colorBurn',
+ 'linearBurn',
+ 'lighten',
+ 'screen',
+ 'colorDodge',
+ 'linearDodge',
+ 'overlay',
+ 'softLight',
+ 'hardLight',
+ 'vividLight',
+ 'linearLight',
+ 'pinLight',
+ 'difference',
+ 'exclusion',
+];
+// Non-separable blend modes https://www.w3.org/TR/compositing/#blendingnonseparable
+export const NON_SEPARABLE_BLEND_MODES = ['hue', 'saturation', 'color', 'luminosity'];
+export const BLEND_MODES = [...SEPARABLE_BLEND_MODES, ...NON_SEPARABLE_BLEND_MODES];
+//# sourceMappingURL=constant.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/constant.js.map b/vendors/smart-color/0.2.1/esm/constant.js.map
new file mode 100644
index 0000000..be3923b
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/constant.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"constant.js","sourceRoot":"src/","sources":["constant.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,QAAQ;IACR,aAAa;IACb,eAAe;IACf,aAAa;IACb,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,eAAe;IACf,eAAe;CACP,CAAC;AACX,mCAAmC;AACnC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC;AACrD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,CAAU,CAAC;AAE9F,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAU,CAAC;AAE/E,MAAM,CAAC,MAAM,KAAK,GAAU;IAC1B,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE;QACL,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;KACP;CACF,CAAC;AAEF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,WAAW;IACX,YAAY;IACZ,SAAS;IACT,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,SAAS;IACT,WAAW;IACX,WAAW;IACX,YAAY;IACZ,aAAa;IACb,UAAU;IACV,YAAY;IACZ,WAAW;CACZ,CAAC;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,CAAU,CAAC;AAE/F,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAG,qBAAqB,EAAE,GAAG,yBAAyB,CAAU,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/colorHarmony.d.ts b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/colorHarmony.d.ts
new file mode 100644
index 0000000..f3ae3e4
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/colorHarmony.d.ts
@@ -0,0 +1,2 @@
+import { Color } from '@antv/color-schema';
+export declare const colorHarmony: (color1: Color, color2: Color) => number;
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/colorHarmony.js b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/colorHarmony.js
new file mode 100644
index 0000000..6c56396
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/colorHarmony.js
@@ -0,0 +1,39 @@
+import { colorToArray, rad2deg, deg2rad } from '../../utils';
+const Hab = (b, a) => {
+ if (a === 0 && b === 0)
+ return 0;
+ const tmphp = rad2deg(Math.atan2(b, a));
+ if (tmphp >= 0)
+ return tmphp;
+ return tmphp + 360;
+};
+// ref: Color Harmony for Image Indexing
+// ref: A Study of Colour Harmony for Two-colour Combinations
+// ref: https://last.hit.bme.hu/download/firtha/video/Colorimetry/Fairchild_M._Color_appearance_models__2005.pdf p79-81
+export const colorHarmony = (color1, color2) => {
+ const [L1, a1, b1] = colorToArray(color1, 'lab');
+ const [L2, a2, b2] = colorToArray(color2, 'lab');
+ const Cab1 = Math.sqrt(a1 ** 2 + b1 ** 2);
+ const Cab2 = Math.sqrt(a1 ** 2 + b1 ** 2);
+ const Hab1 = Hab(b1, a1);
+ const Hab2 = Hab(b2, a2);
+ const dCab = Cab1 - Cab2;
+ const dHab2 = (a1 - a2) ** 2 + (b1 - b2) ** 2 - dCab ** 2;
+ const dC = Math.sqrt(dHab2 + (dCab / 1.46) ** 2);
+ const HC = 0.04 + 0.53 * Math.tanh(0.8 - 0.045 * dC);
+ const Lsum = L1 + L2;
+ const HLsum = 0.28 + 0.54 * Math.tanh(-3.88 + 0.029 * Lsum);
+ const HdL = 0.14 + 0.15 * Math.tanh(-2 + 0.2 * Math.abs(L1 - L2));
+ const HL = HLsum + HdL;
+ const EC1 = 0.5 + 0.5 * Math.tanh(-2 + 0.5 * Cab1);
+ const EC2 = 0.5 + 0.5 * Math.tanh(-2 + 0.5 * Cab2);
+ const HS1 = -0.08 - 0.14 * Math.sin(deg2rad(Hab1 + 50)) - 0.07 * Math.sin(deg2rad(2 * Hab1 + 90));
+ const HS2 = -0.08 - 0.14 * Math.sin(deg2rad(Hab2 + 50)) - 0.07 * Math.sin(deg2rad(2 * Hab2 + 90));
+ const EY1 = ((0.22 * L1 - 12.8) / 10) * Math.exp((90 - Hab1) / 10 - Math.exp((90 - Hab1) / 10));
+ const EY2 = ((0.22 * L2 - 12.8) / 10) * Math.exp((90 - Hab2) / 10 - Math.exp((90 - Hab2) / 10));
+ const HSY1 = EC1 * (HS1 + EY1);
+ const HSY2 = EC2 * (HS2 + EY2);
+ const HH = HSY1 + HSY2;
+ return HC + HL + HH;
+};
+//# sourceMappingURL=colorHarmony.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/colorHarmony.js.map b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/colorHarmony.js.map
new file mode 100644
index 0000000..10e5613
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/colorHarmony.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"colorHarmony.js","sourceRoot":"src/","sources":["evaluators/colorAesthetic/colorHarmony.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/index.d.ts b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/index.d.ts
new file mode 100644
index 0000000..4ec114c
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/index.d.ts
@@ -0,0 +1,2 @@
+import { ColorAesthetic } from '@src/types';
+export declare const colorAesthetic: ColorAesthetic;
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/index.js b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/index.js
new file mode 100644
index 0000000..306d3bb
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/index.js
@@ -0,0 +1,19 @@
+import { WHITE } from '../../constant';
+import { colorBlend } from '../../utils';
+import { pairPreference } from './pairPreference';
+import { colorHarmony } from './colorHarmony';
+export const colorAesthetic = (color1, color2, configuration = { measure: 'pairPreference' }) => {
+ const { measure = 'pairPreference', backgroundColor = WHITE } = configuration;
+ // If the color is semi-transparent, the color will be overlapped on a white background by default for comparison
+ const overlappedColor1 = colorBlend(color1, backgroundColor);
+ const overlappedColor2 = colorBlend(color2, backgroundColor);
+ switch (measure) {
+ case 'pairPreference':
+ return pairPreference(overlappedColor1, overlappedColor2);
+ case 'harmony':
+ return colorHarmony(overlappedColor1, overlappedColor2);
+ default:
+ return pairPreference(overlappedColor1, overlappedColor2);
+ }
+};
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/index.js.map b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/index.js.map
new file mode 100644
index 0000000..b2365bf
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["evaluators/colorAesthetic/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE;IAC9G,MAAM,EAAE,OAAO,GAAG,gBAAgB,EAAE,eAAe,GAAG,KAAK,EAAE,GAAG,aAAa,CAAC;IAC9E,iHAAiH;IACjH,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7D,QAAQ,OAAO,EAAE;QACf,KAAK,gBAAgB;YACnB,OAAO,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAC5D,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAC1D;YACE,OAAO,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;KAC7D;AACH,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.d.ts b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.d.ts
new file mode 100644
index 0000000..806b958
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.d.ts
@@ -0,0 +1 @@
+export declare const LAB_TO_COOLNESS: number[];
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.js b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.js
new file mode 100644
index 0000000..911d29a
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.js
@@ -0,0 +1,3 @@
+// prettier-ignore
+export const LAB_TO_COOLNESS = [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 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, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 6.49, 7.13, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 8.14, 7.5, 4.36, 5.54, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 7.46, 7.46, 5.18, 3.75, 2.77, 2.78, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.22, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 2.88, 2.88, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.09, 10.71, 10.34, 10, 10, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 10.7, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.11, 10.84, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.41, 8.71, 9.4, 9.13, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.41, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.11, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.75, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, , , , , , , , , , , , , , , , , , , , , , , , , , , 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, , , , , , , , , , , , , , , , , , , , , , , , , , 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 10.94, 11.07, 10.8, 10.42, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.98, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 10.69, 11.11, 10.84, 10.82, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.96, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, , , , , , , , , , , , , , , , , , , , , , , , , , , 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, , , , , , , , , , , , , , , , , , , , , , , , , , 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, , , , , , , , , , , , , , , , , , , , , , , , , 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, , , , , , , , , , , , , , , , , , , , , , , , 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, , , , , , , , , , , , , , , , , , , , , , , 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 9.02, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 8.97, 8.97, 10.49, 10.79, 10.52, 10.15, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.82, 12.43, 11.98, 11.56, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, , , , , , , , , , , , , , , , , , , , , , , , , , , 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, , , , , , , , , , , , , , , , , , , , , , , , , , 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, , , , , , , , , , , , , , , , , , , , , , , , , 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, , , , , , , , , , , , , , , , , , , , , , , 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, , , , , , , , , , , , , , , , , , , , , , 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , , , 10.65, 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , , 10.35, 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , , 0, 8.97, 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 9.96, 10.51, 10.25, 10, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.3, 12.3, 11.89, 11.55, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 15.09, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, , , , , , , , , , , , , , , , , , , , , , , , , , , 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, , , , , , , , , , , , , , , , , , , , , , , , , , 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, , , , , , , , , , , , , , , , , , , , , , , , , 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, , , , , , , , , , , , , , , , , , , , , , , 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, , , , , , , , , , , , , , , , , , , , , , 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, , , , , , , , , , , , , , , , , , , , , 12, 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , , 11.1, 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , 10.65, 10.65, 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , 7.79, 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , 0, 0, 8.97, 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , 0, 0, 0, 0, 9.96, 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 6.04, , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 6.61, 10.01, 10.08, 9.78, 9.41, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.21, 11.88, 11.59, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, , , , , , , , , , , , , , , , , , , , , , , , , , , , 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, , , , , , , , , , , , , , , , , , , , , , , , , , , 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, , , , , , , , , , , , , , , , , , , , , , , , , 14.01, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, , , , , , , , , , , , , , , , , , , , , , , , 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, , , , , , , , , , , , , , , , , , , , , , , 12.89, 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, , , , , , , , , , , , , , , , , , , , , , 12.93, 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 2.9, , , , , , , , , , , , , , , , , , , , 12.43, 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, , , , , , , , , , , , , , , , , , , , 12, 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , 11.1, 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , 9.82, 10.65, 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , 0, 7.79, 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , 0, 0, 0, 8.97, 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 9.96, 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, 2.92, 2.33, 2, 2, 2, 2, 2, , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 6.61, 10.01, 10.08, 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, 4.85, 4.22, , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 6.61, 9.85, 9.54, 9.18, 8.81, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , 0, , , , , , , , , , , , , , , , 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.14, 11.85, 11.64, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.51, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, , , , , , , , , , , , , , , , , , , , , , , , , , , 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, , , , , , , , , , , , , , , , , , , , , , , , , , 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, , , , , , , , , , , , , , , , , , , , , , , , , 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, , , , , , , , , , , , , , , , , , , , , , , , 14, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, , , , , , , , , , , , , , , , , , , , , , , 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, , , , , , , , , , , , , , , , , , , , , , 13.17, 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, , , , , , , , , , , , , , , , , , , , , 12.93, 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, , , , , , , , , , , , , , , , , , , , 12.31, 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.51, , , , , , , , , , , , , , , , , , 11.41, 12, 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, , , , , , , , , , , , , , , , , 10.31, 11.1, 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , 0, 9.82, 10.65, 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , 0, 0, 7.79, 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , 0, 0, 0, 0, 8.97, 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 9.96, 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, 2.92, 2.33, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 6.61, 10.01, 10.08, 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, 4.85, 4.22, 3.74, 3.12, 2.64, 2.04, 2, 2, 2, 2, 2, , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 6.61, 9.85, 9.54, 9.18, 8.81, 8.33, 7.96, 7.48, 7, 6.51, 6.03, 5.43, 4.92, 4.42, 3.81, 3.32, 2.84, 2.84, , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8.97, 8.94, 8.58, 8.22, , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.11, 11.9, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.87, 12.45, 12.14, 11.85, 11.64, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 11.05, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, , , , , , , , , , , , , , , , , , , , , , , , , , , 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, , , , , , , , , , , , , , , , , , , , , , , , , 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, , , , , , , , , , , , , , , , , , , , , , , , 15.5, 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, , , , , , , , , , , , , , , , , , , , , , , 14.64, 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, , , , , , , , , , , , , , , , , , , , , , 14.04, 14, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, , , , , , , , , , , , , , , , , , , , , 13.69, 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, , , , , , , , , , , , , , , , , , , , 13.35, 13.17, 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, , , , , , , , , , , , , , , , , , , 12.61, 12.93, 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, , , , , , , , , , , , , , , , , , 11.71, 12.31, 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, , , , , , , , , , , , , , , , , 10.67, 11.41, 12, 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, , , , , , , , , , , , , , , , 7.79, 10.31, 11.1, 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , 0, 0, 9.82, 10.65, 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , 0, 0, 0, 7.79, 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , 0, 0, 0, 0, 0, 8.97, 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 9.96, 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, 2.92, 2.33, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 6.61, 10.01, 10.08, 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, 4.85, 4.22, 3.74, 3.12, 2.64, 2.04, 2, 2, 2, 2, 2, 3.86, , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 6.61, 9.85, 9.54, 9.18, 8.81, 8.33, 7.96, 7.48, 7, 6.51, 6.03, 5.43, 4.92, 4.42, 3.81, 3.32, 2.84, 2.37, 2, 2, 2, 3.08, 4.65, 6.27, , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8.97, 8.94, 8.58, 8.22, 7.73, 7.37, 6.88, 6.4, 5.92, 5.44, 4.95, 4.47, 3.99, 3.52, 3.04, 2.55, 2.2, 2.87, 4.44, 5.45, 7.02, 0, , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.79, 9.31, 8.04, 7.62, 7.13, , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.27, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.7, 12.4, 12.11, 11.9, 11.7, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.23, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, , , , , , , , , , , , , , , , , , , , , , , , , , , 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, , , , , , , , , , , , , , , , , , , , , , , , , 16.51, 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, , , , , , , , , , , , , , , , , , , , , , , , 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, , , , , , , , , , , , , , , , , , , , , , , 15.5, 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, , , , , , , , , , , , , , , , , , , , , 14.68, 14.64, 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, , , , , , , , , , , , , , , , , , , , 14.21, 14.04, 14, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, , , , , , , , , , , , , , , , , , , 13.67, 13.69, 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, , , , , , , , , , , , , , , , , , 12.77, 13.35, 13.17, 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, 4.14, , , , , , , , , , , , , , , , , 11.87, 12.61, 12.93, 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, 3.46, , , , , , , , , , , , , , , , 10.97, 11.71, 12.31, 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, 2.93, , , , , , , , , , , , , , , 9.74, 10.67, 11.41, 12, 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, 2.22, , , , , , , , , , , , , , 0, 7.79, 10.31, 11.1, 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , 0, 0, 9.82, 10.65, 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , 0, 0, 0, 7.79, 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , 0, 0, 0, 0, 8.97, 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , 0, 0, 0, 0, 0, 9.96, 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, 2.92, 2.33, 2, 2, 2, 2, 2, 2, 2, 3.68, , , , , , , , , , , , 0, 0, 0, 0, 0, 6.61, 10.01, 10.08, 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, 4.85, 4.22, 3.74, 3.12, 2.64, 2.04, 2, 2, 2, 2, 2, 3.86, 6.05, , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 6.61, 9.85, 9.54, 9.18, 8.81, 8.33, 7.96, 7.48, 7, 6.51, 6.03, 5.43, 4.92, 4.42, 3.81, 3.32, 2.84, 2.37, 2, 2, 2, 3.08, 4.65, 6.27, 6.61, , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 8.97, 8.94, 8.58, 8.22, 7.73, 7.37, 6.88, 6.4, 5.92, 5.44, 4.95, 4.47, 3.99, 3.52, 3.04, 2.55, 2.2, 2.87, 4.44, 5.45, 7.02, 0, 0, , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.79, 9.31, 8.04, 7.62, 7.13, 6.77, 6.29, 5.93, 5.44, 4.96, 4.48, 4, 3.64, 3.41, 3.84, 4.8, 5.8, 6.81, 7.79, 0, 0, 0, , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.79, 9, 8.25, 6.98, , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.38, 12.38, 11.91, 11.27, 10.42, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.75, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, , , , , , , , , , , , , , , , , , , , , , , , , , , 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, , , , , , , , , , , , , , , , , , , , , , , , , 16.92, 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, , , , , , , , , , , , , , , , , , , , , , , , 16.36, 16.51, 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, , , , , , , , , , , , , , , , , , , , , , , 16.05, 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, , , , , , , , , , , , , , , , , , , , , 15.28, 15.5, 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, , , , , , , , , , , , , , , , , , , , 14.68, 14.64, 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , , , , 14.21, 14.04, 14, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, 5.19, , , , , , , , , , , , , , , , , , 13.67, 13.69, 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, 4.62, , , , , , , , , , , , , , , , , 12.77, 13.35, 13.17, 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, 4.14, 4.1, , , , , , , , , , , , , , , 11.13, 11.87, 12.61, 12.93, 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, 3.46, 3.62, , , , , , , , , , , , , , , 10.97, 11.71, 12.31, 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, 2.93, 2.94, , , , , , , , , , , , , , 9.74, 10.67, 11.41, 12, 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, 2.22, 2.38, , , , , , , , , , , , , 0, 7.79, 10.31, 11.1, 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , 0, 0, 9.82, 10.65, 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , 0, 0, 7.79, 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , 0, 0, 0, 8.97, 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , 0, 0, 0, 0, 9.96, 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, 2.92, 2.33, 2, 2, 2, 2, 2, 2, 2, 3.68, 5.82, , , , , , , , , , , , , 0, 0, 0, 6.61, 10.01, 10.08, 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, 4.85, 4.22, 3.74, 3.12, 2.64, 2.04, 2, 2, 2, 2, 2, 3.86, 6.05, 6.61, , , , , , , , , , , , , 0, 0, 0, 0, 6.61, 9.85, 9.54, 9.18, 8.81, 8.33, 7.96, 7.48, 7, 6.51, 6.03, 5.43, 4.92, 4.42, 3.81, 3.32, 2.84, 2.37, 2, 2, 2, 3.08, 4.65, 6.27, 6.61, 0, , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 8.97, 8.94, 8.58, 8.22, 7.73, 7.37, 6.88, 6.4, 5.92, 5.44, 4.95, 4.47, 3.99, 3.52, 3.04, 2.55, 2.2, 2.87, 4.44, 5.45, 7.02, 0, 0, 0, , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 7.79, 9.31, 8.04, 7.62, 7.13, 6.77, 6.29, 5.93, 5.44, 4.96, 4.48, 4, 3.64, 3.41, 3.84, 4.8, 5.8, 6.81, 7.79, 0, 0, 0, 0, , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.79, 9, 8.25, 6.98, 6.3, 6.1, 5.45, 5.22, 5.04, 5.47, 5.29, 5.73, 6.73, 7.12, 7.79, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.79, 8.97, 8.94, , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.09, 10.45, 9.62, 7.95, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.88, 12.66, 12.38, 11.91, 11.27, 10.42, 9.58, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.44, 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, 10.39, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.42, 14.42, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, , , , , , , , , , , , , , , , , , , , , , , , , , , , 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, , , , , , , , , , , , , , , , , , , , , , , , , , , 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, , , , , , , , , , , , , , , , , , , , , , , , , 17.11, 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, , , , , , , , , , , , , , , , , , , , , , , , 16.74, 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, , , , , , , , , , , , , , , , , , , , , , , 16.36, 16.51, 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, , , , , , , , , , , , , , , , , , , , , 15.94, 16.05, 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, , , , , , , , , , , , , , , , , , , , 15.32, 15.28, 15.5, 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, , , , , , , , , , , , , , , , , , , 14.58, 14.68, 14.64, 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , , , 13.83, 14.21, 14.04, 14, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, 5.19, 5.33, , , , , , , , , , , , , , , , 12.93, 13.67, 13.69, 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, 4.62, 4.62, , , , , , , , , , , , , , , 12.03, 12.77, 13.35, 13.17, 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, 4.14, 4.1, 4.05, , , , , , , , , , , , , , 11.13, 11.87, 12.61, 12.93, 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, 3.46, 3.62, 3.5, , , , , , , , , , , , , , 10.97, 11.71, 12.31, 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, 2.93, 2.94, 3.07, , , , , , , , , , , , , , 10.67, 11.41, 12, 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, 2.22, 2.38, 2.52, , , , , , , , , , , , , , 10.31, 11.1, 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2.09, , , , , , , , , , , , , , 9.82, 10.65, 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , 7.79, 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , 0, 8.97, 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4.03, , , , , , , , , , , , , , 0, 0, 9.96, 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, 2.92, 2.33, 2, 2, 2, 2, 2, 2, 2, 3.68, 5.82, , , , , , , , , , , , , , 0, 0, 6.61, 10.01, 10.08, 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, 4.85, 4.22, 3.74, 3.12, 2.64, 2.04, 2, 2, 2, 2, 2, 3.86, 6.05, 6.61, 0, , , , , , , , , , , , , 0, 0, 0, 6.61, 9.85, 9.54, 9.18, 8.81, 8.33, 7.96, 7.48, 7, 6.51, 6.03, 5.43, 4.92, 4.42, 3.81, 3.32, 2.84, 2.37, 2, 2, 2, 3.08, 4.65, 6.27, 6.61, 0, 0, , , , , , , , , , , , , 0, 0, 0, 0, 0, 8.97, 8.94, 8.58, 8.22, 7.73, 7.37, 6.88, 6.4, 5.92, 5.44, 4.95, 4.47, 3.99, 3.52, 3.04, 2.55, 2.2, 2.87, 4.44, 5.45, 7.02, 0, 0, 0, 0, , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 7.79, 9.31, 8.04, 7.62, 7.13, 6.77, 6.29, 5.93, 5.44, 4.96, 4.48, 4, 3.64, 3.41, 3.84, 4.8, 5.8, 6.81, 7.79, 0, 0, 0, 0, 0, , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 7.79, 9, 8.25, 6.98, 6.3, 6.1, 5.45, 5.22, 5.04, 5.47, 5.29, 5.73, 6.73, 7.12, 7.79, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.79, 8.97, 8.94, 8.19, 8.06, 7.93, 8.31, 8.18, 7.79, , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.27, 8.01, 6.61, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.38, 11.73, 11.09, 10.45, 9.62, 7.95, 6.61, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.27, 12.88, 12.66, 12.38, 11.91, 11.27, 10.42, 9.58, 7.9, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.75, 13.94, 13.44, 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, 10.39, 9.11, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.18, 15.36, 14.42, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, 10.16, , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.05, 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, 10.72, , , , , , , , , , , , , , , , , , , , , , , , , , 17.77, 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, 10.4, , , , , , , , , , , , , , , , , , , , , , , , , 17.44, 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, 10.15, , , , , , , , , , , , , , , , , , , , , , , 16.91, 17.11, 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, 9.72, , , , , , , , , , , , , , , , , , , , , , 16.59, 16.74, 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, 8.99, , , , , , , , , , , , , , , , , , , , , 16.28, 16.36, 16.51, 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, , , , , , , , , , , , , , , , , , , , 15.94, 16.05, 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, 7.53, , , , , , , , , , , , , , , , , , 14.59, 15.32, 15.28, 15.5, 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, 6.6, , , , , , , , , , , , , , , , , 13.84, 14.58, 14.68, 14.64, 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , , 13.83, 14.21, 14.04, 14, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, 5.19, 5.33, , , , , , , , , , , , , , , , 12.93, 13.67, 13.69, 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, 4.62, 4.62, , , , , , , , , , , , , , , , 12.77, 13.35, 13.17, 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, 4.14, 4.1, 4.05, 4.2, , , , , , , , , , , , , , , 12.61, 12.93, 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, 3.46, 3.62, 3.5, 3.63, , , , , , , , , , , , , , , 12.31, 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, 2.93, 2.94, 3.07, 3.06, , , , , , , , , , , , , , , 12, 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, 2.22, 2.38, 2.52, 2.64, , , , , , , , , , , , , , , 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2.09, 2.12, , , , , , , , , , , , , , , 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2.61, , , , , , , , , , , , , , , 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4.37, , , , , , , , , , , , , , , 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4.03, 6.21, , , , , , , , , , , , , , , 9.96, 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, 2.92, 2.33, 2, 2, 2, 2, 2, 2, 2, 3.68, 5.82, 0, , , , , , , , , , , , , , , 6.61, 10.01, 10.08, 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, 4.85, 4.22, 3.74, 3.12, 2.64, 2.04, 2, 2, 2, 2, 2, 3.86, 6.05, 6.61, 0, , , , , , , , , , , , , , , 0, 6.61, 9.85, 9.54, 9.18, 8.81, 8.33, 7.96, 7.48, 7, 6.51, 6.03, 5.43, 4.92, 4.42, 3.81, 3.32, 2.84, 2.37, 2, 2, 2, 3.08, 4.65, 6.27, 6.61, 0, 0, , , , , , , , , , , , , , , 0, 0, 0, 8.97, 8.94, 8.58, 8.22, 7.73, 7.37, 6.88, 6.4, 5.92, 5.44, 4.95, 4.47, 3.99, 3.52, 3.04, 2.55, 2.2, 2.87, 4.44, 5.45, 7.02, 0, 0, 0, 0, , , , , , , , , , , , , , , 0, 0, 0, 0, 7.79, 9.31, 8.04, 7.62, 7.13, 6.77, 6.29, 5.93, 5.44, 4.96, 4.48, 4, 3.64, 3.41, 3.84, 3.84, , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 7.79, 9, 8.25, 6.98, 6.3, 6.1, 5.45, 5.22, 5.04, , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.79, 8.97, 8.97, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 10.91, 10.27, 9.27, 8.01, 6.61, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.25, 12.81, 12.38, 11.73, 11.09, 10.45, 9.62, 7.95, 6.61, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.27, 13.61, 13.27, 12.88, 12.66, 12.38, 11.91, 11.27, 10.42, 9.58, 7.9, 7.9, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 15.42, 14.75, 13.94, 13.44, 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, 10.39, 9.11, 7.44, , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.18, 15.36, 14.42, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, 10.16, 8.64, , , , , , , , , , , , , , , , , , , , , , , , , , 18, 17.05, 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, 10.72, 9.43, , , , , , , , , , , , , , , , , , , , , , , , 17.53, 17.77, 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, 10.4, 10.32, , , , , , , , , , , , , , , , , , , , , , , 17.22, 17.44, 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, 10.15, 10.02, , , , , , , , , , , , , , , , , , , , , , 16.91, 17.11, 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, 9.72, 9.55, , , , , , , , , , , , , , , , , , , , 16.45, 16.59, 16.74, 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, 8.99, 8.82, , , , , , , , , , , , , , , , , , , 15.81, 16.28, 16.36, 16.51, 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, 8.08, , , , , , , , , , , , , , , , , , 15.2, 15.94, 16.05, 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, 7.53, 7.34, , , , , , , , , , , , , , , , , 14.59, 15.32, 15.28, 15.5, 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, 6.6, 6.6, , , , , , , , , , , , , , , , 13.84, 14.58, 14.68, 14.64, 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , 13.83, 14.21, 14.04, 14, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, 5.19, 5.33, 5.33, , , , , , , , , , , , , , , , 13.67, 13.69, 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, 4.62, 4.62, 4.76, , , , , , , , , , , , , , , , 13.35, 13.17, 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, 4.14, 4.1, 4.05, 4.2, , , , , , , , , , , , , , , , 12.93, 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, 3.46, 3.62, 3.5, 3.63, , , , , , , , , , , , , , , , 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, 2.93, 2.94, 3.07, 3.06, 3.35, , , , , , , , , , , , , , , 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, 2.22, 2.38, 2.52, 2.64, 2.78, , , , , , , , , , , , , , , 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2.09, 2.12, 3.81, , , , , , , , , , , , , , , 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2.61, 5.29, , , , , , , , , , , , , , , 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4.37, 6.56, , , , , , , , , , , , , , , 10.52, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4.03, 6.21, 0, , , , , , , , , , , , , , , 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, 2.92, 2.33, 2, 2, 2, 2, 2, 2, 2, 3.68, 5.82, 0, , , , , , , , , , , , , , , , 10.01, 10.08, 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, 4.85, 4.22, 3.74, 3.12, 2.64, 2.04, 2, 2, 2, , , , , , , , , , , , , , , , , , , , , , 9.85, 9.85, 9.54, 9.18, 8.81, 8.33, 7.96, 7.48, 7, 6.51, 6.03, 5.43, 4.92, 4.42, 3.81, 3.32, , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 8.97, 8.94, 8.58, 8.22, 7.73, 7.37, 6.88, 6.4, 5.92, 5.44, 4.95, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 7.79, 9.31, 8.04, 7.62, 7.13, 6.77, 6.29, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 7.79, 9, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 7.65, 7.65, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.35, 10.91, 10.27, 9.27, 8.01, 6.61, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.65, 13.25, 12.81, 12.38, 11.73, 11.09, 10.45, 9.62, 7.95, 6.61, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.94, 14.27, 13.61, 13.27, 12.88, 12.66, 12.38, 11.91, 11.27, 10.42, 9.58, 7.9, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.23, 15.42, 14.75, 13.94, 13.44, 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, 10.39, 9.11, 7.44, , , , , , , , , , , , , , , , , , , , , , , , , , , 17, 16.18, 15.36, 14.42, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, 10.16, 8.64, , , , , , , , , , , , , , , , , , , , , , , , , 17.78, 18, 17.05, 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, 10.72, 9.43, 9.43, , , , , , , , , , , , , , , , , , , , , , , 17.53, 17.77, 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, 10.4, 10.32, 8.55, , , , , , , , , , , , , , , , , , , , , 17.04, 17.22, 17.44, 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, 10.15, 10.02, 9.34, , , , , , , , , , , , , , , , , , , , 16.75, 16.91, 17.11, 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, 9.72, 9.55, 9.19, , , , , , , , , , , , , , , , , , , 16.45, 16.59, 16.74, 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, 8.99, 8.82, 8.64, , , , , , , , , , , , , , , , , , 15.81, 16.28, 16.36, 16.51, 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, 8.08, 7.9, , , , , , , , , , , , , , , , , 15.2, 15.94, 16.05, 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, 7.53, 7.34, 7.34, , , , , , , , , , , , , , , , , 15.32, 15.28, 15.5, 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, 6.6, 6.6, 6.61, , , , , , , , , , , , , , , , , 14.68, 14.64, 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , , 14.04, 14, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, 5.19, 5.33, 5.33, 5.33, , , , , , , , , , , , , , , , , 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, 4.62, 4.62, 4.76, 4.76, , , , , , , , , , , , , , , , , 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, 4.14, 4.1, 4.05, 4.2, 4.34, , , , , , , , , , , , , , , , , 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, 3.46, 3.62, 3.5, 3.63, 3.77, , , , , , , , , , , , , , , , , 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, 2.93, 2.94, 3.07, 3.06, 3.35, , , , , , , , , , , , , , , , , 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, 2.22, 2.38, 2.52, 2.64, 2.78, , , , , , , , , , , , , , , , , 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2.09, 2.12, 3.81, , , , , , , , , , , , , , , , , 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2.61, 5.29, , , , , , , , , , , , , , , , , 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, , , , , , , , , , , , , , , , , , , , , , , , , , 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.54, 9.18, 8.81, 8.33, 7.96, 7.48, 7, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 8.97, 8.94, 8.58, 8.22, 7.73, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 7.79, 9.31, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.77, 8.92, 7.65, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.22, 11.78, 11.35, 10.91, 10.27, 9.27, 8.01, 6.61, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.83, 13.65, 13.25, 12.81, 12.38, 11.73, 11.09, 10.45, 9.62, 7.95, 6.61, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , 15.58, 14.94, 14.27, 13.61, 13.27, 12.88, 12.66, 12.38, 11.91, 11.27, 10.42, 9.58, 7.9, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , 16.23, 16.23, 15.42, 14.75, 13.94, 13.44, 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, 10.39, 9.11, 7.44, 0, , , , , , , , , , , , , , , , , , , , , , , , , 17.66, 17, 16.18, 15.36, 14.42, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, 10.16, 8.64, 6.97, , , , , , , , , , , , , , , , , , , , , , , 17.56, 17.78, 18, 17.05, 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, 10.72, 9.43, 7.76, , , , , , , , , , , , , , , , , , , , , , 17.31, 17.53, 17.77, 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, 10.4, 10.32, 8.55, , , , , , , , , , , , , , , , , , , , 16.67, 17.04, 17.22, 17.44, 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, 10.15, 10.02, 9.34, , , , , , , , , , , , , , , , , , , 16.13, 16.75, 16.91, 17.11, 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, 9.72, 9.55, 9.19, 8.05, , , , , , , , , , , , , , , , , 15.52, 16.45, 16.59, 16.74, 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, 8.99, 8.82, 8.64, 8.45, , , , , , , , , , , , , , , , , 15.81, 16.28, 16.36, 16.51, 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, 8.08, 7.9, 7.9, , , , , , , , , , , , , , , , , 16.05, 16.05, 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, 7.53, 7.34, 7.34, 7.16, , , , , , , , , , , , , , , , , , 15.5, 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, 6.6, 6.6, 6.61, 6.61, , , , , , , , , , , , , , , , , , 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , , , 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, 5.19, 5.33, 5.33, 5.33, 5.33, , , , , , , , , , , , , , , , , , 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, 4.62, 4.62, 4.76, 4.76, 4.91, , , , , , , , , , , , , , , , , , 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, 4.14, 4.1, 4.05, 4.2, 4.34, 4.34, , , , , , , , , , , , , , , , , , 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, 3.46, 3.62, 3.5, 3.63, 3.77, 3.91, , , , , , , , , , , , , , , , , , 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, 2.93, 2.94, 3.07, 3.06, 3.35, 3.89, , , , , , , , , , , , , , , , , , 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, 2.22, 2.38, 2.52, 2.64, 2.78, 4.97, , , , , , , , , , , , , , , , , , 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , , , , , , 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.05, 8.56, 8.2, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 8.81, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 7.29, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 10.96, 10.53, 9.77, 8.92, 7.65, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.66, 12.22, 11.78, 11.35, 10.91, 10.27, 9.27, 8.01, 6.61, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.98, 13.83, 13.65, 13.25, 12.81, 12.38, 11.73, 11.09, 10.45, 9.62, 7.95, 6.61, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , 15.44, 15.58, 14.94, 14.27, 13.61, 13.27, 12.88, 12.66, 12.38, 11.91, 11.27, 10.42, 9.58, 7.9, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , 16.71, 16.23, 15.42, 14.75, 13.94, 13.44, 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, 10.39, 9.11, 7.44, 0, 0, , , , , , , , , , , , , , , , , , , , , , , 17.23, 17.66, 17, 16.18, 15.36, 14.42, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, 10.16, 8.64, 6.97, 0, , , , , , , , , , , , , , , , , , , , , 16.85, 17.56, 17.78, 18, 17.05, 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, 10.72, 9.43, 7.76, 0, , , , , , , , , , , , , , , , , , , , 16.89, 17.31, 17.53, 17.77, 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, 10.4, 10.32, 8.55, 6.89, , , , , , , , , , , , , , , , , , , 16.67, 17.04, 17.22, 17.44, 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, 10.15, 10.02, 9.34, 7.68, , , , , , , , , , , , , , , , , , , 16.75, 16.91, 17.11, 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, 9.72, 9.55, 9.19, 8.05, , , , , , , , , , , , , , , , , , , 16.59, 16.74, 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, 8.99, 8.82, 8.64, 8.45, , , , , , , , , , , , , , , , , , , 16.36, 16.51, 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, 8.08, 7.9, 7.9, 7.14, , , , , , , , , , , , , , , , , , 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, 7.53, 7.34, 7.34, 7.16, 7.11, , , , , , , , , , , , , , , , , , 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, 6.6, 6.6, 6.61, 6.61, 6.42, , , , , , , , , , , , , , , , , , 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , , , 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, 5.19, 5.33, 5.33, 5.33, 5.33, 5.47, , , , , , , , , , , , , , , , , , 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, 4.62, 4.62, 4.76, 4.76, 4.91, 4.91, , , , , , , , , , , , , , , , , , 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, 4.14, 4.1, 4.05, 4.2, 4.34, 4.34, , , , , , , , , , , , , , , , , , , 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, 3.46, 3.62, 3.5, 3.63, 3.77, 3.91, , , , , , , , , , , , , , , , , , , 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, , , , , , , , , , , , , , , , , , , , , , , , , 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.5, 9.02, 8.35, 7.69, 6.92, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.15, 8.66, 8.66, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.01, 8.15, 7.29, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.4, 10.96, 10.53, 9.77, 8.92, 7.65, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.89, 12.66, 12.22, 11.78, 11.35, 10.91, 10.27, 9.27, 8.01, 6.61, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , 14.15, 13.98, 13.83, 13.65, 13.25, 12.81, 12.38, 11.73, 11.09, 10.45, 9.62, 7.95, 6.61, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , 15.31, 15.44, 15.58, 14.94, 14.27, 13.61, 13.27, 12.88, 12.66, 12.38, 11.91, 11.27, 10.42, 9.58, 7.9, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , 16.28, 16.71, 16.23, 15.42, 14.75, 13.94, 13.44, 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, 10.39, 9.11, 7.44, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , 16.5, 17.23, 17.66, 17, 16.18, 15.36, 14.42, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, 10.16, 8.64, 6.97, 0, 0, , , , , , , , , , , , , , , , , , , , 16.85, 17.56, 17.78, 18, 17.05, 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, 10.72, 9.43, 7.76, 0, 0, , , , , , , , , , , , , , , , , , , , 17.31, 17.53, 17.77, 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, 10.4, 10.32, 8.55, 6.89, 0, , , , , , , , , , , , , , , , , , , , 17.22, 17.44, 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, 10.15, 10.02, 9.34, 7.68, 0, , , , , , , , , , , , , , , , , , , , 17.11, 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, 9.72, 9.55, 9.19, 8.05, 0, , , , , , , , , , , , , , , , , , , , 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, 8.99, 8.82, 8.64, 8.45, 6.76, , , , , , , , , , , , , , , , , , , , 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, 8.08, 7.9, 7.9, 7.14, , , , , , , , , , , , , , , , , , , , 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, 7.53, 7.34, 7.34, 7.16, 7.11, , , , , , , , , , , , , , , , , , , , 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, 6.6, 6.6, 6.61, 6.61, 6.42, , , , , , , , , , , , , , , , , , , , 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , , , , , 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, 5.19, 5.33, 5.33, 5.33, 5.33, 5.47, , , , , , , , , , , , , , , , , , , , 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, 4.62, 4.62, 4.76, 4.76, 4.91, , , , , , , , , , , , , , , , , , , , , 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, , , , , , , , , , , , , , , , , , , , , , , , , , , 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 1.82, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 8.36, 7.12, 5.98, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 8.56, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.01, 8.15, 7.29, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.4, 10.96, 10.53, 9.77, 8.92, 7.65, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , 12.89, 12.89, 12.66, 12.22, 11.78, 11.35, 10.91, 10.27, 9.27, 8.01, 6.61, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , 14.15, 13.98, 13.83, 13.65, 13.25, 12.81, 12.38, 11.73, 11.09, 10.45, 9.62, 7.95, 6.61, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , 15.31, 15.44, 15.58, 14.94, 14.27, 13.61, 13.27, 12.88, 12.66, 12.38, 11.91, 11.27, 10.42, 9.58, 7.9, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , 15.83, 16.28, 16.71, 16.23, 15.42, 14.75, 13.94, 13.44, 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, 10.39, 9.11, 7.44, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , 16.5, 17.23, 17.66, 17, 16.18, 15.36, 14.42, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, 10.16, 8.64, 6.97, 0, 0, 0, , , , , , , , , , , , , , , , , , , , 17.56, 17.78, 18, 17.05, 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, 10.72, 9.43, 7.76, 0, 0, 0, , , , , , , , , , , , , , , , , , , , 17.53, 17.77, 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, 10.4, 10.32, 8.55, 6.89, 0, 0, , , , , , , , , , , , , , , , , , , , 17.44, 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, 10.15, 10.02, 9.34, 7.68, 0, 0, , , , , , , , , , , , , , , , , , , , 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, 9.72, 9.55, 9.19, 8.05, 0, 0, , , , , , , , , , , , , , , , , , , , 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, 8.99, 8.82, 8.64, 8.45, 6.76, 0, , , , , , , , , , , , , , , , , , , , 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, 8.08, 7.9, 7.9, 7.14, 0, , , , , , , , , , , , , , , , , , , , 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, 7.53, 7.34, 7.34, 7.16, 7.11, 0, , , , , , , , , , , , , , , , , , , , 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, 6.6, 6.6, 6.61, 6.61, 6.42, 0, , , , , , , , , , , , , , , , , , , , 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , , , , , , , 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.4, , , , , , , , , , , , , , , , , , , , , , , , , , , 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 6.11, 4.72, 3.06, 1.52, 0.99, 0.99, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 6.38, 4.93, 3.59, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.11, 9.11, 7.44, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , 13.75, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, 10.16, 8.64, 6.97, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , 18, 17.05, 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, 10.72, 9.43, 7.76, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, 10.4, 10.32, 8.55, 6.89, 0, 0, , , , , , , , , , , , , , , , , , , , , , 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, 10.15, 10.02, 9.34, 7.68, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, 9.72, 9.55, 9.19, 8.05, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, 8.99, 8.82, 8.64, 8.45, 6.76, 0, 0, , , , , , , , , , , , , , , , , , , , , 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, 8.08, 7.9, 7.9, 7.14, 0, 0, , , , , , , , , , , , , , , , , , , , , 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, 7.53, 7.34, 7.34, 7.16, 7.11, , , , , , , , , , , , , , , , , , , , , , , 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, , , , , , , , , , , , , , , , , , , , , , , , , , , , 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.09, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 3.05, 0.77, 0.5, 0.57, 0.57, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 2.95, 0.89, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.16, 9.16, 8.99, 8.82, , , , , , , , , , , , , , , , , , , , , , , , , , , , 6.49, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, , , , , , , , , , , , , , , , , , , , , , , , , , , , 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.38, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 2.85, 0, 0.68, 1.37, 2.11, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 1.53, 0.25,];
+//# sourceMappingURL=LAB_TO_COOLNESS.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.js.map b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.js.map
new file mode 100644
index 0000000..3a715a9
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"LAB_TO_COOLNESS.js","sourceRoot":"src/","sources":["evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAE,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/index.d.ts b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/index.d.ts
new file mode 100644
index 0000000..ab0bb84
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/index.d.ts
@@ -0,0 +1,2 @@
+import { Color } from '@antv/color-schema';
+export declare const pairPreference: (color1: Color, color2: Color) => number;
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/index.js b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/index.js
new file mode 100644
index 0000000..ab57fc3
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/index.js
@@ -0,0 +1,93 @@
+import { colorToArray } from '../../../utils';
+import { LAB_TO_COOLNESS } from './LAB_TO_COOLNESS';
+// ref: Colorgorical:Creating discriminable and preferable color palettes for information visualization
+// https://github.com/connorgr/colorgorical/blob/90649656a57ce9743b00390473adce51a821cadc/src/model/c/scores/pairPreference.c
+// hue, lightness, and coolness weights taken from regression in Schloss & Palmer 2011 to estimate pairwise preference
+const wH = -46.42; // hueAngleDiff weight
+const wL = 47.61; // lightnessDiff weight
+const wC = 75.15; // coolness weight
+// These min and max values are taken from the regression normalization
+// Need to normalize based on these to verify the variables are on same range
+const cMax = 36.0;
+const cMin = 4.0;
+const hMax = 179.266981384;
+const hMin = 0.033547949;
+const lMax = 63.3673;
+const lMin = 0.0;
+const normalize = (d, high, low) => {
+ return (d - low) / (high - low);
+};
+const getLabIndex = (L, a, b) => {
+ // L = [0,100]; a = [-85, 100]; b = [-110, 95]
+ const iL = Math.round(L / 5);
+ const ia = Math.round((a + 85) / 5);
+ const ib = Math.round((b + 110) / 5);
+ return iL * 1596 + ia * 42 + ib;
+};
+const getCoolness = (L, a, b) => {
+ const index = getLabIndex(L, a, b);
+ return LAB_TO_COOLNESS[index] || 0;
+};
+// Calculate the scalar needed to convert an XYZ color to Lab
+const XYZtoLab = (t) => {
+ if (t > (6.0 / 29.0) ** 3) {
+ return t ** (1.0 / 3.0);
+ }
+ return (1.0 / 3.0) * (29.0 / 6.0) * (29.0 / 6.0) * t + 4.0 / 29.0;
+};
+// Calculate the scalar needed to convert an Lab color to XYZ.
+const LabToXYZ = (t) => {
+ return t > 6.0 / 29.0 ? t * t * t : 3.0 * (6.0 / 29) * (6.0 / 29) * (t - 4.0 / 29.0);
+};
+// Calculate the LCH cyllindrical color representation of an Lab color
+const LabToLCH = (L, a, b) => {
+ const C = Math.sqrt(a * a + b * b);
+ let H = (Math.atan2(b, a) * 180.0) / Math.PI;
+ if (H < 0.0)
+ H += 360.0;
+ if (H > 360.0)
+ H = 360.0 - H;
+ return [L, C, H];
+};
+// Convert CIE Lab coordinates characterized with Illuminant D65 to CIE Lab
+// characterized with Illuminant C. This conversion is required since our model
+// relies on a D65 characterization, but Schloss and Palmer's pair preference
+// function was defined in Illuminant C characterized CIE Lab space.
+const illuminantD65LabToIlluminantCLab = (oldL, oldA, oldB) => {
+ const ILLUMINANT_C_X = 98.074;
+ const ILLUMINANT_C_Y = 100.0;
+ const ILLUMINANT_C_Z = 118.232;
+ const ILLUMINANT_D65_X = 95.047;
+ const ILLUMINANT_D65_Y = 100.0;
+ const ILLUMINANT_D65_Z = 108.883;
+ // Derive X,Y,Z from Lab by inversing the transformation
+ const x = (1.0 / 116.0) * (oldL + 16) + (1.0 / 500.0) * oldA;
+ const y = (1.0 / 116.0) * (oldL + 16);
+ const z = (1 / 116) * (oldL + 16) - (1 / 200) * oldB;
+ const X = ILLUMINANT_D65_X * LabToXYZ(x);
+ const Y = ILLUMINANT_D65_Y * LabToXYZ(y);
+ const Z = ILLUMINANT_D65_Z * LabToXYZ(z);
+ const deconstructY = XYZtoLab(Y / ILLUMINANT_C_Y);
+ const L = 116 * deconstructY - 16;
+ const a = 500 * (XYZtoLab(X / ILLUMINANT_C_X) - deconstructY);
+ const b = 200 * (deconstructY - XYZtoLab(Z / ILLUMINANT_C_Z));
+ return [L, a, b];
+};
+export const pairPreference = (color1, color2) => {
+ const [L1, a1, b1] = colorToArray(color1, 'lab');
+ const [L2, a2, b2] = colorToArray(color2, 'lab');
+ const coolness1 = getCoolness(L1, a1, b1);
+ const coolness2 = getCoolness(L2, a2, b2);
+ // Convert from D65 to Illuminant C Lab
+ const Lab1 = illuminantD65LabToIlluminantCLab(L1, a1, b1);
+ const Lab2 = illuminantD65LabToIlluminantCLab(L2, a2, b2);
+ // Convert Lab Illuminant C to LCH
+ const lCH1 = LabToLCH(Lab1[0], Lab1[1], Lab1[2]);
+ const lCH2 = LabToLCH(Lab2[0], Lab2[1], Lab2[2]);
+ const diffL = Math.abs(lCH1[0] - lCH2[0]);
+ const diffH = Math.abs(lCH1[2] - lCH2[2]);
+ const sumC = coolness1 + coolness2;
+ const pp = wL * normalize(diffL, lMax, lMin) + wH * normalize(diffH, hMax, hMin) + wC * normalize(sumC, cMax, cMin);
+ return pp;
+};
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/index.js.map b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/index.js.map
new file mode 100644
index 0000000..683bb04
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorAesthetic/pairPreference/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["evaluators/colorAesthetic/pairPreference/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/CIEDE2000.d.ts b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/CIEDE2000.d.ts
new file mode 100644
index 0000000..eb96bc1
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/CIEDE2000.d.ts
@@ -0,0 +1,2 @@
+import { Color } from '@antv/color-schema';
+export declare const CIEDE2000: (color1: Color, color2: Color) => number;
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/CIEDE2000.js b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/CIEDE2000.js
new file mode 100644
index 0000000..ac2724e
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/CIEDE2000.js
@@ -0,0 +1,64 @@
+import { colorToArray, rad2deg, deg2rad } from '../../utils';
+const hp = (x, y) => {
+ const tmphp = rad2deg(Math.atan2(x, y));
+ if (tmphp >= 0)
+ return tmphp;
+ return tmphp + 360;
+};
+// ref: https://en.wikipedia.org/wiki/Color_difference#CIEDE2000
+// output range: [0, 100]
+export const CIEDE2000 = (color1, color2) => {
+ // weight, usually unity
+ const kL = 1;
+ const kC = 1;
+ const kH = 1;
+ // Get L,a,b values for color
+ const [L1, a1, b1] = colorToArray(color1, 'lab');
+ const [L2, a2, b2] = colorToArray(color2, 'lab');
+ const C1 = Math.sqrt(a1 ** 2 + b1 ** 2);
+ const C2 = Math.sqrt(a2 ** 2 + b2 ** 2);
+ const avgC = (C1 + C2) / 2;
+ const p = 0.5 * (1 - Math.sqrt(avgC ** 7 / (avgC ** 7 + 25 ** 7)));
+ const a1p = (1.0 + p) * a1;
+ const a2p = (1.0 + p) * a2;
+ const C1p = Math.sqrt(a1p ** 2 + b1 ** 2);
+ const C2p = Math.sqrt(a2p ** 2 + b2 ** 2);
+ const h1p = hp(b1, a1p);
+ const h2p = hp(b2, a2p);
+ const dLp = L2 - L1;
+ const dCp = C2p - C1p;
+ let dhp;
+ if (Math.abs(h2p - h1p) <= 180)
+ dhp = h2p - h1p;
+ else if (h2p - h1p < -180)
+ dhp = h2p - h1p + 360;
+ else
+ dhp = h2p - h1p - 360; // h2p - h1p > 180
+ const dHp = 2 * Math.sqrt(C1p * C2p) * Math.sin(deg2rad(dhp) / 2.0);
+ let avgHp;
+ if (Math.abs(h1p - h2p) <= 180)
+ avgHp = (h1p + h2p) / 2.0;
+ else if (Math.abs(h1p - h2p) > 180 && h1p + h2p < 360)
+ avgHp = (h1p + h2p + 360) / 2.0;
+ else
+ avgHp = (h1p + h2p - 360) / 2.0; // Math.abs(h1p - h2p) > 180 && h1p + h2p >= 360
+ const avgL = (L1 + L2) / 2.0;
+ const avgCp = (C1p + C2p) / 2.0;
+ const T = 1 -
+ 0.17 * Math.cos(deg2rad(avgHp - 30)) +
+ 0.24 * Math.cos(deg2rad(2 * avgHp)) +
+ 0.32 * Math.cos(deg2rad(3 * avgHp + 6)) -
+ 0.2 * Math.cos(deg2rad(4 * avgHp - 63));
+ const SL = 1 + (0.015 * (avgL - 50) ** 2) / Math.sqrt(20 + (avgL - 50) ** 2);
+ const SC = 1 + 0.045 * avgCp;
+ const SH = 1 + 0.015 * avgCp * T;
+ const RT = -2 *
+ Math.sqrt(avgCp ** 7 / (avgCp ** 7 + 25.0 ** 7)) *
+ Math.sin(deg2rad(60 * Math.exp(-(((avgHp - 275) / 25) ** 2))));
+ const dE = Math.sqrt((dLp / (SL * kL)) ** 2 +
+ (dCp / (SC * kC)) ** 2 +
+ (dHp / (SH * kH)) ** 2 +
+ RT * (dCp / (SC * kC)) * (dHp / (SH * kH)));
+ return dE;
+};
+//# sourceMappingURL=CIEDE2000.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/CIEDE2000.js.map b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/CIEDE2000.js.map
new file mode 100644
index 0000000..91388e6
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/CIEDE2000.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"CIEDE2000.js","sourceRoot":"src/","sources":["evaluators/colorDifference/CIEDE2000.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/contrastRatio.d.ts b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/contrastRatio.d.ts
new file mode 100644
index 0000000..d5acd68
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/contrastRatio.d.ts
@@ -0,0 +1,2 @@
+import { Color } from '@antv/color-schema';
+export declare const contrastRatio: (color1: Color, color2: Color) => number;
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/contrastRatio.js b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/contrastRatio.js
new file mode 100644
index 0000000..8c6dec6
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/contrastRatio.js
@@ -0,0 +1,23 @@
+import { colorToArray } from '../../utils';
+const compute = (num) => {
+ const n = num / 255;
+ if (n <= 0.03928) {
+ return n / 12.92;
+ }
+ return ((n + 0.055) / 1.055) ** 2.4;
+};
+const calcRelativeLuminance = (color) => {
+ const [r, g, b] = colorToArray(color);
+ return 0.2126 * compute(r) + 0.7152 * compute(g) + 0.0722 * compute(b);
+};
+// ref: https://www.w3.org/TR/WCAG21/#dfn-contrast-ratio
+// Contrast ratios can range from 1 to 21 (commonly written 1:1 to 21:1).
+export const contrastRatio = (color1, color2) => {
+ const L1 = calcRelativeLuminance(color1);
+ const L2 = calcRelativeLuminance(color2);
+ if (L2 > L1) {
+ return (L2 + 0.05) / (L1 + 0.05);
+ }
+ return (L1 + 0.05) / (L2 + 0.05);
+};
+//# sourceMappingURL=contrastRatio.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/contrastRatio.js.map b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/contrastRatio.js.map
new file mode 100644
index 0000000..2167fcd
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/contrastRatio.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"contrastRatio.js","sourceRoot":"src/","sources":["evaluators/colorDifference/contrastRatio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,OAAO,GAAG,CAAC,GAAW,EAAU,EAAE;IACtC,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IACpB,IAAI,CAAC,IAAI,OAAO,EAAE;QAChB,OAAO,CAAC,GAAG,KAAK,CAAC;KAClB;IACD,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC;AACtC,CAAC,CAAC;AACF,MAAM,qBAAqB,GAAG,CAAC,KAAY,EAAU,EAAE;IACrD,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF,wDAAwD;AACxD,yEAAyE;AACzE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAa,EAAE,MAAa,EAAU,EAAE;IACpE,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,EAAE,GAAG,EAAE,EAAE;QACX,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;KAClC;IACD,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/euclideanDistance.d.ts b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/euclideanDistance.d.ts
new file mode 100644
index 0000000..3d230e3
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/euclideanDistance.d.ts
@@ -0,0 +1,2 @@
+import { Color, ColorModel } from '@antv/color-schema';
+export declare const euclideanDistance: (color1: Color, color2: Color, colorModel?: ColorModel) => number;
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/euclideanDistance.js b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/euclideanDistance.js
new file mode 100644
index 0000000..5c5f79b
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/euclideanDistance.js
@@ -0,0 +1,8 @@
+import chroma from 'chroma-js';
+import { colorToChromaColor } from '../../utils';
+// Computes the Euclidean distance between two colors in a given color model (default is Lab).
+// output range: [0, 255]
+export const euclideanDistance = (color1, color2, colorModel = 'lab') => {
+ return chroma.distance(colorToChromaColor(color1), colorToChromaColor(color2), colorModel);
+};
+//# sourceMappingURL=euclideanDistance.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/euclideanDistance.js.map b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/euclideanDistance.js.map
new file mode 100644
index 0000000..7fcdb3b
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/euclideanDistance.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"euclideanDistance.js","sourceRoot":"src/","sources":["evaluators/colorDifference/euclideanDistance.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,8FAA8F;AAC9F,yBAAyB;AACzB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAa,EAAE,MAAa,EAAE,aAAyB,KAAK,EAAU,EAAE;IACxG,OAAO,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;AAC7F,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/index.d.ts b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/index.d.ts
new file mode 100644
index 0000000..6e86774
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/index.d.ts
@@ -0,0 +1,2 @@
+import { ColorDifference } from '@src/types';
+export declare const colorDifference: ColorDifference;
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/index.js b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/index.js
new file mode 100644
index 0000000..dfcc40d
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/index.js
@@ -0,0 +1,23 @@
+import { WHITE } from '../../constant';
+import { colorBlend } from '../../utils';
+import { euclideanDistance } from './euclideanDistance';
+import { CIEDE2000 } from './CIEDE2000';
+import { contrastRatio } from './contrastRatio';
+export const colorDifference = (color1, color2, configuration = { measure: 'euclidean' }) => {
+ const { measure = 'euclidean', backgroundColor = WHITE } = configuration;
+ // If the color is semi-transparent, the color will be overlapped on a white background by default for comparison
+ const overlappedColor1 = colorBlend(color1, backgroundColor);
+ const overlappedColor2 = colorBlend(color2, backgroundColor);
+ switch (measure) {
+ case 'CIEDE2000':
+ return CIEDE2000(overlappedColor1, overlappedColor2);
+ case 'euclidean':
+ // @ts-ignore
+ return euclideanDistance(overlappedColor1, overlappedColor2, configuration.colorModel);
+ case 'contrastRatio':
+ return contrastRatio(overlappedColor1, overlappedColor2);
+ default:
+ return euclideanDistance(overlappedColor1, overlappedColor2);
+ }
+};
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/index.js.map b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/index.js.map
new file mode 100644
index 0000000..e7291d8
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/colorDifference/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["evaluators/colorDifference/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,CAAC,MAAM,eAAe,GAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;IAC3G,MAAM,EAAE,OAAO,GAAG,WAAW,EAAE,eAAe,GAAG,KAAK,EAAE,GAAG,aAAa,CAAC;IACzE,iHAAiH;IACjH,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7D,QAAQ,OAAO,EAAE;QACf,KAAK,WAAW;YACd,OAAO,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QACvD,KAAK,WAAW;YACd,aAAa;YACb,OAAO,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QACzF,KAAK,eAAe;YAClB,OAAO,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAC3D;YACE,OAAO,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;KAChE;AACH,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/index.d.ts b/vendors/smart-color/0.2.1/esm/evaluators/index.d.ts
new file mode 100644
index 0000000..c8441e9
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/index.d.ts
@@ -0,0 +1,2 @@
+export { colorDifference } from './colorDifference';
+export { colorAesthetic } from './colorAesthetic';
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/index.js b/vendors/smart-color/0.2.1/esm/evaluators/index.js
new file mode 100644
index 0000000..585ff54
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/index.js
@@ -0,0 +1,3 @@
+export { colorDifference } from './colorDifference';
+export { colorAesthetic } from './colorAesthetic';
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/evaluators/index.js.map b/vendors/smart-color/0.2.1/esm/evaluators/index.js.map
new file mode 100644
index 0000000..e5d5071
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/evaluators/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["evaluators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromImage.d.ts b/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromImage.d.ts
new file mode 100644
index 0000000..81d9731
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromImage.d.ts
@@ -0,0 +1,2 @@
+import { Palette } from '@antv/color-schema';
+export declare function getPaletteFromImage(imgUrl: string, count?: number, quality?: number): Promise;
diff --git a/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromImage.js b/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromImage.js
new file mode 100644
index 0000000..0301ad0
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromImage.js
@@ -0,0 +1,63 @@
+// @ts-ignore
+import quantize from 'quantize';
+import { loadImage, arrayToColor } from '../utils';
+// sample pixels in image
+const imageToPixels = (image, quality) => {
+ const { width, height } = image;
+ const canvas = document.createElement('canvas');
+ const context = canvas.getContext('2d');
+ if (!context)
+ return [];
+ canvas.width = width;
+ canvas.height = height;
+ context.drawImage(image, 0, 0, width, height);
+ const imageData = context.getImageData(0, 0, width, height).data;
+ const pixels = [];
+ const count = width * height;
+ for (let i = 0; i < count; i += quality) {
+ const offset = i * 4;
+ const r = imageData[offset + 0];
+ const g = imageData[offset + 1];
+ const b = imageData[offset + 2];
+ const a = imageData[offset + 3];
+ // If pixel is mostly opaque and not white
+ if (typeof a === 'undefined' || a >= 125) {
+ if (!(r > 250 && g > 250 && b > 250)) {
+ pixels.push([r, g, b]);
+ }
+ }
+ }
+ return pixels;
+};
+// Get a list of colors from img url
+export async function getPaletteFromImage(imgUrl, count = 6, quality = 10) {
+ // int
+ let validCount = Math.round(count);
+ validCount = Math.max(1, validCount);
+ validCount = Math.min(50, validCount);
+ let validQuality = Math.round(quality);
+ validQuality = Math.max(1, validQuality);
+ return new Promise((resolve) => {
+ loadImage(imgUrl)
+ .then((img) => {
+ validQuality = Math.min(Math.floor((img.width * img.height) / validCount), validQuality);
+ const pixels = imageToPixels(img, validQuality);
+ // Use the median cut algorithm provided by quantize to cluster similar colors
+ // the colorCount in quantize must be larger than 1
+ // so if the validCount is equal to 1
+ // get a palette of two colors and select the base color from the largest cluster
+ const colorMap = quantize(pixels, validCount === 1 ? 2 : validCount);
+ const arrayRGB = colorMap.palette().slice(0, validCount);
+ resolve({
+ name: 'image',
+ semantic: null,
+ type: 'categorical',
+ colors: arrayRGB.map((rgb) => arrayToColor(rgb, 'rgb')),
+ });
+ })
+ .finally(() => {
+ resolve(undefined);
+ });
+ });
+}
+//# sourceMappingURL=getPaletteFromImage.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromImage.js.map b/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromImage.js.map
new file mode 100644
index 0000000..bda217f
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromImage.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"getPaletteFromImage.js","sourceRoot":"src/","sources":["extractors/getPaletteFromImage.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromString.d.ts b/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromString.d.ts
new file mode 100644
index 0000000..f1d56b4
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromString.d.ts
@@ -0,0 +1,2 @@
+import { Palette } from '@antv/color-schema';
+export declare function getPaletteFromString(string: string): Palette;
diff --git a/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromString.js b/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromString.js
new file mode 100644
index 0000000..17b0a99
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromString.js
@@ -0,0 +1,17 @@
+import { hexToColor } from '../utils';
+// Get a list of colors from string
+export function getPaletteFromString(string) {
+ return {
+ name: 'code',
+ semantic: null,
+ type: 'categorical',
+ colors: string
+ .replace(/[^#,0-9a-fA-F]/g, '')
+ .split(',')
+ .filter((color) => color.length > 0)
+ .map((color) => {
+ return hexToColor(color);
+ }),
+ };
+}
+//# sourceMappingURL=getPaletteFromString.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromString.js.map b/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromString.js.map
new file mode 100644
index 0000000..a8ee631
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/extractors/getPaletteFromString.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"getPaletteFromString.js","sourceRoot":"src/","sources":["extractors/getPaletteFromString.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,mCAAmC;AACnC,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,MAAM;aACX,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;aAC9B,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;aACnC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC;KACL,CAAC;AACJ,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/extractors/index.d.ts b/vendors/smart-color/0.2.1/esm/extractors/index.d.ts
new file mode 100644
index 0000000..ca8afba
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/extractors/index.d.ts
@@ -0,0 +1,2 @@
+export { getPaletteFromImage } from './getPaletteFromImage';
+export { getPaletteFromString } from './getPaletteFromString';
diff --git a/vendors/smart-color/0.2.1/esm/extractors/index.js b/vendors/smart-color/0.2.1/esm/extractors/index.js
new file mode 100644
index 0000000..8037b93
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/extractors/index.js
@@ -0,0 +1,3 @@
+export { getPaletteFromImage } from './getPaletteFromImage';
+export { getPaletteFromString } from './getPaletteFromString';
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/extractors/index.js.map b/vendors/smart-color/0.2.1/esm/extractors/index.js.map
new file mode 100644
index 0000000..968d589
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/extractors/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["extractors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/achromaticGeneration.d.ts b/vendors/smart-color/0.2.1/esm/generators/achromaticGeneration.d.ts
new file mode 100644
index 0000000..58a25e7
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/achromaticGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const achromaticGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/esm/generators/achromaticGeneration.js b/vendors/smart-color/0.2.1/esm/generators/achromaticGeneration.js
new file mode 100644
index 0000000..bbb5488
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/achromaticGeneration.js
@@ -0,0 +1,23 @@
+import { monochromaticGeneration } from './monochromaticGeneration';
+const BLACK = {
+ model: 'rgb',
+ value: { r: 0, g: 0, b: 0 },
+};
+const WHITE = {
+ model: 'rgb',
+ value: { r: 255, g: 255, b: 255 },
+};
+// generate sequential palette by achromatic scheme
+export const achromaticGeneration = (configuration) => {
+ const { tendency } = configuration;
+ const newConfiguration = {
+ ...configuration,
+ color: tendency === 'tint' ? BLACK : WHITE,
+ };
+ const palette = monochromaticGeneration(newConfiguration);
+ return {
+ ...palette,
+ name: 'achromatic',
+ };
+};
+//# sourceMappingURL=achromaticGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/achromaticGeneration.js.map b/vendors/smart-color/0.2.1/esm/generators/achromaticGeneration.js.map
new file mode 100644
index 0000000..26303e2
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/achromaticGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"achromaticGeneration.js","sourceRoot":"src/","sources":["generators/achromaticGeneration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,MAAM,KAAK,GAAU;IACnB,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;CAC5B,CAAC;AACF,MAAM,KAAK,GAAU;IACnB,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;CAClC,CAAC;AAEF,mDAAmD;AACnD,MAAM,CAAC,MAAM,oBAAoB,GAAe,CAAC,aAAa,EAAE,EAAE;IAChE,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;IACnC,MAAM,gBAAgB,GAAG;QACvB,GAAG,aAAa;QAChB,KAAK,EAAE,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;KAC3C,CAAC;IACF,MAAM,OAAO,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAC1D,OAAO;QACL,GAAG,OAAO;QACV,IAAI,EAAE,YAAY;KACnB,CAAC;AACJ,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/analogousGeneration.d.ts b/vendors/smart-color/0.2.1/esm/generators/analogousGeneration.d.ts
new file mode 100644
index 0000000..19323f1
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/analogousGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const analogousGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/esm/generators/analogousGeneration.js b/vendors/smart-color/0.2.1/esm/generators/analogousGeneration.js
new file mode 100644
index 0000000..efdbef6
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/analogousGeneration.js
@@ -0,0 +1,30 @@
+import { colorToArray, arrayToColor, hueOffset } from '../utils';
+// generate sequential palette by analogous scheme
+export const analogousGeneration = (configuration) => {
+ const { count, color, tendency } = configuration;
+ const isTint = tendency === 'tint';
+ const [hue, saturation, value] = colorToArray(color, 'hsv');
+ const index = Math.floor(count / 2);
+ // Ref: Ant Design 3.x palette algorithm https://zhuanlan.zhihu.com/p/32422584
+ let dHue = 60 / (count - 1);
+ if (hue >= 60 && hue <= 240) {
+ // cool undertone
+ dHue = -dHue;
+ }
+ const dSaturation = (saturation - 0.1) / 3 / (count - index - 1);
+ const dValue = (value - 0.4) / 3 / index;
+ const newColors = new Array(count).fill(0).map((d, i) => {
+ const h = hueOffset(hue, dHue * (i - index));
+ const s = i <= index ? Math.min(saturation + dSaturation * (index - i), 1) : saturation + 3 * dSaturation * (index - i);
+ const v = i <= index ? value - 3 * dValue * (index - i) : Math.min(value - dValue * (index - i), 1);
+ return arrayToColor([h, s, v], 'hsv');
+ });
+ const palette = {
+ name: 'analogous',
+ semantic: null,
+ type: 'discrete-scale',
+ colors: isTint ? newColors : newColors.reverse(),
+ };
+ return palette;
+};
+//# sourceMappingURL=analogousGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/analogousGeneration.js.map b/vendors/smart-color/0.2.1/esm/generators/analogousGeneration.js.map
new file mode 100644
index 0000000..673bbdd
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/analogousGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"analogousGeneration.js","sourceRoot":"src/","sources":["generators/analogousGeneration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGjE,kDAAkD;AAClD,MAAM,CAAC,MAAM,mBAAmB,GAAe,CAAC,aAAa,EAAE,EAAE;IAC/D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;IAEjD,MAAM,MAAM,GAAG,QAAQ,KAAK,MAAM,CAAC;IACnC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACpC,8EAA8E;IAC9E,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC5B,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE;QAC3B,iBAAiB;QACjB,IAAI,GAAG,CAAC,IAAI,CAAC;KACd;IACD,MAAM,WAAW,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtD,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,GACL,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAChH,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpG,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAyB;QACpC,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE;KACjD,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/categoricalGeneration.d.ts b/vendors/smart-color/0.2.1/esm/generators/categoricalGeneration.d.ts
new file mode 100644
index 0000000..6aff965
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/categoricalGeneration.d.ts
@@ -0,0 +1,5 @@
+import { Color } from '@antv/color-schema';
+export declare const categoricalGenerationInHsv: (color: Color, dHue: number, count: number, colors?: (Color | undefined)[]) => {
+ newColors: Color[];
+ locked: any[];
+};
diff --git a/vendors/smart-color/0.2.1/esm/generators/categoricalGeneration.js b/vendors/smart-color/0.2.1/esm/generators/categoricalGeneration.js
new file mode 100644
index 0000000..e9bff05
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/categoricalGeneration.js
@@ -0,0 +1,27 @@
+import { colorToArray, arrayToColor, hueOffset, random } from '../utils';
+const saturationRange = [0.3, 0.9];
+const valueRange = [0.5, 1];
+export const categoricalGenerationInHsv = (color, dHue, count, colors = []) => {
+ const [h] = colorToArray(color, 'hsv');
+ const locked = new Array(count).fill(false);
+ let placeBasicColor = colors.findIndex((c) => c && c.model === color.model && c.value === color.value) === -1;
+ const newColors = new Array(count).fill(0).map((d, i) => {
+ const lockedColor = colors[i];
+ if (lockedColor) {
+ locked[i] = true;
+ return lockedColor;
+ }
+ // find the first unlocked position to place the basic color
+ if (placeBasicColor) {
+ placeBasicColor = false;
+ locked[i] = true;
+ return color;
+ }
+ return arrayToColor([hueOffset(h, dHue * i), random(...saturationRange), random(...valueRange)], 'hsv');
+ });
+ return {
+ newColors,
+ locked,
+ };
+};
+//# sourceMappingURL=categoricalGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/categoricalGeneration.js.map b/vendors/smart-color/0.2.1/esm/generators/categoricalGeneration.js.map
new file mode 100644
index 0000000..557e718
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/categoricalGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"categoricalGeneration.js","sourceRoot":"src/","sources":["generators/categoricalGeneration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEzE,MAAM,eAAe,GAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACrD,MAAM,UAAU,GAAqB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,KAAY,EACZ,IAAY,EACZ,KAAa,EACb,SAAgC,EAAE,EAClC,EAAE;IACF,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9G,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAS,EAAE;QAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,WAAW,EAAE;YACf,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACjB,OAAO,WAAW,CAAC;SACpB;QACD,4DAA4D;QAC5D,IAAI,eAAe,EAAE;YACnB,eAAe,GAAG,KAAK,CAAC;YACxB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACjB,OAAO,KAAK,CAAC;SACd;QACD,OAAO,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;IACH,OAAO;QACL,SAAS;QACT,MAAM;KACP,CAAC;AACJ,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/complementaryGeneration.d.ts b/vendors/smart-color/0.2.1/esm/generators/complementaryGeneration.d.ts
new file mode 100644
index 0000000..7460fef
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/complementaryGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const complementaryGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/esm/generators/complementaryGeneration.js b/vendors/smart-color/0.2.1/esm/generators/complementaryGeneration.js
new file mode 100644
index 0000000..aae473a
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/complementaryGeneration.js
@@ -0,0 +1,29 @@
+import { colorToArray, arrayToColor, hueOffset, random, randomInt } from '../utils';
+import { discreteScaleGenerationInLab } from './discreteScaleGeneration';
+// generate diverging palette by complementary scheme
+export const complementaryGeneration = (configuration) => {
+ const { count, color } = configuration;
+ const [hue, saturation, value] = colorToArray(color, 'hsv');
+ const complementaryColor = arrayToColor([hueOffset(hue, 180), saturation, value], 'hsv');
+ const maxL = randomInt(80, 90);
+ const minL = randomInt(15, 25);
+ const halfCount = Math.floor(count / 2);
+ const left = discreteScaleGenerationInLab(color, halfCount, [minL, maxL]);
+ const right = discreteScaleGenerationInLab(complementaryColor, halfCount, [minL, maxL]).reverse();
+ let newColors;
+ if (count % 2 === 1) {
+ const midColor = arrayToColor([(hueOffset(hue, 180) + hue) / 2, random(0.05, 0.1), random(0.9, 0.95)], 'hsv');
+ newColors = [...left, midColor, ...right];
+ }
+ else {
+ newColors = [...left, ...right];
+ }
+ const palette = {
+ name: 'complementary',
+ semantic: null,
+ type: 'discrete-scale',
+ colors: newColors,
+ };
+ return palette;
+};
+//# sourceMappingURL=complementaryGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/complementaryGeneration.js.map b/vendors/smart-color/0.2.1/esm/generators/complementaryGeneration.js.map
new file mode 100644
index 0000000..2cdb100
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/complementaryGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"complementaryGeneration.js","sourceRoot":"src/","sources":["generators/complementaryGeneration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEpF,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAEzE,qDAAqD;AACrD,MAAM,CAAC,MAAM,uBAAuB,GAAe,CAAC,aAAa,EAAE,EAAE;IACnE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC;IAEvC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5D,MAAM,kBAAkB,GAAG,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAEzF,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAExC,MAAM,IAAI,GAAG,4BAA4B,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,4BAA4B,CAAC,kBAAkB,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAClG,IAAI,SAAS,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE;QACnB,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9G,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC;KAC3C;SAAM;QACL,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC;KACjC;IACD,MAAM,OAAO,GAAyB;QACpC,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,SAAS;KAClB,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/discreteScaleGeneration.d.ts b/vendors/smart-color/0.2.1/esm/generators/discreteScaleGeneration.d.ts
new file mode 100644
index 0000000..ae960f7
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/discreteScaleGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Color } from '@antv/color-schema';
+export declare const discreteScaleGenerationInLab: (color: Color, count: number, lRange?: [number, number]) => Color[];
diff --git a/vendors/smart-color/0.2.1/esm/generators/discreteScaleGeneration.js b/vendors/smart-color/0.2.1/esm/generators/discreteScaleGeneration.js
new file mode 100644
index 0000000..980ca18
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/discreteScaleGeneration.js
@@ -0,0 +1,13 @@
+import { colorToArray, arrayToColor, randomInt } from '../utils';
+// Fix a, b, vary L
+export const discreteScaleGenerationInLab = (color, count, lRange = [randomInt(5, 10), randomInt(90, 95)]) => {
+ const [L, a, b] = colorToArray(color, 'lab');
+ const minL = L <= 15 ? L : lRange[0];
+ const maxL = L >= 85 ? L : lRange[1];
+ let dLightness = (maxL - minL) / (count - 1);
+ // basic color index
+ const index = Math.ceil((L - minL) / dLightness);
+ dLightness = index === 0 ? dLightness : (L - minL) / index;
+ return new Array(count).fill(0).map((d, i) => arrayToColor([dLightness * i + minL, a, b], 'lab'));
+};
+//# sourceMappingURL=discreteScaleGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/discreteScaleGeneration.js.map b/vendors/smart-color/0.2.1/esm/generators/discreteScaleGeneration.js.map
new file mode 100644
index 0000000..2df2d84
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/discreteScaleGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"discreteScaleGeneration.js","sourceRoot":"src/","sources":["generators/discreteScaleGeneration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEjE,mBAAmB;AACnB,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,KAAY,EACZ,KAAa,EACb,SAA2B,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EACvD,EAAE;IACX,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,UAAU,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7C,oBAAoB;IACpB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IACjD,UAAU,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;IAC3D,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACpG,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/index.d.ts b/vendors/smart-color/0.2.1/esm/generators/index.d.ts
new file mode 100644
index 0000000..1efdef2
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/index.d.ts
@@ -0,0 +1,9 @@
+import { PaletteGeneration } from '../types';
+/**
+ *
+ * @param type
+ * @param colors locked colors
+ * @param configuration
+ * @returns
+ */
+export declare const paletteGeneration: PaletteGeneration;
diff --git a/vendors/smart-color/0.2.1/esm/generators/index.js b/vendors/smart-color/0.2.1/esm/generators/index.js
new file mode 100644
index 0000000..39f7f8c
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/index.js
@@ -0,0 +1,39 @@
+import { monochromaticGeneration } from './monochromaticGeneration';
+import { analogousGeneration } from './analogousGeneration';
+import { achromaticGeneration } from './achromaticGeneration';
+import { complementaryGeneration } from './complementaryGeneration';
+import { splitComplementaryGeneration } from './splitComplementaryGeneration';
+import { triadicGeneration } from './triadicGeneration';
+import { tetradicGeneration } from './tetradicGeneration';
+import { polychromaticGeneration } from './polychromaticGeneration';
+import { randomGeneration } from './randomGeneration';
+import { validateConfiguration } from './validateConfiguration';
+const generator = {
+ monochromatic: monochromaticGeneration,
+ analogous: analogousGeneration,
+ achromatic: achromaticGeneration,
+ complementary: complementaryGeneration,
+ 'split-complementary': splitComplementaryGeneration,
+ triadic: triadicGeneration,
+ tetradic: tetradicGeneration,
+ polychromatic: polychromaticGeneration,
+ customized: randomGeneration,
+};
+/**
+ *
+ * @param type
+ * @param colors locked colors
+ * @param configuration
+ * @returns
+ */
+export const paletteGeneration = (type = 'monochromatic', configuration = {}) => {
+ // set default value
+ const newConfiguration = validateConfiguration(type, configuration);
+ try {
+ return generator[type](newConfiguration);
+ }
+ catch (e) {
+ return randomGeneration(newConfiguration);
+ }
+};
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/index.js.map b/vendors/smart-color/0.2.1/esm/generators/index.js.map
new file mode 100644
index 0000000..a148ffc
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["generators/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,SAAS,GAAsC;IACnD,aAAa,EAAE,uBAAuB;IACtC,SAAS,EAAE,mBAAmB;IAC9B,UAAU,EAAE,oBAAoB;IAChC,aAAa,EAAE,uBAAuB;IACtC,qBAAqB,EAAE,4BAA4B;IACnD,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,kBAAkB;IAC5B,aAAa,EAAE,uBAAuB;IACtC,UAAU,EAAE,gBAAgB;CAC7B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAsB,CAAC,OAAwB,eAAe,EAAE,aAAa,GAAG,EAAE,EAAE,EAAE;IAClH,oBAAoB;IACpB,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACpE,IAAI;QACF,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC;KAC1C;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;KAC3C;AACH,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/monochromaticGeneration.d.ts b/vendors/smart-color/0.2.1/esm/generators/monochromaticGeneration.d.ts
new file mode 100644
index 0000000..00c14f6
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/monochromaticGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const monochromaticGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/esm/generators/monochromaticGeneration.js b/vendors/smart-color/0.2.1/esm/generators/monochromaticGeneration.js
new file mode 100644
index 0000000..dceda96
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/monochromaticGeneration.js
@@ -0,0 +1,15 @@
+import { discreteScaleGenerationInLab } from './discreteScaleGeneration';
+// generate sequential palette by monochromatic scheme
+export const monochromaticGeneration = (configuration) => {
+ const { count, color, tendency } = configuration;
+ const isTint = tendency === 'tint';
+ const newColors = discreteScaleGenerationInLab(color, count);
+ const palette = {
+ name: 'monochromatic',
+ semantic: null,
+ type: 'discrete-scale',
+ colors: isTint ? newColors : newColors.reverse(),
+ };
+ return palette;
+};
+//# sourceMappingURL=monochromaticGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/monochromaticGeneration.js.map b/vendors/smart-color/0.2.1/esm/generators/monochromaticGeneration.js.map
new file mode 100644
index 0000000..efa33cc
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/monochromaticGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"monochromaticGeneration.js","sourceRoot":"src/","sources":["generators/monochromaticGeneration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAEzE,sDAAsD;AACtD,MAAM,CAAC,MAAM,uBAAuB,GAAe,CAAC,aAAa,EAAE,EAAE;IACnE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;IAEjD,MAAM,MAAM,GAAG,QAAQ,KAAK,MAAM,CAAC;IACnC,MAAM,SAAS,GAAG,4BAA4B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAyB;QACpC,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE;KACjD,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/polychromaticGeneration.d.ts b/vendors/smart-color/0.2.1/esm/generators/polychromaticGeneration.d.ts
new file mode 100644
index 0000000..30052f2
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/polychromaticGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const polychromaticGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/esm/generators/polychromaticGeneration.js b/vendors/smart-color/0.2.1/esm/generators/polychromaticGeneration.js
new file mode 100644
index 0000000..c6aa254
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/polychromaticGeneration.js
@@ -0,0 +1,16 @@
+import { paletteOptimization } from '../optimizers';
+import { categoricalGenerationInHsv } from './categoricalGeneration';
+// generate categorical palette by polychromatic scheme
+export const polychromaticGeneration = (configuration) => {
+ const { count, color, colors } = configuration;
+ const dHue = 360 / count;
+ const { newColors, locked } = categoricalGenerationInHsv(color, dHue, count, colors);
+ const palette = {
+ name: 'tetradic',
+ semantic: null,
+ type: 'categorical',
+ colors: newColors,
+ };
+ return paletteOptimization(palette, { locked });
+};
+//# sourceMappingURL=polychromaticGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/polychromaticGeneration.js.map b/vendors/smart-color/0.2.1/esm/generators/polychromaticGeneration.js.map
new file mode 100644
index 0000000..b108470
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/polychromaticGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"polychromaticGeneration.js","sourceRoot":"src/","sources":["generators/polychromaticGeneration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAGrE,uDAAuD;AACvD,MAAM,CAAC,MAAM,uBAAuB,GAAe,CAAC,aAAa,EAAE,EAAE;IACnE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAC/C,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;IACzB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,0BAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrF,MAAM,OAAO,GAAuB;QAClC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,OAAO,mBAAmB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/random.d.ts b/vendors/smart-color/0.2.1/esm/generators/random.d.ts
new file mode 100644
index 0000000..773795d
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/random.d.ts
@@ -0,0 +1 @@
+export declare function randomColor(): import("@antv/color-schema").Color;
diff --git a/vendors/smart-color/0.2.1/esm/generators/random.js b/vendors/smart-color/0.2.1/esm/generators/random.js
new file mode 100644
index 0000000..804b6f6
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/random.js
@@ -0,0 +1,8 @@
+import { arrayToColor, randomInt } from '../utils';
+export function randomColor() {
+ const r = randomInt(255);
+ const g = randomInt(255);
+ const b = randomInt(255);
+ return arrayToColor([r, g, b], 'rgb');
+}
+//# sourceMappingURL=random.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/random.js.map b/vendors/smart-color/0.2.1/esm/generators/random.js.map
new file mode 100644
index 0000000..cb3a24f
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/random.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"random.js","sourceRoot":"src/","sources":["generators/random.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEnD,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACzB,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/randomGeneration.d.ts b/vendors/smart-color/0.2.1/esm/generators/randomGeneration.d.ts
new file mode 100644
index 0000000..9451b1c
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/randomGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const randomGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/esm/generators/randomGeneration.js b/vendors/smart-color/0.2.1/esm/generators/randomGeneration.js
new file mode 100644
index 0000000..7b09fcf
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/randomGeneration.js
@@ -0,0 +1,22 @@
+import { paletteOptimization } from '../optimizers';
+import { randomColor } from './random';
+// generate categorical palette randomly
+export const randomGeneration = (configuration) => {
+ const { count, colors } = configuration;
+ const locked = [];
+ const palette = {
+ name: 'random',
+ semantic: null,
+ type: 'categorical',
+ colors: new Array(count).fill(0).map((d, i) => {
+ const lockedColor = colors[i];
+ if (lockedColor) {
+ locked[i] = true;
+ return lockedColor;
+ }
+ return randomColor();
+ }),
+ };
+ return paletteOptimization(palette, { locked });
+};
+//# sourceMappingURL=randomGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/randomGeneration.js.map b/vendors/smart-color/0.2.1/esm/generators/randomGeneration.js.map
new file mode 100644
index 0000000..f10774b
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/randomGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"randomGeneration.js","sourceRoot":"src/","sources":["generators/randomGeneration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,wCAAwC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAe,CAAC,aAAa,EAAE,EAAE;IAC5D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IACxC,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAuB;QAClC,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,WAAW,EAAE;gBACf,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACjB,OAAO,WAAW,CAAC;aACpB;YACD,OAAO,WAAW,EAAE,CAAC;QACvB,CAAC,CAAC;KACH,CAAC;IACF,OAAO,mBAAmB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/splitComplementaryGeneration.d.ts b/vendors/smart-color/0.2.1/esm/generators/splitComplementaryGeneration.d.ts
new file mode 100644
index 0000000..fd3354d
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/splitComplementaryGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const splitComplementaryGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/esm/generators/splitComplementaryGeneration.js b/vendors/smart-color/0.2.1/esm/generators/splitComplementaryGeneration.js
new file mode 100644
index 0000000..22f6c56
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/splitComplementaryGeneration.js
@@ -0,0 +1,16 @@
+import { paletteOptimization } from '../optimizers';
+import { categoricalGenerationInHsv } from './categoricalGeneration';
+// generate categorical palette by split complementary scheme
+export const splitComplementaryGeneration = (configuration) => {
+ const { count, color, colors } = configuration;
+ const dHue = 180;
+ const { newColors, locked } = categoricalGenerationInHsv(color, dHue, count, colors);
+ const palette = {
+ name: 'tetradic',
+ semantic: null,
+ type: 'categorical',
+ colors: newColors,
+ };
+ return paletteOptimization(palette, { locked });
+};
+//# sourceMappingURL=splitComplementaryGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/splitComplementaryGeneration.js.map b/vendors/smart-color/0.2.1/esm/generators/splitComplementaryGeneration.js.map
new file mode 100644
index 0000000..61c2ffa
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/splitComplementaryGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"splitComplementaryGeneration.js","sourceRoot":"src/","sources":["generators/splitComplementaryGeneration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAGrE,6DAA6D;AAC7D,MAAM,CAAC,MAAM,4BAA4B,GAAe,CAAC,aAAa,EAAE,EAAE;IACxE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAC/C,MAAM,IAAI,GAAG,GAAG,CAAC;IACjB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,0BAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrF,MAAM,OAAO,GAAuB;QAClC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,SAAS;KAClB,CAAC;IACF,OAAO,mBAAmB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/tetradicGeneration.d.ts b/vendors/smart-color/0.2.1/esm/generators/tetradicGeneration.d.ts
new file mode 100644
index 0000000..ce55fb4
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/tetradicGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const tetradicGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/esm/generators/tetradicGeneration.js b/vendors/smart-color/0.2.1/esm/generators/tetradicGeneration.js
new file mode 100644
index 0000000..06a2f1d
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/tetradicGeneration.js
@@ -0,0 +1,16 @@
+import { paletteOptimization } from '../optimizers';
+import { categoricalGenerationInHsv } from './categoricalGeneration';
+// generate categorical palette by tetradic scheme
+export const tetradicGeneration = (configuration) => {
+ const { count, color, colors } = configuration;
+ const dHue = 90;
+ const { newColors, locked } = categoricalGenerationInHsv(color, dHue, count, colors);
+ const palette = {
+ name: 'tetradic',
+ semantic: null,
+ type: 'categorical',
+ colors: newColors,
+ };
+ return paletteOptimization(palette, { locked });
+};
+//# sourceMappingURL=tetradicGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/tetradicGeneration.js.map b/vendors/smart-color/0.2.1/esm/generators/tetradicGeneration.js.map
new file mode 100644
index 0000000..823edb4
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/tetradicGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"tetradicGeneration.js","sourceRoot":"src/","sources":["generators/tetradicGeneration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAErE,kDAAkD;AAClD,MAAM,CAAC,MAAM,kBAAkB,GAAe,CAAC,aAAa,EAAE,EAAE;IAC9D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAC/C,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,0BAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrF,MAAM,OAAO,GAAuB;QAClC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,OAAO,mBAAmB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/triadicGeneration.d.ts b/vendors/smart-color/0.2.1/esm/generators/triadicGeneration.d.ts
new file mode 100644
index 0000000..8f650fe
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/triadicGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const triadicGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/esm/generators/triadicGeneration.js b/vendors/smart-color/0.2.1/esm/generators/triadicGeneration.js
new file mode 100644
index 0000000..21b4f81
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/triadicGeneration.js
@@ -0,0 +1,16 @@
+import { paletteOptimization } from '../optimizers';
+import { categoricalGenerationInHsv } from './categoricalGeneration';
+// generate categorical palette by triadic scheme
+export const triadicGeneration = (configuration) => {
+ const { count, color, colors } = configuration;
+ const dHue = 120;
+ const { newColors, locked } = categoricalGenerationInHsv(color, dHue, count, colors);
+ const palette = {
+ name: 'tetradic',
+ semantic: null,
+ type: 'categorical',
+ colors: newColors,
+ };
+ return paletteOptimization(palette, { locked });
+};
+//# sourceMappingURL=triadicGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/triadicGeneration.js.map b/vendors/smart-color/0.2.1/esm/generators/triadicGeneration.js.map
new file mode 100644
index 0000000..99f803d
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/triadicGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"triadicGeneration.js","sourceRoot":"src/","sources":["generators/triadicGeneration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAGrE,iDAAiD;AACjD,MAAM,CAAC,MAAM,iBAAiB,GAAe,CAAC,aAAa,EAAE,EAAE;IAC7D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAC/C,MAAM,IAAI,GAAG,GAAG,CAAC;IACjB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,0BAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrF,MAAM,OAAO,GAAuB;QAClC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,SAAS;KAClB,CAAC;IACF,OAAO,mBAAmB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/types.d.ts b/vendors/smart-color/0.2.1/esm/generators/types.d.ts
new file mode 100644
index 0000000..708157e
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/types.d.ts
@@ -0,0 +1,5 @@
+import { Palette } from '@antv/color-schema';
+import { GeneratorConfiguration } from '../types';
+export declare type Generation = (configuration: {
+ [K in keyof GeneratorConfiguration]-?: GeneratorConfiguration[K];
+}) => Palette;
diff --git a/vendors/smart-color/0.2.1/esm/generators/types.js b/vendors/smart-color/0.2.1/esm/generators/types.js
new file mode 100644
index 0000000..718fd38
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/types.js
@@ -0,0 +1,2 @@
+export {};
+//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/types.js.map b/vendors/smart-color/0.2.1/esm/generators/types.js.map
new file mode 100644
index 0000000..fa2322a
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/types.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"types.js","sourceRoot":"src/","sources":["generators/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/validateConfiguration.d.ts b/vendors/smart-color/0.2.1/esm/generators/validateConfiguration.d.ts
new file mode 100644
index 0000000..100eec8
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/validateConfiguration.d.ts
@@ -0,0 +1,8 @@
+import { ColorSchemeType } from '@antv/color-schema';
+import { GeneratorConfiguration } from '../types';
+export declare const validateConfiguration: (type: ColorSchemeType, configuration: GeneratorConfiguration) => {
+ color: import("@antv/color-schema").Color;
+ colors: import("@antv/color-schema").Color[];
+ count: number;
+ tendency: "tint" | "shade";
+};
diff --git a/vendors/smart-color/0.2.1/esm/generators/validateConfiguration.js b/vendors/smart-color/0.2.1/esm/generators/validateConfiguration.js
new file mode 100644
index 0000000..afe58c5
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/validateConfiguration.js
@@ -0,0 +1,22 @@
+import { randomColor } from './random';
+const DISCRETE_SCALE_TYPES = ['monochromatic'];
+export const validateConfiguration = (type, configuration) => {
+ const { count = 8, tendency = 'tint' } = configuration;
+ let { colors = [], color } = configuration;
+ // If the colour is not configured
+ // then select the first of the locked colors or generate a random color
+ if (!color) {
+ color = colors.find((c) => !!c && !!c.model && !!c.value) || randomColor();
+ }
+ // Discrete scale palette cannot be generated when colors are locked.
+ if (DISCRETE_SCALE_TYPES.includes(type)) {
+ colors = [];
+ }
+ return {
+ color,
+ colors,
+ count,
+ tendency,
+ };
+};
+//# sourceMappingURL=validateConfiguration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/generators/validateConfiguration.js.map b/vendors/smart-color/0.2.1/esm/generators/validateConfiguration.js.map
new file mode 100644
index 0000000..90f4ae2
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/generators/validateConfiguration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"validateConfiguration.js","sourceRoot":"src/","sources":["generators/validateConfiguration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,oBAAoB,GAAsB,CAAC,eAAe,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAqB,EAAE,aAAqC,EAAE,EAAE;IACpG,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,aAAa,CAAC;IACvD,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC;IAE3C,kCAAkC;IAClC,wEAAwE;IACxE,IAAI,CAAC,KAAK,EAAE;QACV,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;KAC5E;IAED,qEAAqE;IACrE,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACvC,MAAM,GAAG,EAAE,CAAC;KACb;IACD,OAAO;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/index.d.ts b/vendors/smart-color/0.2.1/esm/index.d.ts
new file mode 100644
index 0000000..b9dcd95
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/index.d.ts
@@ -0,0 +1,8 @@
+export { colorToArray, arrayToColor, colorToGray, colorToHex, hexToColor, nameToColor, colorBlend, colorBrighten, colorDarken, } from './utils';
+export { colorSimulation, invertGrayscale } from './simulators';
+export { paletteGeneration } from './generators';
+export { paletteOptimization } from './optimizers';
+export { getPaletteFromImage, getPaletteFromString } from './extractors';
+export { colorDifference, colorAesthetic } from './evaluators';
+export { ColorBlindnessSimulationType, SimulationType } from './types';
+export { COLOR_BLINDNESS_SIMULATION_TYPES, TENDENCIES } from './constant';
diff --git a/vendors/smart-color/0.2.1/esm/index.js b/vendors/smart-color/0.2.1/esm/index.js
new file mode 100644
index 0000000..6783ec5
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/index.js
@@ -0,0 +1,13 @@
+export { colorToArray, arrayToColor, colorToGray, colorToHex, hexToColor, nameToColor, colorBlend, colorBrighten, colorDarken, } from './utils';
+// color simulation
+export { colorSimulation, invertGrayscale } from './simulators';
+// palette generation
+export { paletteGeneration } from './generators';
+// palette optimization
+export { paletteOptimization } from './optimizers';
+// get palette
+export { getPaletteFromImage, getPaletteFromString } from './extractors';
+// professional test
+export { colorDifference, colorAesthetic } from './evaluators';
+export { COLOR_BLINDNESS_SIMULATION_TYPES, TENDENCIES } from './constant';
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/index.js.map b/vendors/smart-color/0.2.1/esm/index.js.map
new file mode 100644
index 0000000..179b9fe
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,aAAa,EACb,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,qBAAqB;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,uBAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,cAAc;AACd,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzE,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,gCAAgC,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/optimizers/index.d.ts b/vendors/smart-color/0.2.1/esm/optimizers/index.d.ts
new file mode 100644
index 0000000..3989b75
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/optimizers/index.d.ts
@@ -0,0 +1,2 @@
+import { PaletteOptimization } from '../types';
+export declare const paletteOptimization: PaletteOptimization;
diff --git a/vendors/smart-color/0.2.1/esm/optimizers/index.js b/vendors/smart-color/0.2.1/esm/optimizers/index.js
new file mode 100644
index 0000000..0c0b7e2
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/optimizers/index.js
@@ -0,0 +1,49 @@
+import { isContinuousPalette, isMatrixPalette } from '@antv/color-schema';
+import { WHITE } from '../constant';
+import { invertGrayscale } from '../simulators';
+import { colorToGray, colorToArray, arrayToColor, cloneDeep } from '../utils';
+import { optimizePaletteByGA } from './optimizePaletteByGA';
+const COLOR_DIFFERENCE_DEFAULT_VALUE = {
+ euclidean: 30,
+ // ref: Categorical Colormap Optimization with Visualization Case Studies
+ // suggests that [20, 25] might be the borderline zone
+ CIEDE2000: 20,
+ // WCAG, 1.4.3 Contrast (Minimum)
+ contrastRatio: 4.5,
+};
+const COLOR_DIFFERENCE_MAX_VALUE = {
+ euclidean: 291.48,
+ CIEDE2000: 100,
+ contrastRatio: 21,
+};
+export const paletteOptimization = (palette, configuration = {}) => {
+ const { locked = [], simulationType = 'normal', threshold, colorModel = 'hsv', colorDifferenceMeasure = 'euclidean', backgroundColor = WHITE, } = configuration;
+ let newThreshold = threshold;
+ // set default value
+ if (!newThreshold) {
+ newThreshold = COLOR_DIFFERENCE_DEFAULT_VALUE[colorDifferenceMeasure];
+ }
+ // In case of grayscale mode, the maximum difference between two can be estimated directly
+ // If the set threshold is outside of this range, trim directly to save optimization time
+ if (simulationType === 'grayscale') {
+ const maxValue = COLOR_DIFFERENCE_MAX_VALUE[colorDifferenceMeasure];
+ newThreshold = Math.min(newThreshold, maxValue / palette.colors.length);
+ }
+ const newPalette = cloneDeep(palette);
+ if (!isMatrixPalette(newPalette) && !isContinuousPalette(newPalette)) {
+ if (simulationType === 'grayscale') {
+ const colors = newPalette.colors.map((color) => [colorToGray(color)]);
+ const newColors = optimizePaletteByGA(colors, locked, simulationType, newThreshold, colorModel, colorDifferenceMeasure, backgroundColor);
+ newPalette.colors.forEach((color, index) => Object.assign(color, invertGrayscale(newColors[index][0] / 255, color)));
+ }
+ else {
+ const colors = newPalette.colors.map((color) => colorToArray(color, colorModel));
+ const newColors = optimizePaletteByGA(colors, locked, simulationType, newThreshold, colorModel, colorDifferenceMeasure, backgroundColor);
+ newPalette.colors.forEach((color, index) => {
+ Object.assign(color, arrayToColor(newColors[index], colorModel));
+ });
+ }
+ }
+ return newPalette;
+};
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/optimizers/index.js.map b/vendors/smart-color/0.2.1/esm/optimizers/index.js.map
new file mode 100644
index 0000000..f849958
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/optimizers/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["optimizers/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/optimizers/optimizePaletteByGA.d.ts b/vendors/smart-color/0.2.1/esm/optimizers/optimizePaletteByGA.d.ts
new file mode 100644
index 0000000..15c9341
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/optimizers/optimizePaletteByGA.d.ts
@@ -0,0 +1,7 @@
+import { Color, ColorModel } from '@antv/color-schema';
+import { ColorDifferenceMeasure, SimulationType } from '../types';
+declare type ColorArray = [number] | [number, number, number] | [number, number, number, number];
+declare type Colors = ColorArray[];
+export declare const calFitness: (colors: Colors, locked: boolean[], simulationType: SimulationType, colorModel: ColorModel, colorDifferenceMeasure: ColorDifferenceMeasure, backgroundColor: Color) => number;
+export declare const optimizePaletteByGA: (colors: Colors, locked: boolean[], simulationType: SimulationType, threshold: number, colorModel: ColorModel, colorDifference: ColorDifferenceMeasure, backgroundColor: Color) => any;
+export {};
diff --git a/vendors/smart-color/0.2.1/esm/optimizers/optimizePaletteByGA.js b/vendors/smart-color/0.2.1/esm/optimizers/optimizePaletteByGA.js
new file mode 100644
index 0000000..f1e5dfb
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/optimizers/optimizePaletteByGA.js
@@ -0,0 +1,132 @@
+import { ColorModelRange as COLOR_MODEL_RANGE } from '@antv/color-schema';
+import { arrayToColor, grayToColor, random, randomInt, cloneDeep } from '../utils';
+import { colorDifference } from '../evaluators';
+import { colorSimulation } from '../simulators';
+// Genetic algorithm configuration
+const POPULATION_NUMBER = 50;
+const CROSSOVER_RATE = 0.9;
+const MUTATION_RATE = 0.1;
+const MAX_GENERATION = 100;
+const ADAPTIVE_RANGE = [0.8, 1.2];
+const rouletteWheelSelection = (fitnesses) => {
+ const sumFitness = fitnesses.reduce((a, b) => a + b);
+ let index = 0;
+ const seed = random(sumFitness);
+ let count = 0;
+ for (let i = 0; i < fitnesses.length; i += 1) {
+ count += fitnesses[i];
+ if (seed < count) {
+ index = +i;
+ }
+ }
+ return index;
+};
+const tournamentSelection = (fitnesses) => {
+ const TOURNAMENT_SIZE = 3;
+ let index = -1;
+ let maxFitness = 0;
+ for (let i = 0; i < TOURNAMENT_SIZE; i += 1) {
+ const randomIndex = randomInt(fitnesses.length - 1);
+ if (fitnesses[randomIndex] > maxFitness) {
+ index = i;
+ maxFitness = fitnesses[randomIndex];
+ }
+ }
+ return index;
+};
+const selectionFunction = {
+ rouletteWheel: rouletteWheelSelection,
+ tournament: tournamentSelection,
+};
+const selection = (fitnesses, type = 'tournament') => {
+ return selectionFunction[type](fitnesses);
+};
+const crossover = (father, mother) => {
+ const child1 = cloneDeep(father);
+ const child2 = cloneDeep(mother);
+ for (let i = 1; i < father.length; i += 2) {
+ child1[i] = mother[i];
+ child2[i] = father[i];
+ }
+ return [child1, child2];
+};
+const mutate = (colors, unlockedIndexs, simulationType, colorModel) => {
+ const newColors = cloneDeep(colors);
+ // pick one color and change color adaptively
+ const mutateIndex = unlockedIndexs[randomInt(unlockedIndexs.length - 1)];
+ const dimensionIndex = randomInt(colors[0].length - 1);
+ let newValue = newColors[mutateIndex][dimensionIndex] * random(...ADAPTIVE_RANGE);
+ // clip
+ let range = [15, 240]; // grayscale
+ if (simulationType !== 'grayscale') {
+ range = COLOR_MODEL_RANGE[colorModel][colorModel.split('')[dimensionIndex]];
+ }
+ const [min, max] = range;
+ if (newValue < min) {
+ newValue = min;
+ }
+ else if (newValue > max) {
+ newValue = max;
+ }
+ newColors[mutateIndex][dimensionIndex] = newValue;
+ return newColors;
+};
+// fitness function
+export const calFitness = (colors, locked, simulationType, colorModel, colorDifferenceMeasure, backgroundColor) => {
+ let newColors;
+ if (simulationType === 'grayscale') {
+ newColors = colors.map(([gray]) => grayToColor(gray));
+ }
+ else {
+ newColors = colors.map((color) => colorSimulation(arrayToColor(color, colorModel), simulationType));
+ }
+ let minDifference = Infinity;
+ for (let i = 0; i < newColors.length; i += 1) {
+ for (let j = i + 1; j < newColors.length; j += 1) {
+ if (!(locked[i] && locked[j])) {
+ minDifference = Math.min(minDifference, colorDifference(newColors[i], newColors[j], { measure: colorDifferenceMeasure, backgroundColor }));
+ }
+ }
+ }
+ return minDifference;
+};
+export const optimizePaletteByGA = (colors, locked, simulationType, threshold, colorModel, colorDifference, backgroundColor) => {
+ if (Math.round(calFitness(colors, locked, simulationType, colorModel, colorDifference, backgroundColor)) > threshold) {
+ return colors;
+ }
+ const unlockedIndexs = new Array(colors.length)
+ .fill(0)
+ .map((d, index) => index)
+ .filter((d, index) => !locked[index]);
+ // Creating a new generation
+ let population = new Array(POPULATION_NUMBER)
+ .fill(0)
+ .map(() => mutate(colors, unlockedIndexs, simulationType, colorModel));
+ // Evaluating individuals
+ let fitnesses = population.map((colors) => calFitness(colors, locked, simulationType, colorModel, colorDifference, backgroundColor));
+ let bestFitness = Math.max(...fitnesses);
+ let elites = population[fitnesses.findIndex((d) => d === bestFitness)];
+ let cnt = 1;
+ while (cnt < MAX_GENERATION && Math.round(bestFitness) < threshold) {
+ // Elitist Strategy
+ const newPopulation = [elites];
+ for (let i = 1; i < POPULATION_NUMBER; i += 2) {
+ // Selection
+ const father = population[selection(fitnesses)];
+ const mother = population[selection(fitnesses)];
+ // Reproduction
+ let children = random() < CROSSOVER_RATE ? crossover(father, mother) : [father, mother];
+ // Mutation
+ children = children.map((child) => random() < MUTATION_RATE ? mutate(child, unlockedIndexs, simulationType, colorModel) : child);
+ newPopulation.push(...children);
+ }
+ population = newPopulation;
+ fitnesses = population.map((colors) => calFitness(colors, locked, simulationType, colorModel, colorDifference, backgroundColor));
+ const newBestFitness = Math.max(...fitnesses);
+ bestFitness = newBestFitness;
+ elites = population[fitnesses.findIndex((d) => d === newBestFitness)];
+ cnt += 1;
+ }
+ return elites;
+};
+//# sourceMappingURL=optimizePaletteByGA.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/optimizers/optimizePaletteByGA.js.map b/vendors/smart-color/0.2.1/esm/optimizers/optimizePaletteByGA.js.map
new file mode 100644
index 0000000..941b875
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/optimizers/optimizePaletteByGA.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"optimizePaletteByGA.js","sourceRoot":"src/","sources":["optimizers/optimizePaletteByGA.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/simulators/colorBlindness.d.ts b/vendors/smart-color/0.2.1/esm/simulators/colorBlindness.d.ts
new file mode 100644
index 0000000..d5da84d
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/simulators/colorBlindness.d.ts
@@ -0,0 +1,3 @@
+import { ColorBlindnessSimulationType, ColorSimulation } from '../types';
+export declare function isColorBlindnessSimulation(type: any): type is ColorBlindnessSimulationType;
+export declare const colorBlindnessSimulation: ColorSimulation;
diff --git a/vendors/smart-color/0.2.1/esm/simulators/colorBlindness.js b/vendors/smart-color/0.2.1/esm/simulators/colorBlindness.js
new file mode 100644
index 0000000..40c22d7
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/simulators/colorBlindness.js
@@ -0,0 +1,17 @@
+// @ts-ignore
+import blinder from 'color-blind';
+import { COLOR_BLINDNESS_SIMULATION_TYPES } from '../constant';
+import { hexToColor, colorToHex } from '../utils';
+export function isColorBlindnessSimulation(type) {
+ return type !== 'normal' && COLOR_BLINDNESS_SIMULATION_TYPES.indexOf(type) > -1;
+}
+// get color in color blindness simulation
+export const colorBlindnessSimulation = (color, type = 'normal') => {
+ if (type === 'normal') {
+ return { ...color };
+ }
+ const hexColor = colorToHex(color);
+ const blindColor = blinder[type](hexColor);
+ return hexToColor(blindColor);
+};
+//# sourceMappingURL=colorBlindness.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/simulators/colorBlindness.js.map b/vendors/smart-color/0.2.1/esm/simulators/colorBlindness.js.map
new file mode 100644
index 0000000..443b804
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/simulators/colorBlindness.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"colorBlindness.js","sourceRoot":"src/","sources":["simulators/colorBlindness.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,OAAO,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD,MAAM,UAAU,0BAA0B,CAAC,IAAS;IAClD,OAAO,IAAI,KAAK,QAAQ,IAAI,gCAAgC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,0CAA0C;AAC1C,MAAM,CAAC,MAAM,wBAAwB,GAAoB,CAAC,KAAK,EAAE,IAAI,GAAG,QAAQ,EAAE,EAAE;IAClF,IAAI,IAAI,KAAK,QAAQ,EAAE;QACrB,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;KACrB;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/simulators/grayscale.d.ts b/vendors/smart-color/0.2.1/esm/simulators/grayscale.d.ts
new file mode 100644
index 0000000..179588e
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/simulators/grayscale.d.ts
@@ -0,0 +1,4 @@
+import { Color } from '@antv/color-schema';
+import { ColorSimulation } from '../types';
+export declare const grayscale: ColorSimulation;
+export declare function invertGrayscale(grayscaleValue: number, color: Color): Color;
diff --git a/vendors/smart-color/0.2.1/esm/simulators/grayscale.js b/vendors/smart-color/0.2.1/esm/simulators/grayscale.js
new file mode 100644
index 0000000..db9803a
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/simulators/grayscale.js
@@ -0,0 +1,39 @@
+import { arrayToColor, colorToArray, colorToGray, grayToColor } from '../utils';
+// get color in grayscale
+export const grayscale = (color) => {
+ const gray = colorToGray(color);
+ const [, , , alpha = 1] = colorToArray(color, 'rgba');
+ return grayToColor(gray, alpha);
+};
+// invert color from the gray scale value
+// grayscaleValue: [0, 1]
+export function invertGrayscale(grayscaleValue, color) {
+ const [, a, b] = colorToArray(color, 'lab');
+ const [, , , alpha = 1] = colorToArray(color, 'rgba');
+ const target = grayscaleValue * 100;
+ let L = Math.round(target);
+ let newGray = colorToGray(arrayToColor([L, a, b], 'lab'));
+ let cnt = 25;
+ while (Math.round(target) !== Math.round((newGray / 255) * 100) && cnt > 0) {
+ if (target > (newGray / 255) * 100) {
+ L += 1;
+ }
+ else {
+ L -= 1;
+ }
+ cnt -= 1;
+ newGray = colorToGray(arrayToColor([L, a, b], 'lab'));
+ }
+ if (Math.round(target) < Math.round((newGray / 255) * 100))
+ L -= 1;
+ let newColor;
+ if (alpha === 1) {
+ newColor = arrayToColor([L, a, b], 'lab');
+ }
+ else {
+ const rgb = colorToArray(arrayToColor([L, a, b], 'lab'), 'rgb');
+ newColor = arrayToColor([...rgb, alpha], 'rgba');
+ }
+ return { ...color, ...newColor };
+}
+//# sourceMappingURL=grayscale.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/simulators/grayscale.js.map b/vendors/smart-color/0.2.1/esm/simulators/grayscale.js.map
new file mode 100644
index 0000000..de3904b
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/simulators/grayscale.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"grayscale.js","sourceRoot":"src/","sources":["simulators/grayscale.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGhF,yBAAyB;AACzB,MAAM,CAAC,MAAM,SAAS,GAAoB,CAAC,KAAK,EAAE,EAAE;IAClD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,KAAK,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtD,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,yCAAyC;AACzC,yBAAyB;AACzB,MAAM,UAAU,eAAe,CAAC,cAAsB,EAAE,KAAY;IAClE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,KAAK,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,cAAc,GAAG,GAAG,CAAC;IAEpC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE;QAC1E,IAAI,MAAM,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE;YAClC,CAAC,IAAI,CAAC,CAAC;SACR;aAAM;YACL,CAAC,IAAI,CAAC,CAAC;SACR;QACD,GAAG,IAAI,CAAC,CAAC;QACT,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;KACvD;IACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAAE,CAAC,IAAI,CAAC,CAAC;IAEnE,IAAI,QAAe,CAAC;IACpB,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;KAC3C;SAAM;QACL,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAChE,QAAQ,GAAG,YAAY,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,CAAqC,EAAE,MAAM,CAAC,CAAC;KACtF;IACD,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;AACnC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/simulators/index.d.ts b/vendors/smart-color/0.2.1/esm/simulators/index.d.ts
new file mode 100644
index 0000000..05e27e5
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/simulators/index.d.ts
@@ -0,0 +1,4 @@
+import { ColorSimulation } from '../types';
+export declare const colorSimulation: ColorSimulation;
+export { isColorBlindnessSimulation } from './colorBlindness';
+export { invertGrayscale } from './grayscale';
diff --git a/vendors/smart-color/0.2.1/esm/simulators/index.js b/vendors/smart-color/0.2.1/esm/simulators/index.js
new file mode 100644
index 0000000..6da88ab
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/simulators/index.js
@@ -0,0 +1,11 @@
+import { colorBlindnessSimulation } from './colorBlindness';
+import { grayscale } from './grayscale';
+export const colorSimulation = (color, type = 'normal') => {
+ if (type === 'grayscale') {
+ return grayscale(color);
+ }
+ return colorBlindnessSimulation(color, type);
+};
+export { isColorBlindnessSimulation } from './colorBlindness';
+export { invertGrayscale } from './grayscale';
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/simulators/index.js.map b/vendors/smart-color/0.2.1/esm/simulators/index.js.map
new file mode 100644
index 0000000..11fae2a
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/simulators/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["simulators/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,MAAM,eAAe,GAAoB,CAAC,KAAK,EAAE,IAAI,GAAG,QAAQ,EAAE,EAAE;IACzE,IAAI,IAAI,KAAK,WAAW,EAAE;QACxB,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;KACzB;IACD,OAAO,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/types.d.ts b/vendors/smart-color/0.2.1/esm/types.d.ts
new file mode 100644
index 0000000..bfe626a
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/types.d.ts
@@ -0,0 +1,47 @@
+import { Color, Palette, ColorModel, ColorSchemeType, CategoricalPalette, DiscreteScalePalette } from '@antv/color-schema';
+import { COLOR_BLINDNESS_SIMULATION_TYPES, TENDENCIES, COLOR_DIFFERENCE_MEASURES, COLOR_AESTHETIC_MEASURES, BLEND_MODES, SEPARABLE_BLEND_MODES, NON_SEPARABLE_BLEND_MODES } from './constant';
+export declare type ColorBlindnessSimulationType = typeof COLOR_BLINDNESS_SIMULATION_TYPES[number];
+export declare type GrayscaleType = 'grayscale';
+export declare type SimulationType = ColorBlindnessSimulationType | GrayscaleType;
+export declare type ColorSimulation = (color: Color, type?: SimulationType) => Color;
+export declare type ColorDifferenceMeasure = typeof COLOR_DIFFERENCE_MEASURES[number];
+declare type ColorDifferenceGeneralConfiguration = {
+ backgroundColor?: Color;
+};
+export declare type ColorDifferenceConfiguration = ColorDifferenceGeneralConfiguration & ({
+ measure: 'euclidean';
+ colorModel?: ColorModel;
+} | {
+ measure: 'CIEDE2000' | 'contrastRatio';
+});
+export declare type ColorDifference = (color1: Color, color2: Color, configuration?: ColorDifferenceConfiguration) => number;
+export declare type ColorAestheticMeasure = typeof COLOR_AESTHETIC_MEASURES[number];
+export declare type ColorAestheticConfiguration = {
+ measure: ColorAestheticMeasure;
+ backgroundColor?: Color;
+};
+export declare type ColorAesthetic = (color1: Color, color2: Color, configuration?: ColorAestheticConfiguration) => number;
+export declare type OptimizerConfiguration = {
+ locked?: boolean[];
+ simulationType?: SimulationType;
+ threshold?: number;
+ colorModel?: ColorModel;
+ colorDifferenceMeasure?: ColorDifferenceMeasure;
+ backgroundColor?: Color;
+};
+export declare type PaletteOptimization = (palette: Palette, configuration?: OptimizerConfiguration) => Palette;
+declare type Tendency = typeof TENDENCIES[number];
+export declare type GeneratorConfiguration = {
+ count?: number;
+ color?: Color;
+ colors?: (Color | undefined)[];
+ tendency?: Tendency;
+};
+export declare type PaletteGeneration = (type?: ColorSchemeType, configuration?: GeneratorConfiguration) => CategoricalPalette | DiscreteScalePalette;
+export declare type SeparableBlendMode = typeof SEPARABLE_BLEND_MODES[number];
+export declare type NonSeparableBlendMode = typeof NON_SEPARABLE_BLEND_MODES[number];
+export declare type BlendMode = typeof BLEND_MODES[number];
+export declare type ColorBlend = (colorTop: Color, colorBottom: Color, mode?: BlendMode) => Color;
+export declare type ColorDarken = (color: Color, value?: number) => Color;
+export declare type ColorBrighten = (color: Color, value?: number) => Color;
+export {};
diff --git a/vendors/smart-color/0.2.1/esm/types.js b/vendors/smart-color/0.2.1/esm/types.js
new file mode 100644
index 0000000..718fd38
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/types.js
@@ -0,0 +1,2 @@
+export {};
+//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/types.js.map b/vendors/smart-color/0.2.1/esm/types.js.map
new file mode 100644
index 0000000..1d74d2b
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/types.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"types.js","sourceRoot":"src/","sources":["types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBlend.d.ts b/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBlend.d.ts
new file mode 100644
index 0000000..194d1e9
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBlend.d.ts
@@ -0,0 +1,2 @@
+import { ColorBlend } from '../../types';
+export declare const colorBlend: ColorBlend;
diff --git a/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBlend.js b/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBlend.js
new file mode 100644
index 0000000..d4b5a9a
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBlend.js
@@ -0,0 +1,115 @@
+import { SEPARABLE_BLEND_MODES } from '../../constant';
+import { colorToArray } from '../colorConversion';
+const multiply = (top, bottom) => (top * bottom) / 255;
+const screen = (top, bottom) => top + bottom - (top * bottom) / 255;
+const hardLight = (top, bottom) => top < 128 ? multiply(2 * top, bottom) : screen(2 * top - 255, bottom);
+const separableBlendFunc = {
+ /** w3c */
+ normal: (top) => top,
+ darken: (top, bottom) => Math.min(top, bottom),
+ multiply,
+ colorBurn: (top, bottom) => {
+ if (top === 0)
+ return 0;
+ return Math.max(0, 255 * (1 - (255 - bottom) / top));
+ },
+ lighten: (top, bottom) => Math.max(top, bottom),
+ screen,
+ colorDodge: (top, bottom) => {
+ if (top === 255)
+ return 255;
+ return Math.min(255, 255 * (bottom / (255 - top)));
+ },
+ overlay: (top, bottom) => hardLight(bottom, top),
+ softLight: (top, bottom) => {
+ if (top < 128) {
+ return bottom - (1 - (2 * top) / 255) * bottom * (1 - bottom / 255);
+ }
+ const D = bottom < 64 ? ((16 * (bottom / 255) - 12) * (bottom / 255) + 4) * (bottom / 255) : Math.sqrt(bottom / 255);
+ return bottom + 255 * ((2 * top) / 255 - 1) * (D - bottom / 255);
+ },
+ hardLight,
+ difference: (top, bottom) => Math.abs(top - bottom),
+ exclusion: (top, bottom) => top + bottom - (2 * top * bottom) / 255,
+ /** photoshop */
+ linearBurn: (top, bottom) => Math.max(top + bottom - 255, 0),
+ linearDodge: (top, bottom) => Math.min(255, top + bottom),
+ linearLight: (top, bottom) => Math.max(bottom + 2 * top - 255, 0),
+ vividLight: (top, bottom) => top < 128 ? 255 * (1 - (1 - bottom / 255) / ((2 * top) / 255)) : 255 * (bottom / 2 / (255 - top)),
+ pinLight: (top, bottom) => (top < 128 ? Math.min(bottom, 2 * top) : Math.max(bottom, 2 * top - 255)),
+};
+const lum = (rgb) => {
+ return 0.3 * rgb[0] + 0.58 * rgb[1] + 0.11 * rgb[2];
+};
+const clipColor = (rgb) => {
+ const l = lum(rgb);
+ const min = Math.min(...rgb);
+ const max = Math.max(...rgb);
+ let color = [...rgb];
+ if (min < 0) {
+ color = color.map((value) => l + ((value - l) * l) / (l - min));
+ }
+ if (max > 255) {
+ color = color.map((value) => l + ((value - l) * (255 - l)) / (max - l));
+ }
+ return color;
+};
+const setLum = (rgb, l) => {
+ const d = l - lum(rgb);
+ return clipColor(rgb.map((value) => value + d));
+};
+const sat = (rgb) => {
+ return Math.max(...rgb) - Math.min(...rgb);
+};
+const setSat = (rgb, s) => {
+ const arr = rgb.map((value, index) => ({ value, index }));
+ arr.sort((a, b) => a.value - b.value);
+ const minIndex = arr[0].index;
+ const midIndex = arr[1].index;
+ const maxIndex = arr[2].index;
+ const color = [...rgb];
+ if (color[maxIndex] > color[minIndex]) {
+ color[midIndex] = ((color[midIndex] - color[minIndex]) * s) / (color[maxIndex] - color[minIndex]);
+ color[maxIndex] = s;
+ }
+ else {
+ color[midIndex] = 0;
+ color[maxIndex] = 0;
+ }
+ color[minIndex] = 0;
+ return color;
+};
+const nonSeparableBlendFunc = {
+ hue: (top, bottom) => setLum(setSat(top, sat(bottom)), lum(bottom)),
+ saturation: (top, bottom) => setLum(setSat(bottom, sat(top)), lum(bottom)),
+ color: (top, bottom) => setLum(top, lum(bottom)),
+ luminosity: (top, bottom) => setLum(bottom, lum(top)),
+};
+export const colorBlend = (colorTop, colorBottom, mode = 'normal') => {
+ const [r1, g1, b1, a1] = colorToArray(colorTop, 'rgba');
+ const [r2, g2, b2, a2] = colorToArray(colorBottom, 'rgba');
+ const rgb1 = [r1, g1, b1];
+ const rgb2 = [r2, g2, b2];
+ let blendRgb;
+ if (SEPARABLE_BLEND_MODES.includes(mode)) {
+ const func = separableBlendFunc[mode];
+ blendRgb = rgb1.map((num1, index) => Math.floor(func(num1, rgb2[index])));
+ }
+ else {
+ blendRgb = nonSeparableBlendFunc[mode](rgb1, rgb2);
+ }
+ const a = a1 + a2 * (1 - a1);
+ const r = Math.round((a1 * (1 - a2) * r1 + a1 * a2 * blendRgb[0] + (1 - a1) * a2 * r2) / a);
+ const g = Math.round((a1 * (1 - a2) * g1 + a1 * a2 * blendRgb[1] + (1 - a1) * a2 * g2) / a);
+ const b = Math.round((a1 * (1 - a2) * b1 + a1 * a2 * blendRgb[2] + (1 - a1) * a2 * b2) / a);
+ if (a === 1)
+ return {
+ model: 'rgb',
+ value: { r, g, b },
+ };
+ return {
+ model: 'rgba',
+ value: { r, g, b, a },
+ };
+};
+//# sourceMappingURL=colorBlend.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBlend.js.map b/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBlend.js.map
new file mode 100644
index 0000000..c0b2938
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBlend.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"colorBlend.js","sourceRoot":"src/","sources":["utils/colorComputation/colorBlend.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBrightenDarken.d.ts b/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBrightenDarken.d.ts
new file mode 100644
index 0000000..41777bb
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBrightenDarken.d.ts
@@ -0,0 +1,3 @@
+import { ColorBrighten, ColorDarken } from '@src/types';
+export declare const colorDarken: ColorDarken;
+export declare const colorBrighten: ColorBrighten;
diff --git a/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBrightenDarken.js b/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBrightenDarken.js
new file mode 100644
index 0000000..4dea9e1
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBrightenDarken.js
@@ -0,0 +1,78 @@
+import { clamp } from '../helper';
+import { colorToArray } from '../colorConversion';
+// get darken/brighten color
+// ref: https://zhuanlan.zhihu.com/p/32422584
+const hueStep = 2;
+const saturationStep = 0.16;
+const saturationStep2 = 0.05;
+const brightnessStep1 = 0.05;
+const brightnessStep2 = 0.15;
+const lightColorCount = 5;
+const darkColorCount = 4;
+const getHue = (h, i, isLight) => {
+ let hue;
+ if (h >= 60 && h <= 240) {
+ hue = isLight ? h - hueStep * i : h + hueStep * i;
+ }
+ else {
+ hue = isLight ? h + hueStep * i : h - hueStep * i;
+ }
+ if (hue < 0) {
+ hue += 360;
+ }
+ else if (hue >= 360) {
+ hue -= 360;
+ }
+ return Math.round(hue);
+};
+const getSaturation = (s, i, isLight) => {
+ let saturation;
+ if (isLight) {
+ saturation = s - saturationStep * i;
+ }
+ else if (i === darkColorCount) {
+ saturation = s + saturationStep;
+ }
+ else {
+ saturation = s + saturationStep2 * i;
+ }
+ if (isLight && i === lightColorCount && saturation > 0.1) {
+ saturation = 0.1;
+ }
+ saturation = clamp(saturation, 0.06, 1);
+ return Number(saturation.toFixed(2));
+};
+const getValue = (v, i, isLight) => {
+ let value;
+ if (isLight) {
+ value = v + brightnessStep1 * i;
+ }
+ else {
+ value = v - brightnessStep2 * i;
+ }
+ value = clamp(value, 0, 1);
+ return Number(value.toFixed(2));
+};
+export const colorDarken = (color, value = 1) => {
+ const [h, s, v] = colorToArray(color, 'hsv');
+ return {
+ model: 'hsv',
+ value: {
+ h: getHue(h, value, false),
+ s: getSaturation(s, value, false),
+ v: getValue(v, value, false),
+ },
+ };
+};
+export const colorBrighten = (color, value = 1) => {
+ const [h, s, v] = colorToArray(color, 'hsv');
+ return {
+ model: 'hsv',
+ value: {
+ h: getHue(h, value, true),
+ s: getSaturation(s, value, true),
+ v: getValue(v, value, true),
+ },
+ };
+};
+//# sourceMappingURL=colorBrightenDarken.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBrightenDarken.js.map b/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBrightenDarken.js.map
new file mode 100644
index 0000000..de605db
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/colorComputation/colorBrightenDarken.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"colorBrightenDarken.js","sourceRoot":"src/","sources":["utils/colorComputation/colorBrightenDarken.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/colorComputation/index.d.ts b/vendors/smart-color/0.2.1/esm/utils/colorComputation/index.d.ts
new file mode 100644
index 0000000..e031e97
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/colorComputation/index.d.ts
@@ -0,0 +1,3 @@
+export { colorBlend } from './colorBlend';
+export { colorBrighten, colorDarken } from './colorBrightenDarken';
+export declare const hueOffset: (hue: number, dHue: number) => number;
diff --git a/vendors/smart-color/0.2.1/esm/utils/colorComputation/index.js b/vendors/smart-color/0.2.1/esm/utils/colorComputation/index.js
new file mode 100644
index 0000000..494f806
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/colorComputation/index.js
@@ -0,0 +1,13 @@
+export { colorBlend } from './colorBlend';
+export { colorBrighten, colorDarken } from './colorBrightenDarken';
+export const hueOffset = (hue, dHue) => {
+ let newHue = (hue + dHue) % 360;
+ if (newHue < 0) {
+ newHue += 360;
+ }
+ else if (newHue >= 360) {
+ newHue -= 360;
+ }
+ return newHue;
+};
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/colorComputation/index.js.map b/vendors/smart-color/0.2.1/esm/utils/colorComputation/index.js.map
new file mode 100644
index 0000000..041704d
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/colorComputation/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["utils/colorComputation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,IAAY,EAAU,EAAE;IAC7D,IAAI,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;IAChC,IAAI,MAAM,GAAG,CAAC,EAAE;QACd,MAAM,IAAI,GAAG,CAAC;KACf;SAAM,IAAI,MAAM,IAAI,GAAG,EAAE;QACxB,MAAM,IAAI,GAAG,CAAC;KACf;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/colorConversion.d.ts b/vendors/smart-color/0.2.1/esm/utils/colorConversion.d.ts
new file mode 100644
index 0000000..ca013e0
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/colorConversion.d.ts
@@ -0,0 +1,10 @@
+import { Color, ColorModel } from '@antv/color-schema';
+import { Color as ChromaColor } from 'chroma-js';
+export declare const colorToChromaColor: (color: Color) => ChromaColor;
+export declare const colorToArray: (color: Color, colorModel?: ColorModel) => [number, number, number] | [number, number, number, number];
+export declare const arrayToColor: (array: [number] | [number, number, number] | [number, number, number, number], colorModel?: ColorModel) => Color;
+export declare function colorToGray(color: Color): number;
+export declare function grayToColor(gray: number, alpha?: number): Color;
+export { colorToHex } from '@antv/color-schema';
+export declare function hexToColor(hexValue: string): Color;
+export declare function nameToColor(name: string): Color;
diff --git a/vendors/smart-color/0.2.1/esm/utils/colorConversion.js b/vendors/smart-color/0.2.1/esm/utils/colorConversion.js
new file mode 100644
index 0000000..268ab81
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/colorConversion.js
@@ -0,0 +1,93 @@
+import chroma from 'chroma-js';
+import { getHexByName } from './getHexByName';
+const isChromaColor = (color) => {
+ if (chroma.valid(color)) {
+ return true;
+ }
+ return false;
+};
+// Convert color to chroma color
+export const colorToChromaColor = (color) => {
+ const { value } = color;
+ if (isChromaColor(value)) {
+ return chroma(value);
+ }
+ return chroma('#000');
+};
+// Convert color to an array in a specific color model
+export const colorToArray = (color, colorModel = color.model) => {
+ const chromaColor = colorToChromaColor(color);
+ if (chromaColor) {
+ return chromaColor[colorModel]();
+ }
+ return [0, 0, 0];
+};
+// Convert an array in a specific color model to color
+export const arrayToColor = (array, colorModel = array.length === 4 ? 'rgba' : 'rgb') => {
+ const value = {};
+ if (array.length === 1) {
+ const [v] = array;
+ for (let i = 0; i < colorModel.length; i += 1) {
+ value[colorModel[i]] = v;
+ }
+ }
+ else {
+ for (let i = 0; i < colorModel.length; i += 1) {
+ value[colorModel[i]] = array[i];
+ }
+ }
+ return {
+ model: colorModel,
+ value,
+ };
+};
+// Convert color to gray value
+export function colorToGray(color) {
+ const [r, g, b] = colorToArray(color, 'rgb'); // [red, green, blue]
+ // Ref:https://tannerhelland.com/2011/10/01/grayscale-image-algorithm-vb6.html
+ const gray = Math.round(0.299 * r + 0.587 * g + 0.114 * b);
+ // gray value: [0, 255]
+ return gray;
+}
+// Convert gray value to color
+export function grayToColor(gray, alpha = 1) {
+ if (alpha === 1) {
+ return {
+ model: 'rgb',
+ value: {
+ r: gray,
+ g: gray,
+ b: gray,
+ },
+ };
+ }
+ return {
+ model: 'rgba',
+ value: {
+ r: gray,
+ g: gray,
+ b: gray,
+ a: alpha,
+ },
+ };
+}
+export { colorToHex } from '@antv/color-schema';
+export function hexToColor(hexValue) {
+ if (/^(#|0x)?[0-9a-fA-F]{3}$/.test(hexValue) || /^(#|0x)?[0-9a-fA-F]{6}$/.test(hexValue)) {
+ const rgb = chroma(hexValue).rgb();
+ return arrayToColor(rgb, 'rgb');
+ }
+ if (/^(#|0x)?[0-9a-fA-F]{4}$/.test(hexValue) || /^(#|0x)?[0-9a-fA-F]{8}$/.test(hexValue)) {
+ const rgba = chroma(hexValue).rgba();
+ return arrayToColor(rgba, 'rgba');
+ }
+ return {
+ model: 'rgb',
+ value: { r: 0, g: 0, b: 0 },
+ };
+}
+export function nameToColor(name) {
+ const hex = getHexByName(name);
+ return hexToColor(hex);
+}
+//# sourceMappingURL=colorConversion.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/colorConversion.js.map b/vendors/smart-color/0.2.1/esm/utils/colorConversion.js.map
new file mode 100644
index 0000000..2aea5dc
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/colorConversion.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"colorConversion.js","sourceRoot":"src/","sources":["utils/colorConversion.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/degree.d.ts b/vendors/smart-color/0.2.1/esm/utils/degree.d.ts
new file mode 100644
index 0000000..a5026a9
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/degree.d.ts
@@ -0,0 +1,2 @@
+export declare function rad2deg(n: number): number;
+export declare function deg2rad(n: number): number;
diff --git a/vendors/smart-color/0.2.1/esm/utils/degree.js b/vendors/smart-color/0.2.1/esm/utils/degree.js
new file mode 100644
index 0000000..0a776a8
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/degree.js
@@ -0,0 +1,7 @@
+export function rad2deg(n) {
+ return n * (180 / Math.PI);
+}
+export function deg2rad(n) {
+ return n * (Math.PI / 180);
+}
+//# sourceMappingURL=degree.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/degree.js.map b/vendors/smart-color/0.2.1/esm/utils/degree.js.map
new file mode 100644
index 0000000..3b7b3e0
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/degree.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"degree.js","sourceRoot":"src/","sources":["utils/degree.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,OAAO,CAAC,CAAS;IAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AACD,MAAM,UAAU,OAAO,CAAC,CAAS;IAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;AAC7B,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/getHexByName.d.ts b/vendors/smart-color/0.2.1/esm/utils/getHexByName.d.ts
new file mode 100644
index 0000000..489f89e
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/getHexByName.d.ts
@@ -0,0 +1 @@
+export declare const getHexByName: (name: string) => any;
diff --git a/vendors/smart-color/0.2.1/esm/utils/getHexByName.js b/vendors/smart-color/0.2.1/esm/utils/getHexByName.js
new file mode 100644
index 0000000..0c1c515
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/getHexByName.js
@@ -0,0 +1,153 @@
+const nameHex = {
+ 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',
+};
+// @ts-ignore
+export const getHexByName = (name) => nameHex[name] || '#000000';
+//# sourceMappingURL=getHexByName.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/getHexByName.js.map b/vendors/smart-color/0.2.1/esm/utils/getHexByName.js.map
new file mode 100644
index 0000000..52a32c7
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/getHexByName.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"getHexByName.js","sourceRoot":"src/","sources":["utils/getHexByName.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/helper.d.ts b/vendors/smart-color/0.2.1/esm/utils/helper.d.ts
new file mode 100644
index 0000000..0e59bd9
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/helper.d.ts
@@ -0,0 +1,4 @@
+export declare const random: (a?: number, b?: number) => number;
+export declare const randomInt: (a?: number, b?: number) => number;
+export declare const clamp: (num: number, boundOne: number, boundTwo: number) => number;
+export declare const cloneDeep: (target: any) => any;
diff --git a/vendors/smart-color/0.2.1/esm/utils/helper.js b/vendors/smart-color/0.2.1/esm/utils/helper.js
new file mode 100644
index 0000000..83c778a
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/helper.js
@@ -0,0 +1,42 @@
+export const random = (a = 1, b = 0) => {
+ const lower = Math.min(a, b);
+ const upper = Math.max(a, b);
+ return lower + Math.random() * (upper - lower);
+};
+export const randomInt = (a = 1, b = 0) => {
+ const lower = Math.ceil(Math.min(a, b));
+ const upper = Math.floor(Math.max(a, b));
+ return Math.floor(lower + Math.random() * (upper - lower + 1));
+};
+export const clamp = (num, boundOne, boundTwo) => {
+ if (!boundTwo) {
+ return Math.max(num, boundOne) === boundOne ? num : boundOne;
+ }
+ if (Math.min(num, boundOne) === num) {
+ return boundOne;
+ }
+ if (Math.max(num, boundTwo) === num) {
+ return boundTwo;
+ }
+ return num;
+};
+// poor version, but enough
+export const cloneDeep = (target) => {
+ if (target && typeof target === 'object') {
+ const isArray = Array.isArray(target);
+ if (isArray) {
+ const cloneTarget = target.map((d) => cloneDeep(d));
+ return cloneTarget;
+ }
+ // isObject
+ const cloneTarget = {};
+ const keys = Object.keys(target);
+ keys.forEach((key) => {
+ // @ts-ignore
+ cloneTarget[key] = cloneDeep(target[key]);
+ });
+ return cloneTarget;
+ }
+ return target;
+};
+//# sourceMappingURL=helper.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/helper.js.map b/vendors/smart-color/0.2.1/esm/utils/helper.js.map
new file mode 100644
index 0000000..2a0092e
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/helper.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"helper.js","sourceRoot":"src/","sources":["utils/helper.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAY,CAAC,EAAE,IAAY,CAAC,EAAU,EAAE;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,CAAC,EAAE,IAAY,CAAC,EAAU,EAAE;IAChE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,QAAgB,EAAE,QAAgB,EAAE,EAAE;IACvE,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;KAC9D;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,GAAG,EAAE;QACnC,OAAO,QAAQ,CAAC;KACjB;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,GAAG,EAAE;QACnC,OAAO,QAAQ,CAAC;KACjB;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAW,EAAO,EAAE;IAC5C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACxC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,OAAO,EAAE;YACX,MAAM,WAAW,GAAI,MAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,OAAO,WAAW,CAAC;SACpB;QACD,WAAW;QACX,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,aAAa;YACb,WAAW,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;KACpB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/image.d.ts b/vendors/smart-color/0.2.1/esm/utils/image.d.ts
new file mode 100644
index 0000000..45375dc
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/image.d.ts
@@ -0,0 +1 @@
+export declare function loadImage(url: string): Promise;
diff --git a/vendors/smart-color/0.2.1/esm/utils/image.js b/vendors/smart-color/0.2.1/esm/utils/image.js
new file mode 100644
index 0000000..c72ecbc
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/image.js
@@ -0,0 +1,15 @@
+// Load a image in a promise
+export function loadImage(url) {
+ return new Promise((resolve, reject) => {
+ const img = new Image();
+ img.addEventListener('load', () => {
+ resolve(img);
+ });
+ img.addEventListener('error', () => {
+ reject(new Error(`Failed to load image URL: ${url}`));
+ });
+ img.crossOrigin = 'anonymous';
+ img.src = url;
+ });
+}
+//# sourceMappingURL=image.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/image.js.map b/vendors/smart-color/0.2.1/esm/utils/image.js.map
new file mode 100644
index 0000000..dcd5804
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/image.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"image.js","sourceRoot":"src/","sources":["utils/image.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YAChC,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YACjC,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;QAC9B,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/index.d.ts b/vendors/smart-color/0.2.1/esm/utils/index.d.ts
new file mode 100644
index 0000000..10077df
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/index.d.ts
@@ -0,0 +1,5 @@
+export { loadImage } from './image';
+export { hueOffset, colorBlend, colorBrighten, colorDarken } from './colorComputation';
+export { colorToArray, arrayToColor, colorToGray, grayToColor, colorToHex, hexToColor, colorToChromaColor, nameToColor, } from './colorConversion';
+export { random, randomInt, clamp, cloneDeep } from './helper';
+export { rad2deg, deg2rad } from './degree';
diff --git a/vendors/smart-color/0.2.1/esm/utils/index.js b/vendors/smart-color/0.2.1/esm/utils/index.js
new file mode 100644
index 0000000..443a87c
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/index.js
@@ -0,0 +1,6 @@
+export { loadImage } from './image';
+export { hueOffset, colorBlend, colorBrighten, colorDarken } from './colorComputation';
+export { colorToArray, arrayToColor, colorToGray, grayToColor, colorToHex, hexToColor, colorToChromaColor, nameToColor, } from './colorConversion';
+export { random, randomInt, clamp, cloneDeep } from './helper';
+export { rad2deg, deg2rad } from './degree';
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/esm/utils/index.js.map b/vendors/smart-color/0.2.1/esm/utils/index.js.map
new file mode 100644
index 0000000..00a05de
--- /dev/null
+++ b/vendors/smart-color/0.2.1/esm/utils/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/js/smart-color.min.js b/vendors/smart-color/0.2.1/js/smart-color.min.js
new file mode 100644
index 0000000..f843c13
--- /dev/null
+++ b/vendors/smart-color/0.2.1/js/smart-color.min.js
@@ -0,0 +1 @@
+!function(e){"function"==typeof define&&define.amd?define(e):e()}(function(){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.TENDENCIES=exports.COLOR_BLINDNESS_SIMULATION_TYPES=exports.colorAesthetic=exports.colorDifference=exports.getPaletteFromString=exports.getPaletteFromImage=exports.paletteOptimization=exports.paletteGeneration=exports.invertGrayscale=exports.colorSimulation=exports.colorDarken=exports.colorBrighten=exports.colorBlend=exports.nameToColor=exports.hexToColor=exports.colorToHex=exports.colorToGray=exports.arrayToColor=exports.colorToArray=void 0;var e=require("./utils");Object.defineProperty(exports,"colorToArray",{enumerable:!0,get:function(){return e.colorToArray}}),Object.defineProperty(exports,"arrayToColor",{enumerable:!0,get:function(){return e.arrayToColor}}),Object.defineProperty(exports,"colorToGray",{enumerable:!0,get:function(){return e.colorToGray}}),Object.defineProperty(exports,"colorToHex",{enumerable:!0,get:function(){return e.colorToHex}}),Object.defineProperty(exports,"hexToColor",{enumerable:!0,get:function(){return e.hexToColor}}),Object.defineProperty(exports,"nameToColor",{enumerable:!0,get:function(){return e.nameToColor}}),Object.defineProperty(exports,"colorBlend",{enumerable:!0,get:function(){return e.colorBlend}}),Object.defineProperty(exports,"colorBrighten",{enumerable:!0,get:function(){return e.colorBrighten}}),Object.defineProperty(exports,"colorDarken",{enumerable:!0,get:function(){return e.colorDarken}});var r=require("./simulators");Object.defineProperty(exports,"colorSimulation",{enumerable:!0,get:function(){return r.colorSimulation}}),Object.defineProperty(exports,"invertGrayscale",{enumerable:!0,get:function(){return r.invertGrayscale}});var t=require("./generators");Object.defineProperty(exports,"paletteGeneration",{enumerable:!0,get:function(){return t.paletteGeneration}});var o=require("./optimizers");Object.defineProperty(exports,"paletteOptimization",{enumerable:!0,get:function(){return o.paletteOptimization}});var n=require("./extractors");Object.defineProperty(exports,"getPaletteFromImage",{enumerable:!0,get:function(){return n.getPaletteFromImage}}),Object.defineProperty(exports,"getPaletteFromString",{enumerable:!0,get:function(){return n.getPaletteFromString}});var i=require("./evaluators");Object.defineProperty(exports,"colorDifference",{enumerable:!0,get:function(){return i.colorDifference}}),Object.defineProperty(exports,"colorAesthetic",{enumerable:!0,get:function(){return i.colorAesthetic}});var a=require("./constant");Object.defineProperty(exports,"COLOR_BLINDNESS_SIMULATION_TYPES",{enumerable:!0,get:function(){return a.COLOR_BLINDNESS_SIMULATION_TYPES}}),Object.defineProperty(exports,"TENDENCIES",{enumerable:!0,get:function(){return a.TENDENCIES}})});
diff --git a/vendors/smart-color/0.2.1/lib/constant.d.ts b/vendors/smart-color/0.2.1/lib/constant.d.ts
new file mode 100644
index 0000000..35be048
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/constant.d.ts
@@ -0,0 +1,9 @@
+import { Color } from '@antv/color-schema';
+export declare const COLOR_BLINDNESS_SIMULATION_TYPES: readonly ["normal", "protanomaly", "deuteranomaly", "tritanomaly", "protanopia", "deuteranopia", "tritanopia", "achromatomaly", "achromatopsia"];
+export declare const TENDENCIES: readonly ["tint", "shade"];
+export declare const COLOR_DIFFERENCE_MEASURES: readonly ["euclidean", "CIEDE2000", "contrastRatio"];
+export declare const COLOR_AESTHETIC_MEASURES: readonly ["pairPreference", "harmony"];
+export declare const WHITE: Color;
+export declare const SEPARABLE_BLEND_MODES: string[];
+export declare const NON_SEPARABLE_BLEND_MODES: readonly ["hue", "saturation", "color", "luminosity"];
+export declare const BLEND_MODES: readonly [...string[], "hue", "saturation", "color", "luminosity"];
diff --git a/vendors/smart-color/0.2.1/lib/constant.js b/vendors/smart-color/0.2.1/lib/constant.js
new file mode 100644
index 0000000..854b630
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/constant.js
@@ -0,0 +1,50 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.BLEND_MODES = exports.NON_SEPARABLE_BLEND_MODES = exports.SEPARABLE_BLEND_MODES = exports.WHITE = exports.COLOR_AESTHETIC_MEASURES = exports.COLOR_DIFFERENCE_MEASURES = exports.TENDENCIES = exports.COLOR_BLINDNESS_SIMULATION_TYPES = void 0;
+exports.COLOR_BLINDNESS_SIMULATION_TYPES = [
+ 'normal',
+ 'protanomaly',
+ 'deuteranomaly',
+ 'tritanomaly',
+ 'protanopia',
+ 'deuteranopia',
+ 'tritanopia',
+ 'achromatomaly',
+ 'achromatopsia',
+];
+// color optimization configuration
+exports.TENDENCIES = ['tint', 'shade'];
+exports.COLOR_DIFFERENCE_MEASURES = ['euclidean', 'CIEDE2000', 'contrastRatio'];
+exports.COLOR_AESTHETIC_MEASURES = ['pairPreference', 'harmony'];
+exports.WHITE = {
+ model: 'rgb',
+ value: {
+ r: 255,
+ g: 255,
+ b: 255,
+ },
+};
+// Separable blend modes https://www.w3.org/TR/compositing/#blendingseparable
+exports.SEPARABLE_BLEND_MODES = [
+ 'normal',
+ 'darken',
+ 'multiply',
+ 'colorBurn',
+ 'linearBurn',
+ 'lighten',
+ 'screen',
+ 'colorDodge',
+ 'linearDodge',
+ 'overlay',
+ 'softLight',
+ 'hardLight',
+ 'vividLight',
+ 'linearLight',
+ 'pinLight',
+ 'difference',
+ 'exclusion',
+];
+// Non-separable blend modes https://www.w3.org/TR/compositing/#blendingnonseparable
+exports.NON_SEPARABLE_BLEND_MODES = ['hue', 'saturation', 'color', 'luminosity'];
+exports.BLEND_MODES = [...exports.SEPARABLE_BLEND_MODES, ...exports.NON_SEPARABLE_BLEND_MODES];
+//# sourceMappingURL=constant.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/constant.js.map b/vendors/smart-color/0.2.1/lib/constant.js.map
new file mode 100644
index 0000000..36cfd13
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/constant.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"constant.js","sourceRoot":"src/","sources":["constant.ts"],"names":[],"mappings":";;;AAEa,QAAA,gCAAgC,GAAG;IAC9C,QAAQ;IACR,aAAa;IACb,eAAe;IACf,aAAa;IACb,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,eAAe;IACf,eAAe;CACP,CAAC;AACX,mCAAmC;AACtB,QAAA,UAAU,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC;AACxC,QAAA,yBAAyB,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,CAAU,CAAC;AAEjF,QAAA,wBAAwB,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAU,CAAC;AAElE,QAAA,KAAK,GAAU;IAC1B,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE;QACL,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,GAAG;KACP;CACF,CAAC;AAEF,6EAA6E;AAChE,QAAA,qBAAqB,GAAG;IACnC,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,WAAW;IACX,YAAY;IACZ,SAAS;IACT,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,SAAS;IACT,WAAW;IACX,WAAW;IACX,YAAY;IACZ,aAAa;IACb,UAAU;IACV,YAAY;IACZ,WAAW;CACZ,CAAC;AAEF,oFAAoF;AACvE,QAAA,yBAAyB,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,CAAU,CAAC;AAElF,QAAA,WAAW,GAAG,CAAC,GAAG,6BAAqB,EAAE,GAAG,iCAAyB,CAAU,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/colorHarmony.d.ts b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/colorHarmony.d.ts
new file mode 100644
index 0000000..f3ae3e4
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/colorHarmony.d.ts
@@ -0,0 +1,2 @@
+import { Color } from '@antv/color-schema';
+export declare const colorHarmony: (color1: Color, color2: Color) => number;
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/colorHarmony.js b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/colorHarmony.js
new file mode 100644
index 0000000..b7ec783
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/colorHarmony.js
@@ -0,0 +1,43 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.colorHarmony = void 0;
+const utils_1 = require("../../utils");
+const Hab = (b, a) => {
+ if (a === 0 && b === 0)
+ return 0;
+ const tmphp = utils_1.rad2deg(Math.atan2(b, a));
+ if (tmphp >= 0)
+ return tmphp;
+ return tmphp + 360;
+};
+// ref: Color Harmony for Image Indexing
+// ref: A Study of Colour Harmony for Two-colour Combinations
+// ref: https://last.hit.bme.hu/download/firtha/video/Colorimetry/Fairchild_M._Color_appearance_models__2005.pdf p79-81
+const colorHarmony = (color1, color2) => {
+ const [L1, a1, b1] = utils_1.colorToArray(color1, 'lab');
+ const [L2, a2, b2] = utils_1.colorToArray(color2, 'lab');
+ const Cab1 = Math.sqrt(a1 ** 2 + b1 ** 2);
+ const Cab2 = Math.sqrt(a1 ** 2 + b1 ** 2);
+ const Hab1 = Hab(b1, a1);
+ const Hab2 = Hab(b2, a2);
+ const dCab = Cab1 - Cab2;
+ const dHab2 = (a1 - a2) ** 2 + (b1 - b2) ** 2 - dCab ** 2;
+ const dC = Math.sqrt(dHab2 + (dCab / 1.46) ** 2);
+ const HC = 0.04 + 0.53 * Math.tanh(0.8 - 0.045 * dC);
+ const Lsum = L1 + L2;
+ const HLsum = 0.28 + 0.54 * Math.tanh(-3.88 + 0.029 * Lsum);
+ const HdL = 0.14 + 0.15 * Math.tanh(-2 + 0.2 * Math.abs(L1 - L2));
+ const HL = HLsum + HdL;
+ const EC1 = 0.5 + 0.5 * Math.tanh(-2 + 0.5 * Cab1);
+ const EC2 = 0.5 + 0.5 * Math.tanh(-2 + 0.5 * Cab2);
+ const HS1 = -0.08 - 0.14 * Math.sin(utils_1.deg2rad(Hab1 + 50)) - 0.07 * Math.sin(utils_1.deg2rad(2 * Hab1 + 90));
+ const HS2 = -0.08 - 0.14 * Math.sin(utils_1.deg2rad(Hab2 + 50)) - 0.07 * Math.sin(utils_1.deg2rad(2 * Hab2 + 90));
+ const EY1 = ((0.22 * L1 - 12.8) / 10) * Math.exp((90 - Hab1) / 10 - Math.exp((90 - Hab1) / 10));
+ const EY2 = ((0.22 * L2 - 12.8) / 10) * Math.exp((90 - Hab2) / 10 - Math.exp((90 - Hab2) / 10));
+ const HSY1 = EC1 * (HS1 + EY1);
+ const HSY2 = EC2 * (HS2 + EY2);
+ const HH = HSY1 + HSY2;
+ return HC + HL + HH;
+};
+exports.colorHarmony = colorHarmony;
+//# sourceMappingURL=colorHarmony.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/colorHarmony.js.map b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/colorHarmony.js.map
new file mode 100644
index 0000000..0ba2be5
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/colorHarmony.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"colorHarmony.js","sourceRoot":"src/","sources":["evaluators/colorAesthetic/colorHarmony.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/index.d.ts b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/index.d.ts
new file mode 100644
index 0000000..4ec114c
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/index.d.ts
@@ -0,0 +1,2 @@
+import { ColorAesthetic } from '@src/types';
+export declare const colorAesthetic: ColorAesthetic;
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/index.js b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/index.js
new file mode 100644
index 0000000..35ec344
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/index.js
@@ -0,0 +1,23 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.colorAesthetic = void 0;
+const constant_1 = require("../../constant");
+const utils_1 = require("../../utils");
+const pairPreference_1 = require("./pairPreference");
+const colorHarmony_1 = require("./colorHarmony");
+const colorAesthetic = (color1, color2, configuration = { measure: 'pairPreference' }) => {
+ const { measure = 'pairPreference', backgroundColor = constant_1.WHITE } = configuration;
+ // If the color is semi-transparent, the color will be overlapped on a white background by default for comparison
+ const overlappedColor1 = utils_1.colorBlend(color1, backgroundColor);
+ const overlappedColor2 = utils_1.colorBlend(color2, backgroundColor);
+ switch (measure) {
+ case 'pairPreference':
+ return pairPreference_1.pairPreference(overlappedColor1, overlappedColor2);
+ case 'harmony':
+ return colorHarmony_1.colorHarmony(overlappedColor1, overlappedColor2);
+ default:
+ return pairPreference_1.pairPreference(overlappedColor1, overlappedColor2);
+ }
+};
+exports.colorAesthetic = colorAesthetic;
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/index.js.map b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/index.js.map
new file mode 100644
index 0000000..611d330
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["evaluators/colorAesthetic/index.ts"],"names":[],"mappings":";;;AACA,6CAAuC;AACvC,uCAAyC;AACzC,qDAAkD;AAClD,iDAA8C;AAEvC,MAAM,cAAc,GAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE;IAC9G,MAAM,EAAE,OAAO,GAAG,gBAAgB,EAAE,eAAe,GAAG,gBAAK,EAAE,GAAG,aAAa,CAAC;IAC9E,iHAAiH;IACjH,MAAM,gBAAgB,GAAG,kBAAU,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,kBAAU,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7D,QAAQ,OAAO,EAAE;QACf,KAAK,gBAAgB;YACnB,OAAO,+BAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAC5D,KAAK,SAAS;YACZ,OAAO,2BAAY,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAC1D;YACE,OAAO,+BAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;KAC7D;AACH,CAAC,CAAC;AAbW,QAAA,cAAc,kBAazB"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.d.ts b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.d.ts
new file mode 100644
index 0000000..806b958
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.d.ts
@@ -0,0 +1 @@
+export declare const LAB_TO_COOLNESS: number[];
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.js b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.js
new file mode 100644
index 0000000..cb8bb01
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.js
@@ -0,0 +1,6 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.LAB_TO_COOLNESS = void 0;
+// prettier-ignore
+exports.LAB_TO_COOLNESS = [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 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, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 6.49, 7.13, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 8.14, 7.5, 4.36, 5.54, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 7.46, 7.46, 5.18, 3.75, 2.77, 2.78, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.22, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 2.88, 2.88, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.09, 10.71, 10.34, 10, 10, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 10.7, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.11, 10.84, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.41, 8.71, 9.4, 9.13, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.41, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.11, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.75, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, , , , , , , , , , , , , , , , , , , , , , , , , , , 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, , , , , , , , , , , , , , , , , , , , , , , , , , 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 10.94, 11.07, 10.8, 10.42, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.98, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 10.69, 11.11, 10.84, 10.82, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.96, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, , , , , , , , , , , , , , , , , , , , , , , , , , , 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, , , , , , , , , , , , , , , , , , , , , , , , , , 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, , , , , , , , , , , , , , , , , , , , , , , , , 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, , , , , , , , , , , , , , , , , , , , , , , , 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, , , , , , , , , , , , , , , , , , , , , , , 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 9.02, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 8.97, 8.97, 10.49, 10.79, 10.52, 10.15, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.82, 12.43, 11.98, 11.56, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, , , , , , , , , , , , , , , , , , , , , , , , , , , 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, , , , , , , , , , , , , , , , , , , , , , , , , , 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, , , , , , , , , , , , , , , , , , , , , , , , , 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, , , , , , , , , , , , , , , , , , , , , , , 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, , , , , , , , , , , , , , , , , , , , , , 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , , , 10.65, 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , , 10.35, 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , , 0, 8.97, 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 9.96, 10.51, 10.25, 10, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.3, 12.3, 11.89, 11.55, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 15.09, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, , , , , , , , , , , , , , , , , , , , , , , , , , , 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, , , , , , , , , , , , , , , , , , , , , , , , , , 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, , , , , , , , , , , , , , , , , , , , , , , , , 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, , , , , , , , , , , , , , , , , , , , , , , 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, , , , , , , , , , , , , , , , , , , , , , 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, , , , , , , , , , , , , , , , , , , , , 12, 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , , 11.1, 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , 10.65, 10.65, 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , 7.79, 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , 0, 0, 8.97, 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , 0, 0, 0, 0, 9.96, 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 6.04, , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 6.61, 10.01, 10.08, 9.78, 9.41, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.21, 11.88, 11.59, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, , , , , , , , , , , , , , , , , , , , , , , , , , , , 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, , , , , , , , , , , , , , , , , , , , , , , , , , , 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, , , , , , , , , , , , , , , , , , , , , , , , , 14.01, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, , , , , , , , , , , , , , , , , , , , , , , , 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, , , , , , , , , , , , , , , , , , , , , , , 12.89, 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, , , , , , , , , , , , , , , , , , , , , , 12.93, 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 2.9, , , , , , , , , , , , , , , , , , , , 12.43, 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, , , , , , , , , , , , , , , , , , , , 12, 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , 11.1, 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , 9.82, 10.65, 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , 0, 7.79, 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , 0, 0, 0, 8.97, 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 9.96, 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, 2.92, 2.33, 2, 2, 2, 2, 2, , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 6.61, 10.01, 10.08, 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, 4.85, 4.22, , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 6.61, 9.85, 9.54, 9.18, 8.81, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , 0, , , , , , , , , , , , , , , , 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.14, 11.85, 11.64, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.51, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, , , , , , , , , , , , , , , , , , , , , , , , , , , 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, , , , , , , , , , , , , , , , , , , , , , , , , , 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, , , , , , , , , , , , , , , , , , , , , , , , , 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, , , , , , , , , , , , , , , , , , , , , , , , 14, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, , , , , , , , , , , , , , , , , , , , , , , 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, , , , , , , , , , , , , , , , , , , , , , 13.17, 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, , , , , , , , , , , , , , , , , , , , , 12.93, 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, , , , , , , , , , , , , , , , , , , , 12.31, 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.51, , , , , , , , , , , , , , , , , , 11.41, 12, 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, , , , , , , , , , , , , , , , , 10.31, 11.1, 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , 0, 9.82, 10.65, 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , 0, 0, 7.79, 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , 0, 0, 0, 0, 8.97, 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 9.96, 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, 2.92, 2.33, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 6.61, 10.01, 10.08, 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, 4.85, 4.22, 3.74, 3.12, 2.64, 2.04, 2, 2, 2, 2, 2, , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 6.61, 9.85, 9.54, 9.18, 8.81, 8.33, 7.96, 7.48, 7, 6.51, 6.03, 5.43, 4.92, 4.42, 3.81, 3.32, 2.84, 2.84, , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8.97, 8.94, 8.58, 8.22, , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.11, 11.9, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.87, 12.45, 12.14, 11.85, 11.64, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 11.05, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, , , , , , , , , , , , , , , , , , , , , , , , , , , 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, , , , , , , , , , , , , , , , , , , , , , , , , 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, , , , , , , , , , , , , , , , , , , , , , , , 15.5, 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, , , , , , , , , , , , , , , , , , , , , , , 14.64, 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, , , , , , , , , , , , , , , , , , , , , , 14.04, 14, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, , , , , , , , , , , , , , , , , , , , , 13.69, 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, , , , , , , , , , , , , , , , , , , , 13.35, 13.17, 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, , , , , , , , , , , , , , , , , , , 12.61, 12.93, 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, , , , , , , , , , , , , , , , , , 11.71, 12.31, 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, , , , , , , , , , , , , , , , , 10.67, 11.41, 12, 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, , , , , , , , , , , , , , , , 7.79, 10.31, 11.1, 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , 0, 0, 9.82, 10.65, 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , 0, 0, 0, 7.79, 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , 0, 0, 0, 0, 0, 8.97, 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 9.96, 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, 2.92, 2.33, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 6.61, 10.01, 10.08, 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, 4.85, 4.22, 3.74, 3.12, 2.64, 2.04, 2, 2, 2, 2, 2, 3.86, , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 6.61, 9.85, 9.54, 9.18, 8.81, 8.33, 7.96, 7.48, 7, 6.51, 6.03, 5.43, 4.92, 4.42, 3.81, 3.32, 2.84, 2.37, 2, 2, 2, 3.08, 4.65, 6.27, , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8.97, 8.94, 8.58, 8.22, 7.73, 7.37, 6.88, 6.4, 5.92, 5.44, 4.95, 4.47, 3.99, 3.52, 3.04, 2.55, 2.2, 2.87, 4.44, 5.45, 7.02, 0, , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.79, 9.31, 8.04, 7.62, 7.13, , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.27, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.7, 12.4, 12.11, 11.9, 11.7, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.23, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, , , , , , , , , , , , , , , , , , , , , , , , , , , 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, , , , , , , , , , , , , , , , , , , , , , , , , 16.51, 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, , , , , , , , , , , , , , , , , , , , , , , , 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, , , , , , , , , , , , , , , , , , , , , , , 15.5, 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, , , , , , , , , , , , , , , , , , , , , 14.68, 14.64, 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, , , , , , , , , , , , , , , , , , , , 14.21, 14.04, 14, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, , , , , , , , , , , , , , , , , , , 13.67, 13.69, 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, , , , , , , , , , , , , , , , , , 12.77, 13.35, 13.17, 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, 4.14, , , , , , , , , , , , , , , , , 11.87, 12.61, 12.93, 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, 3.46, , , , , , , , , , , , , , , , 10.97, 11.71, 12.31, 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, 2.93, , , , , , , , , , , , , , , 9.74, 10.67, 11.41, 12, 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, 2.22, , , , , , , , , , , , , , 0, 7.79, 10.31, 11.1, 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , 0, 0, 9.82, 10.65, 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , 0, 0, 0, 7.79, 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , 0, 0, 0, 0, 8.97, 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , 0, 0, 0, 0, 0, 9.96, 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, 2.92, 2.33, 2, 2, 2, 2, 2, 2, 2, 3.68, , , , , , , , , , , , 0, 0, 0, 0, 0, 6.61, 10.01, 10.08, 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, 4.85, 4.22, 3.74, 3.12, 2.64, 2.04, 2, 2, 2, 2, 2, 3.86, 6.05, , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 6.61, 9.85, 9.54, 9.18, 8.81, 8.33, 7.96, 7.48, 7, 6.51, 6.03, 5.43, 4.92, 4.42, 3.81, 3.32, 2.84, 2.37, 2, 2, 2, 3.08, 4.65, 6.27, 6.61, , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 8.97, 8.94, 8.58, 8.22, 7.73, 7.37, 6.88, 6.4, 5.92, 5.44, 4.95, 4.47, 3.99, 3.52, 3.04, 2.55, 2.2, 2.87, 4.44, 5.45, 7.02, 0, 0, , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.79, 9.31, 8.04, 7.62, 7.13, 6.77, 6.29, 5.93, 5.44, 4.96, 4.48, 4, 3.64, 3.41, 3.84, 4.8, 5.8, 6.81, 7.79, 0, 0, 0, , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.79, 9, 8.25, 6.98, , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.38, 12.38, 11.91, 11.27, 10.42, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.75, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, , , , , , , , , , , , , , , , , , , , , , , , , , , 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, , , , , , , , , , , , , , , , , , , , , , , , , 16.92, 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, , , , , , , , , , , , , , , , , , , , , , , , 16.36, 16.51, 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, , , , , , , , , , , , , , , , , , , , , , , 16.05, 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, , , , , , , , , , , , , , , , , , , , , 15.28, 15.5, 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, , , , , , , , , , , , , , , , , , , , 14.68, 14.64, 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , , , , 14.21, 14.04, 14, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, 5.19, , , , , , , , , , , , , , , , , , 13.67, 13.69, 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, 4.62, , , , , , , , , , , , , , , , , 12.77, 13.35, 13.17, 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, 4.14, 4.1, , , , , , , , , , , , , , , 11.13, 11.87, 12.61, 12.93, 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, 3.46, 3.62, , , , , , , , , , , , , , , 10.97, 11.71, 12.31, 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, 2.93, 2.94, , , , , , , , , , , , , , 9.74, 10.67, 11.41, 12, 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, 2.22, 2.38, , , , , , , , , , , , , 0, 7.79, 10.31, 11.1, 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , 0, 0, 9.82, 10.65, 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , 0, 0, 7.79, 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , 0, 0, 0, 8.97, 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , 0, 0, 0, 0, 9.96, 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, 2.92, 2.33, 2, 2, 2, 2, 2, 2, 2, 3.68, 5.82, , , , , , , , , , , , , 0, 0, 0, 6.61, 10.01, 10.08, 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, 4.85, 4.22, 3.74, 3.12, 2.64, 2.04, 2, 2, 2, 2, 2, 3.86, 6.05, 6.61, , , , , , , , , , , , , 0, 0, 0, 0, 6.61, 9.85, 9.54, 9.18, 8.81, 8.33, 7.96, 7.48, 7, 6.51, 6.03, 5.43, 4.92, 4.42, 3.81, 3.32, 2.84, 2.37, 2, 2, 2, 3.08, 4.65, 6.27, 6.61, 0, , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 8.97, 8.94, 8.58, 8.22, 7.73, 7.37, 6.88, 6.4, 5.92, 5.44, 4.95, 4.47, 3.99, 3.52, 3.04, 2.55, 2.2, 2.87, 4.44, 5.45, 7.02, 0, 0, 0, , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 7.79, 9.31, 8.04, 7.62, 7.13, 6.77, 6.29, 5.93, 5.44, 4.96, 4.48, 4, 3.64, 3.41, 3.84, 4.8, 5.8, 6.81, 7.79, 0, 0, 0, 0, , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.79, 9, 8.25, 6.98, 6.3, 6.1, 5.45, 5.22, 5.04, 5.47, 5.29, 5.73, 6.73, 7.12, 7.79, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.79, 8.97, 8.94, , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.09, 10.45, 9.62, 7.95, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.88, 12.66, 12.38, 11.91, 11.27, 10.42, 9.58, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.44, 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, 10.39, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.42, 14.42, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, , , , , , , , , , , , , , , , , , , , , , , , , , , , 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, , , , , , , , , , , , , , , , , , , , , , , , , , , 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, , , , , , , , , , , , , , , , , , , , , , , , , 17.11, 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, , , , , , , , , , , , , , , , , , , , , , , , 16.74, 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, , , , , , , , , , , , , , , , , , , , , , , 16.36, 16.51, 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, , , , , , , , , , , , , , , , , , , , , 15.94, 16.05, 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, , , , , , , , , , , , , , , , , , , , 15.32, 15.28, 15.5, 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, , , , , , , , , , , , , , , , , , , 14.58, 14.68, 14.64, 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , , , 13.83, 14.21, 14.04, 14, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, 5.19, 5.33, , , , , , , , , , , , , , , , 12.93, 13.67, 13.69, 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, 4.62, 4.62, , , , , , , , , , , , , , , 12.03, 12.77, 13.35, 13.17, 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, 4.14, 4.1, 4.05, , , , , , , , , , , , , , 11.13, 11.87, 12.61, 12.93, 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, 3.46, 3.62, 3.5, , , , , , , , , , , , , , 10.97, 11.71, 12.31, 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, 2.93, 2.94, 3.07, , , , , , , , , , , , , , 10.67, 11.41, 12, 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, 2.22, 2.38, 2.52, , , , , , , , , , , , , , 10.31, 11.1, 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2.09, , , , , , , , , , , , , , 9.82, 10.65, 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , 7.79, 10.35, 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , 0, 8.97, 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4.03, , , , , , , , , , , , , , 0, 0, 9.96, 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, 2.92, 2.33, 2, 2, 2, 2, 2, 2, 2, 3.68, 5.82, , , , , , , , , , , , , , 0, 0, 6.61, 10.01, 10.08, 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, 4.85, 4.22, 3.74, 3.12, 2.64, 2.04, 2, 2, 2, 2, 2, 3.86, 6.05, 6.61, 0, , , , , , , , , , , , , 0, 0, 0, 6.61, 9.85, 9.54, 9.18, 8.81, 8.33, 7.96, 7.48, 7, 6.51, 6.03, 5.43, 4.92, 4.42, 3.81, 3.32, 2.84, 2.37, 2, 2, 2, 3.08, 4.65, 6.27, 6.61, 0, 0, , , , , , , , , , , , , 0, 0, 0, 0, 0, 8.97, 8.94, 8.58, 8.22, 7.73, 7.37, 6.88, 6.4, 5.92, 5.44, 4.95, 4.47, 3.99, 3.52, 3.04, 2.55, 2.2, 2.87, 4.44, 5.45, 7.02, 0, 0, 0, 0, , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 7.79, 9.31, 8.04, 7.62, 7.13, 6.77, 6.29, 5.93, 5.44, 4.96, 4.48, 4, 3.64, 3.41, 3.84, 4.8, 5.8, 6.81, 7.79, 0, 0, 0, 0, 0, , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 7.79, 9, 8.25, 6.98, 6.3, 6.1, 5.45, 5.22, 5.04, 5.47, 5.29, 5.73, 6.73, 7.12, 7.79, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.79, 8.97, 8.94, 8.19, 8.06, 7.93, 8.31, 8.18, 7.79, , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.27, 8.01, 6.61, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.38, 11.73, 11.09, 10.45, 9.62, 7.95, 6.61, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.27, 12.88, 12.66, 12.38, 11.91, 11.27, 10.42, 9.58, 7.9, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.75, 13.94, 13.44, 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, 10.39, 9.11, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.18, 15.36, 14.42, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, 10.16, , , , , , , , , , , , , , , , , , , , , , , , , , , , 17.05, 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, 10.72, , , , , , , , , , , , , , , , , , , , , , , , , , 17.77, 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, 10.4, , , , , , , , , , , , , , , , , , , , , , , , , 17.44, 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, 10.15, , , , , , , , , , , , , , , , , , , , , , , 16.91, 17.11, 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, 9.72, , , , , , , , , , , , , , , , , , , , , , 16.59, 16.74, 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, 8.99, , , , , , , , , , , , , , , , , , , , , 16.28, 16.36, 16.51, 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, , , , , , , , , , , , , , , , , , , , 15.94, 16.05, 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, 7.53, , , , , , , , , , , , , , , , , , 14.59, 15.32, 15.28, 15.5, 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, 6.6, , , , , , , , , , , , , , , , , 13.84, 14.58, 14.68, 14.64, 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , , 13.83, 14.21, 14.04, 14, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, 5.19, 5.33, , , , , , , , , , , , , , , , 12.93, 13.67, 13.69, 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, 4.62, 4.62, , , , , , , , , , , , , , , , 12.77, 13.35, 13.17, 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, 4.14, 4.1, 4.05, 4.2, , , , , , , , , , , , , , , 12.61, 12.93, 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, 3.46, 3.62, 3.5, 3.63, , , , , , , , , , , , , , , 12.31, 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, 2.93, 2.94, 3.07, 3.06, , , , , , , , , , , , , , , 12, 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, 2.22, 2.38, 2.52, 2.64, , , , , , , , , , , , , , , 11.7, 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2.09, 2.12, , , , , , , , , , , , , , , 11.39, 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2.61, , , , , , , , , , , , , , , 10.94, 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4.37, , , , , , , , , , , , , , , 10.49, 10.79, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4.03, 6.21, , , , , , , , , , , , , , , 9.96, 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, 2.92, 2.33, 2, 2, 2, 2, 2, 2, 2, 3.68, 5.82, 0, , , , , , , , , , , , , , , 6.61, 10.01, 10.08, 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, 4.85, 4.22, 3.74, 3.12, 2.64, 2.04, 2, 2, 2, 2, 2, 3.86, 6.05, 6.61, 0, , , , , , , , , , , , , , , 0, 6.61, 9.85, 9.54, 9.18, 8.81, 8.33, 7.96, 7.48, 7, 6.51, 6.03, 5.43, 4.92, 4.42, 3.81, 3.32, 2.84, 2.37, 2, 2, 2, 3.08, 4.65, 6.27, 6.61, 0, 0, , , , , , , , , , , , , , , 0, 0, 0, 8.97, 8.94, 8.58, 8.22, 7.73, 7.37, 6.88, 6.4, 5.92, 5.44, 4.95, 4.47, 3.99, 3.52, 3.04, 2.55, 2.2, 2.87, 4.44, 5.45, 7.02, 0, 0, 0, 0, , , , , , , , , , , , , , , 0, 0, 0, 0, 7.79, 9.31, 8.04, 7.62, 7.13, 6.77, 6.29, 5.93, 5.44, 4.96, 4.48, 4, 3.64, 3.41, 3.84, 3.84, , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 7.79, 9, 8.25, 6.98, 6.3, 6.1, 5.45, 5.22, 5.04, , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, 7.79, 8.97, 8.97, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 10.91, 10.27, 9.27, 8.01, 6.61, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.25, 12.81, 12.38, 11.73, 11.09, 10.45, 9.62, 7.95, 6.61, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.27, 13.61, 13.27, 12.88, 12.66, 12.38, 11.91, 11.27, 10.42, 9.58, 7.9, 7.9, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 15.42, 14.75, 13.94, 13.44, 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, 10.39, 9.11, 7.44, , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.18, 15.36, 14.42, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, 10.16, 8.64, , , , , , , , , , , , , , , , , , , , , , , , , , 18, 17.05, 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, 10.72, 9.43, , , , , , , , , , , , , , , , , , , , , , , , 17.53, 17.77, 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, 10.4, 10.32, , , , , , , , , , , , , , , , , , , , , , , 17.22, 17.44, 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, 10.15, 10.02, , , , , , , , , , , , , , , , , , , , , , 16.91, 17.11, 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, 9.72, 9.55, , , , , , , , , , , , , , , , , , , , 16.45, 16.59, 16.74, 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, 8.99, 8.82, , , , , , , , , , , , , , , , , , , 15.81, 16.28, 16.36, 16.51, 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, 8.08, , , , , , , , , , , , , , , , , , 15.2, 15.94, 16.05, 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, 7.53, 7.34, , , , , , , , , , , , , , , , , 14.59, 15.32, 15.28, 15.5, 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, 6.6, 6.6, , , , , , , , , , , , , , , , 13.84, 14.58, 14.68, 14.64, 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , 13.83, 14.21, 14.04, 14, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, 5.19, 5.33, 5.33, , , , , , , , , , , , , , , , 13.67, 13.69, 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, 4.62, 4.62, 4.76, , , , , , , , , , , , , , , , 13.35, 13.17, 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, 4.14, 4.1, 4.05, 4.2, , , , , , , , , , , , , , , , 12.93, 12.66, 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, 3.46, 3.62, 3.5, 3.63, , , , , , , , , , , , , , , , 12.43, 12.25, 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, 2.93, 2.94, 3.07, 3.06, 3.35, , , , , , , , , , , , , , , 12.03, 11.76, 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, 2.22, 2.38, 2.52, 2.64, 2.78, , , , , , , , , , , , , , , 11.73, 11.46, 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2.09, 2.12, 3.81, , , , , , , , , , , , , , , 11.34, 11.08, 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2.61, 5.29, , , , , , , , , , , , , , , 11.07, 10.8, 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4.37, 6.56, , , , , , , , , , , , , , , 10.52, 10.52, 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4.03, 6.21, 0, , , , , , , , , , , , , , , 10.51, 10.25, 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, 2.92, 2.33, 2, 2, 2, 2, 2, 2, 2, 3.68, 5.82, 0, , , , , , , , , , , , , , , , 10.01, 10.08, 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, 4.85, 4.22, 3.74, 3.12, 2.64, 2.04, 2, 2, 2, , , , , , , , , , , , , , , , , , , , , , 9.85, 9.85, 9.54, 9.18, 8.81, 8.33, 7.96, 7.48, 7, 6.51, 6.03, 5.43, 4.92, 4.42, 3.81, 3.32, , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 8.97, 8.94, 8.58, 8.22, 7.73, 7.37, 6.88, 6.4, 5.92, 5.44, 4.95, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 7.79, 9.31, 8.04, 7.62, 7.13, 6.77, 6.29, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 7.79, 9, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 7.65, 7.65, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.35, 10.91, 10.27, 9.27, 8.01, 6.61, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.65, 13.25, 12.81, 12.38, 11.73, 11.09, 10.45, 9.62, 7.95, 6.61, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 14.94, 14.27, 13.61, 13.27, 12.88, 12.66, 12.38, 11.91, 11.27, 10.42, 9.58, 7.9, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , 16.23, 15.42, 14.75, 13.94, 13.44, 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, 10.39, 9.11, 7.44, , , , , , , , , , , , , , , , , , , , , , , , , , , 17, 16.18, 15.36, 14.42, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, 10.16, 8.64, , , , , , , , , , , , , , , , , , , , , , , , , 17.78, 18, 17.05, 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, 10.72, 9.43, 9.43, , , , , , , , , , , , , , , , , , , , , , , 17.53, 17.77, 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, 10.4, 10.32, 8.55, , , , , , , , , , , , , , , , , , , , , 17.04, 17.22, 17.44, 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, 10.15, 10.02, 9.34, , , , , , , , , , , , , , , , , , , , 16.75, 16.91, 17.11, 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, 9.72, 9.55, 9.19, , , , , , , , , , , , , , , , , , , 16.45, 16.59, 16.74, 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, 8.99, 8.82, 8.64, , , , , , , , , , , , , , , , , , 15.81, 16.28, 16.36, 16.51, 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, 8.08, 7.9, , , , , , , , , , , , , , , , , 15.2, 15.94, 16.05, 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, 7.53, 7.34, 7.34, , , , , , , , , , , , , , , , , 15.32, 15.28, 15.5, 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, 6.6, 6.6, 6.61, , , , , , , , , , , , , , , , , 14.68, 14.64, 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , , 14.04, 14, 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, 5.19, 5.33, 5.33, 5.33, , , , , , , , , , , , , , , , , 13.52, 13.24, 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, 4.62, 4.62, 4.76, 4.76, , , , , , , , , , , , , , , , , 12.89, 12.71, 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, 4.14, 4.1, 4.05, 4.2, 4.34, , , , , , , , , , , , , , , , , 12.38, 12.1, 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, 3.46, 3.62, 3.5, 3.63, 3.77, , , , , , , , , , , , , , , , , 11.87, 11.59, 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, 2.93, 2.94, 3.07, 3.06, 3.35, , , , , , , , , , , , , , , , , 11.47, 11.1, 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, 2.22, 2.38, 2.52, 2.64, 2.78, , , , , , , , , , , , , , , , , 11.09, 10.71, 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2.09, 2.12, 3.81, , , , , , , , , , , , , , , , , 10.7, 10.32, 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2.61, 5.29, , , , , , , , , , , , , , , , , 10.42, 10.06, 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, 2.4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , 10.15, 10, 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, 4.7, 3.95, 3.34, 2.6, 2, 2, 2, , , , , , , , , , , , , , , , , , , , , , , , , , 10, 9.65, 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, 6.04, 5.4, 4.78, 4.15, 3.54, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.78, 9.41, 9.05, 8.56, 8.2, 7.71, 7.11, 6.62, 5.99, 5.48, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.54, 9.18, 8.81, 8.33, 7.96, 7.48, 7, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 8.97, 8.94, 8.58, 8.22, 7.73, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 7.79, 9.31, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.77, 8.92, 7.65, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.22, 11.78, 11.35, 10.91, 10.27, 9.27, 8.01, 6.61, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.83, 13.65, 13.25, 12.81, 12.38, 11.73, 11.09, 10.45, 9.62, 7.95, 6.61, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , 15.58, 14.94, 14.27, 13.61, 13.27, 12.88, 12.66, 12.38, 11.91, 11.27, 10.42, 9.58, 7.9, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , 16.23, 16.23, 15.42, 14.75, 13.94, 13.44, 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, 10.39, 9.11, 7.44, 0, , , , , , , , , , , , , , , , , , , , , , , , , 17.66, 17, 16.18, 15.36, 14.42, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, 10.16, 8.64, 6.97, , , , , , , , , , , , , , , , , , , , , , , 17.56, 17.78, 18, 17.05, 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, 10.72, 9.43, 7.76, , , , , , , , , , , , , , , , , , , , , , 17.31, 17.53, 17.77, 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, 10.4, 10.32, 8.55, , , , , , , , , , , , , , , , , , , , 16.67, 17.04, 17.22, 17.44, 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, 10.15, 10.02, 9.34, , , , , , , , , , , , , , , , , , , 16.13, 16.75, 16.91, 17.11, 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, 9.72, 9.55, 9.19, 8.05, , , , , , , , , , , , , , , , , 15.52, 16.45, 16.59, 16.74, 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, 8.99, 8.82, 8.64, 8.45, , , , , , , , , , , , , , , , , 15.81, 16.28, 16.36, 16.51, 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, 8.08, 7.9, 7.9, , , , , , , , , , , , , , , , , 16.05, 16.05, 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, 7.53, 7.34, 7.34, 7.16, , , , , , , , , , , , , , , , , , 15.5, 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, 6.6, 6.6, 6.61, 6.61, , , , , , , , , , , , , , , , , , 14.75, 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , , , 14.01, 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, 5.19, 5.33, 5.33, 5.33, 5.33, , , , , , , , , , , , , , , , , , 13.24, 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, 4.62, 4.62, 4.76, 4.76, 4.91, , , , , , , , , , , , , , , , , , 12.44, 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, 4.14, 4.1, 4.05, 4.2, 4.34, 4.34, , , , , , , , , , , , , , , , , , 11.75, 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, 3.46, 3.62, 3.5, 3.63, 3.77, 3.91, , , , , , , , , , , , , , , , , , 11.22, 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, 2.93, 2.94, 3.07, 3.06, 3.35, 3.89, , , , , , , , , , , , , , , , , , 10.72, 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, 2, 2, 2, 2, 2.09, 2.22, 2.38, 2.52, 2.64, 2.78, 4.97, , , , , , , , , , , , , , , , , , 10.34, 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, 1.9, 2, 2, 2, 2, 2, 2, 2, , , , , , , , , , , , , , , , , , , , , , , , 10, 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, 4.03, 3.31, 2.8, 2, 2, 2, , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.99, 9.5, 9.02, 8.35, 7.69, 6.92, 6.28, 5.39, 4.63, 3.88, 3.01, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.63, 9.15, 8.66, 8.17, 7.52, 6.86, 6.09, 5.45, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.28, 8.79, 8.43, 7.82, 7.34, 6.69, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.05, 8.56, 8.2, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 8.81, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 7.29, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 10.96, 10.53, 9.77, 8.92, 7.65, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.66, 12.22, 11.78, 11.35, 10.91, 10.27, 9.27, 8.01, 6.61, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , 13.98, 13.83, 13.65, 13.25, 12.81, 12.38, 11.73, 11.09, 10.45, 9.62, 7.95, 6.61, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , 15.44, 15.58, 14.94, 14.27, 13.61, 13.27, 12.88, 12.66, 12.38, 11.91, 11.27, 10.42, 9.58, 7.9, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , 16.71, 16.23, 15.42, 14.75, 13.94, 13.44, 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, 10.39, 9.11, 7.44, 0, 0, , , , , , , , , , , , , , , , , , , , , , , 17.23, 17.66, 17, 16.18, 15.36, 14.42, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, 10.16, 8.64, 6.97, 0, , , , , , , , , , , , , , , , , , , , , 16.85, 17.56, 17.78, 18, 17.05, 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, 10.72, 9.43, 7.76, 0, , , , , , , , , , , , , , , , , , , , 16.89, 17.31, 17.53, 17.77, 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, 10.4, 10.32, 8.55, 6.89, , , , , , , , , , , , , , , , , , , 16.67, 17.04, 17.22, 17.44, 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, 10.15, 10.02, 9.34, 7.68, , , , , , , , , , , , , , , , , , , 16.75, 16.91, 17.11, 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, 9.72, 9.55, 9.19, 8.05, , , , , , , , , , , , , , , , , , , 16.59, 16.74, 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, 8.99, 8.82, 8.64, 8.45, , , , , , , , , , , , , , , , , , , 16.36, 16.51, 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, 8.08, 7.9, 7.9, 7.14, , , , , , , , , , , , , , , , , , 16.13, 16.21, 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, 7.53, 7.34, 7.34, 7.16, 7.11, , , , , , , , , , , , , , , , , , 15.73, 15.95, 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, 6.6, 6.6, 6.61, 6.61, 6.42, , , , , , , , , , , , , , , , , , 14.87, 14.72, 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , , , 14.02, 13.02, 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, 5.19, 5.33, 5.33, 5.33, 5.33, 5.47, , , , , , , , , , , , , , , , , , 13, 11.75, 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, 4.62, 4.62, 4.76, 4.76, 4.91, 4.91, , , , , , , , , , , , , , , , , , 12.11, 10.48, 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, 4.14, 4.1, 4.05, 4.2, 4.34, 4.34, , , , , , , , , , , , , , , , , , , 11.22, 9.59, 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 2.15, 2.64, 2.9, 3.19, 3.32, 3.46, 3.62, 3.5, 3.63, 3.77, 3.91, , , , , , , , , , , , , , , , , , , 10.74, 9.11, 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, 1.51, 1.72, 1.92, 2, 2, 2.22, 2.51, 2.64, , , , , , , , , , , , , , , , , , , , , , , , , 10.24, 9.06, 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, 1.49, 1.58, 1.73, 1.88, 2, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 10, 9.5, 8.36, 7.12, 5.98, 4.84, 3.81, 2.99, 2.17, 1.78, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.86, 9.34, 8.56, 7.83, 6.82, 5.68, 4.75, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.5, 9.02, 8.35, 7.69, 6.92, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.15, 8.66, 8.66, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.01, 8.15, 7.29, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.4, 10.96, 10.53, 9.77, 8.92, 7.65, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , 12.89, 12.66, 12.22, 11.78, 11.35, 10.91, 10.27, 9.27, 8.01, 6.61, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , 14.15, 13.98, 13.83, 13.65, 13.25, 12.81, 12.38, 11.73, 11.09, 10.45, 9.62, 7.95, 6.61, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , 15.31, 15.44, 15.58, 14.94, 14.27, 13.61, 13.27, 12.88, 12.66, 12.38, 11.91, 11.27, 10.42, 9.58, 7.9, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , 16.28, 16.71, 16.23, 15.42, 14.75, 13.94, 13.44, 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, 10.39, 9.11, 7.44, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , 16.5, 17.23, 17.66, 17, 16.18, 15.36, 14.42, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, 10.16, 8.64, 6.97, 0, 0, , , , , , , , , , , , , , , , , , , , 16.85, 17.56, 17.78, 18, 17.05, 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, 10.72, 9.43, 7.76, 0, 0, , , , , , , , , , , , , , , , , , , , 17.31, 17.53, 17.77, 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, 10.4, 10.32, 8.55, 6.89, 0, , , , , , , , , , , , , , , , , , , , 17.22, 17.44, 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, 10.15, 10.02, 9.34, 7.68, 0, , , , , , , , , , , , , , , , , , , , 17.11, 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, 9.72, 9.55, 9.19, 8.05, 0, , , , , , , , , , , , , , , , , , , , 16.92, 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, 8.99, 8.82, 8.64, 8.45, 6.76, , , , , , , , , , , , , , , , , , , , 16.66, 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, 8.08, 7.9, 7.9, 7.14, , , , , , , , , , , , , , , , , , , , 16.36, 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, 7.53, 7.34, 7.34, 7.16, 7.11, , , , , , , , , , , , , , , , , , , , 15.09, 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, 6.6, 6.6, 6.61, 6.61, 6.42, , , , , , , , , , , , , , , , , , , , 13.63, 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , , , , , 11.55, 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.19, 5.19, 5.33, 5.33, 5.33, 5.33, 5.47, , , , , , , , , , , , , , , , , , , , 9.9, 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, 3.78, 4.63, 4.65, 4.79, 4.75, 4.62, 4.62, 4.76, 4.76, 4.91, , , , , , , , , , , , , , , , , , , , , 8.64, 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, 1.43, 1.65, 2.58, 3.46, 3.71, 3.99, 4, , , , , , , , , , , , , , , , , , , , , , , , , , , 7.78, 6.11, 4.72, 3.06, 1.52, 0.99, 1.04, 1.13, 1.36, 1.57, 1.82, 1.82, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 7.59, 6.38, 4.93, 3.59, 2.04, 1.24, 1.24, 1.34, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 7.94, 6.7, 5.56, 4.22, 2.88, 1.95, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 8.36, 7.12, 5.98, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 8.56, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.01, 8.15, 7.29, 0, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 11.4, 10.96, 10.53, 9.77, 8.92, 7.65, 0, 0, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , , 12.89, 12.89, 12.66, 12.22, 11.78, 11.35, 10.91, 10.27, 9.27, 8.01, 6.61, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , 14.15, 13.98, 13.83, 13.65, 13.25, 12.81, 12.38, 11.73, 11.09, 10.45, 9.62, 7.95, 6.61, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , 15.31, 15.44, 15.58, 14.94, 14.27, 13.61, 13.27, 12.88, 12.66, 12.38, 11.91, 11.27, 10.42, 9.58, 7.9, 0, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , 15.83, 16.28, 16.71, 16.23, 15.42, 14.75, 13.94, 13.44, 13.03, 12.7, 12.4, 12.11, 11.9, 11.7, 11.24, 10.39, 9.11, 7.44, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , 16.5, 17.23, 17.66, 17, 16.18, 15.36, 14.42, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, 10.16, 8.64, 6.97, 0, 0, 0, , , , , , , , , , , , , , , , , , , , 17.56, 17.78, 18, 17.05, 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, 10.72, 9.43, 7.76, 0, 0, 0, , , , , , , , , , , , , , , , , , , , 17.53, 17.77, 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, 10.4, 10.32, 8.55, 6.89, 0, 0, , , , , , , , , , , , , , , , , , , , 17.44, 17.68, 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, 10.15, 10.02, 9.34, 7.68, 0, 0, , , , , , , , , , , , , , , , , , , , 17.32, 17.6, 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, 9.72, 9.55, 9.19, 8.05, 0, 0, , , , , , , , , , , , , , , , , , , , 17.14, 17.42, 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, 8.99, 8.82, 8.64, 8.45, 6.76, 0, , , , , , , , , , , , , , , , , , , , 16.51, 14.55, 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, 8.08, 7.9, 7.9, 7.14, 0, , , , , , , , , , , , , , , , , , , , 14.12, 12.1, 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, 7.53, 7.34, 7.34, 7.16, 7.11, 0, , , , , , , , , , , , , , , , , , , , 12.76, 9.97, 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, 6.6, 6.6, 6.61, 6.61, 6.42, 0, , , , , , , , , , , , , , , , , , , , 11.41, 8.55, 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.83, 6.24, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, 5.9, , , , , , , , , , , , , , , , , , , , , , 10.11, 8.26, 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, 2.7, 3.55, 4.32, 5.08, 5.56, 5.4, 5.4, , , , , , , , , , , , , , , , , , , , , , , , , , , 7.87, 5.67, 3.05, 0.77, 0.5, 0.57, 0.8, 1.03, 1.25, 2.05, 3.07, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 6.63, 4.58, 2.95, 0.89, 0.74, 0.79, 0.98, 1.2, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 6.11, 4.72, 3.06, 1.52, 0.99, 0.99, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 6.38, 4.93, 3.59, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.11, 9.11, 7.44, 0, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , , , , , 13.75, 13.75, 13.29, 12.87, 12.45, 12.14, 11.85, 11.64, 11.43, 11.23, 11, 10.16, 8.64, 6.97, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , 18, 17.05, 16.12, 15.17, 14.23, 13.5, 13.04, 12.63, 12.21, 11.88, 11.59, 11.38, 11.18, 10.97, 10.85, 10.72, 9.43, 7.76, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , , 18, 17.07, 16.01, 14.95, 13.91, 13.39, 12.8, 12.3, 11.89, 11.55, 11.25, 11.05, 10.84, 10.64, 10.51, 10.4, 10.32, 8.55, 6.89, 0, 0, , , , , , , , , , , , , , , , , , , , , , 17.98, 17.09, 15.9, 14.15, 12.77, 12.82, 12.43, 11.98, 11.56, 11.23, 10.92, 10.71, 10.51, 10.39, 10.27, 10.15, 10.02, 9.34, 7.68, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , 17.91, 17, 14.35, 11.7, 10.69, 11.11, 10.84, 10.82, 11.15, 10.82, 10.5, 10.3, 10.18, 10, 10, 9.72, 9.55, 9.19, 8.05, 0, 0, 0, , , , , , , , , , , , , , , , , , , , , 16.19, 15.76, 12.39, 9.41, 8.71, 9.4, 9.13, 9.35, 9.69, 10.16, 10.1, 10, 9.86, 9.51, 9.16, 8.99, 8.82, 8.64, 8.45, 6.76, 0, 0, , , , , , , , , , , , , , , , , , , , , 13.33, 11.96, 10.42, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, 8.08, 7.9, 7.9, 7.14, 0, 0, , , , , , , , , , , , , , , , , , , , , 10.31, 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, 7.86, 7.7, 7.53, 7.53, 7.34, 7.34, 7.16, 7.11, , , , , , , , , , , , , , , , , , , , , , , 7.46, 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.8, 6.38, 6.96, 7.13, 6.96, 6.79, 6.79, , , , , , , , , , , , , , , , , , , , , , , , , , , , 5.7, 2.85, 0, 0.68, 1.37, 2.11, 2.86, 3.6, 4.34, 5.09, 5.09, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 5.47, 1.53, 0.25, 0.4, 0.63, 0.91, 1.91, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 3.05, 0.77, 0.5, 0.57, 0.57, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 2.95, 0.89, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 9.16, 9.16, 8.99, 8.82, , , , , , , , , , , , , , , , , , , , , , , , , , , , 6.49, 6.49, 7.13, 7.43, 7.41, 7.63, 8.34, 9.25, 9.68, 9.11, 8.95, 8.6, 8.44, 8.27, , , , , , , , , , , , , , , , , , , , , , , , , , , , 8.14, 7.5, 4.36, 5.54, 5.34, 5.44, 6.61, 7.55, 7.82, 8.24, 8.21, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 5.18, 3.75, 2.77, 2.78, 3.92, 5.14, 5.38, 5.38, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 2.85, 0, 0.68, 1.37, 2.11, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 1.53, 0.25,];
+//# sourceMappingURL=LAB_TO_COOLNESS.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.js.map b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.js.map
new file mode 100644
index 0000000..23d810d
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"LAB_TO_COOLNESS.js","sourceRoot":"src/","sources":["evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.ts"],"names":[],"mappings":";;;AAAA,kBAAkB;AACL,QAAA,eAAe,GAAG,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,EAAC,IAAI,EAAC,IAAI,EAAE,CAAC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/index.d.ts b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/index.d.ts
new file mode 100644
index 0000000..ab0bb84
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/index.d.ts
@@ -0,0 +1,2 @@
+import { Color } from '@antv/color-schema';
+export declare const pairPreference: (color1: Color, color2: Color) => number;
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/index.js b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/index.js
new file mode 100644
index 0000000..8594d33
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/index.js
@@ -0,0 +1,97 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.pairPreference = void 0;
+const utils_1 = require("../../../utils");
+const LAB_TO_COOLNESS_1 = require("./LAB_TO_COOLNESS");
+// ref: Colorgorical:Creating discriminable and preferable color palettes for information visualization
+// https://github.com/connorgr/colorgorical/blob/90649656a57ce9743b00390473adce51a821cadc/src/model/c/scores/pairPreference.c
+// hue, lightness, and coolness weights taken from regression in Schloss & Palmer 2011 to estimate pairwise preference
+const wH = -46.42; // hueAngleDiff weight
+const wL = 47.61; // lightnessDiff weight
+const wC = 75.15; // coolness weight
+// These min and max values are taken from the regression normalization
+// Need to normalize based on these to verify the variables are on same range
+const cMax = 36.0;
+const cMin = 4.0;
+const hMax = 179.266981384;
+const hMin = 0.033547949;
+const lMax = 63.3673;
+const lMin = 0.0;
+const normalize = (d, high, low) => {
+ return (d - low) / (high - low);
+};
+const getLabIndex = (L, a, b) => {
+ // L = [0,100]; a = [-85, 100]; b = [-110, 95]
+ const iL = Math.round(L / 5);
+ const ia = Math.round((a + 85) / 5);
+ const ib = Math.round((b + 110) / 5);
+ return iL * 1596 + ia * 42 + ib;
+};
+const getCoolness = (L, a, b) => {
+ const index = getLabIndex(L, a, b);
+ return LAB_TO_COOLNESS_1.LAB_TO_COOLNESS[index] || 0;
+};
+// Calculate the scalar needed to convert an XYZ color to Lab
+const XYZtoLab = (t) => {
+ if (t > (6.0 / 29.0) ** 3) {
+ return t ** (1.0 / 3.0);
+ }
+ return (1.0 / 3.0) * (29.0 / 6.0) * (29.0 / 6.0) * t + 4.0 / 29.0;
+};
+// Calculate the scalar needed to convert an Lab color to XYZ.
+const LabToXYZ = (t) => {
+ return t > 6.0 / 29.0 ? t * t * t : 3.0 * (6.0 / 29) * (6.0 / 29) * (t - 4.0 / 29.0);
+};
+// Calculate the LCH cyllindrical color representation of an Lab color
+const LabToLCH = (L, a, b) => {
+ const C = Math.sqrt(a * a + b * b);
+ let H = (Math.atan2(b, a) * 180.0) / Math.PI;
+ if (H < 0.0)
+ H += 360.0;
+ if (H > 360.0)
+ H = 360.0 - H;
+ return [L, C, H];
+};
+// Convert CIE Lab coordinates characterized with Illuminant D65 to CIE Lab
+// characterized with Illuminant C. This conversion is required since our model
+// relies on a D65 characterization, but Schloss and Palmer's pair preference
+// function was defined in Illuminant C characterized CIE Lab space.
+const illuminantD65LabToIlluminantCLab = (oldL, oldA, oldB) => {
+ const ILLUMINANT_C_X = 98.074;
+ const ILLUMINANT_C_Y = 100.0;
+ const ILLUMINANT_C_Z = 118.232;
+ const ILLUMINANT_D65_X = 95.047;
+ const ILLUMINANT_D65_Y = 100.0;
+ const ILLUMINANT_D65_Z = 108.883;
+ // Derive X,Y,Z from Lab by inversing the transformation
+ const x = (1.0 / 116.0) * (oldL + 16) + (1.0 / 500.0) * oldA;
+ const y = (1.0 / 116.0) * (oldL + 16);
+ const z = (1 / 116) * (oldL + 16) - (1 / 200) * oldB;
+ const X = ILLUMINANT_D65_X * LabToXYZ(x);
+ const Y = ILLUMINANT_D65_Y * LabToXYZ(y);
+ const Z = ILLUMINANT_D65_Z * LabToXYZ(z);
+ const deconstructY = XYZtoLab(Y / ILLUMINANT_C_Y);
+ const L = 116 * deconstructY - 16;
+ const a = 500 * (XYZtoLab(X / ILLUMINANT_C_X) - deconstructY);
+ const b = 200 * (deconstructY - XYZtoLab(Z / ILLUMINANT_C_Z));
+ return [L, a, b];
+};
+const pairPreference = (color1, color2) => {
+ const [L1, a1, b1] = utils_1.colorToArray(color1, 'lab');
+ const [L2, a2, b2] = utils_1.colorToArray(color2, 'lab');
+ const coolness1 = getCoolness(L1, a1, b1);
+ const coolness2 = getCoolness(L2, a2, b2);
+ // Convert from D65 to Illuminant C Lab
+ const Lab1 = illuminantD65LabToIlluminantCLab(L1, a1, b1);
+ const Lab2 = illuminantD65LabToIlluminantCLab(L2, a2, b2);
+ // Convert Lab Illuminant C to LCH
+ const lCH1 = LabToLCH(Lab1[0], Lab1[1], Lab1[2]);
+ const lCH2 = LabToLCH(Lab2[0], Lab2[1], Lab2[2]);
+ const diffL = Math.abs(lCH1[0] - lCH2[0]);
+ const diffH = Math.abs(lCH1[2] - lCH2[2]);
+ const sumC = coolness1 + coolness2;
+ const pp = wL * normalize(diffL, lMax, lMin) + wH * normalize(diffH, hMax, hMin) + wC * normalize(sumC, cMax, cMin);
+ return pp;
+};
+exports.pairPreference = pairPreference;
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/index.js.map b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/index.js.map
new file mode 100644
index 0000000..8186a88
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorAesthetic/pairPreference/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["evaluators/colorAesthetic/pairPreference/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/CIEDE2000.d.ts b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/CIEDE2000.d.ts
new file mode 100644
index 0000000..eb96bc1
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/CIEDE2000.d.ts
@@ -0,0 +1,2 @@
+import { Color } from '@antv/color-schema';
+export declare const CIEDE2000: (color1: Color, color2: Color) => number;
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/CIEDE2000.js b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/CIEDE2000.js
new file mode 100644
index 0000000..adf3769
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/CIEDE2000.js
@@ -0,0 +1,68 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.CIEDE2000 = void 0;
+const utils_1 = require("../../utils");
+const hp = (x, y) => {
+ const tmphp = utils_1.rad2deg(Math.atan2(x, y));
+ if (tmphp >= 0)
+ return tmphp;
+ return tmphp + 360;
+};
+// ref: https://en.wikipedia.org/wiki/Color_difference#CIEDE2000
+// output range: [0, 100]
+const CIEDE2000 = (color1, color2) => {
+ // weight, usually unity
+ const kL = 1;
+ const kC = 1;
+ const kH = 1;
+ // Get L,a,b values for color
+ const [L1, a1, b1] = utils_1.colorToArray(color1, 'lab');
+ const [L2, a2, b2] = utils_1.colorToArray(color2, 'lab');
+ const C1 = Math.sqrt(a1 ** 2 + b1 ** 2);
+ const C2 = Math.sqrt(a2 ** 2 + b2 ** 2);
+ const avgC = (C1 + C2) / 2;
+ const p = 0.5 * (1 - Math.sqrt(avgC ** 7 / (avgC ** 7 + 25 ** 7)));
+ const a1p = (1.0 + p) * a1;
+ const a2p = (1.0 + p) * a2;
+ const C1p = Math.sqrt(a1p ** 2 + b1 ** 2);
+ const C2p = Math.sqrt(a2p ** 2 + b2 ** 2);
+ const h1p = hp(b1, a1p);
+ const h2p = hp(b2, a2p);
+ const dLp = L2 - L1;
+ const dCp = C2p - C1p;
+ let dhp;
+ if (Math.abs(h2p - h1p) <= 180)
+ dhp = h2p - h1p;
+ else if (h2p - h1p < -180)
+ dhp = h2p - h1p + 360;
+ else
+ dhp = h2p - h1p - 360; // h2p - h1p > 180
+ const dHp = 2 * Math.sqrt(C1p * C2p) * Math.sin(utils_1.deg2rad(dhp) / 2.0);
+ let avgHp;
+ if (Math.abs(h1p - h2p) <= 180)
+ avgHp = (h1p + h2p) / 2.0;
+ else if (Math.abs(h1p - h2p) > 180 && h1p + h2p < 360)
+ avgHp = (h1p + h2p + 360) / 2.0;
+ else
+ avgHp = (h1p + h2p - 360) / 2.0; // Math.abs(h1p - h2p) > 180 && h1p + h2p >= 360
+ const avgL = (L1 + L2) / 2.0;
+ const avgCp = (C1p + C2p) / 2.0;
+ const T = 1 -
+ 0.17 * Math.cos(utils_1.deg2rad(avgHp - 30)) +
+ 0.24 * Math.cos(utils_1.deg2rad(2 * avgHp)) +
+ 0.32 * Math.cos(utils_1.deg2rad(3 * avgHp + 6)) -
+ 0.2 * Math.cos(utils_1.deg2rad(4 * avgHp - 63));
+ const SL = 1 + (0.015 * (avgL - 50) ** 2) / Math.sqrt(20 + (avgL - 50) ** 2);
+ const SC = 1 + 0.045 * avgCp;
+ const SH = 1 + 0.015 * avgCp * T;
+ const RT = -2 *
+ Math.sqrt(avgCp ** 7 / (avgCp ** 7 + 25.0 ** 7)) *
+ Math.sin(utils_1.deg2rad(60 * Math.exp(-(((avgHp - 275) / 25) ** 2))));
+ const dE = Math.sqrt((dLp / (SL * kL)) ** 2 +
+ (dCp / (SC * kC)) ** 2 +
+ (dHp / (SH * kH)) ** 2 +
+ RT * (dCp / (SC * kC)) * (dHp / (SH * kH)));
+ return dE;
+};
+exports.CIEDE2000 = CIEDE2000;
+//# sourceMappingURL=CIEDE2000.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/CIEDE2000.js.map b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/CIEDE2000.js.map
new file mode 100644
index 0000000..a643ba4
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/CIEDE2000.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"CIEDE2000.js","sourceRoot":"src/","sources":["evaluators/colorDifference/CIEDE2000.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/contrastRatio.d.ts b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/contrastRatio.d.ts
new file mode 100644
index 0000000..d5acd68
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/contrastRatio.d.ts
@@ -0,0 +1,2 @@
+import { Color } from '@antv/color-schema';
+export declare const contrastRatio: (color1: Color, color2: Color) => number;
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/contrastRatio.js b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/contrastRatio.js
new file mode 100644
index 0000000..6f2173a
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/contrastRatio.js
@@ -0,0 +1,27 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.contrastRatio = void 0;
+const utils_1 = require("../../utils");
+const compute = (num) => {
+ const n = num / 255;
+ if (n <= 0.03928) {
+ return n / 12.92;
+ }
+ return ((n + 0.055) / 1.055) ** 2.4;
+};
+const calcRelativeLuminance = (color) => {
+ const [r, g, b] = utils_1.colorToArray(color);
+ return 0.2126 * compute(r) + 0.7152 * compute(g) + 0.0722 * compute(b);
+};
+// ref: https://www.w3.org/TR/WCAG21/#dfn-contrast-ratio
+// Contrast ratios can range from 1 to 21 (commonly written 1:1 to 21:1).
+const contrastRatio = (color1, color2) => {
+ const L1 = calcRelativeLuminance(color1);
+ const L2 = calcRelativeLuminance(color2);
+ if (L2 > L1) {
+ return (L2 + 0.05) / (L1 + 0.05);
+ }
+ return (L1 + 0.05) / (L2 + 0.05);
+};
+exports.contrastRatio = contrastRatio;
+//# sourceMappingURL=contrastRatio.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/contrastRatio.js.map b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/contrastRatio.js.map
new file mode 100644
index 0000000..d7e461a
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/contrastRatio.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"contrastRatio.js","sourceRoot":"src/","sources":["evaluators/colorDifference/contrastRatio.ts"],"names":[],"mappings":";;;AACA,uCAA2C;AAE3C,MAAM,OAAO,GAAG,CAAC,GAAW,EAAU,EAAE;IACtC,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IACpB,IAAI,CAAC,IAAI,OAAO,EAAE;QAChB,OAAO,CAAC,GAAG,KAAK,CAAC;KAClB;IACD,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC;AACtC,CAAC,CAAC;AACF,MAAM,qBAAqB,GAAG,CAAC,KAAY,EAAU,EAAE;IACrD,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,oBAAY,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF,wDAAwD;AACxD,yEAAyE;AAClE,MAAM,aAAa,GAAG,CAAC,MAAa,EAAE,MAAa,EAAU,EAAE;IACpE,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,EAAE,GAAG,EAAE,EAAE;QACX,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;KAClC;IACD,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC;AAPW,QAAA,aAAa,iBAOxB"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/euclideanDistance.d.ts b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/euclideanDistance.d.ts
new file mode 100644
index 0000000..3d230e3
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/euclideanDistance.d.ts
@@ -0,0 +1,2 @@
+import { Color, ColorModel } from '@antv/color-schema';
+export declare const euclideanDistance: (color1: Color, color2: Color, colorModel?: ColorModel) => number;
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/euclideanDistance.js b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/euclideanDistance.js
new file mode 100644
index 0000000..37f543a
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/euclideanDistance.js
@@ -0,0 +1,13 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.euclideanDistance = void 0;
+const tslib_1 = require("tslib");
+const chroma_js_1 = tslib_1.__importDefault(require("chroma-js"));
+const utils_1 = require("../../utils");
+// Computes the Euclidean distance between two colors in a given color model (default is Lab).
+// output range: [0, 255]
+const euclideanDistance = (color1, color2, colorModel = 'lab') => {
+ return chroma_js_1.default.distance(utils_1.colorToChromaColor(color1), utils_1.colorToChromaColor(color2), colorModel);
+};
+exports.euclideanDistance = euclideanDistance;
+//# sourceMappingURL=euclideanDistance.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/euclideanDistance.js.map b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/euclideanDistance.js.map
new file mode 100644
index 0000000..e94d06b
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/euclideanDistance.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"euclideanDistance.js","sourceRoot":"src/","sources":["evaluators/colorDifference/euclideanDistance.ts"],"names":[],"mappings":";;;;AAAA,kEAA+B;AAE/B,uCAAiD;AAEjD,8FAA8F;AAC9F,yBAAyB;AAClB,MAAM,iBAAiB,GAAG,CAAC,MAAa,EAAE,MAAa,EAAE,aAAyB,KAAK,EAAU,EAAE;IACxG,OAAO,mBAAM,CAAC,QAAQ,CAAC,0BAAkB,CAAC,MAAM,CAAC,EAAE,0BAAkB,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;AAC7F,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/index.d.ts b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/index.d.ts
new file mode 100644
index 0000000..6e86774
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/index.d.ts
@@ -0,0 +1,2 @@
+import { ColorDifference } from '@src/types';
+export declare const colorDifference: ColorDifference;
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/index.js b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/index.js
new file mode 100644
index 0000000..aa9f638
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/index.js
@@ -0,0 +1,27 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.colorDifference = void 0;
+const constant_1 = require("../../constant");
+const utils_1 = require("../../utils");
+const euclideanDistance_1 = require("./euclideanDistance");
+const CIEDE2000_1 = require("./CIEDE2000");
+const contrastRatio_1 = require("./contrastRatio");
+const colorDifference = (color1, color2, configuration = { measure: 'euclidean' }) => {
+ const { measure = 'euclidean', backgroundColor = constant_1.WHITE } = configuration;
+ // If the color is semi-transparent, the color will be overlapped on a white background by default for comparison
+ const overlappedColor1 = utils_1.colorBlend(color1, backgroundColor);
+ const overlappedColor2 = utils_1.colorBlend(color2, backgroundColor);
+ switch (measure) {
+ case 'CIEDE2000':
+ return CIEDE2000_1.CIEDE2000(overlappedColor1, overlappedColor2);
+ case 'euclidean':
+ // @ts-ignore
+ return euclideanDistance_1.euclideanDistance(overlappedColor1, overlappedColor2, configuration.colorModel);
+ case 'contrastRatio':
+ return contrastRatio_1.contrastRatio(overlappedColor1, overlappedColor2);
+ default:
+ return euclideanDistance_1.euclideanDistance(overlappedColor1, overlappedColor2);
+ }
+};
+exports.colorDifference = colorDifference;
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/index.js.map b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/index.js.map
new file mode 100644
index 0000000..c7942d5
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/colorDifference/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["evaluators/colorDifference/index.ts"],"names":[],"mappings":";;;AACA,6CAAuC;AACvC,uCAAyC;AACzC,2DAAwD;AACxD,2CAAwC;AACxC,mDAAgD;AAEzC,MAAM,eAAe,GAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;IAC3G,MAAM,EAAE,OAAO,GAAG,WAAW,EAAE,eAAe,GAAG,gBAAK,EAAE,GAAG,aAAa,CAAC;IACzE,iHAAiH;IACjH,MAAM,gBAAgB,GAAG,kBAAU,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,kBAAU,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7D,QAAQ,OAAO,EAAE;QACf,KAAK,WAAW;YACd,OAAO,qBAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QACvD,KAAK,WAAW;YACd,aAAa;YACb,OAAO,qCAAiB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QACzF,KAAK,eAAe;YAClB,OAAO,6BAAa,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QAC3D;YACE,OAAO,qCAAiB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;KAChE;AACH,CAAC,CAAC;AAhBW,QAAA,eAAe,mBAgB1B"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/index.d.ts b/vendors/smart-color/0.2.1/lib/evaluators/index.d.ts
new file mode 100644
index 0000000..c8441e9
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/index.d.ts
@@ -0,0 +1,2 @@
+export { colorDifference } from './colorDifference';
+export { colorAesthetic } from './colorAesthetic';
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/index.js b/vendors/smart-color/0.2.1/lib/evaluators/index.js
new file mode 100644
index 0000000..72f4bab
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/index.js
@@ -0,0 +1,8 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.colorAesthetic = exports.colorDifference = void 0;
+var colorDifference_1 = require("./colorDifference");
+Object.defineProperty(exports, "colorDifference", { enumerable: true, get: function () { return colorDifference_1.colorDifference; } });
+var colorAesthetic_1 = require("./colorAesthetic");
+Object.defineProperty(exports, "colorAesthetic", { enumerable: true, get: function () { return colorAesthetic_1.colorAesthetic; } });
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/evaluators/index.js.map b/vendors/smart-color/0.2.1/lib/evaluators/index.js.map
new file mode 100644
index 0000000..bc42aef
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/evaluators/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["evaluators/index.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromImage.d.ts b/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromImage.d.ts
new file mode 100644
index 0000000..81d9731
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromImage.d.ts
@@ -0,0 +1,2 @@
+import { Palette } from '@antv/color-schema';
+export declare function getPaletteFromImage(imgUrl: string, count?: number, quality?: number): Promise;
diff --git a/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromImage.js b/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromImage.js
new file mode 100644
index 0000000..224174e
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromImage.js
@@ -0,0 +1,68 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getPaletteFromImage = void 0;
+const tslib_1 = require("tslib");
+// @ts-ignore
+const quantize_1 = tslib_1.__importDefault(require("quantize"));
+const utils_1 = require("../utils");
+// sample pixels in image
+const imageToPixels = (image, quality) => {
+ const { width, height } = image;
+ const canvas = document.createElement('canvas');
+ const context = canvas.getContext('2d');
+ if (!context)
+ return [];
+ canvas.width = width;
+ canvas.height = height;
+ context.drawImage(image, 0, 0, width, height);
+ const imageData = context.getImageData(0, 0, width, height).data;
+ const pixels = [];
+ const count = width * height;
+ for (let i = 0; i < count; i += quality) {
+ const offset = i * 4;
+ const r = imageData[offset + 0];
+ const g = imageData[offset + 1];
+ const b = imageData[offset + 2];
+ const a = imageData[offset + 3];
+ // If pixel is mostly opaque and not white
+ if (typeof a === 'undefined' || a >= 125) {
+ if (!(r > 250 && g > 250 && b > 250)) {
+ pixels.push([r, g, b]);
+ }
+ }
+ }
+ return pixels;
+};
+// Get a list of colors from img url
+async function getPaletteFromImage(imgUrl, count = 6, quality = 10) {
+ // int
+ let validCount = Math.round(count);
+ validCount = Math.max(1, validCount);
+ validCount = Math.min(50, validCount);
+ let validQuality = Math.round(quality);
+ validQuality = Math.max(1, validQuality);
+ return new Promise((resolve) => {
+ utils_1.loadImage(imgUrl)
+ .then((img) => {
+ validQuality = Math.min(Math.floor((img.width * img.height) / validCount), validQuality);
+ const pixels = imageToPixels(img, validQuality);
+ // Use the median cut algorithm provided by quantize to cluster similar colors
+ // the colorCount in quantize must be larger than 1
+ // so if the validCount is equal to 1
+ // get a palette of two colors and select the base color from the largest cluster
+ const colorMap = quantize_1.default(pixels, validCount === 1 ? 2 : validCount);
+ const arrayRGB = colorMap.palette().slice(0, validCount);
+ resolve({
+ name: 'image',
+ semantic: null,
+ type: 'categorical',
+ colors: arrayRGB.map((rgb) => utils_1.arrayToColor(rgb, 'rgb')),
+ });
+ })
+ .finally(() => {
+ resolve(undefined);
+ });
+ });
+}
+exports.getPaletteFromImage = getPaletteFromImage;
+//# sourceMappingURL=getPaletteFromImage.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromImage.js.map b/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromImage.js.map
new file mode 100644
index 0000000..002d626
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromImage.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"getPaletteFromImage.js","sourceRoot":"src/","sources":["extractors/getPaletteFromImage.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromString.d.ts b/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromString.d.ts
new file mode 100644
index 0000000..f1d56b4
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromString.d.ts
@@ -0,0 +1,2 @@
+import { Palette } from '@antv/color-schema';
+export declare function getPaletteFromString(string: string): Palette;
diff --git a/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromString.js b/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromString.js
new file mode 100644
index 0000000..010d8e6
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromString.js
@@ -0,0 +1,21 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getPaletteFromString = void 0;
+const utils_1 = require("../utils");
+// Get a list of colors from string
+function getPaletteFromString(string) {
+ return {
+ name: 'code',
+ semantic: null,
+ type: 'categorical',
+ colors: string
+ .replace(/[^#,0-9a-fA-F]/g, '')
+ .split(',')
+ .filter((color) => color.length > 0)
+ .map((color) => {
+ return utils_1.hexToColor(color);
+ }),
+ };
+}
+exports.getPaletteFromString = getPaletteFromString;
+//# sourceMappingURL=getPaletteFromString.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromString.js.map b/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromString.js.map
new file mode 100644
index 0000000..d2eccd9
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/extractors/getPaletteFromString.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"getPaletteFromString.js","sourceRoot":"src/","sources":["extractors/getPaletteFromString.ts"],"names":[],"mappings":";;;AACA,oCAAsC;AAEtC,mCAAmC;AACnC,SAAgB,oBAAoB,CAAC,MAAc;IACjD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,MAAM;aACX,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;aAC9B,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;aACnC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,OAAO,kBAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC;KACL,CAAC;AACJ,CAAC;AAbD,oDAaC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/extractors/index.d.ts b/vendors/smart-color/0.2.1/lib/extractors/index.d.ts
new file mode 100644
index 0000000..ca8afba
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/extractors/index.d.ts
@@ -0,0 +1,2 @@
+export { getPaletteFromImage } from './getPaletteFromImage';
+export { getPaletteFromString } from './getPaletteFromString';
diff --git a/vendors/smart-color/0.2.1/lib/extractors/index.js b/vendors/smart-color/0.2.1/lib/extractors/index.js
new file mode 100644
index 0000000..1519e88
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/extractors/index.js
@@ -0,0 +1,8 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getPaletteFromString = exports.getPaletteFromImage = void 0;
+var getPaletteFromImage_1 = require("./getPaletteFromImage");
+Object.defineProperty(exports, "getPaletteFromImage", { enumerable: true, get: function () { return getPaletteFromImage_1.getPaletteFromImage; } });
+var getPaletteFromString_1 = require("./getPaletteFromString");
+Object.defineProperty(exports, "getPaletteFromString", { enumerable: true, get: function () { return getPaletteFromString_1.getPaletteFromString; } });
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/extractors/index.js.map b/vendors/smart-color/0.2.1/lib/extractors/index.js.map
new file mode 100644
index 0000000..557cfa5
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/extractors/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["extractors/index.ts"],"names":[],"mappings":";;;AAAA,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/achromaticGeneration.d.ts b/vendors/smart-color/0.2.1/lib/generators/achromaticGeneration.d.ts
new file mode 100644
index 0000000..58a25e7
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/achromaticGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const achromaticGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/lib/generators/achromaticGeneration.js b/vendors/smart-color/0.2.1/lib/generators/achromaticGeneration.js
new file mode 100644
index 0000000..3f2eca3
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/achromaticGeneration.js
@@ -0,0 +1,27 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.achromaticGeneration = void 0;
+const monochromaticGeneration_1 = require("./monochromaticGeneration");
+const BLACK = {
+ model: 'rgb',
+ value: { r: 0, g: 0, b: 0 },
+};
+const WHITE = {
+ model: 'rgb',
+ value: { r: 255, g: 255, b: 255 },
+};
+// generate sequential palette by achromatic scheme
+const achromaticGeneration = (configuration) => {
+ const { tendency } = configuration;
+ const newConfiguration = {
+ ...configuration,
+ color: tendency === 'tint' ? BLACK : WHITE,
+ };
+ const palette = monochromaticGeneration_1.monochromaticGeneration(newConfiguration);
+ return {
+ ...palette,
+ name: 'achromatic',
+ };
+};
+exports.achromaticGeneration = achromaticGeneration;
+//# sourceMappingURL=achromaticGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/achromaticGeneration.js.map b/vendors/smart-color/0.2.1/lib/generators/achromaticGeneration.js.map
new file mode 100644
index 0000000..fb5585f
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/achromaticGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"achromaticGeneration.js","sourceRoot":"src/","sources":["generators/achromaticGeneration.ts"],"names":[],"mappings":";;;AACA,uEAAoE;AAGpE,MAAM,KAAK,GAAU;IACnB,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;CAC5B,CAAC;AACF,MAAM,KAAK,GAAU;IACnB,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;CAClC,CAAC;AAEF,mDAAmD;AAC5C,MAAM,oBAAoB,GAAe,CAAC,aAAa,EAAE,EAAE;IAChE,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;IACnC,MAAM,gBAAgB,GAAG;QACvB,GAAG,aAAa;QAChB,KAAK,EAAE,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;KAC3C,CAAC;IACF,MAAM,OAAO,GAAG,iDAAuB,CAAC,gBAAgB,CAAC,CAAC;IAC1D,OAAO;QACL,GAAG,OAAO;QACV,IAAI,EAAE,YAAY;KACnB,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,oBAAoB,wBAW/B"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/analogousGeneration.d.ts b/vendors/smart-color/0.2.1/lib/generators/analogousGeneration.d.ts
new file mode 100644
index 0000000..19323f1
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/analogousGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const analogousGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/lib/generators/analogousGeneration.js b/vendors/smart-color/0.2.1/lib/generators/analogousGeneration.js
new file mode 100644
index 0000000..3c73af0
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/analogousGeneration.js
@@ -0,0 +1,34 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.analogousGeneration = void 0;
+const utils_1 = require("../utils");
+// generate sequential palette by analogous scheme
+const analogousGeneration = (configuration) => {
+ const { count, color, tendency } = configuration;
+ const isTint = tendency === 'tint';
+ const [hue, saturation, value] = utils_1.colorToArray(color, 'hsv');
+ const index = Math.floor(count / 2);
+ // Ref: Ant Design 3.x palette algorithm https://zhuanlan.zhihu.com/p/32422584
+ let dHue = 60 / (count - 1);
+ if (hue >= 60 && hue <= 240) {
+ // cool undertone
+ dHue = -dHue;
+ }
+ const dSaturation = (saturation - 0.1) / 3 / (count - index - 1);
+ const dValue = (value - 0.4) / 3 / index;
+ const newColors = new Array(count).fill(0).map((d, i) => {
+ const h = utils_1.hueOffset(hue, dHue * (i - index));
+ const s = i <= index ? Math.min(saturation + dSaturation * (index - i), 1) : saturation + 3 * dSaturation * (index - i);
+ const v = i <= index ? value - 3 * dValue * (index - i) : Math.min(value - dValue * (index - i), 1);
+ return utils_1.arrayToColor([h, s, v], 'hsv');
+ });
+ const palette = {
+ name: 'analogous',
+ semantic: null,
+ type: 'discrete-scale',
+ colors: isTint ? newColors : newColors.reverse(),
+ };
+ return palette;
+};
+exports.analogousGeneration = analogousGeneration;
+//# sourceMappingURL=analogousGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/analogousGeneration.js.map b/vendors/smart-color/0.2.1/lib/generators/analogousGeneration.js.map
new file mode 100644
index 0000000..71fc21f
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/analogousGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"analogousGeneration.js","sourceRoot":"src/","sources":["generators/analogousGeneration.ts"],"names":[],"mappings":";;;AACA,oCAAiE;AAGjE,kDAAkD;AAC3C,MAAM,mBAAmB,GAAe,CAAC,aAAa,EAAE,EAAE;IAC/D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;IAEjD,MAAM,MAAM,GAAG,QAAQ,KAAK,MAAM,CAAC;IACnC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,oBAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACpC,8EAA8E;IAC9E,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC5B,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE;QAC3B,iBAAiB;QACjB,IAAI,GAAG,CAAC,IAAI,CAAC;KACd;IACD,MAAM,WAAW,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtD,MAAM,CAAC,GAAG,iBAAS,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,GACL,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAChH,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpG,OAAO,oBAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAyB;QACpC,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE;KACjD,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AA5BW,QAAA,mBAAmB,uBA4B9B"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/categoricalGeneration.d.ts b/vendors/smart-color/0.2.1/lib/generators/categoricalGeneration.d.ts
new file mode 100644
index 0000000..6aff965
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/categoricalGeneration.d.ts
@@ -0,0 +1,5 @@
+import { Color } from '@antv/color-schema';
+export declare const categoricalGenerationInHsv: (color: Color, dHue: number, count: number, colors?: (Color | undefined)[]) => {
+ newColors: Color[];
+ locked: any[];
+};
diff --git a/vendors/smart-color/0.2.1/lib/generators/categoricalGeneration.js b/vendors/smart-color/0.2.1/lib/generators/categoricalGeneration.js
new file mode 100644
index 0000000..22d225d
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/categoricalGeneration.js
@@ -0,0 +1,31 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.categoricalGenerationInHsv = void 0;
+const utils_1 = require("../utils");
+const saturationRange = [0.3, 0.9];
+const valueRange = [0.5, 1];
+const categoricalGenerationInHsv = (color, dHue, count, colors = []) => {
+ const [h] = utils_1.colorToArray(color, 'hsv');
+ const locked = new Array(count).fill(false);
+ let placeBasicColor = colors.findIndex((c) => c && c.model === color.model && c.value === color.value) === -1;
+ const newColors = new Array(count).fill(0).map((d, i) => {
+ const lockedColor = colors[i];
+ if (lockedColor) {
+ locked[i] = true;
+ return lockedColor;
+ }
+ // find the first unlocked position to place the basic color
+ if (placeBasicColor) {
+ placeBasicColor = false;
+ locked[i] = true;
+ return color;
+ }
+ return utils_1.arrayToColor([utils_1.hueOffset(h, dHue * i), utils_1.random(...saturationRange), utils_1.random(...valueRange)], 'hsv');
+ });
+ return {
+ newColors,
+ locked,
+ };
+};
+exports.categoricalGenerationInHsv = categoricalGenerationInHsv;
+//# sourceMappingURL=categoricalGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/categoricalGeneration.js.map b/vendors/smart-color/0.2.1/lib/generators/categoricalGeneration.js.map
new file mode 100644
index 0000000..a9cdb9b
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/categoricalGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"categoricalGeneration.js","sourceRoot":"src/","sources":["generators/categoricalGeneration.ts"],"names":[],"mappings":";;;AACA,oCAAyE;AAEzE,MAAM,eAAe,GAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACrD,MAAM,UAAU,GAAqB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACvC,MAAM,0BAA0B,GAAG,CACxC,KAAY,EACZ,IAAY,EACZ,KAAa,EACb,SAAgC,EAAE,EAClC,EAAE;IACF,MAAM,CAAC,CAAC,CAAC,GAAG,oBAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9G,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAS,EAAE;QAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,WAAW,EAAE;YACf,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACjB,OAAO,WAAW,CAAC;SACpB;QACD,4DAA4D;QAC5D,IAAI,eAAe,EAAE;YACnB,eAAe,GAAG,KAAK,CAAC;YACxB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACjB,OAAO,KAAK,CAAC;SACd;QACD,OAAO,oBAAY,CAAC,CAAC,iBAAS,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,cAAM,CAAC,GAAG,eAAe,CAAC,EAAE,cAAM,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;IACH,OAAO;QACL,SAAS;QACT,MAAM;KACP,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,0BAA0B,8BA2BrC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/complementaryGeneration.d.ts b/vendors/smart-color/0.2.1/lib/generators/complementaryGeneration.d.ts
new file mode 100644
index 0000000..7460fef
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/complementaryGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const complementaryGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/lib/generators/complementaryGeneration.js b/vendors/smart-color/0.2.1/lib/generators/complementaryGeneration.js
new file mode 100644
index 0000000..d87017c
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/complementaryGeneration.js
@@ -0,0 +1,33 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.complementaryGeneration = void 0;
+const utils_1 = require("../utils");
+const discreteScaleGeneration_1 = require("./discreteScaleGeneration");
+// generate diverging palette by complementary scheme
+const complementaryGeneration = (configuration) => {
+ const { count, color } = configuration;
+ const [hue, saturation, value] = utils_1.colorToArray(color, 'hsv');
+ const complementaryColor = utils_1.arrayToColor([utils_1.hueOffset(hue, 180), saturation, value], 'hsv');
+ const maxL = utils_1.randomInt(80, 90);
+ const minL = utils_1.randomInt(15, 25);
+ const halfCount = Math.floor(count / 2);
+ const left = discreteScaleGeneration_1.discreteScaleGenerationInLab(color, halfCount, [minL, maxL]);
+ const right = discreteScaleGeneration_1.discreteScaleGenerationInLab(complementaryColor, halfCount, [minL, maxL]).reverse();
+ let newColors;
+ if (count % 2 === 1) {
+ const midColor = utils_1.arrayToColor([(utils_1.hueOffset(hue, 180) + hue) / 2, utils_1.random(0.05, 0.1), utils_1.random(0.9, 0.95)], 'hsv');
+ newColors = [...left, midColor, ...right];
+ }
+ else {
+ newColors = [...left, ...right];
+ }
+ const palette = {
+ name: 'complementary',
+ semantic: null,
+ type: 'discrete-scale',
+ colors: newColors,
+ };
+ return palette;
+};
+exports.complementaryGeneration = complementaryGeneration;
+//# sourceMappingURL=complementaryGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/complementaryGeneration.js.map b/vendors/smart-color/0.2.1/lib/generators/complementaryGeneration.js.map
new file mode 100644
index 0000000..431d943
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/complementaryGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"complementaryGeneration.js","sourceRoot":"src/","sources":["generators/complementaryGeneration.ts"],"names":[],"mappings":";;;AACA,oCAAoF;AAEpF,uEAAyE;AAEzE,qDAAqD;AAC9C,MAAM,uBAAuB,GAAe,CAAC,aAAa,EAAE,EAAE;IACnE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC;IAEvC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,oBAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5D,MAAM,kBAAkB,GAAG,oBAAY,CAAC,CAAC,iBAAS,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAEzF,MAAM,IAAI,GAAG,iBAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,iBAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAExC,MAAM,IAAI,GAAG,sDAA4B,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,sDAA4B,CAAC,kBAAkB,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAClG,IAAI,SAAS,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE;QACnB,MAAM,QAAQ,GAAG,oBAAY,CAAC,CAAC,CAAC,iBAAS,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,cAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,cAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9G,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC;KAC3C;SAAM;QACL,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC;KACjC;IACD,MAAM,OAAO,GAAyB;QACpC,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,SAAS;KAClB,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AA1BW,QAAA,uBAAuB,2BA0BlC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/discreteScaleGeneration.d.ts b/vendors/smart-color/0.2.1/lib/generators/discreteScaleGeneration.d.ts
new file mode 100644
index 0000000..ae960f7
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/discreteScaleGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Color } from '@antv/color-schema';
+export declare const discreteScaleGenerationInLab: (color: Color, count: number, lRange?: [number, number]) => Color[];
diff --git a/vendors/smart-color/0.2.1/lib/generators/discreteScaleGeneration.js b/vendors/smart-color/0.2.1/lib/generators/discreteScaleGeneration.js
new file mode 100644
index 0000000..ea61c67
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/discreteScaleGeneration.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.discreteScaleGenerationInLab = void 0;
+const utils_1 = require("../utils");
+// Fix a, b, vary L
+const discreteScaleGenerationInLab = (color, count, lRange = [utils_1.randomInt(5, 10), utils_1.randomInt(90, 95)]) => {
+ const [L, a, b] = utils_1.colorToArray(color, 'lab');
+ const minL = L <= 15 ? L : lRange[0];
+ const maxL = L >= 85 ? L : lRange[1];
+ let dLightness = (maxL - minL) / (count - 1);
+ // basic color index
+ const index = Math.ceil((L - minL) / dLightness);
+ dLightness = index === 0 ? dLightness : (L - minL) / index;
+ return new Array(count).fill(0).map((d, i) => utils_1.arrayToColor([dLightness * i + minL, a, b], 'lab'));
+};
+exports.discreteScaleGenerationInLab = discreteScaleGenerationInLab;
+//# sourceMappingURL=discreteScaleGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/discreteScaleGeneration.js.map b/vendors/smart-color/0.2.1/lib/generators/discreteScaleGeneration.js.map
new file mode 100644
index 0000000..850c23f
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/discreteScaleGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"discreteScaleGeneration.js","sourceRoot":"src/","sources":["generators/discreteScaleGeneration.ts"],"names":[],"mappings":";;;AACA,oCAAiE;AAEjE,mBAAmB;AACZ,MAAM,4BAA4B,GAAG,CAC1C,KAAY,EACZ,KAAa,EACb,SAA2B,CAAC,iBAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,iBAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EACvD,EAAE;IACX,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,oBAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,UAAU,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7C,oBAAoB;IACpB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IACjD,UAAU,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;IAC3D,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAY,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACpG,CAAC,CAAC;AAbW,QAAA,4BAA4B,gCAavC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/index.d.ts b/vendors/smart-color/0.2.1/lib/generators/index.d.ts
new file mode 100644
index 0000000..1efdef2
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/index.d.ts
@@ -0,0 +1,9 @@
+import { PaletteGeneration } from '../types';
+/**
+ *
+ * @param type
+ * @param colors locked colors
+ * @param configuration
+ * @returns
+ */
+export declare const paletteGeneration: PaletteGeneration;
diff --git a/vendors/smart-color/0.2.1/lib/generators/index.js b/vendors/smart-color/0.2.1/lib/generators/index.js
new file mode 100644
index 0000000..e84036c
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/index.js
@@ -0,0 +1,43 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.paletteGeneration = void 0;
+const monochromaticGeneration_1 = require("./monochromaticGeneration");
+const analogousGeneration_1 = require("./analogousGeneration");
+const achromaticGeneration_1 = require("./achromaticGeneration");
+const complementaryGeneration_1 = require("./complementaryGeneration");
+const splitComplementaryGeneration_1 = require("./splitComplementaryGeneration");
+const triadicGeneration_1 = require("./triadicGeneration");
+const tetradicGeneration_1 = require("./tetradicGeneration");
+const polychromaticGeneration_1 = require("./polychromaticGeneration");
+const randomGeneration_1 = require("./randomGeneration");
+const validateConfiguration_1 = require("./validateConfiguration");
+const generator = {
+ monochromatic: monochromaticGeneration_1.monochromaticGeneration,
+ analogous: analogousGeneration_1.analogousGeneration,
+ achromatic: achromaticGeneration_1.achromaticGeneration,
+ complementary: complementaryGeneration_1.complementaryGeneration,
+ 'split-complementary': splitComplementaryGeneration_1.splitComplementaryGeneration,
+ triadic: triadicGeneration_1.triadicGeneration,
+ tetradic: tetradicGeneration_1.tetradicGeneration,
+ polychromatic: polychromaticGeneration_1.polychromaticGeneration,
+ customized: randomGeneration_1.randomGeneration,
+};
+/**
+ *
+ * @param type
+ * @param colors locked colors
+ * @param configuration
+ * @returns
+ */
+const paletteGeneration = (type = 'monochromatic', configuration = {}) => {
+ // set default value
+ const newConfiguration = validateConfiguration_1.validateConfiguration(type, configuration);
+ try {
+ return generator[type](newConfiguration);
+ }
+ catch (e) {
+ return randomGeneration_1.randomGeneration(newConfiguration);
+ }
+};
+exports.paletteGeneration = paletteGeneration;
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/index.js.map b/vendors/smart-color/0.2.1/lib/generators/index.js.map
new file mode 100644
index 0000000..d2a6784
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["generators/index.ts"],"names":[],"mappings":";;;AAEA,uEAAoE;AACpE,+DAA4D;AAC5D,iEAA8D;AAC9D,uEAAoE;AACpE,iFAA8E;AAC9E,2DAAwD;AACxD,6DAA0D;AAC1D,uEAAoE;AACpE,yDAAsD;AACtD,mEAAgE;AAEhE,MAAM,SAAS,GAAsC;IACnD,aAAa,EAAE,iDAAuB;IACtC,SAAS,EAAE,yCAAmB;IAC9B,UAAU,EAAE,2CAAoB;IAChC,aAAa,EAAE,iDAAuB;IACtC,qBAAqB,EAAE,2DAA4B;IACnD,OAAO,EAAE,qCAAiB;IAC1B,QAAQ,EAAE,uCAAkB;IAC5B,aAAa,EAAE,iDAAuB;IACtC,UAAU,EAAE,mCAAgB;CAC7B,CAAC;AAEF;;;;;;GAMG;AACI,MAAM,iBAAiB,GAAsB,CAAC,OAAwB,eAAe,EAAE,aAAa,GAAG,EAAE,EAAE,EAAE;IAClH,oBAAoB;IACpB,MAAM,gBAAgB,GAAG,6CAAqB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACpE,IAAI;QACF,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC;KAC1C;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,mCAAgB,CAAC,gBAAgB,CAAC,CAAC;KAC3C;AACH,CAAC,CAAC;AARW,QAAA,iBAAiB,qBAQ5B"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/monochromaticGeneration.d.ts b/vendors/smart-color/0.2.1/lib/generators/monochromaticGeneration.d.ts
new file mode 100644
index 0000000..00c14f6
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/monochromaticGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const monochromaticGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/lib/generators/monochromaticGeneration.js b/vendors/smart-color/0.2.1/lib/generators/monochromaticGeneration.js
new file mode 100644
index 0000000..be46e5f
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/monochromaticGeneration.js
@@ -0,0 +1,19 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.monochromaticGeneration = void 0;
+const discreteScaleGeneration_1 = require("./discreteScaleGeneration");
+// generate sequential palette by monochromatic scheme
+const monochromaticGeneration = (configuration) => {
+ const { count, color, tendency } = configuration;
+ const isTint = tendency === 'tint';
+ const newColors = discreteScaleGeneration_1.discreteScaleGenerationInLab(color, count);
+ const palette = {
+ name: 'monochromatic',
+ semantic: null,
+ type: 'discrete-scale',
+ colors: isTint ? newColors : newColors.reverse(),
+ };
+ return palette;
+};
+exports.monochromaticGeneration = monochromaticGeneration;
+//# sourceMappingURL=monochromaticGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/monochromaticGeneration.js.map b/vendors/smart-color/0.2.1/lib/generators/monochromaticGeneration.js.map
new file mode 100644
index 0000000..2d5dc5a
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/monochromaticGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"monochromaticGeneration.js","sourceRoot":"src/","sources":["generators/monochromaticGeneration.ts"],"names":[],"mappings":";;;AAEA,uEAAyE;AAEzE,sDAAsD;AAC/C,MAAM,uBAAuB,GAAe,CAAC,aAAa,EAAE,EAAE;IACnE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;IAEjD,MAAM,MAAM,GAAG,QAAQ,KAAK,MAAM,CAAC;IACnC,MAAM,SAAS,GAAG,sDAA4B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAyB;QACpC,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE;KACjD,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAZW,QAAA,uBAAuB,2BAYlC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/polychromaticGeneration.d.ts b/vendors/smart-color/0.2.1/lib/generators/polychromaticGeneration.d.ts
new file mode 100644
index 0000000..30052f2
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/polychromaticGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const polychromaticGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/lib/generators/polychromaticGeneration.js b/vendors/smart-color/0.2.1/lib/generators/polychromaticGeneration.js
new file mode 100644
index 0000000..598f585
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/polychromaticGeneration.js
@@ -0,0 +1,20 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.polychromaticGeneration = void 0;
+const optimizers_1 = require("../optimizers");
+const categoricalGeneration_1 = require("./categoricalGeneration");
+// generate categorical palette by polychromatic scheme
+const polychromaticGeneration = (configuration) => {
+ const { count, color, colors } = configuration;
+ const dHue = 360 / count;
+ const { newColors, locked } = categoricalGeneration_1.categoricalGenerationInHsv(color, dHue, count, colors);
+ const palette = {
+ name: 'tetradic',
+ semantic: null,
+ type: 'categorical',
+ colors: newColors,
+ };
+ return optimizers_1.paletteOptimization(palette, { locked });
+};
+exports.polychromaticGeneration = polychromaticGeneration;
+//# sourceMappingURL=polychromaticGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/polychromaticGeneration.js.map b/vendors/smart-color/0.2.1/lib/generators/polychromaticGeneration.js.map
new file mode 100644
index 0000000..df32c6d
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/polychromaticGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"polychromaticGeneration.js","sourceRoot":"src/","sources":["generators/polychromaticGeneration.ts"],"names":[],"mappings":";;;AACA,8CAAoD;AACpD,mEAAqE;AAGrE,uDAAuD;AAChD,MAAM,uBAAuB,GAAe,CAAC,aAAa,EAAE,EAAE;IACnE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAC/C,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;IACzB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,kDAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrF,MAAM,OAAO,GAAuB;QAClC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,OAAO,gCAAmB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC;AAZW,QAAA,uBAAuB,2BAYlC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/random.d.ts b/vendors/smart-color/0.2.1/lib/generators/random.d.ts
new file mode 100644
index 0000000..773795d
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/random.d.ts
@@ -0,0 +1 @@
+export declare function randomColor(): import("@antv/color-schema").Color;
diff --git a/vendors/smart-color/0.2.1/lib/generators/random.js b/vendors/smart-color/0.2.1/lib/generators/random.js
new file mode 100644
index 0000000..610cce0
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/random.js
@@ -0,0 +1,12 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.randomColor = void 0;
+const utils_1 = require("../utils");
+function randomColor() {
+ const r = utils_1.randomInt(255);
+ const g = utils_1.randomInt(255);
+ const b = utils_1.randomInt(255);
+ return utils_1.arrayToColor([r, g, b], 'rgb');
+}
+exports.randomColor = randomColor;
+//# sourceMappingURL=random.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/random.js.map b/vendors/smart-color/0.2.1/lib/generators/random.js.map
new file mode 100644
index 0000000..9405db6
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/random.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"random.js","sourceRoot":"src/","sources":["generators/random.ts"],"names":[],"mappings":";;;AAAA,oCAAmD;AAEnD,SAAgB,WAAW;IACzB,MAAM,CAAC,GAAG,iBAAS,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,CAAC,GAAG,iBAAS,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,CAAC,GAAG,iBAAS,CAAC,GAAG,CAAC,CAAC;IACzB,OAAO,oBAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC;AALD,kCAKC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/randomGeneration.d.ts b/vendors/smart-color/0.2.1/lib/generators/randomGeneration.d.ts
new file mode 100644
index 0000000..9451b1c
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/randomGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const randomGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/lib/generators/randomGeneration.js b/vendors/smart-color/0.2.1/lib/generators/randomGeneration.js
new file mode 100644
index 0000000..5658e02
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/randomGeneration.js
@@ -0,0 +1,26 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.randomGeneration = void 0;
+const optimizers_1 = require("../optimizers");
+const random_1 = require("./random");
+// generate categorical palette randomly
+const randomGeneration = (configuration) => {
+ const { count, colors } = configuration;
+ const locked = [];
+ const palette = {
+ name: 'random',
+ semantic: null,
+ type: 'categorical',
+ colors: new Array(count).fill(0).map((d, i) => {
+ const lockedColor = colors[i];
+ if (lockedColor) {
+ locked[i] = true;
+ return lockedColor;
+ }
+ return random_1.randomColor();
+ }),
+ };
+ return optimizers_1.paletteOptimization(palette, { locked });
+};
+exports.randomGeneration = randomGeneration;
+//# sourceMappingURL=randomGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/randomGeneration.js.map b/vendors/smart-color/0.2.1/lib/generators/randomGeneration.js.map
new file mode 100644
index 0000000..53b5a6c
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/randomGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"randomGeneration.js","sourceRoot":"src/","sources":["generators/randomGeneration.ts"],"names":[],"mappings":";;;AACA,8CAAoD;AAEpD,qCAAuC;AAEvC,wCAAwC;AACjC,MAAM,gBAAgB,GAAe,CAAC,aAAa,EAAE,EAAE;IAC5D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IACxC,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAuB;QAClC,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,WAAW,EAAE;gBACf,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACjB,OAAO,WAAW,CAAC;aACpB;YACD,OAAO,oBAAW,EAAE,CAAC;QACvB,CAAC,CAAC;KACH,CAAC;IACF,OAAO,gCAAmB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC;AAjBW,QAAA,gBAAgB,oBAiB3B"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/splitComplementaryGeneration.d.ts b/vendors/smart-color/0.2.1/lib/generators/splitComplementaryGeneration.d.ts
new file mode 100644
index 0000000..fd3354d
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/splitComplementaryGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const splitComplementaryGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/lib/generators/splitComplementaryGeneration.js b/vendors/smart-color/0.2.1/lib/generators/splitComplementaryGeneration.js
new file mode 100644
index 0000000..77fbea0
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/splitComplementaryGeneration.js
@@ -0,0 +1,20 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.splitComplementaryGeneration = void 0;
+const optimizers_1 = require("../optimizers");
+const categoricalGeneration_1 = require("./categoricalGeneration");
+// generate categorical palette by split complementary scheme
+const splitComplementaryGeneration = (configuration) => {
+ const { count, color, colors } = configuration;
+ const dHue = 180;
+ const { newColors, locked } = categoricalGeneration_1.categoricalGenerationInHsv(color, dHue, count, colors);
+ const palette = {
+ name: 'tetradic',
+ semantic: null,
+ type: 'categorical',
+ colors: newColors,
+ };
+ return optimizers_1.paletteOptimization(palette, { locked });
+};
+exports.splitComplementaryGeneration = splitComplementaryGeneration;
+//# sourceMappingURL=splitComplementaryGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/splitComplementaryGeneration.js.map b/vendors/smart-color/0.2.1/lib/generators/splitComplementaryGeneration.js.map
new file mode 100644
index 0000000..7ca76f5
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/splitComplementaryGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"splitComplementaryGeneration.js","sourceRoot":"src/","sources":["generators/splitComplementaryGeneration.ts"],"names":[],"mappings":";;;AACA,8CAAoD;AACpD,mEAAqE;AAGrE,6DAA6D;AACtD,MAAM,4BAA4B,GAAe,CAAC,aAAa,EAAE,EAAE;IACxE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAC/C,MAAM,IAAI,GAAG,GAAG,CAAC;IACjB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,kDAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrF,MAAM,OAAO,GAAuB;QAClC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,SAAS;KAClB,CAAC;IACF,OAAO,gCAAmB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC;AAXW,QAAA,4BAA4B,gCAWvC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/tetradicGeneration.d.ts b/vendors/smart-color/0.2.1/lib/generators/tetradicGeneration.d.ts
new file mode 100644
index 0000000..ce55fb4
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/tetradicGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const tetradicGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/lib/generators/tetradicGeneration.js b/vendors/smart-color/0.2.1/lib/generators/tetradicGeneration.js
new file mode 100644
index 0000000..a0126d3
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/tetradicGeneration.js
@@ -0,0 +1,20 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.tetradicGeneration = void 0;
+const optimizers_1 = require("../optimizers");
+const categoricalGeneration_1 = require("./categoricalGeneration");
+// generate categorical palette by tetradic scheme
+const tetradicGeneration = (configuration) => {
+ const { count, color, colors } = configuration;
+ const dHue = 90;
+ const { newColors, locked } = categoricalGeneration_1.categoricalGenerationInHsv(color, dHue, count, colors);
+ const palette = {
+ name: 'tetradic',
+ semantic: null,
+ type: 'categorical',
+ colors: newColors,
+ };
+ return optimizers_1.paletteOptimization(palette, { locked });
+};
+exports.tetradicGeneration = tetradicGeneration;
+//# sourceMappingURL=tetradicGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/tetradicGeneration.js.map b/vendors/smart-color/0.2.1/lib/generators/tetradicGeneration.js.map
new file mode 100644
index 0000000..ea61f92
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/tetradicGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"tetradicGeneration.js","sourceRoot":"src/","sources":["generators/tetradicGeneration.ts"],"names":[],"mappings":";;;AACA,8CAAoD;AACpD,mEAAqE;AAErE,kDAAkD;AAC3C,MAAM,kBAAkB,GAAe,CAAC,aAAa,EAAE,EAAE;IAC9D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAC/C,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,kDAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrF,MAAM,OAAO,GAAuB;QAClC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,OAAO,gCAAmB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC;AAZW,QAAA,kBAAkB,sBAY7B"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/triadicGeneration.d.ts b/vendors/smart-color/0.2.1/lib/generators/triadicGeneration.d.ts
new file mode 100644
index 0000000..8f650fe
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/triadicGeneration.d.ts
@@ -0,0 +1,2 @@
+import { Generation } from './types';
+export declare const triadicGeneration: Generation;
diff --git a/vendors/smart-color/0.2.1/lib/generators/triadicGeneration.js b/vendors/smart-color/0.2.1/lib/generators/triadicGeneration.js
new file mode 100644
index 0000000..4c1ee1b
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/triadicGeneration.js
@@ -0,0 +1,20 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.triadicGeneration = void 0;
+const optimizers_1 = require("../optimizers");
+const categoricalGeneration_1 = require("./categoricalGeneration");
+// generate categorical palette by triadic scheme
+const triadicGeneration = (configuration) => {
+ const { count, color, colors } = configuration;
+ const dHue = 120;
+ const { newColors, locked } = categoricalGeneration_1.categoricalGenerationInHsv(color, dHue, count, colors);
+ const palette = {
+ name: 'tetradic',
+ semantic: null,
+ type: 'categorical',
+ colors: newColors,
+ };
+ return optimizers_1.paletteOptimization(palette, { locked });
+};
+exports.triadicGeneration = triadicGeneration;
+//# sourceMappingURL=triadicGeneration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/triadicGeneration.js.map b/vendors/smart-color/0.2.1/lib/generators/triadicGeneration.js.map
new file mode 100644
index 0000000..4d6e8ca
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/triadicGeneration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"triadicGeneration.js","sourceRoot":"src/","sources":["generators/triadicGeneration.ts"],"names":[],"mappings":";;;AACA,8CAAoD;AACpD,mEAAqE;AAGrE,iDAAiD;AAC1C,MAAM,iBAAiB,GAAe,CAAC,aAAa,EAAE,EAAE;IAC7D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAC/C,MAAM,IAAI,GAAG,GAAG,CAAC;IACjB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,kDAA0B,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrF,MAAM,OAAO,GAAuB;QAClC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,SAAS;KAClB,CAAC;IACF,OAAO,gCAAmB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC;AAXW,QAAA,iBAAiB,qBAW5B"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/types.d.ts b/vendors/smart-color/0.2.1/lib/generators/types.d.ts
new file mode 100644
index 0000000..708157e
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/types.d.ts
@@ -0,0 +1,5 @@
+import { Palette } from '@antv/color-schema';
+import { GeneratorConfiguration } from '../types';
+export declare type Generation = (configuration: {
+ [K in keyof GeneratorConfiguration]-?: GeneratorConfiguration[K];
+}) => Palette;
diff --git a/vendors/smart-color/0.2.1/lib/generators/types.js b/vendors/smart-color/0.2.1/lib/generators/types.js
new file mode 100644
index 0000000..11e638d
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/types.js
@@ -0,0 +1,3 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/types.js.map b/vendors/smart-color/0.2.1/lib/generators/types.js.map
new file mode 100644
index 0000000..fa2322a
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/types.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"types.js","sourceRoot":"src/","sources":["generators/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/validateConfiguration.d.ts b/vendors/smart-color/0.2.1/lib/generators/validateConfiguration.d.ts
new file mode 100644
index 0000000..100eec8
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/validateConfiguration.d.ts
@@ -0,0 +1,8 @@
+import { ColorSchemeType } from '@antv/color-schema';
+import { GeneratorConfiguration } from '../types';
+export declare const validateConfiguration: (type: ColorSchemeType, configuration: GeneratorConfiguration) => {
+ color: import("@antv/color-schema").Color;
+ colors: import("@antv/color-schema").Color[];
+ count: number;
+ tendency: "tint" | "shade";
+};
diff --git a/vendors/smart-color/0.2.1/lib/generators/validateConfiguration.js b/vendors/smart-color/0.2.1/lib/generators/validateConfiguration.js
new file mode 100644
index 0000000..39a16b4
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/validateConfiguration.js
@@ -0,0 +1,26 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.validateConfiguration = void 0;
+const random_1 = require("./random");
+const DISCRETE_SCALE_TYPES = ['monochromatic'];
+const validateConfiguration = (type, configuration) => {
+ const { count = 8, tendency = 'tint' } = configuration;
+ let { colors = [], color } = configuration;
+ // If the colour is not configured
+ // then select the first of the locked colors or generate a random color
+ if (!color) {
+ color = colors.find((c) => !!c && !!c.model && !!c.value) || random_1.randomColor();
+ }
+ // Discrete scale palette cannot be generated when colors are locked.
+ if (DISCRETE_SCALE_TYPES.includes(type)) {
+ colors = [];
+ }
+ return {
+ color,
+ colors,
+ count,
+ tendency,
+ };
+};
+exports.validateConfiguration = validateConfiguration;
+//# sourceMappingURL=validateConfiguration.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/generators/validateConfiguration.js.map b/vendors/smart-color/0.2.1/lib/generators/validateConfiguration.js.map
new file mode 100644
index 0000000..1537f17
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/generators/validateConfiguration.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"validateConfiguration.js","sourceRoot":"src/","sources":["generators/validateConfiguration.ts"],"names":[],"mappings":";;;AAEA,qCAAuC;AAEvC,MAAM,oBAAoB,GAAsB,CAAC,eAAe,CAAC,CAAC;AAC3D,MAAM,qBAAqB,GAAG,CAAC,IAAqB,EAAE,aAAqC,EAAE,EAAE;IACpG,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,aAAa,CAAC;IACvD,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC;IAE3C,kCAAkC;IAClC,wEAAwE;IACxE,IAAI,CAAC,KAAK,EAAE;QACV,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,oBAAW,EAAE,CAAC;KAC5E;IAED,qEAAqE;IACrE,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QACvC,MAAM,GAAG,EAAE,CAAC;KACb;IACD,OAAO;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,qBAAqB,yBAoBhC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/index.d.ts b/vendors/smart-color/0.2.1/lib/index.d.ts
new file mode 100644
index 0000000..b9dcd95
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/index.d.ts
@@ -0,0 +1,8 @@
+export { colorToArray, arrayToColor, colorToGray, colorToHex, hexToColor, nameToColor, colorBlend, colorBrighten, colorDarken, } from './utils';
+export { colorSimulation, invertGrayscale } from './simulators';
+export { paletteGeneration } from './generators';
+export { paletteOptimization } from './optimizers';
+export { getPaletteFromImage, getPaletteFromString } from './extractors';
+export { colorDifference, colorAesthetic } from './evaluators';
+export { ColorBlindnessSimulationType, SimulationType } from './types';
+export { COLOR_BLINDNESS_SIMULATION_TYPES, TENDENCIES } from './constant';
diff --git a/vendors/smart-color/0.2.1/lib/index.js b/vendors/smart-color/0.2.1/lib/index.js
new file mode 100644
index 0000000..865e9bf
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/index.js
@@ -0,0 +1,35 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.TENDENCIES = exports.COLOR_BLINDNESS_SIMULATION_TYPES = exports.colorAesthetic = exports.colorDifference = exports.getPaletteFromString = exports.getPaletteFromImage = exports.paletteOptimization = exports.paletteGeneration = exports.invertGrayscale = exports.colorSimulation = exports.colorDarken = exports.colorBrighten = exports.colorBlend = exports.nameToColor = exports.hexToColor = exports.colorToHex = exports.colorToGray = exports.arrayToColor = exports.colorToArray = void 0;
+var utils_1 = require("./utils");
+Object.defineProperty(exports, "colorToArray", { enumerable: true, get: function () { return utils_1.colorToArray; } });
+Object.defineProperty(exports, "arrayToColor", { enumerable: true, get: function () { return utils_1.arrayToColor; } });
+Object.defineProperty(exports, "colorToGray", { enumerable: true, get: function () { return utils_1.colorToGray; } });
+Object.defineProperty(exports, "colorToHex", { enumerable: true, get: function () { return utils_1.colorToHex; } });
+Object.defineProperty(exports, "hexToColor", { enumerable: true, get: function () { return utils_1.hexToColor; } });
+Object.defineProperty(exports, "nameToColor", { enumerable: true, get: function () { return utils_1.nameToColor; } });
+Object.defineProperty(exports, "colorBlend", { enumerable: true, get: function () { return utils_1.colorBlend; } });
+Object.defineProperty(exports, "colorBrighten", { enumerable: true, get: function () { return utils_1.colorBrighten; } });
+Object.defineProperty(exports, "colorDarken", { enumerable: true, get: function () { return utils_1.colorDarken; } });
+// color simulation
+var simulators_1 = require("./simulators");
+Object.defineProperty(exports, "colorSimulation", { enumerable: true, get: function () { return simulators_1.colorSimulation; } });
+Object.defineProperty(exports, "invertGrayscale", { enumerable: true, get: function () { return simulators_1.invertGrayscale; } });
+// palette generation
+var generators_1 = require("./generators");
+Object.defineProperty(exports, "paletteGeneration", { enumerable: true, get: function () { return generators_1.paletteGeneration; } });
+// palette optimization
+var optimizers_1 = require("./optimizers");
+Object.defineProperty(exports, "paletteOptimization", { enumerable: true, get: function () { return optimizers_1.paletteOptimization; } });
+// get palette
+var extractors_1 = require("./extractors");
+Object.defineProperty(exports, "getPaletteFromImage", { enumerable: true, get: function () { return extractors_1.getPaletteFromImage; } });
+Object.defineProperty(exports, "getPaletteFromString", { enumerable: true, get: function () { return extractors_1.getPaletteFromString; } });
+// professional test
+var evaluators_1 = require("./evaluators");
+Object.defineProperty(exports, "colorDifference", { enumerable: true, get: function () { return evaluators_1.colorDifference; } });
+Object.defineProperty(exports, "colorAesthetic", { enumerable: true, get: function () { return evaluators_1.colorAesthetic; } });
+var constant_1 = require("./constant");
+Object.defineProperty(exports, "COLOR_BLINDNESS_SIMULATION_TYPES", { enumerable: true, get: function () { return constant_1.COLOR_BLINDNESS_SIMULATION_TYPES; } });
+Object.defineProperty(exports, "TENDENCIES", { enumerable: true, get: function () { return constant_1.TENDENCIES; } });
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/index.js.map b/vendors/smart-color/0.2.1/lib/index.js.map
new file mode 100644
index 0000000..02bb807
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["index.ts"],"names":[],"mappings":";;;AAAA,iCAUiB;AATf,qGAAA,YAAY,OAAA;AACZ,qGAAA,YAAY,OAAA;AACZ,oGAAA,WAAW,OAAA;AACX,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AACV,oGAAA,WAAW,OAAA;AACX,mGAAA,UAAU,OAAA;AACV,sGAAA,aAAa,OAAA;AACb,oGAAA,WAAW,OAAA;AAEb,mBAAmB;AACnB,2CAAgE;AAAvD,6GAAA,eAAe,OAAA;AAAE,6GAAA,eAAe,OAAA;AACzC,qBAAqB;AACrB,2CAAiD;AAAxC,+GAAA,iBAAiB,OAAA;AAC1B,uBAAuB;AACvB,2CAAmD;AAA1C,iHAAA,mBAAmB,OAAA;AAC5B,cAAc;AACd,2CAAyE;AAAhE,iHAAA,mBAAmB,OAAA;AAAE,kHAAA,oBAAoB,OAAA;AAClD,oBAAoB;AACpB,2CAA+D;AAAtD,6GAAA,eAAe,OAAA;AAAE,4GAAA,cAAc,OAAA;AAExC,uCAA0E;AAAjE,4HAAA,gCAAgC,OAAA;AAAE,sGAAA,UAAU,OAAA"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/optimizers/index.d.ts b/vendors/smart-color/0.2.1/lib/optimizers/index.d.ts
new file mode 100644
index 0000000..3989b75
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/optimizers/index.d.ts
@@ -0,0 +1,2 @@
+import { PaletteOptimization } from '../types';
+export declare const paletteOptimization: PaletteOptimization;
diff --git a/vendors/smart-color/0.2.1/lib/optimizers/index.js b/vendors/smart-color/0.2.1/lib/optimizers/index.js
new file mode 100644
index 0000000..b72d0e6
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/optimizers/index.js
@@ -0,0 +1,53 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.paletteOptimization = void 0;
+const color_schema_1 = require("@antv/color-schema");
+const constant_1 = require("../constant");
+const simulators_1 = require("../simulators");
+const utils_1 = require("../utils");
+const optimizePaletteByGA_1 = require("./optimizePaletteByGA");
+const COLOR_DIFFERENCE_DEFAULT_VALUE = {
+ euclidean: 30,
+ // ref: Categorical Colormap Optimization with Visualization Case Studies
+ // suggests that [20, 25] might be the borderline zone
+ CIEDE2000: 20,
+ // WCAG, 1.4.3 Contrast (Minimum)
+ contrastRatio: 4.5,
+};
+const COLOR_DIFFERENCE_MAX_VALUE = {
+ euclidean: 291.48,
+ CIEDE2000: 100,
+ contrastRatio: 21,
+};
+const paletteOptimization = (palette, configuration = {}) => {
+ const { locked = [], simulationType = 'normal', threshold, colorModel = 'hsv', colorDifferenceMeasure = 'euclidean', backgroundColor = constant_1.WHITE, } = configuration;
+ let newThreshold = threshold;
+ // set default value
+ if (!newThreshold) {
+ newThreshold = COLOR_DIFFERENCE_DEFAULT_VALUE[colorDifferenceMeasure];
+ }
+ // In case of grayscale mode, the maximum difference between two can be estimated directly
+ // If the set threshold is outside of this range, trim directly to save optimization time
+ if (simulationType === 'grayscale') {
+ const maxValue = COLOR_DIFFERENCE_MAX_VALUE[colorDifferenceMeasure];
+ newThreshold = Math.min(newThreshold, maxValue / palette.colors.length);
+ }
+ const newPalette = utils_1.cloneDeep(palette);
+ if (!color_schema_1.isMatrixPalette(newPalette) && !color_schema_1.isContinuousPalette(newPalette)) {
+ if (simulationType === 'grayscale') {
+ const colors = newPalette.colors.map((color) => [utils_1.colorToGray(color)]);
+ const newColors = optimizePaletteByGA_1.optimizePaletteByGA(colors, locked, simulationType, newThreshold, colorModel, colorDifferenceMeasure, backgroundColor);
+ newPalette.colors.forEach((color, index) => Object.assign(color, simulators_1.invertGrayscale(newColors[index][0] / 255, color)));
+ }
+ else {
+ const colors = newPalette.colors.map((color) => utils_1.colorToArray(color, colorModel));
+ const newColors = optimizePaletteByGA_1.optimizePaletteByGA(colors, locked, simulationType, newThreshold, colorModel, colorDifferenceMeasure, backgroundColor);
+ newPalette.colors.forEach((color, index) => {
+ Object.assign(color, utils_1.arrayToColor(newColors[index], colorModel));
+ });
+ }
+ }
+ return newPalette;
+};
+exports.paletteOptimization = paletteOptimization;
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/optimizers/index.js.map b/vendors/smart-color/0.2.1/lib/optimizers/index.js.map
new file mode 100644
index 0000000..f8e392f
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/optimizers/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["optimizers/index.ts"],"names":[],"mappings":";;;AAAA,qDAAiF;AACjF,0CAAoC;AACpC,8CAAgD;AAEhD,oCAA8E;AAC9E,+DAA4D;AAE5D,MAAM,8BAA8B,GAA2C;IAC7E,SAAS,EAAE,EAAE;IACb,yEAAyE;IACzE,sDAAsD;IACtD,SAAS,EAAE,EAAE;IACb,iCAAiC;IACjC,aAAa,EAAE,GAAG;CACnB,CAAC;AAEF,MAAM,0BAA0B,GAA2C;IACzE,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,GAAG;IACd,aAAa,EAAE,EAAE;CAClB,CAAC;AAEK,MAAM,mBAAmB,GAAwB,CAAC,OAAO,EAAE,aAAa,GAAG,EAAE,EAAE,EAAE;IACtF,MAAM,EACJ,MAAM,GAAG,EAAE,EACX,cAAc,GAAG,QAAQ,EACzB,SAAS,EACT,UAAU,GAAG,KAAK,EAClB,sBAAsB,GAAG,WAAW,EACpC,eAAe,GAAG,gBAAK,GACxB,GAAG,aAAa,CAAC;IAClB,IAAI,YAAY,GAAG,SAAS,CAAC;IAC7B,oBAAoB;IACpB,IAAI,CAAC,YAAY,EAAE;QACjB,YAAY,GAAG,8BAA8B,CAAC,sBAAsB,CAAC,CAAC;KACvE;IACD,0FAA0F;IAC1F,yFAAyF;IACzF,IAAI,cAAc,KAAK,WAAW,EAAE;QAClC,MAAM,QAAQ,GAAG,0BAA0B,CAAC,sBAAsB,CAAC,CAAC;QACpE,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACzE;IAED,MAAM,UAAU,GAAG,iBAAS,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,8BAAe,CAAC,UAAU,CAAC,IAAI,CAAC,kCAAmB,CAAC,UAAU,CAAC,EAAE;QACpE,IAAI,cAAc,KAAK,WAAW,EAAE;YAClC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAY,EAAY,EAAE,CAAC,CAAC,mBAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvF,MAAM,SAAS,GAAG,yCAAmB,CACnC,MAAM,EACN,MAAM,EACN,cAAc,EACd,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,eAAe,CAChB,CAAC;YACF,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAY,EAAE,KAAa,EAAE,EAAE,CACxD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,4BAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,CACxE,CAAC;SACH;aAAM;YACL,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,oBAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;YACxF,MAAM,SAAS,GAAG,yCAAmB,CACnC,MAAM,EACN,MAAM,EACN,cAAc,EACd,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,eAAe,CAChB,CAAC;YACF,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAY,EAAE,KAAa,EAAE,EAAE;gBACxD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAY,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;SACJ;KACF;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAtDW,QAAA,mBAAmB,uBAsD9B"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/optimizers/optimizePaletteByGA.d.ts b/vendors/smart-color/0.2.1/lib/optimizers/optimizePaletteByGA.d.ts
new file mode 100644
index 0000000..15c9341
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/optimizers/optimizePaletteByGA.d.ts
@@ -0,0 +1,7 @@
+import { Color, ColorModel } from '@antv/color-schema';
+import { ColorDifferenceMeasure, SimulationType } from '../types';
+declare type ColorArray = [number] | [number, number, number] | [number, number, number, number];
+declare type Colors = ColorArray[];
+export declare const calFitness: (colors: Colors, locked: boolean[], simulationType: SimulationType, colorModel: ColorModel, colorDifferenceMeasure: ColorDifferenceMeasure, backgroundColor: Color) => number;
+export declare const optimizePaletteByGA: (colors: Colors, locked: boolean[], simulationType: SimulationType, threshold: number, colorModel: ColorModel, colorDifference: ColorDifferenceMeasure, backgroundColor: Color) => any;
+export {};
diff --git a/vendors/smart-color/0.2.1/lib/optimizers/optimizePaletteByGA.js b/vendors/smart-color/0.2.1/lib/optimizers/optimizePaletteByGA.js
new file mode 100644
index 0000000..ca460f2
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/optimizers/optimizePaletteByGA.js
@@ -0,0 +1,137 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.optimizePaletteByGA = exports.calFitness = void 0;
+const color_schema_1 = require("@antv/color-schema");
+const utils_1 = require("../utils");
+const evaluators_1 = require("../evaluators");
+const simulators_1 = require("../simulators");
+// Genetic algorithm configuration
+const POPULATION_NUMBER = 50;
+const CROSSOVER_RATE = 0.9;
+const MUTATION_RATE = 0.1;
+const MAX_GENERATION = 100;
+const ADAPTIVE_RANGE = [0.8, 1.2];
+const rouletteWheelSelection = (fitnesses) => {
+ const sumFitness = fitnesses.reduce((a, b) => a + b);
+ let index = 0;
+ const seed = utils_1.random(sumFitness);
+ let count = 0;
+ for (let i = 0; i < fitnesses.length; i += 1) {
+ count += fitnesses[i];
+ if (seed < count) {
+ index = +i;
+ }
+ }
+ return index;
+};
+const tournamentSelection = (fitnesses) => {
+ const TOURNAMENT_SIZE = 3;
+ let index = -1;
+ let maxFitness = 0;
+ for (let i = 0; i < TOURNAMENT_SIZE; i += 1) {
+ const randomIndex = utils_1.randomInt(fitnesses.length - 1);
+ if (fitnesses[randomIndex] > maxFitness) {
+ index = i;
+ maxFitness = fitnesses[randomIndex];
+ }
+ }
+ return index;
+};
+const selectionFunction = {
+ rouletteWheel: rouletteWheelSelection,
+ tournament: tournamentSelection,
+};
+const selection = (fitnesses, type = 'tournament') => {
+ return selectionFunction[type](fitnesses);
+};
+const crossover = (father, mother) => {
+ const child1 = utils_1.cloneDeep(father);
+ const child2 = utils_1.cloneDeep(mother);
+ for (let i = 1; i < father.length; i += 2) {
+ child1[i] = mother[i];
+ child2[i] = father[i];
+ }
+ return [child1, child2];
+};
+const mutate = (colors, unlockedIndexs, simulationType, colorModel) => {
+ const newColors = utils_1.cloneDeep(colors);
+ // pick one color and change color adaptively
+ const mutateIndex = unlockedIndexs[utils_1.randomInt(unlockedIndexs.length - 1)];
+ const dimensionIndex = utils_1.randomInt(colors[0].length - 1);
+ let newValue = newColors[mutateIndex][dimensionIndex] * utils_1.random(...ADAPTIVE_RANGE);
+ // clip
+ let range = [15, 240]; // grayscale
+ if (simulationType !== 'grayscale') {
+ range = color_schema_1.ColorModelRange[colorModel][colorModel.split('')[dimensionIndex]];
+ }
+ const [min, max] = range;
+ if (newValue < min) {
+ newValue = min;
+ }
+ else if (newValue > max) {
+ newValue = max;
+ }
+ newColors[mutateIndex][dimensionIndex] = newValue;
+ return newColors;
+};
+// fitness function
+const calFitness = (colors, locked, simulationType, colorModel, colorDifferenceMeasure, backgroundColor) => {
+ let newColors;
+ if (simulationType === 'grayscale') {
+ newColors = colors.map(([gray]) => utils_1.grayToColor(gray));
+ }
+ else {
+ newColors = colors.map((color) => simulators_1.colorSimulation(utils_1.arrayToColor(color, colorModel), simulationType));
+ }
+ let minDifference = Infinity;
+ for (let i = 0; i < newColors.length; i += 1) {
+ for (let j = i + 1; j < newColors.length; j += 1) {
+ if (!(locked[i] && locked[j])) {
+ minDifference = Math.min(minDifference, evaluators_1.colorDifference(newColors[i], newColors[j], { measure: colorDifferenceMeasure, backgroundColor }));
+ }
+ }
+ }
+ return minDifference;
+};
+exports.calFitness = calFitness;
+const optimizePaletteByGA = (colors, locked, simulationType, threshold, colorModel, colorDifference, backgroundColor) => {
+ if (Math.round(exports.calFitness(colors, locked, simulationType, colorModel, colorDifference, backgroundColor)) > threshold) {
+ return colors;
+ }
+ const unlockedIndexs = new Array(colors.length)
+ .fill(0)
+ .map((d, index) => index)
+ .filter((d, index) => !locked[index]);
+ // Creating a new generation
+ let population = new Array(POPULATION_NUMBER)
+ .fill(0)
+ .map(() => mutate(colors, unlockedIndexs, simulationType, colorModel));
+ // Evaluating individuals
+ let fitnesses = population.map((colors) => exports.calFitness(colors, locked, simulationType, colorModel, colorDifference, backgroundColor));
+ let bestFitness = Math.max(...fitnesses);
+ let elites = population[fitnesses.findIndex((d) => d === bestFitness)];
+ let cnt = 1;
+ while (cnt < MAX_GENERATION && Math.round(bestFitness) < threshold) {
+ // Elitist Strategy
+ const newPopulation = [elites];
+ for (let i = 1; i < POPULATION_NUMBER; i += 2) {
+ // Selection
+ const father = population[selection(fitnesses)];
+ const mother = population[selection(fitnesses)];
+ // Reproduction
+ let children = utils_1.random() < CROSSOVER_RATE ? crossover(father, mother) : [father, mother];
+ // Mutation
+ children = children.map((child) => utils_1.random() < MUTATION_RATE ? mutate(child, unlockedIndexs, simulationType, colorModel) : child);
+ newPopulation.push(...children);
+ }
+ population = newPopulation;
+ fitnesses = population.map((colors) => exports.calFitness(colors, locked, simulationType, colorModel, colorDifference, backgroundColor));
+ const newBestFitness = Math.max(...fitnesses);
+ bestFitness = newBestFitness;
+ elites = population[fitnesses.findIndex((d) => d === newBestFitness)];
+ cnt += 1;
+ }
+ return elites;
+};
+exports.optimizePaletteByGA = optimizePaletteByGA;
+//# sourceMappingURL=optimizePaletteByGA.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/optimizers/optimizePaletteByGA.js.map b/vendors/smart-color/0.2.1/lib/optimizers/optimizePaletteByGA.js.map
new file mode 100644
index 0000000..2e82759
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/optimizers/optimizePaletteByGA.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"optimizePaletteByGA.js","sourceRoot":"src/","sources":["optimizers/optimizePaletteByGA.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/simulators/colorBlindness.d.ts b/vendors/smart-color/0.2.1/lib/simulators/colorBlindness.d.ts
new file mode 100644
index 0000000..d5da84d
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/simulators/colorBlindness.d.ts
@@ -0,0 +1,3 @@
+import { ColorBlindnessSimulationType, ColorSimulation } from '../types';
+export declare function isColorBlindnessSimulation(type: any): type is ColorBlindnessSimulationType;
+export declare const colorBlindnessSimulation: ColorSimulation;
diff --git a/vendors/smart-color/0.2.1/lib/simulators/colorBlindness.js b/vendors/smart-color/0.2.1/lib/simulators/colorBlindness.js
new file mode 100644
index 0000000..aa11f65
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/simulators/colorBlindness.js
@@ -0,0 +1,23 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.colorBlindnessSimulation = exports.isColorBlindnessSimulation = void 0;
+const tslib_1 = require("tslib");
+// @ts-ignore
+const color_blind_1 = tslib_1.__importDefault(require("color-blind"));
+const constant_1 = require("../constant");
+const utils_1 = require("../utils");
+function isColorBlindnessSimulation(type) {
+ return type !== 'normal' && constant_1.COLOR_BLINDNESS_SIMULATION_TYPES.indexOf(type) > -1;
+}
+exports.isColorBlindnessSimulation = isColorBlindnessSimulation;
+// get color in color blindness simulation
+const colorBlindnessSimulation = (color, type = 'normal') => {
+ if (type === 'normal') {
+ return { ...color };
+ }
+ const hexColor = utils_1.colorToHex(color);
+ const blindColor = color_blind_1.default[type](hexColor);
+ return utils_1.hexToColor(blindColor);
+};
+exports.colorBlindnessSimulation = colorBlindnessSimulation;
+//# sourceMappingURL=colorBlindness.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/simulators/colorBlindness.js.map b/vendors/smart-color/0.2.1/lib/simulators/colorBlindness.js.map
new file mode 100644
index 0000000..7bf470c
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/simulators/colorBlindness.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"colorBlindness.js","sourceRoot":"src/","sources":["simulators/colorBlindness.ts"],"names":[],"mappings":";;;;AAAA,aAAa;AACb,sEAAkC;AAClC,0CAA+D;AAE/D,oCAAkD;AAElD,SAAgB,0BAA0B,CAAC,IAAS;IAClD,OAAO,IAAI,KAAK,QAAQ,IAAI,2CAAgC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClF,CAAC;AAFD,gEAEC;AAED,0CAA0C;AACnC,MAAM,wBAAwB,GAAoB,CAAC,KAAK,EAAE,IAAI,GAAG,QAAQ,EAAE,EAAE;IAClF,IAAI,IAAI,KAAK,QAAQ,EAAE;QACrB,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;KACrB;IACD,MAAM,QAAQ,GAAG,kBAAU,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,qBAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,kBAAU,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC,CAAC;AAPW,QAAA,wBAAwB,4BAOnC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/simulators/grayscale.d.ts b/vendors/smart-color/0.2.1/lib/simulators/grayscale.d.ts
new file mode 100644
index 0000000..179588e
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/simulators/grayscale.d.ts
@@ -0,0 +1,4 @@
+import { Color } from '@antv/color-schema';
+import { ColorSimulation } from '../types';
+export declare const grayscale: ColorSimulation;
+export declare function invertGrayscale(grayscaleValue: number, color: Color): Color;
diff --git a/vendors/smart-color/0.2.1/lib/simulators/grayscale.js b/vendors/smart-color/0.2.1/lib/simulators/grayscale.js
new file mode 100644
index 0000000..9002aa5
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/simulators/grayscale.js
@@ -0,0 +1,44 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.invertGrayscale = exports.grayscale = void 0;
+const utils_1 = require("../utils");
+// get color in grayscale
+const grayscale = (color) => {
+ const gray = utils_1.colorToGray(color);
+ const [, , , alpha = 1] = utils_1.colorToArray(color, 'rgba');
+ return utils_1.grayToColor(gray, alpha);
+};
+exports.grayscale = grayscale;
+// invert color from the gray scale value
+// grayscaleValue: [0, 1]
+function invertGrayscale(grayscaleValue, color) {
+ const [, a, b] = utils_1.colorToArray(color, 'lab');
+ const [, , , alpha = 1] = utils_1.colorToArray(color, 'rgba');
+ const target = grayscaleValue * 100;
+ let L = Math.round(target);
+ let newGray = utils_1.colorToGray(utils_1.arrayToColor([L, a, b], 'lab'));
+ let cnt = 25;
+ while (Math.round(target) !== Math.round((newGray / 255) * 100) && cnt > 0) {
+ if (target > (newGray / 255) * 100) {
+ L += 1;
+ }
+ else {
+ L -= 1;
+ }
+ cnt -= 1;
+ newGray = utils_1.colorToGray(utils_1.arrayToColor([L, a, b], 'lab'));
+ }
+ if (Math.round(target) < Math.round((newGray / 255) * 100))
+ L -= 1;
+ let newColor;
+ if (alpha === 1) {
+ newColor = utils_1.arrayToColor([L, a, b], 'lab');
+ }
+ else {
+ const rgb = utils_1.colorToArray(utils_1.arrayToColor([L, a, b], 'lab'), 'rgb');
+ newColor = utils_1.arrayToColor([...rgb, alpha], 'rgba');
+ }
+ return { ...color, ...newColor };
+}
+exports.invertGrayscale = invertGrayscale;
+//# sourceMappingURL=grayscale.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/simulators/grayscale.js.map b/vendors/smart-color/0.2.1/lib/simulators/grayscale.js.map
new file mode 100644
index 0000000..e824bb8
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/simulators/grayscale.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"grayscale.js","sourceRoot":"src/","sources":["simulators/grayscale.ts"],"names":[],"mappings":";;;AACA,oCAAgF;AAGhF,yBAAyB;AAClB,MAAM,SAAS,GAAoB,CAAC,KAAK,EAAE,EAAE;IAClD,MAAM,IAAI,GAAG,mBAAW,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,KAAK,GAAG,CAAC,CAAC,GAAG,oBAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtD,OAAO,mBAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC,CAAC;AAJW,QAAA,SAAS,aAIpB;AAEF,yCAAyC;AACzC,yBAAyB;AACzB,SAAgB,eAAe,CAAC,cAAsB,EAAE,KAAY;IAClE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,oBAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,KAAK,GAAG,CAAC,CAAC,GAAG,oBAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,cAAc,GAAG,GAAG,CAAC;IAEpC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,OAAO,GAAG,mBAAW,CAAC,oBAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE;QAC1E,IAAI,MAAM,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE;YAClC,CAAC,IAAI,CAAC,CAAC;SACR;aAAM;YACL,CAAC,IAAI,CAAC,CAAC;SACR;QACD,GAAG,IAAI,CAAC,CAAC;QACT,OAAO,GAAG,mBAAW,CAAC,oBAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;KACvD;IACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAAE,CAAC,IAAI,CAAC,CAAC;IAEnE,IAAI,QAAe,CAAC;IACpB,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,QAAQ,GAAG,oBAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;KAC3C;SAAM;QACL,MAAM,GAAG,GAAG,oBAAY,CAAC,oBAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAChE,QAAQ,GAAG,oBAAY,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,CAAqC,EAAE,MAAM,CAAC,CAAC;KACtF;IACD,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;AACnC,CAAC;AA5BD,0CA4BC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/simulators/index.d.ts b/vendors/smart-color/0.2.1/lib/simulators/index.d.ts
new file mode 100644
index 0000000..05e27e5
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/simulators/index.d.ts
@@ -0,0 +1,4 @@
+import { ColorSimulation } from '../types';
+export declare const colorSimulation: ColorSimulation;
+export { isColorBlindnessSimulation } from './colorBlindness';
+export { invertGrayscale } from './grayscale';
diff --git a/vendors/smart-color/0.2.1/lib/simulators/index.js b/vendors/smart-color/0.2.1/lib/simulators/index.js
new file mode 100644
index 0000000..fb089ac
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/simulators/index.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.invertGrayscale = exports.isColorBlindnessSimulation = exports.colorSimulation = void 0;
+const colorBlindness_1 = require("./colorBlindness");
+const grayscale_1 = require("./grayscale");
+const colorSimulation = (color, type = 'normal') => {
+ if (type === 'grayscale') {
+ return grayscale_1.grayscale(color);
+ }
+ return colorBlindness_1.colorBlindnessSimulation(color, type);
+};
+exports.colorSimulation = colorSimulation;
+var colorBlindness_2 = require("./colorBlindness");
+Object.defineProperty(exports, "isColorBlindnessSimulation", { enumerable: true, get: function () { return colorBlindness_2.isColorBlindnessSimulation; } });
+var grayscale_2 = require("./grayscale");
+Object.defineProperty(exports, "invertGrayscale", { enumerable: true, get: function () { return grayscale_2.invertGrayscale; } });
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/simulators/index.js.map b/vendors/smart-color/0.2.1/lib/simulators/index.js.map
new file mode 100644
index 0000000..756dd13
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/simulators/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["simulators/index.ts"],"names":[],"mappings":";;;AACA,qDAA4D;AAC5D,2CAAwC;AAEjC,MAAM,eAAe,GAAoB,CAAC,KAAK,EAAE,IAAI,GAAG,QAAQ,EAAE,EAAE;IACzE,IAAI,IAAI,KAAK,WAAW,EAAE;QACxB,OAAO,qBAAS,CAAC,KAAK,CAAC,CAAC;KACzB;IACD,OAAO,yCAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC,CAAC;AALW,QAAA,eAAe,mBAK1B;AAEF,mDAA8D;AAArD,4HAAA,0BAA0B,OAAA;AACnC,yCAA8C;AAArC,4GAAA,eAAe,OAAA"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/types.d.ts b/vendors/smart-color/0.2.1/lib/types.d.ts
new file mode 100644
index 0000000..bfe626a
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/types.d.ts
@@ -0,0 +1,47 @@
+import { Color, Palette, ColorModel, ColorSchemeType, CategoricalPalette, DiscreteScalePalette } from '@antv/color-schema';
+import { COLOR_BLINDNESS_SIMULATION_TYPES, TENDENCIES, COLOR_DIFFERENCE_MEASURES, COLOR_AESTHETIC_MEASURES, BLEND_MODES, SEPARABLE_BLEND_MODES, NON_SEPARABLE_BLEND_MODES } from './constant';
+export declare type ColorBlindnessSimulationType = typeof COLOR_BLINDNESS_SIMULATION_TYPES[number];
+export declare type GrayscaleType = 'grayscale';
+export declare type SimulationType = ColorBlindnessSimulationType | GrayscaleType;
+export declare type ColorSimulation = (color: Color, type?: SimulationType) => Color;
+export declare type ColorDifferenceMeasure = typeof COLOR_DIFFERENCE_MEASURES[number];
+declare type ColorDifferenceGeneralConfiguration = {
+ backgroundColor?: Color;
+};
+export declare type ColorDifferenceConfiguration = ColorDifferenceGeneralConfiguration & ({
+ measure: 'euclidean';
+ colorModel?: ColorModel;
+} | {
+ measure: 'CIEDE2000' | 'contrastRatio';
+});
+export declare type ColorDifference = (color1: Color, color2: Color, configuration?: ColorDifferenceConfiguration) => number;
+export declare type ColorAestheticMeasure = typeof COLOR_AESTHETIC_MEASURES[number];
+export declare type ColorAestheticConfiguration = {
+ measure: ColorAestheticMeasure;
+ backgroundColor?: Color;
+};
+export declare type ColorAesthetic = (color1: Color, color2: Color, configuration?: ColorAestheticConfiguration) => number;
+export declare type OptimizerConfiguration = {
+ locked?: boolean[];
+ simulationType?: SimulationType;
+ threshold?: number;
+ colorModel?: ColorModel;
+ colorDifferenceMeasure?: ColorDifferenceMeasure;
+ backgroundColor?: Color;
+};
+export declare type PaletteOptimization = (palette: Palette, configuration?: OptimizerConfiguration) => Palette;
+declare type Tendency = typeof TENDENCIES[number];
+export declare type GeneratorConfiguration = {
+ count?: number;
+ color?: Color;
+ colors?: (Color | undefined)[];
+ tendency?: Tendency;
+};
+export declare type PaletteGeneration = (type?: ColorSchemeType, configuration?: GeneratorConfiguration) => CategoricalPalette | DiscreteScalePalette;
+export declare type SeparableBlendMode = typeof SEPARABLE_BLEND_MODES[number];
+export declare type NonSeparableBlendMode = typeof NON_SEPARABLE_BLEND_MODES[number];
+export declare type BlendMode = typeof BLEND_MODES[number];
+export declare type ColorBlend = (colorTop: Color, colorBottom: Color, mode?: BlendMode) => Color;
+export declare type ColorDarken = (color: Color, value?: number) => Color;
+export declare type ColorBrighten = (color: Color, value?: number) => Color;
+export {};
diff --git a/vendors/smart-color/0.2.1/lib/types.js b/vendors/smart-color/0.2.1/lib/types.js
new file mode 100644
index 0000000..11e638d
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/types.js
@@ -0,0 +1,3 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/types.js.map b/vendors/smart-color/0.2.1/lib/types.js.map
new file mode 100644
index 0000000..1d74d2b
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/types.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"types.js","sourceRoot":"src/","sources":["types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBlend.d.ts b/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBlend.d.ts
new file mode 100644
index 0000000..194d1e9
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBlend.d.ts
@@ -0,0 +1,2 @@
+import { ColorBlend } from '../../types';
+export declare const colorBlend: ColorBlend;
diff --git a/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBlend.js b/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBlend.js
new file mode 100644
index 0000000..f31b8dd
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBlend.js
@@ -0,0 +1,119 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.colorBlend = void 0;
+const constant_1 = require("../../constant");
+const colorConversion_1 = require("../colorConversion");
+const multiply = (top, bottom) => (top * bottom) / 255;
+const screen = (top, bottom) => top + bottom - (top * bottom) / 255;
+const hardLight = (top, bottom) => top < 128 ? multiply(2 * top, bottom) : screen(2 * top - 255, bottom);
+const separableBlendFunc = {
+ /** w3c */
+ normal: (top) => top,
+ darken: (top, bottom) => Math.min(top, bottom),
+ multiply,
+ colorBurn: (top, bottom) => {
+ if (top === 0)
+ return 0;
+ return Math.max(0, 255 * (1 - (255 - bottom) / top));
+ },
+ lighten: (top, bottom) => Math.max(top, bottom),
+ screen,
+ colorDodge: (top, bottom) => {
+ if (top === 255)
+ return 255;
+ return Math.min(255, 255 * (bottom / (255 - top)));
+ },
+ overlay: (top, bottom) => hardLight(bottom, top),
+ softLight: (top, bottom) => {
+ if (top < 128) {
+ return bottom - (1 - (2 * top) / 255) * bottom * (1 - bottom / 255);
+ }
+ const D = bottom < 64 ? ((16 * (bottom / 255) - 12) * (bottom / 255) + 4) * (bottom / 255) : Math.sqrt(bottom / 255);
+ return bottom + 255 * ((2 * top) / 255 - 1) * (D - bottom / 255);
+ },
+ hardLight,
+ difference: (top, bottom) => Math.abs(top - bottom),
+ exclusion: (top, bottom) => top + bottom - (2 * top * bottom) / 255,
+ /** photoshop */
+ linearBurn: (top, bottom) => Math.max(top + bottom - 255, 0),
+ linearDodge: (top, bottom) => Math.min(255, top + bottom),
+ linearLight: (top, bottom) => Math.max(bottom + 2 * top - 255, 0),
+ vividLight: (top, bottom) => top < 128 ? 255 * (1 - (1 - bottom / 255) / ((2 * top) / 255)) : 255 * (bottom / 2 / (255 - top)),
+ pinLight: (top, bottom) => (top < 128 ? Math.min(bottom, 2 * top) : Math.max(bottom, 2 * top - 255)),
+};
+const lum = (rgb) => {
+ return 0.3 * rgb[0] + 0.58 * rgb[1] + 0.11 * rgb[2];
+};
+const clipColor = (rgb) => {
+ const l = lum(rgb);
+ const min = Math.min(...rgb);
+ const max = Math.max(...rgb);
+ let color = [...rgb];
+ if (min < 0) {
+ color = color.map((value) => l + ((value - l) * l) / (l - min));
+ }
+ if (max > 255) {
+ color = color.map((value) => l + ((value - l) * (255 - l)) / (max - l));
+ }
+ return color;
+};
+const setLum = (rgb, l) => {
+ const d = l - lum(rgb);
+ return clipColor(rgb.map((value) => value + d));
+};
+const sat = (rgb) => {
+ return Math.max(...rgb) - Math.min(...rgb);
+};
+const setSat = (rgb, s) => {
+ const arr = rgb.map((value, index) => ({ value, index }));
+ arr.sort((a, b) => a.value - b.value);
+ const minIndex = arr[0].index;
+ const midIndex = arr[1].index;
+ const maxIndex = arr[2].index;
+ const color = [...rgb];
+ if (color[maxIndex] > color[minIndex]) {
+ color[midIndex] = ((color[midIndex] - color[minIndex]) * s) / (color[maxIndex] - color[minIndex]);
+ color[maxIndex] = s;
+ }
+ else {
+ color[midIndex] = 0;
+ color[maxIndex] = 0;
+ }
+ color[minIndex] = 0;
+ return color;
+};
+const nonSeparableBlendFunc = {
+ hue: (top, bottom) => setLum(setSat(top, sat(bottom)), lum(bottom)),
+ saturation: (top, bottom) => setLum(setSat(bottom, sat(top)), lum(bottom)),
+ color: (top, bottom) => setLum(top, lum(bottom)),
+ luminosity: (top, bottom) => setLum(bottom, lum(top)),
+};
+const colorBlend = (colorTop, colorBottom, mode = 'normal') => {
+ const [r1, g1, b1, a1] = colorConversion_1.colorToArray(colorTop, 'rgba');
+ const [r2, g2, b2, a2] = colorConversion_1.colorToArray(colorBottom, 'rgba');
+ const rgb1 = [r1, g1, b1];
+ const rgb2 = [r2, g2, b2];
+ let blendRgb;
+ if (constant_1.SEPARABLE_BLEND_MODES.includes(mode)) {
+ const func = separableBlendFunc[mode];
+ blendRgb = rgb1.map((num1, index) => Math.floor(func(num1, rgb2[index])));
+ }
+ else {
+ blendRgb = nonSeparableBlendFunc[mode](rgb1, rgb2);
+ }
+ const a = a1 + a2 * (1 - a1);
+ const r = Math.round((a1 * (1 - a2) * r1 + a1 * a2 * blendRgb[0] + (1 - a1) * a2 * r2) / a);
+ const g = Math.round((a1 * (1 - a2) * g1 + a1 * a2 * blendRgb[1] + (1 - a1) * a2 * g2) / a);
+ const b = Math.round((a1 * (1 - a2) * b1 + a1 * a2 * blendRgb[2] + (1 - a1) * a2 * b2) / a);
+ if (a === 1)
+ return {
+ model: 'rgb',
+ value: { r, g, b },
+ };
+ return {
+ model: 'rgba',
+ value: { r, g, b, a },
+ };
+};
+exports.colorBlend = colorBlend;
+//# sourceMappingURL=colorBlend.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBlend.js.map b/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBlend.js.map
new file mode 100644
index 0000000..805eef9
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBlend.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"colorBlend.js","sourceRoot":"src/","sources":["utils/colorComputation/colorBlend.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBrightenDarken.d.ts b/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBrightenDarken.d.ts
new file mode 100644
index 0000000..41777bb
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBrightenDarken.d.ts
@@ -0,0 +1,3 @@
+import { ColorBrighten, ColorDarken } from '@src/types';
+export declare const colorDarken: ColorDarken;
+export declare const colorBrighten: ColorBrighten;
diff --git a/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBrightenDarken.js b/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBrightenDarken.js
new file mode 100644
index 0000000..4ce4ea2
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBrightenDarken.js
@@ -0,0 +1,83 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.colorBrighten = exports.colorDarken = void 0;
+const helper_1 = require("../helper");
+const colorConversion_1 = require("../colorConversion");
+// get darken/brighten color
+// ref: https://zhuanlan.zhihu.com/p/32422584
+const hueStep = 2;
+const saturationStep = 0.16;
+const saturationStep2 = 0.05;
+const brightnessStep1 = 0.05;
+const brightnessStep2 = 0.15;
+const lightColorCount = 5;
+const darkColorCount = 4;
+const getHue = (h, i, isLight) => {
+ let hue;
+ if (h >= 60 && h <= 240) {
+ hue = isLight ? h - hueStep * i : h + hueStep * i;
+ }
+ else {
+ hue = isLight ? h + hueStep * i : h - hueStep * i;
+ }
+ if (hue < 0) {
+ hue += 360;
+ }
+ else if (hue >= 360) {
+ hue -= 360;
+ }
+ return Math.round(hue);
+};
+const getSaturation = (s, i, isLight) => {
+ let saturation;
+ if (isLight) {
+ saturation = s - saturationStep * i;
+ }
+ else if (i === darkColorCount) {
+ saturation = s + saturationStep;
+ }
+ else {
+ saturation = s + saturationStep2 * i;
+ }
+ if (isLight && i === lightColorCount && saturation > 0.1) {
+ saturation = 0.1;
+ }
+ saturation = helper_1.clamp(saturation, 0.06, 1);
+ return Number(saturation.toFixed(2));
+};
+const getValue = (v, i, isLight) => {
+ let value;
+ if (isLight) {
+ value = v + brightnessStep1 * i;
+ }
+ else {
+ value = v - brightnessStep2 * i;
+ }
+ value = helper_1.clamp(value, 0, 1);
+ return Number(value.toFixed(2));
+};
+const colorDarken = (color, value = 1) => {
+ const [h, s, v] = colorConversion_1.colorToArray(color, 'hsv');
+ return {
+ model: 'hsv',
+ value: {
+ h: getHue(h, value, false),
+ s: getSaturation(s, value, false),
+ v: getValue(v, value, false),
+ },
+ };
+};
+exports.colorDarken = colorDarken;
+const colorBrighten = (color, value = 1) => {
+ const [h, s, v] = colorConversion_1.colorToArray(color, 'hsv');
+ return {
+ model: 'hsv',
+ value: {
+ h: getHue(h, value, true),
+ s: getSaturation(s, value, true),
+ v: getValue(v, value, true),
+ },
+ };
+};
+exports.colorBrighten = colorBrighten;
+//# sourceMappingURL=colorBrightenDarken.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBrightenDarken.js.map b/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBrightenDarken.js.map
new file mode 100644
index 0000000..286d04b
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/colorComputation/colorBrightenDarken.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"colorBrightenDarken.js","sourceRoot":"src/","sources":["utils/colorComputation/colorBrightenDarken.ts"],"names":[],"mappings":";;;AACA,sCAAkC;AAClC,wDAAkD;AAElD,4BAA4B;AAC5B,6CAA6C;AAC7C,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,cAAc,GAAG,IAAI,CAAC;AAC5B,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,OAAgB,EAAU,EAAE;IAChE,IAAI,GAAG,CAAC;IACR,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE;QACvB,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;KACnD;SAAM;QACL,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;KACnD;IACD,IAAI,GAAG,GAAG,CAAC,EAAE;QACX,GAAG,IAAI,GAAG,CAAC;KACZ;SAAM,IAAI,GAAG,IAAI,GAAG,EAAE;QACrB,GAAG,IAAI,GAAG,CAAC;KACZ;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AACF,MAAM,aAAa,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,OAAgB,EAAU,EAAE;IACvE,IAAI,UAAU,CAAC;IACf,IAAI,OAAO,EAAE;QACX,UAAU,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,CAAC;KACrC;SAAM,IAAI,CAAC,KAAK,cAAc,EAAE;QAC/B,UAAU,GAAG,CAAC,GAAG,cAAc,CAAC;KACjC;SAAM;QACL,UAAU,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,CAAC;KACtC;IACD,IAAI,OAAO,IAAI,CAAC,KAAK,eAAe,IAAI,UAAU,GAAG,GAAG,EAAE;QACxD,UAAU,GAAG,GAAG,CAAC;KAClB;IACD,UAAU,GAAG,cAAK,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC;AACF,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,OAAgB,EAAU,EAAE;IAClE,IAAI,KAAK,CAAC;IACV,IAAI,OAAO,EAAE;QACX,KAAK,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,CAAC;KACjC;SAAM;QACL,KAAK,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,CAAC;KACjC;IACD,KAAK,GAAG,cAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC;AAEK,MAAM,WAAW,GAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE;IAC3D,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,8BAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7C,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE;YACL,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;YAC1B,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;YACjC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;SAC7B;KACF,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,WAAW,eAUtB;AAEK,MAAM,aAAa,GAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE;IAC/D,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,8BAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7C,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE;YACL,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YACzB,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;YAChC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;SAC5B;KACF,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,aAAa,iBAUxB"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/colorComputation/index.d.ts b/vendors/smart-color/0.2.1/lib/utils/colorComputation/index.d.ts
new file mode 100644
index 0000000..e031e97
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/colorComputation/index.d.ts
@@ -0,0 +1,3 @@
+export { colorBlend } from './colorBlend';
+export { colorBrighten, colorDarken } from './colorBrightenDarken';
+export declare const hueOffset: (hue: number, dHue: number) => number;
diff --git a/vendors/smart-color/0.2.1/lib/utils/colorComputation/index.js b/vendors/smart-color/0.2.1/lib/utils/colorComputation/index.js
new file mode 100644
index 0000000..bba9e60
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/colorComputation/index.js
@@ -0,0 +1,20 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.hueOffset = exports.colorDarken = exports.colorBrighten = exports.colorBlend = void 0;
+var colorBlend_1 = require("./colorBlend");
+Object.defineProperty(exports, "colorBlend", { enumerable: true, get: function () { return colorBlend_1.colorBlend; } });
+var colorBrightenDarken_1 = require("./colorBrightenDarken");
+Object.defineProperty(exports, "colorBrighten", { enumerable: true, get: function () { return colorBrightenDarken_1.colorBrighten; } });
+Object.defineProperty(exports, "colorDarken", { enumerable: true, get: function () { return colorBrightenDarken_1.colorDarken; } });
+const hueOffset = (hue, dHue) => {
+ let newHue = (hue + dHue) % 360;
+ if (newHue < 0) {
+ newHue += 360;
+ }
+ else if (newHue >= 360) {
+ newHue -= 360;
+ }
+ return newHue;
+};
+exports.hueOffset = hueOffset;
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/colorComputation/index.js.map b/vendors/smart-color/0.2.1/lib/utils/colorComputation/index.js.map
new file mode 100644
index 0000000..37faddb
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/colorComputation/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["utils/colorComputation/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,6DAAmE;AAA1D,oHAAA,aAAa,OAAA;AAAE,kHAAA,WAAW,OAAA;AAE5B,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,IAAY,EAAU,EAAE;IAC7D,IAAI,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;IAChC,IAAI,MAAM,GAAG,CAAC,EAAE;QACd,MAAM,IAAI,GAAG,CAAC;KACf;SAAM,IAAI,MAAM,IAAI,GAAG,EAAE;QACxB,MAAM,IAAI,GAAG,CAAC;KACf;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AARW,QAAA,SAAS,aAQpB"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/colorConversion.d.ts b/vendors/smart-color/0.2.1/lib/utils/colorConversion.d.ts
new file mode 100644
index 0000000..ca013e0
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/colorConversion.d.ts
@@ -0,0 +1,10 @@
+import { Color, ColorModel } from '@antv/color-schema';
+import { Color as ChromaColor } from 'chroma-js';
+export declare const colorToChromaColor: (color: Color) => ChromaColor;
+export declare const colorToArray: (color: Color, colorModel?: ColorModel) => [number, number, number] | [number, number, number, number];
+export declare const arrayToColor: (array: [number] | [number, number, number] | [number, number, number, number], colorModel?: ColorModel) => Color;
+export declare function colorToGray(color: Color): number;
+export declare function grayToColor(gray: number, alpha?: number): Color;
+export { colorToHex } from '@antv/color-schema';
+export declare function hexToColor(hexValue: string): Color;
+export declare function nameToColor(name: string): Color;
diff --git a/vendors/smart-color/0.2.1/lib/utils/colorConversion.js b/vendors/smart-color/0.2.1/lib/utils/colorConversion.js
new file mode 100644
index 0000000..1bbb119
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/colorConversion.js
@@ -0,0 +1,105 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.nameToColor = exports.hexToColor = exports.colorToHex = exports.grayToColor = exports.colorToGray = exports.arrayToColor = exports.colorToArray = exports.colorToChromaColor = void 0;
+const tslib_1 = require("tslib");
+const chroma_js_1 = tslib_1.__importDefault(require("chroma-js"));
+const getHexByName_1 = require("./getHexByName");
+const isChromaColor = (color) => {
+ if (chroma_js_1.default.valid(color)) {
+ return true;
+ }
+ return false;
+};
+// Convert color to chroma color
+const colorToChromaColor = (color) => {
+ const { value } = color;
+ if (isChromaColor(value)) {
+ return chroma_js_1.default(value);
+ }
+ return chroma_js_1.default('#000');
+};
+exports.colorToChromaColor = colorToChromaColor;
+// Convert color to an array in a specific color model
+const colorToArray = (color, colorModel = color.model) => {
+ const chromaColor = exports.colorToChromaColor(color);
+ if (chromaColor) {
+ return chromaColor[colorModel]();
+ }
+ return [0, 0, 0];
+};
+exports.colorToArray = colorToArray;
+// Convert an array in a specific color model to color
+const arrayToColor = (array, colorModel = array.length === 4 ? 'rgba' : 'rgb') => {
+ const value = {};
+ if (array.length === 1) {
+ const [v] = array;
+ for (let i = 0; i < colorModel.length; i += 1) {
+ value[colorModel[i]] = v;
+ }
+ }
+ else {
+ for (let i = 0; i < colorModel.length; i += 1) {
+ value[colorModel[i]] = array[i];
+ }
+ }
+ return {
+ model: colorModel,
+ value,
+ };
+};
+exports.arrayToColor = arrayToColor;
+// Convert color to gray value
+function colorToGray(color) {
+ const [r, g, b] = exports.colorToArray(color, 'rgb'); // [red, green, blue]
+ // Ref:https://tannerhelland.com/2011/10/01/grayscale-image-algorithm-vb6.html
+ const gray = Math.round(0.299 * r + 0.587 * g + 0.114 * b);
+ // gray value: [0, 255]
+ return gray;
+}
+exports.colorToGray = colorToGray;
+// Convert gray value to color
+function grayToColor(gray, alpha = 1) {
+ if (alpha === 1) {
+ return {
+ model: 'rgb',
+ value: {
+ r: gray,
+ g: gray,
+ b: gray,
+ },
+ };
+ }
+ return {
+ model: 'rgba',
+ value: {
+ r: gray,
+ g: gray,
+ b: gray,
+ a: alpha,
+ },
+ };
+}
+exports.grayToColor = grayToColor;
+var color_schema_1 = require("@antv/color-schema");
+Object.defineProperty(exports, "colorToHex", { enumerable: true, get: function () { return color_schema_1.colorToHex; } });
+function hexToColor(hexValue) {
+ if (/^(#|0x)?[0-9a-fA-F]{3}$/.test(hexValue) || /^(#|0x)?[0-9a-fA-F]{6}$/.test(hexValue)) {
+ const rgb = chroma_js_1.default(hexValue).rgb();
+ return exports.arrayToColor(rgb, 'rgb');
+ }
+ if (/^(#|0x)?[0-9a-fA-F]{4}$/.test(hexValue) || /^(#|0x)?[0-9a-fA-F]{8}$/.test(hexValue)) {
+ const rgba = chroma_js_1.default(hexValue).rgba();
+ return exports.arrayToColor(rgba, 'rgba');
+ }
+ return {
+ model: 'rgb',
+ value: { r: 0, g: 0, b: 0 },
+ };
+}
+exports.hexToColor = hexToColor;
+function nameToColor(name) {
+ const hex = getHexByName_1.getHexByName(name);
+ return hexToColor(hex);
+}
+exports.nameToColor = nameToColor;
+//# sourceMappingURL=colorConversion.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/colorConversion.js.map b/vendors/smart-color/0.2.1/lib/utils/colorConversion.js.map
new file mode 100644
index 0000000..4eb1ff8
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/colorConversion.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"colorConversion.js","sourceRoot":"src/","sources":["utils/colorConversion.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/degree.d.ts b/vendors/smart-color/0.2.1/lib/utils/degree.d.ts
new file mode 100644
index 0000000..a5026a9
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/degree.d.ts
@@ -0,0 +1,2 @@
+export declare function rad2deg(n: number): number;
+export declare function deg2rad(n: number): number;
diff --git a/vendors/smart-color/0.2.1/lib/utils/degree.js b/vendors/smart-color/0.2.1/lib/utils/degree.js
new file mode 100644
index 0000000..b3f12bd
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/degree.js
@@ -0,0 +1,12 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.deg2rad = exports.rad2deg = void 0;
+function rad2deg(n) {
+ return n * (180 / Math.PI);
+}
+exports.rad2deg = rad2deg;
+function deg2rad(n) {
+ return n * (Math.PI / 180);
+}
+exports.deg2rad = deg2rad;
+//# sourceMappingURL=degree.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/degree.js.map b/vendors/smart-color/0.2.1/lib/utils/degree.js.map
new file mode 100644
index 0000000..5e72c8b
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/degree.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"degree.js","sourceRoot":"src/","sources":["utils/degree.ts"],"names":[],"mappings":";;;AAAA,SAAgB,OAAO,CAAC,CAAS;IAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AAFD,0BAEC;AACD,SAAgB,OAAO,CAAC,CAAS;IAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;AAC7B,CAAC;AAFD,0BAEC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/getHexByName.d.ts b/vendors/smart-color/0.2.1/lib/utils/getHexByName.d.ts
new file mode 100644
index 0000000..489f89e
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/getHexByName.d.ts
@@ -0,0 +1 @@
+export declare const getHexByName: (name: string) => any;
diff --git a/vendors/smart-color/0.2.1/lib/utils/getHexByName.js b/vendors/smart-color/0.2.1/lib/utils/getHexByName.js
new file mode 100644
index 0000000..43f2714
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/getHexByName.js
@@ -0,0 +1,157 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getHexByName = void 0;
+const nameHex = {
+ 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',
+};
+// @ts-ignore
+const getHexByName = (name) => nameHex[name] || '#000000';
+exports.getHexByName = getHexByName;
+//# sourceMappingURL=getHexByName.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/getHexByName.js.map b/vendors/smart-color/0.2.1/lib/utils/getHexByName.js.map
new file mode 100644
index 0000000..65a95ec
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/getHexByName.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"getHexByName.js","sourceRoot":"src/","sources":["utils/getHexByName.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/helper.d.ts b/vendors/smart-color/0.2.1/lib/utils/helper.d.ts
new file mode 100644
index 0000000..0e59bd9
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/helper.d.ts
@@ -0,0 +1,4 @@
+export declare const random: (a?: number, b?: number) => number;
+export declare const randomInt: (a?: number, b?: number) => number;
+export declare const clamp: (num: number, boundOne: number, boundTwo: number) => number;
+export declare const cloneDeep: (target: any) => any;
diff --git a/vendors/smart-color/0.2.1/lib/utils/helper.js b/vendors/smart-color/0.2.1/lib/utils/helper.js
new file mode 100644
index 0000000..8ba355a
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/helper.js
@@ -0,0 +1,49 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.cloneDeep = exports.clamp = exports.randomInt = exports.random = void 0;
+const random = (a = 1, b = 0) => {
+ const lower = Math.min(a, b);
+ const upper = Math.max(a, b);
+ return lower + Math.random() * (upper - lower);
+};
+exports.random = random;
+const randomInt = (a = 1, b = 0) => {
+ const lower = Math.ceil(Math.min(a, b));
+ const upper = Math.floor(Math.max(a, b));
+ return Math.floor(lower + Math.random() * (upper - lower + 1));
+};
+exports.randomInt = randomInt;
+const clamp = (num, boundOne, boundTwo) => {
+ if (!boundTwo) {
+ return Math.max(num, boundOne) === boundOne ? num : boundOne;
+ }
+ if (Math.min(num, boundOne) === num) {
+ return boundOne;
+ }
+ if (Math.max(num, boundTwo) === num) {
+ return boundTwo;
+ }
+ return num;
+};
+exports.clamp = clamp;
+// poor version, but enough
+const cloneDeep = (target) => {
+ if (target && typeof target === 'object') {
+ const isArray = Array.isArray(target);
+ if (isArray) {
+ const cloneTarget = target.map((d) => exports.cloneDeep(d));
+ return cloneTarget;
+ }
+ // isObject
+ const cloneTarget = {};
+ const keys = Object.keys(target);
+ keys.forEach((key) => {
+ // @ts-ignore
+ cloneTarget[key] = exports.cloneDeep(target[key]);
+ });
+ return cloneTarget;
+ }
+ return target;
+};
+exports.cloneDeep = cloneDeep;
+//# sourceMappingURL=helper.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/helper.js.map b/vendors/smart-color/0.2.1/lib/utils/helper.js.map
new file mode 100644
index 0000000..d802c16
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/helper.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"helper.js","sourceRoot":"src/","sources":["utils/helper.ts"],"names":[],"mappings":";;;AAAO,MAAM,MAAM,GAAG,CAAC,IAAY,CAAC,EAAE,IAAY,CAAC,EAAU,EAAE;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;AACjD,CAAC,CAAC;AAJW,QAAA,MAAM,UAIjB;AAEK,MAAM,SAAS,GAAG,CAAC,IAAY,CAAC,EAAE,IAAY,CAAC,EAAU,EAAE;IAChE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC,CAAC;AAJW,QAAA,SAAS,aAIpB;AAEK,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,QAAgB,EAAE,QAAgB,EAAE,EAAE;IACvE,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;KAC9D;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,GAAG,EAAE;QACnC,OAAO,QAAQ,CAAC;KACjB;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,GAAG,EAAE;QACnC,OAAO,QAAQ,CAAC;KACjB;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAXW,QAAA,KAAK,SAWhB;AAEF,2BAA2B;AACpB,MAAM,SAAS,GAAG,CAAC,MAAW,EAAO,EAAE;IAC5C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACxC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,OAAO,EAAE;YACX,MAAM,WAAW,GAAI,MAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,OAAO,WAAW,CAAC;SACpB;QACD,WAAW;QACX,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,aAAa;YACb,WAAW,CAAC,GAAG,CAAC,GAAG,iBAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;KACpB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAjBW,QAAA,SAAS,aAiBpB"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/image.d.ts b/vendors/smart-color/0.2.1/lib/utils/image.d.ts
new file mode 100644
index 0000000..45375dc
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/image.d.ts
@@ -0,0 +1 @@
+export declare function loadImage(url: string): Promise;
diff --git a/vendors/smart-color/0.2.1/lib/utils/image.js b/vendors/smart-color/0.2.1/lib/utils/image.js
new file mode 100644
index 0000000..e44d6d0
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/image.js
@@ -0,0 +1,19 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.loadImage = void 0;
+// Load a image in a promise
+function loadImage(url) {
+ return new Promise((resolve, reject) => {
+ const img = new Image();
+ img.addEventListener('load', () => {
+ resolve(img);
+ });
+ img.addEventListener('error', () => {
+ reject(new Error(`Failed to load image URL: ${url}`));
+ });
+ img.crossOrigin = 'anonymous';
+ img.src = url;
+ });
+}
+exports.loadImage = loadImage;
+//# sourceMappingURL=image.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/image.js.map b/vendors/smart-color/0.2.1/lib/utils/image.js.map
new file mode 100644
index 0000000..2dae1f5
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/image.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"image.js","sourceRoot":"src/","sources":["utils/image.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAC5B,SAAgB,SAAS,CAAC,GAAW;IACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YAChC,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YACjC,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;QAC9B,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAZD,8BAYC"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/index.d.ts b/vendors/smart-color/0.2.1/lib/utils/index.d.ts
new file mode 100644
index 0000000..10077df
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/index.d.ts
@@ -0,0 +1,5 @@
+export { loadImage } from './image';
+export { hueOffset, colorBlend, colorBrighten, colorDarken } from './colorComputation';
+export { colorToArray, arrayToColor, colorToGray, grayToColor, colorToHex, hexToColor, colorToChromaColor, nameToColor, } from './colorConversion';
+export { random, randomInt, clamp, cloneDeep } from './helper';
+export { rad2deg, deg2rad } from './degree';
diff --git a/vendors/smart-color/0.2.1/lib/utils/index.js b/vendors/smart-color/0.2.1/lib/utils/index.js
new file mode 100644
index 0000000..bab8d29
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/index.js
@@ -0,0 +1,28 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.deg2rad = exports.rad2deg = exports.cloneDeep = exports.clamp = exports.randomInt = exports.random = exports.nameToColor = exports.colorToChromaColor = exports.hexToColor = exports.colorToHex = exports.grayToColor = exports.colorToGray = exports.arrayToColor = exports.colorToArray = exports.colorDarken = exports.colorBrighten = exports.colorBlend = exports.hueOffset = exports.loadImage = void 0;
+var image_1 = require("./image");
+Object.defineProperty(exports, "loadImage", { enumerable: true, get: function () { return image_1.loadImage; } });
+var colorComputation_1 = require("./colorComputation");
+Object.defineProperty(exports, "hueOffset", { enumerable: true, get: function () { return colorComputation_1.hueOffset; } });
+Object.defineProperty(exports, "colorBlend", { enumerable: true, get: function () { return colorComputation_1.colorBlend; } });
+Object.defineProperty(exports, "colorBrighten", { enumerable: true, get: function () { return colorComputation_1.colorBrighten; } });
+Object.defineProperty(exports, "colorDarken", { enumerable: true, get: function () { return colorComputation_1.colorDarken; } });
+var colorConversion_1 = require("./colorConversion");
+Object.defineProperty(exports, "colorToArray", { enumerable: true, get: function () { return colorConversion_1.colorToArray; } });
+Object.defineProperty(exports, "arrayToColor", { enumerable: true, get: function () { return colorConversion_1.arrayToColor; } });
+Object.defineProperty(exports, "colorToGray", { enumerable: true, get: function () { return colorConversion_1.colorToGray; } });
+Object.defineProperty(exports, "grayToColor", { enumerable: true, get: function () { return colorConversion_1.grayToColor; } });
+Object.defineProperty(exports, "colorToHex", { enumerable: true, get: function () { return colorConversion_1.colorToHex; } });
+Object.defineProperty(exports, "hexToColor", { enumerable: true, get: function () { return colorConversion_1.hexToColor; } });
+Object.defineProperty(exports, "colorToChromaColor", { enumerable: true, get: function () { return colorConversion_1.colorToChromaColor; } });
+Object.defineProperty(exports, "nameToColor", { enumerable: true, get: function () { return colorConversion_1.nameToColor; } });
+var helper_1 = require("./helper");
+Object.defineProperty(exports, "random", { enumerable: true, get: function () { return helper_1.random; } });
+Object.defineProperty(exports, "randomInt", { enumerable: true, get: function () { return helper_1.randomInt; } });
+Object.defineProperty(exports, "clamp", { enumerable: true, get: function () { return helper_1.clamp; } });
+Object.defineProperty(exports, "cloneDeep", { enumerable: true, get: function () { return helper_1.cloneDeep; } });
+var degree_1 = require("./degree");
+Object.defineProperty(exports, "rad2deg", { enumerable: true, get: function () { return degree_1.rad2deg; } });
+Object.defineProperty(exports, "deg2rad", { enumerable: true, get: function () { return degree_1.deg2rad; } });
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/lib/utils/index.js.map b/vendors/smart-color/0.2.1/lib/utils/index.js.map
new file mode 100644
index 0000000..0367274
--- /dev/null
+++ b/vendors/smart-color/0.2.1/lib/utils/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"src/","sources":["utils/index.ts"],"names":[],"mappings":";;;AAAA,iCAAoC;AAA3B,kGAAA,SAAS,OAAA;AAClB,uDAAuF;AAA9E,6GAAA,SAAS,OAAA;AAAE,8GAAA,UAAU,OAAA;AAAE,iHAAA,aAAa,OAAA;AAAE,+GAAA,WAAW,OAAA;AAC1D,qDAS2B;AARzB,+GAAA,YAAY,OAAA;AACZ,+GAAA,YAAY,OAAA;AACZ,8GAAA,WAAW,OAAA;AACX,8GAAA,WAAW,OAAA;AACX,6GAAA,UAAU,OAAA;AACV,6GAAA,UAAU,OAAA;AACV,qHAAA,kBAAkB,OAAA;AAClB,8GAAA,WAAW,OAAA;AAGb,mCAA+D;AAAtD,gGAAA,MAAM,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,+FAAA,KAAK,OAAA;AAAE,mGAAA,SAAS,OAAA;AAC5C,mCAA4C;AAAnC,iGAAA,OAAO,OAAA;AAAE,iGAAA,OAAO,OAAA"}
\ No newline at end of file
diff --git a/vendors/smart-color/0.2.1/src/.DS_Store b/vendors/smart-color/0.2.1/src/.DS_Store
new file mode 100644
index 0000000..c47225d
Binary files /dev/null and b/vendors/smart-color/0.2.1/src/.DS_Store differ
diff --git a/vendors/smart-color/0.2.1/src/@types/color-blind.d.ts b/vendors/smart-color/0.2.1/src/@types/color-blind.d.ts
new file mode 100644
index 0000000..7b97a10
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/@types/color-blind.d.ts
@@ -0,0 +1,4 @@
+declare module 'color-blind' {
+ const content: any;
+ export = content;
+}
diff --git a/vendors/smart-color/0.2.1/src/constant.ts b/vendors/smart-color/0.2.1/src/constant.ts
new file mode 100644
index 0000000..ef422ab
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/constant.ts
@@ -0,0 +1,53 @@
+import { Color } from '@antv/color-schema';
+
+export const COLOR_BLINDNESS_SIMULATION_TYPES = [
+ 'normal',
+ 'protanomaly',
+ 'deuteranomaly',
+ 'tritanomaly',
+ 'protanopia',
+ 'deuteranopia',
+ 'tritanopia',
+ 'achromatomaly',
+ 'achromatopsia',
+] as const;
+// color optimization configuration
+export const TENDENCIES = ['tint', 'shade'] as const;
+export const COLOR_DIFFERENCE_MEASURES = ['euclidean', 'CIEDE2000', 'contrastRatio'] as const;
+
+export const COLOR_AESTHETIC_MEASURES = ['pairPreference', 'harmony'] as const;
+
+export const WHITE: Color = {
+ model: 'rgb',
+ value: {
+ r: 255,
+ g: 255,
+ b: 255,
+ },
+};
+
+// Separable blend modes https://www.w3.org/TR/compositing/#blendingseparable
+export const SEPARABLE_BLEND_MODES = [
+ 'normal',
+ 'darken',
+ 'multiply',
+ 'colorBurn',
+ 'linearBurn',
+ 'lighten',
+ 'screen',
+ 'colorDodge',
+ 'linearDodge',
+ 'overlay',
+ 'softLight',
+ 'hardLight',
+ 'vividLight',
+ 'linearLight',
+ 'pinLight',
+ 'difference',
+ 'exclusion',
+];
+
+// Non-separable blend modes https://www.w3.org/TR/compositing/#blendingnonseparable
+export const NON_SEPARABLE_BLEND_MODES = ['hue', 'saturation', 'color', 'luminosity'] as const;
+
+export const BLEND_MODES = [...SEPARABLE_BLEND_MODES, ...NON_SEPARABLE_BLEND_MODES] as const;
diff --git a/vendors/smart-color/0.2.1/src/evaluators/.DS_Store b/vendors/smart-color/0.2.1/src/evaluators/.DS_Store
new file mode 100644
index 0000000..8b30fad
Binary files /dev/null and b/vendors/smart-color/0.2.1/src/evaluators/.DS_Store differ
diff --git a/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/.DS_Store b/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/.DS_Store
new file mode 100644
index 0000000..1dd78d0
Binary files /dev/null and b/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/.DS_Store differ
diff --git a/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/colorHarmony.ts b/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/colorHarmony.ts
new file mode 100644
index 0000000..2399b80
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/colorHarmony.ts
@@ -0,0 +1,46 @@
+import { Color } from '@antv/color-schema';
+import { colorToArray, rad2deg, deg2rad } from '../../utils';
+
+const Hab = (b: number, a: number) => {
+ if (a === 0 && b === 0) return 0;
+ const tmphp = rad2deg(Math.atan2(b, a));
+ if (tmphp >= 0) return tmphp;
+ return tmphp + 360;
+};
+
+// ref: Color Harmony for Image Indexing
+// ref: A Study of Colour Harmony for Two-colour Combinations
+// ref: https://last.hit.bme.hu/download/firtha/video/Colorimetry/Fairchild_M._Color_appearance_models__2005.pdf p79-81
+export const colorHarmony = (color1: Color, color2: Color): number => {
+ const [L1, a1, b1] = colorToArray(color1, 'lab');
+ const [L2, a2, b2] = colorToArray(color2, 'lab');
+
+ const Cab1 = Math.sqrt(a1 ** 2 + b1 ** 2);
+ const Cab2 = Math.sqrt(a1 ** 2 + b1 ** 2);
+
+ const Hab1 = Hab(b1, a1);
+ const Hab2 = Hab(b2, a2);
+
+ const dCab = Cab1 - Cab2;
+ const dHab2 = (a1 - a2) ** 2 + (b1 - b2) ** 2 - dCab ** 2;
+
+ const dC = Math.sqrt(dHab2 + (dCab / 1.46) ** 2);
+ const HC = 0.04 + 0.53 * Math.tanh(0.8 - 0.045 * dC);
+
+ const Lsum = L1 + L2;
+ const HLsum = 0.28 + 0.54 * Math.tanh(-3.88 + 0.029 * Lsum);
+ const HdL = 0.14 + 0.15 * Math.tanh(-2 + 0.2 * Math.abs(L1 - L2));
+ const HL = HLsum + HdL;
+
+ const EC1 = 0.5 + 0.5 * Math.tanh(-2 + 0.5 * Cab1);
+ const EC2 = 0.5 + 0.5 * Math.tanh(-2 + 0.5 * Cab2);
+ const HS1 = -0.08 - 0.14 * Math.sin(deg2rad(Hab1 + 50)) - 0.07 * Math.sin(deg2rad(2 * Hab1 + 90));
+ const HS2 = -0.08 - 0.14 * Math.sin(deg2rad(Hab2 + 50)) - 0.07 * Math.sin(deg2rad(2 * Hab2 + 90));
+ const EY1 = ((0.22 * L1 - 12.8) / 10) * Math.exp((90 - Hab1) / 10 - Math.exp((90 - Hab1) / 10));
+ const EY2 = ((0.22 * L2 - 12.8) / 10) * Math.exp((90 - Hab2) / 10 - Math.exp((90 - Hab2) / 10));
+ const HSY1 = EC1 * (HS1 + EY1);
+ const HSY2 = EC2 * (HS2 + EY2);
+ const HH = HSY1 + HSY2;
+
+ return HC + HL + HH;
+};
diff --git a/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/index.ts b/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/index.ts
new file mode 100644
index 0000000..1274f15
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/index.ts
@@ -0,0 +1,20 @@
+import { ColorAesthetic } from '@src/types';
+import { WHITE } from '../../constant';
+import { colorBlend } from '../../utils';
+import { pairPreference } from './pairPreference';
+import { colorHarmony } from './colorHarmony';
+
+export const colorAesthetic: ColorAesthetic = (color1, color2, configuration = { measure: 'pairPreference' }) => {
+ const { measure = 'pairPreference', backgroundColor = WHITE } = configuration;
+ // If the color is semi-transparent, the color will be overlapped on a white background by default for comparison
+ const overlappedColor1 = colorBlend(color1, backgroundColor);
+ const overlappedColor2 = colorBlend(color2, backgroundColor);
+ switch (measure) {
+ case 'pairPreference':
+ return pairPreference(overlappedColor1, overlappedColor2);
+ case 'harmony':
+ return colorHarmony(overlappedColor1, overlappedColor2);
+ default:
+ return pairPreference(overlappedColor1, overlappedColor2);
+ }
+};
diff --git a/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/pairPreference/.DS_Store b/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/pairPreference/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/pairPreference/.DS_Store differ
diff --git a/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.ts b/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.ts
new file mode 100644
index 0000000..2df7b83
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/pairPreference/LAB_TO_COOLNESS.ts
@@ -0,0 +1,2 @@
+// prettier-ignore
+export const LAB_TO_COOLNESS = [,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,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,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6.49,7.13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8.14,7.5,4.36,5.54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,7.46,7.46,5.18,3.75,2.77,2.78,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.41,8.55,5.7,2.85,0,0.68,1.37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.75,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.11,10.48,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.75,11.22,9.59,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.22,11.22,10.74,9.11,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.1,10.72,10.24,9.06,7.94,6.7,5.56,4.22,2.88,2.88,2.88,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.09,10.71,10.34,10,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10.7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.11,10.84,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.41,8.71,9.4,9.13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.96,10.42,6.49,7.13,7.43,7.41,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10.31,8.14,7.5,4.36,5.54,5.34,5.44,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.41,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.02,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13,11.75,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.11,12.11,10.48,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,1.43,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.75,11.75,11.22,9.59,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,1.36,1.57,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.59,11.22,10.74,9.11,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,1.51,1.72,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.47,11.1,10.72,10.24,9.06,7.94,6.7,5.56,4.22,2.88,1.95,1.49,1.58,1.73,1.88,,,,,,,,,,,,,,,,,,,,,,,,,,,11.46,11.09,10.71,10.34,10,9.5,8.36,7.12,5.98,4.84,3.81,2.99,2.17,1.78,1.9,2,,,,,,,,,,,,,,,,,,,,,,,,,,11.34,11.08,10.7,10.32,10,9.86,9.34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10.94,11.07,10.8,10.42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.98,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10.69,11.11,10.84,10.82,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.39,9.41,8.71,9.4,9.13,9.35,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.96,11.96,10.42,6.49,7.13,7.43,7.41,7.63,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.1,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.76,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.63,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.02,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,2.7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13,11.75,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,2.05,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.44,12.11,10.48,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,1.43,1.65,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.1,11.75,11.22,9.59,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,1.36,1.57,1.82,,,,,,,,,,,,,,,,,,,,,,,,,,,11.87,11.59,11.22,10.74,9.11,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,1.51,1.72,1.92,,,,,,,,,,,,,,,,,,,,,,,,,,11.76,11.47,11.1,10.72,10.24,9.06,7.94,6.7,5.56,4.22,2.88,1.95,1.49,1.58,1.73,1.88,2,,,,,,,,,,,,,,,,,,,,,,,,,11.73,11.46,11.09,10.71,10.34,10,9.5,8.36,7.12,5.98,4.84,3.81,2.99,2.17,1.78,1.9,2,2,,,,,,,,,,,,,,,,,,,,,,,,11.39,11.34,11.08,10.7,10.32,10,9.86,9.34,8.56,7.83,6.82,5.68,4.75,4.03,3.31,2.8,2,2,2,,,,,,,,,,,,,,,,,,,,,,,10.35,10.94,11.07,10.8,10.42,10.06,9.99,9.5,9.02,9.02,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8.97,8.97,10.49,10.79,10.52,10.15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.82,12.43,11.98,11.56,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.7,10.69,11.11,10.84,10.82,11.15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,15.76,12.39,9.41,8.71,9.4,9.13,9.35,9.69,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.33,11.96,10.42,6.49,7.13,7.43,7.41,7.63,8.34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,14.12,12.1,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,15.09,12.76,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,14.72,13.63,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,4.34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,14.02,13.02,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,2.7,3.55,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.24,13,11.75,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,2.05,3.07,,,,,,,,,,,,,,,,,,,,,,,,,,,12.71,12.44,12.11,10.48,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,1.43,1.65,2.58,,,,,,,,,,,,,,,,,,,,,,,,,,12.38,12.1,11.75,11.22,9.59,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,1.36,1.57,1.82,2.15,,,,,,,,,,,,,,,,,,,,,,,,,12.25,11.87,11.59,11.22,10.74,9.11,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,1.51,1.72,1.92,2,2,,,,,,,,,,,,,,,,,,,,,,,12.03,11.76,11.47,11.1,10.72,10.24,9.06,7.94,6.7,5.56,4.22,2.88,1.95,1.49,1.58,1.73,1.88,2,2,2,,,,,,,,,,,,,,,,,,,,,,11.7,11.73,11.46,11.09,10.71,10.34,10,9.5,8.36,7.12,5.98,4.84,3.81,2.99,2.17,1.78,1.9,2,2,2,2,,,,,,,,,,,,,,,,,,,,,10.65,11.39,11.34,11.08,10.7,10.32,10,9.86,9.34,8.56,7.83,6.82,5.68,4.75,4.03,3.31,2.8,2,2,2,2,2,,,,,,,,,,,,,,,,,,,,10.35,10.35,10.94,11.07,10.8,10.42,10.06,9.99,9.5,9.02,8.35,7.69,6.92,6.28,5.39,4.63,3.88,3.01,2.4,2,2,2,2,,,,,,,,,,,,,,,,,,,,0,8.97,10.49,10.79,10.52,10.15,10,9.63,9.15,8.66,8.17,7.52,6.86,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,9.96,10.51,10.25,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.3,12.3,11.89,11.55,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.77,12.82,12.43,11.98,11.56,11.23,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,14.35,11.7,10.69,11.11,10.84,10.82,11.15,10.82,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,16.19,15.76,12.39,9.41,8.71,9.4,9.13,9.35,9.69,10.16,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,14.55,13.33,11.96,10.42,6.49,7.13,7.43,7.41,7.63,8.34,9.25,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,14.12,12.1,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,7.82,,,,,,,,,,,,,,,,,,,,,,,,,,,,,15.09,15.09,12.76,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.8,6.38,,,,,,,,,,,,,,,,,,,,,,,,,,,,14.87,14.72,13.63,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,4.34,5.09,,,,,,,,,,,,,,,,,,,,,,,,,,,14.01,14.02,13.02,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,2.7,3.55,4.32,,,,,,,,,,,,,,,,,,,,,,,,,,13.24,13.24,13,11.75,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,2.05,3.07,3.78,,,,,,,,,,,,,,,,,,,,,,,,,12.89,12.71,12.44,12.11,10.48,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,1.43,1.65,2.58,3.46,3.71,,,,,,,,,,,,,,,,,,,,,,,12.66,12.38,12.1,11.75,11.22,9.59,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,1.36,1.57,1.82,2.15,2.64,2.9,,,,,,,,,,,,,,,,,,,,,,12.43,12.25,11.87,11.59,11.22,10.74,9.11,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,1.51,1.72,1.92,2,2,2.22,,,,,,,,,,,,,,,,,,,,,12,12.03,11.76,11.47,11.1,10.72,10.24,9.06,7.94,6.7,5.56,4.22,2.88,1.95,1.49,1.58,1.73,1.88,2,2,2,2,,,,,,,,,,,,,,,,,,,,11.1,11.7,11.73,11.46,11.09,10.71,10.34,10,9.5,8.36,7.12,5.98,4.84,3.81,2.99,2.17,1.78,1.9,2,2,2,2,2,,,,,,,,,,,,,,,,,,,10.65,10.65,11.39,11.34,11.08,10.7,10.32,10,9.86,9.34,8.56,7.83,6.82,5.68,4.75,4.03,3.31,2.8,2,2,2,2,2,2,,,,,,,,,,,,,,,,,,,7.79,10.35,10.94,11.07,10.8,10.42,10.06,9.99,9.5,9.02,8.35,7.69,6.92,6.28,5.39,4.63,3.88,3.01,2.4,2,2,2,2,2,,,,,,,,,,,,,,,,,,0,0,8.97,10.49,10.79,10.52,10.15,10,9.63,9.15,8.66,8.17,7.52,6.86,6.09,5.45,4.7,3.95,3.34,2.6,2,2,2,2,2,,,,,,,,,,,,,,,,,0,0,0,0,9.96,10.51,10.25,10,9.65,9.28,8.79,8.43,7.82,7.34,6.69,6.04,6.04,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,6.61,10.01,10.08,9.78,9.41,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.21,11.88,11.59,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.39,12.8,12.3,11.89,11.55,11.25,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,14.15,12.77,12.82,12.43,11.98,11.56,11.23,10.92,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17,14.35,11.7,10.69,11.11,10.84,10.82,11.15,10.82,10.5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,16.19,15.76,12.39,9.41,8.71,9.4,9.13,9.35,9.69,10.16,10.1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,16.51,14.55,13.33,11.96,10.42,6.49,7.13,7.43,7.41,7.63,8.34,9.25,9.68,,,,,,,,,,,,,,,,,,,,,,,,,,,,,16.36,14.12,12.1,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,7.82,8.24,,,,,,,,,,,,,,,,,,,,,,,,,,,,15.95,15.09,12.76,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.8,6.38,6.96,,,,,,,,,,,,,,,,,,,,,,,,,,,14.87,14.72,13.63,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,4.34,5.09,5.83,,,,,,,,,,,,,,,,,,,,,,,,,14.01,14.01,14.02,13.02,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,2.7,3.55,4.32,5.08,,,,,,,,,,,,,,,,,,,,,,,,13.52,13.24,13.24,13,11.75,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,2.05,3.07,3.78,4.63,,,,,,,,,,,,,,,,,,,,,,,12.89,12.89,12.71,12.44,12.11,10.48,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,1.43,1.65,2.58,3.46,3.71,,,,,,,,,,,,,,,,,,,,,,12.93,12.66,12.38,12.1,11.75,11.22,9.59,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,1.36,1.57,1.82,2.15,2.64,2.9,2.9,,,,,,,,,,,,,,,,,,,,12.43,12.43,12.25,11.87,11.59,11.22,10.74,9.11,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,1.51,1.72,1.92,2,2,2.22,2.51,,,,,,,,,,,,,,,,,,,,12,12.03,11.76,11.47,11.1,10.72,10.24,9.06,7.94,6.7,5.56,4.22,2.88,1.95,1.49,1.58,1.73,1.88,2,2,2,2,2,,,,,,,,,,,,,,,,,,,11.1,11.7,11.73,11.46,11.09,10.71,10.34,10,9.5,8.36,7.12,5.98,4.84,3.81,2.99,2.17,1.78,1.9,2,2,2,2,2,2,,,,,,,,,,,,,,,,,,9.82,10.65,11.39,11.34,11.08,10.7,10.32,10,9.86,9.34,8.56,7.83,6.82,5.68,4.75,4.03,3.31,2.8,2,2,2,2,2,2,2,,,,,,,,,,,,,,,,,0,7.79,10.35,10.94,11.07,10.8,10.42,10.06,9.99,9.5,9.02,8.35,7.69,6.92,6.28,5.39,4.63,3.88,3.01,2.4,2,2,2,2,2,2,,,,,,,,,,,,,,,,0,0,0,8.97,10.49,10.79,10.52,10.15,10,9.63,9.15,8.66,8.17,7.52,6.86,6.09,5.45,4.7,3.95,3.34,2.6,2,2,2,2,2,2,,,,,,,,,,,,,,,0,0,0,0,0,9.96,10.51,10.25,10,9.65,9.28,8.79,8.43,7.82,7.34,6.69,6.04,5.4,4.78,4.15,3.54,2.92,2.33,2,2,2,2,2,,,,,,,,,,,,,,0,0,0,0,0,0,6.61,10.01,10.08,9.78,9.41,9.05,8.56,8.2,7.71,7.11,6.62,5.99,5.48,4.85,4.22,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,6.61,9.85,9.54,9.18,8.81,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.14,11.85,11.64,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.04,12.63,12.21,11.88,11.59,11.38,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.91,13.39,12.8,12.3,11.89,11.55,11.25,11.05,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,15.9,14.15,12.77,12.82,12.43,11.98,11.56,11.23,10.92,10.71,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17.91,17,14.35,11.7,10.69,11.11,10.84,10.82,11.15,10.82,10.5,10.3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17.42,16.19,15.76,12.39,9.41,8.71,9.4,9.13,9.35,9.69,10.16,10.1,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,16.51,16.51,14.55,13.33,11.96,10.42,6.49,7.13,7.43,7.41,7.63,8.34,9.25,9.68,9.11,,,,,,,,,,,,,,,,,,,,,,,,,,,16.21,16.36,14.12,12.1,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,7.82,8.24,8.21,,,,,,,,,,,,,,,,,,,,,,,,,,15.73,15.95,15.09,12.76,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.8,6.38,6.96,7.13,,,,,,,,,,,,,,,,,,,,,,,,,14.75,14.87,14.72,13.63,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,4.34,5.09,5.83,6.24,,,,,,,,,,,,,,,,,,,,,,,,14,14.01,14.02,13.02,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,2.7,3.55,4.32,5.08,5.56,,,,,,,,,,,,,,,,,,,,,,,13.52,13.24,13.24,13,11.75,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,2.05,3.07,3.78,4.63,4.65,,,,,,,,,,,,,,,,,,,,,,13.17,12.89,12.71,12.44,12.11,10.48,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,1.43,1.65,2.58,3.46,3.71,3.99,,,,,,,,,,,,,,,,,,,,,12.93,12.66,12.38,12.1,11.75,11.22,9.59,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,1.36,1.57,1.82,2.15,2.64,2.9,3.19,,,,,,,,,,,,,,,,,,,,12.31,12.43,12.25,11.87,11.59,11.22,10.74,9.11,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,1.51,1.72,1.92,2,2,2.22,2.51,2.51,,,,,,,,,,,,,,,,,,11.41,12,12.03,11.76,11.47,11.1,10.72,10.24,9.06,7.94,6.7,5.56,4.22,2.88,1.95,1.49,1.58,1.73,1.88,2,2,2,2,2,2.09,,,,,,,,,,,,,,,,,10.31,11.1,11.7,11.73,11.46,11.09,10.71,10.34,10,9.5,8.36,7.12,5.98,4.84,3.81,2.99,2.17,1.78,1.9,2,2,2,2,2,2,2,,,,,,,,,,,,,,,,0,9.82,10.65,11.39,11.34,11.08,10.7,10.32,10,9.86,9.34,8.56,7.83,6.82,5.68,4.75,4.03,3.31,2.8,2,2,2,2,2,2,2,2,,,,,,,,,,,,,,,0,0,7.79,10.35,10.94,11.07,10.8,10.42,10.06,9.99,9.5,9.02,8.35,7.69,6.92,6.28,5.39,4.63,3.88,3.01,2.4,2,2,2,2,2,2,2,,,,,,,,,,,,,,0,0,0,0,8.97,10.49,10.79,10.52,10.15,10,9.63,9.15,8.66,8.17,7.52,6.86,6.09,5.45,4.7,3.95,3.34,2.6,2,2,2,2,2,2,2,,,,,,,,,,,,,0,0,0,0,0,0,9.96,10.51,10.25,10,9.65,9.28,8.79,8.43,7.82,7.34,6.69,6.04,5.4,4.78,4.15,3.54,2.92,2.33,2,2,2,2,2,2,,,,,,,,,,,,0,0,0,0,0,0,0,6.61,10.01,10.08,9.78,9.41,9.05,8.56,8.2,7.71,7.11,6.62,5.99,5.48,4.85,4.22,3.74,3.12,2.64,2.04,2,2,2,2,2,,,,,,,,,,,,0,0,0,0,0,0,0,0,6.61,9.85,9.54,9.18,8.81,8.33,7.96,7.48,7,6.51,6.03,5.43,4.92,4.42,3.81,3.32,2.84,2.84,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,8.97,8.94,8.58,8.22,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.11,11.9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.87,12.45,12.14,11.85,11.64,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.5,13.04,12.63,12.21,11.88,11.59,11.38,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,14.95,13.91,13.39,12.8,12.3,11.89,11.55,11.25,11.05,11.05,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17.09,15.9,14.15,12.77,12.82,12.43,11.98,11.56,11.23,10.92,10.71,10.51,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17.6,17.91,17,14.35,11.7,10.69,11.11,10.84,10.82,11.15,10.82,10.5,10.3,10.18,,,,,,,,,,,,,,,,,,,,,,,,,,,,17.14,17.42,16.19,15.76,12.39,9.41,8.71,9.4,9.13,9.35,9.69,10.16,10.1,10,9.86,,,,,,,,,,,,,,,,,,,,,,,,,,,16.66,16.51,14.55,13.33,11.96,10.42,6.49,7.13,7.43,7.41,7.63,8.34,9.25,9.68,9.11,8.95,,,,,,,,,,,,,,,,,,,,,,,,,16.13,16.21,16.36,14.12,12.1,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,7.82,8.24,8.21,7.86,,,,,,,,,,,,,,,,,,,,,,,,15.5,15.73,15.95,15.09,12.76,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.8,6.38,6.96,7.13,6.96,,,,,,,,,,,,,,,,,,,,,,,14.64,14.75,14.87,14.72,13.63,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,4.34,5.09,5.83,6.24,5.9,,,,,,,,,,,,,,,,,,,,,,14.04,14,14.01,14.02,13.02,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,2.7,3.55,4.32,5.08,5.56,5.4,,,,,,,,,,,,,,,,,,,,,13.69,13.52,13.24,13.24,13,11.75,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,2.05,3.07,3.78,4.63,4.65,4.79,,,,,,,,,,,,,,,,,,,,13.35,13.17,12.89,12.71,12.44,12.11,10.48,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,1.43,1.65,2.58,3.46,3.71,3.99,4,,,,,,,,,,,,,,,,,,,12.61,12.93,12.66,12.38,12.1,11.75,11.22,9.59,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,1.36,1.57,1.82,2.15,2.64,2.9,3.19,3.32,,,,,,,,,,,,,,,,,,11.71,12.31,12.43,12.25,11.87,11.59,11.22,10.74,9.11,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,1.51,1.72,1.92,2,2,2.22,2.51,2.64,,,,,,,,,,,,,,,,,10.67,11.41,12,12.03,11.76,11.47,11.1,10.72,10.24,9.06,7.94,6.7,5.56,4.22,2.88,1.95,1.49,1.58,1.73,1.88,2,2,2,2,2,2.09,,,,,,,,,,,,,,,,7.79,10.31,11.1,11.7,11.73,11.46,11.09,10.71,10.34,10,9.5,8.36,7.12,5.98,4.84,3.81,2.99,2.17,1.78,1.9,2,2,2,2,2,2,2,2,,,,,,,,,,,,,,0,0,9.82,10.65,11.39,11.34,11.08,10.7,10.32,10,9.86,9.34,8.56,7.83,6.82,5.68,4.75,4.03,3.31,2.8,2,2,2,2,2,2,2,2,2,,,,,,,,,,,,,0,0,0,7.79,10.35,10.94,11.07,10.8,10.42,10.06,9.99,9.5,9.02,8.35,7.69,6.92,6.28,5.39,4.63,3.88,3.01,2.4,2,2,2,2,2,2,2,2,,,,,,,,,,,,0,0,0,0,0,8.97,10.49,10.79,10.52,10.15,10,9.63,9.15,8.66,8.17,7.52,6.86,6.09,5.45,4.7,3.95,3.34,2.6,2,2,2,2,2,2,2,2,,,,,,,,,,,,0,0,0,0,0,0,9.96,10.51,10.25,10,9.65,9.28,8.79,8.43,7.82,7.34,6.69,6.04,5.4,4.78,4.15,3.54,2.92,2.33,2,2,2,2,2,2,2,,,,,,,,,,,0,0,0,0,0,0,0,6.61,10.01,10.08,9.78,9.41,9.05,8.56,8.2,7.71,7.11,6.62,5.99,5.48,4.85,4.22,3.74,3.12,2.64,2.04,2,2,2,2,2,3.86,,,,,,,,,,,0,0,0,0,0,0,0,0,6.61,9.85,9.54,9.18,8.81,8.33,7.96,7.48,7,6.51,6.03,5.43,4.92,4.42,3.81,3.32,2.84,2.37,2,2,2,3.08,4.65,6.27,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,8.97,8.94,8.58,8.22,7.73,7.37,6.88,6.4,5.92,5.44,4.95,4.47,3.99,3.52,3.04,2.55,2.2,2.87,4.44,5.45,7.02,0,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,7.79,9.31,8.04,7.62,7.13,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.27,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.7,12.4,12.11,11.9,11.7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.29,12.87,12.45,12.14,11.85,11.64,11.43,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,14.23,14.23,13.5,13.04,12.63,12.21,11.88,11.59,11.38,11.18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,16.01,14.95,13.91,13.39,12.8,12.3,11.89,11.55,11.25,11.05,10.84,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17.98,17.09,15.9,14.15,12.77,12.82,12.43,11.98,11.56,11.23,10.92,10.71,10.51,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17.6,17.91,17,14.35,11.7,10.69,11.11,10.84,10.82,11.15,10.82,10.5,10.3,10.18,,,,,,,,,,,,,,,,,,,,,,,,,,,16.92,17.14,17.42,16.19,15.76,12.39,9.41,8.71,9.4,9.13,9.35,9.69,10.16,10.1,10,9.86,9.51,,,,,,,,,,,,,,,,,,,,,,,,,16.51,16.66,16.51,14.55,13.33,11.96,10.42,6.49,7.13,7.43,7.41,7.63,8.34,9.25,9.68,9.11,8.95,8.6,,,,,,,,,,,,,,,,,,,,,,,,16.13,16.21,16.36,14.12,12.1,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,7.82,8.24,8.21,7.86,7.7,,,,,,,,,,,,,,,,,,,,,,,15.5,15.73,15.95,15.09,12.76,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.8,6.38,6.96,7.13,6.96,6.79,,,,,,,,,,,,,,,,,,,,,14.68,14.64,14.75,14.87,14.72,13.63,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,4.34,5.09,5.83,6.24,5.9,5.9,,,,,,,,,,,,,,,,,,,,14.21,14.04,14,14.01,14.02,13.02,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,2.7,3.55,4.32,5.08,5.56,5.4,5.19,,,,,,,,,,,,,,,,,,,13.67,13.69,13.52,13.24,13.24,13,11.75,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,2.05,3.07,3.78,4.63,4.65,4.79,4.75,,,,,,,,,,,,,,,,,,12.77,13.35,13.17,12.89,12.71,12.44,12.11,10.48,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,1.43,1.65,2.58,3.46,3.71,3.99,4,4.14,,,,,,,,,,,,,,,,,11.87,12.61,12.93,12.66,12.38,12.1,11.75,11.22,9.59,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,1.36,1.57,1.82,2.15,2.64,2.9,3.19,3.32,3.46,,,,,,,,,,,,,,,,10.97,11.71,12.31,12.43,12.25,11.87,11.59,11.22,10.74,9.11,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,1.51,1.72,1.92,2,2,2.22,2.51,2.64,2.93,,,,,,,,,,,,,,,9.74,10.67,11.41,12,12.03,11.76,11.47,11.1,10.72,10.24,9.06,7.94,6.7,5.56,4.22,2.88,1.95,1.49,1.58,1.73,1.88,2,2,2,2,2,2.09,2.22,,,,,,,,,,,,,,0,7.79,10.31,11.1,11.7,11.73,11.46,11.09,10.71,10.34,10,9.5,8.36,7.12,5.98,4.84,3.81,2.99,2.17,1.78,1.9,2,2,2,2,2,2,2,2,,,,,,,,,,,,,,0,0,9.82,10.65,11.39,11.34,11.08,10.7,10.32,10,9.86,9.34,8.56,7.83,6.82,5.68,4.75,4.03,3.31,2.8,2,2,2,2,2,2,2,2,2,2,,,,,,,,,,,,0,0,0,7.79,10.35,10.94,11.07,10.8,10.42,10.06,9.99,9.5,9.02,8.35,7.69,6.92,6.28,5.39,4.63,3.88,3.01,2.4,2,2,2,2,2,2,2,2,2,,,,,,,,,,,,0,0,0,0,8.97,10.49,10.79,10.52,10.15,10,9.63,9.15,8.66,8.17,7.52,6.86,6.09,5.45,4.7,3.95,3.34,2.6,2,2,2,2,2,2,2,2,2,,,,,,,,,,,,0,0,0,0,0,9.96,10.51,10.25,10,9.65,9.28,8.79,8.43,7.82,7.34,6.69,6.04,5.4,4.78,4.15,3.54,2.92,2.33,2,2,2,2,2,2,2,3.68,,,,,,,,,,,,0,0,0,0,0,6.61,10.01,10.08,9.78,9.41,9.05,8.56,8.2,7.71,7.11,6.62,5.99,5.48,4.85,4.22,3.74,3.12,2.64,2.04,2,2,2,2,2,3.86,6.05,,,,,,,,,,,,0,0,0,0,0,0,6.61,9.85,9.54,9.18,8.81,8.33,7.96,7.48,7,6.51,6.03,5.43,4.92,4.42,3.81,3.32,2.84,2.37,2,2,2,3.08,4.65,6.27,6.61,,,,,,,,,,,,0,0,0,0,0,0,0,0,8.97,8.94,8.58,8.22,7.73,7.37,6.88,6.4,5.92,5.44,4.95,4.47,3.99,3.52,3.04,2.55,2.2,2.87,4.44,5.45,7.02,0,0,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,7.79,9.31,8.04,7.62,7.13,6.77,6.29,5.93,5.44,4.96,4.48,4,3.64,3.41,3.84,4.8,5.8,6.81,7.79,0,0,0,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,7.79,9,8.25,6.98,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.38,12.38,11.91,11.27,10.42,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.03,12.7,12.4,12.11,11.9,11.7,11.24,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.75,13.75,13.29,12.87,12.45,12.14,11.85,11.64,11.43,11.23,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,15.17,14.23,13.5,13.04,12.63,12.21,11.88,11.59,11.38,11.18,10.97,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17.07,16.01,14.95,13.91,13.39,12.8,12.3,11.89,11.55,11.25,11.05,10.84,10.64,,,,,,,,,,,,,,,,,,,,,,,,,,,,17.68,17.98,17.09,15.9,14.15,12.77,12.82,12.43,11.98,11.56,11.23,10.92,10.71,10.51,10.39,,,,,,,,,,,,,,,,,,,,,,,,,,,17.32,17.6,17.91,17,14.35,11.7,10.69,11.11,10.84,10.82,11.15,10.82,10.5,10.3,10.18,10,,,,,,,,,,,,,,,,,,,,,,,,,16.92,16.92,17.14,17.42,16.19,15.76,12.39,9.41,8.71,9.4,9.13,9.35,9.69,10.16,10.1,10,9.86,9.51,,,,,,,,,,,,,,,,,,,,,,,,16.36,16.51,16.66,16.51,14.55,13.33,11.96,10.42,6.49,7.13,7.43,7.41,7.63,8.34,9.25,9.68,9.11,8.95,8.6,,,,,,,,,,,,,,,,,,,,,,,16.05,16.13,16.21,16.36,14.12,12.1,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,7.82,8.24,8.21,7.86,7.7,7.53,,,,,,,,,,,,,,,,,,,,,15.28,15.5,15.73,15.95,15.09,12.76,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.8,6.38,6.96,7.13,6.96,6.79,6.79,,,,,,,,,,,,,,,,,,,,14.68,14.64,14.75,14.87,14.72,13.63,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,4.34,5.09,5.83,6.24,5.9,5.9,5.9,,,,,,,,,,,,,,,,,,,14.21,14.04,14,14.01,14.02,13.02,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,2.7,3.55,4.32,5.08,5.56,5.4,5.19,5.19,,,,,,,,,,,,,,,,,,13.67,13.69,13.52,13.24,13.24,13,11.75,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,2.05,3.07,3.78,4.63,4.65,4.79,4.75,4.62,,,,,,,,,,,,,,,,,12.77,13.35,13.17,12.89,12.71,12.44,12.11,10.48,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,1.43,1.65,2.58,3.46,3.71,3.99,4,4.14,4.1,,,,,,,,,,,,,,,11.13,11.87,12.61,12.93,12.66,12.38,12.1,11.75,11.22,9.59,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,1.36,1.57,1.82,2.15,2.64,2.9,3.19,3.32,3.46,3.62,,,,,,,,,,,,,,,10.97,11.71,12.31,12.43,12.25,11.87,11.59,11.22,10.74,9.11,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,1.51,1.72,1.92,2,2,2.22,2.51,2.64,2.93,2.94,,,,,,,,,,,,,,9.74,10.67,11.41,12,12.03,11.76,11.47,11.1,10.72,10.24,9.06,7.94,6.7,5.56,4.22,2.88,1.95,1.49,1.58,1.73,1.88,2,2,2,2,2,2.09,2.22,2.38,,,,,,,,,,,,,0,7.79,10.31,11.1,11.7,11.73,11.46,11.09,10.71,10.34,10,9.5,8.36,7.12,5.98,4.84,3.81,2.99,2.17,1.78,1.9,2,2,2,2,2,2,2,2,2,,,,,,,,,,,,,0,0,9.82,10.65,11.39,11.34,11.08,10.7,10.32,10,9.86,9.34,8.56,7.83,6.82,5.68,4.75,4.03,3.31,2.8,2,2,2,2,2,2,2,2,2,2,,,,,,,,,,,,,0,0,7.79,10.35,10.94,11.07,10.8,10.42,10.06,9.99,9.5,9.02,8.35,7.69,6.92,6.28,5.39,4.63,3.88,3.01,2.4,2,2,2,2,2,2,2,2,2,,,,,,,,,,,,,0,0,0,8.97,10.49,10.79,10.52,10.15,10,9.63,9.15,8.66,8.17,7.52,6.86,6.09,5.45,4.7,3.95,3.34,2.6,2,2,2,2,2,2,2,2,2,2,,,,,,,,,,,,0,0,0,0,9.96,10.51,10.25,10,9.65,9.28,8.79,8.43,7.82,7.34,6.69,6.04,5.4,4.78,4.15,3.54,2.92,2.33,2,2,2,2,2,2,2,3.68,5.82,,,,,,,,,,,,,0,0,0,6.61,10.01,10.08,9.78,9.41,9.05,8.56,8.2,7.71,7.11,6.62,5.99,5.48,4.85,4.22,3.74,3.12,2.64,2.04,2,2,2,2,2,3.86,6.05,6.61,,,,,,,,,,,,,0,0,0,0,6.61,9.85,9.54,9.18,8.81,8.33,7.96,7.48,7,6.51,6.03,5.43,4.92,4.42,3.81,3.32,2.84,2.37,2,2,2,3.08,4.65,6.27,6.61,0,,,,,,,,,,,,,0,0,0,0,0,0,8.97,8.94,8.58,8.22,7.73,7.37,6.88,6.4,5.92,5.44,4.95,4.47,3.99,3.52,3.04,2.55,2.2,2.87,4.44,5.45,7.02,0,0,0,,,,,,,,,,,,,0,0,0,0,0,0,0,7.79,9.31,8.04,7.62,7.13,6.77,6.29,5.93,5.44,4.96,4.48,4,3.64,3.41,3.84,4.8,5.8,6.81,7.79,0,0,0,0,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,7.79,9,8.25,6.98,6.3,6.1,5.45,5.22,5.04,5.47,5.29,5.73,6.73,7.12,7.79,0,0,0,0,0,0,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,7.79,8.97,8.94,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.09,10.45,9.62,7.95,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.88,12.66,12.38,11.91,11.27,10.42,9.58,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.44,13.03,12.7,12.4,12.11,11.9,11.7,11.24,10.39,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,14.42,14.42,13.75,13.29,12.87,12.45,12.14,11.85,11.64,11.43,11.23,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,16.12,15.17,14.23,13.5,13.04,12.63,12.21,11.88,11.59,11.38,11.18,10.97,10.85,,,,,,,,,,,,,,,,,,,,,,,,,,,,18,17.07,16.01,14.95,13.91,13.39,12.8,12.3,11.89,11.55,11.25,11.05,10.84,10.64,10.51,,,,,,,,,,,,,,,,,,,,,,,,,,,17.68,17.98,17.09,15.9,14.15,12.77,12.82,12.43,11.98,11.56,11.23,10.92,10.71,10.51,10.39,10.27,,,,,,,,,,,,,,,,,,,,,,,,,17.11,17.32,17.6,17.91,17,14.35,11.7,10.69,11.11,10.84,10.82,11.15,10.82,10.5,10.3,10.18,10,10,,,,,,,,,,,,,,,,,,,,,,,,16.74,16.92,17.14,17.42,16.19,15.76,12.39,9.41,8.71,9.4,9.13,9.35,9.69,10.16,10.1,10,9.86,9.51,9.16,,,,,,,,,,,,,,,,,,,,,,,16.36,16.51,16.66,16.51,14.55,13.33,11.96,10.42,6.49,7.13,7.43,7.41,7.63,8.34,9.25,9.68,9.11,8.95,8.6,8.44,,,,,,,,,,,,,,,,,,,,,15.94,16.05,16.13,16.21,16.36,14.12,12.1,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,7.82,8.24,8.21,7.86,7.7,7.53,,,,,,,,,,,,,,,,,,,,15.32,15.28,15.5,15.73,15.95,15.09,12.76,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.8,6.38,6.96,7.13,6.96,6.79,6.79,,,,,,,,,,,,,,,,,,,14.58,14.68,14.64,14.75,14.87,14.72,13.63,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,4.34,5.09,5.83,6.24,5.9,5.9,5.9,,,,,,,,,,,,,,,,,,13.83,14.21,14.04,14,14.01,14.02,13.02,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,2.7,3.55,4.32,5.08,5.56,5.4,5.19,5.19,5.33,,,,,,,,,,,,,,,,12.93,13.67,13.69,13.52,13.24,13.24,13,11.75,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,2.05,3.07,3.78,4.63,4.65,4.79,4.75,4.62,4.62,,,,,,,,,,,,,,,12.03,12.77,13.35,13.17,12.89,12.71,12.44,12.11,10.48,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,1.43,1.65,2.58,3.46,3.71,3.99,4,4.14,4.1,4.05,,,,,,,,,,,,,,11.13,11.87,12.61,12.93,12.66,12.38,12.1,11.75,11.22,9.59,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,1.36,1.57,1.82,2.15,2.64,2.9,3.19,3.32,3.46,3.62,3.5,,,,,,,,,,,,,,10.97,11.71,12.31,12.43,12.25,11.87,11.59,11.22,10.74,9.11,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,1.51,1.72,1.92,2,2,2.22,2.51,2.64,2.93,2.94,3.07,,,,,,,,,,,,,,10.67,11.41,12,12.03,11.76,11.47,11.1,10.72,10.24,9.06,7.94,6.7,5.56,4.22,2.88,1.95,1.49,1.58,1.73,1.88,2,2,2,2,2,2.09,2.22,2.38,2.52,,,,,,,,,,,,,,10.31,11.1,11.7,11.73,11.46,11.09,10.71,10.34,10,9.5,8.36,7.12,5.98,4.84,3.81,2.99,2.17,1.78,1.9,2,2,2,2,2,2,2,2,2,2.09,,,,,,,,,,,,,,9.82,10.65,11.39,11.34,11.08,10.7,10.32,10,9.86,9.34,8.56,7.83,6.82,5.68,4.75,4.03,3.31,2.8,2,2,2,2,2,2,2,2,2,2,2,,,,,,,,,,,,,,7.79,10.35,10.94,11.07,10.8,10.42,10.06,9.99,9.5,9.02,8.35,7.69,6.92,6.28,5.39,4.63,3.88,3.01,2.4,2,2,2,2,2,2,2,2,2,2,,,,,,,,,,,,,,0,8.97,10.49,10.79,10.52,10.15,10,9.63,9.15,8.66,8.17,7.52,6.86,6.09,5.45,4.7,3.95,3.34,2.6,2,2,2,2,2,2,2,2,2,4.03,,,,,,,,,,,,,,0,0,9.96,10.51,10.25,10,9.65,9.28,8.79,8.43,7.82,7.34,6.69,6.04,5.4,4.78,4.15,3.54,2.92,2.33,2,2,2,2,2,2,2,3.68,5.82,,,,,,,,,,,,,,0,0,6.61,10.01,10.08,9.78,9.41,9.05,8.56,8.2,7.71,7.11,6.62,5.99,5.48,4.85,4.22,3.74,3.12,2.64,2.04,2,2,2,2,2,3.86,6.05,6.61,0,,,,,,,,,,,,,0,0,0,6.61,9.85,9.54,9.18,8.81,8.33,7.96,7.48,7,6.51,6.03,5.43,4.92,4.42,3.81,3.32,2.84,2.37,2,2,2,3.08,4.65,6.27,6.61,0,0,,,,,,,,,,,,,0,0,0,0,0,8.97,8.94,8.58,8.22,7.73,7.37,6.88,6.4,5.92,5.44,4.95,4.47,3.99,3.52,3.04,2.55,2.2,2.87,4.44,5.45,7.02,0,0,0,0,,,,,,,,,,,,,0,0,0,0,0,0,7.79,9.31,8.04,7.62,7.13,6.77,6.29,5.93,5.44,4.96,4.48,4,3.64,3.41,3.84,4.8,5.8,6.81,7.79,0,0,0,0,0,,,,,,,,,,,,,0,0,0,0,0,0,0,0,7.79,9,8.25,6.98,6.3,6.1,5.45,5.22,5.04,5.47,5.29,5.73,6.73,7.12,7.79,0,0,0,0,0,0,0,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,7.79,8.97,8.94,8.19,8.06,7.93,8.31,8.18,7.79,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.27,8.01,6.61,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.38,11.73,11.09,10.45,9.62,7.95,6.61,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.27,12.88,12.66,12.38,11.91,11.27,10.42,9.58,7.9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,14.75,13.94,13.44,13.03,12.7,12.4,12.11,11.9,11.7,11.24,10.39,9.11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,16.18,15.36,14.42,13.75,13.29,12.87,12.45,12.14,11.85,11.64,11.43,11.23,11,10.16,,,,,,,,,,,,,,,,,,,,,,,,,,,,17.05,16.12,15.17,14.23,13.5,13.04,12.63,12.21,11.88,11.59,11.38,11.18,10.97,10.85,10.72,,,,,,,,,,,,,,,,,,,,,,,,,,17.77,18,17.07,16.01,14.95,13.91,13.39,12.8,12.3,11.89,11.55,11.25,11.05,10.84,10.64,10.51,10.4,,,,,,,,,,,,,,,,,,,,,,,,,17.44,17.68,17.98,17.09,15.9,14.15,12.77,12.82,12.43,11.98,11.56,11.23,10.92,10.71,10.51,10.39,10.27,10.15,,,,,,,,,,,,,,,,,,,,,,,16.91,17.11,17.32,17.6,17.91,17,14.35,11.7,10.69,11.11,10.84,10.82,11.15,10.82,10.5,10.3,10.18,10,10,9.72,,,,,,,,,,,,,,,,,,,,,,16.59,16.74,16.92,17.14,17.42,16.19,15.76,12.39,9.41,8.71,9.4,9.13,9.35,9.69,10.16,10.1,10,9.86,9.51,9.16,8.99,,,,,,,,,,,,,,,,,,,,,16.28,16.36,16.51,16.66,16.51,14.55,13.33,11.96,10.42,6.49,7.13,7.43,7.41,7.63,8.34,9.25,9.68,9.11,8.95,8.6,8.44,8.27,,,,,,,,,,,,,,,,,,,,15.94,16.05,16.13,16.21,16.36,14.12,12.1,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,7.82,8.24,8.21,7.86,7.7,7.53,7.53,,,,,,,,,,,,,,,,,,14.59,15.32,15.28,15.5,15.73,15.95,15.09,12.76,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.8,6.38,6.96,7.13,6.96,6.79,6.79,6.6,,,,,,,,,,,,,,,,,13.84,14.58,14.68,14.64,14.75,14.87,14.72,13.63,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,4.34,5.09,5.83,6.24,5.9,5.9,5.9,5.9,,,,,,,,,,,,,,,,,13.83,14.21,14.04,14,14.01,14.02,13.02,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,2.7,3.55,4.32,5.08,5.56,5.4,5.19,5.19,5.33,,,,,,,,,,,,,,,,12.93,13.67,13.69,13.52,13.24,13.24,13,11.75,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,2.05,3.07,3.78,4.63,4.65,4.79,4.75,4.62,4.62,,,,,,,,,,,,,,,,12.77,13.35,13.17,12.89,12.71,12.44,12.11,10.48,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,1.43,1.65,2.58,3.46,3.71,3.99,4,4.14,4.1,4.05,4.2,,,,,,,,,,,,,,,12.61,12.93,12.66,12.38,12.1,11.75,11.22,9.59,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,1.36,1.57,1.82,2.15,2.64,2.9,3.19,3.32,3.46,3.62,3.5,3.63,,,,,,,,,,,,,,,12.31,12.43,12.25,11.87,11.59,11.22,10.74,9.11,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,1.51,1.72,1.92,2,2,2.22,2.51,2.64,2.93,2.94,3.07,3.06,,,,,,,,,,,,,,,12,12.03,11.76,11.47,11.1,10.72,10.24,9.06,7.94,6.7,5.56,4.22,2.88,1.95,1.49,1.58,1.73,1.88,2,2,2,2,2,2.09,2.22,2.38,2.52,2.64,,,,,,,,,,,,,,,11.7,11.73,11.46,11.09,10.71,10.34,10,9.5,8.36,7.12,5.98,4.84,3.81,2.99,2.17,1.78,1.9,2,2,2,2,2,2,2,2,2,2.09,2.12,,,,,,,,,,,,,,,11.39,11.34,11.08,10.7,10.32,10,9.86,9.34,8.56,7.83,6.82,5.68,4.75,4.03,3.31,2.8,2,2,2,2,2,2,2,2,2,2,2,2.61,,,,,,,,,,,,,,,10.94,11.07,10.8,10.42,10.06,9.99,9.5,9.02,8.35,7.69,6.92,6.28,5.39,4.63,3.88,3.01,2.4,2,2,2,2,2,2,2,2,2,2,4.37,,,,,,,,,,,,,,,10.49,10.79,10.52,10.15,10,9.63,9.15,8.66,8.17,7.52,6.86,6.09,5.45,4.7,3.95,3.34,2.6,2,2,2,2,2,2,2,2,2,4.03,6.21,,,,,,,,,,,,,,,9.96,10.51,10.25,10,9.65,9.28,8.79,8.43,7.82,7.34,6.69,6.04,5.4,4.78,4.15,3.54,2.92,2.33,2,2,2,2,2,2,2,3.68,5.82,0,,,,,,,,,,,,,,,6.61,10.01,10.08,9.78,9.41,9.05,8.56,8.2,7.71,7.11,6.62,5.99,5.48,4.85,4.22,3.74,3.12,2.64,2.04,2,2,2,2,2,3.86,6.05,6.61,0,,,,,,,,,,,,,,,0,6.61,9.85,9.54,9.18,8.81,8.33,7.96,7.48,7,6.51,6.03,5.43,4.92,4.42,3.81,3.32,2.84,2.37,2,2,2,3.08,4.65,6.27,6.61,0,0,,,,,,,,,,,,,,,0,0,0,8.97,8.94,8.58,8.22,7.73,7.37,6.88,6.4,5.92,5.44,4.95,4.47,3.99,3.52,3.04,2.55,2.2,2.87,4.44,5.45,7.02,0,0,0,0,,,,,,,,,,,,,,,0,0,0,0,7.79,9.31,8.04,7.62,7.13,6.77,6.29,5.93,5.44,4.96,4.48,4,3.64,3.41,3.84,3.84,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,7.79,9,8.25,6.98,6.3,6.1,5.45,5.22,5.04,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,7.79,8.97,8.97,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10.91,10.27,9.27,8.01,6.61,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.25,12.81,12.38,11.73,11.09,10.45,9.62,7.95,6.61,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,14.27,13.61,13.27,12.88,12.66,12.38,11.91,11.27,10.42,9.58,7.9,7.9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,15.42,14.75,13.94,13.44,13.03,12.7,12.4,12.11,11.9,11.7,11.24,10.39,9.11,7.44,,,,,,,,,,,,,,,,,,,,,,,,,,,,16.18,15.36,14.42,13.75,13.29,12.87,12.45,12.14,11.85,11.64,11.43,11.23,11,10.16,8.64,,,,,,,,,,,,,,,,,,,,,,,,,,18,17.05,16.12,15.17,14.23,13.5,13.04,12.63,12.21,11.88,11.59,11.38,11.18,10.97,10.85,10.72,9.43,,,,,,,,,,,,,,,,,,,,,,,,17.53,17.77,18,17.07,16.01,14.95,13.91,13.39,12.8,12.3,11.89,11.55,11.25,11.05,10.84,10.64,10.51,10.4,10.32,,,,,,,,,,,,,,,,,,,,,,,17.22,17.44,17.68,17.98,17.09,15.9,14.15,12.77,12.82,12.43,11.98,11.56,11.23,10.92,10.71,10.51,10.39,10.27,10.15,10.02,,,,,,,,,,,,,,,,,,,,,,16.91,17.11,17.32,17.6,17.91,17,14.35,11.7,10.69,11.11,10.84,10.82,11.15,10.82,10.5,10.3,10.18,10,10,9.72,9.55,,,,,,,,,,,,,,,,,,,,16.45,16.59,16.74,16.92,17.14,17.42,16.19,15.76,12.39,9.41,8.71,9.4,9.13,9.35,9.69,10.16,10.1,10,9.86,9.51,9.16,8.99,8.82,,,,,,,,,,,,,,,,,,,15.81,16.28,16.36,16.51,16.66,16.51,14.55,13.33,11.96,10.42,6.49,7.13,7.43,7.41,7.63,8.34,9.25,9.68,9.11,8.95,8.6,8.44,8.27,8.08,,,,,,,,,,,,,,,,,,15.2,15.94,16.05,16.13,16.21,16.36,14.12,12.1,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,7.82,8.24,8.21,7.86,7.7,7.53,7.53,7.34,,,,,,,,,,,,,,,,,14.59,15.32,15.28,15.5,15.73,15.95,15.09,12.76,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.8,6.38,6.96,7.13,6.96,6.79,6.79,6.6,6.6,,,,,,,,,,,,,,,,13.84,14.58,14.68,14.64,14.75,14.87,14.72,13.63,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,4.34,5.09,5.83,6.24,5.9,5.9,5.9,5.9,5.9,,,,,,,,,,,,,,,,13.83,14.21,14.04,14,14.01,14.02,13.02,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,2.7,3.55,4.32,5.08,5.56,5.4,5.19,5.19,5.33,5.33,,,,,,,,,,,,,,,,13.67,13.69,13.52,13.24,13.24,13,11.75,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,2.05,3.07,3.78,4.63,4.65,4.79,4.75,4.62,4.62,4.76,,,,,,,,,,,,,,,,13.35,13.17,12.89,12.71,12.44,12.11,10.48,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,1.43,1.65,2.58,3.46,3.71,3.99,4,4.14,4.1,4.05,4.2,,,,,,,,,,,,,,,,12.93,12.66,12.38,12.1,11.75,11.22,9.59,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,1.36,1.57,1.82,2.15,2.64,2.9,3.19,3.32,3.46,3.62,3.5,3.63,,,,,,,,,,,,,,,,12.43,12.25,11.87,11.59,11.22,10.74,9.11,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,1.51,1.72,1.92,2,2,2.22,2.51,2.64,2.93,2.94,3.07,3.06,3.35,,,,,,,,,,,,,,,12.03,11.76,11.47,11.1,10.72,10.24,9.06,7.94,6.7,5.56,4.22,2.88,1.95,1.49,1.58,1.73,1.88,2,2,2,2,2,2.09,2.22,2.38,2.52,2.64,2.78,,,,,,,,,,,,,,,11.73,11.46,11.09,10.71,10.34,10,9.5,8.36,7.12,5.98,4.84,3.81,2.99,2.17,1.78,1.9,2,2,2,2,2,2,2,2,2,2.09,2.12,3.81,,,,,,,,,,,,,,,11.34,11.08,10.7,10.32,10,9.86,9.34,8.56,7.83,6.82,5.68,4.75,4.03,3.31,2.8,2,2,2,2,2,2,2,2,2,2,2,2.61,5.29,,,,,,,,,,,,,,,11.07,10.8,10.42,10.06,9.99,9.5,9.02,8.35,7.69,6.92,6.28,5.39,4.63,3.88,3.01,2.4,2,2,2,2,2,2,2,2,2,2,4.37,6.56,,,,,,,,,,,,,,,10.52,10.52,10.15,10,9.63,9.15,8.66,8.17,7.52,6.86,6.09,5.45,4.7,3.95,3.34,2.6,2,2,2,2,2,2,2,2,2,4.03,6.21,0,,,,,,,,,,,,,,,10.51,10.25,10,9.65,9.28,8.79,8.43,7.82,7.34,6.69,6.04,5.4,4.78,4.15,3.54,2.92,2.33,2,2,2,2,2,2,2,3.68,5.82,0,,,,,,,,,,,,,,,,10.01,10.08,9.78,9.41,9.05,8.56,8.2,7.71,7.11,6.62,5.99,5.48,4.85,4.22,3.74,3.12,2.64,2.04,2,2,2,,,,,,,,,,,,,,,,,,,,,,9.85,9.85,9.54,9.18,8.81,8.33,7.96,7.48,7,6.51,6.03,5.43,4.92,4.42,3.81,3.32,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,8.97,8.94,8.58,8.22,7.73,7.37,6.88,6.4,5.92,5.44,4.95,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,7.79,9.31,8.04,7.62,7.13,6.77,6.29,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,7.79,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,7.65,7.65,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.35,10.91,10.27,9.27,8.01,6.61,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.65,13.25,12.81,12.38,11.73,11.09,10.45,9.62,7.95,6.61,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,14.94,14.27,13.61,13.27,12.88,12.66,12.38,11.91,11.27,10.42,9.58,7.9,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,16.23,15.42,14.75,13.94,13.44,13.03,12.7,12.4,12.11,11.9,11.7,11.24,10.39,9.11,7.44,,,,,,,,,,,,,,,,,,,,,,,,,,,17,16.18,15.36,14.42,13.75,13.29,12.87,12.45,12.14,11.85,11.64,11.43,11.23,11,10.16,8.64,,,,,,,,,,,,,,,,,,,,,,,,,17.78,18,17.05,16.12,15.17,14.23,13.5,13.04,12.63,12.21,11.88,11.59,11.38,11.18,10.97,10.85,10.72,9.43,9.43,,,,,,,,,,,,,,,,,,,,,,,17.53,17.77,18,17.07,16.01,14.95,13.91,13.39,12.8,12.3,11.89,11.55,11.25,11.05,10.84,10.64,10.51,10.4,10.32,8.55,,,,,,,,,,,,,,,,,,,,,17.04,17.22,17.44,17.68,17.98,17.09,15.9,14.15,12.77,12.82,12.43,11.98,11.56,11.23,10.92,10.71,10.51,10.39,10.27,10.15,10.02,9.34,,,,,,,,,,,,,,,,,,,,16.75,16.91,17.11,17.32,17.6,17.91,17,14.35,11.7,10.69,11.11,10.84,10.82,11.15,10.82,10.5,10.3,10.18,10,10,9.72,9.55,9.19,,,,,,,,,,,,,,,,,,,16.45,16.59,16.74,16.92,17.14,17.42,16.19,15.76,12.39,9.41,8.71,9.4,9.13,9.35,9.69,10.16,10.1,10,9.86,9.51,9.16,8.99,8.82,8.64,,,,,,,,,,,,,,,,,,15.81,16.28,16.36,16.51,16.66,16.51,14.55,13.33,11.96,10.42,6.49,7.13,7.43,7.41,7.63,8.34,9.25,9.68,9.11,8.95,8.6,8.44,8.27,8.08,7.9,,,,,,,,,,,,,,,,,15.2,15.94,16.05,16.13,16.21,16.36,14.12,12.1,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,7.82,8.24,8.21,7.86,7.7,7.53,7.53,7.34,7.34,,,,,,,,,,,,,,,,,15.32,15.28,15.5,15.73,15.95,15.09,12.76,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.8,6.38,6.96,7.13,6.96,6.79,6.79,6.6,6.6,6.61,,,,,,,,,,,,,,,,,14.68,14.64,14.75,14.87,14.72,13.63,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,4.34,5.09,5.83,6.24,5.9,5.9,5.9,5.9,5.9,5.9,,,,,,,,,,,,,,,,,14.04,14,14.01,14.02,13.02,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,2.7,3.55,4.32,5.08,5.56,5.4,5.19,5.19,5.33,5.33,5.33,,,,,,,,,,,,,,,,,13.52,13.24,13.24,13,11.75,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,2.05,3.07,3.78,4.63,4.65,4.79,4.75,4.62,4.62,4.76,4.76,,,,,,,,,,,,,,,,,12.89,12.71,12.44,12.11,10.48,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,1.43,1.65,2.58,3.46,3.71,3.99,4,4.14,4.1,4.05,4.2,4.34,,,,,,,,,,,,,,,,,12.38,12.1,11.75,11.22,9.59,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,1.36,1.57,1.82,2.15,2.64,2.9,3.19,3.32,3.46,3.62,3.5,3.63,3.77,,,,,,,,,,,,,,,,,11.87,11.59,11.22,10.74,9.11,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,1.51,1.72,1.92,2,2,2.22,2.51,2.64,2.93,2.94,3.07,3.06,3.35,,,,,,,,,,,,,,,,,11.47,11.1,10.72,10.24,9.06,7.94,6.7,5.56,4.22,2.88,1.95,1.49,1.58,1.73,1.88,2,2,2,2,2,2.09,2.22,2.38,2.52,2.64,2.78,,,,,,,,,,,,,,,,,11.09,10.71,10.34,10,9.5,8.36,7.12,5.98,4.84,3.81,2.99,2.17,1.78,1.9,2,2,2,2,2,2,2,2,2,2.09,2.12,3.81,,,,,,,,,,,,,,,,,10.7,10.32,10,9.86,9.34,8.56,7.83,6.82,5.68,4.75,4.03,3.31,2.8,2,2,2,2,2,2,2,2,2,2,2,2.61,5.29,,,,,,,,,,,,,,,,,10.42,10.06,9.99,9.5,9.02,8.35,7.69,6.92,6.28,5.39,4.63,3.88,3.01,2.4,2,2,2,2,2,2,2,2,2,2,,,,,,,,,,,,,,,,,,,10.15,10,9.63,9.15,8.66,8.17,7.52,6.86,6.09,5.45,4.7,3.95,3.34,2.6,2,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,10,9.65,9.28,8.79,8.43,7.82,7.34,6.69,6.04,5.4,4.78,4.15,3.54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.78,9.41,9.05,8.56,8.2,7.71,7.11,6.62,5.99,5.48,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.54,9.18,8.81,8.33,7.96,7.48,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8.97,8.94,8.58,8.22,7.73,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,7.79,9.31,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.77,8.92,7.65,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.22,11.78,11.35,10.91,10.27,9.27,8.01,6.61,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.83,13.65,13.25,12.81,12.38,11.73,11.09,10.45,9.62,7.95,6.61,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,15.58,14.94,14.27,13.61,13.27,12.88,12.66,12.38,11.91,11.27,10.42,9.58,7.9,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,16.23,16.23,15.42,14.75,13.94,13.44,13.03,12.7,12.4,12.11,11.9,11.7,11.24,10.39,9.11,7.44,0,,,,,,,,,,,,,,,,,,,,,,,,,17.66,17,16.18,15.36,14.42,13.75,13.29,12.87,12.45,12.14,11.85,11.64,11.43,11.23,11,10.16,8.64,6.97,,,,,,,,,,,,,,,,,,,,,,,17.56,17.78,18,17.05,16.12,15.17,14.23,13.5,13.04,12.63,12.21,11.88,11.59,11.38,11.18,10.97,10.85,10.72,9.43,7.76,,,,,,,,,,,,,,,,,,,,,,17.31,17.53,17.77,18,17.07,16.01,14.95,13.91,13.39,12.8,12.3,11.89,11.55,11.25,11.05,10.84,10.64,10.51,10.4,10.32,8.55,,,,,,,,,,,,,,,,,,,,16.67,17.04,17.22,17.44,17.68,17.98,17.09,15.9,14.15,12.77,12.82,12.43,11.98,11.56,11.23,10.92,10.71,10.51,10.39,10.27,10.15,10.02,9.34,,,,,,,,,,,,,,,,,,,16.13,16.75,16.91,17.11,17.32,17.6,17.91,17,14.35,11.7,10.69,11.11,10.84,10.82,11.15,10.82,10.5,10.3,10.18,10,10,9.72,9.55,9.19,8.05,,,,,,,,,,,,,,,,,15.52,16.45,16.59,16.74,16.92,17.14,17.42,16.19,15.76,12.39,9.41,8.71,9.4,9.13,9.35,9.69,10.16,10.1,10,9.86,9.51,9.16,8.99,8.82,8.64,8.45,,,,,,,,,,,,,,,,,15.81,16.28,16.36,16.51,16.66,16.51,14.55,13.33,11.96,10.42,6.49,7.13,7.43,7.41,7.63,8.34,9.25,9.68,9.11,8.95,8.6,8.44,8.27,8.08,7.9,7.9,,,,,,,,,,,,,,,,,16.05,16.05,16.13,16.21,16.36,14.12,12.1,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,7.82,8.24,8.21,7.86,7.7,7.53,7.53,7.34,7.34,7.16,,,,,,,,,,,,,,,,,,15.5,15.73,15.95,15.09,12.76,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.8,6.38,6.96,7.13,6.96,6.79,6.79,6.6,6.6,6.61,6.61,,,,,,,,,,,,,,,,,,14.75,14.87,14.72,13.63,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,4.34,5.09,5.83,6.24,5.9,5.9,5.9,5.9,5.9,5.9,5.9,,,,,,,,,,,,,,,,,,14.01,14.02,13.02,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,2.7,3.55,4.32,5.08,5.56,5.4,5.19,5.19,5.33,5.33,5.33,5.33,,,,,,,,,,,,,,,,,,13.24,13,11.75,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,2.05,3.07,3.78,4.63,4.65,4.79,4.75,4.62,4.62,4.76,4.76,4.91,,,,,,,,,,,,,,,,,,12.44,12.11,10.48,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,1.43,1.65,2.58,3.46,3.71,3.99,4,4.14,4.1,4.05,4.2,4.34,4.34,,,,,,,,,,,,,,,,,,11.75,11.22,9.59,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,1.36,1.57,1.82,2.15,2.64,2.9,3.19,3.32,3.46,3.62,3.5,3.63,3.77,3.91,,,,,,,,,,,,,,,,,,11.22,10.74,9.11,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,1.51,1.72,1.92,2,2,2.22,2.51,2.64,2.93,2.94,3.07,3.06,3.35,3.89,,,,,,,,,,,,,,,,,,10.72,10.24,9.06,7.94,6.7,5.56,4.22,2.88,1.95,1.49,1.58,1.73,1.88,2,2,2,2,2,2.09,2.22,2.38,2.52,2.64,2.78,4.97,,,,,,,,,,,,,,,,,,10.34,10,9.5,8.36,7.12,5.98,4.84,3.81,2.99,2.17,1.78,1.9,2,2,2,2,2,2,2,,,,,,,,,,,,,,,,,,,,,,,,10,9.86,9.34,8.56,7.83,6.82,5.68,4.75,4.03,3.31,2.8,2,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.99,9.5,9.02,8.35,7.69,6.92,6.28,5.39,4.63,3.88,3.01,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.63,9.15,8.66,8.17,7.52,6.86,6.09,5.45,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.28,8.79,8.43,7.82,7.34,6.69,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.05,8.56,8.2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8.81,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,7.29,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10.96,10.53,9.77,8.92,7.65,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.66,12.22,11.78,11.35,10.91,10.27,9.27,8.01,6.61,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,13.98,13.83,13.65,13.25,12.81,12.38,11.73,11.09,10.45,9.62,7.95,6.61,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,15.44,15.58,14.94,14.27,13.61,13.27,12.88,12.66,12.38,11.91,11.27,10.42,9.58,7.9,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,16.71,16.23,15.42,14.75,13.94,13.44,13.03,12.7,12.4,12.11,11.9,11.7,11.24,10.39,9.11,7.44,0,0,,,,,,,,,,,,,,,,,,,,,,,17.23,17.66,17,16.18,15.36,14.42,13.75,13.29,12.87,12.45,12.14,11.85,11.64,11.43,11.23,11,10.16,8.64,6.97,0,,,,,,,,,,,,,,,,,,,,,16.85,17.56,17.78,18,17.05,16.12,15.17,14.23,13.5,13.04,12.63,12.21,11.88,11.59,11.38,11.18,10.97,10.85,10.72,9.43,7.76,0,,,,,,,,,,,,,,,,,,,,16.89,17.31,17.53,17.77,18,17.07,16.01,14.95,13.91,13.39,12.8,12.3,11.89,11.55,11.25,11.05,10.84,10.64,10.51,10.4,10.32,8.55,6.89,,,,,,,,,,,,,,,,,,,16.67,17.04,17.22,17.44,17.68,17.98,17.09,15.9,14.15,12.77,12.82,12.43,11.98,11.56,11.23,10.92,10.71,10.51,10.39,10.27,10.15,10.02,9.34,7.68,,,,,,,,,,,,,,,,,,,16.75,16.91,17.11,17.32,17.6,17.91,17,14.35,11.7,10.69,11.11,10.84,10.82,11.15,10.82,10.5,10.3,10.18,10,10,9.72,9.55,9.19,8.05,,,,,,,,,,,,,,,,,,,16.59,16.74,16.92,17.14,17.42,16.19,15.76,12.39,9.41,8.71,9.4,9.13,9.35,9.69,10.16,10.1,10,9.86,9.51,9.16,8.99,8.82,8.64,8.45,,,,,,,,,,,,,,,,,,,16.36,16.51,16.66,16.51,14.55,13.33,11.96,10.42,6.49,7.13,7.43,7.41,7.63,8.34,9.25,9.68,9.11,8.95,8.6,8.44,8.27,8.08,7.9,7.9,7.14,,,,,,,,,,,,,,,,,,16.13,16.21,16.36,14.12,12.1,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,7.82,8.24,8.21,7.86,7.7,7.53,7.53,7.34,7.34,7.16,7.11,,,,,,,,,,,,,,,,,,15.73,15.95,15.09,12.76,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.8,6.38,6.96,7.13,6.96,6.79,6.79,6.6,6.6,6.61,6.61,6.42,,,,,,,,,,,,,,,,,,14.87,14.72,13.63,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,4.34,5.09,5.83,6.24,5.9,5.9,5.9,5.9,5.9,5.9,5.9,5.9,,,,,,,,,,,,,,,,,,14.02,13.02,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,2.7,3.55,4.32,5.08,5.56,5.4,5.19,5.19,5.33,5.33,5.33,5.33,5.47,,,,,,,,,,,,,,,,,,13,11.75,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,2.05,3.07,3.78,4.63,4.65,4.79,4.75,4.62,4.62,4.76,4.76,4.91,4.91,,,,,,,,,,,,,,,,,,12.11,10.48,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,1.43,1.65,2.58,3.46,3.71,3.99,4,4.14,4.1,4.05,4.2,4.34,4.34,,,,,,,,,,,,,,,,,,,11.22,9.59,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,1.36,1.57,1.82,2.15,2.64,2.9,3.19,3.32,3.46,3.62,3.5,3.63,3.77,3.91,,,,,,,,,,,,,,,,,,,10.74,9.11,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,1.51,1.72,1.92,2,2,2.22,2.51,2.64,,,,,,,,,,,,,,,,,,,,,,,,,10.24,9.06,7.94,6.7,5.56,4.22,2.88,1.95,1.49,1.58,1.73,1.88,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10,9.5,8.36,7.12,5.98,4.84,3.81,2.99,2.17,1.78,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.86,9.34,8.56,7.83,6.82,5.68,4.75,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.5,9.02,8.35,7.69,6.92,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.15,8.66,8.66,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.01,8.15,7.29,0,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.4,10.96,10.53,9.77,8.92,7.65,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,12.89,12.66,12.22,11.78,11.35,10.91,10.27,9.27,8.01,6.61,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,14.15,13.98,13.83,13.65,13.25,12.81,12.38,11.73,11.09,10.45,9.62,7.95,6.61,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,15.31,15.44,15.58,14.94,14.27,13.61,13.27,12.88,12.66,12.38,11.91,11.27,10.42,9.58,7.9,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,16.28,16.71,16.23,15.42,14.75,13.94,13.44,13.03,12.7,12.4,12.11,11.9,11.7,11.24,10.39,9.11,7.44,0,0,0,,,,,,,,,,,,,,,,,,,,,16.5,17.23,17.66,17,16.18,15.36,14.42,13.75,13.29,12.87,12.45,12.14,11.85,11.64,11.43,11.23,11,10.16,8.64,6.97,0,0,,,,,,,,,,,,,,,,,,,,16.85,17.56,17.78,18,17.05,16.12,15.17,14.23,13.5,13.04,12.63,12.21,11.88,11.59,11.38,11.18,10.97,10.85,10.72,9.43,7.76,0,0,,,,,,,,,,,,,,,,,,,,17.31,17.53,17.77,18,17.07,16.01,14.95,13.91,13.39,12.8,12.3,11.89,11.55,11.25,11.05,10.84,10.64,10.51,10.4,10.32,8.55,6.89,0,,,,,,,,,,,,,,,,,,,,17.22,17.44,17.68,17.98,17.09,15.9,14.15,12.77,12.82,12.43,11.98,11.56,11.23,10.92,10.71,10.51,10.39,10.27,10.15,10.02,9.34,7.68,0,,,,,,,,,,,,,,,,,,,,17.11,17.32,17.6,17.91,17,14.35,11.7,10.69,11.11,10.84,10.82,11.15,10.82,10.5,10.3,10.18,10,10,9.72,9.55,9.19,8.05,0,,,,,,,,,,,,,,,,,,,,16.92,17.14,17.42,16.19,15.76,12.39,9.41,8.71,9.4,9.13,9.35,9.69,10.16,10.1,10,9.86,9.51,9.16,8.99,8.82,8.64,8.45,6.76,,,,,,,,,,,,,,,,,,,,16.66,16.51,14.55,13.33,11.96,10.42,6.49,7.13,7.43,7.41,7.63,8.34,9.25,9.68,9.11,8.95,8.6,8.44,8.27,8.08,7.9,7.9,7.14,,,,,,,,,,,,,,,,,,,,16.36,14.12,12.1,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,7.82,8.24,8.21,7.86,7.7,7.53,7.53,7.34,7.34,7.16,7.11,,,,,,,,,,,,,,,,,,,,15.09,12.76,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.8,6.38,6.96,7.13,6.96,6.79,6.79,6.6,6.6,6.61,6.61,6.42,,,,,,,,,,,,,,,,,,,,13.63,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,4.34,5.09,5.83,6.24,5.9,5.9,5.9,5.9,5.9,5.9,5.9,5.9,,,,,,,,,,,,,,,,,,,,11.55,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,2.7,3.55,4.32,5.08,5.56,5.4,5.19,5.19,5.33,5.33,5.33,5.33,5.47,,,,,,,,,,,,,,,,,,,,9.9,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,2.05,3.07,3.78,4.63,4.65,4.79,4.75,4.62,4.62,4.76,4.76,4.91,,,,,,,,,,,,,,,,,,,,,8.64,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,1.43,1.65,2.58,3.46,3.71,3.99,4,,,,,,,,,,,,,,,,,,,,,,,,,,,7.78,6.11,4.72,3.06,1.52,0.99,1.04,1.13,1.36,1.57,1.82,1.82,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,7.59,6.38,4.93,3.59,2.04,1.24,1.24,1.34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,7.94,6.7,5.56,4.22,2.88,1.95,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8.36,7.12,5.98,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8.56,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.01,8.15,7.29,0,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11.4,10.96,10.53,9.77,8.92,7.65,0,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,12.89,12.89,12.66,12.22,11.78,11.35,10.91,10.27,9.27,8.01,6.61,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,14.15,13.98,13.83,13.65,13.25,12.81,12.38,11.73,11.09,10.45,9.62,7.95,6.61,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,15.31,15.44,15.58,14.94,14.27,13.61,13.27,12.88,12.66,12.38,11.91,11.27,10.42,9.58,7.9,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,15.83,16.28,16.71,16.23,15.42,14.75,13.94,13.44,13.03,12.7,12.4,12.11,11.9,11.7,11.24,10.39,9.11,7.44,0,0,0,0,,,,,,,,,,,,,,,,,,,,16.5,17.23,17.66,17,16.18,15.36,14.42,13.75,13.29,12.87,12.45,12.14,11.85,11.64,11.43,11.23,11,10.16,8.64,6.97,0,0,0,,,,,,,,,,,,,,,,,,,,17.56,17.78,18,17.05,16.12,15.17,14.23,13.5,13.04,12.63,12.21,11.88,11.59,11.38,11.18,10.97,10.85,10.72,9.43,7.76,0,0,0,,,,,,,,,,,,,,,,,,,,17.53,17.77,18,17.07,16.01,14.95,13.91,13.39,12.8,12.3,11.89,11.55,11.25,11.05,10.84,10.64,10.51,10.4,10.32,8.55,6.89,0,0,,,,,,,,,,,,,,,,,,,,17.44,17.68,17.98,17.09,15.9,14.15,12.77,12.82,12.43,11.98,11.56,11.23,10.92,10.71,10.51,10.39,10.27,10.15,10.02,9.34,7.68,0,0,,,,,,,,,,,,,,,,,,,,17.32,17.6,17.91,17,14.35,11.7,10.69,11.11,10.84,10.82,11.15,10.82,10.5,10.3,10.18,10,10,9.72,9.55,9.19,8.05,0,0,,,,,,,,,,,,,,,,,,,,17.14,17.42,16.19,15.76,12.39,9.41,8.71,9.4,9.13,9.35,9.69,10.16,10.1,10,9.86,9.51,9.16,8.99,8.82,8.64,8.45,6.76,0,,,,,,,,,,,,,,,,,,,,16.51,14.55,13.33,11.96,10.42,6.49,7.13,7.43,7.41,7.63,8.34,9.25,9.68,9.11,8.95,8.6,8.44,8.27,8.08,7.9,7.9,7.14,0,,,,,,,,,,,,,,,,,,,,14.12,12.1,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,7.82,8.24,8.21,7.86,7.7,7.53,7.53,7.34,7.34,7.16,7.11,0,,,,,,,,,,,,,,,,,,,,12.76,9.97,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.8,6.38,6.96,7.13,6.96,6.79,6.79,6.6,6.6,6.61,6.61,6.42,0,,,,,,,,,,,,,,,,,,,,11.41,8.55,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,4.34,5.09,5.83,6.24,5.9,5.9,5.9,5.9,5.9,5.9,5.9,,,,,,,,,,,,,,,,,,,,,,10.11,8.26,5.47,1.53,0.25,0.4,0.63,0.91,1.91,2.7,3.55,4.32,5.08,5.56,5.4,5.4,,,,,,,,,,,,,,,,,,,,,,,,,,,7.87,5.67,3.05,0.77,0.5,0.57,0.8,1.03,1.25,2.05,3.07,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6.63,4.58,2.95,0.89,0.74,0.79,0.98,1.2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6.11,4.72,3.06,1.52,0.99,0.99,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6.38,4.93,3.59,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.11,9.11,7.44,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,13.75,13.75,13.29,12.87,12.45,12.14,11.85,11.64,11.43,11.23,11,10.16,8.64,6.97,0,0,0,,,,,,,,,,,,,,,,,,,,,,18,17.05,16.12,15.17,14.23,13.5,13.04,12.63,12.21,11.88,11.59,11.38,11.18,10.97,10.85,10.72,9.43,7.76,0,0,0,,,,,,,,,,,,,,,,,,,,,,18,17.07,16.01,14.95,13.91,13.39,12.8,12.3,11.89,11.55,11.25,11.05,10.84,10.64,10.51,10.4,10.32,8.55,6.89,0,0,,,,,,,,,,,,,,,,,,,,,,17.98,17.09,15.9,14.15,12.77,12.82,12.43,11.98,11.56,11.23,10.92,10.71,10.51,10.39,10.27,10.15,10.02,9.34,7.68,0,0,0,,,,,,,,,,,,,,,,,,,,,17.91,17,14.35,11.7,10.69,11.11,10.84,10.82,11.15,10.82,10.5,10.3,10.18,10,10,9.72,9.55,9.19,8.05,0,0,0,,,,,,,,,,,,,,,,,,,,,16.19,15.76,12.39,9.41,8.71,9.4,9.13,9.35,9.69,10.16,10.1,10,9.86,9.51,9.16,8.99,8.82,8.64,8.45,6.76,0,0,,,,,,,,,,,,,,,,,,,,,13.33,11.96,10.42,6.49,7.13,7.43,7.41,7.63,8.34,9.25,9.68,9.11,8.95,8.6,8.44,8.27,8.08,7.9,7.9,7.14,0,0,,,,,,,,,,,,,,,,,,,,,10.31,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,7.82,8.24,8.21,7.86,7.7,7.53,7.53,7.34,7.34,7.16,7.11,,,,,,,,,,,,,,,,,,,,,,,7.46,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.8,6.38,6.96,7.13,6.96,6.79,6.79,,,,,,,,,,,,,,,,,,,,,,,,,,,,5.7,2.85,0,0.68,1.37,2.11,2.86,3.6,4.34,5.09,5.09,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,5.47,1.53,0.25,0.4,0.63,0.91,1.91,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3.05,0.77,0.5,0.57,0.57,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2.95,0.89,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.16,9.16,8.99,8.82,,,,,,,,,,,,,,,,,,,,,,,,,,,,6.49,6.49,7.13,7.43,7.41,7.63,8.34,9.25,9.68,9.11,8.95,8.6,8.44,8.27,,,,,,,,,,,,,,,,,,,,,,,,,,,,8.14,7.5,4.36,5.54,5.34,5.44,6.61,7.55,7.82,8.24,8.21,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,5.18,3.75,2.77,2.78,3.92,5.14,5.38,5.38,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2.85,0,0.68,1.37,2.11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1.53,0.25,];
diff --git a/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/pairPreference/index.ts b/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/pairPreference/index.ts
new file mode 100644
index 0000000..e06e256
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/evaluators/colorAesthetic/pairPreference/index.ts
@@ -0,0 +1,106 @@
+import { Color } from '@antv/color-schema';
+import { colorToArray } from '../../../utils';
+import { LAB_TO_COOLNESS } from './LAB_TO_COOLNESS';
+
+// ref: Colorgorical:Creating discriminable and preferable color palettes for information visualization
+// https://github.com/connorgr/colorgorical/blob/90649656a57ce9743b00390473adce51a821cadc/src/model/c/scores/pairPreference.c
+
+// hue, lightness, and coolness weights taken from regression in Schloss & Palmer 2011 to estimate pairwise preference
+const wH = -46.42; // hueAngleDiff weight
+const wL = 47.61; // lightnessDiff weight
+const wC = 75.15; // coolness weight
+
+// These min and max values are taken from the regression normalization
+// Need to normalize based on these to verify the variables are on same range
+const cMax = 36.0;
+const cMin = 4.0;
+const hMax = 179.266981384;
+const hMin = 0.033547949;
+const lMax = 63.3673;
+const lMin = 0.0;
+
+const normalize = (d: number, high: number, low: number): number => {
+ return (d - low) / (high - low);
+};
+
+const getLabIndex = (L: number, a: number, b: number): number => {
+ // L = [0,100]; a = [-85, 100]; b = [-110, 95]
+ const iL = Math.round(L / 5);
+ const ia = Math.round((a + 85) / 5);
+ const ib = Math.round((b + 110) / 5);
+ return iL * 1596 + ia * 42 + ib;
+};
+const getCoolness = (L: number, a: number, b: number): number => {
+ const index = getLabIndex(L, a, b);
+ return LAB_TO_COOLNESS[index] || 0;
+};
+
+// Calculate the scalar needed to convert an XYZ color to Lab
+const XYZtoLab = (t: number): number => {
+ if (t > (6.0 / 29.0) ** 3) {
+ return t ** (1.0 / 3.0);
+ }
+ return (1.0 / 3.0) * (29.0 / 6.0) * (29.0 / 6.0) * t + 4.0 / 29.0;
+};
+// Calculate the scalar needed to convert an Lab color to XYZ.
+const LabToXYZ = (t: number) => {
+ return t > 6.0 / 29.0 ? t * t * t : 3.0 * (6.0 / 29) * (6.0 / 29) * (t - 4.0 / 29.0);
+};
+// Calculate the LCH cyllindrical color representation of an Lab color
+const LabToLCH = (L: number, a: number, b: number): number[] => {
+ const C = Math.sqrt(a * a + b * b);
+ let H = (Math.atan2(b, a) * 180.0) / Math.PI;
+ if (H < 0.0) H += 360.0;
+ if (H > 360.0) H = 360.0 - H;
+ return [L, C, H];
+};
+// Convert CIE Lab coordinates characterized with Illuminant D65 to CIE Lab
+// characterized with Illuminant C. This conversion is required since our model
+// relies on a D65 characterization, but Schloss and Palmer's pair preference
+// function was defined in Illuminant C characterized CIE Lab space.
+const illuminantD65LabToIlluminantCLab = (oldL: number, oldA: number, oldB: number): number[] => {
+ const ILLUMINANT_C_X = 98.074;
+ const ILLUMINANT_C_Y = 100.0;
+ const ILLUMINANT_C_Z = 118.232;
+
+ const ILLUMINANT_D65_X = 95.047;
+ const ILLUMINANT_D65_Y = 100.0;
+ const ILLUMINANT_D65_Z = 108.883;
+
+ // Derive X,Y,Z from Lab by inversing the transformation
+ const x = (1.0 / 116.0) * (oldL + 16) + (1.0 / 500.0) * oldA;
+ const y = (1.0 / 116.0) * (oldL + 16);
+ const z = (1 / 116) * (oldL + 16) - (1 / 200) * oldB;
+
+ const X = ILLUMINANT_D65_X * LabToXYZ(x);
+ const Y = ILLUMINANT_D65_Y * LabToXYZ(y);
+ const Z = ILLUMINANT_D65_Z * LabToXYZ(z);
+
+ const deconstructY = XYZtoLab(Y / ILLUMINANT_C_Y);
+ const L = 116 * deconstructY - 16;
+ const a = 500 * (XYZtoLab(X / ILLUMINANT_C_X) - deconstructY);
+ const b = 200 * (deconstructY - XYZtoLab(Z / ILLUMINANT_C_Z));
+
+ return [L, a, b];
+};
+
+export const pairPreference = (color1: Color, color2: Color): number => {
+ const [L1, a1, b1] = colorToArray(color1, 'lab');
+ const [L2, a2, b2] = colorToArray(color2, 'lab');
+ const coolness1 = getCoolness(L1, a1, b1);
+ const coolness2 = getCoolness(L2, a2, b2);
+
+ // Convert from D65 to Illuminant C Lab
+ const Lab1 = illuminantD65LabToIlluminantCLab(L1, a1, b1);
+ const Lab2 = illuminantD65LabToIlluminantCLab(L2, a2, b2);
+ // Convert Lab Illuminant C to LCH
+ const lCH1 = LabToLCH(Lab1[0], Lab1[1], Lab1[2]);
+ const lCH2 = LabToLCH(Lab2[0], Lab2[1], Lab2[2]);
+
+ const diffL = Math.abs(lCH1[0] - lCH2[0]);
+ const diffH = Math.abs(lCH1[2] - lCH2[2]);
+ const sumC = coolness1 + coolness2;
+
+ const pp = wL * normalize(diffL, lMax, lMin) + wH * normalize(diffH, hMax, hMin) + wC * normalize(sumC, cMax, cMin);
+ return pp;
+};
diff --git a/vendors/smart-color/0.2.1/src/evaluators/colorDifference/CIEDE2000.ts b/vendors/smart-color/0.2.1/src/evaluators/colorDifference/CIEDE2000.ts
new file mode 100644
index 0000000..4b34fa7
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/evaluators/colorDifference/CIEDE2000.ts
@@ -0,0 +1,74 @@
+import { Color } from '@antv/color-schema';
+import { colorToArray, rad2deg, deg2rad } from '../../utils';
+
+const hp = (x: number, y: number) => {
+ const tmphp = rad2deg(Math.atan2(x, y));
+ if (tmphp >= 0) return tmphp;
+ return tmphp + 360;
+};
+
+// ref: https://en.wikipedia.org/wiki/Color_difference#CIEDE2000
+// output range: [0, 100]
+export const CIEDE2000 = (color1: Color, color2: Color): number => {
+ // weight, usually unity
+ const kL = 1;
+ const kC = 1;
+ const kH = 1;
+ // Get L,a,b values for color
+ const [L1, a1, b1] = colorToArray(color1, 'lab');
+ const [L2, a2, b2] = colorToArray(color2, 'lab');
+
+ const C1 = Math.sqrt(a1 ** 2 + b1 ** 2);
+ const C2 = Math.sqrt(a2 ** 2 + b2 ** 2);
+ const avgC = (C1 + C2) / 2;
+
+ const p = 0.5 * (1 - Math.sqrt(avgC ** 7 / (avgC ** 7 + 25 ** 7)));
+ const a1p = (1.0 + p) * a1;
+ const a2p = (1.0 + p) * a2;
+
+ const C1p = Math.sqrt(a1p ** 2 + b1 ** 2);
+ const C2p = Math.sqrt(a2p ** 2 + b2 ** 2);
+
+ const h1p = hp(b1, a1p);
+ const h2p = hp(b2, a2p);
+
+ const dLp = L2 - L1;
+ const dCp = C2p - C1p;
+
+ let dhp: number;
+ if (Math.abs(h2p - h1p) <= 180) dhp = h2p - h1p;
+ else if (h2p - h1p < -180) dhp = h2p - h1p + 360;
+ else dhp = h2p - h1p - 360; // h2p - h1p > 180
+
+ const dHp = 2 * Math.sqrt(C1p * C2p) * Math.sin(deg2rad(dhp) / 2.0);
+ let avgHp: number;
+ if (Math.abs(h1p - h2p) <= 180) avgHp = (h1p + h2p) / 2.0;
+ else if (Math.abs(h1p - h2p) > 180 && h1p + h2p < 360) avgHp = (h1p + h2p + 360) / 2.0;
+ else avgHp = (h1p + h2p - 360) / 2.0; // Math.abs(h1p - h2p) > 180 && h1p + h2p >= 360
+
+ const avgL = (L1 + L2) / 2.0;
+ const avgCp = (C1p + C2p) / 2.0;
+ const T =
+ 1 -
+ 0.17 * Math.cos(deg2rad(avgHp - 30)) +
+ 0.24 * Math.cos(deg2rad(2 * avgHp)) +
+ 0.32 * Math.cos(deg2rad(3 * avgHp + 6)) -
+ 0.2 * Math.cos(deg2rad(4 * avgHp - 63));
+
+ const SL = 1 + (0.015 * (avgL - 50) ** 2) / Math.sqrt(20 + (avgL - 50) ** 2);
+ const SC = 1 + 0.045 * avgCp;
+ const SH = 1 + 0.015 * avgCp * T;
+
+ const RT =
+ -2 *
+ Math.sqrt(avgCp ** 7 / (avgCp ** 7 + 25.0 ** 7)) *
+ Math.sin(deg2rad(60 * Math.exp(-(((avgHp - 275) / 25) ** 2))));
+
+ const dE = Math.sqrt(
+ (dLp / (SL * kL)) ** 2 +
+ (dCp / (SC * kC)) ** 2 +
+ (dHp / (SH * kH)) ** 2 +
+ RT * (dCp / (SC * kC)) * (dHp / (SH * kH))
+ );
+ return dE;
+};
diff --git a/vendors/smart-color/0.2.1/src/evaluators/colorDifference/contrastRatio.ts b/vendors/smart-color/0.2.1/src/evaluators/colorDifference/contrastRatio.ts
new file mode 100644
index 0000000..15d76ae
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/evaluators/colorDifference/contrastRatio.ts
@@ -0,0 +1,25 @@
+import { Color } from '@antv/color-schema';
+import { colorToArray } from '../../utils';
+
+const compute = (num: number): number => {
+ const n = num / 255;
+ if (n <= 0.03928) {
+ return n / 12.92;
+ }
+ return ((n + 0.055) / 1.055) ** 2.4;
+};
+const calcRelativeLuminance = (color: Color): number => {
+ const [r, g, b] = colorToArray(color);
+ return 0.2126 * compute(r) + 0.7152 * compute(g) + 0.0722 * compute(b);
+};
+
+// ref: https://www.w3.org/TR/WCAG21/#dfn-contrast-ratio
+// Contrast ratios can range from 1 to 21 (commonly written 1:1 to 21:1).
+export const contrastRatio = (color1: Color, color2: Color): number => {
+ const L1 = calcRelativeLuminance(color1);
+ const L2 = calcRelativeLuminance(color2);
+ if (L2 > L1) {
+ return (L2 + 0.05) / (L1 + 0.05);
+ }
+ return (L1 + 0.05) / (L2 + 0.05);
+};
diff --git a/vendors/smart-color/0.2.1/src/evaluators/colorDifference/euclideanDistance.ts b/vendors/smart-color/0.2.1/src/evaluators/colorDifference/euclideanDistance.ts
new file mode 100644
index 0000000..ce77c2c
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/evaluators/colorDifference/euclideanDistance.ts
@@ -0,0 +1,9 @@
+import chroma from 'chroma-js';
+import { Color, ColorModel } from '@antv/color-schema';
+import { colorToChromaColor } from '../../utils';
+
+// Computes the Euclidean distance between two colors in a given color model (default is Lab).
+// output range: [0, 255]
+export const euclideanDistance = (color1: Color, color2: Color, colorModel: ColorModel = 'lab'): number => {
+ return chroma.distance(colorToChromaColor(color1), colorToChromaColor(color2), colorModel);
+};
diff --git a/vendors/smart-color/0.2.1/src/evaluators/colorDifference/index.ts b/vendors/smart-color/0.2.1/src/evaluators/colorDifference/index.ts
new file mode 100644
index 0000000..a8acd02
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/evaluators/colorDifference/index.ts
@@ -0,0 +1,24 @@
+import { ColorDifference } from '@src/types';
+import { WHITE } from '../../constant';
+import { colorBlend } from '../../utils';
+import { euclideanDistance } from './euclideanDistance';
+import { CIEDE2000 } from './CIEDE2000';
+import { contrastRatio } from './contrastRatio';
+
+export const colorDifference: ColorDifference = (color1, color2, configuration = { measure: 'euclidean' }) => {
+ const { measure = 'euclidean', backgroundColor = WHITE } = configuration;
+ // If the color is semi-transparent, the color will be overlapped on a white background by default for comparison
+ const overlappedColor1 = colorBlend(color1, backgroundColor);
+ const overlappedColor2 = colorBlend(color2, backgroundColor);
+ switch (measure) {
+ case 'CIEDE2000':
+ return CIEDE2000(overlappedColor1, overlappedColor2);
+ case 'euclidean':
+ // @ts-ignore
+ return euclideanDistance(overlappedColor1, overlappedColor2, configuration.colorModel);
+ case 'contrastRatio':
+ return contrastRatio(overlappedColor1, overlappedColor2);
+ default:
+ return euclideanDistance(overlappedColor1, overlappedColor2);
+ }
+};
diff --git a/vendors/smart-color/0.2.1/src/evaluators/index.ts b/vendors/smart-color/0.2.1/src/evaluators/index.ts
new file mode 100644
index 0000000..c8441e9
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/evaluators/index.ts
@@ -0,0 +1,2 @@
+export { colorDifference } from './colorDifference';
+export { colorAesthetic } from './colorAesthetic';
diff --git a/vendors/smart-color/0.2.1/src/extractors/getPaletteFromImage.ts b/vendors/smart-color/0.2.1/src/extractors/getPaletteFromImage.ts
new file mode 100644
index 0000000..483c0c1
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/extractors/getPaletteFromImage.ts
@@ -0,0 +1,73 @@
+import { Palette } from '@antv/color-schema';
+// @ts-ignore
+import quantize from 'quantize';
+import { loadImage, arrayToColor } from '../utils';
+
+// sample pixels in image
+const imageToPixels = (image: HTMLImageElement, quality: number): [number, number, number][] => {
+ const { width, height } = image;
+ const canvas = document.createElement('canvas');
+ const context = canvas.getContext('2d');
+ if (!context) return [];
+ canvas.width = width;
+ canvas.height = height;
+ context.drawImage(image, 0, 0, width, height);
+ const imageData = context.getImageData(0, 0, width, height).data;
+
+ const pixels: [number, number, number][] = [];
+ const count = width * height;
+ for (let i = 0; i < count; i += quality) {
+ const offset = i * 4;
+ const r = imageData[offset + 0];
+ const g = imageData[offset + 1];
+ const b = imageData[offset + 2];
+ const a = imageData[offset + 3];
+
+ // If pixel is mostly opaque and not white
+ if (typeof a === 'undefined' || a >= 125) {
+ if (!(r > 250 && g > 250 && b > 250)) {
+ pixels.push([r, g, b]);
+ }
+ }
+ }
+ return pixels;
+};
+
+// Get a list of colors from img url
+export async function getPaletteFromImage(
+ imgUrl: string,
+ count: number = 6,
+ quality: number = 10
+): Promise {
+ // int
+ let validCount = Math.round(count);
+ validCount = Math.max(1, validCount);
+ validCount = Math.min(50, validCount);
+ let validQuality = Math.round(quality);
+ validQuality = Math.max(1, validQuality);
+
+ return new Promise((resolve) => {
+ loadImage(imgUrl)
+ .then((img) => {
+ validQuality = Math.min(Math.floor((img.width * img.height) / validCount), validQuality);
+ const pixels = imageToPixels(img, validQuality);
+
+ // Use the median cut algorithm provided by quantize to cluster similar colors
+ // the colorCount in quantize must be larger than 1
+ // so if the validCount is equal to 1
+ // get a palette of two colors and select the base color from the largest cluster
+ const colorMap = quantize(pixels, validCount === 1 ? 2 : validCount);
+ const arrayRGB = colorMap.palette().slice(0, validCount);
+
+ resolve({
+ name: 'image',
+ semantic: null,
+ type: 'categorical',
+ colors: arrayRGB.map((rgb: [number, number, number]) => arrayToColor(rgb, 'rgb')),
+ });
+ })
+ .finally(() => {
+ resolve(undefined);
+ });
+ });
+}
diff --git a/vendors/smart-color/0.2.1/src/extractors/getPaletteFromString.ts b/vendors/smart-color/0.2.1/src/extractors/getPaletteFromString.ts
new file mode 100644
index 0000000..537545f
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/extractors/getPaletteFromString.ts
@@ -0,0 +1,18 @@
+import { Palette } from '@antv/color-schema';
+import { hexToColor } from '../utils';
+
+// Get a list of colors from string
+export function getPaletteFromString(string: string): Palette {
+ return {
+ name: 'code',
+ semantic: null,
+ type: 'categorical',
+ colors: string
+ .replace(/[^#,0-9a-fA-F]/g, '')
+ .split(',')
+ .filter((color) => color.length > 0)
+ .map((color) => {
+ return hexToColor(color);
+ }),
+ };
+}
diff --git a/vendors/smart-color/0.2.1/src/extractors/index.ts b/vendors/smart-color/0.2.1/src/extractors/index.ts
new file mode 100644
index 0000000..ca8afba
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/extractors/index.ts
@@ -0,0 +1,2 @@
+export { getPaletteFromImage } from './getPaletteFromImage';
+export { getPaletteFromString } from './getPaletteFromString';
diff --git a/vendors/smart-color/0.2.1/src/generators/achromaticGeneration.ts b/vendors/smart-color/0.2.1/src/generators/achromaticGeneration.ts
new file mode 100644
index 0000000..432e168
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/generators/achromaticGeneration.ts
@@ -0,0 +1,26 @@
+import { Color } from '@antv/color-schema';
+import { monochromaticGeneration } from './monochromaticGeneration';
+import { Generation } from './types';
+
+const BLACK: Color = {
+ model: 'rgb',
+ value: { r: 0, g: 0, b: 0 },
+};
+const WHITE: Color = {
+ model: 'rgb',
+ value: { r: 255, g: 255, b: 255 },
+};
+
+// generate sequential palette by achromatic scheme
+export const achromaticGeneration: Generation = (configuration) => {
+ const { tendency } = configuration;
+ const newConfiguration = {
+ ...configuration,
+ color: tendency === 'tint' ? BLACK : WHITE,
+ };
+ const palette = monochromaticGeneration(newConfiguration);
+ return {
+ ...palette,
+ name: 'achromatic',
+ };
+};
diff --git a/vendors/smart-color/0.2.1/src/generators/analogousGeneration.ts b/vendors/smart-color/0.2.1/src/generators/analogousGeneration.ts
new file mode 100644
index 0000000..45d19da
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/generators/analogousGeneration.ts
@@ -0,0 +1,34 @@
+import { DiscreteScalePalette } from '@antv/color-schema';
+import { colorToArray, arrayToColor, hueOffset } from '../utils';
+import { Generation } from './types';
+
+// generate sequential palette by analogous scheme
+export const analogousGeneration: Generation = (configuration) => {
+ const { count, color, tendency } = configuration;
+
+ const isTint = tendency === 'tint';
+ const [hue, saturation, value] = colorToArray(color, 'hsv');
+ const index = Math.floor(count / 2);
+ // Ref: Ant Design 3.x palette algorithm https://zhuanlan.zhihu.com/p/32422584
+ let dHue = 60 / (count - 1);
+ if (hue >= 60 && hue <= 240) {
+ // cool undertone
+ dHue = -dHue;
+ }
+ const dSaturation = (saturation - 0.1) / 3 / (count - index - 1);
+ const dValue = (value - 0.4) / 3 / index;
+ const newColors = new Array(count).fill(0).map((d, i) => {
+ const h = hueOffset(hue, dHue * (i - index));
+ const s =
+ i <= index ? Math.min(saturation + dSaturation * (index - i), 1) : saturation + 3 * dSaturation * (index - i);
+ const v = i <= index ? value - 3 * dValue * (index - i) : Math.min(value - dValue * (index - i), 1);
+ return arrayToColor([h, s, v], 'hsv');
+ });
+ const palette: DiscreteScalePalette = {
+ name: 'analogous',
+ semantic: null,
+ type: 'discrete-scale',
+ colors: isTint ? newColors : newColors.reverse(),
+ };
+ return palette;
+};
diff --git a/vendors/smart-color/0.2.1/src/generators/categoricalGeneration.ts b/vendors/smart-color/0.2.1/src/generators/categoricalGeneration.ts
new file mode 100644
index 0000000..9f0beb9
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/generators/categoricalGeneration.ts
@@ -0,0 +1,33 @@
+import { Color } from '@antv/color-schema';
+import { colorToArray, arrayToColor, hueOffset, random } from '../utils';
+
+const saturationRange: [number, number] = [0.3, 0.9];
+const valueRange: [number, number] = [0.5, 1];
+export const categoricalGenerationInHsv = (
+ color: Color,
+ dHue: number,
+ count: number,
+ colors: (Color | undefined)[] = []
+) => {
+ const [h] = colorToArray(color, 'hsv');
+ const locked = new Array(count).fill(false);
+ let placeBasicColor = colors.findIndex((c) => c && c.model === color.model && c.value === color.value) === -1;
+ const newColors = new Array(count).fill(0).map((d, i): Color => {
+ const lockedColor = colors[i];
+ if (lockedColor) {
+ locked[i] = true;
+ return lockedColor;
+ }
+ // find the first unlocked position to place the basic color
+ if (placeBasicColor) {
+ placeBasicColor = false;
+ locked[i] = true;
+ return color;
+ }
+ return arrayToColor([hueOffset(h, dHue * i), random(...saturationRange), random(...valueRange)], 'hsv');
+ });
+ return {
+ newColors,
+ locked,
+ };
+};
diff --git a/vendors/smart-color/0.2.1/src/generators/complementaryGeneration.ts b/vendors/smart-color/0.2.1/src/generators/complementaryGeneration.ts
new file mode 100644
index 0000000..0987155
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/generators/complementaryGeneration.ts
@@ -0,0 +1,33 @@
+import { DiscreteScalePalette } from '@antv/color-schema';
+import { colorToArray, arrayToColor, hueOffset, random, randomInt } from '../utils';
+import { Generation } from './types';
+import { discreteScaleGenerationInLab } from './discreteScaleGeneration';
+
+// generate diverging palette by complementary scheme
+export const complementaryGeneration: Generation = (configuration) => {
+ const { count, color } = configuration;
+
+ const [hue, saturation, value] = colorToArray(color, 'hsv');
+ const complementaryColor = arrayToColor([hueOffset(hue, 180), saturation, value], 'hsv');
+
+ const maxL = randomInt(80, 90);
+ const minL = randomInt(15, 25);
+ const halfCount = Math.floor(count / 2);
+
+ const left = discreteScaleGenerationInLab(color, halfCount, [minL, maxL]);
+ const right = discreteScaleGenerationInLab(complementaryColor, halfCount, [minL, maxL]).reverse();
+ let newColors;
+ if (count % 2 === 1) {
+ const midColor = arrayToColor([(hueOffset(hue, 180) + hue) / 2, random(0.05, 0.1), random(0.9, 0.95)], 'hsv');
+ newColors = [...left, midColor, ...right];
+ } else {
+ newColors = [...left, ...right];
+ }
+ const palette: DiscreteScalePalette = {
+ name: 'complementary',
+ semantic: null,
+ type: 'discrete-scale',
+ colors: newColors,
+ };
+ return palette;
+};
diff --git a/vendors/smart-color/0.2.1/src/generators/discreteScaleGeneration.ts b/vendors/smart-color/0.2.1/src/generators/discreteScaleGeneration.ts
new file mode 100644
index 0000000..f355034
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/generators/discreteScaleGeneration.ts
@@ -0,0 +1,18 @@
+import { Color } from '@antv/color-schema';
+import { colorToArray, arrayToColor, randomInt } from '../utils';
+
+// Fix a, b, vary L
+export const discreteScaleGenerationInLab = (
+ color: Color,
+ count: number,
+ lRange: [number, number] = [randomInt(5, 10), randomInt(90, 95)]
+): Color[] => {
+ const [L, a, b] = colorToArray(color, 'lab');
+ const minL = L <= 15 ? L : lRange[0];
+ const maxL = L >= 85 ? L : lRange[1];
+ let dLightness = (maxL - minL) / (count - 1);
+ // basic color index
+ const index = Math.ceil((L - minL) / dLightness);
+ dLightness = index === 0 ? dLightness : (L - minL) / index;
+ return new Array(count).fill(0).map((d, i) => arrayToColor([dLightness * i + minL, a, b], 'lab'));
+};
diff --git a/vendors/smart-color/0.2.1/src/generators/index.ts b/vendors/smart-color/0.2.1/src/generators/index.ts
new file mode 100644
index 0000000..4dd514d
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/generators/index.ts
@@ -0,0 +1,41 @@
+import { ColorSchemeType } from '@antv/color-schema';
+import { PaletteGeneration } from '../types';
+import { monochromaticGeneration } from './monochromaticGeneration';
+import { analogousGeneration } from './analogousGeneration';
+import { achromaticGeneration } from './achromaticGeneration';
+import { complementaryGeneration } from './complementaryGeneration';
+import { splitComplementaryGeneration } from './splitComplementaryGeneration';
+import { triadicGeneration } from './triadicGeneration';
+import { tetradicGeneration } from './tetradicGeneration';
+import { polychromaticGeneration } from './polychromaticGeneration';
+import { randomGeneration } from './randomGeneration';
+import { validateConfiguration } from './validateConfiguration';
+
+const generator: Record = {
+ monochromatic: monochromaticGeneration,
+ analogous: analogousGeneration,
+ achromatic: achromaticGeneration,
+ complementary: complementaryGeneration,
+ 'split-complementary': splitComplementaryGeneration,
+ triadic: triadicGeneration,
+ tetradic: tetradicGeneration,
+ polychromatic: polychromaticGeneration,
+ customized: randomGeneration,
+};
+
+/**
+ *
+ * @param type
+ * @param colors locked colors
+ * @param configuration
+ * @returns
+ */
+export const paletteGeneration: PaletteGeneration = (type: ColorSchemeType = 'monochromatic', configuration = {}) => {
+ // set default value
+ const newConfiguration = validateConfiguration(type, configuration);
+ try {
+ return generator[type](newConfiguration);
+ } catch (e) {
+ return randomGeneration(newConfiguration);
+ }
+};
diff --git a/vendors/smart-color/0.2.1/src/generators/monochromaticGeneration.ts b/vendors/smart-color/0.2.1/src/generators/monochromaticGeneration.ts
new file mode 100644
index 0000000..9075947
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/generators/monochromaticGeneration.ts
@@ -0,0 +1,18 @@
+import { DiscreteScalePalette } from '@antv/color-schema';
+import { Generation } from './types';
+import { discreteScaleGenerationInLab } from './discreteScaleGeneration';
+
+// generate sequential palette by monochromatic scheme
+export const monochromaticGeneration: Generation = (configuration) => {
+ const { count, color, tendency } = configuration;
+
+ const isTint = tendency === 'tint';
+ const newColors = discreteScaleGenerationInLab(color, count);
+ const palette: DiscreteScalePalette = {
+ name: 'monochromatic',
+ semantic: null,
+ type: 'discrete-scale',
+ colors: isTint ? newColors : newColors.reverse(),
+ };
+ return palette;
+};
diff --git a/vendors/smart-color/0.2.1/src/generators/polychromaticGeneration.ts b/vendors/smart-color/0.2.1/src/generators/polychromaticGeneration.ts
new file mode 100644
index 0000000..9ed11aa
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/generators/polychromaticGeneration.ts
@@ -0,0 +1,19 @@
+import { CategoricalPalette } from '@antv/color-schema';
+import { paletteOptimization } from '../optimizers';
+import { categoricalGenerationInHsv } from './categoricalGeneration';
+import { Generation } from './types';
+
+// generate categorical palette by polychromatic scheme
+export const polychromaticGeneration: Generation = (configuration) => {
+ const { count, color, colors } = configuration;
+ const dHue = 360 / count;
+ const { newColors, locked } = categoricalGenerationInHsv(color, dHue, count, colors);
+ const palette: CategoricalPalette = {
+ name: 'tetradic',
+ semantic: null,
+ type: 'categorical',
+ colors: newColors,
+ };
+
+ return paletteOptimization(palette, { locked });
+};
diff --git a/vendors/smart-color/0.2.1/src/generators/random.ts b/vendors/smart-color/0.2.1/src/generators/random.ts
new file mode 100644
index 0000000..e90e497
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/generators/random.ts
@@ -0,0 +1,8 @@
+import { arrayToColor, randomInt } from '../utils';
+
+export function randomColor() {
+ const r = randomInt(255);
+ const g = randomInt(255);
+ const b = randomInt(255);
+ return arrayToColor([r, g, b], 'rgb');
+}
diff --git a/vendors/smart-color/0.2.1/src/generators/randomGeneration.ts b/vendors/smart-color/0.2.1/src/generators/randomGeneration.ts
new file mode 100644
index 0000000..92e59ea
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/generators/randomGeneration.ts
@@ -0,0 +1,24 @@
+import { CategoricalPalette } from '@antv/color-schema';
+import { paletteOptimization } from '../optimizers';
+import { Generation } from './types';
+import { randomColor } from './random';
+
+// generate categorical palette randomly
+export const randomGeneration: Generation = (configuration) => {
+ const { count, colors } = configuration;
+ const locked: boolean[] = [];
+ const palette: CategoricalPalette = {
+ name: 'random',
+ semantic: null,
+ type: 'categorical',
+ colors: new Array(count).fill(0).map((d, i) => {
+ const lockedColor = colors[i];
+ if (lockedColor) {
+ locked[i] = true;
+ return lockedColor;
+ }
+ return randomColor();
+ }),
+ };
+ return paletteOptimization(palette, { locked });
+};
diff --git a/vendors/smart-color/0.2.1/src/generators/splitComplementaryGeneration.ts b/vendors/smart-color/0.2.1/src/generators/splitComplementaryGeneration.ts
new file mode 100644
index 0000000..18d3580
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/generators/splitComplementaryGeneration.ts
@@ -0,0 +1,18 @@
+import { CategoricalPalette } from '@antv/color-schema';
+import { paletteOptimization } from '../optimizers';
+import { categoricalGenerationInHsv } from './categoricalGeneration';
+import { Generation } from './types';
+
+// generate categorical palette by split complementary scheme
+export const splitComplementaryGeneration: Generation = (configuration) => {
+ const { count, color, colors } = configuration;
+ const dHue = 180;
+ const { newColors, locked } = categoricalGenerationInHsv(color, dHue, count, colors);
+ const palette: CategoricalPalette = {
+ name: 'tetradic',
+ semantic: null,
+ type: 'categorical',
+ colors: newColors,
+ };
+ return paletteOptimization(palette, { locked });
+};
diff --git a/vendors/smart-color/0.2.1/src/generators/tetradicGeneration.ts b/vendors/smart-color/0.2.1/src/generators/tetradicGeneration.ts
new file mode 100644
index 0000000..044beec
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/generators/tetradicGeneration.ts
@@ -0,0 +1,18 @@
+import { CategoricalPalette } from '@antv/color-schema';
+import { paletteOptimization } from '../optimizers';
+import { categoricalGenerationInHsv } from './categoricalGeneration';
+import { Generation } from './types';
+// generate categorical palette by tetradic scheme
+export const tetradicGeneration: Generation = (configuration) => {
+ const { count, color, colors } = configuration;
+ const dHue = 90;
+ const { newColors, locked } = categoricalGenerationInHsv(color, dHue, count, colors);
+ const palette: CategoricalPalette = {
+ name: 'tetradic',
+ semantic: null,
+ type: 'categorical',
+ colors: newColors,
+ };
+
+ return paletteOptimization(palette, { locked });
+};
diff --git a/vendors/smart-color/0.2.1/src/generators/triadicGeneration.ts b/vendors/smart-color/0.2.1/src/generators/triadicGeneration.ts
new file mode 100644
index 0000000..7e0f2ee
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/generators/triadicGeneration.ts
@@ -0,0 +1,18 @@
+import { CategoricalPalette } from '@antv/color-schema';
+import { paletteOptimization } from '../optimizers';
+import { categoricalGenerationInHsv } from './categoricalGeneration';
+import { Generation } from './types';
+
+// generate categorical palette by triadic scheme
+export const triadicGeneration: Generation = (configuration) => {
+ const { count, color, colors } = configuration;
+ const dHue = 120;
+ const { newColors, locked } = categoricalGenerationInHsv(color, dHue, count, colors);
+ const palette: CategoricalPalette = {
+ name: 'tetradic',
+ semantic: null,
+ type: 'categorical',
+ colors: newColors,
+ };
+ return paletteOptimization(palette, { locked });
+};
diff --git a/vendors/smart-color/0.2.1/src/generators/types.ts b/vendors/smart-color/0.2.1/src/generators/types.ts
new file mode 100644
index 0000000..d7e8d52
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/generators/types.ts
@@ -0,0 +1,6 @@
+import { Palette } from '@antv/color-schema';
+import { GeneratorConfiguration } from '../types';
+
+export type Generation = (
+ configuration: { [K in keyof GeneratorConfiguration]-?: GeneratorConfiguration[K] }
+) => Palette;
diff --git a/vendors/smart-color/0.2.1/src/generators/validateConfiguration.ts b/vendors/smart-color/0.2.1/src/generators/validateConfiguration.ts
new file mode 100644
index 0000000..952b694
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/generators/validateConfiguration.ts
@@ -0,0 +1,26 @@
+import { ColorSchemeType } from '@antv/color-schema';
+import { GeneratorConfiguration } from '../types';
+import { randomColor } from './random';
+
+const DISCRETE_SCALE_TYPES: ColorSchemeType[] = ['monochromatic'];
+export const validateConfiguration = (type: ColorSchemeType, configuration: GeneratorConfiguration) => {
+ const { count = 8, tendency = 'tint' } = configuration;
+ let { colors = [], color } = configuration;
+
+ // If the colour is not configured
+ // then select the first of the locked colors or generate a random color
+ if (!color) {
+ color = colors.find((c) => !!c && !!c.model && !!c.value) || randomColor();
+ }
+
+ // Discrete scale palette cannot be generated when colors are locked.
+ if (DISCRETE_SCALE_TYPES.includes(type)) {
+ colors = [];
+ }
+ return {
+ color,
+ colors,
+ count,
+ tendency,
+ };
+};
diff --git a/vendors/smart-color/0.2.1/src/index.ts b/vendors/smart-color/0.2.1/src/index.ts
new file mode 100644
index 0000000..a4a5cdf
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/index.ts
@@ -0,0 +1,23 @@
+export {
+ colorToArray,
+ arrayToColor,
+ colorToGray,
+ colorToHex,
+ hexToColor,
+ nameToColor,
+ colorBlend,
+ colorBrighten,
+ colorDarken,
+} from './utils';
+// color simulation
+export { colorSimulation, invertGrayscale } from './simulators';
+// palette generation
+export { paletteGeneration } from './generators';
+// palette optimization
+export { paletteOptimization } from './optimizers';
+// get palette
+export { getPaletteFromImage, getPaletteFromString } from './extractors';
+// professional test
+export { colorDifference, colorAesthetic } from './evaluators';
+export { ColorBlindnessSimulationType, SimulationType } from './types';
+export { COLOR_BLINDNESS_SIMULATION_TYPES, TENDENCIES } from './constant';
diff --git a/vendors/smart-color/0.2.1/src/optimizers/index.ts b/vendors/smart-color/0.2.1/src/optimizers/index.ts
new file mode 100644
index 0000000..e96d306
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/optimizers/index.ts
@@ -0,0 +1,77 @@
+import { Color, isContinuousPalette, isMatrixPalette } from '@antv/color-schema';
+import { WHITE } from '../constant';
+import { invertGrayscale } from '../simulators';
+import { PaletteOptimization, ColorDifferenceMeasure } from '../types';
+import { colorToGray, colorToArray, arrayToColor, cloneDeep } from '../utils';
+import { optimizePaletteByGA } from './optimizePaletteByGA';
+
+const COLOR_DIFFERENCE_DEFAULT_VALUE: Record = {
+ euclidean: 30,
+ // ref: Categorical Colormap Optimization with Visualization Case Studies
+ // suggests that [20, 25] might be the borderline zone
+ CIEDE2000: 20,
+ // WCAG, 1.4.3 Contrast (Minimum)
+ contrastRatio: 4.5,
+};
+
+const COLOR_DIFFERENCE_MAX_VALUE: Record = {
+ euclidean: 291.48,
+ CIEDE2000: 100,
+ contrastRatio: 21,
+};
+
+export const paletteOptimization: PaletteOptimization = (palette, configuration = {}) => {
+ const {
+ locked = [],
+ simulationType = 'normal',
+ threshold,
+ colorModel = 'hsv',
+ colorDifferenceMeasure = 'euclidean',
+ backgroundColor = WHITE,
+ } = configuration;
+ let newThreshold = threshold;
+ // set default value
+ if (!newThreshold) {
+ newThreshold = COLOR_DIFFERENCE_DEFAULT_VALUE[colorDifferenceMeasure];
+ }
+ // In case of grayscale mode, the maximum difference between two can be estimated directly
+ // If the set threshold is outside of this range, trim directly to save optimization time
+ if (simulationType === 'grayscale') {
+ const maxValue = COLOR_DIFFERENCE_MAX_VALUE[colorDifferenceMeasure];
+ newThreshold = Math.min(newThreshold, maxValue / palette.colors.length);
+ }
+
+ const newPalette = cloneDeep(palette);
+ if (!isMatrixPalette(newPalette) && !isContinuousPalette(newPalette)) {
+ if (simulationType === 'grayscale') {
+ const colors = newPalette.colors.map((color: Color): [number] => [colorToGray(color)]);
+ const newColors = optimizePaletteByGA(
+ colors,
+ locked,
+ simulationType,
+ newThreshold,
+ colorModel,
+ colorDifferenceMeasure,
+ backgroundColor
+ );
+ newPalette.colors.forEach((color: Color, index: number) =>
+ Object.assign(color, invertGrayscale(newColors[index][0] / 255, color))
+ );
+ } else {
+ const colors = newPalette.colors.map((color: Color) => colorToArray(color, colorModel));
+ const newColors = optimizePaletteByGA(
+ colors,
+ locked,
+ simulationType,
+ newThreshold,
+ colorModel,
+ colorDifferenceMeasure,
+ backgroundColor
+ );
+ newPalette.colors.forEach((color: Color, index: number) => {
+ Object.assign(color, arrayToColor(newColors[index], colorModel));
+ });
+ }
+ }
+ return newPalette;
+};
diff --git a/vendors/smart-color/0.2.1/src/optimizers/optimizePaletteByGA.ts b/vendors/smart-color/0.2.1/src/optimizers/optimizePaletteByGA.ts
new file mode 100644
index 0000000..c9add02
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/optimizers/optimizePaletteByGA.ts
@@ -0,0 +1,172 @@
+import { Color, ColorModel, ColorModelRange as COLOR_MODEL_RANGE } from '@antv/color-schema';
+import { ColorDifferenceMeasure, SimulationType } from '../types';
+import { arrayToColor, grayToColor, random, randomInt, cloneDeep } from '../utils';
+import { colorDifference } from '../evaluators';
+import { colorSimulation } from '../simulators';
+
+type ColorArray = [number] | [number, number, number] | [number, number, number, number];
+type Colors = ColorArray[];
+
+// Genetic algorithm configuration
+const POPULATION_NUMBER = 50;
+const CROSSOVER_RATE = 0.9;
+const MUTATION_RATE = 0.1;
+const MAX_GENERATION = 100;
+const ADAPTIVE_RANGE: [number, number] = [0.8, 1.2];
+
+type SelectionFunctionType = 'rouletteWheel' | 'tournament';
+type SelectionFunction = (fitnesses: number[]) => number;
+const rouletteWheelSelection: SelectionFunction = (fitnesses) => {
+ const sumFitness = fitnesses.reduce((a, b) => a + b);
+ let index = 0;
+ const seed = random(sumFitness);
+ let count = 0;
+ for (let i = 0; i < fitnesses.length; i += 1) {
+ count += fitnesses[i];
+ if (seed < count) {
+ index = +i;
+ }
+ }
+ return index;
+};
+const tournamentSelection: SelectionFunction = (fitnesses) => {
+ const TOURNAMENT_SIZE = 3;
+ let index = -1;
+ let maxFitness = 0;
+ for (let i = 0; i < TOURNAMENT_SIZE; i += 1) {
+ const randomIndex = randomInt(fitnesses.length - 1);
+ if (fitnesses[randomIndex] > maxFitness) {
+ index = i;
+ maxFitness = fitnesses[randomIndex];
+ }
+ }
+ return index;
+};
+const selectionFunction: Record number> = {
+ rouletteWheel: rouletteWheelSelection,
+ tournament: tournamentSelection,
+};
+const selection = (fitnesses: number[], type: SelectionFunctionType = 'tournament') => {
+ return selectionFunction[type](fitnesses);
+};
+
+const crossover = (father: Colors, mother: Colors) => {
+ const child1 = cloneDeep(father);
+ const child2 = cloneDeep(mother);
+ for (let i = 1; i < father.length; i += 2) {
+ child1[i] = mother[i];
+ child2[i] = father[i];
+ }
+ return [child1, child2];
+};
+
+const mutate = (colors: Colors, unlockedIndexs: number[], simulationType: SimulationType, colorModel: ColorModel) => {
+ const newColors = cloneDeep(colors);
+ // pick one color and change color adaptively
+ const mutateIndex = unlockedIndexs[randomInt(unlockedIndexs.length - 1)];
+ const dimensionIndex = randomInt(colors[0].length - 1);
+ let newValue = newColors[mutateIndex][dimensionIndex] * random(...ADAPTIVE_RANGE);
+ // clip
+ let range = [15, 240]; // grayscale
+ if (simulationType !== 'grayscale') {
+ range = COLOR_MODEL_RANGE[colorModel][colorModel.split('')[dimensionIndex]];
+ }
+
+ const [min, max] = range;
+ if (newValue < min) {
+ newValue = min;
+ } else if (newValue > max) {
+ newValue = max;
+ }
+
+ newColors[mutateIndex][dimensionIndex] = newValue;
+ return newColors;
+};
+
+// fitness function
+export const calFitness = (
+ colors: Colors,
+ locked: boolean[],
+ simulationType: SimulationType,
+ colorModel: ColorModel,
+ colorDifferenceMeasure: ColorDifferenceMeasure,
+ backgroundColor: Color
+): number => {
+ let newColors: Color[];
+ if (simulationType === 'grayscale') {
+ newColors = colors.map(([gray]) => grayToColor(gray));
+ } else {
+ newColors = colors.map((color) => colorSimulation(arrayToColor(color, colorModel), simulationType));
+ }
+ let minDifference = Infinity;
+ for (let i = 0; i < newColors.length; i += 1) {
+ for (let j = i + 1; j < newColors.length; j += 1) {
+ if (!(locked[i] && locked[j])) {
+ minDifference = Math.min(
+ minDifference,
+ colorDifference(newColors[i], newColors[j], { measure: colorDifferenceMeasure, backgroundColor })
+ );
+ }
+ }
+ }
+ return minDifference;
+};
+
+export const optimizePaletteByGA = (
+ colors: Colors,
+ locked: boolean[],
+ simulationType: SimulationType,
+ threshold: number,
+ colorModel: ColorModel,
+ colorDifference: ColorDifferenceMeasure,
+ backgroundColor: Color
+) => {
+ if (
+ Math.round(calFitness(colors, locked, simulationType, colorModel, colorDifference, backgroundColor)) > threshold
+ ) {
+ return colors;
+ }
+ const unlockedIndexs = new Array(colors.length)
+ .fill(0)
+ .map((d, index) => index)
+ .filter((d, index) => !locked[index]);
+
+ // Creating a new generation
+ let population = new Array(POPULATION_NUMBER)
+ .fill(0)
+ .map(() => mutate(colors, unlockedIndexs, simulationType, colorModel));
+ // Evaluating individuals
+ let fitnesses = population.map((colors) =>
+ calFitness(colors, locked, simulationType, colorModel, colorDifference, backgroundColor)
+ );
+ let bestFitness = Math.max(...fitnesses);
+ let elites = population[fitnesses.findIndex((d) => d === bestFitness)];
+ let cnt = 1;
+ while (cnt < MAX_GENERATION && Math.round(bestFitness) < threshold) {
+ // Elitist Strategy
+ const newPopulation = [elites];
+
+ for (let i = 1; i < POPULATION_NUMBER; i += 2) {
+ // Selection
+ const father = population[selection(fitnesses)];
+ const mother = population[selection(fitnesses)];
+ // Reproduction
+ let children = random() < CROSSOVER_RATE ? crossover(father, mother) : [father, mother];
+ // Mutation
+ children = children.map((child) =>
+ random() < MUTATION_RATE ? mutate(child, unlockedIndexs, simulationType, colorModel) : child
+ );
+ newPopulation.push(...children);
+ }
+
+ population = newPopulation;
+ fitnesses = population.map((colors) =>
+ calFitness(colors, locked, simulationType, colorModel, colorDifference, backgroundColor)
+ );
+ const newBestFitness = Math.max(...fitnesses);
+ bestFitness = newBestFitness;
+ elites = population[fitnesses.findIndex((d) => d === newBestFitness)];
+ cnt += 1;
+ }
+ return elites;
+};
diff --git a/vendors/smart-color/0.2.1/src/simulators/colorBlindness.ts b/vendors/smart-color/0.2.1/src/simulators/colorBlindness.ts
new file mode 100644
index 0000000..0666d04
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/simulators/colorBlindness.ts
@@ -0,0 +1,19 @@
+// @ts-ignore
+import blinder from 'color-blind';
+import { COLOR_BLINDNESS_SIMULATION_TYPES } from '../constant';
+import { ColorBlindnessSimulationType, ColorSimulation } from '../types';
+import { hexToColor, colorToHex } from '../utils';
+
+export function isColorBlindnessSimulation(type: any): type is ColorBlindnessSimulationType {
+ return type !== 'normal' && COLOR_BLINDNESS_SIMULATION_TYPES.indexOf(type) > -1;
+}
+
+// get color in color blindness simulation
+export const colorBlindnessSimulation: ColorSimulation = (color, type = 'normal') => {
+ if (type === 'normal') {
+ return { ...color };
+ }
+ const hexColor = colorToHex(color);
+ const blindColor = blinder[type](hexColor);
+ return hexToColor(blindColor);
+};
diff --git a/vendors/smart-color/0.2.1/src/simulators/grayscale.ts b/vendors/smart-color/0.2.1/src/simulators/grayscale.ts
new file mode 100644
index 0000000..1414135
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/simulators/grayscale.ts
@@ -0,0 +1,42 @@
+import { Color } from '@antv/color-schema';
+import { arrayToColor, colorToArray, colorToGray, grayToColor } from '../utils';
+import { ColorSimulation } from '../types';
+
+// get color in grayscale
+export const grayscale: ColorSimulation = (color) => {
+ const gray = colorToGray(color);
+ const [, , , alpha = 1] = colorToArray(color, 'rgba');
+ return grayToColor(gray, alpha);
+};
+
+// invert color from the gray scale value
+// grayscaleValue: [0, 1]
+export function invertGrayscale(grayscaleValue: number, color: Color): Color {
+ const [, a, b] = colorToArray(color, 'lab');
+ const [, , , alpha = 1] = colorToArray(color, 'rgba');
+ const target = grayscaleValue * 100;
+
+ let L = Math.round(target);
+ let newGray = colorToGray(arrayToColor([L, a, b], 'lab'));
+ let cnt = 25;
+
+ while (Math.round(target) !== Math.round((newGray / 255) * 100) && cnt > 0) {
+ if (target > (newGray / 255) * 100) {
+ L += 1;
+ } else {
+ L -= 1;
+ }
+ cnt -= 1;
+ newGray = colorToGray(arrayToColor([L, a, b], 'lab'));
+ }
+ if (Math.round(target) < Math.round((newGray / 255) * 100)) L -= 1;
+
+ let newColor: Color;
+ if (alpha === 1) {
+ newColor = arrayToColor([L, a, b], 'lab');
+ } else {
+ const rgb = colorToArray(arrayToColor([L, a, b], 'lab'), 'rgb');
+ newColor = arrayToColor([...rgb, alpha] as [number, number, number, number], 'rgba');
+ }
+ return { ...color, ...newColor };
+}
diff --git a/vendors/smart-color/0.2.1/src/simulators/index.ts b/vendors/smart-color/0.2.1/src/simulators/index.ts
new file mode 100644
index 0000000..1b175f0
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/simulators/index.ts
@@ -0,0 +1,13 @@
+import { ColorSimulation } from '../types';
+import { colorBlindnessSimulation } from './colorBlindness';
+import { grayscale } from './grayscale';
+
+export const colorSimulation: ColorSimulation = (color, type = 'normal') => {
+ if (type === 'grayscale') {
+ return grayscale(color);
+ }
+ return colorBlindnessSimulation(color, type);
+};
+
+export { isColorBlindnessSimulation } from './colorBlindness';
+export { invertGrayscale } from './grayscale';
diff --git a/vendors/smart-color/0.2.1/src/types.ts b/vendors/smart-color/0.2.1/src/types.ts
new file mode 100644
index 0000000..587c237
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/types.ts
@@ -0,0 +1,96 @@
+import {
+ Color,
+ Palette,
+ ColorModel,
+ ColorSchemeType,
+ CategoricalPalette,
+ DiscreteScalePalette,
+} from '@antv/color-schema';
+import {
+ COLOR_BLINDNESS_SIMULATION_TYPES,
+ TENDENCIES,
+ COLOR_DIFFERENCE_MEASURES,
+ COLOR_AESTHETIC_MEASURES,
+ BLEND_MODES,
+ SEPARABLE_BLEND_MODES,
+ NON_SEPARABLE_BLEND_MODES,
+} from './constant';
+
+// color simulation
+export type ColorBlindnessSimulationType = typeof COLOR_BLINDNESS_SIMULATION_TYPES[number];
+export type GrayscaleType = 'grayscale';
+export type SimulationType = ColorBlindnessSimulationType | GrayscaleType;
+export type ColorSimulation = (
+ color: Color,
+ // default value: 'normal'
+ type?: SimulationType
+) => Color;
+
+// professional test
+export type ColorDifferenceMeasure = typeof COLOR_DIFFERENCE_MEASURES[number];
+type ColorDifferenceGeneralConfiguration = {
+ // If the color is semi-transparent, the color will be overlapped on the backgroundColor
+ // default value: white
+ backgroundColor?: Color;
+};
+export type ColorDifferenceConfiguration = ColorDifferenceGeneralConfiguration &
+ (
+ | {
+ measure: 'euclidean';
+ // default value: 'lab'
+ colorModel?: ColorModel;
+ }
+ | {
+ measure: 'CIEDE2000' | 'contrastRatio';
+ }
+ );
+export type ColorDifference = (color1: Color, color2: Color, configuration?: ColorDifferenceConfiguration) => number;
+export type ColorAestheticMeasure = typeof COLOR_AESTHETIC_MEASURES[number];
+export type ColorAestheticConfiguration = {
+ measure: ColorAestheticMeasure;
+ // If the color is semi-transparent, the color will be overlapped on the backgroundColor
+ // default value: white
+ backgroundColor?: Color;
+};
+export type ColorAesthetic = (color1: Color, color2: Color, configuration?: ColorAestheticConfiguration) => number;
+
+// palette optimization
+export type OptimizerConfiguration = {
+ // default value: []
+ locked?: boolean[];
+ // default value: 'normal'
+ simulationType?: SimulationType;
+ threshold?: number;
+ // default value: 'hsv'
+ colorModel?: ColorModel;
+ // default value: 'euclidean'
+ colorDifferenceMeasure?: ColorDifferenceMeasure;
+ // for semi-transparent colors
+ backgroundColor?: Color;
+};
+export type PaletteOptimization = (palette: Palette, configuration?: OptimizerConfiguration) => Palette;
+
+// palette generation
+type Tendency = typeof TENDENCIES[number];
+export type GeneratorConfiguration = {
+ count?: number;
+ // basic color
+ color?: Color;
+ // locked colors
+ colors?: (Color | undefined)[];
+ tendency?: Tendency;
+};
+
+export type PaletteGeneration = (
+ // default value: monochromatic
+ type?: ColorSchemeType,
+ configuration?: GeneratorConfiguration
+) => CategoricalPalette | DiscreteScalePalette;
+
+// color compution
+export type SeparableBlendMode = typeof SEPARABLE_BLEND_MODES[number];
+export type NonSeparableBlendMode = typeof NON_SEPARABLE_BLEND_MODES[number];
+export type BlendMode = typeof BLEND_MODES[number];
+export type ColorBlend = (colorTop: Color, colorBottom: Color, mode?: BlendMode) => Color;
+export type ColorDarken = (color: Color, value?: number) => Color;
+export type ColorBrighten = (color: Color, value?: number) => Color;
diff --git a/vendors/smart-color/0.2.1/src/utils/colorComputation/colorBlend.ts b/vendors/smart-color/0.2.1/src/utils/colorComputation/colorBlend.ts
new file mode 100644
index 0000000..07cf6bc
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/utils/colorComputation/colorBlend.ts
@@ -0,0 +1,134 @@
+import { SEPARABLE_BLEND_MODES } from '../../constant';
+import { SeparableBlendMode, NonSeparableBlendMode, ColorBlend } from '../../types';
+import { colorToArray } from '../colorConversion';
+
+// ref: [wiki] https://en.wikipedia.org/wiki/Blend_modes
+// ref: [photoshop] https://www.deepskycolors.com/archivo/2010/04/21/formulas-for-Photoshop-blending-modes.html
+// ref: [photoshop] https://photoblogstop.com/photoshop/photoshop-blend-modes-explained
+// ref: [w3c] https://www.w3.org/TR/compositing/#blending css mix-blend-mode: soft-light
+type SeparableBlendFunc = (top: number, bottom: number) => number;
+const multiply: SeparableBlendFunc = (top, bottom) => (top * bottom) / 255;
+const screen: SeparableBlendFunc = (top, bottom) => top + bottom - (top * bottom) / 255;
+const hardLight: SeparableBlendFunc = (top, bottom) =>
+ top < 128 ? multiply(2 * top, bottom) : screen(2 * top - 255, bottom);
+const separableBlendFunc: Record = {
+ /** w3c */
+ normal: (top) => top,
+ darken: (top, bottom) => Math.min(top, bottom),
+ multiply,
+ colorBurn: (top, bottom) => {
+ if (top === 0) return 0;
+ return Math.max(0, 255 * (1 - (255 - bottom) / top));
+ },
+ lighten: (top, bottom) => Math.max(top, bottom),
+ screen,
+ colorDodge: (top, bottom) => {
+ if (top === 255) return 255;
+ return Math.min(255, 255 * (bottom / (255 - top)));
+ },
+ overlay: (top, bottom) => hardLight(bottom, top),
+ softLight: (top, bottom) => {
+ if (top < 128) {
+ return bottom - (1 - (2 * top) / 255) * bottom * (1 - bottom / 255);
+ }
+ const D =
+ bottom < 64 ? ((16 * (bottom / 255) - 12) * (bottom / 255) + 4) * (bottom / 255) : Math.sqrt(bottom / 255);
+ return bottom + 255 * ((2 * top) / 255 - 1) * (D - bottom / 255);
+ },
+ hardLight,
+ difference: (top, bottom) => Math.abs(top - bottom),
+ exclusion: (top, bottom) => top + bottom - (2 * top * bottom) / 255,
+
+ /** photoshop */
+ linearBurn: (top, bottom) => Math.max(top + bottom - 255, 0),
+ linearDodge: (top, bottom) => Math.min(255, top + bottom),
+ linearLight: (top, bottom) => Math.max(bottom + 2 * top - 255, 0),
+ vividLight: (top, bottom) =>
+ top < 128 ? 255 * (1 - (1 - bottom / 255) / ((2 * top) / 255)) : 255 * (bottom / 2 / (255 - top)),
+ pinLight: (top, bottom) => (top < 128 ? Math.min(bottom, 2 * top) : Math.max(bottom, 2 * top - 255)),
+};
+
+type RGBArr = [number, number, number];
+type NonSeparableBlendFunc = (top: RGBArr, bottom: RGBArr) => RGBArr;
+
+const lum = (rgb: RGBArr) => {
+ return 0.3 * rgb[0] + 0.58 * rgb[1] + 0.11 * rgb[2];
+};
+
+const clipColor = (rgb: RGBArr): RGBArr => {
+ const l = lum(rgb);
+ const min = Math.min(...rgb);
+ const max = Math.max(...rgb);
+ let color = [...rgb];
+ if (min < 0) {
+ color = color.map((value) => l + ((value - l) * l) / (l - min));
+ }
+ if (max > 255) {
+ color = color.map((value) => l + ((value - l) * (255 - l)) / (max - l));
+ }
+ return color as RGBArr;
+};
+
+const setLum = (rgb: RGBArr, l: number): RGBArr => {
+ const d = l - lum(rgb);
+ return clipColor(rgb.map((value) => value + d) as RGBArr);
+};
+
+const sat = (rgb: RGBArr) => {
+ return Math.max(...rgb) - Math.min(...rgb);
+};
+
+const setSat = (rgb: RGBArr, s: number): RGBArr => {
+ const arr = rgb.map((value, index) => ({ value, index }));
+ arr.sort((a, b) => a.value - b.value);
+ const minIndex = arr[0].index;
+ const midIndex = arr[1].index;
+ const maxIndex = arr[2].index;
+
+ const color = [...rgb];
+ if (color[maxIndex] > color[minIndex]) {
+ color[midIndex] = ((color[midIndex] - color[minIndex]) * s) / (color[maxIndex] - color[minIndex]);
+ color[maxIndex] = s;
+ } else {
+ color[midIndex] = 0;
+ color[maxIndex] = 0;
+ }
+ color[minIndex] = 0;
+ return color as RGBArr;
+};
+
+const nonSeparableBlendFunc: Record = {
+ hue: (top, bottom) => setLum(setSat(top, sat(bottom)), lum(bottom)),
+ saturation: (top, bottom) => setLum(setSat(bottom, sat(top)), lum(bottom)),
+ color: (top, bottom) => setLum(top, lum(bottom)),
+ luminosity: (top, bottom) => setLum(bottom, lum(top)),
+};
+
+export const colorBlend: ColorBlend = (colorTop, colorBottom, mode = 'normal') => {
+ const [r1, g1, b1, a1] = colorToArray(colorTop, 'rgba');
+ const [r2, g2, b2, a2] = colorToArray(colorBottom, 'rgba');
+ const rgb1: RGBArr = [r1, g1, b1];
+ const rgb2: RGBArr = [r2, g2, b2];
+ let blendRgb;
+ if (SEPARABLE_BLEND_MODES.includes(mode)) {
+ const func = separableBlendFunc[mode];
+ blendRgb = rgb1.map((num1, index) => Math.floor(func(num1, rgb2[index])));
+ } else {
+ blendRgb = nonSeparableBlendFunc[mode](rgb1, rgb2);
+ }
+
+ const a = a1 + a2 * (1 - a1);
+ const r = Math.round((a1 * (1 - a2) * r1 + a1 * a2 * blendRgb[0] + (1 - a1) * a2 * r2) / a);
+ const g = Math.round((a1 * (1 - a2) * g1 + a1 * a2 * blendRgb[1] + (1 - a1) * a2 * g2) / a);
+ const b = Math.round((a1 * (1 - a2) * b1 + a1 * a2 * blendRgb[2] + (1 - a1) * a2 * b2) / a);
+
+ if (a === 1)
+ return {
+ model: 'rgb',
+ value: { r, g, b },
+ };
+ return {
+ model: 'rgba',
+ value: { r, g, b, a },
+ };
+};
diff --git a/vendors/smart-color/0.2.1/src/utils/colorComputation/colorBrightenDarken.ts b/vendors/smart-color/0.2.1/src/utils/colorComputation/colorBrightenDarken.ts
new file mode 100644
index 0000000..c583933
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/utils/colorComputation/colorBrightenDarken.ts
@@ -0,0 +1,77 @@
+import { ColorBrighten, ColorDarken } from '@src/types';
+import { clamp } from '../helper';
+import { colorToArray } from '../colorConversion';
+
+// get darken/brighten color
+// ref: https://zhuanlan.zhihu.com/p/32422584
+const hueStep = 2;
+const saturationStep = 0.16;
+const saturationStep2 = 0.05;
+const brightnessStep1 = 0.05;
+const brightnessStep2 = 0.15;
+const lightColorCount = 5;
+const darkColorCount = 4;
+
+const getHue = (h: number, i: number, isLight: boolean): number => {
+ let hue;
+ if (h >= 60 && h <= 240) {
+ hue = isLight ? h - hueStep * i : h + hueStep * i;
+ } else {
+ hue = isLight ? h + hueStep * i : h - hueStep * i;
+ }
+ if (hue < 0) {
+ hue += 360;
+ } else if (hue >= 360) {
+ hue -= 360;
+ }
+ return Math.round(hue);
+};
+const getSaturation = (s: number, i: number, isLight: boolean): number => {
+ let saturation;
+ if (isLight) {
+ saturation = s - saturationStep * i;
+ } else if (i === darkColorCount) {
+ saturation = s + saturationStep;
+ } else {
+ saturation = s + saturationStep2 * i;
+ }
+ if (isLight && i === lightColorCount && saturation > 0.1) {
+ saturation = 0.1;
+ }
+ saturation = clamp(saturation, 0.06, 1);
+ return Number(saturation.toFixed(2));
+};
+const getValue = (v: number, i: number, isLight: boolean): number => {
+ let value;
+ if (isLight) {
+ value = v + brightnessStep1 * i;
+ } else {
+ value = v - brightnessStep2 * i;
+ }
+ value = clamp(value, 0, 1);
+ return Number(value.toFixed(2));
+};
+
+export const colorDarken: ColorDarken = (color, value = 1) => {
+ const [h, s, v] = colorToArray(color, 'hsv');
+ return {
+ model: 'hsv',
+ value: {
+ h: getHue(h, value, false),
+ s: getSaturation(s, value, false),
+ v: getValue(v, value, false),
+ },
+ };
+};
+
+export const colorBrighten: ColorBrighten = (color, value = 1) => {
+ const [h, s, v] = colorToArray(color, 'hsv');
+ return {
+ model: 'hsv',
+ value: {
+ h: getHue(h, value, true),
+ s: getSaturation(s, value, true),
+ v: getValue(v, value, true),
+ },
+ };
+};
diff --git a/vendors/smart-color/0.2.1/src/utils/colorComputation/index.ts b/vendors/smart-color/0.2.1/src/utils/colorComputation/index.ts
new file mode 100644
index 0000000..5e40559
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/utils/colorComputation/index.ts
@@ -0,0 +1,12 @@
+export { colorBlend } from './colorBlend';
+export { colorBrighten, colorDarken } from './colorBrightenDarken';
+
+export const hueOffset = (hue: number, dHue: number): number => {
+ let newHue = (hue + dHue) % 360;
+ if (newHue < 0) {
+ newHue += 360;
+ } else if (newHue >= 360) {
+ newHue -= 360;
+ }
+ return newHue;
+};
diff --git a/vendors/smart-color/0.2.1/src/utils/colorConversion.ts b/vendors/smart-color/0.2.1/src/utils/colorConversion.ts
new file mode 100644
index 0000000..dd13920
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/utils/colorConversion.ts
@@ -0,0 +1,104 @@
+import { Color, ColorModel } from '@antv/color-schema';
+import chroma, { Color as ChromaColor } from 'chroma-js';
+import { getHexByName } from './getHexByName';
+
+const isChromaColor = (color: any): color is ChromaColor => {
+ if (chroma.valid(color)) {
+ return true;
+ }
+ return false;
+};
+
+// Convert color to chroma color
+export const colorToChromaColor = (color: Color): ChromaColor => {
+ const { value } = color;
+ if (isChromaColor(value)) {
+ return chroma(value);
+ }
+ return chroma('#000');
+};
+
+// Convert color to an array in a specific color model
+export const colorToArray = (
+ color: Color,
+ colorModel: ColorModel = color.model
+): [number, number, number] | [number, number, number, number] => {
+ const chromaColor = colorToChromaColor(color);
+ if (chromaColor) {
+ return chromaColor[colorModel]();
+ }
+ return [0, 0, 0];
+};
+// Convert an array in a specific color model to color
+export const arrayToColor = (
+ array: [number] | [number, number, number] | [number, number, number, number],
+ colorModel: ColorModel = array.length === 4 ? 'rgba' : 'rgb'
+): Color => {
+ const value: any = {};
+ if (array.length === 1) {
+ const [v] = array;
+ for (let i = 0; i < colorModel.length; i += 1) {
+ value[colorModel[i]] = v;
+ }
+ } else {
+ for (let i = 0; i < colorModel.length; i += 1) {
+ value[colorModel[i]] = array[i];
+ }
+ }
+ return {
+ model: colorModel,
+ value,
+ } as Color;
+};
+
+// Convert color to gray value
+export function colorToGray(color: Color): number {
+ const [r, g, b] = colorToArray(color, 'rgb'); // [red, green, blue]
+ // Ref:https://tannerhelland.com/2011/10/01/grayscale-image-algorithm-vb6.html
+ const gray = Math.round(0.299 * r + 0.587 * g + 0.114 * b);
+ // gray value: [0, 255]
+ return gray;
+}
+// Convert gray value to color
+export function grayToColor(gray: number, alpha: number = 1): Color {
+ if (alpha === 1) {
+ return {
+ model: 'rgb',
+ value: {
+ r: gray,
+ g: gray,
+ b: gray,
+ },
+ };
+ }
+ return {
+ model: 'rgba',
+ value: {
+ r: gray,
+ g: gray,
+ b: gray,
+ a: alpha,
+ },
+ };
+}
+
+export { colorToHex } from '@antv/color-schema';
+export function hexToColor(hexValue: string): Color {
+ if (/^(#|0x)?[0-9a-fA-F]{3}$/.test(hexValue) || /^(#|0x)?[0-9a-fA-F]{6}$/.test(hexValue)) {
+ const rgb = chroma(hexValue).rgb();
+ return arrayToColor(rgb, 'rgb');
+ }
+ if (/^(#|0x)?[0-9a-fA-F]{4}$/.test(hexValue) || /^(#|0x)?[0-9a-fA-F]{8}$/.test(hexValue)) {
+ const rgba = chroma(hexValue).rgba();
+ return arrayToColor(rgba, 'rgba');
+ }
+ return {
+ model: 'rgb',
+ value: { r: 0, g: 0, b: 0 },
+ };
+}
+
+export function nameToColor(name: string): Color {
+ const hex = getHexByName(name);
+ return hexToColor(hex);
+}
diff --git a/vendors/smart-color/0.2.1/src/utils/degree.ts b/vendors/smart-color/0.2.1/src/utils/degree.ts
new file mode 100644
index 0000000..9daa8b8
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/utils/degree.ts
@@ -0,0 +1,6 @@
+export function rad2deg(n: number) {
+ return n * (180 / Math.PI);
+}
+export function deg2rad(n: number) {
+ return n * (Math.PI / 180);
+}
diff --git a/vendors/smart-color/0.2.1/src/utils/getHexByName.ts b/vendors/smart-color/0.2.1/src/utils/getHexByName.ts
new file mode 100644
index 0000000..8377da8
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/utils/getHexByName.ts
@@ -0,0 +1,152 @@
+const nameHex = {
+ 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',
+};
+// @ts-ignore
+export const getHexByName = (name: string) => nameHex[name] || '#000000';
diff --git a/vendors/smart-color/0.2.1/src/utils/helper.ts b/vendors/smart-color/0.2.1/src/utils/helper.ts
new file mode 100644
index 0000000..30458a2
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/utils/helper.ts
@@ -0,0 +1,44 @@
+export const random = (a: number = 1, b: number = 0): number => {
+ const lower = Math.min(a, b);
+ const upper = Math.max(a, b);
+ return lower + Math.random() * (upper - lower);
+};
+
+export const randomInt = (a: number = 1, b: number = 0): number => {
+ const lower = Math.ceil(Math.min(a, b));
+ const upper = Math.floor(Math.max(a, b));
+ return Math.floor(lower + Math.random() * (upper - lower + 1));
+};
+
+export const clamp = (num: number, boundOne: number, boundTwo: number) => {
+ if (!boundTwo) {
+ return Math.max(num, boundOne) === boundOne ? num : boundOne;
+ }
+ if (Math.min(num, boundOne) === num) {
+ return boundOne;
+ }
+ if (Math.max(num, boundTwo) === num) {
+ return boundTwo;
+ }
+ return num;
+};
+
+// poor version, but enough
+export const cloneDeep = (target: any): any => {
+ if (target && typeof target === 'object') {
+ const isArray = Array.isArray(target);
+ if (isArray) {
+ const cloneTarget = (target as []).map((d) => cloneDeep(d));
+ return cloneTarget;
+ }
+ // isObject
+ const cloneTarget = {};
+ const keys = Object.keys(target);
+ keys.forEach((key) => {
+ // @ts-ignore
+ cloneTarget[key] = cloneDeep(target[key]);
+ });
+ return cloneTarget;
+ }
+ return target;
+};
diff --git a/vendors/smart-color/0.2.1/src/utils/image.ts b/vendors/smart-color/0.2.1/src/utils/image.ts
new file mode 100644
index 0000000..53ad093
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/utils/image.ts
@@ -0,0 +1,14 @@
+// Load a image in a promise
+export function loadImage(url: string): Promise {
+ return new Promise((resolve, reject) => {
+ const img = new Image();
+ img.addEventListener('load', () => {
+ resolve(img);
+ });
+ img.addEventListener('error', () => {
+ reject(new Error(`Failed to load image URL: ${url}`));
+ });
+ img.crossOrigin = 'anonymous';
+ img.src = url;
+ });
+}
diff --git a/vendors/smart-color/0.2.1/src/utils/index.ts b/vendors/smart-color/0.2.1/src/utils/index.ts
new file mode 100644
index 0000000..8f795c7
--- /dev/null
+++ b/vendors/smart-color/0.2.1/src/utils/index.ts
@@ -0,0 +1,15 @@
+export { loadImage } from './image';
+export { hueOffset, colorBlend, colorBrighten, colorDarken } from './colorComputation';
+export {
+ colorToArray,
+ arrayToColor,
+ colorToGray,
+ grayToColor,
+ colorToHex,
+ hexToColor,
+ colorToChromaColor,
+ nameToColor,
+} from './colorConversion';
+
+export { random, randomInt, clamp, cloneDeep } from './helper';
+export { rad2deg, deg2rad } from './degree';
diff --git a/vendors/smart-color/LICENSE b/vendors/smart-color/LICENSE
new file mode 100644
index 0000000..a5b3635
--- /dev/null
+++ b/vendors/smart-color/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 AntV team
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/vendors/smart-color/README.md b/vendors/smart-color/README.md
new file mode 100644
index 0000000..39f2c7a
--- /dev/null
+++ b/vendors/smart-color/README.md
@@ -0,0 +1,101 @@
+
+@antv/smart-color
+
+
+
+A JavaScript library for color computation.
+
+
+## ✨ Features
+
+* **Palette Generation**: Generate categorical or discrete scale palette based on [color scheme](https://github.com/neoddish/color-palette-json-schema#colorschemetype).
+* **Palette Optimization**: Optimize palette to enhance color discriminability.
+* **Palette Extraction**: Get palettes from strings and images.
+* **Color Simulation**: Simulate color blindness and color in grayscale.
+* **Color Evaluation**: Evaluate color discriminability and aesthetics.
+* **Color Computation**: Blend colors, brighten or darken colors.
+* **Color Conversion**: Convert color into different formats.
+
+## 📦 Installation
+
+```bash
+$ npm install @antv/smart-color
+```
+
+## 🔨 Getting Started
+
+* Palette Generation
+
+```ts
+import { paletteGeneration } from '@antv/smart-color';
+
+paletteGeneration("monochromatic", {
+ color: {
+ model: "rgb",
+ value: { r: 91, g: 143, b: 249 },
+ },
+ count: 7,
+ tendency: "shade"
+});
+```
+
+
+
+
+
+* Palette Optimization
+
+```ts
+import { PaletteOptimization } from '@antv/smart-color';
+
+const palette = {
+ name: "color4",
+ semantic: null,
+ type: "categorical",
+ colors: [
+ { model: "rgb", value: { r: 101, g: 120, b: 155 }, },
+ { model: "rgb", value: { r: 91, g: 143, b: 249 }, },
+ { model: "rgb", value: { r: 97, g: 221, b: 170 }, },
+ { model: "rgb", value: { r: 246, g: 189, b: 22 }, }
+ ],
+}
+paletteOptimization(palette, {
+ locked: [true],
+ simulationType: "grayscale"
+});
+```
+
+
+
+
Before:
+
+
+
+ After:
+
+
+
+
+* Color Simulation
+
+```ts
+import { colorSimulation } from '@antv/smart-color';
+
+const color = {
+ model: "rgb",
+ value: { r: 91, g: 143, b: 249 },
+}
+colorSimulation(color, "achromatomaly");
+```
+
+
+
+
+
+## 🔗 Links
+
+* [API Reference](./docs/api/readme.md)
+
+## License
+
+MIT