ngx-color-converter
Version:
Convert your color value to different variants. Color is the aspect of things that is caused by differing qualities of light being reflected or emitted by them.
1 lines • 75.1 kB
Source Map (JSON)
{"version":3,"file":"ngx-color-converter.mjs","sources":["../../../projects/ngx-color-converter/src/lib/ngx-color-converter.service.ts","../../../projects/ngx-color-converter/src/lib/ngx-color-converter.component.ts","../../../projects/ngx-color-converter/src/public-api.ts","../../../projects/ngx-color-converter/src/ngx-color-converter.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { COLOROBJECT } from '../public-api';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgxColorConverterService {\n public values = '';\n public red: number;\n public green: number;\n public blue: number;\n public opacity: number;\n public hue: number;\n public whiteness: number;\n public blackness: number;\n public sat: number;\n public lightness: number;\n public cyan: number;\n public magenta: number;\n public yellow: number;\n public black: number;\n public ncol: number;\n public valid: any;\n public view: any;\n constructor() { }\n\n ngOnInit(): void { }\n\n public toRgbString = (red: number, green: number, blue: number) => {\n return 'rgb(' + red + ', ' + green + ', ' + blue + ')';\n };\n\n public toRgbaString = (\n red: number,\n green: number,\n blue: number,\n alpha: number\n ) => {\n return 'rgba(' + red + ', ' + green + ', ' + blue + ', ' + alpha + ')';\n };\n\n public toHwbString = (hue: number, whiteness: number, blackness: number) => {\n return (\n 'hwb(' +\n hue +\n ', ' +\n Math.round(whiteness * 100) +\n '%, ' +\n Math.round(blackness * 100) +\n '%)'\n );\n };\n\n public toHwbStringDecimal = (\n hue: number,\n whiteness: number,\n blackness: number\n ) => {\n return 'hwb(' + hue + ', ' + whiteness + ', ' + blackness + ')';\n };\n\n public toHwbaString = (\n hue: number,\n whiteness: number,\n blackness: number,\n alpha: number\n ) => {\n return (\n 'hwba(' +\n hue +\n ', ' +\n Math.round(whiteness * 100) +\n '%, ' +\n Math.round(blackness * 100) +\n '%, ' +\n alpha +\n ')'\n );\n };\n\n public toHslString = (hue: number, sat: number, lightness: number) => {\n return (\n 'hsl(' +\n hue +\n ', ' +\n Math.round(sat * 100) +\n '%, ' +\n Math.round(lightness * 100) +\n '%)'\n );\n };\n\n public toHslStringDecimal = (hue: number, sat: number, lightness: number) => {\n return 'hsl(' + hue + ', ' + sat + ', ' + lightness + ')';\n };\n\n public toHslaString = (\n hue: number,\n sat: number,\n lightness: number,\n alpha: number\n ) => {\n return (\n 'hsla(' +\n hue +\n ', ' +\n Math.round(sat * 100) +\n '%, ' +\n Math.round(lightness * 100) +\n '%, ' +\n alpha +\n ')'\n );\n };\n\n public toCmykString = (\n cyan: number,\n magenta: number,\n yellow: number,\n black: number\n ) => {\n return (\n 'cmyk(' +\n Math.round(cyan * 100) +\n '%, ' +\n Math.round(magenta * 100) +\n '%, ' +\n Math.round(yellow * 100) +\n '%, ' +\n Math.round(black * 100) +\n '%)'\n );\n };\n\n public toCmykStringDecimal = (\n cyan: number,\n magenta: number,\n yellow: number,\n black: number\n ) => {\n return 'cmyk(' + cyan + ', ' + magenta + ', ' + yellow + ', ' + black + ')';\n };\n\n public toNcolString = (\n ncol: number,\n whiteness: number,\n blackness: number\n ) => {\n return (\n ncol +\n ', ' +\n Math.round(whiteness * 100) +\n '%, ' +\n Math.round(blackness * 100) +\n '%'\n );\n };\n\n public toNcolStringDecimal = (\n ncol: number,\n whiteness: number,\n blackness: number\n ) => {\n return ncol + ', ' + whiteness + ', ' + blackness;\n };\n\n public toNcolaString = (\n ncol: number,\n whiteness: number,\n blackness: number,\n alpha: number\n ) => {\n return (\n ncol +\n ', ' +\n Math.round(whiteness * 100) +\n '%, ' +\n Math.round(blackness * 100) +\n '%, ' +\n alpha\n );\n };\n\n public toName = () => {\n let r,\n g,\n b,\n colorhexs = this.getColorArr('hexs');\n for (let i = 0; i < colorhexs.length; i++) {\n r = parseInt(colorhexs[i].substr(0, 2), 16);\n g = parseInt(colorhexs[i].substr(2, 2), 16);\n b = parseInt(colorhexs[i].substr(4, 2), 16);\n if (this.red == r && this.green == g && this.blue == b) {\n return this.getColorArr('names')[i];\n }\n }\n return '';\n };\n\n public toHexString = (red: number, green: number, blue: number) => {\n let r = this.toHex(red);\n let g = this.toHex(green);\n let b = this.toHex(blue);\n return '#' + r + g + b;\n };\n\n public toRgb = (red: number, green: number, blue: number, alpha: number) => {\n return { r: red, g: green, b: blue, a: alpha };\n };\n\n public toHsl = (\n hue: number,\n sat: number,\n lightness: number,\n alpha: number\n ) => {\n return { h: hue, s: sat, l: lightness, a: alpha };\n };\n\n public toHwb = (\n hue: number,\n whiteness: number,\n blackness: number,\n alpha: number\n ) => {\n return {\n h: hue,\n w: whiteness,\n b: blackness,\n a: alpha,\n };\n };\n\n public toCmyk = (\n cyan: number,\n magenta: number,\n yellow: number,\n black: number,\n alpha: number\n ) => {\n return {\n c: cyan,\n m: magenta,\n y: yellow,\n k: black,\n a: alpha,\n };\n };\n\n public toNcol = (\n ncol: number,\n whiteness: number,\n blackness: number,\n alpha: number\n ) => {\n return {\n ncol: ncol,\n w: whiteness,\n b: blackness,\n a: alpha,\n };\n };\n\n public isDark = (n: any) => {\n let m = n || 128;\n return (+this.red * 299 + +this.green * 587 + +this.blue * 114) / 1000 < m;\n };\n\n public saturate = (n: any) => {\n let x, rgb, color;\n x = n / 100 || 0.1;\n this.sat += x;\n if (this.sat > 1) {\n this.sat = 1;\n }\n rgb = this.hslToRgb(this.hue, this.sat, this.lightness);\n color = this.colorObject(rgb, this.opacity, this.hue, this.sat);\n this.attachValues(color);\n };\n\n public desaturate = (n: any) => {\n let x, rgb, color;\n x = n / 100 || 0.1;\n this.sat -= x;\n if (this.sat < 0) {\n this.sat = 0;\n }\n rgb = this.hslToRgb(this.hue, this.sat, this.lightness);\n color = this.colorObject(rgb, this.opacity, this.hue, this.sat);\n this.attachValues(color);\n };\n\n public lighter = (n: any) => {\n let x, rgb, color;\n x = n / 100 || 0.1;\n this.lightness += x;\n if (this.lightness > 1) {\n this.lightness = 1;\n }\n rgb = this.hslToRgb(this.hue, this.sat, this.lightness);\n color = this.colorObject(rgb, this.opacity, this.hue, this.sat);\n this.attachValues(color);\n };\n\n public darker = (n: any) => {\n let x, rgb, color;\n x = n / 100 || 0.1;\n this.lightness -= x;\n if (this.lightness < 0) {\n this.lightness = 0;\n }\n rgb = this.hslToRgb(this.hue, this.sat, this.lightness);\n color = this.colorObject(rgb, this.opacity, this.hue, this.sat);\n this.attachValues(color);\n };\n\n public attachValues = (color: any) => {\n this.red = color.red;\n this.green = color.green;\n this.blue = color.blue;\n this.hue = color.hue;\n this.sat = color.sat;\n this.lightness = color.lightness;\n this.whiteness = color.whiteness;\n this.blackness = color.blackness;\n this.cyan = color.cyan;\n this.magenta = color.magenta;\n this.yellow = color.yellow;\n this.black = color.black;\n this.ncol = color.ncol;\n this.opacity = color.opacity;\n this.valid = color.valid;\n };\n\n public toColorObject(color: any) {\n let x,\n y,\n typ,\n arr = [],\n arrlength,\n i,\n opacity,\n match,\n a,\n hue,\n sat,\n rgb,\n colornames = [],\n colorhexs = [];\n let c = color;\n c = this.ngxColorTrim(c.toLowerCase());\n x = c.substr(0, 1).toUpperCase();\n y = c.substr(1);\n a = 1;\n if (\n (x == 'R' ||\n x == 'Y' ||\n x == 'G' ||\n x == 'C' ||\n x == 'B' ||\n x == 'M' ||\n x == 'W') &&\n !isNaN(y)\n ) {\n if (c.length == 6 && c.indexOf(',') == -1) {\n } else {\n c = 'ncol(' + c + ')';\n }\n }\n if (c.length != 3 && c.length != 6 && !isNaN(c)) {\n c = 'ncol(' + c + ')';\n }\n if (c.indexOf(',') > 0 && c.indexOf('(') == -1) {\n c = 'ncol(' + c + ')';\n }\n if (\n c.substr(0, 3) == 'rgb' ||\n c.substr(0, 3) == 'hsl' ||\n c.substr(0, 3) == 'hwb' ||\n c.substr(0, 4) == 'ncol' ||\n c.substr(0, 4) == 'cmyk'\n ) {\n if (c.substr(0, 4) == 'ncol') {\n if (c.split(',').length == 4 && c.indexOf('ncola') == -1) {\n c = c.replace('ncol', 'ncola');\n }\n typ = 'ncol';\n c = c.substr(4);\n } else if (c.substr(0, 4) == 'cmyk') {\n typ = 'cmyk';\n c = c.substr(4);\n } else {\n typ = c.substr(0, 3);\n c = c.substr(3);\n }\n arrlength = 3;\n opacity = false;\n if (c.substr(0, 1).toLowerCase() == 'a') {\n arrlength = 4;\n opacity = true;\n c = c.substr(1);\n } else if (typ == 'cmyk') {\n arrlength = 4;\n if (c.split(',').length == 5) {\n arrlength = 5;\n opacity = true;\n }\n }\n c = c.replace('(', '');\n c = c.replace(')', '');\n arr = c.split(',');\n if (typ == 'rgb') {\n if (arr.length != arrlength) {\n return this.emptyObject();\n }\n for (i = 0; i < arrlength; i++) {\n if (arr[i] == '' || arr[i] == ' ') {\n arr[i] = '0';\n }\n if (arr[i].indexOf('%') > -1) {\n arr[i] = arr[i].replace('%', '');\n arr[i] = Number(arr[i] / 100);\n if (i < 3) {\n arr[i] = Math.round(arr[i] * 255);\n }\n }\n if (isNaN(arr[i])) {\n return this.emptyObject();\n }\n if (parseInt(arr[i]) > 255) {\n arr[i] = 255;\n }\n if (i < 3) {\n arr[i] = parseInt(arr[i]);\n }\n if (i == 3 && Number(arr[i]) > 1) {\n arr[i] = 1;\n }\n }\n rgb = { r: arr[0], g: arr[1], b: arr[2] };\n if (opacity == true) {\n a = Number(arr[3]);\n }\n }\n if (typ == 'hsl' || typ == 'hwb' || typ == 'ncol') {\n while (arr.length < arrlength) {\n arr.push('0');\n }\n if (typ == 'hsl' || typ == 'hwb') {\n if (parseInt(arr[0]) >= 360) {\n arr[0] = 0;\n }\n }\n for (i = 1; i < arrlength; i++) {\n if (arr[i].indexOf('%') > -1) {\n arr[i] = arr[i].replace('%', '');\n arr[i] = Number(arr[i]);\n if (isNaN(arr[i])) {\n return this.emptyObject();\n }\n arr[i] = arr[i] / 100;\n } else {\n arr[i] = Number(arr[i]);\n }\n if (Number(arr[i]) > 1) {\n arr[i] = 1;\n }\n if (Number(arr[i]) < 0) {\n arr[i] = 0;\n }\n }\n if (typ == 'hsl') {\n rgb = this.hslToRgb(arr[0], arr[1], arr[2]);\n hue = Number(arr[0]);\n sat = Number(arr[1]);\n }\n if (typ == 'hwb') {\n rgb = this.hwbToRgb(arr[0], arr[1], arr[2]);\n }\n if (typ == 'ncol') {\n rgb = this.ncolToRgb(arr[0], arr[1], arr[2]);\n }\n if (opacity == true) {\n a = Number(arr[3]);\n }\n }\n if (typ == 'cmyk') {\n while (arr.length < arrlength) {\n arr.push('0');\n }\n for (i = 0; i < arrlength; i++) {\n if (arr[i].indexOf('%') > -1) {\n arr[i] = arr[i].replace('%', '');\n arr[i] = Number(arr[i]);\n if (isNaN(arr[i])) {\n return this.emptyObject();\n }\n arr[i] = arr[i] / 100;\n } else {\n arr[i] = Number(arr[i]);\n }\n if (Number(arr[i]) > 1) {\n arr[i] = 1;\n }\n if (Number(arr[i]) < 0) {\n arr[i] = 0;\n }\n }\n rgb = this.cmykToRgb(arr[0], arr[1], arr[2], arr[3]);\n if (opacity == true) {\n a = Number(arr[4]);\n }\n }\n } else if (c.substr(0, 3) == 'ncs') {\n rgb = this.ncsToRgb(c);\n } else {\n match = false;\n colornames = this.getColorArr('names');\n for (i = 0; i < colornames.length; i++) {\n if (c.toLowerCase() == colornames[i].toLowerCase()) {\n colorhexs = this.getColorArr('hexs');\n match = true;\n rgb = {\n r: parseInt(colorhexs[i].substr(0, 2), 16),\n g: parseInt(colorhexs[i].substr(2, 2), 16),\n b: parseInt(colorhexs[i].substr(4, 2), 16),\n };\n break;\n }\n }\n if (match == false) {\n c = c.replace('#', '');\n if (c.length == 3) {\n c =\n c.substr(0, 1) +\n c.substr(0, 1) +\n c.substr(1, 1) +\n c.substr(1, 1) +\n c.substr(2, 1) +\n c.substr(2, 1);\n }\n for (i = 0; i < c.length; i++) {\n if (!this.isHex(c.substr(i, 1))) {\n return this.emptyObject();\n }\n }\n arr[0] = parseInt(c.substr(0, 2), 16);\n arr[1] = parseInt(c.substr(2, 2), 16);\n arr[2] = parseInt(c.substr(4, 2), 16);\n for (i = 0; i < 3; i++) {\n if (isNaN(arr[i])) {\n return this.emptyObject();\n }\n }\n rgb = {\n r: arr[0],\n g: arr[1],\n b: arr[2],\n };\n }\n }\n this.view = this.colorObject(rgb, a, hue, sat);\n return this.colorObject(rgb, a, hue, sat);\n }\n\n public colorObject(rgb: any, a: any, h: any, s: any): COLOROBJECT {\n let hsl, hwb, cmyk, ncol, color, hue, sat;\n if (!rgb) {\n return this.emptyObject();\n }\n if (a === null) {\n a = 1;\n }\n hsl = this.rgbToHsl(rgb.r, rgb.g, rgb.b);\n hwb = this.rgbToHwb(rgb.r, rgb.g, rgb.b);\n cmyk = this.rgbToCmyk(rgb.r, rgb.g, rgb.b);\n hue = h || hsl.h;\n sat = s || hsl.s;\n ncol = this.hueToNcol(hue);\n color = {\n red: rgb.r,\n green: rgb.g,\n blue: rgb.b,\n hue: hue,\n sat: sat,\n lightness: hsl.l,\n whiteness: hwb.w,\n blackness: hwb.b,\n cyan: cmyk.c,\n magenta: cmyk.m,\n yellow: cmyk.y,\n black: cmyk.k,\n ncol: ncol,\n opacity: a,\n valid: true,\n };\n color = this.roundDecimals(color);\n return color;\n }\n\n public emptyObject(): COLOROBJECT {\n return {\n red: 0,\n green: 0,\n blue: 0,\n hue: 0,\n sat: 0,\n lightness: 0,\n whiteness: 0,\n blackness: 0,\n cyan: 0,\n magenta: 0,\n yellow: 0,\n black: 0,\n ncol: 'R',\n opacity: 1,\n valid: false,\n };\n }\n\n public getColorArr(x: any): string[] {\n if (x == 'names') {\n return [\n 'AliceBlue',\n 'AntiqueWhite',\n 'Aqua',\n 'Aquamarine',\n 'Azure',\n 'Beige',\n 'Bisque',\n 'Black',\n 'BlanchedAlmond',\n 'Blue',\n 'BlueViolet',\n 'Brown',\n 'BurlyWood',\n 'CadetBlue',\n 'Chartreuse',\n 'Chocolate',\n 'Coral',\n 'CornflowerBlue',\n 'Cornsilk',\n 'Crimson',\n 'Cyan',\n 'DarkBlue',\n 'DarkCyan',\n 'DarkGoldenRod',\n 'DarkGray',\n 'DarkGrey',\n 'DarkGreen',\n 'DarkKhaki',\n 'DarkMagenta',\n 'DarkOliveGreen',\n 'DarkOrange',\n 'DarkOrchid',\n 'DarkRed',\n 'DarkSalmon',\n 'DarkSeaGreen',\n 'DarkSlateBlue',\n 'DarkSlateGray',\n 'DarkSlateGrey',\n 'DarkTurquoise',\n 'DarkViolet',\n 'DeepPink',\n 'DeepSkyBlue',\n 'DimGray',\n 'DimGrey',\n 'DodgerBlue',\n 'FireBrick',\n 'FloralWhite',\n 'ForestGreen',\n 'Fuchsia',\n 'Gainsboro',\n 'GhostWhite',\n 'Gold',\n 'GoldenRod',\n 'Gray',\n 'Grey',\n 'Green',\n 'GreenYellow',\n 'HoneyDew',\n 'HotPink',\n 'IndianRed',\n 'Indigo',\n 'Ivory',\n 'Khaki',\n 'Lavender',\n 'LavenderBlush',\n 'LawnGreen',\n 'LemonChiffon',\n 'LightBlue',\n 'LightCoral',\n 'LightCyan',\n 'LightGoldenRodYellow',\n 'LightGray',\n 'LightGrey',\n 'LightGreen',\n 'LightPink',\n 'LightSalmon',\n 'LightSeaGreen',\n 'LightSkyBlue',\n 'LightSlateGray',\n 'LightSlateGrey',\n 'LightSteelBlue',\n 'LightYellow',\n 'Lime',\n 'LimeGreen',\n 'Linen',\n 'Magenta',\n 'Maroon',\n 'MediumAquaMarine',\n 'MediumBlue',\n 'MediumOrchid',\n 'MediumPurple',\n 'MediumSeaGreen',\n 'MediumSlateBlue',\n 'MediumSpringGreen',\n 'MediumTurquoise',\n 'MediumVioletRed',\n 'MidnightBlue',\n 'MintCream',\n 'MistyRose',\n 'Moccasin',\n 'NavajoWhite',\n 'Navy',\n 'OldLace',\n 'Olive',\n 'OliveDrab',\n 'Orange',\n 'OrangeRed',\n 'Orchid',\n 'PaleGoldenRod',\n 'PaleGreen',\n 'PaleTurquoise',\n 'PaleVioletRed',\n 'PapayaWhip',\n 'PeachPuff',\n 'Peru',\n 'Pink',\n 'Plum',\n 'PowderBlue',\n 'Purple',\n 'RebeccaPurple',\n 'Red',\n 'RosyBrown',\n 'RoyalBlue',\n 'SaddleBrown',\n 'Salmon',\n 'SandyBrown',\n 'SeaGreen',\n 'SeaShell',\n 'Sienna',\n 'Silver',\n 'SkyBlue',\n 'SlateBlue',\n 'SlateGray',\n 'SlateGrey',\n 'Snow',\n 'SpringGreen',\n 'SteelBlue',\n 'Tan',\n 'Teal',\n 'Thistle',\n 'Tomato',\n 'Turquoise',\n 'Violet',\n 'Wheat',\n 'White',\n 'WhiteSmoke',\n 'Yellow',\n 'YellowGreen',\n ];\n }\n if (x == 'hexs') {\n return [\n 'f0f8ff',\n 'faebd7',\n '00ffff',\n '7fffd4',\n 'f0ffff',\n 'f5f5dc',\n 'ffe4c4',\n '000000',\n 'ffebcd',\n '0000ff',\n '8a2be2',\n 'a52a2a',\n 'deb887',\n '5f9ea0',\n '7fff00',\n 'd2691e',\n 'ff7f50',\n '6495ed',\n 'fff8dc',\n 'dc143c',\n '00ffff',\n '00008b',\n '008b8b',\n 'b8860b',\n 'a9a9a9',\n 'a9a9a9',\n '006400',\n 'bdb76b',\n '8b008b',\n '556b2f',\n 'ff8c00',\n '9932cc',\n '8b0000',\n 'e9967a',\n '8fbc8f',\n '483d8b',\n '2f4f4f',\n '2f4f4f',\n '00ced1',\n '9400d3',\n 'ff1493',\n '00bfff',\n '696969',\n '696969',\n '1e90ff',\n 'b22222',\n 'fffaf0',\n '228b22',\n 'ff00ff',\n 'dcdcdc',\n 'f8f8ff',\n 'ffd700',\n 'daa520',\n '808080',\n '808080',\n '008000',\n 'adff2f',\n 'f0fff0',\n 'ff69b4',\n 'cd5c5c',\n '4b0082',\n 'fffff0',\n 'f0e68c',\n 'e6e6fa',\n 'fff0f5',\n '7cfc00',\n 'fffacd',\n 'add8e6',\n 'f08080',\n 'e0ffff',\n 'fafad2',\n 'd3d3d3',\n 'd3d3d3',\n '90ee90',\n 'ffb6c1',\n 'ffa07a',\n '20b2aa',\n '87cefa',\n '778899',\n '778899',\n 'b0c4de',\n 'ffffe0',\n '00ff00',\n '32cd32',\n 'faf0e6',\n 'ff00ff',\n '800000',\n '66cdaa',\n '0000cd',\n 'ba55d3',\n '9370db',\n '3cb371',\n '7b68ee',\n '00fa9a',\n '48d1cc',\n 'c71585',\n '191970',\n 'f5fffa',\n 'ffe4e1',\n 'ffe4b5',\n 'ffdead',\n '000080',\n 'fdf5e6',\n '808000',\n '6b8e23',\n 'ffa500',\n 'ff4500',\n 'da70d6',\n 'eee8aa',\n '98fb98',\n 'afeeee',\n 'db7093',\n 'ffefd5',\n 'ffdab9',\n 'cd853f',\n 'ffc0cb',\n 'dda0dd',\n 'b0e0e6',\n '800080',\n '663399',\n 'ff0000',\n 'bc8f8f',\n '4169e1',\n '8b4513',\n 'fa8072',\n 'f4a460',\n '2e8b57',\n 'fff5ee',\n 'a0522d',\n 'c0c0c0',\n '87ceeb',\n '6a5acd',\n '708090',\n '708090',\n 'fffafa',\n '00ff7f',\n '4682b4',\n 'd2b48c',\n '008080',\n 'd8bfd8',\n 'ff6347',\n '40e0d0',\n 'ee82ee',\n 'f5deb3',\n 'ffffff',\n 'f5f5f5',\n 'ffff00',\n '9acd32',\n ];\n }\n\n return [];\n }\n\n public roundDecimals(c: any) {\n c.red = Number(c.red.toFixed(0));\n c.green = Number(c.green.toFixed(0));\n c.blue = Number(c.blue.toFixed(0));\n c.hue = Number(c.hue.toFixed(0));\n c.sat = Number(c.sat.toFixed(2));\n c.lightness = Number(c.lightness.toFixed(2));\n c.whiteness = Number(c.whiteness.toFixed(2));\n c.blackness = Number(c.blackness.toFixed(2));\n c.cyan = Number(c.cyan.toFixed(2));\n c.magenta = Number(c.magenta.toFixed(2));\n c.yellow = Number(c.yellow.toFixed(2));\n c.black = Number(c.black.toFixed(2));\n c.ncol = c.ncol.substr(0, 1) + Math.round(Number(c.ncol.substr(1)));\n c.opacity = Number(c.opacity.toFixed(2));\n return c;\n }\n\n public hslToRgb(hue: any, sat: any, light: any) {\n let t1, t2, r, g, b;\n hue = hue / 60;\n if (light <= 0.5) {\n t2 = light * (sat + 1);\n } else {\n t2 = light + sat - light * sat;\n }\n t1 = light * 2 - t2;\n r = this.hueToRgb(t1, t2, hue + 2) * 255;\n g = this.hueToRgb(t1, t2, hue) * 255;\n b = this.hueToRgb(t1, t2, hue - 2) * 255;\n return { r: r, g: g, b: b };\n }\n\n public hueToRgb(t1: any, t2: any, hue: any) {\n if (hue < 0) hue += 6;\n if (hue >= 6) hue -= 6;\n if (hue < 1) return (t2 - t1) * hue + t1;\n else if (hue < 3) return t2;\n else if (hue < 4) return (t2 - t1) * (4 - hue) + t1;\n else return t1;\n }\n\n public hwbToRgb(hue: any, white: any, black: any) {\n let i,\n rgb,\n rgbArr = [],\n tot;\n rgb = this.hslToRgb(hue, 1, 0.5);\n rgbArr[0] = rgb.r / 255;\n rgbArr[1] = rgb.g / 255;\n rgbArr[2] = rgb.b / 255;\n tot = white + black;\n if (tot > 1) {\n white = Number((white / tot).toFixed(2));\n black = Number((black / tot).toFixed(2));\n }\n for (i = 0; i < 3; i++) {\n rgbArr[i] *= 1 - white - black;\n rgbArr[i] += white;\n rgbArr[i] = Number(rgbArr[i] * 255);\n }\n return { r: rgbArr[0], g: rgbArr[1], b: rgbArr[2] };\n }\n\n public cmykToRgb(c: any, m: any, y: any, k: any) {\n let r, g, b;\n r = 255 - Math.min(1, c * (1 - k) + k) * 255;\n g = 255 - Math.min(1, m * (1 - k) + k) * 255;\n b = 255 - Math.min(1, y * (1 - k) + k) * 255;\n return { r: r, g: g, b: b };\n }\n\n public ncolToRgb(ncol: any, white: any, black: any) {\n let letter, percent, h, w, b;\n h = ncol;\n if (isNaN(ncol.substr(0, 1))) {\n letter = ncol.substr(0, 1).toUpperCase();\n percent = ncol.substr(1);\n if (percent == '') {\n percent = 0;\n }\n percent = Number(percent);\n if (isNaN(percent)) {\n return false;\n }\n if (letter == 'R') {\n h = 0 + percent * 0.6;\n }\n if (letter == 'Y') {\n h = 60 + percent * 0.6;\n }\n if (letter == 'G') {\n h = 120 + percent * 0.6;\n }\n if (letter == 'C') {\n h = 180 + percent * 0.6;\n }\n if (letter == 'B') {\n h = 240 + percent * 0.6;\n }\n if (letter == 'M') {\n h = 300 + percent * 0.6;\n }\n if (letter == 'W') {\n h = 0;\n white = 1 - percent / 100;\n black = percent / 100;\n }\n }\n return this.hwbToRgb(h, white, black);\n }\n\n public hueToNcol(hue: any): string {\n while (hue >= 360) {\n hue = hue - 360;\n }\n if (hue < 60) {\n return 'R' + hue / 0.6;\n }\n if (hue < 120) {\n return 'Y' + (hue - 60) / 0.6;\n }\n if (hue < 180) {\n return 'G' + (hue - 120) / 0.6;\n }\n if (hue < 240) {\n return 'C' + (hue - 180) / 0.6;\n }\n if (hue < 300) {\n return 'B' + (hue - 240) / 0.6;\n }\n if (hue < 360) {\n return 'M' + (hue - 300) / 0.6;\n }\n return '';\n }\n\n public ncsToRgb(ncs: any) {\n let black,\n chroma,\n bc,\n percent,\n black1,\n chroma1,\n factor1,\n blue1,\n red1,\n red2,\n green2,\n blue2,\n max,\n factor2,\n grey,\n r,\n g,\n b,\n green1: any = 0;\n ncs = this.ngxColorTrim(ncs).toUpperCase();\n ncs = ncs.replace('(', '');\n ncs = ncs.replace(')', '');\n ncs = ncs.replace('NCS', 'NCS ');\n ncs = ncs.replace(/ /g, ' ');\n if (ncs.indexOf('NCS') == -1) {\n ncs = 'NCS ' + ncs;\n }\n ncs = ncs.match(\n /^(?:NCS|NCS\\sS)\\s(\\d{2})(\\d{2})-(N|[A-Z])(\\d{2})?([A-Z])?$/\n );\n if (ncs === null) return false;\n black = parseInt(ncs[1], 10);\n chroma = parseInt(ncs[2], 10);\n bc = ncs[3];\n if (bc != 'N' && bc != 'Y' && bc != 'R' && bc != 'B' && bc != 'G') {\n return false;\n }\n percent = parseInt(ncs[4], 10) || 0;\n if (bc !== 'N') {\n black1 = 1.05 * black - 5.25;\n chroma1 = chroma;\n if (bc === 'Y' && percent <= 60) {\n red1 = 1;\n } else if (\n (bc === 'Y' && percent > 60) ||\n (bc === 'R' && percent <= 80)\n ) {\n if (bc === 'Y') {\n factor1 = percent - 60;\n } else {\n factor1 = percent + 40;\n }\n red1 = (Math.sqrt(14884 - Math.pow(factor1, 2)) - 22) / 100;\n } else if ((bc === 'R' && percent > 80) || bc === 'B') {\n red1 = 0;\n } else if (bc === 'G') {\n factor1 = percent - 170;\n red1 = (Math.sqrt(33800 - Math.pow(factor1, 2)) - 70) / 100;\n }\n if (bc === 'Y' && percent <= 80) {\n blue1 = 0;\n } else if (\n (bc === 'Y' && percent > 80) ||\n (bc === 'R' && percent <= 60)\n ) {\n if (bc === 'Y') {\n factor1 = percent - 80 + 20.5;\n } else {\n factor1 = percent + 20 + 20.5;\n }\n blue1 = (104 - Math.sqrt(11236 - Math.pow(factor1, 2))) / 100;\n } else if (\n (bc === 'R' && percent > 60) ||\n (bc === 'B' && percent <= 80)\n ) {\n if (bc === 'R') {\n factor1 = percent - 60 - 60;\n } else {\n factor1 = percent + 40 - 60;\n }\n blue1 = (Math.sqrt(10000 - Math.pow(factor1, 2)) - 10) / 100;\n } else if (\n (bc === 'B' && percent > 80) ||\n (bc === 'G' && percent <= 40)\n ) {\n if (bc === 'B') {\n factor1 = percent - 80 - 131;\n } else {\n factor1 = percent + 20 - 131;\n }\n blue1 = (122 - Math.sqrt(19881 - Math.pow(factor1, 2))) / 100;\n } else if (bc === 'G' && percent > 40) {\n blue1 = 0;\n }\n\n if (bc === 'Y') {\n green1 = (85 - (17 / 20) * percent) / 100;\n } else if (bc === 'R' && percent <= 60) {\n green1 = 0;\n } else if (bc === 'R' && percent > 60) {\n factor1 = percent - 60 + 35;\n green1 = (67.5 - Math.sqrt(5776 - Math.pow(factor1, 2))) / 100;\n } else if (bc === 'B' && percent <= 60) {\n factor1 = 1 * percent - 68.5;\n green1 = (6.5 + Math.sqrt(7044.5 - Math.pow(factor1, 2))) / 100;\n } else if (\n (bc === 'B' && percent > 60) ||\n (bc === 'G' && percent <= 60)\n ) {\n green1 = 0.9;\n } else if (bc === 'G' && percent > 60) {\n factor1 = percent - 60;\n let green1 = (90 - (1 / 8) * factor1) / 100;\n }\n factor1 = (red1 + green1 + blue1) / 3;\n red2 = ((factor1 - (red1 || 0)) * (100 - chroma1)) / 100 + (red1 || 0);\n green2 = ((factor1 - green1) * (100 - chroma1)) / 100 + green1;\n blue2 = ((factor1 - (blue1 || 0)) * (100 - chroma1)) / 100 + (blue1 || 0);\n if (red2 > green2 && red2 > blue2) {\n max = red2;\n } else if (green2 > red2 && green2 > blue2) {\n max = green2;\n } else if (blue2 > red2 && blue2 > green2) {\n max = blue2;\n } else {\n max = (red2 + green2 + blue2) / 3;\n }\n factor2 = 1 / max;\n (r = +((red2 * factor2 * (100 - black1)) / 100) * 255), 10;\n (g = +((green2 * factor2 * (100 - black1)) / 100) * 255), 10;\n (b = +((blue2 * factor2 * (100 - black1)) / 100) * 255), 10;\n if (r > 255) {\n r = 255;\n }\n if (g > 255) {\n g = 255;\n }\n if (b > 255) {\n b = 255;\n }\n if (r < 0) {\n r = 0;\n }\n if (g < 0) {\n g = 0;\n }\n if (b < 0) {\n b = 0;\n }\n } else {\n (grey = +(1 - black / 100) * 255), 10;\n if (grey > 255) {\n grey = 255;\n }\n if (grey < 0) {\n grey = 0;\n }\n r = grey;\n g = grey;\n b = grey;\n }\n return {\n r: r,\n g: g,\n b: b,\n };\n }\n\n public rgbToHsl(r: number, g: number, b: number) {\n let min,\n max,\n i,\n l,\n s,\n maxcolor,\n h,\n rgb = [];\n rgb[0] = r / 255;\n rgb[1] = g / 255;\n rgb[2] = b / 255;\n min = rgb[0];\n max = rgb[0];\n maxcolor = 0;\n for (i = 0; i < rgb.length - 1; i++) {\n if (rgb[i + 1] <= min) {\n min = rgb[i + 1];\n }\n if (rgb[i + 1] >= max) {\n max = rgb[i + 1];\n maxcolor = i + 1;\n }\n }\n if (maxcolor == 0) {\n h = (rgb[1] - rgb[2]) / (max - min);\n }\n if (maxcolor == 1) {\n h = 2 + (rgb[2] - rgb[0]) / (max - min);\n }\n if (maxcolor == 2) {\n h = 4 + (rgb[0] - rgb[1]) / (max - min);\n }\n if (isNaN(h || 0)) {\n h = 0;\n }\n h = (h || 0) * 60;\n if (h < 0) {\n h = h + 360;\n }\n l = (min + max) / 2;\n if (min == max) {\n s = 0;\n } else {\n if (l < 0.5) {\n s = (max - min) / (max + min);\n } else {\n s = (max - min) / (2 - max - min);\n }\n }\n s = s;\n return { h: h, s: s, l: l };\n }\n\n public rgbToHwb(r: number, g: number, b: number) {\n let h, w, bl;\n r = r / 255;\n g = g / 255;\n b = b / 255;\n let max = Math.max(r, g, b);\n let min = Math.min(r, g, b);\n let chroma = max - min;\n if (chroma == 0) {\n h = 0;\n } else if (r == max) {\n h = (((g - b) / chroma) % 6) * 360;\n } else if (g == max) {\n h = (((b - r) / chroma + 2) % 6) * 360;\n } else {\n h = (((r - g) / chroma + 4) % 6) * 360;\n }\n w = min;\n bl = 1 - max;\n return { h: h, w: w, b: bl };\n }\n\n public rgbToCmyk(red: number, green: number, blue: number) {\n let c, m, y, k;\n red = red / 255;\n green = green / 255;\n blue = blue / 255;\n let max = Math.max(red, green, blue);\n k = 1 - max;\n if (k == 1) {\n c = 0;\n m = 0;\n y = 0;\n } else {\n c = (1 - red - k) / (1 - k);\n m = (1 - green - k) / (1 - k);\n y = (1 - blue - k) / (1 - k);\n }\n return { c: c, m: m, y: y, k: k };\n }\n\n public toHex(n: any) {\n let hex = n.toString(16);\n while (hex.length < 2) {\n hex = '0' + hex;\n }\n return hex;\n }\n\n public cl(x: any) {\n console.log(x);\n }\n\n public ngxColorTrim(x: any) {\n return x.replace(/^\\s+|\\s+$/g, '');\n }\n\n public isHex(x: any) {\n return '0123456789ABCDEFabcdef'.indexOf(x) > -1;\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-ngx-color-converter',\n template: `\n <p>\n ngx-color-converter works!\n </p>\n `,\n styles: [],\n standalone: true\n})\nexport class NgxColorConverterComponent {\n\n}\n","/*\n * Public API Surface of ngx-color-converter\n */\n\nexport * from './lib/ngx-color-converter.service';\nexport * from './lib/ngx-color-converter.component';\n\nexport interface COLOROBJECT {\n red: number;\n green: number;\n blue: number;\n hue: number;\n sat: number;\n lightness: number;\n whiteness: number;\n blackness: number;\n cyan: number;\n magenta: number;\n yellow: number;\n black: number;\n ncol: string;\n opacity: number;\n valid: boolean;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAMa,wBAAwB,CAAA;AAkBnC,IAAA,WAAA,GAAA;QAjBO,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QAqBZ,IAAW,CAAA,WAAA,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,IAAY,KAAI;AAChE,YAAA,OAAO,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;AACzD,SAAC,CAAC;QAEK,IAAY,CAAA,YAAA,GAAG,CACpB,GAAW,EACX,KAAa,EACb,IAAY,EACZ,KAAa,KACX;AACF,YAAA,OAAO,OAAO,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC;AACzE,SAAC,CAAC;QAEK,IAAW,CAAA,WAAA,GAAG,CAAC,GAAW,EAAE,SAAiB,EAAE,SAAiB,KAAI;AACzE,YAAA,QACE,MAAM;gBACN,GAAG;gBACH,IAAI;AACJ,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;gBAC3B,KAAK;AACL,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;AAC3B,gBAAA,IAAI,EACJ;AACJ,SAAC,CAAC;QAEK,IAAkB,CAAA,kBAAA,GAAG,CAC1B,GAAW,EACX,SAAiB,EACjB,SAAiB,KACf;AACF,YAAA,OAAO,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC;AAClE,SAAC,CAAC;QAEK,IAAY,CAAA,YAAA,GAAG,CACpB,GAAW,EACX,SAAiB,EACjB,SAAiB,EACjB,KAAa,KACX;AACF,YAAA,QACE,OAAO;gBACP,GAAG;gBACH,IAAI;AACJ,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;gBAC3B,KAAK;AACL,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;gBAC3B,KAAK;gBACL,KAAK;AACL,gBAAA,GAAG,EACH;AACJ,SAAC,CAAC;QAEK,IAAW,CAAA,WAAA,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,SAAiB,KAAI;AACnE,YAAA,QACE,MAAM;gBACN,GAAG;gBACH,IAAI;AACJ,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;gBACrB,KAAK;AACL,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;AAC3B,gBAAA,IAAI,EACJ;AACJ,SAAC,CAAC;QAEK,IAAkB,CAAA,kBAAA,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,SAAiB,KAAI;AAC1E,YAAA,OAAO,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,SAAS,GAAG,GAAG,CAAC;AAC5D,SAAC,CAAC;QAEK,IAAY,CAAA,YAAA,GAAG,CACpB,GAAW,EACX,GAAW,EACX,SAAiB,EACjB,KAAa,KACX;AACF,YAAA,QACE,OAAO;gBACP,GAAG;gBACH,IAAI;AACJ,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;gBACrB,KAAK;AACL,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;gBAC3B,KAAK;gBACL,KAAK;AACL,gBAAA,GAAG,EACH;AACJ,SAAC,CAAC;QAEK,IAAY,CAAA,YAAA,GAAG,CACpB,IAAY,EACZ,OAAe,EACf,MAAc,EACd,KAAa,KACX;AACF,YAAA,QACE,OAAO;AACP,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;gBACtB,KAAK;AACL,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;gBACzB,KAAK;AACL,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;gBACxB,KAAK;AACL,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;AACvB,gBAAA,IAAI,EACJ;AACJ,SAAC,CAAC;QAEK,IAAmB,CAAA,mBAAA,GAAG,CAC3B,IAAY,EACZ,OAAe,EACf,MAAc,EACd,KAAa,KACX;AACF,YAAA,OAAO,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC;AAC9E,SAAC,CAAC;QAEK,IAAY,CAAA,YAAA,GAAG,CACpB,IAAY,EACZ,SAAiB,EACjB,SAAiB,KACf;AACF,YAAA,QACE,IAAI;gBACJ,IAAI;AACJ,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;gBAC3B,KAAK;AACL,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;AAC3B,gBAAA,GAAG,EACH;AACJ,SAAC,CAAC;QAEK,IAAmB,CAAA,mBAAA,GAAG,CAC3B,IAAY,EACZ,SAAiB,EACjB,SAAiB,KACf;YACF,OAAO,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;AACpD,SAAC,CAAC;QAEK,IAAa,CAAA,aAAA,GAAG,CACrB,IAAY,EACZ,SAAiB,EACjB,SAAiB,EACjB,KAAa,KACX;AACF,YAAA,QACE,IAAI;gBACJ,IAAI;AACJ,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;gBAC3B,KAAK;AACL,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;gBAC3B,KAAK;AACL,gBAAA,KAAK,EACL;AACJ,SAAC,CAAC;QAEK,IAAM,CAAA,MAAA,GAAG,MAAK;AACnB,YAAA,IAAI,CAAC,EACH,CAAC,EACD,CAAC,EACD,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACvC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,gBAAA,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5C,gBAAA,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5C,gBAAA,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5C,gBAAA,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;oBACtD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,EAAE,CAAC;AACZ,SAAC,CAAC;QAEK,IAAW,CAAA,WAAA,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,IAAY,KAAI;YAChE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACzB,YAAA,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,SAAC,CAAC;QAEK,IAAK,CAAA,KAAA,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,IAAY,EAAE,KAAa,KAAI;AACzE,YAAA,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;AACjD,SAAC,CAAC;QAEK,IAAK,CAAA,KAAA,GAAG,CACb,GAAW,EACX,GAAW,EACX,SAAiB,EACjB,KAAa,KACX;AACF,YAAA,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;AACpD,SAAC,CAAC;QAEK,IAAK,CAAA,KAAA,GAAG,CACb,GAAW,EACX,SAAiB,EACjB,SAAiB,EACjB,KAAa,KACX;YACF,OAAO;AACL,gBAAA,CAAC,EAAE,GAAG;AACN,gBAAA,CAAC,EAAE,SAAS;AACZ,gBAAA,CAAC,EAAE,SAAS;AACZ,gBAAA,CAAC,EAAE,KAAK;aACT,CAAC;AACJ,SAAC,CAAC;AAEK,QAAA,IAAA,CAAA,MAAM,GAAG,CACd,IAAY,EACZ,OAAe,EACf,MAAc,EACd,KAAa,EACb,KAAa,KACX;YACF,OAAO;AACL,gBAAA,CAAC,EAAE,IAAI;AACP,gBAAA,CAAC,EAAE,OAAO;AACV,gBAAA,CAAC,EAAE,MAAM;AACT,gBAAA,CAAC,EAAE,KAAK;AACR,gBAAA,CAAC,EAAE,KAAK;aACT,CAAC;AACJ,SAAC,CAAC;QAEK,IAAM,CAAA,MAAA,GAAG,CACd,IAAY,EACZ,SAAiB,EACjB,SAAiB,EACjB,KAAa,KACX;YACF,OAAO;AACL,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,CAAC,EAAE,SAAS;AACZ,gBAAA,CAAC,EAAE,SAAS;AACZ,gBAAA,CAAC,EAAE,KAAK;aACT,CAAC;AACJ,SAAC,CAAC;AAEK,QAAA,IAAA,CAAA,MAAM,GAAG,CAAC,CAAM,KAAI;AACzB,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;YACjB,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC;AAC7E,SAAC,CAAC;AAEK,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI;AAC3B,YAAA,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC;AAClB,YAAA,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;AACnB,YAAA,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACd,YAAA,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE;AAChB,gBAAA,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACd,aAAA;AACD,YAAA,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AACxD,YAAA,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC3B,SAAC,CAAC;AAEK,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,CAAM,KAAI;AAC7B,YAAA,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC;AAClB,YAAA,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;AACnB,YAAA,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACd,YAAA,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE;AAChB,gBAAA,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACd,aAAA;AACD,YAAA,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AACxD,YAAA,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC3B,SAAC,CAAC;AAEK,QAAA,IAAA,CAAA,OAAO,GAAG,CAAC,CAAM,KAAI;AAC1B,YAAA,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC;AAClB,YAAA,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;AACnB,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;AACpB,YAAA,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AACtB,gBAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACpB,aAAA;AACD,YAAA,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AACxD,YAAA,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC3B,SAAC,CAAC;AAEK,QAAA,IAAA,CAAA,MAAM,GAAG,CAAC,CAAM,KAAI;AACzB,YAAA,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC;AAClB,YAAA,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;AACnB,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;AACpB,YAAA,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;AACtB,gBAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACpB,aAAA;AACD,YAAA,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AACxD,YAAA,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC3B,SAAC,CAAC;AAEK,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,KAAU,KAAI;AACnC,YAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AACrB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AACrB,YAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;AACrB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;AACjC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;AACjC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;AACjC,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC3B,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7B,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC3B,SAAC,CAAC;KApTe;AAEjB,IAAA,QAAQ,MAAY;AAoTb,IAAA,aAAa,CAAC,KAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,EACH,CAAC,EACD,GAAG,EACH,GAAG,GAAG,EAAE,EACR,SAAS,EACT,CAAC,EACD,OAAO,EACP,KAAK,EACL,CAAC,EACD,GAAG,EACH,GAAG,EACH,GAAG,EACH,UAAU,GAAG,EAAE,EACf,SAAS,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,GAAG,KAAK,CAAC;QACd,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACvC,QAAA,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACjC,QAAA,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC,GAAG,CAAC,CAAC;QACN,IACE,CAAC,CAAC,IAAI,GAAG;AACP,YAAA,CAAC,IAAI,GAAG;AACR,YAAA,CAAC,IAAI,GAAG;AACR,YAAA,CAAC,IAAI,GAAG;AACR,YAAA,CAAC,IAAI,GAAG;AACR,YAAA,CAAC,IAAI,GAAG;YACR,CAAC,IAAI,GAAG;AACV,YAAA,CAAC,KAAK,CAAC,CAAC,CAAC,EACT;AACA,YAAA,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;AAC1C,aAAA;AAAM,iBAAA;AACL,gBAAA,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC;AACvB,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAC/C,YAAA,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC;AACvB,SAAA;AACD,QAAA,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;AAC9C,YAAA,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC;AACvB,SAAA;QACD,IACE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK;YACvB,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK;YACvB,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK;YACvB,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM;YACxB,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,EACxB;YACA,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE;gBAC5B,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;oBACxD,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAChC,iBAAA;gBACD,GAAG,GAAG,MAAM,CAAC;AACb,gBAAA,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACjB,aAAA;iBAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE;gBACnC,GAAG,GAAG,MAAM,CAAC;AACb,gBAAA,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACjB,aAAA;AAAM,iBAAA;gBACL,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,gBAAA,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACjB,aAAA;YACD,SAAS,GAAG,CAAC,CAAC;YACd,OAAO,GAAG,KAAK,CAAC;AAChB,YAAA,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,GAAG,EAAE;gBACvC,SAAS,GAAG,CAAC,CAAC;gBACd,OAAO,GAAG,IAAI,CAAC;AACf,gBAAA,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACjB,aAAA;iBAAM,IAAI,GAAG,IAAI,MAAM,EAAE;gBACxB,SAAS,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC5B,SAAS,GAAG,CAAC,CAAC;oBACd,OAAO,GAAG,IAAI,CAAC;AAChB,iBAAA;AACF,aAAA;YACD,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACvB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACvB,YAAA,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,IAAI,GAAG,IAAI,KAAK,EAAE;AAChB,gBAAA,IAAI,GAAG,CAAC,MAAM,IAAI,SAAS,EAAE;AAC3B,oBAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,iBAAA;gBACD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AAC9B,oBAAA,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AACjC,wBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACd,qBAAA;AACD,oBAAA,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AAC5B,wBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACjC,wBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;wBAC9B,IAAI,CAAC,GAAG,CAAC,EAAE;AACT,4BAAA,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACnC,yBAAA;AACF,qBAAA;AACD,oBAAA,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACjB,wBAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,qBAAA;oBACD,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;AAC1B,wBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACd,qBAAA;oBACD,IAAI,CAAC,GAAG,CAAC,EAAE;wBACT,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,qBAAA;AACD,oBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAChC,wBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACZ,qBAAA;AACF,iBAAA;gBACD,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1C,IAAI,OAAO,IAAI,IAAI,EAAE;oBACnB,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,iBAAA;AACF,aAAA;YACD,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AACjD,gBAAA,OAAO,GAAG,CAAC,MAAM,GAAG,SAAS,EAAE;AAC7B,oBAAA,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,iBAAA;AACD,gBAAA,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE;oBAChC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AAC3B,wBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACZ,qBAAA;AACF,iBAAA;gBACD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AAC9B,oBAAA,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AAC5B,wBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBACjC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,wBAAA,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACjB,4BAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,yBAAA;wBACD,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACvB,qBAAA;AAAM,yBAAA;wBACL,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,qBAAA;oBACD,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACtB,wBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACZ,qBAAA;oBACD,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACtB,wBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACZ,qBAAA;AACF,iBAAA;gBACD,IAAI,GAAG,IAAI,KAAK,EAAE;oBAChB,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5C,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrB,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,iBAAA;gBACD,IAAI,GAAG,IAAI,KAAK,EAAE;oBAChB,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,iBAAA;gBACD,IAAI,GAAG,IAAI,MAAM,EAAE;oBACjB,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,iBAAA;gBACD,IAAI,OAAO,IAAI,IAAI,EAAE;oBACnB,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,iBAAA;AACF,aAAA;YACD,IAAI,GAAG,IAAI,MAAM,EAAE;AACjB,gBAAA,OAAO,GAAG,CAAC,MAAM,GAAG,SAAS,EAAE;AAC7B,oBAAA,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,iBAAA;gBACD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AAC9B,oBAAA,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AAC5B,wBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBACjC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,wBAAA,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACjB,4BAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,yBAAA;wBACD,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACvB,qBAAA;AAAM,yBAAA;wBACL,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,qBAAA;oBACD,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACtB,wBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACZ,qBAAA;oBACD,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACtB,wBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACZ,qBAAA;AACF,iBAAA;gBACD,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,IAAI,OAAO,IAAI,IAAI,EAAE;oBACnB,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,iBAAA;AACF,aAAA;AACF,SAAA;aAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,EAAE;AAClC,YAAA,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,SAAA;AAAM,aAAA;YACL,KAAK,GAAG,KAAK,CAAC;AACd,YAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACvC,YAAA,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,gBAAA,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;AAClD,oBAAA,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBACrC,KAAK,GAAG,IAAI,CAAC;AACb,oBAAA,GAAG,GAAG;AACJ,wBAAA,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1C,wBAAA,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1C,wBAAA,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;qBAC3C,CAAC;oBACF,MAAM;AACP,iBAAA;AACF,aAAA;YACD,IAAI,KAAK,IAAI,KAAK,EAAE;gBAClB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACvB,gBAAA,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;oBACjB,CAAC;AACC,wBAAA,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACd,4BAAA,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACd,4BAAA,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACd,4BAAA,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACd,4BAAA,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACd,4BAAA,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClB,iBAAA;AACD,gBAAA,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7B,oBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AAC/B,wBAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,qBAAA;AACF,iBAAA;AACD,gBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtC,gBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtC,gBAAA,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACtB,oBAAA,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AACjB,wBAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,qBAAA;AACF,iBAAA;AACD,gBAAA,GAAG,GAAG;AACJ,oBAAA,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACT,oBAAA,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACT,oBAAA,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;iBACV,CAAC;AACH,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/C,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;KAC3C;AAEM,IAAA,WAAW,CAAC,GAAQ,EAAE,CAAM,EAAE,CAAM,EAAE,CAAM,EAAA;AACjD,QAAA,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC;QAC1C,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,SAAA;QACD,IAAI,CAAC,KAAK,IAAI,EAAE;YACd,CAAC,GAAG,CAAC,CAAC;AACP,SAAA;AACD,QAAA,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACzC,QAAA,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACzC,QAAA,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3C,QAAA,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AACjB,QAAA,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AACjB,QAAA,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC3B,QAAA,KAAK,GAAG;YACN,GAAG,EAAE,GAAG,CAAC,CAAC;YACV,KAAK,EAAE,GAAG,CAAC,CAAC;YACZ,IAAI,EAAE,GAAG,CAAC,CAAC;AACX,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,GAAG,EAAE,GAAG;YACR,SAAS,EAAE,GAAG,CAAC,CAAC;YAChB,SAAS,EAAE,GAAG,CAAC,CAAC;YAChB,SAAS,EAAE,GAAG,CAAC,CAAC;YAChB,IAAI,EAAE,IAAI,CAAC,CAAC;YACZ,OAAO,EAAE,IAAI,CAAC,CAAC;YACf,MAAM,EAAE,IAAI,CAAC,CAAC;YACd,KAAK,EAAE,IAAI,CAAC,CAAC;AACb,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,KAAK,EAAE,IAAI;SACZ,CAAC;AACF,QAAA,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,WAAW,GAAA;QAChB,OAAO;AACL,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,IAAI,EAAE,GAAG;AACT,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,KAAK,EAAE,KAAK;SACb,CAAC;KACH;AAEM,IAAA,WAAW,CAAC,CAAM,EAAA;QACvB,IAAI,CAAC,IAAI,OAAO,EAAE;YAChB,OAAO;gBACL,WAAW;gBACX,cAAc;gBACd,MAAM;gBACN,YAAY;gBACZ,OAAO;gBACP,OAAO;gBACP,QAAQ;gBACR,OAAO;gBACP,gBAAgB;gBAChB,MAAM;gBACN,YAAY;gBACZ,OAAO;gBACP,WAAW;gBACX,WAAW;gBACX,YAAY;gBACZ,WAAW;gBACX,OAAO;gBACP,gBAAgB;gBAChB,UAAU;gBACV,SAAS;gBACT,MAAM;gBACN,UAAU;gBACV,UAAU;gBACV,eAAe;gBACf,UAAU;gBACV,UAAU;gBACV,WAAW;gBACX,WAAW;gBACX,aAAa;gBACb,gBAAgB;gBAChB,YAAY;gBACZ,YAAY;gBACZ,SAAS;gBACT,YAAY;gBACZ,cAAc;gBACd,eAAe;gBACf,eAAe;gBACf,eAAe;gBACf,eAAe;gBACf,YAAY;gBACZ,UAAU;gBACV,aAAa;gBACb,SAAS;gBACT,SAAS;gBACT,YAAY;gBACZ,WAAW;gBACX,aAAa;gBACb,aAAa;gBACb,SAAS;gBACT,WAAW;gBACX,YAAY;gBACZ,MAAM;gBACN,WAAW;gBACX,MAAM;gBACN,MAAM;gBACN,OAAO;gBACP,aAAa;gBACb,UAAU;gBACV,SAAS;gBACT,WAAW;gBACX,QAAQ;gBACR,OAAO;gBACP,OAAO;gBACP,UAAU;gBACV,eAAe;gBACf,WAAW;gBACX,cAAc;gBACd,WAAW;gBACX,YAAY;gBACZ,WAAW;gBACX,sBAAsB;gBACtB,WAAW;gBACX,WAAW;gBACX,YAAY;gBACZ,WAAW;gBACX,aAAa;gBACb,eAAe;gBACf,cAAc;gBACd,gBAAgB;gBAChB,gBAAgB;gBAChB,gBAAgB;gBAChB,aAAa;gBACb,MAAM;gBACN,WAAW;gBACX,OAAO;gBACP,SAAS;gBACT,QAAQ;gBACR,kBAAkB;gBAClB,YAAY;gBACZ,cAAc;gBACd,cAAc;gBACd,gBAAgB;gBAChB,iBAAiB;gBACjB,mBAAmB;gBACnB,iBAAiB;gBACjB,iBAAiB;gBACjB,cAAc;gBACd,WAAW;gBACX,WAAW;gBACX,UAAU;gBACV,aAAa;gBACb,MAAM;gBACN,SAAS;gBACT,OAAO;gBACP,WAAW;gBACX,QAAQ;gBACR,WAAW;gBACX,QAAQ;gBACR,eAAe;gBACf,WAAW;gBACX,eAAe;gBACf,eAAe;gBACf,YAAY;gBACZ,WAAW;gBACX,MAAM;gBACN,MAAM;gBACN,MAAM;gBACN,YAAY;gBACZ,QAAQ;gBACR,eAAe;gBACf,KAAK;gBACL,WAAW;gBACX,WAAW;gBACX,aAAa;gBACb,QAAQ;gBACR,YAAY;gBACZ,UAAU;gBACV,UAAU;gBACV,QAAQ;gBACR,QAAQ;gBACR,SAAS;gBACT,WAAW;gBACX,WAAW;gBACX,WAAW;gBACX,MAAM;gBACN,aAAa;gBACb,WAAW;gBACX,KAAK;gBACL,MAAM;gBACN,SAAS;gBACT,QAAQ;gBACR,WAAW;gBACX,QAAQ;gBACR,OAAO;gBACP,OAAO;gBACP,YAAY;gBACZ,QAAQ;gBACR,aAAa;aACd,CAAC;AACH,SAAA;QACD,IAAI,CAAC,IAAI,MAAM,EAAE;YACf,OAAO;gBACL,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBACR,QAAQ;aACT,CAAC;AACH,SAAA;AAED,QAAA,OAAO,EAAE,CAAC;KACX;AAEM,IAAA,aAAa,CAAC,CAAM,EAAA;AACzB,QAAA,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,QAAA,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,QAAA,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,QAAA,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,QAAA,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,QAAA,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAA,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAA,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,QAAA,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,QAAA,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,QAAA,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,QAAA,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,QAAA,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,QAAA,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,QAAA,OAAO,CAAC,CAAC;KACV;AAEM,IAAA,QAAQ,CAAC,GAAQ,EAAE,GAAQ,EAAE,KAAU,EAAA;QAC5C,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACpB,QAAA,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;QACf,IAAI,KAAK,IAAI,GAAG,EAAE;YAChB,EAAE,GAAG,KAAK,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AACxB,SAAA;AAAM,aAAA;YACL,EAAE,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC;AAChC,SAAA;AACD,QAAA,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC;AACpB,QAAA,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACzC,QAAA,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;AACrC,QAAA,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACzC,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KAC7B;AAEM,IAAA,QAAQ,CAAC,EAAO,EAAE,EAAO,EAAE,GAAQ,EAAA;QACxC,IAAI,GAAG,GAAG,CAAC;YAAE,GAAG,IAAI,CAAC,CAAC;QACtB,IAAI,GAAG,IAAI,CAAC;YAAE,GAAG,IAAI,CAAC,CAAC;QACvB,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;aACpC,IAAI,GAAG,GAAG,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC;aACvB,IAAI,GAAG,GAAG,CAAC;AAAE,YAAA,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;;AAC/C,YAAA,OAAO,EAAE,CAAC;KAChB;AAEM,IAAA,QAAQ,CAAC,GAAQ,EAAE,KAAU,EAAE,KAAU,EAAA;QAC9C,IAAI,CAAC,EACH,GAAG,EACH,MAAM,GAAG,EAAE,EACX,GAAG,CAAC;QACN,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QACjC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QACxB,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QACxB,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACxB,QAAA,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC;QACpB,IAAI,GAAG,GAAG,CAAC,EAAE;AACX,YAAA,KAAK,GAAG,MAAM,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,YAAA,KAAK,GAAG,MAAM,CAAC,CAAC,KAAK,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,SAAA;QACD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACtB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AAC/B,YAAA,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;AACnB,YAAA,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACrC,SAAA;QACD,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;KACrD;AAEM,IAAA,SAAS,CAAC,CAAM,EAAE,CAAM,EAAE,CAAM,EAAE,CAAM,EAAA;AAC7C,QAAA,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACZ,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAC7C,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAC7C,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7C,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KAC7B;AAEM,IAAA,SAAS,CAAC,IAAS,EAAE,KAAU,EAAE,KAAU,EAAA;QAChD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,GAAG,IAAI,CAAC;QACT,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AAC5B,YAAA,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACzC,YAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,OAAO,IAAI,EAAE,EAAE;gBACjB,OAAO,GAAG,CAAC,CAAC;AACb,aAAA;AACD,YAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAC1B,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;AAClB,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;YACD,IAAI,MAAM,IAAI,GAAG,EAAE;AACjB,gBAAA,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC;AACvB,aAAA;YACD,IAAI,MAAM,IAAI,GAAG,EAAE;AACjB,gBAAA,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,GAAG,CAAC;AACxB,aAAA;YACD,IAAI,MAAM,IAAI,GAAG,EAAE;AACjB,gBAAA,CAAC,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC;AACzB,aAAA;YACD,IAAI,MAAM,IAAI,GAAG,EAAE;AACjB,gBAAA,CAAC,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC;AACzB,aAAA;YACD,IAAI,MAAM,IAAI,GAAG,EAAE;AACjB,gBAAA,CAAC,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC;AACzB,aAAA;YACD,IAAI,MAAM,IAAI,GAAG,EAAE;AACjB,gBAAA,CAAC,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC;AACzB,aAAA;YACD,IAAI,MAAM,IAAI,GAAG,EAAE;gBACjB,CAAC,GAAG,CAAC,CAAC;AACN,gBAAA,KAAK,GAAG,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC;AAC1B,gBAAA,KAAK,GAAG,OAAO,GAAG,GAAG,CAAC;AACvB,aAAA;AACF,SAAA;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;KACvC;AAEM,IAAA,SAAS,CAAC,GAAQ,EAAA;QACvB,OAAO,GAAG,IAAI,GAAG,EAAE;AACjB,YAAA,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACjB,SAAA;QACD,IAAI,GAAG,GAAG,EAAE,EAAE;AACZ,YAAA,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACxB,SAAA;QACD,IAAI,GAAG,GAAG,GAAG,EAAE;YACb,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,CAAC;AAC/B,SAAA;QACD,IAAI,GAAG,GAAG,GAAG,EAAE;YACb,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC;AAChC,SAAA;QACD,IAAI,GAAG,GAAG,GAAG,EAAE;YACb,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC;AAChC,SAAA;QACD,IAAI,GAAG,GAAG,GAAG,EAAE;YACb,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC;AAChC,SAAA;QACD,IAAI,GAAG,GAAG,GAAG,EAAE;YACb,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC;AAChC,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACX;AAEM,IAAA,QAAQ,CAAC,GAAQ,EAAA;AACtB,QAAA,IAAI,KAAK,EACP,MAAM,EACN,EAAE,EACF,OAAO,EACP,MAAM,EACN,OAAO,EACP,OAAO,EACP,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,KAAK,EACL,GAAG,EACH,OAAO,EACP,IAAI,EACJ,CAAC,EACD,CAAC,EACD,CAAC,EACD,MAAM,GAAQ,CAAC,CAAC;QAClB,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACjC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;AAC5B,YAAA,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC;AACpB,SAAA;AACD,QAAA,GAAG,GAAG,GAAG,CAAC,KAAK,CACb,4DAA4D,CAC7D,CAAC;QACF,IAAI,GAAG,KAAK,IAAI;AAAE,YAAA,OAAO,KAAK,CAAC;QAC/B,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9B,QAAA,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACZ,QAAA,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE;AACjE,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACD,QAAA,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,EAAE,KAAK,GAAG,EAAE;AACd,YAAA,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;YAC7B,OAAO,GAAG,MAAM,CAAC;AACjB,YAAA,IAAI,EAAE,KAAK,GAAG,IAAI,OAAO,IAAI,EAAE,EAAE;gBAC/B,IAAI,GAAG,CAAC,CAAC;AACV,aAAA;iBAAM,IACL,CAAC,EAAE,KAAK,GAAG,IAAI,OAAO,GAAG,EAAE;iBAC1B,EAAE,KAAK,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,EAC7B;gBACA,IAAI,EAAE,KAAK,GAAG,EAAE;AACd,oBAAA,OAAO,GAAG,OAAO,GAAG,EAAE,CAAC;AACxB,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,GAAG,OAAO,GAAG,EAAE,CAAC;AACxB,iBAAA;gBACD,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC;AAC7D,aAAA;AAAM,iBAAA,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,OAAO,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE;gBACrD,IAAI,GAAG,CAAC,CAAC;AACV,aAAA;iBAAM,IAAI,EAAE,KAAK,GAAG,EAAE;AACrB,gBAAA,OAAO,GAAG,OAAO,GAAG,GAAG,CAAC;gBACxB,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC;AAC7D,aAAA;AACD,YAAA,IAAI,EAAE,KAAK,GAAG,IAAI,OAAO,IAAI,EAAE,EAAE;gBAC/B,KAAK,GAAG,CAAC,CAAC;AACX,aAAA;iBAAM,IACL,CAAC,EAAE,KAAK,GAAG,IAAI,OAAO,GAAG,EAAE;iBAC1B,EAAE,KAAK,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,EAC7B;gBACA,IAAI,EAAE,KAAK,GAAG,EAAE;AACd,oBAAA,OAAO,GAAG,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC;AAC/B,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,GAAG,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC;AAC/B,iBAAA;gBACD,KAAK,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AAC/D,aAAA;iBAAM,IACL,CAAC,EAAE,KAAK,GAAG,IAAI,OAAO,GAAG,EAAE;iBAC1B,EAAE,KAAK,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,EAC7B;gBACA,IAAI,EAAE,KAAK,GAAG,EAAE;AACd,oBAAA,OAAO,GAAG,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC;AAC7B,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,GAAG,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC;AAC7B,iBAAA;gBACD,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC;AAC9D,aAAA;iBAAM,IACL,CAAC,EAAE,KAAK,GAAG,IAAI,OAAO,GAAG,EAAE;iBAC1B,EAAE,KAAK,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,EAC7B;gBACA,IAAI,EAAE,KAAK,GAAG,EAAE;AACd,oBAAA,OAAO,GAAG,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC;AAC9B,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,GAAG,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC;AAC9B,iBAAA;gBACD,KAAK,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AAC/D,aAAA;AAAM,iBAAA,IAAI,EAAE,KAAK,GAAG,IAAI,OAAO,GAAG,EAAE,EAAE;gBACrC,KAAK,GAAG,CAAC,CAAC;AACX,aAAA;YAED,IAAI,EAAE,KAAK,GAAG,EAAE;AACd,gBAAA,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,OAAO,IAAI,GAAG,CAAC;AAC3C,aAAA;AAAM,iBAAA,IAAI,EAAE,KAAK,GAAG,IAAI,OAAO,IAAI,EAAE,EAAE;gBACtC,MAAM,GAAG,CAAC,CAAC;AACZ,aAAA;AAAM,iBAAA,IAAI,EAAE,KAAK,GAAG,IAAI,OAAO,GAAG,EAAE,EAAE;AACrC,gBAAA,OAAO,GAAG,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC5B,MAAM,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AAChE,aAAA;AAAM,iBAAA,IAAI,EAAE,KAAK,GAAG,IAAI,OAAO,IAAI,EAAE,EAAE;AACtC,gBAAA,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;gBAC7B,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AACjE,aAAA;iBAAM,IACL,CAAC,EAAE,KAAK,GAAG,IAAI,OAAO,GAAG,EAAE;iBAC1B,EAAE,KAAK,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,EAC7B;gBACA,MAAM,GAAG,GAAG,CAAC;AACd,aAAA;AAAM,iBAAA,IAAI,EAAE,KAAK,GAAG,IAAI,OAAO,GAAG,EAAE,EAAE;AACrC,gBAAA,OAAO,GAAG,OAAO,GAAG,EAAE,CAAC;AACvB,gBAAA,IAAI,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,IAAI,GAAG,CAAC;AAC7C,aAAA;YACD,OAAO,GAAG,CAAC,IAAI,GAAG,MAAM,GAAG,KAAK,IAAI,CAAC,CAAC;YACtC,IAAI,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;AACvE,YAAA,MAAM,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,KAAK,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC;YAC/D,KAAK,GAAG,CAAC,CAAC,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;AAC1E,YAAA,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,GAAG,KAAK,EAAE;gBACjC,GAAG,GAAG,IAAI,CAAC;AACZ,aAAA;AAAM,iBAAA,IAAI,MAAM,GAAG,IAAI,IAAI,MAAM,GAAG,KAAK,EAAE;gBAC1C,GAAG,GAAG,MAAM,CAAC;AACd,aAAA;AAAM,iBAAA,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,MAAM,EAAE;gBACzC,GAAG,GAAG,KAAK,CAAC;AACb,aAAA;AAAM,iBAAA;gBACL,GAAG,GAAG,CAAC,IAAI,GAAG,MAAM,GAAG,KAAK,IAAI,CAAC,CAAC;AACnC,aAAA;AACD,YAAA,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC;YAClB,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,OAAO,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;YAC3D,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,OAAO,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;YAC7D,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,OAAO,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;YAC5D,IAAI,CAAC,GAAG,GAAG,EAAE;gBACX,CAAC,GAAG,GAAG,CAAC;AACT,aAAA;YACD,IAAI,CAAC,GAAG,GAAG,EAAE;gBACX,CAAC,GAAG,GAAG,CAAC;AACT,aAAA;YACD,IAAI,CAAC,GAAG,GAAG,EAAE;gBACX,CAAC,GAAG,GAAG,CAAC;AACT,aAAA;YACD,IAAI,CAAC,GAAG,CAAC,EAAE;gBACT,CAAC,GAAG,CAAC,CAAC;AACP,aAAA;YACD,IAAI,CAAC,GAAG,CAAC,EAAE;gBACT,CAAC,GAAG,CAAC,CAAC;AACP,aAAA;YACD,IAAI,CAAC,GAAG,CAAC,EAAE;gBACT,CAAC,GAAG,CAAC,CAAC;AACP,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;YACtC,IAAI,IAAI,GAAG,GAAG,EAAE;gBACd,IAAI,GAAG,GAAG,CAAC;AACZ,aAAA;YACD,IAAI,IAAI,GAAG,CAAC,EAAE;gBACZ,IAAI,GAAG,CAAC,CAAC;AACV,aAAA;YACD,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,GAAG,IAAI,CAAC;AACV,SAAA;QACD,OAAO;AACL,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,CAAC,EAAE,CAAC;SACL,CAAC;KACH;AAEM,IAAA,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AAC7C,QAAA,IAAI,GAAG,EACL,GAAG,EACH,CAAC,EACD,CAAC,EACD,CAAC,EACD,QAAQ,EACR,CAAC,EACD,GAAG,GAAG,EAAE,CAAC;AACX,QAAA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACjB,QAAA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACjB,QAAA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACjB,QAAA,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACb,QAAA,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACb,QAAQ,GAAG,CAAC,CAAC;AACb,QAAA,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE;AACrB,gBAAA,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClB,aAAA;YACD,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE;AACrB,gBAAA,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,gBAAA,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;AAClB,aAAA;AACF,SAAA;QACD,IAAI,QAAQ,IAAI,CAAC,EAAE;AACjB,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;AACrC,SAAA;QACD,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;AACzC,SAAA;QACD,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;AACzC,SAAA;AACD,QAAA,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;YACjB,CAAC,GAAG,CAAC,CAAC;AACP,SAAA;QACD,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,CAAC,EAAE;AACT,YAAA,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACb,SAAA;QACD,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;QACpB,IAAI,GAAG,IAAI,GAAG,EAAE;YACd,CAAC,GAAG,CAAC,CAAC;AACP,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,GAAG,GAAG,EAAE;AACX,gBAAA,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;AAC/B,aAAA;AAAM,iBAAA;AACL,gBAAA,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACnC,aAAA;AACF,SAAA;QACD,CAAC,GAAG,CAAC,CAAC;AACN,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KAC7B;AAEM,IAAA,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAA;AAC7C,QAAA,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AACb,QAAA,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACZ,QAAA,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACZ,QAAA,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACZ,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;QACvB,IAAI,MAAM,IAAI,CAAC,EAAE;YACf,CAAC,GAAG,CAAC,CAAC;AACP,SAAA;aAAM,IAAI,CAAC,IAAI,GAAG,EAAE;AACnB,YAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC;AACpC,SAAA;aAAM,IAAI,CAAC,IAAI,GAAG,EAAE;AACnB,YAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AACxC,SAAA;AAAM,aAAA;AACL,YAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AACxC,SAAA;QACD,CAAC,GAAG,GAAG,CAAC;AACR,QAAA,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;AACb,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;KAC9B;AAEM,IAAA,SAAS,CAAC,GAAW,EAAE,KAAa,EAAE,IAAY,EAAA;AACvD,QAAA,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACf,QAAA,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAChB,QAAA,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC;AACpB,QAAA,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;AAClB,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,QAAA,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACZ,IAAI,CAAC,IAAI,CAAC,EAAE;YACV,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;AACP,SAAA;AAAM,aAAA;AACL,YAAA,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,YAAA,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,YAAA,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,SAAA;AACD,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACnC;AAEM,IAAA,KAAK,CAAC,CAAM,EAAA;QACjB,IAAI,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzB,QAAA,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACjB,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACZ;AAEM,IAAA,EAAE,CAAC,CAAM,EAAA;AACd,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAChB;AAEM,IAAA,YAAY,CAAC,CAAM,EAAA;QACxB,OAAO,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;KACpC;AAEM,IAAA,KAAK,CAAC,CAAM,EAAA;QACjB,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KACjD;8GA9zCU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFvB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCOY,0BAA0B,CAAA;8GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EARzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIX,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAIU,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAVtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EACzB,QAAA,EAAA,CAAA;;;;AAIX,EAAA,CAAA,EAAA,UAAA,EAEa,IAAI,EAAA,CAAA;;;ACVpB;;AAEG;;ACFH;;AAEG;;;;"}