import { c as _c } from "react/compiler-runtime"; import * as React from 'react'; import { stringWidth } from '../../ink/stringWidth.js'; import { Text, useTheme } from '../../ink.js'; import { getGraphemeSegmenter } from '../../utils/intl.js'; import { getTheme, type Theme } from '../../utils/theme.js'; import type { SpinnerMode } from './types.js'; import { interpolateColor, parseRGB, toRGBColor } from './utils.js'; type Props = { message: string; mode: SpinnerMode; messageColor: keyof Theme; glimmerIndex: number; flashOpacity: number; shimmerColor: keyof Theme; stalledIntensity?: number; }; const ERROR_RED = { r: 171, g: 43, b: 63 }; export function GlimmerMessage(t0) { const $ = _c(75); const { message, mode, messageColor, glimmerIndex, flashOpacity, shimmerColor, stalledIntensity: t1 } = t0; const stalledIntensity = t1 === undefined ? 0 : t1; const [themeName] = useTheme(); let messageWidth; let segments; let t2; if ($[0] !== flashOpacity || $[1] !== message || $[2] !== messageColor || $[3] !== mode || $[4] !== shimmerColor || $[5] !== stalledIntensity || $[6] !== themeName) { t2 = Symbol.for("react.early_return_sentinel"); bb0: { const theme = getTheme(themeName); let segs; if ($[10] !== message) { segs = []; for (const { segment } of getGraphemeSegmenter().segment(message)) { segs.push({ segment, width: stringWidth(segment) }); } $[10] = message; $[11] = segs; } else { segs = $[11]; } let t3; if ($[12] !== message) { t3 = stringWidth(message); $[12] = message; $[13] = t3; } else { t3 = $[13]; } let t4; if ($[14] !== segs || $[15] !== t3) { t4 = { segments: segs, messageWidth: t3 }; $[14] = segs; $[15] = t3; $[16] = t4; } else { t4 = $[16]; } ({ segments, messageWidth } = t4); if (!message) { t2 = null; break bb0; } if (stalledIntensity > 0) { const baseColorStr = theme[messageColor]; const baseRGB = baseColorStr ? parseRGB(baseColorStr) : null; if (baseRGB) { const interpolated = interpolateColor(baseRGB, ERROR_RED, stalledIntensity); const color = toRGBColor(interpolated); let t5; if ($[17] !== color) { t5 = ; $[17] = color; $[18] = t5; } else { t5 = $[18]; } t2 = <>{message}{t5}; break bb0; } const color_0 = stalledIntensity > 0.5 ? "error" : messageColor; let t5; if ($[19] !== color_0 || $[20] !== message) { t5 = {message}; $[19] = color_0; $[20] = message; $[21] = t5; } else { t5 = $[21]; } let t6; if ($[22] !== color_0) { t6 = ; $[22] = color_0; $[23] = t6; } else { t6 = $[23]; } let t7; if ($[24] !== t5 || $[25] !== t6) { t7 = <>{t5}{t6}; $[24] = t5; $[25] = t6; $[26] = t7; } else { t7 = $[26]; } t2 = t7; break bb0; } if (mode === "tool-use") { const baseColorStr_0 = theme[messageColor]; const shimmerColorStr = theme[shimmerColor]; const baseRGB_0 = baseColorStr_0 ? parseRGB(baseColorStr_0) : null; const shimmerRGB = shimmerColorStr ? parseRGB(shimmerColorStr) : null; if (baseRGB_0 && shimmerRGB) { const interpolated_0 = interpolateColor(baseRGB_0, shimmerRGB, flashOpacity); const t5 = {message}; let t6; if ($[27] !== messageColor) { t6 = ; $[27] = messageColor; $[28] = t6; } else { t6 = $[28]; } let t7; if ($[29] !== t5 || $[30] !== t6) { t7 = <>{t5}{t6}; $[29] = t5; $[30] = t6; $[31] = t7; } else { t7 = $[31]; } t2 = t7; break bb0; } const color_1 = flashOpacity > 0.5 ? shimmerColor : messageColor; let t5; if ($[32] !== color_1 || $[33] !== message) { t5 = {message}; $[32] = color_1; $[33] = message; $[34] = t5; } else { t5 = $[34]; } let t6; if ($[35] !== messageColor) { t6 = ; $[35] = messageColor; $[36] = t6; } else { t6 = $[36]; } let t7; if ($[37] !== t5 || $[38] !== t6) { t7 = <>{t5}{t6}; $[37] = t5; $[38] = t6; $[39] = t7; } else { t7 = $[39]; } t2 = t7; break bb0; } } $[0] = flashOpacity; $[1] = message; $[2] = messageColor; $[3] = mode; $[4] = shimmerColor; $[5] = stalledIntensity; $[6] = themeName; $[7] = messageWidth; $[8] = segments; $[9] = t2; } else { messageWidth = $[7]; segments = $[8]; t2 = $[9]; } if (t2 !== Symbol.for("react.early_return_sentinel")) { return t2; } const shimmerStart = glimmerIndex - 1; const shimmerEnd = glimmerIndex + 1; if (shimmerStart >= messageWidth || shimmerEnd < 0) { let t3; if ($[40] !== message || $[41] !== messageColor) { t3 = {message}; $[40] = message; $[41] = messageColor; $[42] = t3; } else { t3 = $[42]; } let t4; if ($[43] !== messageColor) { t4 = ; $[43] = messageColor; $[44] = t4; } else { t4 = $[44]; } let t5; if ($[45] !== t3 || $[46] !== t4) { t5 = <>{t3}{t4}; $[45] = t3; $[46] = t4; $[47] = t5; } else { t5 = $[47]; } return t5; } const clampedStart = Math.max(0, shimmerStart); let colPos = 0; let before = ""; let shim = ""; let after = ""; if ($[48] !== after || $[49] !== before || $[50] !== clampedStart || $[51] !== colPos || $[52] !== segments || $[53] !== shim || $[54] !== shimmerEnd) { for (const { segment: segment_0, width } of segments) { if (colPos + width <= clampedStart) { before = before + segment_0; } else { if (colPos > shimmerEnd) { after = after + segment_0; } else { shim = shim + segment_0; } } colPos = colPos + width; } $[48] = after; $[49] = before; $[50] = clampedStart; $[51] = colPos; $[52] = segments; $[53] = shim; $[54] = shimmerEnd; $[55] = before; $[56] = after; $[57] = shim; $[58] = colPos; } else { before = $[55]; after = $[56]; shim = $[57]; colPos = $[58]; } let t3; if ($[59] !== before || $[60] !== messageColor) { t3 = before && {before}; $[59] = before; $[60] = messageColor; $[61] = t3; } else { t3 = $[61]; } let t4; if ($[62] !== shim || $[63] !== shimmerColor) { t4 = {shim}; $[62] = shim; $[63] = shimmerColor; $[64] = t4; } else { t4 = $[64]; } let t5; if ($[65] !== after || $[66] !== messageColor) { t5 = after && {after}; $[65] = after; $[66] = messageColor; $[67] = t5; } else { t5 = $[67]; } let t6; if ($[68] !== messageColor) { t6 = ; $[68] = messageColor; $[69] = t6; } else { t6 = $[69]; } let t7; if ($[70] !== t3 || $[71] !== t4 || $[72] !== t5 || $[73] !== t6) { t7 = <>{t3}{t4}{t5}{t6}; $[70] = t3; $[71] = t4; $[72] = t5; $[73] = t6; $[74] = t7; } else { t7 = $[74]; } return t7; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInN0cmluZ1dpZHRoIiwiVGV4dCIsInVzZVRoZW1lIiwiZ2V0R3JhcGhlbWVTZWdtZW50ZXIiLCJnZXRUaGVtZSIsIlRoZW1lIiwiU3Bpbm5lck1vZGUiLCJpbnRlcnBvbGF0ZUNvbG9yIiwicGFyc2VSR0IiLCJ0b1JHQkNvbG9yIiwiUHJvcHMiLCJtZXNzYWdlIiwibW9kZSIsIm1lc3NhZ2VDb2xvciIsImdsaW1tZXJJbmRleCIsImZsYXNoT3BhY2l0eSIsInNoaW1tZXJDb2xvciIsInN0YWxsZWRJbnRlbnNpdHkiLCJFUlJPUl9SRUQiLCJyIiwiZyIsImIiLCJHbGltbWVyTWVzc2FnZSIsInQwIiwiJCIsIl9jIiwidDEiLCJ1bmRlZmluZWQiLCJ0aGVtZU5hbWUiLCJtZXNzYWdlV2lkdGgiLCJzZWdtZW50cyIsInQyIiwiU3ltYm9sIiwiZm9yIiwiYmIwIiwidGhlbWUiLCJzZWdzIiwic2VnbWVudCIsInB1c2giLCJ3aWR0aCIsInQzIiwidDQiLCJiYXNlQ29sb3JTdHIiLCJiYXNlUkdCIiwiaW50ZXJwb2xhdGVkIiwiY29sb3IiLCJ0NSIsImNvbG9yXzAiLCJ0NiIsInQ3IiwiYmFzZUNvbG9yU3RyXzAiLCJzaGltbWVyQ29sb3JTdHIiLCJiYXNlUkdCXzAiLCJzaGltbWVyUkdCIiwiaW50ZXJwb2xhdGVkXzAiLCJjb2xvcl8xIiwic2hpbW1lclN0YXJ0Iiwic2hpbW1lckVuZCIsImNsYW1wZWRTdGFydCIsIk1hdGgiLCJtYXgiLCJjb2xQb3MiLCJiZWZvcmUiLCJzaGltIiwiYWZ0ZXIiLCJzZWdtZW50XzAiXSwic291cmNlcyI6WyJHbGltbWVyTWVzc2FnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBzdHJpbmdXaWR0aCB9IGZyb20gJy4uLy4uL2luay9zdHJpbmdXaWR0aC5qcydcbmltcG9ydCB7IFRleHQsIHVzZVRoZW1lIH0gZnJvbSAnLi4vLi4vaW5rLmpzJ1xuaW1wb3J0IHsgZ2V0R3JhcGhlbWVTZWdtZW50ZXIgfSBmcm9tICcuLi8uLi91dGlscy9pbnRsLmpzJ1xuaW1wb3J0IHsgZ2V0VGhlbWUsIHR5cGUgVGhlbWUgfSBmcm9tICcuLi8uLi91dGlscy90aGVtZS5qcydcbmltcG9ydCB0eXBlIHsgU3Bpbm5lck1vZGUgfSBmcm9tICcuL3R5cGVzLmpzJ1xuaW1wb3J0IHsgaW50ZXJwb2xhdGVDb2xvciwgcGFyc2VSR0IsIHRvUkdCQ29sb3IgfSBmcm9tICcuL3V0aWxzLmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICBtZXNzYWdlOiBzdHJpbmdcbiAgbW9kZTogU3Bpbm5lck1vZGVcbiAgbWVzc2FnZUNvbG9yOiBrZXlvZiBUaGVtZVxuICBnbGltbWVySW5kZXg6IG51bWJlclxuICBmbGFzaE9wYWNpdHk6IG51bWJlclxuICBzaGltbWVyQ29sb3I6IGtleW9mIFRoZW1lXG4gIHN0YWxsZWRJbnRlbnNpdHk/OiBudW1iZXJcbn1cblxuY29uc3QgRVJST1JfUkVEID0geyByOiAxNzEsIGc6IDQzLCBiOiA2MyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBHbGltbWVyTWVzc2FnZSh7XG4gIG1lc3NhZ2UsXG4gIG1vZGUsXG4gIG1lc3NhZ2VDb2xvcixcbiAgZ2xpbW1lckluZGV4LFxuICBmbGFzaE9wYWNpdHksXG4gIHNoaW1tZXJDb2xvcixcbiAgc3RhbGxlZEludGVuc2l0eSA9IDAsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IFt0aGVtZU5hbWVdID0gdXNlVGhlbWUoKVxuICBjb25zdCB0aGVtZSA9IGdldFRoZW1lKHRoZW1lTmFtZSlcblxuICAvLyBUaGlzIGNvbXBvbmVudCByZS1yZW5kZXJzIGF0IDIwZnBzIChnbGltbWVySW5kZXggY2hhbmdlcyBldmVyeSA1MG1zKSBidXRcbiAgLy8gbWVzc2FnZSBpcyBzdGFibGUgd2l0aGluIGEgdHVybi4gUHJlY29tcHV0ZSBncmFwaGVtZSBzZWdtZW50YXRpb24gKyB3aWR0aHNcbiAgLy8gb25jZSBwZXIgbWVzc2FnZSBpbnN0ZWFkIG9mIHBlciBmcmFtZS4gTWVhc3VyZWQgLTgxJSBvbiB0aGUgc2hpbW1lciBwYXRoLlxuICBjb25zdCB7IHNlZ21lbnRzLCBtZXNzYWdlV2lkdGggfSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHNlZ3M6IHsgc2VnbWVudDogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSA9IFtdXG4gICAgZm9yIChjb25zdCB7IHNlZ21lbnQgfSBvZiBnZXRHcmFwaGVtZVNlZ21lbnRlcigpLnNlZ21lbnQobWVzc2FnZSkpIHtcbiAgICAgIHNlZ3MucHVzaCh7IHNlZ21lbnQsIHdpZHRoOiBzdHJpbmdXaWR0aChzZWdtZW50KSB9KVxuICAgIH1cbiAgICByZXR1cm4geyBzZWdtZW50czogc2VncywgbWVzc2FnZVdpZHRoOiBzdHJpbmdXaWR0aChtZXNzYWdlKSB9XG4gIH0sIFttZXNzYWdlXSlcblxuICBpZiAoIW1lc3NhZ2UpIHJldHVybiBudWxsXG5cbiAgLy8gV2hlbiBzdGFsbGVkLCBzaG93IHRleHQgdGhhdCBzbW9vdGhseSB0cmFuc2l0aW9ucyB0byByZWRcbiAgaWYgKHN0YWxsZWRJbnRlbnNpdHkgPiAwKSB7XG4gICAgY29uc3QgYmFzZUNvbG9yU3RyID0gdGhlbWVbbWVzc2FnZUNvbG9yXVxuICAgIGNvbnN0IGJhc2VSR0IgPSBiYXNlQ29sb3JTdHIgPyBwYXJzZVJHQihiYXNlQ29sb3JTdHIpIDogbnVsbFxuXG4gICAgaWYgKGJhc2VSR0IpIHtcbiAgICAgIGNvbnN0IGludGVycG9sYXRlZCA9IGludGVycG9sYXRlQ29sb3IoXG4gICAgICAgIGJhc2VSR0IsXG4gICAgICAgIEVSUk9SX1JFRCxcbiAgICAgICAgc3RhbGxlZEludGVuc2l0eSxcbiAgICAgIClcbiAgICAgIGNvbnN0IGNvbG9yID0gdG9SR0JDb2xvcihpbnRlcnBvbGF0ZWQpXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxUZXh0IGNvbG9yPXtjb2xvcn0+e21lc3NhZ2V9PC9UZXh0PlxuICAgICAgICAgIDxUZXh0IGNvbG9yPXtjb2xvcn0+IDwvVGV4dD5cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgZm9yIEFOU0kgdGhlbWVzOiB1c2UgbWVzc2FnZUNvbG9yIHVudGlsIGZ1bGx5IHN0YWxsZWQsIHRoZW4gZXJyb3JcbiAgICBjb25zdCBjb2xvciA9IHN0YWxsZWRJbnRlbnNpdHkgPiAwLjUgPyAnZXJyb3InIDogbWVzc2FnZUNvbG9yXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUZXh0IGNvbG9yPXtjb2xvcn0+e21lc3NhZ2V9PC9UZXh0PlxuICAgICAgICA8VGV4dCBjb2xvcj17Y29sb3J9PiA8L1RleHQ+XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyB0b29sLXVzZSBtb2RlOiBhbGwgY2hhcnMgZmxhc2ggd2l0aCB0aGUgc2FtZSBvcGFjaXR5LCBzbyByZW5kZXIgYXMgYVxuICAvLyBzaW5nbGUgPFRleHQ+IGluc3RlYWQgb2YgTiBpbmRpdmlkdWFsIEZsYXNoaW5nQ2hhciBjb21wb25lbnRzLlxuICBpZiAobW9kZSA9PT0gJ3Rvb2wtdXNlJykge1xuICAgIGNvbnN0IGJhc2VDb2xvclN0ciA9IHRoZW1lW21lc3NhZ2VDb2xvcl1cbiAgICBjb25zdCBzaGltbWVyQ29sb3JTdHIgPSB0aGVtZVtzaGltbWVyQ29sb3JdXG4gICAgY29uc3QgYmFzZVJHQiA9IGJhc2VDb2xvclN0ciA/IHBhcnNlUkdCKGJhc2VDb2xvclN0cikgOiBudWxsXG4gICAgY29uc3Qgc2hpbW1lclJHQiA9IHNoaW1tZXJDb2xvclN0ciA/IHBhcnNlUkdCKHNoaW1tZXJDb2xvclN0cikgOiBudWxsXG5cbiAgICBpZiAoYmFzZVJHQiAmJiBzaGltbWVyUkdCKSB7XG4gICAgICBjb25zdCBpbnRlcnBvbGF0ZWQgPSBpbnRlcnBvbGF0ZUNvbG9yKGJhc2VSR0IsIHNoaW1tZXJSR0IsIGZsYXNoT3BhY2l0eSlcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPFRleHQgY29sb3I9e3RvUkdCQ29sb3IoaW50ZXJwb2xhdGVkKX0+e21lc3NhZ2V9PC9UZXh0PlxuICAgICAgICAgIDxUZXh0IGNvbG9yPXttZXNzYWdlQ29sb3J9PiA8L1RleHQ+XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGNvbG9yID0gZmxhc2hPcGFjaXR5ID4gMC41ID8gc2hpbW1lckNvbG9yIDogbWVzc2FnZUNvbG9yXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUZXh0IGNvbG9yPXtjb2xvcn0+e21lc3NhZ2V9PC9UZXh0PlxuICAgICAgICA8VGV4dCBjb2xvcj17bWVzc2FnZUNvbG9yfT4gPC9UZXh0PlxuICAgICAgPC8+XG4gICAgKVxuICB9XG5cbiAgLy8gU2hpbW1lciBtb2RlOiBvbmx5IGNoYXJzIHdpdGhpbiDCsTEgb2YgZ2xpbW1lckluZGV4IG5lZWQgdGhlIHNoaW1tZXJcbiAgLy8gY29sb3IuIFdoZW4gZ2xpbW1lciBpcyBvZmZzY3JlZW4sIHJlbmRlciBhcyBhIHNpbmdsZSA8VGV4dD4uXG4gIGNvbnN0IHNoaW1tZXJTdGFydCA9IGdsaW1tZXJJbmRleCAtIDFcbiAgY29uc3Qgc2hpbW1lckVuZCA9IGdsaW1tZXJJbmRleCArIDFcblxuICBpZiAoc2hpbW1lclN0YXJ0ID49IG1lc3NhZ2VXaWR0aCB8fCBzaGltbWVyRW5kIDwgMCkge1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8VGV4dCBjb2xvcj17bWVzc2FnZUNvbG9yfT57bWVzc2FnZX08L1RleHQ+XG4gICAgICAgIDxUZXh0IGNvbG9yPXttZXNzYWdlQ29sb3J9PiA8L1RleHQ+XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICAvLyBTcGxpdCBpbnRvIGF0IG1vc3QgMyBzZWdtZW50cyBieSB2aXN1YWwgY29sdW1uIHBvc2l0aW9uXG4gIGNvbnN0IGNsYW1wZWRTdGFydCA9IE1hdGgubWF4KDAsIHNoaW1tZXJTdGFydClcbiAgbGV0IGNvbFBvcyA9IDBcbiAgbGV0IGJlZm9yZSA9ICcnXG4gIGxldCBzaGltID0gJydcbiAgbGV0IGFmdGVyID0gJydcbiAgZm9yIChjb25zdCB7IHNlZ21lbnQsIHdpZHRoIH0gb2Ygc2VnbWVudHMpIHtcbiAgICBpZiAoY29sUG9zICsgd2lkdGggPD0gY2xhbXBlZFN0YXJ0KSB7XG4gICAgICBiZWZvcmUgKz0gc2VnbWVudFxuICAgIH0gZWxzZSBpZiAoY29sUG9zID4gc2hpbW1lckVuZCkge1xuICAgICAgYWZ0ZXIgKz0gc2VnbWVudFxuICAgIH0gZWxzZSB7XG4gICAgICBzaGltICs9IHNlZ21lbnRcbiAgICB9XG4gICAgY29sUG9zICs9IHdpZHRoXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7YmVmb3JlICYmIDxUZXh0IGNvbG9yPXttZXNzYWdlQ29sb3J9PntiZWZvcmV9PC9UZXh0Pn1cbiAgICAgIDxUZXh0IGNvbG9yPXtzaGltbWVyQ29sb3J9PntzaGltfTwvVGV4dD5cbiAgICAgIHthZnRlciAmJiA8VGV4dCBjb2xvcj17bWVzc2FnZUNvbG9yfT57YWZ0ZXJ9PC9UZXh0Pn1cbiAgICAgIDxUZXh0IGNvbG9yPXttZXNzYWdlQ29sb3J9PiA8L1RleHQ+XG4gICAgPC8+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFDOUIsU0FBU0MsV0FBVyxRQUFRLDBCQUEwQjtBQUN0RCxTQUFTQyxJQUFJLEVBQUVDLFFBQVEsUUFBUSxjQUFjO0FBQzdDLFNBQVNDLG9CQUFvQixRQUFRLHFCQUFxQjtBQUMxRCxTQUFTQyxRQUFRLEVBQUUsS0FBS0MsS0FBSyxRQUFRLHNCQUFzQjtBQUMzRCxjQUFjQyxXQUFXLFFBQVEsWUFBWTtBQUM3QyxTQUFTQyxnQkFBZ0IsRUFBRUMsUUFBUSxFQUFFQyxVQUFVLFFBQVEsWUFBWTtBQUVuRSxLQUFLQyxLQUFLLEdBQUc7RUFDWEMsT0FBTyxFQUFFLE1BQU07RUFDZkMsSUFBSSxFQUFFTixXQUFXO0VBQ2pCTyxZQUFZLEVBQUUsTUFBTVIsS0FBSztFQUN6QlMsWUFBWSxFQUFFLE1BQU07RUFDcEJDLFlBQVksRUFBRSxNQUFNO0VBQ3BCQyxZQUFZLEVBQUUsTUFBTVgsS0FBSztFQUN6QlksZ0JBQWdCLENBQUMsRUFBRSxNQUFNO0FBQzNCLENBQUM7QUFFRCxNQUFNQyxTQUFTLEdBQUc7RUFBRUMsQ0FBQyxFQUFFLEdBQUc7RUFBRUMsQ0FBQyxFQUFFLEVBQUU7RUFBRUMsQ0FBQyxFQUFFO0FBQUcsQ0FBQztBQUUxQyxPQUFPLFNBQUFDLGVBQUFDLEVBQUE7RUFBQSxNQUFBQyxDQUFBLEdBQUFDLEVBQUE7RUFBd0I7SUFBQWQsT0FBQTtJQUFBQyxJQUFBO0lBQUFDLFlBQUE7SUFBQUMsWUFBQTtJQUFBQyxZQUFBO0lBQUFDLFlBQUE7SUFBQUMsZ0JBQUEsRUFBQVM7RUFBQSxJQUFBSCxFQVF2QjtFQUROLE1BQUFOLGdCQUFBLEdBQUFTLEVBQW9CLEtBQXBCQyxTQUFvQixHQUFwQixDQUFvQixHQUFwQkQsRUFBb0I7RUFFcEIsT0FBQUUsU0FBQSxJQUFvQjFCLFFBQVEsQ0FBQyxDQUFDO0VBQUEsSUFBQTJCLFlBQUE7RUFBQSxJQUFBQyxRQUFBO0VBQUEsSUFBQUMsRUFBQTtFQUFBLElBQUFQLENBQUEsUUFBQVQsWUFBQSxJQUFBUyxDQUFBLFFBQUFiLE9BQUEsSUFBQWEsQ0FBQSxRQUFBWCxZQUFBLElBQUFXLENBQUEsUUFBQVosSUFBQSxJQUFBWSxDQUFBLFFBQUFSLFlBQUEsSUFBQVEsQ0FBQSxRQUFBUCxnQkFBQSxJQUFBTyxDQUFBLFFBQUFJLFNBQUE7SUFjVEcsRUFBQSxHQUFBQyxNQUFJLENBQUFDLEdBQUEsQ0FBSiw2QkFBRyxDQUFDO0lBQUFDLEdBQUE7TUFiekIsTUFBQUMsS0FBQSxHQUFjL0IsUUFBUSxDQUFDd0IsU0FBUyxDQUFDO01BQUEsSUFBQVEsSUFBQTtNQUFBLElBQUFaLENBQUEsU0FBQWIsT0FBQTtRQU0vQnlCLElBQUEsR0FBbUQsRUFBRTtRQUNyRCxLQUFLO1VBQUFDO1FBQUEsQ0FBaUIsSUFBSWxDLG9CQUFvQixDQUFDLENBQUMsQ0FBQWtDLE9BQVEsQ0FBQzFCLE9BQU8sQ0FBQztVQUMvRHlCLElBQUksQ0FBQUUsSUFBSyxDQUFDO1lBQUFELE9BQUE7WUFBQUUsS0FBQSxFQUFrQnZDLFdBQVcsQ0FBQ3FDLE9BQU87VUFBRSxDQUFDLENBQUM7UUFBQTtRQUNwRGIsQ0FBQSxPQUFBYixPQUFBO1FBQUFhLENBQUEsT0FBQVksSUFBQTtNQUFBO1FBQUFBLElBQUEsR0FBQVosQ0FBQTtNQUFBO01BQUEsSUFBQWdCLEVBQUE7TUFBQSxJQUFBaEIsQ0FBQSxTQUFBYixPQUFBO1FBQ3NDNkIsRUFBQSxHQUFBeEMsV0FBVyxDQUFDVyxPQUFPLENBQUM7UUFBQWEsQ0FBQSxPQUFBYixPQUFBO1FBQUFhLENBQUEsT0FBQWdCLEVBQUE7TUFBQTtRQUFBQSxFQUFBLEdBQUFoQixDQUFBO01BQUE7TUFBQSxJQUFBaUIsRUFBQTtNQUFBLElBQUFqQixDQUFBLFNBQUFZLElBQUEsSUFBQVosQ0FBQSxTQUFBZ0IsRUFBQTtRQUFwREMsRUFBQTtVQUFBWCxRQUFBLEVBQVlNLElBQUk7VUFBQVAsWUFBQSxFQUFnQlc7UUFBcUIsQ0FBQztRQUFBaEIsQ0FBQSxPQUFBWSxJQUFBO1FBQUFaLENBQUEsT0FBQWdCLEVBQUE7UUFBQWhCLENBQUEsT0FBQWlCLEVBQUE7TUFBQTtRQUFBQSxFQUFBLEdBQUFqQixDQUFBO01BQUE7TUFML0Q7UUFBQU0sUUFBQTtRQUFBRDtNQUFBLElBS0VZLEVBQTZEO01BRy9ELElBQUksQ0FBQzlCLE9BQU87UUFBU29CLEVBQUEsT0FBSTtRQUFKLE1BQUFHLEdBQUE7TUFBSTtNQUd6QixJQUFJakIsZ0JBQWdCLEdBQUcsQ0FBQztRQUN0QixNQUFBeUIsWUFBQSxHQUFxQlAsS0FBSyxDQUFDdEIsWUFBWSxDQUFDO1FBQ3hDLE1BQUE4QixPQUFBLEdBQWdCRCxZQUFZLEdBQUdsQyxRQUFRLENBQUNrQyxZQUFtQixDQUFDLEdBQTVDLElBQTRDO1FBRTVELElBQUlDLE9BQU87VUFDVCxNQUFBQyxZQUFBLEdBQXFCckMsZ0JBQWdCLENBQ25Db0MsT0FBTyxFQUNQekIsU0FBUyxFQUNURCxnQkFDRixDQUFDO1VBQ0QsTUFBQTRCLEtBQUEsR0FBY3BDLFVBQVUsQ0FBQ21DLFlBQVksQ0FBQztVQUFBLElBQUFFLEVBQUE7VUFBQSxJQUFBdEIsQ0FBQSxTQUFBcUIsS0FBQTtZQUlsQ0MsRUFBQSxJQUFDLElBQUksQ0FBUUQsS0FBSyxDQUFMQSxNQUFJLENBQUMsQ0FBRSxDQUFDLEVBQXBCLElBQUksQ0FBdUI7WUFBQXJCLENBQUEsT0FBQXFCLEtBQUE7WUFBQXJCLENBQUEsT0FBQXNCLEVBQUE7VUFBQTtZQUFBQSxFQUFBLEdBQUF0QixDQUFBO1VBQUE7VUFGOUJPLEVBQUEsS0FDRSxDQUFDLElBQUksQ0FBUWMsS0FBSyxDQUFMQSxNQUFJLENBQUMsQ0FBR2xDLFFBQU0sQ0FBRSxFQUE1QixJQUFJLENBQ0wsQ0FBQW1DLEVBQTJCLENBQUMsR0FDM0I7VUFISCxNQUFBWixHQUFBO1FBR0c7UUFLUCxNQUFBYSxPQUFBLEdBQWM5QixnQkFBZ0IsR0FBRyxHQUE0QixHQUEvQyxPQUErQyxHQUEvQ0osWUFBK0M7UUFBQSxJQUFBaUMsRUFBQTtRQUFBLElBQUF0QixDQUFBLFNBQUF1QixPQUFBLElBQUF2QixDQUFBLFNBQUFiLE9BQUE7VUFHekRtQyxFQUFBLElBQUMsSUFBSSxDQUFRRCxLQUFLLENBQUxBLFFBQUksQ0FBQyxDQUFHbEMsUUFBTSxDQUFFLEVBQTVCLElBQUksQ0FBK0I7VUFBQWEsQ0FBQSxPQUFBdUIsT0FBQTtVQUFBdkIsQ0FBQSxPQUFBYixPQUFBO1VBQUFhLENBQUEsT0FBQXNCLEVBQUE7UUFBQTtVQUFBQSxFQUFBLEdBQUF0QixDQUFBO1FBQUE7UUFBQSxJQUFBd0IsRUFBQTtRQUFBLElBQUF4QixDQUFBLFNBQUF1QixPQUFBO1VBQ3BDQyxFQUFBLElBQUMsSUFBSSxDQUFRSCxLQUFLLENBQUxBLFFBQUksQ0FBQyxDQUFFLENBQUMsRUFBcEIsSUFBSSxDQUF1QjtVQUFBckIsQ0FBQSxPQUFBdUIsT0FBQTtVQUFBdkIsQ0FBQSxPQUFBd0IsRUFBQTtRQUFBO1VBQUFBLEVBQUEsR0FBQXhCLENBQUE7UUFBQTtRQUFBLElBQUF5QixFQUFBO1FBQUEsSUFBQXpCLENBQUEsU0FBQXNCLEVBQUEsSUFBQXRCLENBQUEsU0FBQXdCLEVBQUE7VUFGOUJDLEVBQUEsS0FDRSxDQUFBSCxFQUFtQyxDQUNuQyxDQUFBRSxFQUEyQixDQUFDLEdBQzNCO1VBQUF4QixDQUFBLE9BQUFzQixFQUFBO1VBQUF0QixDQUFBLE9BQUF3QixFQUFBO1VBQUF4QixDQUFBLE9BQUF5QixFQUFBO1FBQUE7VUFBQUEsRUFBQSxHQUFBekIsQ0FBQTtRQUFBO1FBSEhPLEVBQUEsR0FBQWtCLEVBR0c7UUFISCxNQUFBZixHQUFBO01BR0c7TUFNUCxJQUFJdEIsSUFBSSxLQUFLLFVBQVU7UUFDckIsTUFBQXNDLGNBQUEsR0FBcUJmLEtBQUssQ0FBQ3RCLFlBQVksQ0FBQztRQUN4QyxNQUFBc0MsZUFBQSxHQUF3QmhCLEtBQUssQ0FBQ25CLFlBQVksQ0FBQztRQUMzQyxNQUFBb0MsU0FBQSxHQUFnQlYsY0FBWSxHQUFHbEMsUUFBUSxDQUFDa0MsY0FBbUIsQ0FBQyxHQUE1QyxJQUE0QztRQUM1RCxNQUFBVyxVQUFBLEdBQW1CRixlQUFlLEdBQUczQyxRQUFRLENBQUMyQyxlQUFzQixDQUFDLEdBQWxELElBQWtEO1FBRXJFLElBQUlDLFNBQXFCLElBQXJCQyxVQUFxQjtVQUN2QixNQUFBQyxjQUFBLEdBQXFCL0MsZ0JBQWdCLENBQUNvQyxTQUFPLEVBQUVVLFVBQVUsRUFBRXRDLFlBQVksQ0FBQztVQUdwRSxNQUFBK0IsRUFBQSxJQUFDLElBQUksQ0FBUSxLQUF3QixDQUF4QixDQUFBckMsVUFBVSxDQUFDbUMsY0FBWSxFQUFDLENBQUdqQyxRQUFNLENBQUUsRUFBL0MsSUFBSSxDQUFrRDtVQUFBLElBQUFxQyxFQUFBO1VBQUEsSUFBQXhCLENBQUEsU0FBQVgsWUFBQTtZQUN2RG1DLEVBQUEsSUFBQyxJQUFJLENBQVFuQyxLQUFZLENBQVpBLGFBQVcsQ0FBQyxDQUFFLENBQUMsRUFBM0IsSUFBSSxDQUE4QjtZQUFBVyxDQUFBLE9BQUFYLFlBQUE7WUFBQVcsQ0FBQSxPQUFBd0IsRUFBQTtVQUFBO1lBQUFBLEVBQUEsR0FBQXhCLENBQUE7VUFBQTtVQUFBLElBQUF5QixFQUFBO1VBQUEsSUFBQXpCLENBQUEsU0FBQXNCLEVBQUEsSUFBQXRCLENBQUEsU0FBQXdCLEVBQUE7WUFGckNDLEVBQUEsS0FDRSxDQUFBSCxFQUFzRCxDQUN0RCxDQUFBRSxFQUFrQyxDQUFDLEdBQ2xDO1lBQUF4QixDQUFBLE9BQUFzQixFQUFBO1lBQUF0QixDQUFBLE9BQUF3QixFQUFBO1lBQUF4QixDQUFBLE9BQUF5QixFQUFBO1VBQUE7WUFBQUEsRUFBQSxHQUFBekIsQ0FBQTtVQUFBO1VBSEhPLEVBQUEsR0FBQWtCLEVBR0c7VUFISCxNQUFBZixHQUFBO1FBR0c7UUFJUCxNQUFBcUIsT0FBQSxHQUFjeEMsWUFBWSxHQUFHLEdBQWlDLEdBQWhEQyxZQUFnRCxHQUFoREgsWUFBZ0Q7UUFBQSxJQUFBaUMsRUFBQTtRQUFBLElBQUF0QixDQUFBLFNBQUErQixPQUFBLElBQUEvQixDQUFBLFNBQUFiLE9BQUE7VUFHMURtQyxFQUFBLElBQUMsSUFBSSxDQUFRRCxLQUFLLENBQUxBLFFBQUksQ0FBQyxDQUFHbEMsUUFBTSxDQUFFLEVBQTVCLElBQUksQ0FBK0I7VUFBQWEsQ0FBQSxPQUFBK0IsT0FBQTtVQUFBL0IsQ0FBQSxPQUFBYixPQUFBO1VBQUFhLENBQUEsT0FBQXNCLEVBQUE7UUFBQTtVQUFBQSxFQUFBLEdBQUF0QixDQUFBO1FBQUE7UUFBQSxJQUFBd0IsRUFBQTtRQUFBLElBQUF4QixDQUFBLFNBQUFYLFlBQUE7VUFDcENtQyxFQUFBLElBQUMsSUFBSSxDQUFRbkMsS0FBWSxDQUFaQSxhQUFXLENBQUMsQ0FBRSxDQUFDLEVBQTNCLElBQUksQ0FBOEI7VUFBQVcsQ0FBQSxPQUFBWCxZQUFBO1VBQUFXLENBQUEsT0FBQXdCLEVBQUE7UUFBQTtVQUFBQSxFQUFBLEdBQUF4QixDQUFBO1FBQUE7UUFBQSxJQUFBeUIsRUFBQTtRQUFBLElBQUF6QixDQUFBLFNBQUFzQixFQUFBLElBQUF0QixDQUFBLFNBQUF3QixFQUFBO1VBRnJDQyxFQUFBLEtBQ0UsQ0FBQUgsRUFBbUMsQ0FDbkMsQ0FBQUUsRUFBa0MsQ0FBQyxHQUNsQztVQUFBeEIsQ0FBQSxPQUFBc0IsRUFBQTtVQUFBdEIsQ0FBQSxPQUFBd0IsRUFBQTtVQUFBeEIsQ0FBQSxPQUFBeUIsRUFBQTtRQUFBO1VBQUFBLEVBQUEsR0FBQXpCLENBQUE7UUFBQTtRQUhITyxFQUFBLEdBQUFrQixFQUdHO1FBSEgsTUFBQWYsR0FBQTtNQUdHO0lBRU47SUFBQVYsQ0FBQSxNQUFBVCxZQUFBO0lBQUFTLENBQUEsTUFBQWIsT0FBQTtJQUFBYSxDQUFBLE1BQUFYLFlBQUE7SUFBQVcsQ0FBQSxNQUFBWixJQUFBO0lBQUFZLENBQUEsTUFBQVIsWUFBQTtJQUFBUSxDQUFBLE1BQUFQLGdCQUFBO0lBQUFPLENBQUEsTUFBQUksU0FBQTtJQUFBSixDQUFBLE1BQUFLLFlBQUE7SUFBQUwsQ0FBQSxNQUFBTSxRQUFBO0lBQUFOLENBQUEsTUFBQU8sRUFBQTtFQUFBO0lBQUFGLFlBQUEsR0FBQUwsQ0FBQTtJQUFBTSxRQUFBLEdBQUFOLENBQUE7SUFBQU8sRUFBQSxHQUFBUCxDQUFBO0VBQUE7RUFBQSxJQUFBTyxFQUFBLEtBQUFDLE1BQUEsQ0FBQUMsR0FBQTtJQUFBLE9BQUFGLEVBQUE7RUFBQTtFQUlELE1BQUF5QixZQUFBLEdBQXFCMUMsWUFBWSxHQUFHLENBQUM7RUFDckMsTUFBQTJDLFVBQUEsR0FBbUIzQyxZQUFZLEdBQUcsQ0FBQztFQUVuQyxJQUFJMEMsWUFBWSxJQUFJM0IsWUFBOEIsSUFBZDRCLFVBQVUsR0FBRyxDQUFDO0lBQUEsSUFBQWpCLEVBQUE7SUFBQSxJQUFBaEIsQ0FBQSxTQUFBYixPQUFBLElBQUFhLENBQUEsU0FBQVgsWUFBQTtNQUc1QzJCLEVBQUEsSUFBQyxJQUFJLENBQVEzQixLQUFZLENBQVpBLGFBQVcsQ0FBQyxDQUFHRixRQUFNLENBQUUsRUFBbkMsSUFBSSxDQUFzQztNQUFBYSxDQUFBLE9BQUFiLE9BQUE7TUFBQWEsQ0FBQSxPQUFBWCxZQUFBO01BQUFXLENBQUEsT0FBQWdCLEVBQUE7SUFBQTtNQUFBQSxFQUFBLEdBQUFoQixDQUFBO0lBQUE7SUFBQSxJQUFBaUIsRUFBQTtJQUFBLElBQUFqQixDQUFBLFNBQUFYLFlBQUE7TUFDM0M0QixFQUFBLElBQUMsSUFBSSxDQUFRNUIsS0FBWSxDQUFaQSxhQUFXLENBQUMsQ0FBRSxDQUFDLEVBQTNCLElBQUksQ0FBOEI7TUFBQVcsQ0FBQSxPQUFBWCxZQUFBO01BQUFXLENBQUEsT0FBQWlCLEVBQUE7SUFBQTtNQUFBQSxFQUFBLEdBQUFqQixDQUFBO0lBQUE7SUFBQSxJQUFBc0IsRUFBQTtJQUFBLElBQUF0QixDQUFBLFNBQUFnQixFQUFBLElBQUFoQixDQUFBLFNBQUFpQixFQUFBO01BRnJDSyxFQUFBLEtBQ0UsQ0FBQU4sRUFBMEMsQ0FDMUMsQ0FBQUMsRUFBa0MsQ0FBQyxHQUNsQztNQUFBakIsQ0FBQSxPQUFBZ0IsRUFBQTtNQUFBaEIsQ0FBQSxPQUFBaUIsRUFBQTtNQUFBakIsQ0FBQSxPQUFBc0IsRUFBQTtJQUFBO01BQUFBLEVBQUEsR0FBQXRCLENBQUE7SUFBQTtJQUFBLE9BSEhzQixFQUdHO0VBQUE7RUFLUCxNQUFBWSxZQUFBLEdBQXFCQyxJQUFJLENBQUFDLEdBQUksQ0FBQyxDQUFDLEVBQUVKLFlBQVksQ0FBQztFQUM5QyxJQUFBSyxNQUFBLEdBQWEsQ0FBQztFQUNkLElBQUFDLE1BQUEsR0FBYSxFQUFFO0VBQ2YsSUFBQUMsSUFBQSxHQUFXLEVBQUU7RUFDYixJQUFBQyxLQUFBLEdBQVksRUFBRTtFQUFBLElBQUF4QyxDQUFBLFNBQUF3QyxLQUFBLElBQUF4QyxDQUFBLFNBQUFzQyxNQUFBLElBQUF0QyxDQUFBLFNBQUFrQyxZQUFBLElBQUFsQyxDQUFBLFNBQUFxQyxNQUFBLElBQUFyQyxDQUFBLFNBQUFNLFFBQUEsSUFBQU4sQ0FBQSxTQUFBdUMsSUFBQSxJQUFBdkMsQ0FBQSxTQUFBaUMsVUFBQTtJQUNkLEtBQUs7TUFBQXBCLE9BQUEsRUFBQTRCLFNBQUE7TUFBQTFCO0lBQUEsQ0FBd0IsSUFBSVQsUUFBUTtNQUN2QyxJQUFJK0IsTUFBTSxHQUFHdEIsS0FBSyxJQUFJbUIsWUFBWTtRQUNoQ0ksTUFBQSxHQUFBQSxNQUFNLEdBQUl6QixTQUFPO01BQUE7UUFDWixJQUFJd0IsTUFBTSxHQUFHSixVQUFVO1VBQzVCTyxLQUFBLEdBQUFBLEtBQUssR0FBSTNCLFNBQU87UUFBQTtVQUVoQjBCLElBQUEsR0FBQUEsSUFBSSxHQUFJMUIsU0FBTztRQUFBO01BQ2hCO01BQ0R3QixNQUFBLEdBQUFBLE1BQU0sR0FBSXRCLEtBQUs7SUFBQTtJQUNoQmYsQ0FBQSxPQUFBd0MsS0FBQTtJQUFBeEMsQ0FBQSxPQUFBc0MsTUFBQTtJQUFBdEMsQ0FBQSxPQUFBa0MsWUFBQTtJQUFBbEMsQ0FBQSxPQUFBcUMsTUFBQTtJQUFBckMsQ0FBQSxPQUFBTSxRQUFBO0lBQUFOLENBQUEsT0FBQXVDLElBQUE7SUFBQXZDLENBQUEsT0FBQWlDLFVBQUE7SUFBQWpDLENBQUEsT0FBQXNDLE1BQUE7SUFBQXRDLENBQUEsT0FBQXdDLEtBQUE7SUFBQXhDLENBQUEsT0FBQXVDLElBQUE7SUFBQXZDLENBQUEsT0FBQXFDLE1BQUE7RUFBQTtJQUFBQyxNQUFBLEdBQUF0QyxDQUFBO0lBQUF3QyxLQUFBLEdBQUF4QyxDQUFBO0lBQUF1QyxJQUFBLEdBQUF2QyxDQUFBO0lBQUFxQyxNQUFBLEdBQUFyQyxDQUFBO0VBQUE7RUFBQSxJQUFBZ0IsRUFBQTtFQUFBLElBQUFoQixDQUFBLFNBQUFzQyxNQUFBLElBQUF0QyxDQUFBLFNBQUFYLFlBQUE7SUFJSTJCLEVBQUEsR0FBQXNCLE1BQW9ELElBQTFDLENBQUMsSUFBSSxDQUFRakQsS0FBWSxDQUFaQSxhQUFXLENBQUMsQ0FBR2lELE9BQUssQ0FBRSxFQUFsQyxJQUFJLENBQXFDO0lBQUF0QyxDQUFBLE9BQUFzQyxNQUFBO0lBQUF0QyxDQUFBLE9BQUFYLFlBQUE7SUFBQVcsQ0FBQSxPQUFBZ0IsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQWhCLENBQUE7RUFBQTtFQUFBLElBQUFpQixFQUFBO0VBQUEsSUFBQWpCLENBQUEsU0FBQXVDLElBQUEsSUFBQXZDLENBQUEsU0FBQVIsWUFBQTtJQUNyRHlCLEVBQUEsSUFBQyxJQUFJLENBQVF6QixLQUFZLENBQVpBLGFBQVcsQ0FBQyxDQUFHK0MsS0FBRyxDQUFFLEVBQWhDLElBQUksQ0FBbUM7SUFBQXZDLENBQUEsT0FBQXVDLElBQUE7SUFBQXZDLENBQUEsT0FBQVIsWUFBQTtJQUFBUSxDQUFBLE9BQUFpQixFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBakIsQ0FBQTtFQUFBO0VBQUEsSUFBQXNCLEVBQUE7RUFBQSxJQUFBdEIsQ0FBQSxTQUFBd0MsS0FBQSxJQUFBeEMsQ0FBQSxTQUFBWCxZQUFBO0lBQ3ZDaUMsRUFBQSxHQUFBa0IsS0FBa0QsSUFBekMsQ0FBQyxJQUFJLENBQVFuRCxLQUFZLENBQVpBLGFBQVcsQ0FBQyxDQUFHbUQsTUFBSSxDQUFFLEVBQWpDLElBQUksQ0FBb0M7SUFBQXhDLENBQUEsT0FBQXdDLEtBQUE7SUFBQXhDLENBQUEsT0FBQVgsWUFBQTtJQUFBVyxDQUFBLE9BQUFzQixFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBdEIsQ0FBQTtFQUFBO0VBQUEsSUFBQXdCLEVBQUE7RUFBQSxJQUFBeEIsQ0FBQSxTQUFBWCxZQUFBO0lBQ25EbUMsRUFBQSxJQUFDLElBQUksQ0FBUW5DLEtBQVksQ0FBWkEsYUFBVyxDQUFDLENBQUUsQ0FBQyxFQUEzQixJQUFJLENBQThCO0lBQUFXLENBQUEsT0FBQVgsWUFBQTtJQUFBVyxDQUFBLE9BQUF3QixFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBeEIsQ0FBQTtFQUFBO0VBQUEsSUFBQXlCLEVBQUE7RUFBQSxJQUFBekIsQ0FBQSxTQUFBZ0IsRUFBQSxJQUFBaEIsQ0FBQSxTQUFBaUIsRUFBQSxJQUFBakIsQ0FBQSxTQUFBc0IsRUFBQSxJQUFBdEIsQ0FBQSxTQUFBd0IsRUFBQTtJQUpyQ0MsRUFBQSxLQUNHLENBQUFULEVBQW1ELENBQ3BELENBQUFDLEVBQXVDLENBQ3RDLENBQUFLLEVBQWlELENBQ2xELENBQUFFLEVBQWtDLENBQUMsR0FDbEM7SUFBQXhCLENBQUEsT0FBQWdCLEVBQUE7SUFBQWhCLENBQUEsT0FBQWlCLEVBQUE7SUFBQWpCLENBQUEsT0FBQXNCLEVBQUE7SUFBQXRCLENBQUEsT0FBQXdCLEVBQUE7SUFBQXhCLENBQUEsT0FBQXlCLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUF6QixDQUFBO0VBQUE7RUFBQSxPQUxIeUIsRUFLRztBQUFBIiwiaWdub3JlTGlzdCI6W119