UNPKG

stimulsoft-forms

Version:
927 lines (926 loc) 112 kB
/* {*******************************************************************} { } { } { } { Copyright (C) Stimulsoft } { ALL RIGHTS RESERVED } { } { The entire contents of this file is protected by U.S. and } { International Copyright Laws. Unauthorized reproduction, } { reverse-engineering, and distribution of all or any portion of } { the code contained in this file is strictly prohibited and may } { result in severe civil and criminal penalties and will be } { prosecuted to the maximum extent possible under the law. } { } { RESTRICTIONS } { } { THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES } { ARE CONFIDENTIAL AND PROPRIETARY } { TRADE SECRETS OF Stimulsoft } { } { CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON } { ADDITIONAL RESTRICTIONS. } { } {*******************************************************************} */ export default class Color { constructor() { this.propertyName = "color"; this.name = Color.customName; } static aliceBlue() { let color = Color.fromArgb(0xf0, 0xf8, 0xff); color.name = "Alice Blue"; return color; } static antiqueWhite() { let color = Color.fromArgb(0xfa, 0xeb, 0xd7); color.name = "Antique White"; return color; } static aqua() { let color = Color.fromArgb(0x00, 0xff, 0xff); color.name = "Aqua"; return color; } static aquamarine() { let color = Color.fromArgb(0x7f, 0xff, 0xd4); color.name = "Aquamarine"; return color; } static azure() { let color = Color.fromArgb(0xf0, 0xff, 0xff); color.name = "Azure"; return color; } static beige() { let color = Color.fromArgb(0xf5, 0xf5, 0xdc); color.name = "Beige"; return color; } static bisque() { let color = Color.fromArgb(0xff, 0xe4, 0xc4); color.name = "Bisque"; return color; } static black() { let color = Color.fromArgb(0x00, 0x00, 0x00); color.name = "Black"; return color; } static blanchedAlmond() { let color = Color.fromArgb(0xff, 0xeb, 0xcd); color.name = "Blanched Almond"; return color; } static blue() { let color = Color.fromArgb(0x00, 0x00, 0xff); color.name = "Blue"; return color; } static blueViolet() { let color = Color.fromArgb(0x8a, 0x2b, 0xe2); color.name = "Blue Violet"; return color; } static brown() { let color = Color.fromArgb(0xa5, 0x2a, 0x2a); color.name = "Brown"; return color; } static burlyWood() { let color = Color.fromArgb(0xde, 0xb8, 0x87); color.name = "Burly Wood"; return color; } static cadetBlue() { let color = Color.fromArgb(0x5f, 0x9e, 0xa0); color.name = "Cadet Blue"; return color; } static chartreuse() { let color = Color.fromArgb(0x7f, 0xff, 0x00); color.name = "Chartreuse"; return color; } static chocolate() { let color = Color.fromArgb(0xd2, 0x69, 0x1e); color.name = "Chocolate"; return color; } static coral() { let color = Color.fromArgb(0xff, 0x7f, 0x50); color.name = "Coral"; return color; } static cornflowerBlue() { let color = Color.fromArgb(0x64, 0x95, 0xed); color.name = "Cornflower Blue"; return color; } static cornsilk() { let color = Color.fromArgb(0xff, 0xf8, 0xdc); color.name = "Cornsilk"; return color; } static crimson() { let color = Color.fromArgb(0xdc, 0x14, 0x3c); color.name = "Crimson"; return color; } static cyan() { let color = Color.fromArgb(0x00, 0xff, 0xff); color.name = "Cyan"; return color; } static darkBlue() { let color = Color.fromArgb(0x00, 0x00, 0x8b); color.name = "Dark Blue"; return color; } static darkCyan() { let color = Color.fromArgb(0x00, 0x8b, 0x8b); color.name = "Dark Cyan"; return color; } static darkGoldenrod() { let color = Color.fromArgb(0xb8, 0x86, 0x0b); color.name = "Dark Goldenrod"; return color; } static darkGray() { let color = Color.fromArgb(0xa9, 0xa9, 0xa9); color.name = "Dark Gray"; return color; } static darkGreen() { let color = Color.fromArgb(0x00, 0x64, 0x00); color.name = "Dark Green"; return color; } static darkKhaki() { let color = Color.fromArgb(0xbd, 0xb7, 0x6b); color.name = "Dark Khaki"; return color; } static darkMagenta() { let color = Color.fromArgb(0x8b, 0x00, 0x8b); color.name = "Dark Magenta"; return color; } static darkOliveGreen() { let color = Color.fromArgb(0x55, 0x6b, 0x2f); color.name = "Dark Olive Green"; return color; } static darkOrange() { let color = Color.fromArgb(0xff, 0x8c, 0x00); color.name = "Dark Orange"; return color; } static darkOrchid() { let color = Color.fromArgb(0x99, 0x32, 0xcc); color.name = "Dark Orchid"; return color; } static darkRed() { let color = Color.fromArgb(0x8b, 0x00, 0x00); color.name = "Dark Red"; return color; } static darkSalmon() { let color = Color.fromArgb(0xe9, 0x96, 0x7a); color.name = "Dark Salmon"; return color; } static darkSeaGreen() { let color = Color.fromArgb(0x8f, 0xbc, 0x8f); color.name = "Dark Sea Green"; return color; } static darkSlateBlue() { let color = Color.fromArgb(0x48, 0x3d, 0x8b); color.name = "Dark Slate Blue"; return color; } static darkSlateGray() { let color = Color.fromArgb(0x2f, 0x4f, 0x4f); color.name = "Dark Slate Gray"; return color; } static darkTurquoise() { let color = Color.fromArgb(0x00, 0xce, 0xd1); color.name = "Dark Turquoise"; return color; } static darkViolet() { let color = Color.fromArgb(0x94, 0x00, 0xd3); color.name = "Dark Violet"; return color; } static deepPink() { let color = Color.fromArgb(0xff, 0x14, 0x93); color.name = "Deep Pink"; return color; } static deepSkyBlue() { let color = Color.fromArgb(0x00, 0xbf, 0xff); color.name = "Deep Sky Blue"; return color; } static dimGray() { let color = Color.fromArgb(0x69, 0x69, 0x69); color.name = "Dim Gray"; return color; } static dodgerBlue() { let color = Color.fromArgb(0x1e, 0x90, 0xff); color.name = "Dodger Blue"; return color; } static firebrick() { let color = Color.fromArgb(0xb2, 0x22, 0x22); color.name = "Firebrick"; return color; } static floralWhite() { let color = Color.fromArgb(0xff, 0xfa, 0xf0); color.name = "Floral White"; return color; } static forestGreen() { let color = Color.fromArgb(0x22, 0x8b, 0x22); color.name = "Forest Green"; return color; } static fuchsia() { let color = Color.fromArgb(0xff, 0x00, 0xff); color.name = "Fuchsia"; return color; } static gainsboro() { let color = Color.fromArgb(0xdc, 0xdc, 0xdc); color.name = "Gainsboro"; return color; } static ghostWhite() { let color = Color.fromArgb(0xf8, 0xf8, 0xff); color.name = "Ghost White"; return color; } static gold() { let color = Color.fromArgb(0xff, 0xd7, 0x00); color.name = "Gold"; return color; } static goldenrod() { let color = Color.fromArgb(0xda, 0xa5, 0x20); color.name = "Goldenrod"; return color; } static gray() { let color = Color.fromArgb(0x80, 0x80, 0x80); color.name = "Gray"; return color; } static green() { let color = Color.fromArgb(0x00, 0x80, 0x00); color.name = "Green"; return color; } static greenYellow() { let color = Color.fromArgb(0xad, 0xff, 0x2f); color.name = "Green Yellow"; return color; } static honeydew() { let color = Color.fromArgb(0xf0, 0xff, 0xf0); color.name = "Honeydew"; return color; } static hotPink() { let color = Color.fromArgb(0xff, 0x69, 0xb4); color.name = "Hot Pink"; return color; } static indianRed() { let color = Color.fromArgb(0xcd, 0x5c, 0x5c); color.name = "Indian Red"; return color; } static indigo() { let color = Color.fromArgb(0x4b, 0x00, 0x82); color.name = "Indigo"; return color; } static ivory() { let color = Color.fromArgb(0xff, 0xff, 0xf0); color.name = "Ivory"; return color; } static khaki() { let color = Color.fromArgb(0xf0, 0xe6, 0x8c); color.name = "Khaki"; return color; } static lavender() { let color = Color.fromArgb(0xe6, 0xe6, 0xfa); color.name = "Lavender"; return color; } static lavenderBlush() { let color = Color.fromArgb(0xff, 0xf0, 0xf5); color.name = "Lavender Blush"; return color; } static lawnGreen() { let color = Color.fromArgb(0x7c, 0xfc, 0x00); color.name = "Lawn Green"; return color; } static lemonChiffon() { let color = Color.fromArgb(0xff, 0xfa, 0xcd); color.name = "Lemon Chiffon"; return color; } static lightBlue() { let color = Color.fromArgb(0xad, 0xd8, 0xe6); color.name = "Light Blue"; return color; } static lightCoral() { let color = Color.fromArgb(0xf0, 0x80, 0x80); color.name = "Light Coral"; return color; } static lightCyan() { let color = Color.fromArgb(0xe0, 0xff, 0xff); color.name = "Light Cyan"; return color; } static lightGoldenrodYellow() { let color = Color.fromArgb(0xfa, 0xfa, 0xd2); color.name = "Light Goldenrod Yellow"; return color; } static lightGray() { let color = Color.fromArgb(0xd3, 0xd3, 0xd3); color.name = "Light Gray"; return color; } static lightGreen() { let color = Color.fromArgb(0x90, 0xee, 0x90); color.name = "Light Green"; return color; } static lightPink() { let color = Color.fromArgb(0xff, 0xb6, 0xc1); color.name = "Light Pink"; return color; } static lightSalmon() { let color = Color.fromArgb(0xff, 0xa0, 0x7a); color.name = "Light Salmon"; return color; } static lightSeaGreen() { let color = Color.fromArgb(0x20, 0xb2, 0xaa); color.name = "Light Sea Green"; return color; } static lightSkyBlue() { let color = Color.fromArgb(0x87, 0xce, 0xfa); color.name = "Light Sky Blue"; return color; } static lightSlateGray() { let color = Color.fromArgb(0x77, 0x88, 0x99); color.name = "Light Slate Gray"; return color; } static lightSteelBlue() { let color = Color.fromArgb(0xb0, 0xc4, 0xde); color.name = "Light Steel Blue"; return color; } static lightYellow() { let color = Color.fromArgb(0xff, 0xff, 0xe0); color.name = "Light Yellow"; return color; } static lime() { let color = Color.fromArgb(0x00, 0xff, 0x00); color.name = "Lime"; return color; } static limeGreen() { let color = Color.fromArgb(0x32, 0xcd, 0x32); color.name = "Lime Green"; return color; } static linen() { let color = Color.fromArgb(0xfa, 0xf0, 0xe6); color.name = "Linen"; return color; } static magenta() { let color = Color.fromArgb(0xff, 0x00, 0xff); color.name = "Magenta"; return color; } static maroon() { let color = Color.fromArgb(0x80, 0x00, 0x00); color.name = "Maroon"; return color; } static mediumAquamarine() { let color = Color.fromArgb(0x66, 0xcd, 0xaa); color.name = "Medium Aquamarine"; return color; } static mediumBlue() { let color = Color.fromArgb(0x00, 0x00, 0xcd); color.name = "Medium Blue"; return color; } static mediumOrchid() { let color = Color.fromArgb(0xba, 0x55, 0xd3); color.name = "Medium Orchid"; return color; } static mediumPurple() { let color = Color.fromArgb(0x93, 0x70, 0xdb); color.name = "Medium Purple"; return color; } static mediumSeaGreen() { let color = Color.fromArgb(0x3c, 0xb3, 0x71); color.name = "Medium Sea Green"; return color; } static mediumSlateBlue() { let color = Color.fromArgb(0x7b, 0x68, 0xee); color.name = "Medium Slate Blue"; return color; } static mediumSpringGreen() { let color = Color.fromArgb(0x00, 0xfa, 0x9a); color.name = "Medium Spring Green"; return color; } static mediumTurquoise() { let color = Color.fromArgb(0x48, 0xd1, 0xcc); color.name = "Medium Turquoise"; return color; } static mediumVioletRed() { let color = Color.fromArgb(0xc7, 0x15, 0x85); color.name = "Medium Violet Red"; return color; } static midnightBlue() { let color = Color.fromArgb(0x19, 0x19, 0x70); color.name = "Midnight Blue"; return color; } static mintCream() { let color = Color.fromArgb(0xf5, 0xff, 0xfa); color.name = "Mint Cream"; return color; } static mistyRose() { let color = Color.fromArgb(0xff, 0xe4, 0xe1); color.name = "Misty Rose"; return color; } static moccasin() { let color = Color.fromArgb(0xff, 0xe4, 0xb5); color.name = "Moccasin"; return color; } static navajoWhite() { let color = Color.fromArgb(0xff, 0xde, 0xad); color.name = "Navajo White"; return color; } static navy() { let color = Color.fromArgb(0x00, 0x00, 0x80); color.name = "Navy"; return color; } static oldLace() { let color = Color.fromArgb(0xfd, 0xf5, 0xe6); color.name = "Old Lace"; return color; } static olive() { let color = Color.fromArgb(0x80, 0x80, 0x00); color.name = "Olive"; return color; } static oliveDrab() { let color = Color.fromArgb(0x6b, 0x8e, 0x23); color.name = "Olive Drab"; return color; } static orange() { let color = Color.fromArgb(0xff, 0xa5, 0x00); color.name = "Orange"; return color; } static orangeRed() { let color = Color.fromArgb(0xff, 0x45, 0x00); color.name = "Orange Red"; return color; } static orchid() { let color = Color.fromArgb(0xda, 0x70, 0xd6); color.name = "Orchid"; return color; } static paleGoldenrod() { let color = Color.fromArgb(0xee, 0xe8, 0xaa); color.name = "Pale Goldenrod"; return color; } static paleGreen() { let color = Color.fromArgb(0x98, 0xfb, 0x98); color.name = "Pale Green"; return color; } static paleTurquoise() { let color = Color.fromArgb(0xaf, 0xee, 0xee); color.name = "Pale Turquoise"; return color; } static paleVioletRed() { let color = Color.fromArgb(0xdb, 0x70, 0x93); color.name = "Pale Violet Red"; return color; } static papayaWhip() { let color = Color.fromArgb(0xff, 0xef, 0xd5); color.name = "Papaya Whip"; return color; } static peachPuff() { let color = Color.fromArgb(0xff, 0xda, 0xb9); color.name = "Peach Puff"; return color; } static peru() { let color = Color.fromArgb(0xcd, 0x85, 0x3f); color.name = "Peru"; return color; } static pink() { let color = Color.fromArgb(0xff, 0xc0, 0xcb); color.name = "Pink"; return color; } static plum() { let color = Color.fromArgb(0xdd, 0xa0, 0xdd); color.name = "Plum"; return color; } static powderBlue() { let color = Color.fromArgb(0xb0, 0xe0, 0xe6); color.name = "Powder Blue"; return color; } static purple() { let color = Color.fromArgb(0x80, 0x00, 0x80); color.name = "Purple"; return color; } static red() { let color = Color.fromArgb(0xff, 0x00, 0x00); color.name = "Red"; return color; } static rosyBrown() { let color = Color.fromArgb(0xbc, 0x8f, 0x8f); color.name = "Rosy Brown"; return color; } static royalBlue() { let color = Color.fromArgb(0x41, 0x69, 0xe1); color.name = "Royal Blue"; return color; } static saddleBrown() { let color = Color.fromArgb(0x8b, 0x45, 0x13); color.name = "Saddle Brown"; return color; } static salmon() { let color = Color.fromArgb(0xfa, 0x80, 0x72); color.name = "Salmon"; return color; } static sandyBrown() { let color = Color.fromArgb(0xf4, 0xa4, 0x60); color.name = "Sandy Brown"; return color; } static seaGreen() { let color = Color.fromArgb(0x2e, 0x8b, 0x57); color.name = "Sea Green"; return color; } static seaShell() { let color = Color.fromArgb(0xff, 0xf5, 0xee); color.name = "Sea Shell"; return color; } static sienna() { let color = Color.fromArgb(0xa0, 0x52, 0x2d); color.name = "Sienna"; return color; } static silver() { let color = Color.fromArgb(0xc0, 0xc0, 0xc0); color.name = "Silver"; return color; } static skyBlue() { let color = Color.fromArgb(0x87, 0xce, 0xeb); color.name = "Sky Blue"; return color; } static slateBlue() { let color = Color.fromArgb(0x6a, 0x5a, 0xcd); color.name = "Slate Blue"; return color; } static slateGray() { let color = Color.fromArgb(0x70, 0x80, 0x90); color.name = "Slate Gray"; return color; } static snow() { let color = Color.fromArgb(0xff, 0xfa, 0xfa); color.name = "Snow"; return color; } static springGreen() { let color = Color.fromArgb(0x00, 0xff, 0x7f); color.name = "Spring Green"; return color; } static steelBlue() { let color = Color.fromArgb(0x46, 0x82, 0xb4); color.name = "Steel Blue"; return color; } static tan() { let color = Color.fromArgb(0xd2, 0xb4, 0x8c); color.name = "Tan"; return color; } static teal() { let color = Color.fromArgb(0x00, 0x80, 0x80); color.name = "Teal"; return color; } static thistle() { let color = Color.fromArgb(0xd8, 0xbf, 0xd8); color.name = "Thistle"; return color; } static tomato() { let color = Color.fromArgb(0xff, 0x63, 0x47); color.name = "Tomato"; return color; } static turquoise() { let color = Color.fromArgb(0x40, 0xe0, 0xd0); color.name = "Turquoise"; return color; } static violet() { let color = Color.fromArgb(0xee, 0x82, 0xee); color.name = "Violet"; return color; } static wheat() { let color = Color.fromArgb(0xf5, 0xde, 0xb3); color.name = "Wheat"; return color; } static white() { let color = Color.fromArgb(0xff, 0xff, 0xff); color.name = "White"; return color; } static whiteSmoke() { let color = Color.fromArgb(0xf5, 0xf5, 0xf5); color.name = "White Smoke"; return color; } static yellow() { let color = Color.fromArgb(0xff, 0xff, 0x00); color.name = "Yellow"; return color; } static yellowGreen() { let color = Color.fromArgb(0x9a, 0xcd, 0x32); color.name = "Yellow Green"; return color; } static transparent() { let color = Color.fromArgb(0x00, 0xff, 0xff, 0xff); color.name = "Transparent"; return color; } static empty() { let color = Color.fromArgb(0x00, 0xff, 0xff, 0xff); color.name = "Empty"; return color; } static fromName(name) { name = name.replace(/ /gi, ""); if (this.isNullOrEmpty(name)) { return null; // Color.empty; } name = name.charAt(0).toLowerCase() + name.substr(1); let color = Color[name]; if (color && typeof color == "function") { return color(); } return null; //Color.empty; } static isNullOrEmpty(value) { return value == null || value === "" || value === undefined; } clone() { let color = new Color(); color.r = this.r; color.g = this.g; color.b = this.b; color.a = this._a; color.name = this.name; return color; } isChanged() { return this.savedColor == null || !this.savedColor.equals(this); } resetChanged() { this.savedColor = this.clone(); } get a() { return this._a; } set a(value) { this._a = value; this.name = Color.customName; } get r() { return this._r; } set r(value) { this._r = value; this.name = Color.customName; } get g() { return this._g; } set g(value) { this._g = value; this.name = Color.customName; } get b() { return this._b; } set b(value) { this._b = value; this.name = Color.customName; } static { this.customName = "Custom"; } get isNamedColor() { return this.name != Color.customName; } equals(color) { if (color != null) { if ((color._a == 0x00 && color._r == 0xff && color._g == 0xff && color._b == 0xff) || (this._a == 0x00 && this._r == 0xff && this._g == 0xff && this._b == 0xff)) return this._a == color._a; else return this._a == color._a && this._r == color._r && this._g == color._g && this._b == color._b; } return false; } static fromArgb(alpha, red, green, blue) { if (typeof red == "undefined") { blue = alpha & 0xff; green = (alpha >> 8) & 0xff; red = (alpha >> 16) & 0xff; alpha = (alpha >> 24) & 0xff; } else if (typeof green == "undefined") { blue = red._b; green = red._g; red = red._r; } else if (typeof blue == "undefined") { blue = green; green = red; red = alpha; alpha = 255; } let color = new Color(); color._a = alpha; color._r = red; color._g = green; color._b = blue; color.name = Color.customName; return color; } toArgb() { let argb = this._a << 24; argb += this._r << 16; argb += this._g << 8; argb += this._b; return argb; } componentToHex(c) { let hex = c.toString(16); return hex.length == 1 ? "0" + hex : hex; } getHashCode() { return this.toArgb(); } toHtmlColor() { return `rgba(${this.r}, ${this.g}, ${this.b}, ${Math.round((100 * this.a) / 255) / 100})`; } toHexColor() { return "#" + this.componentToHex(this.r) + this.componentToHex(this.g) + this.componentToHex(this.b); } get hexColor() { return this.toHtmlColor(); } getStringName() { if (this.a == 0) { return "Transparent"; } else { return `${this.a != 255 ? this.a + "," : ""}${this.r + ","}${this.g + ","}${this.b}`; } } set hexColor(value) { let oldColor = this.changesInterceptor ? this.clone() : null; let num = parseInt(value.substring(1), 16); if (num || num == 0) { this.b = num & 0xff; this.g = (num >> 8) & 0xff; this.r = (num >> 16) & 0xff; this.a = 255; } else { let num = value.replace("rgba(", "").replace(")", ""); let array = num.split(","); this.r = isNaN(Number(array[0])) ? 0 : Number(array[0]); this.g = isNaN(Number(array[1])) ? 0 : Number(array[1]); this.b = isNaN(Number(array[2])) ? 0 : Number(array[2]); this.a = isNaN(Math.round(255 * Number(array[3]))) ? 255 : Math.round(255 * Number(array[3])); } this.name = Color.customName; if (this.changesInterceptor) { this.changesInterceptor.propertyChanged(this.propertyName, this.clone(), oldColor); } } toString() { return this.name != Color.customName ? this.name : this.hexColor; } deserializeFromString(value) { let result; if (value.indexOf(",") != -1) { let strs = value.split(","); if (strs.length == 4) { result = Color.fromArgb(parseFloat(strs[0].trim()), parseFloat(strs[1].trim()), parseFloat(strs[2].trim()), parseFloat(strs[3].trim())); } else { result = Color.fromArgb(parseFloat(strs[0].trim()), parseFloat(strs[1].trim()), parseFloat(strs[2].trim())); } } else if (value.indexOf("[") == 0 && value.indexOf("]") == value.length - 1 && value.indexOf(":") != -1) { let strs = value.substring(1, value.length - 1).split(":"); if (strs.length == 4) { result = Color.fromArgb(parseFloat(strs[0].trim()), parseFloat(strs[1].trim()), parseFloat(strs[2].trim()), parseFloat(strs[3].trim())); } else { result = Color.fromArgb(parseFloat(strs[0].trim()), parseFloat(strs[1].trim()), parseFloat(strs[2].trim())); } } else { result = Color.fromName(value); } this._r = result._r; this._b = result._b; this._g = result._g; this._a = result._a; this.name = result.name; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdGltdWxzb2Z0LWZvcm1zL3NyYy9saWIvc3lzdGVtL0NvbG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTBCRTtBQUlGLE1BQU0sQ0FBQyxPQUFPLE9BQU8sS0FBSztJQUExQjtRQW8zQlMsaUJBQVksR0FBRyxPQUFPLENBQUM7UUFnRDlCLFNBQUksR0FBVyxLQUFLLENBQUMsVUFBVSxDQUFDO0lBaUpsQyxDQUFDO0lBcGpDQyxNQUFNLENBQUMsU0FBUztRQUNkLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWTtRQUNqQixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxlQUFlLENBQUM7UUFDN0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUk7UUFDVCxJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVU7UUFDZixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDMUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUs7UUFDVixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7UUFDckIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUs7UUFDVixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7UUFDckIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU07UUFDWCxJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUs7UUFDVixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7UUFDckIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWM7UUFDbkIsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7UUFDL0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUk7UUFDVCxJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVU7UUFDZixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxhQUFhLENBQUM7UUFDM0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUs7UUFDVixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7UUFDckIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVM7UUFDZCxJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDMUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVM7UUFDZCxJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDMUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVU7UUFDZixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDMUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVM7UUFDZCxJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7UUFDekIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUs7UUFDVixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7UUFDckIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWM7UUFDbkIsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7UUFDL0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVE7UUFDYixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7UUFDeEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU87UUFDWixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7UUFDdkIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUk7UUFDVCxJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVE7UUFDYixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7UUFDekIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVE7UUFDYixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7UUFDekIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWE7UUFDbEIsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUM7UUFDOUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVE7UUFDYixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxXQUFXLENBQUM7UUFDekIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVM7UUFDZCxJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDMUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVM7UUFDZCxJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDMUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVc7UUFDaEIsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDO1FBQzVCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjO1FBQ25CLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFDO1FBQ2hDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVO1FBQ2YsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDO1FBQzNCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVO1FBQ2YsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDO1FBQzNCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPO1FBQ1osSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVO1FBQ2YsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDO1FBQzNCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZO1FBQ2pCLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhO1FBQ2xCLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1FBQy9CLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhO1FBQ2xCLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1FBQy9CLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhO1FBQ2xCLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDO1FBQzlCLE9BQU8s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LENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUN4QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTztRQUNaLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUN4QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUztRQUNkLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTTtRQUNYLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUN0QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSztRQUNWLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUNyQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSztRQUNWLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUNyQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUTtRQUNiLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUN4QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYTtRQUNsQixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQztRQUM5QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUztRQUNkLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWTtRQUNqQixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxlQUFlLENBQUM7UUFDN0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVM7UUFDZCxJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDMUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVU7UUFDZixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxhQUFhLENBQUM7UUFDM0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVM7UUFDZCxJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDMUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLG9CQUFvQjtRQUN6QixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyx3QkFBd0IsQ0FBQztRQUN0QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUztRQUNkLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVTtRQUNmLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQztRQUMzQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUztRQUNkLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVztRQUNoQixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxjQUFjLENBQUM7UUFDNUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWE7UUFDbEIsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7UUFDL0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVk7UUFDakIsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUM7UUFDOUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWM7UUFDbkIsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFDaEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWM7UUFDbkIsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFDaEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVc7UUFDaEIsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDO1FBQzVCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJO1FBQ1QsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTO1FBQ2QsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO1FBQzFCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLO1FBQ1YsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBQ3JCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPO1FBQ1osSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNO1FBQ1gsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1FBQ3RCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0I7UUFDckIsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsbUJBQW1CLENBQUM7UUFDakMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVU7UUFDZixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxhQUFhLENBQUM7UUFDM0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVk7UUFDakIsSUFBSSxLQUFLLEdBQVUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFDO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZO1FBQ2pCLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQztRQUM3QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYztRQUNuQixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxrQkFBa0IsQ0FBQztRQUNoQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZTtRQUNwQixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQztRQUNqQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCO1FBQ3RCLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLHFCQUFxQixDQUFDO1FBQ25DLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlO1FBQ3BCLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFDO1FBQ2hDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlO1FBQ3BCLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLG1CQUFtQixDQUFDO1FBQ2pDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZO1FBQ2pCLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQztRQUM3QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUztRQUNkLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUztRQUNkLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUTtRQUNiLElBQUksS0FBSyxHQUFVLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUN4QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVztRQUNoQixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxjQUFjLENBQUM7UUFDNUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUk7UUFDVCxJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU87UUFDWixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7UUFDeEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUs7UUFDVixJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7UUFDckIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVM7UUFDZCxJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDMUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU07UUFDWCxJQUFJLEtBQUssR0FBVSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDdEIsT0FBTyxLQUF