UNPKG

mantine-datepicker-jalali

Version:
135 lines (128 loc) 18.6 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var dayjs = require('dayjs'); var React = require('react'); var useUncontrolledDates = require('../use-uncontrolled-dates/use-uncontrolled-dates.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; } var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs); function isInRange(date, range) { const _range = [...range].sort((a, b) => a.getTime() - b.getTime()); return dayjs__default(date).subtract(1, "day").isBefore(_range[1]) && dayjs__default(date).add(1, "day").isAfter(_range[0]); } function useDatesState({ type, level, value, defaultValue, onChange, allowSingleDateInRange, allowDeselect, onMouseLeave }) { const [_value, setValue] = useUncontrolledDates.useUncontrolledDates({ type, value, defaultValue, onChange }); const [pickedDate, setPickedDate] = React.useState(type === "range" ? _value[0] && !_value[1] ? _value[0] : null : null); const [hoveredDate, setHoveredDate] = React.useState(null); const onDateChange = (date) => { if (type === "range") { if (pickedDate instanceof Date && !_value[1]) { if (dayjs__default(date).isSame(pickedDate, level) && !allowSingleDateInRange) { setPickedDate(null); setHoveredDate(null); setValue([null, null]); return; } const result = [date, pickedDate]; result.sort((a, b) => a.getTime() - b.getTime()); setValue(result); setHoveredDate(null); setPickedDate(null); return; } if (_value[0] && !_value[1] && dayjs__default(date).isSame(_value[0], level) && !allowSingleDateInRange) { setPickedDate(null); setHoveredDate(null); setValue([null, null]); return; } setValue([date, null]); setHoveredDate(null); setPickedDate(date); return; } if (type === "multiple") { if (_value.some((selected) => dayjs__default(selected).isSame(date, level))) { setValue(_value.filter((selected) => !dayjs__default(selected).isSame(date, level))); } else { setValue([..._value, date]); } return; } if (_value && allowDeselect && dayjs__default(date).isSame(_value, level)) { setValue(null); } else { setValue(date); } }; const isDateInRange = (date) => { if (pickedDate instanceof Date && hoveredDate instanceof Date) { return isInRange(date, [hoveredDate, pickedDate]); } if (_value[0] instanceof Date && _value[1] instanceof Date) { return isInRange(date, _value); } return false; }; const onRootMouseLeave = type === "range" ? (event) => { onMouseLeave == null ? void 0 : onMouseLeave(event); setHoveredDate(null); } : onMouseLeave; const isFirstInRange = (date) => { if (!(_value[0] instanceof Date)) { return false; } if (dayjs__default(date).isSame(_value[0], level)) { return !(hoveredDate && dayjs__default(hoveredDate).isBefore(_value[0])); } return false; }; const isLastInRange = (date) => { if (_value[1] instanceof Date) { return dayjs__default(date).isSame(_value[1], level); } if (!(_value[0] instanceof Date) || !hoveredDate) { return false; } return dayjs__default(hoveredDate).isBefore(_value[0]) && dayjs__default(date).isSame(_value[0], level); }; const getControlProps = (date) => { if (type === "range") { return { selected: _value.some((selection) => selection && dayjs__default(selection).isSame(date, level)), inRange: isDateInRange(date), firstInRange: isFirstInRange(date), lastInRange: isLastInRange(date), "data-autofocus": !!_value[0] && dayjs__default(_value[0]).isSame(date, level) || void 0 }; } if (type === "multiple") { return { selected: _value.some((selection) => selection && dayjs__default(selection).isSame(date, level)), "data-autofocus": !!_value[0] && dayjs__default(_value[0]).isSame(date, level) || void 0 }; } const selected = dayjs__default(_value).isSame(date, level); return { selected, "data-autofocus": selected || void 0 }; }; const onHoveredDateChange = type === "range" && pickedDate ? setHoveredDate : () => { }; return { onDateChange, onRootMouseLeave, onHoveredDateChange, getControlProps, _value, setValue }; } exports.useDatesState = useDatesState; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWRhdGVzLXN0YXRlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvdXNlLWRhdGVzLXN0YXRlL3VzZS1kYXRlcy1zdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBEYXRlUGlja2VyVHlwZSwgUGlja2VyQmFzZVByb3BzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgdXNlVW5jb250cm9sbGVkRGF0ZXMgfSBmcm9tICcuLi91c2UtdW5jb250cm9sbGVkLWRhdGVzL3VzZS11bmNvbnRyb2xsZWQtZGF0ZXMnO1xuXG5mdW5jdGlvbiBpc0luUmFuZ2UoZGF0ZTogRGF0ZSwgcmFuZ2U6IFtEYXRlLCBEYXRlXSkge1xuICBjb25zdCBfcmFuZ2UgPSBbLi4ucmFuZ2VdLnNvcnQoKGEsIGIpID0+IGEuZ2V0VGltZSgpIC0gYi5nZXRUaW1lKCkpO1xuICByZXR1cm4gKFxuICAgIGRheWpzKGRhdGUpLnN1YnRyYWN0KDEsICdkYXknKS5pc0JlZm9yZShfcmFuZ2VbMV0pICYmXG4gICAgZGF5anMoZGF0ZSkuYWRkKDEsICdkYXknKS5pc0FmdGVyKF9yYW5nZVswXSlcbiAgKTtcbn1cblxuaW50ZXJmYWNlIFVzZURhdGVzUmFuZ2VJbnB1dDxUeXBlIGV4dGVuZHMgRGF0ZVBpY2tlclR5cGUgPSAnZGVmYXVsdCc+XG4gIGV4dGVuZHMgUGlja2VyQmFzZVByb3BzPFR5cGU+IHtcbiAgbGV2ZWw6ICd5ZWFyJyB8ICdtb250aCcgfCAnZGF5JztcbiAgdHlwZTogVHlwZTtcbiAgb25Nb3VzZUxlYXZlPyhldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pOiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlRGF0ZXNTdGF0ZTxUeXBlIGV4dGVuZHMgRGF0ZVBpY2tlclR5cGUgPSAnZGVmYXVsdCc+KHtcbiAgdHlwZSxcbiAgbGV2ZWwsXG4gIHZhbHVlLFxuICBkZWZhdWx0VmFsdWUsXG4gIG9uQ2hhbmdlLFxuICBhbGxvd1NpbmdsZURhdGVJblJhbmdlLFxuICBhbGxvd0Rlc2VsZWN0LFxuICBvbk1vdXNlTGVhdmUsXG59OiBVc2VEYXRlc1JhbmdlSW5wdXQ8VHlwZT4pIHtcbiAgY29uc3QgW192YWx1ZSwgc2V0VmFsdWVdID0gdXNlVW5jb250cm9sbGVkRGF0ZXMoeyB0eXBlLCB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBvbkNoYW5nZSB9KTtcblxuICBjb25zdCBbcGlja2VkRGF0ZSwgc2V0UGlja2VkRGF0ZV0gPSB1c2VTdGF0ZTxEYXRlPihcbiAgICB0eXBlID09PSAncmFuZ2UnID8gKF92YWx1ZVswXSAmJiAhX3ZhbHVlWzFdID8gX3ZhbHVlWzBdIDogbnVsbCkgOiBudWxsXG4gICk7XG4gIGNvbnN0IFtob3ZlcmVkRGF0ZSwgc2V0SG92ZXJlZERhdGVdID0gdXNlU3RhdGU8RGF0ZT4obnVsbCk7XG5cbiAgY29uc3Qgb25EYXRlQ2hhbmdlID0gKGRhdGU6IERhdGUpID0+IHtcbiAgICBpZiAodHlwZSA9PT0gJ3JhbmdlJykge1xuICAgICAgaWYgKHBpY2tlZERhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFfdmFsdWVbMV0pIHtcbiAgICAgICAgaWYgKGRheWpzKGRhdGUpLmlzU2FtZShwaWNrZWREYXRlLCBsZXZlbCkgJiYgIWFsbG93U2luZ2xlRGF0ZUluUmFuZ2UpIHtcbiAgICAgICAgICBzZXRQaWNrZWREYXRlKG51bGwpO1xuICAgICAgICAgIHNldEhvdmVyZWREYXRlKG51bGwpO1xuICAgICAgICAgIHNldFZhbHVlKFtudWxsLCBudWxsXSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0OiBbRGF0ZSwgRGF0ZV0gPSBbZGF0ZSwgcGlja2VkRGF0ZV07XG4gICAgICAgIHJlc3VsdC5zb3J0KChhLCBiKSA9PiBhLmdldFRpbWUoKSAtIGIuZ2V0VGltZSgpKTtcbiAgICAgICAgc2V0VmFsdWUocmVzdWx0KTtcbiAgICAgICAgc2V0SG92ZXJlZERhdGUobnVsbCk7XG4gICAgICAgIHNldFBpY2tlZERhdGUobnVsbCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBfdmFsdWVbMF0gJiZcbiAgICAgICAgIV92YWx1ZVsxXSAmJlxuICAgICAgICBkYXlqcyhkYXRlKS5pc1NhbWUoX3ZhbHVlWzBdLCBsZXZlbCkgJiZcbiAgICAgICAgIWFsbG93U2luZ2xlRGF0ZUluUmFuZ2VcbiAgICAgICkge1xuICAgICAgICBzZXRQaWNrZWREYXRlKG51bGwpO1xuICAgICAgICBzZXRIb3ZlcmVkRGF0ZShudWxsKTtcbiAgICAgICAgc2V0VmFsdWUoW251bGwsIG51bGxdKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBzZXRWYWx1ZShbZGF0ZSwgbnVsbF0pO1xuICAgICAgc2V0SG92ZXJlZERhdGUobnVsbCk7XG4gICAgICBzZXRQaWNrZWREYXRlKGRhdGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAnbXVsdGlwbGUnKSB7XG4gICAgICBpZiAoX3ZhbHVlLnNvbWUoKHNlbGVjdGVkOiBEYXRlKSA9PiBkYXlqcyhzZWxlY3RlZCkuaXNTYW1lKGRhdGUsIGxldmVsKSkpIHtcbiAgICAgICAgc2V0VmFsdWUoX3ZhbHVlLmZpbHRlcigoc2VsZWN0ZWQ6IERhdGUpID0+ICFkYXlqcyhzZWxlY3RlZCkuaXNTYW1lKGRhdGUsIGxldmVsKSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0VmFsdWUoWy4uLl92YWx1ZSwgZGF0ZV0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKF92YWx1ZSAmJiBhbGxvd0Rlc2VsZWN0ICYmIGRheWpzKGRhdGUpLmlzU2FtZShfdmFsdWUsIGxldmVsKSkge1xuICAgICAgc2V0VmFsdWUobnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFZhbHVlKGRhdGUpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBpc0RhdGVJblJhbmdlID0gKGRhdGU6IERhdGUpID0+IHtcbiAgICBpZiAocGlja2VkRGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgaG92ZXJlZERhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4gaXNJblJhbmdlKGRhdGUsIFtob3ZlcmVkRGF0ZSwgcGlja2VkRGF0ZV0pO1xuICAgIH1cblxuICAgIGlmIChfdmFsdWVbMF0gaW5zdGFuY2VvZiBEYXRlICYmIF92YWx1ZVsxXSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHJldHVybiBpc0luUmFuZ2UoZGF0ZSwgX3ZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgY29uc3Qgb25Sb290TW91c2VMZWF2ZSA9XG4gICAgdHlwZSA9PT0gJ3JhbmdlJ1xuICAgICAgPyAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICAgICAgb25Nb3VzZUxlYXZlPy4oZXZlbnQpO1xuICAgICAgICAgIHNldEhvdmVyZWREYXRlKG51bGwpO1xuICAgICAgICB9XG4gICAgICA6IG9uTW91c2VMZWF2ZTtcblxuICBjb25zdCBpc0ZpcnN0SW5SYW5nZSA9IChkYXRlOiBEYXRlKSA9PiB7XG4gICAgaWYgKCEoX3ZhbHVlWzBdIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoZGF5anMoZGF0ZSkuaXNTYW1lKF92YWx1ZVswXSwgbGV2ZWwpKSB7XG4gICAgICByZXR1cm4gIShob3ZlcmVkRGF0ZSAmJiBkYXlqcyhob3ZlcmVkRGF0ZSkuaXNCZWZvcmUoX3ZhbHVlWzBdKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIGNvbnN0IGlzTGFzdEluUmFuZ2UgPSAoZGF0ZTogRGF0ZSkgPT4ge1xuICAgIGlmIChfdmFsdWVbMV0gaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4gZGF5anMoZGF0ZSkuaXNTYW1lKF92YWx1ZVsxXSwgbGV2ZWwpO1xuICAgIH1cblxuICAgIGlmICghKF92YWx1ZVswXSBpbnN0YW5jZW9mIERhdGUpIHx8ICFob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBkYXlqcyhob3ZlcmVkRGF0ZSkuaXNCZWZvcmUoX3ZhbHVlWzBdKSAmJiBkYXlqcyhkYXRlKS5pc1NhbWUoX3ZhbHVlWzBdLCBsZXZlbCk7XG4gIH07XG5cbiAgY29uc3QgZ2V0Q29udHJvbFByb3BzID0gKGRhdGU6IERhdGUpID0+IHtcbiAgICBpZiAodHlwZSA9PT0gJ3JhbmdlJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2VsZWN0ZWQ6IF92YWx1ZS5zb21lKFxuICAgICAgICAgIChzZWxlY3Rpb246IERhdGUpID0+IHNlbGVjdGlvbiAmJiBkYXlqcyhzZWxlY3Rpb24pLmlzU2FtZShkYXRlLCBsZXZlbClcbiAgICAgICAgKSxcbiAgICAgICAgaW5SYW5nZTogaXNEYXRlSW5SYW5nZShkYXRlKSxcbiAgICAgICAgZmlyc3RJblJhbmdlOiBpc0ZpcnN0SW5SYW5nZShkYXRlKSxcbiAgICAgICAgbGFzdEluUmFuZ2U6IGlzTGFzdEluUmFuZ2UoZGF0ZSksXG4gICAgICAgICdkYXRhLWF1dG9mb2N1cyc6ICghIV92YWx1ZVswXSAmJiBkYXlqcyhfdmFsdWVbMF0pLmlzU2FtZShkYXRlLCBsZXZlbCkpIHx8IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICdtdWx0aXBsZScpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNlbGVjdGVkOiBfdmFsdWUuc29tZShcbiAgICAgICAgICAoc2VsZWN0aW9uOiBEYXRlKSA9PiBzZWxlY3Rpb24gJiYgZGF5anMoc2VsZWN0aW9uKS5pc1NhbWUoZGF0ZSwgbGV2ZWwpXG4gICAgICAgICksXG4gICAgICAgICdkYXRhLWF1dG9mb2N1cyc6ICghIV92YWx1ZVswXSAmJiBkYXlqcyhfdmFsdWVbMF0pLmlzU2FtZShkYXRlLCBsZXZlbCkpIHx8IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBkYXlqcyhfdmFsdWUpLmlzU2FtZShkYXRlLCBsZXZlbCk7XG4gICAgcmV0dXJuIHsgc2VsZWN0ZWQsICdkYXRhLWF1dG9mb2N1cyc6IHNlbGVjdGVkIHx8IHVuZGVmaW5lZCB9O1xuICB9O1xuXG4gIGNvbnN0IG9uSG92ZXJlZERhdGVDaGFuZ2UgPSB0eXBlID09PSAncmFuZ2UnICYmIHBpY2tlZERhdGUgPyBzZXRIb3ZlcmVkRGF0ZSA6ICgpID0+IHt9O1xuXG4gIHJldHVybiB7XG4gICAgb25EYXRlQ2hhbmdlLFxuICAgIG9uUm9vdE1vdXNlTGVhdmUsXG4gICAgb25Ib3ZlcmVkRGF0ZUNoYW5nZSxcbiAgICBnZXRDb250cm9sUHJvcHMsXG4gICAgX3ZhbHVlLFxuICAgIHNldFZhbHVlLFxuICB9O1xufVxuIl0sIm5hbWVzIjpbImRheWpzIiwidXNlVW5jb250cm9sbGVkRGF0ZXMiLCJ1c2VTdGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsU0FBUyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtBQUNoQyxFQUFFLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUN0RSxFQUFFLE9BQU9BLGNBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSUEsY0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVHLENBQUM7QUFDTSxTQUFTLGFBQWEsQ0FBQztBQUM5QixFQUFFLElBQUk7QUFDTixFQUFFLEtBQUs7QUFDUCxFQUFFLEtBQUs7QUFDUCxFQUFFLFlBQVk7QUFDZCxFQUFFLFFBQVE7QUFDVixFQUFFLHNCQUFzQjtBQUN4QixFQUFFLGFBQWE7QUFDZixFQUFFLFlBQVk7QUFDZCxDQUFDLEVBQUU7QUFDSCxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUdDLHlDQUFvQixDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUMzRixFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLEdBQUdDLGNBQVEsQ0FBQyxJQUFJLEtBQUssT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQ3JILEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsR0FBR0EsY0FBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZELEVBQUUsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFJLEtBQUs7QUFDakMsSUFBSSxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUU7QUFDMUIsTUFBTSxJQUFJLFVBQVUsWUFBWSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDcEQsUUFBUSxJQUFJRixjQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFO0FBQzlFLFVBQVUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlCLFVBQVUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9CLFVBQVUsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDakMsVUFBVSxPQUFPO0FBQ2pCLFNBQVM7QUFDVCxRQUFRLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzFDLFFBQVEsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQ3pELFFBQVEsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3pCLFFBQVEsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdCLFFBQVEsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzVCLFFBQVEsT0FBTztBQUNmLE9BQU87QUFDUCxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJQSxjQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFO0FBQ3RHLFFBQVEsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzVCLFFBQVEsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdCLFFBQVEsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDL0IsUUFBUSxPQUFPO0FBQ2YsT0FBTztBQUNQLE1BQU0sUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDN0IsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0IsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUIsTUFBTSxPQUFPO0FBQ2IsS0FBSztBQUNMLElBQUksSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFO0FBQzdCLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxLQUFLQSxjQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFO0FBQzFFLFFBQVEsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEtBQUssQ0FBQ0EsY0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BGLE9BQU8sTUFBTTtBQUNiLFFBQVEsUUFBUSxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNwQyxPQUFPO0FBQ1AsTUFBTSxPQUFPO0FBQ2IsS0FBSztBQUNMLElBQUksSUFBSSxNQUFNLElBQUksYUFBYSxJQUFJQSxjQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRTtBQUN0RSxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQixLQUFLLE1BQU07QUFDWCxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQixLQUFLO0FBQ0wsR0FBRyxDQUFDO0FBQ0osRUFBRSxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQUksS0FBSztBQUNsQyxJQUFJLElBQUksVUFBVSxZQUFZLElBQUksSUFBSSxXQUFXLFlBQVksSUFBSSxFQUFFO0FBQ25FLE1BQU0sT0FBTyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDeEQsS0FBSztBQUNMLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUU7QUFDaEUsTUFBTSxPQUFPLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDckMsS0FBSztBQUNMLElBQUksT0FBTyxLQUFLLENBQUM7QUFDakIsR0FBRyxDQUFDO0FBQ0osRUFBRSxNQUFNLGdCQUFnQixHQUFHLElBQUksS0FBSyxPQUFPLEdBQUcsQ0FBQyxLQUFLLEtBQUs7QUFDekQsSUFBSSxZQUFZLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4RCxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6QixHQUFHLEdBQUcsWUFBWSxDQUFDO0FBQ25CLEVBQUUsTUFBTSxjQUFjLEdBQUcsQ0FBQyxJQUFJLEtBQUs7QUFDbkMsSUFBSSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FBQyxFQUFFO0FBQ3RDLE1BQU0sT0FBTyxLQUFLLENBQUM7QUFDbkIsS0FBSztBQUNMLElBQUksSUFBSUEsY0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7QUFDOUMsTUFBTSxPQUFPLEVBQUUsV0FBVyxJQUFJQSxjQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEUsS0FBSztBQUNMLElBQUksT0FBTyxLQUFLLENBQUM7QUFDakIsR0FBRyxDQUFDO0FBQ0osRUFBRSxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQUksS0FBSztBQUNsQyxJQUFJLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksRUFBRTtBQUNuQyxNQUFNLE9BQU9BLGNBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2xELEtBQUs7QUFDTCxJQUFJLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7QUFDdEQsTUFBTSxPQUFPLEtBQUssQ0FBQztBQUNuQixLQUFLO0FBQ0wsSUFBSSxPQUFPQSxjQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJQSxjQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxRixHQUFHLENBQUM7QUFDSixFQUFFLE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBSSxLQUFLO0FBQ3BDLElBQUksSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFO0FBQzFCLE1BQU0sT0FBTztBQUNiLFFBQVEsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJQSxjQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMvRixRQUFRLE9BQU8sRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDO0FBQ3BDLFFBQVEsWUFBWSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUM7QUFDMUMsUUFBUSxXQUFXLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQztBQUN4QyxRQUFRLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUlBLGNBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQztBQUN2RixPQUFPLENBQUM7QUFDUixLQUFLO0FBQ0wsSUFBSSxJQUFJLElBQUksS0FBSyxVQUFVLEVBQUU7QUFDN0IsTUFBTSxPQUFPO0FBQ2IsUUFBUSxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLElBQUlBLGNBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQy9GLFFBQVEsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSUEsY0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDO0FBQ3ZGLE9BQU8sQ0FBQztBQUNSLEtBQUs7QUFDTCxJQUFJLE1BQU0sUUFBUSxHQUFHQSxjQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN2RCxJQUFJLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7QUFDOUQsR0FBRyxDQUFDO0FBQ0osRUFBRSxNQUFNLG1CQUFtQixHQUFHLElBQUksS0FBSyxPQUFPLElBQUksVUFBVSxHQUFHLGNBQWMsR0FBRyxNQUFNO0FBQ3RGLEdBQUcsQ0FBQztBQUNKLEVBQUUsT0FBTztBQUNULElBQUksWUFBWTtBQUNoQixJQUFJLGdCQUFnQjtBQUNwQixJQUFJLG1CQUFtQjtBQUN2QixJQUFJLGVBQWU7QUFDbkIsSUFBSSxNQUFNO0FBQ1YsSUFBSSxRQUFRO0FBQ1osR0FBRyxDQUFDO0FBQ0o7Ozs7In0=