styled-string-builder
Version:
String Styler class based on a builder design pattern
151 lines (149 loc) • 16.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.styles = exports.BrightBackgroundColors = exports.StandardBackgroundColors = exports.BrightForegroundColors = exports.StandardForegroundColors = exports.AnsiReset = void 0;
/**
* @description ANSI escape code for resetting text formatting.
* @summary This constant holds the ANSI escape sequence used to reset all text formatting to default.
* @const AnsiReset
* @memberOf module:StyledString
*/
exports.AnsiReset = "\x1b[0m";
/**
* @description Standard foreground color codes for ANSI text formatting.
* @summary This object maps color names to their corresponding ANSI color codes for standard foreground colors.
* @const StandardForegroundColors
* @property {number} black - ANSI code for black text (30).
* @property {number} red - ANSI code for red text (31).
* @property {number} green - ANSI code for green text (32).
* @property {number} yellow - ANSI code for yellow text (33).
* @property {number} blue - ANSI code for blue text (34).
* @property {number} magenta - ANSI code for magenta text (35).
* @property {number} cyan - ANSI code for cyan text (36).
* @property {number} white - ANSI code for white text (37).
* @memberOf module:StyledString
*/
exports.StandardForegroundColors = {
black: 30,
red: 31,
green: 32,
yellow: 33,
blue: 34,
magenta: 35,
cyan: 36,
white: 37,
};
/**
* @description Bright foreground color codes for ANSI text formatting.
* @summary This object maps color names to their corresponding ANSI color codes for bright foreground colors.
* @const BrightForegroundColors
* @property {number} black - ANSI code for bright black text (90).
* @property {number} red - ANSI code for bright red text (91).
* @property {number} green - ANSI code for bright green text (92).
* @property {number} yellow - ANSI code for bright yellow text (93).
* @property {number} blue - ANSI code for bright blue text (94).
* @property {number} magenta - ANSI code for bright magenta text (95).
* @property {number} cyan - ANSI code for bright cyan text (96).
* @property {number} white - ANSI code for bright white text (97).
* @memberOf module:@StyledString
*/
exports.BrightForegroundColors = {
brightBlack: 90,
brightRed: 91,
brightGreen: 92,
brightYellow: 93,
brightBlue: 94,
brightMagenta: 95,
brightCyan: 96,
brightWhite: 97,
};
/**
* @description Standard background color codes for ANSI text formatting.
* @summary This object maps color names to their corresponding ANSI color codes for standard background colors.
* @const StandardBackgroundColors
* @property {number} bgBlack - ANSI code for black background (40).
* @property {number} bgRed - ANSI code for red background (41).
* @property {number} bgGreen - ANSI code for green background (42).
* @property {number} bgYellow - ANSI code for yellow background (43).
* @property {number} bgBlue - ANSI code for blue background (44).
* @property {number} bgMagenta - ANSI code for magenta background (45).
* @property {number} bgCyan - ANSI code for cyan background (46).
* @property {number} bgWhite - ANSI code for white background (47).
* @memberOf module:@StyledString
*/
exports.StandardBackgroundColors = {
bgBlack: 40,
bgRed: 41,
bgGreen: 42,
bgYellow: 43,
bgBlue: 44,
bgMagenta: 45,
bgCyan: 46,
bgWhite: 47,
};
/**
* @description Bright background color codes for ANSI text formatting.
* @summary This object maps color names to their corresponding ANSI color codes for bright background colors.
* @const BrightBackgroundColors
* @property {number} bgBrightBlack - ANSI code for bright black background (100).
* @property {number} bgBrightRed - ANSI code for bright red background (101).
* @property {number} bgBrightGreen - ANSI code for bright green background (102).
* @property {number} bgBrightYellow - ANSI code for bright yellow background (103).
* @property {number} bgBrightBlue - ANSI code for bright blue background (104).
* @property {number} bgBrightMagenta - ANSI code for bright magenta background (105).
* @property {number} bgBrightCyan - ANSI code for bright cyan background (106).
* @property {number} bgBrightWhite - ANSI code for bright white background (107).
* @memberOf module:@StyledString
*/
exports.BrightBackgroundColors = {
bgBrightBlack: 100,
bgBrightRed: 101,
bgBrightGreen: 102,
bgBrightYellow: 103,
bgBrightBlue: 104,
bgBrightMagenta: 105,
bgBrightCyan: 106,
bgBrightWhite: 107,
};
/**
* @description Text style codes for ANSI text formatting.
* @summary This object maps style names to their corresponding ANSI codes for various text styles.
* @const styles
* @property {number} reset - ANSI code to reset all styles (0).
* @property {number} bold - ANSI code for bold text (1).
* @property {number} dim - ANSI code for dim text (2).
* @property {number} italic - ANSI code for italic text (3).
* @property {number} underline - ANSI code for underlined text (4).
* @property {number} blink - ANSI code for blinking text (5).
* @property {number} inverse - ANSI code for inverse colors (7).
* @property {number} hidden - ANSI code for hidden text (8).
* @property {number} strikethrough - ANSI code for strikethrough text (9).
* @property {number} doubleUnderline - ANSI code for double underlined text (21).
* @property {number} normalColor - ANSI code to reset color to normal (22).
* @property {number} noItalicOrFraktur - ANSI code to turn off italic (23).
* @property {number} noUnderline - ANSI code to turn off underline (24).
* @property {number} noBlink - ANSI code to turn off blink (25).
* @property {number} noInverse - ANSI code to turn off inverse (27).
* @property {number} noHidden - ANSI code to turn off hidden (28).
* @property {number} noStrikethrough - ANSI code to turn off strikethrough (29).
* @memberOf module:@StyledString
*/
exports.styles = {
reset: 0,
bold: 1,
dim: 2,
italic: 3,
underline: 4,
blink: 5,
inverse: 7,
hidden: 8,
strikethrough: 9,
doubleUnderline: 21,
normalColor: 22,
noItalicOrFraktur: 23,
noUnderline: 24,
noBlink: 25,
noInverse: 27,
noHidden: 28,
noStrikethrough: 29,
};
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0E7Ozs7O0dBS0c7QUFDVSxRQUFBLFNBQVMsR0FBRyxTQUFTLENBQUM7QUFFbkM7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNVLFFBQUEsd0JBQXdCLEdBQUc7SUFDdEMsS0FBSyxFQUFFLEVBQUU7SUFDVCxHQUFHLEVBQUUsRUFBRTtJQUNQLEtBQUssRUFBRSxFQUFFO0lBQ1QsTUFBTSxFQUFFLEVBQUU7SUFDVixJQUFJLEVBQUUsRUFBRTtJQUNSLE9BQU8sRUFBRSxFQUFFO0lBQ1gsSUFBSSxFQUFFLEVBQUU7SUFDUixLQUFLLEVBQUUsRUFBRTtDQUNWLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRztJQUNwQyxXQUFXLEVBQUUsRUFBRTtJQUNmLFNBQVMsRUFBRSxFQUFFO0lBQ2IsV0FBVyxFQUFFLEVBQUU7SUFDZixZQUFZLEVBQUUsRUFBRTtJQUNoQixVQUFVLEVBQUUsRUFBRTtJQUNkLGFBQWEsRUFBRSxFQUFFO0lBQ2pCLFVBQVUsRUFBRSxFQUFFO0lBQ2QsV0FBVyxFQUFFLEVBQUU7Q0FDaEIsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDVSxRQUFBLHdCQUF3QixHQUFHO0lBQ3RDLE9BQU8sRUFBRSxFQUFFO0lBQ1gsS0FBSyxFQUFFLEVBQUU7SUFDVCxPQUFPLEVBQUUsRUFBRTtJQUNYLFFBQVEsRUFBRSxFQUFFO0lBQ1osTUFBTSxFQUFFLEVBQUU7SUFDVixTQUFTLEVBQUUsRUFBRTtJQUNiLE1BQU0sRUFBRSxFQUFFO0lBQ1YsT0FBTyxFQUFFLEVBQUU7Q0FDWixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNVLFFBQUEsc0JBQXNCLEdBQUc7SUFDcEMsYUFBYSxFQUFFLEdBQUc7SUFDbEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsY0FBYyxFQUFFLEdBQUc7SUFDbkIsWUFBWSxFQUFFLEdBQUc7SUFDakIsZUFBZSxFQUFFLEdBQUc7SUFDcEIsWUFBWSxFQUFFLEdBQUc7SUFDakIsYUFBYSxFQUFFLEdBQUc7Q0FDbkIsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ1UsUUFBQSxNQUFNLEdBQUc7SUFDcEIsS0FBSyxFQUFFLENBQUM7SUFDUixJQUFJLEVBQUUsQ0FBQztJQUNQLEdBQUcsRUFBRSxDQUFDO0lBQ04sTUFBTSxFQUFFLENBQUM7SUFDVCxTQUFTLEVBQUUsQ0FBQztJQUNaLEtBQUssRUFBRSxDQUFDO0lBQ1IsT0FBTyxFQUFFLENBQUM7SUFDVixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxDQUFDO0lBQ2hCLGVBQWUsRUFBRSxFQUFFO0lBQ25CLFdBQVcsRUFBRSxFQUFFO0lBQ2YsaUJBQWlCLEVBQUUsRUFBRTtJQUNyQixXQUFXLEVBQUUsRUFBRTtJQUNmLE9BQU8sRUFBRSxFQUFFO0lBQ1gsU0FBUyxFQUFFLEVBQUU7SUFDYixRQUFRLEVBQUUsRUFBRTtJQUNaLGVBQWUsRUFBRSxFQUFFO0NBQ3BCLENBQUMiLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBBTlNJIGVzY2FwZSBjb2RlIGZvciByZXNldHRpbmcgdGV4dCBmb3JtYXR0aW5nLlxuICogQHN1bW1hcnkgVGhpcyBjb25zdGFudCBob2xkcyB0aGUgQU5TSSBlc2NhcGUgc2VxdWVuY2UgdXNlZCB0byByZXNldCBhbGwgdGV4dCBmb3JtYXR0aW5nIHRvIGRlZmF1bHQuXG4gKiBAY29uc3QgQW5zaVJlc2V0XG4gKiBAbWVtYmVyT2YgbW9kdWxlOlN0eWxlZFN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgQW5zaVJlc2V0ID0gXCJcXHgxYlswbVwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTdGFuZGFyZCBmb3JlZ3JvdW5kIGNvbG9yIGNvZGVzIGZvciBBTlNJIHRleHQgZm9ybWF0dGluZy5cbiAqIEBzdW1tYXJ5IFRoaXMgb2JqZWN0IG1hcHMgY29sb3IgbmFtZXMgdG8gdGhlaXIgY29ycmVzcG9uZGluZyBBTlNJIGNvbG9yIGNvZGVzIGZvciBzdGFuZGFyZCBmb3JlZ3JvdW5kIGNvbG9ycy5cbiAqIEBjb25zdCBTdGFuZGFyZEZvcmVncm91bmRDb2xvcnNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBibGFjayAtIEFOU0kgY29kZSBmb3IgYmxhY2sgdGV4dCAoMzApLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHJlZCAtIEFOU0kgY29kZSBmb3IgcmVkIHRleHQgKDMxKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBncmVlbiAtIEFOU0kgY29kZSBmb3IgZ3JlZW4gdGV4dCAoMzIpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHllbGxvdyAtIEFOU0kgY29kZSBmb3IgeWVsbG93IHRleHQgKDMzKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBibHVlIC0gQU5TSSBjb2RlIGZvciBibHVlIHRleHQgKDM0KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBtYWdlbnRhIC0gQU5TSSBjb2RlIGZvciBtYWdlbnRhIHRleHQgKDM1KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBjeWFuIC0gQU5TSSBjb2RlIGZvciBjeWFuIHRleHQgKDM2KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB3aGl0ZSAtIEFOU0kgY29kZSBmb3Igd2hpdGUgdGV4dCAoMzcpLlxuICogQG1lbWJlck9mIG1vZHVsZTpTdHlsZWRTdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IFN0YW5kYXJkRm9yZWdyb3VuZENvbG9ycyA9IHtcbiAgYmxhY2s6IDMwLFxuICByZWQ6IDMxLFxuICBncmVlbjogMzIsXG4gIHllbGxvdzogMzMsXG4gIGJsdWU6IDM0LFxuICBtYWdlbnRhOiAzNSxcbiAgY3lhbjogMzYsXG4gIHdoaXRlOiAzNyxcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEJyaWdodCBmb3JlZ3JvdW5kIGNvbG9yIGNvZGVzIGZvciBBTlNJIHRleHQgZm9ybWF0dGluZy5cbiAqIEBzdW1tYXJ5IFRoaXMgb2JqZWN0IG1hcHMgY29sb3IgbmFtZXMgdG8gdGhlaXIgY29ycmVzcG9uZGluZyBBTlNJIGNvbG9yIGNvZGVzIGZvciBicmlnaHQgZm9yZWdyb3VuZCBjb2xvcnMuXG4gKiBAY29uc3QgQnJpZ2h0Rm9yZWdyb3VuZENvbG9yc1xuICogQHByb3BlcnR5IHtudW1iZXJ9IGJsYWNrIC0gQU5TSSBjb2RlIGZvciBicmlnaHQgYmxhY2sgdGV4dCAoOTApLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHJlZCAtIEFOU0kgY29kZSBmb3IgYnJpZ2h0IHJlZCB0ZXh0ICg5MSkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gZ3JlZW4gLSBBTlNJIGNvZGUgZm9yIGJyaWdodCBncmVlbiB0ZXh0ICg5MikuXG4gKiBAcHJvcGVydHkge251bWJlcn0geWVsbG93IC0gQU5TSSBjb2RlIGZvciBicmlnaHQgeWVsbG93IHRleHQgKDkzKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBibHVlIC0gQU5TSSBjb2RlIGZvciBicmlnaHQgYmx1ZSB0ZXh0ICg5NCkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbWFnZW50YSAtIEFOU0kgY29kZSBmb3IgYnJpZ2h0IG1hZ2VudGEgdGV4dCAoOTUpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGN5YW4gLSBBTlNJIGNvZGUgZm9yIGJyaWdodCBjeWFuIHRleHQgKDk2KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB3aGl0ZSAtIEFOU0kgY29kZSBmb3IgYnJpZ2h0IHdoaXRlIHRleHQgKDk3KS5cbiAqIEBtZW1iZXJPZiBtb2R1bGU6QFN0eWxlZFN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgQnJpZ2h0Rm9yZWdyb3VuZENvbG9ycyA9IHtcbiAgYnJpZ2h0QmxhY2s6IDkwLFxuICBicmlnaHRSZWQ6IDkxLFxuICBicmlnaHRHcmVlbjogOTIsXG4gIGJyaWdodFllbGxvdzogOTMsXG4gIGJyaWdodEJsdWU6IDk0LFxuICBicmlnaHRNYWdlbnRhOiA5NSxcbiAgYnJpZ2h0Q3lhbjogOTYsXG4gIGJyaWdodFdoaXRlOiA5Nyxcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFN0YW5kYXJkIGJhY2tncm91bmQgY29sb3IgY29kZXMgZm9yIEFOU0kgdGV4dCBmb3JtYXR0aW5nLlxuICogQHN1bW1hcnkgVGhpcyBvYmplY3QgbWFwcyBjb2xvciBuYW1lcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIEFOU0kgY29sb3IgY29kZXMgZm9yIHN0YW5kYXJkIGJhY2tncm91bmQgY29sb3JzLlxuICogQGNvbnN0IFN0YW5kYXJkQmFja2dyb3VuZENvbG9yc1xuICogQHByb3BlcnR5IHtudW1iZXJ9IGJnQmxhY2sgLSBBTlNJIGNvZGUgZm9yIGJsYWNrIGJhY2tncm91bmQgKDQwKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBiZ1JlZCAtIEFOU0kgY29kZSBmb3IgcmVkIGJhY2tncm91bmQgKDQxKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBiZ0dyZWVuIC0gQU5TSSBjb2RlIGZvciBncmVlbiBiYWNrZ3JvdW5kICg0MikuXG4gKiBAcHJvcGVydHkge251bWJlcn0gYmdZZWxsb3cgLSBBTlNJIGNvZGUgZm9yIHllbGxvdyBiYWNrZ3JvdW5kICg0MykuXG4gKiBAcHJvcGVydHkge251bWJlcn0gYmdCbHVlIC0gQU5TSSBjb2RlIGZvciBibHVlIGJhY2tncm91bmQgKDQ0KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBiZ01hZ2VudGEgLSBBTlNJIGNvZGUgZm9yIG1hZ2VudGEgYmFja2dyb3VuZCAoNDUpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGJnQ3lhbiAtIEFOU0kgY29kZSBmb3IgY3lhbiBiYWNrZ3JvdW5kICg0NikuXG4gKiBAcHJvcGVydHkge251bWJlcn0gYmdXaGl0ZSAtIEFOU0kgY29kZSBmb3Igd2hpdGUgYmFja2dyb3VuZCAoNDcpLlxuICogQG1lbWJlck9mIG1vZHVsZTpAU3R5bGVkU3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCBTdGFuZGFyZEJhY2tncm91bmRDb2xvcnMgPSB7XG4gIGJnQmxhY2s6IDQwLFxuICBiZ1JlZDogNDEsXG4gIGJnR3JlZW46IDQyLFxuICBiZ1llbGxvdzogNDMsXG4gIGJnQmx1ZTogNDQsXG4gIGJnTWFnZW50YTogNDUsXG4gIGJnQ3lhbjogNDYsXG4gIGJnV2hpdGU6IDQ3LFxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQnJpZ2h0IGJhY2tncm91bmQgY29sb3IgY29kZXMgZm9yIEFOU0kgdGV4dCBmb3JtYXR0aW5nLlxuICogQHN1bW1hcnkgVGhpcyBvYmplY3QgbWFwcyBjb2xvciBuYW1lcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIEFOU0kgY29sb3IgY29kZXMgZm9yIGJyaWdodCBiYWNrZ3JvdW5kIGNvbG9ycy5cbiAqIEBjb25zdCBCcmlnaHRCYWNrZ3JvdW5kQ29sb3JzXG4gKiBAcHJvcGVydHkge251bWJlcn0gYmdCcmlnaHRCbGFjayAtIEFOU0kgY29kZSBmb3IgYnJpZ2h0IGJsYWNrIGJhY2tncm91bmQgKDEwMCkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gYmdCcmlnaHRSZWQgLSBBTlNJIGNvZGUgZm9yIGJyaWdodCByZWQgYmFja2dyb3VuZCAoMTAxKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBiZ0JyaWdodEdyZWVuIC0gQU5TSSBjb2RlIGZvciBicmlnaHQgZ3JlZW4gYmFja2dyb3VuZCAoMTAyKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBiZ0JyaWdodFllbGxvdyAtIEFOU0kgY29kZSBmb3IgYnJpZ2h0IHllbGxvdyBiYWNrZ3JvdW5kICgxMDMpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGJnQnJpZ2h0Qmx1ZSAtIEFOU0kgY29kZSBmb3IgYnJpZ2h0IGJsdWUgYmFja2dyb3VuZCAoMTA0KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBiZ0JyaWdodE1hZ2VudGEgLSBBTlNJIGNvZGUgZm9yIGJyaWdodCBtYWdlbnRhIGJhY2tncm91bmQgKDEwNSkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gYmdCcmlnaHRDeWFuIC0gQU5TSSBjb2RlIGZvciBicmlnaHQgY3lhbiBiYWNrZ3JvdW5kICgxMDYpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGJnQnJpZ2h0V2hpdGUgLSBBTlNJIGNvZGUgZm9yIGJyaWdodCB3aGl0ZSBiYWNrZ3JvdW5kICgxMDcpLlxuICogQG1lbWJlck9mIG1vZHVsZTpAU3R5bGVkU3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCBCcmlnaHRCYWNrZ3JvdW5kQ29sb3JzID0ge1xuICBiZ0JyaWdodEJsYWNrOiAxMDAsXG4gIGJnQnJpZ2h0UmVkOiAxMDEsXG4gIGJnQnJpZ2h0R3JlZW46IDEwMixcbiAgYmdCcmlnaHRZZWxsb3c6IDEwMyxcbiAgYmdCcmlnaHRCbHVlOiAxMDQsXG4gIGJnQnJpZ2h0TWFnZW50YTogMTA1LFxuICBiZ0JyaWdodEN5YW46IDEwNixcbiAgYmdCcmlnaHRXaGl0ZTogMTA3LFxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGV4dCBzdHlsZSBjb2RlcyBmb3IgQU5TSSB0ZXh0IGZvcm1hdHRpbmcuXG4gKiBAc3VtbWFyeSBUaGlzIG9iamVjdCBtYXBzIHN0eWxlIG5hbWVzIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgQU5TSSBjb2RlcyBmb3IgdmFyaW91cyB0ZXh0IHN0eWxlcy5cbiAqIEBjb25zdCBzdHlsZXNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSByZXNldCAtIEFOU0kgY29kZSB0byByZXNldCBhbGwgc3R5bGVzICgwKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBib2xkIC0gQU5TSSBjb2RlIGZvciBib2xkIHRleHQgKDEpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGRpbSAtIEFOU0kgY29kZSBmb3IgZGltIHRleHQgKDIpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGl0YWxpYyAtIEFOU0kgY29kZSBmb3IgaXRhbGljIHRleHQgKDMpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHVuZGVybGluZSAtIEFOU0kgY29kZSBmb3IgdW5kZXJsaW5lZCB0ZXh0ICg0KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBibGluayAtIEFOU0kgY29kZSBmb3IgYmxpbmtpbmcgdGV4dCAoNSkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gaW52ZXJzZSAtIEFOU0kgY29kZSBmb3IgaW52ZXJzZSBjb2xvcnMgKDcpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGhpZGRlbiAtIEFOU0kgY29kZSBmb3IgaGlkZGVuIHRleHQgKDgpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHN0cmlrZXRocm91Z2ggLSBBTlNJIGNvZGUgZm9yIHN0cmlrZXRocm91Z2ggdGV4dCAoOSkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gZG91YmxlVW5kZXJsaW5lIC0gQU5TSSBjb2RlIGZvciBkb3VibGUgdW5kZXJsaW5lZCB0ZXh0ICgyMSkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbm9ybWFsQ29sb3IgLSBBTlNJIGNvZGUgdG8gcmVzZXQgY29sb3IgdG8gbm9ybWFsICgyMikuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbm9JdGFsaWNPckZyYWt0dXIgLSBBTlNJIGNvZGUgdG8gdHVybiBvZmYgaXRhbGljICgyMykuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbm9VbmRlcmxpbmUgLSBBTlNJIGNvZGUgdG8gdHVybiBvZmYgdW5kZXJsaW5lICgyNCkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbm9CbGluayAtIEFOU0kgY29kZSB0byB0dXJuIG9mZiBibGluayAoMjUpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IG5vSW52ZXJzZSAtIEFOU0kgY29kZSB0byB0dXJuIG9mZiBpbnZlcnNlICgyNykuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbm9IaWRkZW4gLSBBTlNJIGNvZGUgdG8gdHVybiBvZmYgaGlkZGVuICgyOCkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbm9TdHJpa2V0aHJvdWdoIC0gQU5TSSBjb2RlIHRvIHR1cm4gb2ZmIHN0cmlrZXRocm91Z2ggKDI5KS5cbiAqIEBtZW1iZXJPZiBtb2R1bGU6QFN0eWxlZFN0cmluZ1xuICovXG5leHBvcnQgY29uc3Qgc3R5bGVzID0ge1xuICByZXNldDogMCxcbiAgYm9sZDogMSxcbiAgZGltOiAyLFxuICBpdGFsaWM6IDMsXG4gIHVuZGVybGluZTogNCxcbiAgYmxpbms6IDUsXG4gIGludmVyc2U6IDcsXG4gIGhpZGRlbjogOCxcbiAgc3RyaWtldGhyb3VnaDogOSxcbiAgZG91YmxlVW5kZXJsaW5lOiAyMSxcbiAgbm9ybWFsQ29sb3I6IDIyLFxuICBub0l0YWxpY09yRnJha3R1cjogMjMsXG4gIG5vVW5kZXJsaW5lOiAyNCxcbiAgbm9CbGluazogMjUsXG4gIG5vSW52ZXJzZTogMjcsXG4gIG5vSGlkZGVuOiAyOCxcbiAgbm9TdHJpa2V0aHJvdWdoOiAyOSxcbn07XG4iXX0=