Socket
Socket
Sign inDemoInstall

@uiw/color-convert

Package Overview
Dependencies
Maintainers
1
Versions
80
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@uiw/color-convert - npm Package Compare versions

Comparing version 0.0.34 to 0.1.0

1

lib/cjs/index.d.ts

@@ -40,2 +40,3 @@ export * from './utils';

export declare const hsvaToHslaString: (hsva: HsvaColor) => string;
export declare const hslStringToHsla: (str: string) => HslaColor;
export declare const hslaStringToHsva: (hslString: string) => HsvaColor;

@@ -42,0 +43,0 @@ export declare const hslStringToHsva: (hslString: string) => HsvaColor;

37

lib/cjs/index.js

@@ -14,2 +14,3 @@ "use strict";

hsvaToHslaString: true,
hslStringToHsla: true,
hslaStringToHsva: true,

@@ -38,3 +39,3 @@ hslStringToHsva: true,

};
exports.color = exports.hsvaToHsv = exports.hsvaToHexa = exports.hsvaToHex = exports.hslaToHsl = exports.rgbaToRgb = exports.hsvaToRgbaString = exports.hsvaToRgbString = exports.hsvaToRgba = exports.hexToRgba = exports.hexToHsva = exports.rgbaToHexa = exports.rgbaToHex = exports.rgbStringToHsva = exports.rgbaStringToHsva = exports.hsvStringToHsva = exports.parseHue = exports.hsvaStringToHsva = exports.hsvaToHsla = exports.hslaToHsva = exports.hslStringToHsva = exports.hslaStringToHsva = exports.hsvaToHslaString = exports.hsvaToHsvaString = exports.hsvaToHsvString = exports.hsvaToHslString = exports.rgbaToHsva = void 0;
exports.color = exports.hsvaToHsv = exports.hsvaToHexa = exports.hsvaToHex = exports.hslaToHsl = exports.rgbaToRgb = exports.hsvaToRgbaString = exports.hsvaToRgbString = exports.hsvaToRgba = exports.hexToRgba = exports.hexToHsva = exports.rgbaToHexa = exports.rgbaToHex = exports.rgbStringToHsva = exports.rgbaStringToHsva = exports.hsvStringToHsva = exports.parseHue = exports.hsvaStringToHsva = exports.hsvaToHsla = exports.hslaToHsva = exports.hslStringToHsva = exports.hslaStringToHsva = exports.hslStringToHsla = exports.hsvaToHslaString = exports.hsvaToHsvaString = exports.hsvaToHsvString = exports.hsvaToHslString = exports.rgbaToHsva = void 0;

@@ -143,2 +144,20 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));

var hslStringToHsla = function hslStringToHsla(str) {
var _map = (str.match(/\d+/g) || []).map(Number),
_map2 = (0, _slicedToArray2.default)(_map, 4),
h = _map2[0],
s = _map2[1],
l = _map2[2],
a = _map2[3];
return {
h: h,
s: s,
l: l,
a: a
};
};
exports.hslStringToHsla = hslStringToHsla;
var hslaStringToHsva = function hslaStringToHsva(hslString) {

@@ -301,11 +320,11 @@ var matcher = /hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i;

var _map = hex.match(reg).map(function (v) {
var _map3 = hex.match(reg).map(function (v) {
return parseInt(v, 16);
}),
_map2 = (0, _slicedToArray2.default)(_map, 4),
r = _map2[0],
g = _map2[1],
_map2$ = _map2[2],
b = _map2$ === void 0 ? 0 : _map2$,
a = _map2[3];
_map4 = (0, _slicedToArray2.default)(_map3, 4),
r = _map4[0],
g = _map4[1],
_map4$ = _map4[2],
b = _map4$ === void 0 ? 0 : _map4$,
a = _map4[3];

@@ -508,2 +527,2 @@ return {

exports.color = color;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJSR0JfTUFYIiwiSFVFX01BWCIsIlNWX01BWCIsInJnYmFUb0hzdmEiLCJyIiwiZyIsImIiLCJhIiwibWF4IiwiTWF0aCIsImRlbHRhIiwibWluIiwiaGgiLCJoIiwicyIsInYiLCJoc3ZhVG9Ic2xTdHJpbmciLCJoc3ZhIiwiaHN2YVRvSHNsYSIsImwiLCJyb3VuZCIsImhzdmFUb0hzdlN0cmluZyIsImhzdmFUb0hzdmFTdHJpbmciLCJoc3ZhVG9Ic2xhU3RyaW5nIiwiaHNsYVN0cmluZ1RvSHN2YSIsImhzbFN0cmluZyIsIm1hdGNoZXIiLCJtYXRjaCIsImV4ZWMiLCJoc2xhVG9Ic3ZhIiwicGFyc2VIdWUiLCJOdW1iZXIiLCJ1bmRlZmluZWQiLCJoc2xTdHJpbmdUb0hzdmEiLCJoc3ZhU3RyaW5nVG9Ic3ZhIiwiaHN2U3RyaW5nIiwiYW5nbGVVbml0cyIsImdyYWQiLCJ0dXJuIiwicmFkIiwiUEkiLCJ2YWx1ZSIsInVuaXQiLCJoc3ZTdHJpbmdUb0hzdmEiLCJyZ2JhU3RyaW5nVG9Ic3ZhIiwicmdiYVN0cmluZyIsInJnYlN0cmluZ1RvSHN2YSIsInJnYmFUb0hleCIsImJpbiIsIkFycmF5IiwibGVuZ3RoIiwiam9pbiIsInRvU3RyaW5nIiwicmdiYVRvSGV4YSIsImFscGhhIiwic2xpY2UiLCJoZXhUb0hzdmEiLCJoZXgiLCJoZXhUb1JnYmEiLCJodGVtcCIsInJlcGxhY2UiLCJ0ZXN0IiwiY2hhckF0IiwicmVnIiwiUmVnRXhwIiwibWFwIiwicGFyc2VJbnQiLCJoc3ZhVG9SZ2JhIiwiX2giLCJfcyIsIl92IiwiaGkiLCJmbG9vciIsImYiLCJfcCIsIl9xIiwiX3QiLCJyZ2JhIiwiaHN2YVRvUmdiU3RyaW5nIiwiaHN2YVRvUmdiYVN0cmluZyIsInJnYmFUb1JnYiIsImhzbGFUb0hzbCIsImhzdmFUb0hleCIsImhzdmFUb0hleGEiLCJoc3ZhVG9Ic3YiLCJjb2xvciIsInN0ciIsInJnYiIsImhzbCIsImhzdiIsImhzbGEiLCJoZXhhIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQSxJQUFNQSxPQUFPLEdBQUcsR0FBaEI7QUFDQSxJQUFNQyxPQUFPLEdBQUcsR0FBaEI7QUFDQSxJQUFNQyxNQUFNLEdBQUcsR0FBZjs7QUFpQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFhLE9BQTBDO0FBQUEsTUFBdkNDLENBQXVDLFFBQXZDQSxDQUF1QztBQUFBLE1BQXBDQyxDQUFvQyxRQUFwQ0EsQ0FBb0M7QUFBQSxNQUFqQ0MsQ0FBaUMsUUFBakNBLENBQWlDO0FBQUEsTUFBOUJDLENBQThCLFFBQTlCQSxDQUE4QjtBQUNsRSxNQUFNQyxHQUFHLEdBQUdDLElBQUksQ0FBQ0QsR0FBTCxDQUFTSixDQUFULEVBQVlDLENBQVosRUFBZUMsQ0FBZixDQUFaO0FBQ0EsTUFBTUksS0FBSyxHQUFHRixHQUFHLEdBQUdDLElBQUksQ0FBQ0UsR0FBTCxDQUFTUCxDQUFULEVBQVlDLENBQVosRUFBZUMsQ0FBZixDQUFwQixDQUZrRSxDQUlsRTs7QUFDQSxNQUFNTSxFQUFFLEdBQUdGLEtBQUssR0FDWkYsR0FBRyxLQUFLSixDQUFSLEdBQ0UsQ0FBQ0MsQ0FBQyxHQUFHQyxDQUFMLElBQVVJLEtBRFosR0FFRUYsR0FBRyxLQUFLSCxDQUFSLEdBQ0UsSUFBSSxDQUFDQyxDQUFDLEdBQUdGLENBQUwsSUFBVU0sS0FEaEIsR0FFRSxJQUFJLENBQUNOLENBQUMsR0FBR0MsQ0FBTCxJQUFVSyxLQUxOLEdBTVosQ0FOSjtBQVFBLFNBQU87QUFDTEcsSUFBQUEsQ0FBQyxFQUFFLE1BQU1ELEVBQUUsR0FBRyxDQUFMLEdBQVNBLEVBQUUsR0FBRyxDQUFkLEdBQWtCQSxFQUF4QixDQURFO0FBRUxFLElBQUFBLENBQUMsRUFBRU4sR0FBRyxHQUFJRSxLQUFLLEdBQUdGLEdBQVQsR0FBZ0JOLE1BQW5CLEdBQTRCLENBRjdCO0FBR0xhLElBQUFBLENBQUMsRUFBR1AsR0FBRyxHQUFHUixPQUFQLEdBQWtCRSxNQUhoQjtBQUlMSyxJQUFBQSxDQUFDLEVBQURBO0FBSkssR0FBUDtBQU1ELENBbkJNOzs7O0FBcUJBLElBQU1TLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsQ0FBQ0MsSUFBRCxFQUE2QjtBQUMxRCxvQkFBb0JDLFVBQVUsQ0FBQ0QsSUFBRCxDQUE5QjtBQUFBLE1BQVFKLENBQVIsZUFBUUEsQ0FBUjtBQUFBLE1BQVdDLENBQVgsZUFBV0EsQ0FBWDtBQUFBLE1BQWNLLENBQWQsZUFBY0EsQ0FBZCxDQUQwRCxDQUUxRDs7O0FBQ0EsdUJBQWNOLENBQWQsZUFBb0JKLElBQUksQ0FBQ1csS0FBTCxDQUFXTixDQUFYLENBQXBCLGdCQUF1Q0wsSUFBSSxDQUFDVyxLQUFMLENBQVdELENBQVgsQ0FBdkM7QUFDRCxDQUpNOzs7O0FBTUEsSUFBTUUsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixRQUFvQztBQUFBLE1BQWpDUixDQUFpQyxTQUFqQ0EsQ0FBaUM7QUFBQSxNQUE5QkMsQ0FBOEIsU0FBOUJBLENBQThCO0FBQUEsTUFBM0JDLENBQTJCLFNBQTNCQSxDQUEyQjtBQUNqRSx1QkFBY0YsQ0FBZCxlQUFvQkMsQ0FBcEIsZ0JBQTJCQyxDQUEzQjtBQUNELENBRk07Ozs7QUFJQSxJQUFNTyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CLFFBQXVDO0FBQUEsTUFBcENULENBQW9DLFNBQXBDQSxDQUFvQztBQUFBLE1BQWpDQyxDQUFpQyxTQUFqQ0EsQ0FBaUM7QUFBQSxNQUE5QkMsQ0FBOEIsU0FBOUJBLENBQThCO0FBQUEsTUFBM0JSLENBQTJCLFNBQTNCQSxDQUEyQjtBQUNyRSx3QkFBZU0sQ0FBZixlQUFxQkMsQ0FBckIsZ0JBQTRCQyxDQUE1QixnQkFBbUNSLENBQW5DO0FBQ0QsQ0FGTTs7OztBQUlBLElBQU1nQixnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CLENBQUNOLElBQUQsRUFBNkI7QUFDM0QscUJBQXVCQyxVQUFVLENBQUNELElBQUQsQ0FBakM7QUFBQSxNQUFRSixDQUFSLGdCQUFRQSxDQUFSO0FBQUEsTUFBV0MsQ0FBWCxnQkFBV0EsQ0FBWDtBQUFBLE1BQWNLLENBQWQsZ0JBQWNBLENBQWQ7QUFBQSxNQUFpQlosQ0FBakIsZ0JBQWlCQSxDQUFqQjs7QUFDQSx3QkFBZU0sQ0FBZixlQUFxQkMsQ0FBckIsZ0JBQTRCSyxDQUE1QixnQkFBbUNaLENBQW5DO0FBQ0QsQ0FITTs7OztBQUtBLElBQU1pQixnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CLENBQUNDLFNBQUQsRUFBa0M7QUFDaEUsTUFBTUMsT0FBTyxHQUNYLDRIQURGO0FBRUEsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUNFLElBQVIsQ0FBYUgsU0FBYixDQUFkO0FBRUEsTUFBSSxDQUFDRSxLQUFMLEVBQVksT0FBTztBQUFFZCxJQUFBQSxDQUFDLEVBQUUsQ0FBTDtBQUFRQyxJQUFBQSxDQUFDLEVBQUUsQ0FBWDtBQUFjQyxJQUFBQSxDQUFDLEVBQUUsQ0FBakI7QUFBb0JSLElBQUFBLENBQUMsRUFBRTtBQUF2QixHQUFQO0FBRVosU0FBT3NCLFVBQVUsQ0FBQztBQUNoQmhCLElBQUFBLENBQUMsRUFBRWlCLFFBQVEsQ0FBQ0gsS0FBSyxDQUFDLENBQUQsQ0FBTixFQUFXQSxLQUFLLENBQUMsQ0FBRCxDQUFoQixDQURLO0FBRWhCYixJQUFBQSxDQUFDLEVBQUVpQixNQUFNLENBQUNKLEtBQUssQ0FBQyxDQUFELENBQU4sQ0FGTztBQUdoQlIsSUFBQUEsQ0FBQyxFQUFFWSxNQUFNLENBQUNKLEtBQUssQ0FBQyxDQUFELENBQU4sQ0FITztBQUloQnBCLElBQUFBLENBQUMsRUFBRW9CLEtBQUssQ0FBQyxDQUFELENBQUwsS0FBYUssU0FBYixHQUF5QixDQUF6QixHQUE2QkQsTUFBTSxDQUFDSixLQUFLLENBQUMsQ0FBRCxDQUFOLENBQU4sSUFBb0JBLEtBQUssQ0FBQyxDQUFELENBQUwsR0FBVyxHQUFYLEdBQWlCLENBQXJDO0FBSmhCLEdBQUQsQ0FBakI7QUFNRCxDQWJNOzs7QUFlQSxJQUFNTSxlQUFlLEdBQUdULGdCQUF4Qjs7O0FBRUEsSUFBTUssVUFBVSxHQUFHLFNBQWJBLFVBQWEsUUFBMEM7QUFBQSxNQUF2Q2hCLENBQXVDLFNBQXZDQSxDQUF1QztBQUFBLE1BQXBDQyxDQUFvQyxTQUFwQ0EsQ0FBb0M7QUFBQSxNQUFqQ0ssQ0FBaUMsU0FBakNBLENBQWlDO0FBQUEsTUFBOUJaLENBQThCLFNBQTlCQSxDQUE4QjtBQUNsRU8sRUFBQUEsQ0FBQyxJQUFJLENBQUNLLENBQUMsR0FBRyxFQUFKLEdBQVNBLENBQVQsR0FBYWpCLE1BQU0sR0FBR2lCLENBQXZCLElBQTRCakIsTUFBakM7QUFFQSxTQUFPO0FBQ0xXLElBQUFBLENBQUMsRUFBRUEsQ0FERTtBQUVMQyxJQUFBQSxDQUFDLEVBQUVBLENBQUMsR0FBRyxDQUFKLEdBQVUsSUFBSUEsQ0FBTCxJQUFXSyxDQUFDLEdBQUdMLENBQWYsQ0FBRCxHQUFzQlosTUFBOUIsR0FBdUMsQ0FGckM7QUFHTGEsSUFBQUEsQ0FBQyxFQUFFSSxDQUFDLEdBQUdMLENBSEY7QUFJTFAsSUFBQUEsQ0FBQyxFQUFEQTtBQUpLLEdBQVA7QUFNRCxDQVRNOzs7O0FBbUJBLElBQU1XLFVBQVUsR0FBRyxTQUFiQSxVQUFhLFFBQTBDO0FBQUEsTUFBdkNMLENBQXVDLFNBQXZDQSxDQUF1QztBQUFBLE1BQXBDQyxDQUFvQyxTQUFwQ0EsQ0FBb0M7QUFBQSxNQUFqQ0MsQ0FBaUMsU0FBakNBLENBQWlDO0FBQUEsTUFBOUJSLENBQThCLFNBQTlCQSxDQUE4QjtBQUNsRSxNQUFNSyxFQUFFLEdBQUksQ0FBQyxNQUFNRSxDQUFQLElBQVlDLENBQWIsR0FBa0JiLE1BQTdCO0FBRUEsU0FBTztBQUNMVyxJQUFBQSxDQUFDLEVBQURBLENBREs7QUFFTEMsSUFBQUEsQ0FBQyxFQUFFRixFQUFFLEdBQUcsQ0FBTCxJQUFVQSxFQUFFLEdBQUcsR0FBZixHQUF1QkUsQ0FBQyxHQUFHQyxDQUFMLEdBQVViLE1BQVYsSUFBb0JVLEVBQUUsSUFBSVYsTUFBTixHQUFlVSxFQUFmLEdBQW9CLE1BQU1BLEVBQTlDLENBQUQsR0FBc0RWLE1BQTNFLEdBQW9GLENBRmxGO0FBR0xpQixJQUFBQSxDQUFDLEVBQUVQLEVBQUUsR0FBRyxDQUhIO0FBSUxMLElBQUFBLENBQUMsRUFBREE7QUFKSyxHQUFQO0FBTUQsQ0FUTTs7OztBQVdBLElBQU0yQixnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CLENBQUNDLFNBQUQsRUFBa0M7QUFDaEUsTUFBTVQsT0FBTyxHQUNYLDRIQURGO0FBRUEsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUNFLElBQVIsQ0FBYU8sU0FBYixDQUFkO0FBRUEsTUFBSSxDQUFDUixLQUFMLEVBQVksT0FBTztBQUFFZCxJQUFBQSxDQUFDLEVBQUUsQ0FBTDtBQUFRQyxJQUFBQSxDQUFDLEVBQUUsQ0FBWDtBQUFjQyxJQUFBQSxDQUFDLEVBQUUsQ0FBakI7QUFBb0JSLElBQUFBLENBQUMsRUFBRTtBQUF2QixHQUFQO0FBRVosU0FBTztBQUNMTSxJQUFBQSxDQUFDLEVBQUVpQixRQUFRLENBQUNILEtBQUssQ0FBQyxDQUFELENBQU4sRUFBV0EsS0FBSyxDQUFDLENBQUQsQ0FBaEIsQ0FETjtBQUVMYixJQUFBQSxDQUFDLEVBQUVpQixNQUFNLENBQUNKLEtBQUssQ0FBQyxDQUFELENBQU4sQ0FGSjtBQUdMWixJQUFBQSxDQUFDLEVBQUVnQixNQUFNLENBQUNKLEtBQUssQ0FBQyxDQUFELENBQU4sQ0FISjtBQUlMcEIsSUFBQUEsQ0FBQyxFQUFFb0IsS0FBSyxDQUFDLENBQUQsQ0FBTCxLQUFhSyxTQUFiLEdBQXlCLENBQXpCLEdBQTZCRCxNQUFNLENBQUNKLEtBQUssQ0FBQyxDQUFELENBQU4sQ0FBTixJQUFvQkEsS0FBSyxDQUFDLENBQUQsQ0FBTCxHQUFXekIsTUFBWCxHQUFvQixDQUF4QztBQUozQixHQUFQO0FBTUQsQ0FiTTtBQWVQO0FBQ0E7QUFDQTtBQUNBOzs7O0FBQ0EsSUFBTWtDLFVBQWtDLEdBQUc7QUFDekNDLEVBQUFBLElBQUksRUFBRXBDLE9BQU8sR0FBRyxHQUR5QjtBQUV6Q3FDLEVBQUFBLElBQUksRUFBRXJDLE9BRm1DO0FBR3pDc0MsRUFBQUEsR0FBRyxFQUFFdEMsT0FBTyxJQUFJUSxJQUFJLENBQUMrQixFQUFMLEdBQVUsQ0FBZDtBQUg2QixDQUEzQzs7QUFNTyxJQUFNVixRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFDVyxLQUFELEVBQXlDO0FBQUEsTUFBekJDLElBQXlCLHVFQUFsQixLQUFrQjtBQUMvRCxTQUFPWCxNQUFNLENBQUNVLEtBQUQsQ0FBTixJQUFpQkwsVUFBVSxDQUFDTSxJQUFELENBQVYsSUFBb0IsQ0FBckMsQ0FBUDtBQUNELENBRk07OztBQUlBLElBQU1DLGVBQWUsR0FBR1QsZ0JBQXhCOzs7QUFDQSxJQUFNVSxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CLENBQUNDLFVBQUQsRUFBbUM7QUFDakUsTUFBTW5CLE9BQU8sR0FDWCxnSEFERjtBQUVBLE1BQU1DLEtBQUssR0FBR0QsT0FBTyxDQUFDRSxJQUFSLENBQWFpQixVQUFiLENBQWQ7QUFFQSxNQUFJLENBQUNsQixLQUFMLEVBQVksT0FBTztBQUFFZCxJQUFBQSxDQUFDLEVBQUUsQ0FBTDtBQUFRQyxJQUFBQSxDQUFDLEVBQUUsQ0FBWDtBQUFjQyxJQUFBQSxDQUFDLEVBQUUsQ0FBakI7QUFBb0JSLElBQUFBLENBQUMsRUFBRTtBQUF2QixHQUFQO0FBRVosU0FBT0osVUFBVSxDQUFDO0FBQ2hCQyxJQUFBQSxDQUFDLEVBQUUyQixNQUFNLENBQUNKLEtBQUssQ0FBQyxDQUFELENBQU4sQ0FBTixJQUFvQkEsS0FBSyxDQUFDLENBQUQsQ0FBTCxHQUFXekIsTUFBTSxHQUFHRixPQUFwQixHQUE4QixDQUFsRCxDQURhO0FBRWhCSyxJQUFBQSxDQUFDLEVBQUUwQixNQUFNLENBQUNKLEtBQUssQ0FBQyxDQUFELENBQU4sQ0FBTixJQUFvQkEsS0FBSyxDQUFDLENBQUQsQ0FBTCxHQUFXekIsTUFBTSxHQUFHRixPQUFwQixHQUE4QixDQUFsRCxDQUZhO0FBR2hCTSxJQUFBQSxDQUFDLEVBQUV5QixNQUFNLENBQUNKLEtBQUssQ0FBQyxDQUFELENBQU4sQ0FBTixJQUFvQkEsS0FBSyxDQUFDLENBQUQsQ0FBTCxHQUFXekIsTUFBTSxHQUFHRixPQUFwQixHQUE4QixDQUFsRCxDQUhhO0FBSWhCTyxJQUFBQSxDQUFDLEVBQUVvQixLQUFLLENBQUMsQ0FBRCxDQUFMLEtBQWFLLFNBQWIsR0FBeUIsQ0FBekIsR0FBNkJELE1BQU0sQ0FBQ0osS0FBSyxDQUFDLENBQUQsQ0FBTixDQUFOLElBQW9CQSxLQUFLLENBQUMsQ0FBRCxDQUFMLEdBQVd6QixNQUFYLEdBQW9CLENBQXhDO0FBSmhCLEdBQUQsQ0FBakI7QUFNRCxDQWJNOzs7QUFlQSxJQUFNNEMsZUFBZSxHQUFHRixnQkFBeEI7QUFFUDs7OztBQUNPLElBQU1HLFNBQVMsR0FBRyxTQUFaQSxTQUFZLFFBQW9DO0FBQUEsTUFBakMzQyxDQUFpQyxTQUFqQ0EsQ0FBaUM7QUFBQSxNQUE5QkMsQ0FBOEIsU0FBOUJBLENBQThCO0FBQUEsTUFBM0JDLENBQTJCLFNBQTNCQSxDQUEyQjtBQUMzRCxNQUFJMEMsR0FBRyxHQUFJNUMsQ0FBQyxJQUFJLEVBQU4sR0FBYUMsQ0FBQyxJQUFJLENBQWxCLEdBQXVCQyxDQUFqQztBQUNBLG9CQUFZLFVBQUNPLENBQUQ7QUFBQSxXQUFPLElBQUlvQyxLQUFKLENBQVUsSUFBSXBDLENBQUMsQ0FBQ3FDLE1BQWhCLEVBQXdCQyxJQUF4QixDQUE2QixHQUE3QixJQUFvQ3RDLENBQTNDO0FBQUEsR0FBRCxDQUErQ21DLEdBQUcsQ0FBQ0ksUUFBSixDQUFhLEVBQWIsQ0FBL0MsQ0FBWDtBQUNELENBSE07Ozs7QUFLQSxJQUFNQyxVQUFVLEdBQUcsU0FBYkEsVUFBYSxRQUF1QztBQUFBLE1BQXBDakQsQ0FBb0MsU0FBcENBLENBQW9DO0FBQUEsTUFBakNDLENBQWlDLFNBQWpDQSxDQUFpQztBQUFBLE1BQTlCQyxDQUE4QixTQUE5QkEsQ0FBOEI7QUFBQSxNQUEzQkMsQ0FBMkIsU0FBM0JBLENBQTJCO0FBQy9ELE1BQU0rQyxLQUFLLEdBQUcsT0FBTy9DLENBQVAsS0FBYSxRQUFiLElBQXlCLENBQUVBLENBQUMsR0FBRyxHQUFMLEdBQWEsS0FBSyxDQUFuQixFQUF1QjZDLFFBQXZCLENBQWdDLEVBQWhDLEVBQW9DRyxLQUFwQyxDQUEwQyxDQUExQyxDQUF2QztBQUNBLG1CQUFVUixTQUFTLENBQUM7QUFBRTNDLElBQUFBLENBQUMsRUFBREEsQ0FBRjtBQUFLQyxJQUFBQSxDQUFDLEVBQURBLENBQUw7QUFBUUMsSUFBQUEsQ0FBQyxFQUFEQSxDQUFSO0FBQVdDLElBQUFBLENBQUMsRUFBREE7QUFBWCxHQUFELENBQW5CLFNBQXNDK0MsS0FBSyxHQUFHQSxLQUFILEdBQVcsRUFBdEQ7QUFDRCxDQUhNOzs7O0FBS0EsSUFBTUUsU0FBUyxHQUFHLFNBQVpBLFNBQVksQ0FBQ0MsR0FBRDtBQUFBLFNBQTRCdEQsVUFBVSxDQUFDdUQsU0FBUyxDQUFDRCxHQUFELENBQVYsQ0FBdEM7QUFBQSxDQUFsQjs7OztBQUNBLElBQU1DLFNBQVMsR0FBRyxTQUFaQSxTQUFZLENBQUNELEdBQUQsRUFBNEI7QUFDbkQsTUFBTUUsS0FBSyxHQUFHRixHQUFHLENBQUNHLE9BQUosQ0FBWSxHQUFaLEVBQWlCLEVBQWpCLENBQWQ7O0FBQ0EsTUFBSSxNQUFNQyxJQUFOLENBQVdKLEdBQVgsS0FBbUJFLEtBQUssQ0FBQ1QsTUFBTixLQUFpQixDQUF4QyxFQUEyQztBQUN6Q08sSUFBQUEsR0FBRyxjQUFPRSxLQUFLLENBQUNHLE1BQU4sQ0FBYSxDQUFiLENBQVAsU0FBeUJILEtBQUssQ0FBQ0csTUFBTixDQUFhLENBQWIsQ0FBekIsU0FBMkNILEtBQUssQ0FBQ0csTUFBTixDQUFhLENBQWIsQ0FBM0MsU0FBNkRILEtBQUssQ0FBQ0csTUFBTixDQUFhLENBQWIsQ0FBN0QsU0FBK0VILEtBQUssQ0FBQ0csTUFBTixDQUFhLENBQWIsQ0FBL0UsU0FBaUdILEtBQUssQ0FBQ0csTUFBTixDQUFhLENBQWIsQ0FBakcsQ0FBSDtBQUNEOztBQUNELE1BQU1DLEdBQUcsR0FBRyxJQUFJQyxNQUFKLG1CQUE2QixHQUE3QixDQUFaOztBQUNBLGFBQXlCUCxHQUFHLENBQUM5QixLQUFKLENBQVVvQyxHQUFWLEVBQWdCRSxHQUFoQixDQUFvQixVQUFDbEQsQ0FBRDtBQUFBLFdBQU9tRCxRQUFRLENBQUNuRCxDQUFELEVBQUksRUFBSixDQUFmO0FBQUEsR0FBcEIsQ0FBekI7QUFBQTtBQUFBLE1BQU9YLENBQVA7QUFBQSxNQUFVQyxDQUFWO0FBQUE7QUFBQSxNQUFhQyxDQUFiLHVCQUFpQixDQUFqQjtBQUFBLE1BQW9CQyxDQUFwQjs7QUFDQSxTQUFPO0FBQ0xILElBQUFBLENBQUMsRUFBREEsQ0FESztBQUVMQyxJQUFBQSxDQUFDLEVBQURBLENBRks7QUFHTEMsSUFBQUEsQ0FBQyxFQUFEQSxDQUhLO0FBSUxDLElBQUFBLENBQUMsRUFBRUEsQ0FBQyxHQUFHQSxDQUFDLEdBQUdQLE9BQVAsR0FBaUI7QUFKaEIsR0FBUDtBQU1ELENBYk07QUFlUDtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFDTyxJQUFNbUUsVUFBVSxHQUFHLFNBQWJBLFVBQWEsUUFBMEM7QUFBQSxNQUF2Q3RELENBQXVDLFNBQXZDQSxDQUF1QztBQUFBLE1BQXBDQyxDQUFvQyxTQUFwQ0EsQ0FBb0M7QUFBQSxNQUFqQ0MsQ0FBaUMsU0FBakNBLENBQWlDO0FBQUEsTUFBOUJSLENBQThCLFNBQTlCQSxDQUE4Qjs7QUFDbEUsTUFBSTZELEVBQUUsR0FBR3ZELENBQUMsR0FBRyxFQUFiO0FBQUEsTUFDRXdELEVBQUUsR0FBR3ZELENBQUMsR0FBR1osTUFEWDtBQUFBLE1BRUVvRSxFQUFFLEdBQUd2RCxDQUFDLEdBQUdiLE1BRlg7QUFBQSxNQUdFcUUsRUFBRSxHQUFHOUQsSUFBSSxDQUFDK0QsS0FBTCxDQUFXSixFQUFYLElBQWlCLENBSHhCOztBQUtBLE1BQUlLLENBQUMsR0FBR0wsRUFBRSxHQUFHM0QsSUFBSSxDQUFDK0QsS0FBTCxDQUFXSixFQUFYLENBQWI7QUFBQSxNQUNFTSxFQUFFLEdBQUcxRSxPQUFPLEdBQUdzRSxFQUFWLElBQWdCLElBQUlELEVBQXBCLENBRFA7QUFBQSxNQUVFTSxFQUFFLEdBQUczRSxPQUFPLEdBQUdzRSxFQUFWLElBQWdCLElBQUlELEVBQUUsR0FBR0ksQ0FBekIsQ0FGUDtBQUFBLE1BR0VHLEVBQUUsR0FBRzVFLE9BQU8sR0FBR3NFLEVBQVYsSUFBZ0IsSUFBSUQsRUFBRSxJQUFJLElBQUlJLENBQVIsQ0FBdEIsQ0FIUDs7QUFJQUgsRUFBQUEsRUFBRSxJQUFJdEUsT0FBTjtBQUNBLE1BQU02RSxJQUFJLEdBQUcsRUFBYjs7QUFDQSxVQUFRTixFQUFSO0FBQ0UsU0FBSyxDQUFMO0FBQ0VNLE1BQUFBLElBQUksQ0FBQ3pFLENBQUwsR0FBU2tFLEVBQVQ7QUFDQU8sTUFBQUEsSUFBSSxDQUFDeEUsQ0FBTCxHQUFTdUUsRUFBVDtBQUNBQyxNQUFBQSxJQUFJLENBQUN2RSxDQUFMLEdBQVNvRSxFQUFUO0FBQ0E7O0FBQ0YsU0FBSyxDQUFMO0FBQ0VHLE1BQUFBLElBQUksQ0FBQ3pFLENBQUwsR0FBU3VFLEVBQVQ7QUFDQUUsTUFBQUEsSUFBSSxDQUFDeEUsQ0FBTCxHQUFTaUUsRUFBVDtBQUNBTyxNQUFBQSxJQUFJLENBQUN2RSxDQUFMLEdBQVNvRSxFQUFUO0FBQ0E7O0FBQ0YsU0FBSyxDQUFMO0FBQ0VHLE1BQUFBLElBQUksQ0FBQ3pFLENBQUwsR0FBU3NFLEVBQVQ7QUFDQUcsTUFBQUEsSUFBSSxDQUFDeEUsQ0FBTCxHQUFTaUUsRUFBVDtBQUNBTyxNQUFBQSxJQUFJLENBQUN2RSxDQUFMLEdBQVNzRSxFQUFUO0FBQ0E7O0FBQ0YsU0FBSyxDQUFMO0FBQ0VDLE1BQUFBLElBQUksQ0FBQ3pFLENBQUwsR0FBU3NFLEVBQVQ7QUFDQUcsTUFBQUEsSUFBSSxDQUFDeEUsQ0FBTCxHQUFTc0UsRUFBVDtBQUNBRSxNQUFBQSxJQUFJLENBQUN2RSxDQUFMLEdBQVNnRSxFQUFUO0FBQ0E7O0FBQ0YsU0FBSyxDQUFMO0FBQ0VPLE1BQUFBLElBQUksQ0FBQ3pFLENBQUwsR0FBU3dFLEVBQVQ7QUFDQUMsTUFBQUEsSUFBSSxDQUFDeEUsQ0FBTCxHQUFTcUUsRUFBVDtBQUNBRyxNQUFBQSxJQUFJLENBQUN2RSxDQUFMLEdBQVNnRSxFQUFUO0FBQ0E7O0FBQ0YsU0FBSyxDQUFMO0FBQ0VPLE1BQUFBLElBQUksQ0FBQ3pFLENBQUwsR0FBU2tFLEVBQVQ7QUFDQU8sTUFBQUEsSUFBSSxDQUFDeEUsQ0FBTCxHQUFTcUUsRUFBVDtBQUNBRyxNQUFBQSxJQUFJLENBQUN2RSxDQUFMLEdBQVNxRSxFQUFUO0FBQ0E7QUE5Qko7O0FBZ0NBRSxFQUFBQSxJQUFJLENBQUN6RSxDQUFMLEdBQVNLLElBQUksQ0FBQ1csS0FBTCxDQUFXeUQsSUFBSSxDQUFDekUsQ0FBaEIsQ0FBVDtBQUNBeUUsRUFBQUEsSUFBSSxDQUFDeEUsQ0FBTCxHQUFTSSxJQUFJLENBQUNXLEtBQUwsQ0FBV3lELElBQUksQ0FBQ3hFLENBQWhCLENBQVQ7QUFDQXdFLEVBQUFBLElBQUksQ0FBQ3ZFLENBQUwsR0FBU0csSUFBSSxDQUFDVyxLQUFMLENBQVd5RCxJQUFJLENBQUN2RSxDQUFoQixDQUFUO0FBQ0EscUVBQVl1RSxJQUFaO0FBQWtCdEUsSUFBQUEsQ0FBQyxFQUFEQTtBQUFsQjtBQUNELENBaERNOzs7O0FBa0RBLElBQU11RSxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUM3RCxJQUFELEVBQTZCO0FBQzFELG9CQUFvQmtELFVBQVUsQ0FBQ2xELElBQUQsQ0FBOUI7QUFBQSxNQUFRYixDQUFSLGVBQVFBLENBQVI7QUFBQSxNQUFXQyxDQUFYLGVBQVdBLENBQVg7QUFBQSxNQUFjQyxDQUFkLGVBQWNBLENBQWQ7O0FBQ0EsdUJBQWNGLENBQWQsZUFBb0JDLENBQXBCLGVBQTBCQyxDQUExQjtBQUNELENBSE07Ozs7QUFLQSxJQUFNeUUsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUFDOUQsSUFBRCxFQUE2QjtBQUMzRCxxQkFBdUJrRCxVQUFVLENBQUNsRCxJQUFELENBQWpDO0FBQUEsTUFBUWIsQ0FBUixnQkFBUUEsQ0FBUjtBQUFBLE1BQVdDLENBQVgsZ0JBQVdBLENBQVg7QUFBQSxNQUFjQyxDQUFkLGdCQUFjQSxDQUFkO0FBQUEsTUFBaUJDLENBQWpCLGdCQUFpQkEsQ0FBakI7O0FBQ0Esd0JBQWVILENBQWYsZUFBcUJDLENBQXJCLGVBQTJCQyxDQUEzQixlQUFpQ0MsQ0FBakM7QUFDRCxDQUhNOzs7O0FBS0EsSUFBTXlFLFNBQVMsR0FBRyxTQUFaQSxTQUFZO0FBQUEsTUFBRzVFLENBQUgsU0FBR0EsQ0FBSDtBQUFBLE1BQU1DLENBQU4sU0FBTUEsQ0FBTjtBQUFBLE1BQVNDLENBQVQsU0FBU0EsQ0FBVDtBQUFBLFNBQXVDO0FBQUVGLElBQUFBLENBQUMsRUFBREEsQ0FBRjtBQUFLQyxJQUFBQSxDQUFDLEVBQURBLENBQUw7QUFBUUMsSUFBQUEsQ0FBQyxFQUFEQTtBQUFSLEdBQXZDO0FBQUEsQ0FBbEI7Ozs7QUFDQSxJQUFNMkUsU0FBUyxHQUFHLFNBQVpBLFNBQVk7QUFBQSxNQUFHcEUsQ0FBSCxVQUFHQSxDQUFIO0FBQUEsTUFBTUMsQ0FBTixVQUFNQSxDQUFOO0FBQUEsTUFBU0ssQ0FBVCxVQUFTQSxDQUFUO0FBQUEsU0FBdUM7QUFBRU4sSUFBQUEsQ0FBQyxFQUFEQSxDQUFGO0FBQUtDLElBQUFBLENBQUMsRUFBREEsQ0FBTDtBQUFRSyxJQUFBQSxDQUFDLEVBQURBO0FBQVIsR0FBdkM7QUFBQSxDQUFsQjs7OztBQUNBLElBQU0rRCxTQUFTLEdBQUcsU0FBWkEsU0FBWSxDQUFDakUsSUFBRDtBQUFBLFNBQTZCOEIsU0FBUyxDQUFDb0IsVUFBVSxDQUFDbEQsSUFBRCxDQUFYLENBQXRDO0FBQUEsQ0FBbEI7Ozs7QUFDQSxJQUFNa0UsVUFBVSxHQUFHLFNBQWJBLFVBQWEsQ0FBQ2xFLElBQUQ7QUFBQSxTQUE2Qm9DLFVBQVUsQ0FBQ2MsVUFBVSxDQUFDbEQsSUFBRCxDQUFYLENBQXZDO0FBQUEsQ0FBbkI7Ozs7QUFDQSxJQUFNbUUsU0FBUyxHQUFHLFNBQVpBLFNBQVk7QUFBQSxNQUFHdkUsQ0FBSCxVQUFHQSxDQUFIO0FBQUEsTUFBTUMsQ0FBTixVQUFNQSxDQUFOO0FBQUEsTUFBU0MsQ0FBVCxVQUFTQSxDQUFUO0FBQUEsU0FBdUM7QUFBRUYsSUFBQUEsQ0FBQyxFQUFEQSxDQUFGO0FBQUtDLElBQUFBLENBQUMsRUFBREEsQ0FBTDtBQUFRQyxJQUFBQSxDQUFDLEVBQURBO0FBQVIsR0FBdkM7QUFBQSxDQUFsQjs7OztBQUVBLElBQU1zRSxLQUFLLEdBQUcsU0FBUkEsS0FBUSxDQUFDQyxHQUFELEVBQTBDO0FBQzdELE1BQUlDLEdBQUo7QUFDQSxNQUFJQyxHQUFKO0FBQ0EsTUFBSUMsR0FBSjtBQUNBLE1BQUlaLElBQUo7QUFDQSxNQUFJYSxJQUFKO0FBQ0EsTUFBSXpFLElBQUo7QUFDQSxNQUFJd0MsR0FBSjtBQUNBLE1BQUlrQyxJQUFKOztBQUNBLE1BQUksT0FBT0wsR0FBUCxLQUFlLFFBQWYsSUFBMkIscUJBQVNBLEdBQVQsQ0FBL0IsRUFBOEM7QUFDNUNyRSxJQUFBQSxJQUFJLEdBQUd1QyxTQUFTLENBQUM4QixHQUFELENBQWhCO0FBQ0E3QixJQUFBQSxHQUFHLEdBQUc2QixHQUFOO0FBQ0QsR0FIRCxNQUdPLElBQUksT0FBT0EsR0FBUCxLQUFlLFFBQW5CLEVBQTZCO0FBQ2xDckUsSUFBQUEsSUFBSSxHQUFHcUUsR0FBUDtBQUNEOztBQUNELE1BQUlyRSxJQUFKLEVBQVU7QUFDUndFLElBQUFBLEdBQUcsR0FBR0wsU0FBUyxDQUFDbkUsSUFBRCxDQUFmO0FBQ0F5RSxJQUFBQSxJQUFJLEdBQUd4RSxVQUFVLENBQUNELElBQUQsQ0FBakI7QUFDQTRELElBQUFBLElBQUksR0FBR1YsVUFBVSxDQUFDbEQsSUFBRCxDQUFqQjtBQUNBMEUsSUFBQUEsSUFBSSxHQUFHdEMsVUFBVSxDQUFDd0IsSUFBRCxDQUFqQjtBQUNBcEIsSUFBQUEsR0FBRyxHQUFHeUIsU0FBUyxDQUFDakUsSUFBRCxDQUFmO0FBQ0F1RSxJQUFBQSxHQUFHLEdBQUdQLFNBQVMsQ0FBQ1MsSUFBRCxDQUFmO0FBQ0FILElBQUFBLEdBQUcsR0FBR1AsU0FBUyxDQUFDSCxJQUFELENBQWY7QUFDRDs7QUFDRCxTQUFPO0FBQUVVLElBQUFBLEdBQUcsRUFBSEEsR0FBRjtBQUFPQyxJQUFBQSxHQUFHLEVBQUhBLEdBQVA7QUFBWUMsSUFBQUEsR0FBRyxFQUFIQSxHQUFaO0FBQWlCWixJQUFBQSxJQUFJLEVBQUpBLElBQWpCO0FBQXVCYSxJQUFBQSxJQUFJLEVBQUpBLElBQXZCO0FBQTZCekUsSUFBQUEsSUFBSSxFQUFKQSxJQUE3QjtBQUFtQ3dDLElBQUFBLEdBQUcsRUFBSEEsR0FBbkM7QUFBd0NrQyxJQUFBQSxJQUFJLEVBQUpBO0FBQXhDLEdBQVA7QUFDRCxDQXpCTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZhbGlkSGV4IH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXRDb250cmFzdGluZ0NvbG9yJztcblxuY29uc3QgUkdCX01BWCA9IDI1NTtcbmNvbnN0IEhVRV9NQVggPSAzNjA7XG5jb25zdCBTVl9NQVggPSAxMDA7XG5cbmV4cG9ydCB0eXBlIE9iamVjdENvbG9yID0gUmdiQ29sb3IgfCBIc2xDb2xvciB8IEhzdkNvbG9yIHwgUmdiYUNvbG9yIHwgSHNsYUNvbG9yIHwgSHN2YUNvbG9yO1xuZXhwb3J0IHR5cGUgQ29sb3JSZXN1bHQgPSB7XG4gIHJnYjogUmdiQ29sb3I7XG4gIGhzbDogSHNsQ29sb3I7XG4gIGhzdjogSHN2Q29sb3I7XG4gIHJnYmE6IFJnYmFDb2xvcjtcbiAgaHNsYTogSHNsYUNvbG9yO1xuICBoc3ZhOiBIc3ZhQ29sb3I7XG4gIGhleDogc3RyaW5nO1xuICBoZXhhOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEhzdkNvbG9yIHtcbiAgaDogbnVtYmVyO1xuICBzOiBudW1iZXI7XG4gIHY6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIc3ZhQ29sb3IgZXh0ZW5kcyBIc3ZDb2xvciB7XG4gIGE6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZ2JDb2xvciB7XG4gIHI6IG51bWJlcjtcbiAgZzogbnVtYmVyO1xuICBiOiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIFJnYmFDb2xvciBleHRlbmRzIFJnYkNvbG9yIHtcbiAgYTogbnVtYmVyO1xufVxuXG4vKipcbiAqIGBgYGpzXG4gKiByZ2JhVG9Ic3ZhKHsgcjogMjU1LCBnOiAyNTUsIGI6IDI1NSwgYTogMSB9KSAvLz0+IHsgaDogMCwgczogMCwgdjogMTAwLCBhOiAxIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgcmdiYVRvSHN2YSA9ICh7IHIsIGcsIGIsIGEgfTogUmdiYUNvbG9yKTogSHN2YUNvbG9yID0+IHtcbiAgY29uc3QgbWF4ID0gTWF0aC5tYXgociwgZywgYik7XG4gIGNvbnN0IGRlbHRhID0gbWF4IC0gTWF0aC5taW4ociwgZywgYik7XG5cbiAgLy8gcHJldHRpZXItaWdub3JlXG4gIGNvbnN0IGhoID0gZGVsdGFcbiAgICA/IG1heCA9PT0gclxuICAgICAgPyAoZyAtIGIpIC8gZGVsdGFcbiAgICAgIDogbWF4ID09PSBnXG4gICAgICAgID8gMiArIChiIC0gcikgLyBkZWx0YVxuICAgICAgICA6IDQgKyAociAtIGcpIC8gZGVsdGFcbiAgICA6IDA7XG5cbiAgcmV0dXJuIHtcbiAgICBoOiA2MCAqIChoaCA8IDAgPyBoaCArIDYgOiBoaCksXG4gICAgczogbWF4ID8gKGRlbHRhIC8gbWF4KSAqIFNWX01BWCA6IDAsXG4gICAgdjogKG1heCAvIFJHQl9NQVgpICogU1ZfTUFYLFxuICAgIGEsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvSHNsU3RyaW5nID0gKGhzdmE6IEhzdmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHsgaCwgcywgbCB9ID0gaHN2YVRvSHNsYShoc3ZhKTtcbiAgLy8gcmV0dXJuIGBoc2woJHtofSwgJHtzfSUsICR7bH0lKWA7XG4gIHJldHVybiBgaHNsKCR7aH0sICR7TWF0aC5yb3VuZChzKX0lLCAke01hdGgucm91bmQobCl9JSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzdlN0cmluZyA9ICh7IGgsIHMsIHYgfTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGBoc3YoJHtofSwgJHtzfSUsICR7dn0lKWA7XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvSHN2YVN0cmluZyA9ICh7IGgsIHMsIHYsIGEgfTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGBoc3ZhKCR7aH0sICR7c30lLCAke3Z9JSwgJHthfSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzbGFTdHJpbmcgPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyBoLCBzLCBsLCBhIH0gPSBoc3ZhVG9Ic2xhKGhzdmEpO1xuICByZXR1cm4gYGhzbGEoJHtofSwgJHtzfSUsICR7bH0lLCAke2F9KWA7XG59O1xuXG5leHBvcnQgY29uc3QgaHNsYVN0cmluZ1RvSHN2YSA9IChoc2xTdHJpbmc6IHN0cmluZyk6IEhzdmFDb2xvciA9PiB7XG4gIGNvbnN0IG1hdGNoZXIgPVxuICAgIC9oc2xhP1xcKD9cXHMqKC0/XFxkKlxcLj9cXGQrKShkZWd8cmFkfGdyYWR8dHVybik/WyxcXHNdKygtP1xcZCpcXC4/XFxkKyklP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspJT8sP1xccypbL1xcc10qKC0/XFxkKlxcLj9cXGQrKT8oJSk/XFxzKlxcKT8vaTtcbiAgY29uc3QgbWF0Y2ggPSBtYXRjaGVyLmV4ZWMoaHNsU3RyaW5nKTtcblxuICBpZiAoIW1hdGNoKSByZXR1cm4geyBoOiAwLCBzOiAwLCB2OiAwLCBhOiAxIH07XG5cbiAgcmV0dXJuIGhzbGFUb0hzdmEoe1xuICAgIGg6IHBhcnNlSHVlKG1hdGNoWzFdLCBtYXRjaFsyXSksXG4gICAgczogTnVtYmVyKG1hdGNoWzNdKSxcbiAgICBsOiBOdW1iZXIobWF0Y2hbNF0pLFxuICAgIGE6IG1hdGNoWzVdID09PSB1bmRlZmluZWQgPyAxIDogTnVtYmVyKG1hdGNoWzVdKSAvIChtYXRjaFs2XSA/IDEwMCA6IDEpLFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc2xTdHJpbmdUb0hzdmEgPSBoc2xhU3RyaW5nVG9Ic3ZhO1xuXG5leHBvcnQgY29uc3QgaHNsYVRvSHN2YSA9ICh7IGgsIHMsIGwsIGEgfTogSHNsYUNvbG9yKTogSHN2YUNvbG9yID0+IHtcbiAgcyAqPSAobCA8IDUwID8gbCA6IFNWX01BWCAtIGwpIC8gU1ZfTUFYO1xuXG4gIHJldHVybiB7XG4gICAgaDogaCxcbiAgICBzOiBzID4gMCA/ICgoMiAqIHMpIC8gKGwgKyBzKSkgKiBTVl9NQVggOiAwLFxuICAgIHY6IGwgKyBzLFxuICAgIGEsXG4gIH07XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEhzbENvbG9yIHtcbiAgaDogbnVtYmVyO1xuICBzOiBudW1iZXI7XG4gIGw6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSHNsYUNvbG9yIGV4dGVuZHMgSHNsQ29sb3Ige1xuICBhOiBudW1iZXI7XG59XG5leHBvcnQgY29uc3QgaHN2YVRvSHNsYSA9ICh7IGgsIHMsIHYsIGEgfTogSHN2YUNvbG9yKTogSHNsYUNvbG9yID0+IHtcbiAgY29uc3QgaGggPSAoKDIwMCAtIHMpICogdikgLyBTVl9NQVg7XG5cbiAgcmV0dXJuIHtcbiAgICBoLFxuICAgIHM6IGhoID4gMCAmJiBoaCA8IDIwMCA/ICgocyAqIHYpIC8gU1ZfTUFYIC8gKGhoIDw9IFNWX01BWCA/IGhoIDogMjAwIC0gaGgpKSAqIFNWX01BWCA6IDAsXG4gICAgbDogaGggLyAyLFxuICAgIGEsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVN0cmluZ1RvSHN2YSA9IChoc3ZTdHJpbmc6IHN0cmluZyk6IEhzdmFDb2xvciA9PiB7XG4gIGNvbnN0IG1hdGNoZXIgPVxuICAgIC9oc3ZhP1xcKD9cXHMqKC0/XFxkKlxcLj9cXGQrKShkZWd8cmFkfGdyYWR8dHVybik/WyxcXHNdKygtP1xcZCpcXC4/XFxkKyklP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspJT8sP1xccypbL1xcc10qKC0/XFxkKlxcLj9cXGQrKT8oJSk/XFxzKlxcKT8vaTtcbiAgY29uc3QgbWF0Y2ggPSBtYXRjaGVyLmV4ZWMoaHN2U3RyaW5nKTtcblxuICBpZiAoIW1hdGNoKSByZXR1cm4geyBoOiAwLCBzOiAwLCB2OiAwLCBhOiAxIH07XG5cbiAgcmV0dXJuIHtcbiAgICBoOiBwYXJzZUh1ZShtYXRjaFsxXSwgbWF0Y2hbMl0pLFxuICAgIHM6IE51bWJlcihtYXRjaFszXSksXG4gICAgdjogTnVtYmVyKG1hdGNoWzRdKSxcbiAgICBhOiBtYXRjaFs1XSA9PT0gdW5kZWZpbmVkID8gMSA6IE51bWJlcihtYXRjaFs1XSkgLyAobWF0Y2hbNl0gPyBTVl9NQVggOiAxKSxcbiAgfTtcbn07XG5cbi8qKlxuICogVmFsaWQgQ1NTIDxhbmdsZT4gdW5pdHMuXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvYW5nbGVcbiAqL1xuY29uc3QgYW5nbGVVbml0czogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHtcbiAgZ3JhZDogSFVFX01BWCAvIDQwMCxcbiAgdHVybjogSFVFX01BWCxcbiAgcmFkOiBIVUVfTUFYIC8gKE1hdGguUEkgKiAyKSxcbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUh1ZSA9ICh2YWx1ZTogc3RyaW5nLCB1bml0ID0gJ2RlZycpOiBudW1iZXIgPT4ge1xuICByZXR1cm4gTnVtYmVyKHZhbHVlKSAqIChhbmdsZVVuaXRzW3VuaXRdIHx8IDEpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdlN0cmluZ1RvSHN2YSA9IGhzdmFTdHJpbmdUb0hzdmE7XG5leHBvcnQgY29uc3QgcmdiYVN0cmluZ1RvSHN2YSA9IChyZ2JhU3RyaW5nOiBzdHJpbmcpOiBIc3ZhQ29sb3IgPT4ge1xuICBjb25zdCBtYXRjaGVyID1cbiAgICAvcmdiYT9cXCg/XFxzKigtP1xcZCpcXC4/XFxkKykoJSk/WyxcXHNdKygtP1xcZCpcXC4/XFxkKykoJSk/WyxcXHNdKygtP1xcZCpcXC4/XFxkKykoJSk/LD9cXHMqWy9cXHNdKigtP1xcZCpcXC4/XFxkKyk/KCUpP1xccypcXCk/L2k7XG4gIGNvbnN0IG1hdGNoID0gbWF0Y2hlci5leGVjKHJnYmFTdHJpbmcpO1xuXG4gIGlmICghbWF0Y2gpIHJldHVybiB7IGg6IDAsIHM6IDAsIHY6IDAsIGE6IDEgfTtcblxuICByZXR1cm4gcmdiYVRvSHN2YSh7XG4gICAgcjogTnVtYmVyKG1hdGNoWzFdKSAvIChtYXRjaFsyXSA/IFNWX01BWCAvIFJHQl9NQVggOiAxKSxcbiAgICBnOiBOdW1iZXIobWF0Y2hbM10pIC8gKG1hdGNoWzRdID8gU1ZfTUFYIC8gUkdCX01BWCA6IDEpLFxuICAgIGI6IE51bWJlcihtYXRjaFs1XSkgLyAobWF0Y2hbNl0gPyBTVl9NQVggLyBSR0JfTUFYIDogMSksXG4gICAgYTogbWF0Y2hbN10gPT09IHVuZGVmaW5lZCA/IDEgOiBOdW1iZXIobWF0Y2hbN10pIC8gKG1hdGNoWzhdID8gU1ZfTUFYIDogMSksXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHJnYlN0cmluZ1RvSHN2YSA9IHJnYmFTdHJpbmdUb0hzdmE7XG5cbi8qKiBDb252ZXJ0cyBhbiBSR0JBIGNvbG9yIHBsdXMgYWxwaGEgdHJhbnNwYXJlbmN5IHRvIGhleCAqL1xuZXhwb3J0IGNvbnN0IHJnYmFUb0hleCA9ICh7IHIsIGcsIGIgfTogUmdiYUNvbG9yKTogc3RyaW5nID0+IHtcbiAgbGV0IGJpbiA9IChyIDw8IDE2KSB8IChnIDw8IDgpIHwgYjtcbiAgcmV0dXJuIGAjJHsoKGgpID0+IG5ldyBBcnJheSg3IC0gaC5sZW5ndGgpLmpvaW4oJzAnKSArIGgpKGJpbi50b1N0cmluZygxNikpfWA7XG59O1xuXG5leHBvcnQgY29uc3QgcmdiYVRvSGV4YSA9ICh7IHIsIGcsIGIsIGEgfTogUmdiYUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgYWxwaGEgPSB0eXBlb2YgYSA9PT0gJ251bWJlcicgJiYgKChhICogMjU1KSB8ICgxIDw8IDgpKS50b1N0cmluZygxNikuc2xpY2UoMSk7XG4gIHJldHVybiBgJHtyZ2JhVG9IZXgoeyByLCBnLCBiLCBhIH0pfSR7YWxwaGEgPyBhbHBoYSA6ICcnfWA7XG59O1xuXG5leHBvcnQgY29uc3QgaGV4VG9Ic3ZhID0gKGhleDogc3RyaW5nKTogSHN2YUNvbG9yID0+IHJnYmFUb0hzdmEoaGV4VG9SZ2JhKGhleCkpO1xuZXhwb3J0IGNvbnN0IGhleFRvUmdiYSA9IChoZXg6IHN0cmluZyk6IFJnYmFDb2xvciA9PiB7XG4gIGNvbnN0IGh0ZW1wID0gaGV4LnJlcGxhY2UoJyMnLCAnJyk7XG4gIGlmICgvXiM/Ly50ZXN0KGhleCkgJiYgaHRlbXAubGVuZ3RoID09PSAzKSB7XG4gICAgaGV4ID0gYCMke2h0ZW1wLmNoYXJBdCgwKX0ke2h0ZW1wLmNoYXJBdCgwKX0ke2h0ZW1wLmNoYXJBdCgxKX0ke2h0ZW1wLmNoYXJBdCgxKX0ke2h0ZW1wLmNoYXJBdCgyKX0ke2h0ZW1wLmNoYXJBdCgyKX1gO1xuICB9XG4gIGNvbnN0IHJlZyA9IG5ldyBSZWdFeHAoYFtBLVphLXowLTldezJ9YCwgJ2cnKTtcbiAgY29uc3QgW3IsIGcsIGIgPSAwLCBhXSA9IGhleC5tYXRjaChyZWcpIS5tYXAoKHYpID0+IHBhcnNlSW50KHYsIDE2KSk7XG4gIHJldHVybiB7XG4gICAgcixcbiAgICBnLFxuICAgIGIsXG4gICAgYTogYSA/IGEgLyBSR0JfTUFYIDogMSxcbiAgfTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgSFNWQSB0byBSR0JBLiBCYXNlZCBvbiBmb3JtdWxhIGZyb20gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSFNMX2FuZF9IU1ZcbiAqIEBwYXJhbSBjb2xvciBIU1ZBIGNvbG9yIGFzIGFuIGFycmF5IFswLTM2MCwgMC0xLCAwLTEsIDAtMV1cbiAqL1xuZXhwb3J0IGNvbnN0IGhzdmFUb1JnYmEgPSAoeyBoLCBzLCB2LCBhIH06IEhzdmFDb2xvcik6IFJnYmFDb2xvciA9PiB7XG4gIGxldCBfaCA9IGggLyA2MCxcbiAgICBfcyA9IHMgLyBTVl9NQVgsXG4gICAgX3YgPSB2IC8gU1ZfTUFYLFxuICAgIGhpID0gTWF0aC5mbG9vcihfaCkgJSA2O1xuXG4gIGxldCBmID0gX2ggLSBNYXRoLmZsb29yKF9oKSxcbiAgICBfcCA9IFJHQl9NQVggKiBfdiAqICgxIC0gX3MpLFxuICAgIF9xID0gUkdCX01BWCAqIF92ICogKDEgLSBfcyAqIGYpLFxuICAgIF90ID0gUkdCX01BWCAqIF92ICogKDEgLSBfcyAqICgxIC0gZikpO1xuICBfdiAqPSBSR0JfTUFYO1xuICBjb25zdCByZ2JhID0ge30gYXMgUmdiYUNvbG9yO1xuICBzd2l0Y2ggKGhpKSB7XG4gICAgY2FzZSAwOlxuICAgICAgcmdiYS5yID0gX3Y7XG4gICAgICByZ2JhLmcgPSBfdDtcbiAgICAgIHJnYmEuYiA9IF9wO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAxOlxuICAgICAgcmdiYS5yID0gX3E7XG4gICAgICByZ2JhLmcgPSBfdjtcbiAgICAgIHJnYmEuYiA9IF9wO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAyOlxuICAgICAgcmdiYS5yID0gX3A7XG4gICAgICByZ2JhLmcgPSBfdjtcbiAgICAgIHJnYmEuYiA9IF90O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAzOlxuICAgICAgcmdiYS5yID0gX3A7XG4gICAgICByZ2JhLmcgPSBfcTtcbiAgICAgIHJnYmEuYiA9IF92O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA0OlxuICAgICAgcmdiYS5yID0gX3Q7XG4gICAgICByZ2JhLmcgPSBfcDtcbiAgICAgIHJnYmEuYiA9IF92O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA1OlxuICAgICAgcmdiYS5yID0gX3Y7XG4gICAgICByZ2JhLmcgPSBfcDtcbiAgICAgIHJnYmEuYiA9IF9xO1xuICAgICAgYnJlYWs7XG4gIH1cbiAgcmdiYS5yID0gTWF0aC5yb3VuZChyZ2JhLnIpO1xuICByZ2JhLmcgPSBNYXRoLnJvdW5kKHJnYmEuZyk7XG4gIHJnYmEuYiA9IE1hdGgucm91bmQocmdiYS5iKTtcbiAgcmV0dXJuIHsgLi4ucmdiYSwgYSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb1JnYlN0cmluZyA9IChoc3ZhOiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IHIsIGcsIGIgfSA9IGhzdmFUb1JnYmEoaHN2YSk7XG4gIHJldHVybiBgcmdiKCR7cn0sICR7Z30sICR7Yn0pYDtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9SZ2JhU3RyaW5nID0gKGhzdmE6IEhzdmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHsgciwgZywgYiwgYSB9ID0gaHN2YVRvUmdiYShoc3ZhKTtcbiAgcmV0dXJuIGByZ2JhKCR7cn0sICR7Z30sICR7Yn0sICR7YX0pYDtcbn07XG5cbmV4cG9ydCBjb25zdCByZ2JhVG9SZ2IgPSAoeyByLCBnLCBiIH06IFJnYmFDb2xvcik6IFJnYkNvbG9yID0+ICh7IHIsIGcsIGIgfSk7XG5leHBvcnQgY29uc3QgaHNsYVRvSHNsID0gKHsgaCwgcywgbCB9OiBIc2xhQ29sb3IpOiBIc2xDb2xvciA9PiAoeyBoLCBzLCBsIH0pO1xuZXhwb3J0IGNvbnN0IGhzdmFUb0hleCA9IChoc3ZhOiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4gcmdiYVRvSGV4KGhzdmFUb1JnYmEoaHN2YSkpO1xuZXhwb3J0IGNvbnN0IGhzdmFUb0hleGEgPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHJnYmFUb0hleGEoaHN2YVRvUmdiYShoc3ZhKSk7XG5leHBvcnQgY29uc3QgaHN2YVRvSHN2ID0gKHsgaCwgcywgdiB9OiBIc3ZhQ29sb3IpOiBIc3ZDb2xvciA9PiAoeyBoLCBzLCB2IH0pO1xuXG5leHBvcnQgY29uc3QgY29sb3IgPSAoc3RyOiBzdHJpbmcgfCBIc3ZhQ29sb3IpOiBDb2xvclJlc3VsdCA9PiB7XG4gIGxldCByZ2IhOiBSZ2JDb2xvcjtcbiAgbGV0IGhzbCE6IEhzbENvbG9yO1xuICBsZXQgaHN2ITogSHN2Q29sb3I7XG4gIGxldCByZ2JhITogUmdiYUNvbG9yO1xuICBsZXQgaHNsYSE6IEhzbGFDb2xvcjtcbiAgbGV0IGhzdmEhOiBIc3ZhQ29sb3I7XG4gIGxldCBoZXghOiBzdHJpbmc7XG4gIGxldCBoZXhhITogc3RyaW5nO1xuICBpZiAodHlwZW9mIHN0ciA9PT0gJ3N0cmluZycgJiYgdmFsaWRIZXgoc3RyKSkge1xuICAgIGhzdmEgPSBoZXhUb0hzdmEoc3RyKTtcbiAgICBoZXggPSBzdHI7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHN0ciAhPT0gJ3N0cmluZycpIHtcbiAgICBoc3ZhID0gc3RyO1xuICB9XG4gIGlmIChoc3ZhKSB7XG4gICAgaHN2ID0gaHN2YVRvSHN2KGhzdmEpO1xuICAgIGhzbGEgPSBoc3ZhVG9Ic2xhKGhzdmEpO1xuICAgIHJnYmEgPSBoc3ZhVG9SZ2JhKGhzdmEpO1xuICAgIGhleGEgPSByZ2JhVG9IZXhhKHJnYmEpO1xuICAgIGhleCA9IGhzdmFUb0hleChoc3ZhKTtcbiAgICBoc2wgPSBoc2xhVG9Ic2woaHNsYSk7XG4gICAgcmdiID0gcmdiYVRvUmdiKHJnYmEpO1xuICB9XG4gIHJldHVybiB7IHJnYiwgaHNsLCBoc3YsIHJnYmEsIGhzbGEsIGhzdmEsIGhleCwgaGV4YSB9O1xufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJSR0JfTUFYIiwiSFVFX01BWCIsIlNWX01BWCIsInJnYmFUb0hzdmEiLCJyIiwiZyIsImIiLCJhIiwibWF4IiwiTWF0aCIsImRlbHRhIiwibWluIiwiaGgiLCJoIiwicyIsInYiLCJoc3ZhVG9Ic2xTdHJpbmciLCJoc3ZhIiwiaHN2YVRvSHNsYSIsImwiLCJyb3VuZCIsImhzdmFUb0hzdlN0cmluZyIsImhzdmFUb0hzdmFTdHJpbmciLCJoc3ZhVG9Ic2xhU3RyaW5nIiwiaHNsU3RyaW5nVG9Ic2xhIiwic3RyIiwibWF0Y2giLCJtYXAiLCJOdW1iZXIiLCJoc2xhU3RyaW5nVG9Ic3ZhIiwiaHNsU3RyaW5nIiwibWF0Y2hlciIsImV4ZWMiLCJoc2xhVG9Ic3ZhIiwicGFyc2VIdWUiLCJ1bmRlZmluZWQiLCJoc2xTdHJpbmdUb0hzdmEiLCJoc3ZhU3RyaW5nVG9Ic3ZhIiwiaHN2U3RyaW5nIiwiYW5nbGVVbml0cyIsImdyYWQiLCJ0dXJuIiwicmFkIiwiUEkiLCJ2YWx1ZSIsInVuaXQiLCJoc3ZTdHJpbmdUb0hzdmEiLCJyZ2JhU3RyaW5nVG9Ic3ZhIiwicmdiYVN0cmluZyIsInJnYlN0cmluZ1RvSHN2YSIsInJnYmFUb0hleCIsImJpbiIsIkFycmF5IiwibGVuZ3RoIiwiam9pbiIsInRvU3RyaW5nIiwicmdiYVRvSGV4YSIsImFscGhhIiwic2xpY2UiLCJoZXhUb0hzdmEiLCJoZXgiLCJoZXhUb1JnYmEiLCJodGVtcCIsInJlcGxhY2UiLCJ0ZXN0IiwiY2hhckF0IiwicmVnIiwiUmVnRXhwIiwicGFyc2VJbnQiLCJoc3ZhVG9SZ2JhIiwiX2giLCJfcyIsIl92IiwiaGkiLCJmbG9vciIsImYiLCJfcCIsIl9xIiwiX3QiLCJyZ2JhIiwiaHN2YVRvUmdiU3RyaW5nIiwiaHN2YVRvUmdiYVN0cmluZyIsInJnYmFUb1JnYiIsImhzbGFUb0hzbCIsImhzdmFUb0hleCIsImhzdmFUb0hleGEiLCJoc3ZhVG9Ic3Yi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QUFTQSxHQUFULENBQS9CLEVBQThDO0FBQzVDUixJQUFBQSxJQUFJLEdBQUcwQyxTQUFTLENBQUNsQyxHQUFELENBQWhCO0FBQ0FtQyxJQUFBQSxHQUFHLEdBQUduQyxHQUFOO0FBQ0QsR0FIRCxNQUdPLElBQUksT0FBT0EsR0FBUCxLQUFlLFFBQW5CLEVBQTZCO0FBQ2xDUixJQUFBQSxJQUFJLEdBQUdRLEdBQVA7QUFDRDs7QUFDRCxNQUFJUixJQUFKLEVBQVU7QUFDUnlFLElBQUFBLEdBQUcsR0FBR0osU0FBUyxDQUFDckUsSUFBRCxDQUFmO0FBQ0EwRSxJQUFBQSxJQUFJLEdBQUd6RSxVQUFVLENBQUNELElBQUQsQ0FBakI7QUFDQThELElBQUFBLElBQUksR0FBR1YsVUFBVSxDQUFDcEQsSUFBRCxDQUFqQjtBQUNBMkUsSUFBQUEsSUFBSSxHQUFHcEMsVUFBVSxDQUFDdUIsSUFBRCxDQUFqQjtBQUNBbkIsSUFBQUEsR0FBRyxHQUFHd0IsU0FBUyxDQUFDbkUsSUFBRCxDQUFmO0FBQ0F3RSxJQUFBQSxHQUFHLEdBQUdOLFNBQVMsQ0FBQ1EsSUFBRCxDQUFmO0FBQ0FILElBQUFBLEdBQUcsR0FBR04sU0FBUyxDQUFDSCxJQUFELENBQWY7QUFDRDs7QUFDRCxTQUFPO0FBQUVTLElBQUFBLEdBQUcsRUFBSEEsR0FBRjtBQUFPQyxJQUFBQSxHQUFHLEVBQUhBLEdBQVA7QUFBWUMsSUFBQUEsR0FBRyxFQUFIQSxHQUFaO0FBQWlCWCxJQUFBQSxJQUFJLEVBQUpBLElBQWpCO0FBQXVCWSxJQUFBQSxJQUFJLEVBQUpBLElBQXZCO0FBQTZCMUUsSUFBQUEsSUFBSSxFQUFKQSxJQUE3QjtBQUFtQzJDLElBQUFBLEdBQUcsRUFBSEEsR0FBbkM7QUFBd0NnQyxJQUFBQSxJQUFJLEVBQUpBO0FBQXhDLEdBQVA7QUFDRCxDQXpCTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZhbGlkSGV4IH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9nZXRDb250cmFzdGluZ0NvbG9yJztcblxuY29uc3QgUkdCX01BWCA9IDI1NTtcbmNvbnN0IEhVRV9NQVggPSAzNjA7XG5jb25zdCBTVl9NQVggPSAxMDA7XG5cbmV4cG9ydCB0eXBlIE9iamVjdENvbG9yID0gUmdiQ29sb3IgfCBIc2xDb2xvciB8IEhzdkNvbG9yIHwgUmdiYUNvbG9yIHwgSHNsYUNvbG9yIHwgSHN2YUNvbG9yO1xuZXhwb3J0IHR5cGUgQ29sb3JSZXN1bHQgPSB7XG4gIHJnYjogUmdiQ29sb3I7XG4gIGhzbDogSHNsQ29sb3I7XG4gIGhzdjogSHN2Q29sb3I7XG4gIHJnYmE6IFJnYmFDb2xvcjtcbiAgaHNsYTogSHNsYUNvbG9yO1xuICBoc3ZhOiBIc3ZhQ29sb3I7XG4gIGhleDogc3RyaW5nO1xuICBoZXhhOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEhzdkNvbG9yIHtcbiAgaDogbnVtYmVyO1xuICBzOiBudW1iZXI7XG4gIHY6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIc3ZhQ29sb3IgZXh0ZW5kcyBIc3ZDb2xvciB7XG4gIGE6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZ2JDb2xvciB7XG4gIHI6IG51bWJlcjtcbiAgZzogbnVtYmVyO1xuICBiOiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIFJnYmFDb2xvciBleHRlbmRzIFJnYkNvbG9yIHtcbiAgYTogbnVtYmVyO1xufVxuXG4vKipcbiAqIGBgYGpzXG4gKiByZ2JhVG9Ic3ZhKHsgcjogMjU1LCBnOiAyNTUsIGI6IDI1NSwgYTogMSB9KSAvLz0+IHsgaDogMCwgczogMCwgdjogMTAwLCBhOiAxIH1cbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgcmdiYVRvSHN2YSA9ICh7IHIsIGcsIGIsIGEgfTogUmdiYUNvbG9yKTogSHN2YUNvbG9yID0+IHtcbiAgY29uc3QgbWF4ID0gTWF0aC5tYXgociwgZywgYik7XG4gIGNvbnN0IGRlbHRhID0gbWF4IC0gTWF0aC5taW4ociwgZywgYik7XG5cbiAgLy8gcHJldHRpZXItaWdub3JlXG4gIGNvbnN0IGhoID0gZGVsdGFcbiAgICA/IG1heCA9PT0gclxuICAgICAgPyAoZyAtIGIpIC8gZGVsdGFcbiAgICAgIDogbWF4ID09PSBnXG4gICAgICAgID8gMiArIChiIC0gcikgLyBkZWx0YVxuICAgICAgICA6IDQgKyAociAtIGcpIC8gZGVsdGFcbiAgICA6IDA7XG5cbiAgcmV0dXJuIHtcbiAgICBoOiA2MCAqIChoaCA8IDAgPyBoaCArIDYgOiBoaCksXG4gICAgczogbWF4ID8gKGRlbHRhIC8gbWF4KSAqIFNWX01BWCA6IDAsXG4gICAgdjogKG1heCAvIFJHQl9NQVgpICogU1ZfTUFYLFxuICAgIGEsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvSHNsU3RyaW5nID0gKGhzdmE6IEhzdmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHsgaCwgcywgbCB9ID0gaHN2YVRvSHNsYShoc3ZhKTtcbiAgLy8gcmV0dXJuIGBoc2woJHtofSwgJHtzfSUsICR7bH0lKWA7XG4gIHJldHVybiBgaHNsKCR7aH0sICR7TWF0aC5yb3VuZChzKX0lLCAke01hdGgucm91bmQobCl9JSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzdlN0cmluZyA9ICh7IGgsIHMsIHYgfTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGBoc3YoJHtofSwgJHtzfSUsICR7dn0lKWA7XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvSHN2YVN0cmluZyA9ICh7IGgsIHMsIHYsIGEgfTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIGBoc3ZhKCR7aH0sICR7c30lLCAke3Z9JSwgJHthfSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzbGFTdHJpbmcgPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyBoLCBzLCBsLCBhIH0gPSBoc3ZhVG9Ic2xhKGhzdmEpO1xuICByZXR1cm4gYGhzbGEoJHtofSwgJHtzfSUsICR7bH0lLCAke2F9KWA7XG59O1xuXG5leHBvcnQgY29uc3QgaHNsU3RyaW5nVG9Ic2xhID0gKHN0cjogc3RyaW5nKTogSHNsYUNvbG9yID0+IHtcbiAgY29uc3QgW2gsIHMsIGwsIGFdID0gKHN0ci5tYXRjaCgvXFxkKy9nKSB8fCBbXSkubWFwKE51bWJlcik7XG4gIHJldHVybiB7IGgsIHMsIGwsIGEgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc2xhU3RyaW5nVG9Ic3ZhID0gKGhzbFN0cmluZzogc3RyaW5nKTogSHN2YUNvbG9yID0+IHtcbiAgY29uc3QgbWF0Y2hlciA9XG4gICAgL2hzbGE/XFwoP1xccyooLT9cXGQqXFwuP1xcZCspKGRlZ3xyYWR8Z3JhZHx0dXJuKT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSU/WyxcXHNdKygtP1xcZCpcXC4/XFxkKyklPyw/XFxzKlsvXFxzXSooLT9cXGQqXFwuP1xcZCspPyglKT9cXHMqXFwpPy9pO1xuICBjb25zdCBtYXRjaCA9IG1hdGNoZXIuZXhlYyhoc2xTdHJpbmcpO1xuXG4gIGlmICghbWF0Y2gpIHJldHVybiB7IGg6IDAsIHM6IDAsIHY6IDAsIGE6IDEgfTtcblxuICByZXR1cm4gaHNsYVRvSHN2YSh7XG4gICAgaDogcGFyc2VIdWUobWF0Y2hbMV0sIG1hdGNoWzJdKSxcbiAgICBzOiBOdW1iZXIobWF0Y2hbM10pLFxuICAgIGw6IE51bWJlcihtYXRjaFs0XSksXG4gICAgYTogbWF0Y2hbNV0gPT09IHVuZGVmaW5lZCA/IDEgOiBOdW1iZXIobWF0Y2hbNV0pIC8gKG1hdGNoWzZdID8gMTAwIDogMSksXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzbFN0cmluZ1RvSHN2YSA9IGhzbGFTdHJpbmdUb0hzdmE7XG5cbmV4cG9ydCBjb25zdCBoc2xhVG9Ic3ZhID0gKHsgaCwgcywgbCwgYSB9OiBIc2xhQ29sb3IpOiBIc3ZhQ29sb3IgPT4ge1xuICBzICo9IChsIDwgNTAgPyBsIDogU1ZfTUFYIC0gbCkgLyBTVl9NQVg7XG5cbiAgcmV0dXJuIHtcbiAgICBoOiBoLFxuICAgIHM6IHMgPiAwID8gKCgyICogcykgLyAobCArIHMpKSAqIFNWX01BWCA6IDAsXG4gICAgdjogbCArIHMsXG4gICAgYSxcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHNsQ29sb3Ige1xuICBoOiBudW1iZXI7XG4gIHM6IG51bWJlcjtcbiAgbDogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBIc2xhQ29sb3IgZXh0ZW5kcyBIc2xDb2xvciB7XG4gIGE6IG51bWJlcjtcbn1cbmV4cG9ydCBjb25zdCBoc3ZhVG9Ic2xhID0gKHsgaCwgcywgdiwgYSB9OiBIc3ZhQ29sb3IpOiBIc2xhQ29sb3IgPT4ge1xuICBjb25zdCBoaCA9ICgoMjAwIC0gcykgKiB2KSAvIFNWX01BWDtcblxuICByZXR1cm4ge1xuICAgIGgsXG4gICAgczogaGggPiAwICYmIGhoIDwgMjAwID8gKChzICogdikgLyBTVl9NQVggLyAoaGggPD0gU1ZfTUFYID8gaGggOiAyMDAgLSBoaCkpICogU1ZfTUFYIDogMCxcbiAgICBsOiBoaCAvIDIsXG4gICAgYSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhU3RyaW5nVG9Ic3ZhID0gKGhzdlN0cmluZzogc3RyaW5nKTogSHN2YUNvbG9yID0+IHtcbiAgY29uc3QgbWF0Y2hlciA9XG4gICAgL2hzdmE/XFwoP1xccyooLT9cXGQqXFwuP1xcZCspKGRlZ3xyYWR8Z3JhZHx0dXJuKT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSU/WyxcXHNdKygtP1xcZCpcXC4/XFxkKyklPyw/XFxzKlsvXFxzXSooLT9cXGQqXFwuP1xcZCspPyglKT9cXHMqXFwpPy9pO1xuICBjb25zdCBtYXRjaCA9IG1hdGNoZXIuZXhlYyhoc3ZTdHJpbmcpO1xuXG4gIGlmICghbWF0Y2gpIHJldHVybiB7IGg6IDAsIHM6IDAsIHY6IDAsIGE6IDEgfTtcblxuICByZXR1cm4ge1xuICAgIGg6IHBhcnNlSHVlKG1hdGNoWzFdLCBtYXRjaFsyXSksXG4gICAgczogTnVtYmVyKG1hdGNoWzNdKSxcbiAgICB2OiBOdW1iZXIobWF0Y2hbNF0pLFxuICAgIGE6IG1hdGNoWzVdID09PSB1bmRlZmluZWQgPyAxIDogTnVtYmVyKG1hdGNoWzVdKSAvIChtYXRjaFs2XSA/IFNWX01BWCA6IDEpLFxuICB9O1xufTtcblxuLyoqXG4gKiBWYWxpZCBDU1MgPGFuZ2xlPiB1bml0cy5cbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9hbmdsZVxuICovXG5jb25zdCBhbmdsZVVuaXRzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge1xuICBncmFkOiBIVUVfTUFYIC8gNDAwLFxuICB0dXJuOiBIVUVfTUFYLFxuICByYWQ6IEhVRV9NQVggLyAoTWF0aC5QSSAqIDIpLFxufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlSHVlID0gKHZhbHVlOiBzdHJpbmcsIHVuaXQgPSAnZGVnJyk6IG51bWJlciA9PiB7XG4gIHJldHVybiBOdW1iZXIodmFsdWUpICogKGFuZ2xlVW5pdHNbdW5pdF0gfHwgMSk7XG59O1xuXG5leHBvcnQgY29uc3QgaHN2U3RyaW5nVG9Ic3ZhID0gaHN2YVN0cmluZ1RvSHN2YTtcbmV4cG9ydCBjb25zdCByZ2JhU3RyaW5nVG9Ic3ZhID0gKHJnYmFTdHJpbmc6IHN0cmluZyk6IEhzdmFDb2xvciA9PiB7XG4gIGNvbnN0IG1hdGNoZXIgPVxuICAgIC9yZ2JhP1xcKD9cXHMqKC0/XFxkKlxcLj9cXGQrKSglKT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSglKT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSglKT8sP1xccypbL1xcc10qKC0/XFxkKlxcLj9cXGQrKT8oJSk/XFxzKlxcKT8vaTtcbiAgY29uc3QgbWF0Y2ggPSBtYXRjaGVyLmV4ZWMocmdiYVN0cmluZyk7XG5cbiAgaWYgKCFtYXRjaCkgcmV0dXJuIHsgaDogMCwgczogMCwgdjogMCwgYTogMSB9O1xuXG4gIHJldHVybiByZ2JhVG9Ic3ZhKHtcbiAgICByOiBOdW1iZXIobWF0Y2hbMV0pIC8gKG1hdGNoWzJdID8gU1ZfTUFYIC8gUkdCX01BWCA6IDEpLFxuICAgIGc6IE51bWJlcihtYXRjaFszXSkgLyAobWF0Y2hbNF0gPyBTVl9NQVggLyBSR0JfTUFYIDogMSksXG4gICAgYjogTnVtYmVyKG1hdGNoWzVdKSAvIChtYXRjaFs2XSA/IFNWX01BWCAvIFJHQl9NQVggOiAxKSxcbiAgICBhOiBtYXRjaFs3XSA9PT0gdW5kZWZpbmVkID8gMSA6IE51bWJlcihtYXRjaFs3XSkgLyAobWF0Y2hbOF0gPyBTVl9NQVggOiAxKSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmdiU3RyaW5nVG9Ic3ZhID0gcmdiYVN0cmluZ1RvSHN2YTtcblxuLyoqIENvbnZlcnRzIGFuIFJHQkEgY29sb3IgcGx1cyBhbHBoYSB0cmFuc3BhcmVuY3kgdG8gaGV4ICovXG5leHBvcnQgY29uc3QgcmdiYVRvSGV4ID0gKHsgciwgZywgYiB9OiBSZ2JhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICBsZXQgYmluID0gKHIgPDwgMTYpIHwgKGcgPDwgOCkgfCBiO1xuICByZXR1cm4gYCMkeygoaCkgPT4gbmV3IEFycmF5KDcgLSBoLmxlbmd0aCkuam9pbignMCcpICsgaCkoYmluLnRvU3RyaW5nKDE2KSl9YDtcbn07XG5cbmV4cG9ydCBjb25zdCByZ2JhVG9IZXhhID0gKHsgciwgZywgYiwgYSB9OiBSZ2JhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBhbHBoYSA9IHR5cGVvZiBhID09PSAnbnVtYmVyJyAmJiAoKGEgKiAyNTUpIHwgKDEgPDwgOCkpLnRvU3RyaW5nKDE2KS5zbGljZSgxKTtcbiAgcmV0dXJuIGAke3JnYmFUb0hleCh7IHIsIGcsIGIsIGEgfSl9JHthbHBoYSA/IGFscGhhIDogJyd9YDtcbn07XG5cbmV4cG9ydCBjb25zdCBoZXhUb0hzdmEgPSAoaGV4OiBzdHJpbmcpOiBIc3ZhQ29sb3IgPT4gcmdiYVRvSHN2YShoZXhUb1JnYmEoaGV4KSk7XG5leHBvcnQgY29uc3QgaGV4VG9SZ2JhID0gKGhleDogc3RyaW5nKTogUmdiYUNvbG9yID0+IHtcbiAgY29uc3QgaHRlbXAgPSBoZXgucmVwbGFjZSgnIycsICcnKTtcbiAgaWYgKC9eIz8vLnRlc3QoaGV4KSAmJiBodGVtcC5sZW5ndGggPT09IDMpIHtcbiAgICBoZXggPSBgIyR7aHRlbXAuY2hhckF0KDApfSR7aHRlbXAuY2hhckF0KDApfSR7aHRlbXAuY2hhckF0KDEpfSR7aHRlbXAuY2hhckF0KDEpfSR7aHRlbXAuY2hhckF0KDIpfSR7aHRlbXAuY2hhckF0KDIpfWA7XG4gIH1cbiAgY29uc3QgcmVnID0gbmV3IFJlZ0V4cChgW0EtWmEtejAtOV17Mn1gLCAnZycpO1xuICBjb25zdCBbciwgZywgYiA9IDAsIGFdID0gaGV4Lm1hdGNoKHJlZykhLm1hcCgodikgPT4gcGFyc2VJbnQodiwgMTYpKTtcbiAgcmV0dXJuIHtcbiAgICByLFxuICAgIGcsXG4gICAgYixcbiAgICBhOiBhID8gYSAvIFJHQl9NQVggOiAxLFxuICB9O1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBIU1ZBIHRvIFJHQkEuIEJhc2VkIG9uIGZvcm11bGEgZnJvbSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9IU0xfYW5kX0hTVlxuICogQHBhcmFtIGNvbG9yIEhTVkEgY29sb3IgYXMgYW4gYXJyYXkgWzAtMzYwLCAwLTEsIDAtMSwgMC0xXVxuICovXG5leHBvcnQgY29uc3QgaHN2YVRvUmdiYSA9ICh7IGgsIHMsIHYsIGEgfTogSHN2YUNvbG9yKTogUmdiYUNvbG9yID0+IHtcbiAgbGV0IF9oID0gaCAvIDYwLFxuICAgIF9zID0gcyAvIFNWX01BWCxcbiAgICBfdiA9IHYgLyBTVl9NQVgsXG4gICAgaGkgPSBNYXRoLmZsb29yKF9oKSAlIDY7XG5cbiAgbGV0IGYgPSBfaCAtIE1hdGguZmxvb3IoX2gpLFxuICAgIF9wID0gUkdCX01BWCAqIF92ICogKDEgLSBfcyksXG4gICAgX3EgPSBSR0JfTUFYICogX3YgKiAoMSAtIF9zICogZiksXG4gICAgX3QgPSBSR0JfTUFYICogX3YgKiAoMSAtIF9zICogKDEgLSBmKSk7XG4gIF92ICo9IFJHQl9NQVg7XG4gIGNvbnN0IHJnYmEgPSB7fSBhcyBSZ2JhQ29sb3I7XG4gIHN3aXRjaCAoaGkpIHtcbiAgICBjYXNlIDA6XG4gICAgICByZ2JhLnIgPSBfdjtcbiAgICAgIHJnYmEuZyA9IF90O1xuICAgICAgcmdiYS5iID0gX3A7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDE6XG4gICAgICByZ2JhLnIgPSBfcTtcbiAgICAgIHJnYmEuZyA9IF92O1xuICAgICAgcmdiYS5iID0gX3A7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDI6XG4gICAgICByZ2JhLnIgPSBfcDtcbiAgICAgIHJnYmEuZyA9IF92O1xuICAgICAgcmdiYS5iID0gX3Q7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDM6XG4gICAgICByZ2JhLnIgPSBfcDtcbiAgICAgIHJnYmEuZyA9IF9xO1xuICAgICAgcmdiYS5iID0gX3Y7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDQ6XG4gICAgICByZ2JhLnIgPSBfdDtcbiAgICAgIHJnYmEuZyA9IF9wO1xuICAgICAgcmdiYS5iID0gX3Y7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDU6XG4gICAgICByZ2JhLnIgPSBfdjtcbiAgICAgIHJnYmEuZyA9IF9wO1xuICAgICAgcmdiYS5iID0gX3E7XG4gICAgICBicmVhaztcbiAgfVxuICByZ2JhLnIgPSBNYXRoLnJvdW5kKHJnYmEucik7XG4gIHJnYmEuZyA9IE1hdGgucm91bmQocmdiYS5nKTtcbiAgcmdiYS5iID0gTWF0aC5yb3VuZChyZ2JhLmIpO1xuICByZXR1cm4geyAuLi5yZ2JhLCBhIH07XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvUmdiU3RyaW5nID0gKGhzdmE6IEhzdmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHsgciwgZywgYiB9ID0gaHN2YVRvUmdiYShoc3ZhKTtcbiAgcmV0dXJuIGByZ2IoJHtyfSwgJHtnfSwgJHtifSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb1JnYmFTdHJpbmcgPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyByLCBnLCBiLCBhIH0gPSBoc3ZhVG9SZ2JhKGhzdmEpO1xuICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgJHthfSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IHJnYmFUb1JnYiA9ICh7IHIsIGcsIGIgfTogUmdiYUNvbG9yKTogUmdiQ29sb3IgPT4gKHsgciwgZywgYiB9KTtcbmV4cG9ydCBjb25zdCBoc2xhVG9Ic2wgPSAoeyBoLCBzLCBsIH06IEhzbGFDb2xvcik6IEhzbENvbG9yID0+ICh7IGgsIHMsIGwgfSk7XG5leHBvcnQgY29uc3QgaHN2YVRvSGV4ID0gKGhzdmE6IEhzdmFDb2xvcik6IHN0cmluZyA9PiByZ2JhVG9IZXgoaHN2YVRvUmdiYShoc3ZhKSk7XG5leHBvcnQgY29uc3QgaHN2YVRvSGV4YSA9IChoc3ZhOiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4gcmdiYVRvSGV4YShoc3ZhVG9SZ2JhKGhzdmEpKTtcbmV4cG9ydCBjb25zdCBoc3ZhVG9Ic3YgPSAoeyBoLCBzLCB2IH06IEhzdmFDb2xvcik6IEhzdkNvbG9yID0+ICh7IGgsIHMsIHYgfSk7XG5cbmV4cG9ydCBjb25zdCBjb2xvciA9IChzdHI6IHN0cmluZyB8IEhzdmFDb2xvcik6IENvbG9yUmVzdWx0ID0+IHtcbiAgbGV0IHJnYiE6IFJnYkNvbG9yO1xuICBsZXQgaHNsITogSHNsQ29sb3I7XG4gIGxldCBoc3YhOiBIc3ZDb2xvcjtcbiAgbGV0IHJnYmEhOiBSZ2JhQ29sb3I7XG4gIGxldCBoc2xhITogSHNsYUNvbG9yO1xuICBsZXQgaHN2YSE6IEhzdmFDb2xvcjtcbiAgbGV0IGhleCE6IHN0cmluZztcbiAgbGV0IGhleGEhOiBzdHJpbmc7XG4gIGlmICh0eXBlb2Ygc3RyID09PSAnc3RyaW5nJyAmJiB2YWxpZEhleChzdHIpKSB7XG4gICAgaHN2YSA9IGhleFRvSHN2YShzdHIpO1xuICAgIGhleCA9IHN0cjtcbiAgfSBlbHNlIGlmICh0eXBlb2Ygc3RyICE9PSAnc3RyaW5nJykge1xuICAgIGhzdmEgPSBzdHI7XG4gIH1cbiAgaWYgKGhzdmEpIHtcbiAgICBoc3YgPSBoc3ZhVG9Ic3YoaHN2YSk7XG4gICAgaHNsYSA9IGhzdmFUb0hzbGEoaHN2YSk7XG4gICAgcmdiYSA9IGhzdmFUb1JnYmEoaHN2YSk7XG4gICAgaGV4YSA9IHJnYmFUb0hleGEocmdiYSk7XG4gICAgaGV4ID0gaHN2YVRvSGV4KGhzdmEpO1xuICAgIGhzbCA9IGhzbGFUb0hzbChoc2xhKTtcbiAgICByZ2IgPSByZ2JhVG9SZ2IocmdiYSk7XG4gIH1cbiAgcmV0dXJuIHsgcmdiLCBoc2wsIGhzdiwgcmdiYSwgaHNsYSwgaHN2YSwgaGV4LCBoZXhhIH07XG59O1xuIl19

@@ -40,2 +40,3 @@ export * from './utils';

export declare const hsvaToHslaString: (hsva: HsvaColor) => string;
export declare const hslStringToHsla: (str: string) => HslaColor;
export declare const hslaStringToHsva: (hslString: string) => HsvaColor;

@@ -42,0 +43,0 @@ export declare const hslStringToHsva: (hslString: string) => HsvaColor;

@@ -62,2 +62,17 @@ import _objectSpread from "@babel/runtime/helpers/objectSpread2";

};
export var hslStringToHsla = function hslStringToHsla(str) {
var _map = (str.match(/\d+/g) || []).map(Number),
_map2 = _slicedToArray(_map, 4),
h = _map2[0],
s = _map2[1],
l = _map2[2],
a = _map2[3];
return {
h: h,
s: s,
l: l,
a: a
};
};
export var hslaStringToHsva = function hslaStringToHsva(hslString) {

@@ -190,11 +205,11 @@ var matcher = /hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i;

var _map = hex.match(reg).map(function (v) {
var _map3 = hex.match(reg).map(function (v) {
return parseInt(v, 16);
}),
_map2 = _slicedToArray(_map, 4),
r = _map2[0],
g = _map2[1],
_map2$ = _map2[2],
b = _map2$ === void 0 ? 0 : _map2$,
a = _map2[3];
_map4 = _slicedToArray(_map3, 4),
r = _map4[0],
g = _map4[1],
_map4$ = _map4[2],
b = _map4$ === void 0 ? 0 : _map4$,
a = _map4[3];

@@ -368,2 +383,2 @@ return {

};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJ2YWxpZEhleCIsIlJHQl9NQVgiLCJIVUVfTUFYIiwiU1ZfTUFYIiwicmdiYVRvSHN2YSIsInIiLCJnIiwiYiIsImEiLCJtYXgiLCJNYXRoIiwiZGVsdGEiLCJtaW4iLCJoaCIsImgiLCJzIiwidiIsImhzdmFUb0hzbFN0cmluZyIsImhzdmEiLCJoc3ZhVG9Ic2xhIiwibCIsInJvdW5kIiwiaHN2YVRvSHN2U3RyaW5nIiwiaHN2YVRvSHN2YVN0cmluZyIsImhzdmFUb0hzbGFTdHJpbmciLCJoc2xhU3RyaW5nVG9Ic3ZhIiwiaHNsU3RyaW5nIiwibWF0Y2hlciIsIm1hdGNoIiwiZXhlYyIsImhzbGFUb0hzdmEiLCJwYXJzZUh1ZSIsIk51bWJlciIsInVuZGVmaW5lZCIsImhzbFN0cmluZ1RvSHN2YSIsImhzdmFTdHJpbmdUb0hzdmEiLCJoc3ZTdHJpbmciLCJhbmdsZVVuaXRzIiwiZ3JhZCIsInR1cm4iLCJyYWQiLCJQSSIsInZhbHVlIiwidW5pdCIsImhzdlN0cmluZ1RvSHN2YSIsInJnYmFTdHJpbmdUb0hzdmEiLCJyZ2JhU3RyaW5nIiwicmdiU3RyaW5nVG9Ic3ZhIiwicmdiYVRvSGV4IiwiYmluIiwiQXJyYXkiLCJsZW5ndGgiLCJqb2luIiwidG9TdHJpbmciLCJyZ2JhVG9IZXhhIiwiYWxwaGEiLCJzbGljZSIsImhleFRvSHN2YSIsImhleCIsImhleFRvUmdiYSIsImh0ZW1wIiwicmVwbGFjZSIsInRlc3QiLCJjaGFyQXQiLCJyZWciLCJSZWdFeHAiLCJtYXAiLCJwYXJzZUludCIsImhzdmFUb1JnYmEiLCJfaCIsIl9zIiwiX3YiLCJoaSIsImZsb29yIiwiZiIsIl9wIiwiX3EiLCJfdCIsInJnYmEiLCJoc3ZhVG9SZ2JTdHJpbmciLCJoc3ZhVG9SZ2JhU3RyaW5nIiwicmdiYVRvUmdiIiwiaHNsYVRvSHNsIiwiaHN2YVRvSGV4IiwiaHN2YVRvSGV4YSIsImhzdmFUb0hzdiIsImNvbG9yIiwic3Ry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QUFDQXBCLElBQUFBLEdBQUcsR0FBR3lCLFNBQVMsQ0FBQ2pFLElBQUQsQ0FBZjtBQUNBdUUsSUFBQUEsR0FBRyxHQUFHUCxTQUFTLENBQUNTLElBQUQsQ0FBZjtBQUNBSCxJQUFBQSxHQUFHLEdBQUdQLFNBQVMsQ0FBQ0gsSUFBRCxDQUFmO0FBQ0Q7O0FBQ0QsU0FBTztBQUFFVSxJQUFBQSxHQUFHLEVBQUhBLEdBQUY7QUFBT0MsSUFBQUEsR0FBRyxFQUFIQSxHQUFQO0FBQVlDLElBQUFBLEdBQUcsRUFBSEEsR0FBWjtBQUFpQlosSUFBQUEsSUFBSSxFQUFKQSxJQUFqQjtBQUF1QmEsSUFBQUEsSUFBSSxFQUFKQSxJQUF2QjtBQUE2QnpFLElBQUFBLElBQUksRUFBSkEsSUFBN0I7QUFBbUN3QyxJQUFBQSxHQUFHLEVBQUhBLEdBQW5DO0FBQXdDa0MsSUFBQUEsSUFBSSxFQUFKQTtBQUF4QyxHQUFQO0FBQ0QsQ0F6Qk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2YWxpZEhleCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0Q29udHJhc3RpbmdDb2xvcic7XG5cbmNvbnN0IFJHQl9NQVggPSAyNTU7XG5jb25zdCBIVUVfTUFYID0gMzYwO1xuY29uc3QgU1ZfTUFYID0gMTAwO1xuXG5leHBvcnQgdHlwZSBPYmplY3RDb2xvciA9IFJnYkNvbG9yIHwgSHNsQ29sb3IgfCBIc3ZDb2xvciB8IFJnYmFDb2xvciB8IEhzbGFDb2xvciB8IEhzdmFDb2xvcjtcbmV4cG9ydCB0eXBlIENvbG9yUmVzdWx0ID0ge1xuICByZ2I6IFJnYkNvbG9yO1xuICBoc2w6IEhzbENvbG9yO1xuICBoc3Y6IEhzdkNvbG9yO1xuICByZ2JhOiBSZ2JhQ29sb3I7XG4gIGhzbGE6IEhzbGFDb2xvcjtcbiAgaHN2YTogSHN2YUNvbG9yO1xuICBoZXg6IHN0cmluZztcbiAgaGV4YTogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBIc3ZDb2xvciB7XG4gIGg6IG51bWJlcjtcbiAgczogbnVtYmVyO1xuICB2OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHN2YUNvbG9yIGV4dGVuZHMgSHN2Q29sb3Ige1xuICBhOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmdiQ29sb3Ige1xuICByOiBudW1iZXI7XG4gIGc6IG51bWJlcjtcbiAgYjogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBSZ2JhQ29sb3IgZXh0ZW5kcyBSZ2JDb2xvciB7XG4gIGE6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBgYGBqc1xuICogcmdiYVRvSHN2YSh7IHI6IDI1NSwgZzogMjU1LCBiOiAyNTUsIGE6IDEgfSkgLy89PiB7IGg6IDAsIHM6IDAsIHY6IDEwMCwgYTogMSB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHJnYmFUb0hzdmEgPSAoeyByLCBnLCBiLCBhIH06IFJnYmFDb2xvcik6IEhzdmFDb2xvciA9PiB7XG4gIGNvbnN0IG1heCA9IE1hdGgubWF4KHIsIGcsIGIpO1xuICBjb25zdCBkZWx0YSA9IG1heCAtIE1hdGgubWluKHIsIGcsIGIpO1xuXG4gIC8vIHByZXR0aWVyLWlnbm9yZVxuICBjb25zdCBoaCA9IGRlbHRhXG4gICAgPyBtYXggPT09IHJcbiAgICAgID8gKGcgLSBiKSAvIGRlbHRhXG4gICAgICA6IG1heCA9PT0gZ1xuICAgICAgICA/IDIgKyAoYiAtIHIpIC8gZGVsdGFcbiAgICAgICAgOiA0ICsgKHIgLSBnKSAvIGRlbHRhXG4gICAgOiAwO1xuXG4gIHJldHVybiB7XG4gICAgaDogNjAgKiAoaGggPCAwID8gaGggKyA2IDogaGgpLFxuICAgIHM6IG1heCA/IChkZWx0YSAvIG1heCkgKiBTVl9NQVggOiAwLFxuICAgIHY6IChtYXggLyBSR0JfTUFYKSAqIFNWX01BWCxcbiAgICBhLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzbFN0cmluZyA9IChoc3ZhOiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IGgsIHMsIGwgfSA9IGhzdmFUb0hzbGEoaHN2YSk7XG4gIC8vIHJldHVybiBgaHNsKCR7aH0sICR7c30lLCAke2x9JSlgO1xuICByZXR1cm4gYGhzbCgke2h9LCAke01hdGgucm91bmQocyl9JSwgJHtNYXRoLnJvdW5kKGwpfSUpYDtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9Ic3ZTdHJpbmcgPSAoeyBoLCBzLCB2IH06IEhzdmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIHJldHVybiBgaHN2KCR7aH0sICR7c30lLCAke3Z9JSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzdmFTdHJpbmcgPSAoeyBoLCBzLCB2LCBhIH06IEhzdmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIHJldHVybiBgaHN2YSgke2h9LCAke3N9JSwgJHt2fSUsICR7YX0pYDtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9Ic2xhU3RyaW5nID0gKGhzdmE6IEhzdmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHsgaCwgcywgbCwgYSB9ID0gaHN2YVRvSHNsYShoc3ZhKTtcbiAgcmV0dXJuIGBoc2xhKCR7aH0sICR7c30lLCAke2x9JSwgJHthfSlgO1xufTtcblxuZXhwb3J0IGNvbnN0IGhzbGFTdHJpbmdUb0hzdmEgPSAoaHNsU3RyaW5nOiBzdHJpbmcpOiBIc3ZhQ29sb3IgPT4ge1xuICBjb25zdCBtYXRjaGVyID1cbiAgICAvaHNsYT9cXCg/XFxzKigtP1xcZCpcXC4/XFxkKykoZGVnfHJhZHxncmFkfHR1cm4pP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspJT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSU/LD9cXHMqWy9cXHNdKigtP1xcZCpcXC4/XFxkKyk/KCUpP1xccypcXCk/L2k7XG4gIGNvbnN0IG1hdGNoID0gbWF0Y2hlci5leGVjKGhzbFN0cmluZyk7XG5cbiAgaWYgKCFtYXRjaCkgcmV0dXJuIHsgaDogMCwgczogMCwgdjogMCwgYTogMSB9O1xuXG4gIHJldHVybiBoc2xhVG9Ic3ZhKHtcbiAgICBoOiBwYXJzZUh1ZShtYXRjaFsxXSwgbWF0Y2hbMl0pLFxuICAgIHM6IE51bWJlcihtYXRjaFszXSksXG4gICAgbDogTnVtYmVyKG1hdGNoWzRdKSxcbiAgICBhOiBtYXRjaFs1XSA9PT0gdW5kZWZpbmVkID8gMSA6IE51bWJlcihtYXRjaFs1XSkgLyAobWF0Y2hbNl0gPyAxMDAgOiAxKSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgaHNsU3RyaW5nVG9Ic3ZhID0gaHNsYVN0cmluZ1RvSHN2YTtcblxuZXhwb3J0IGNvbnN0IGhzbGFUb0hzdmEgPSAoeyBoLCBzLCBsLCBhIH06IEhzbGFDb2xvcik6IEhzdmFDb2xvciA9PiB7XG4gIHMgKj0gKGwgPCA1MCA/IGwgOiBTVl9NQVggLSBsKSAvIFNWX01BWDtcblxuICByZXR1cm4ge1xuICAgIGg6IGgsXG4gICAgczogcyA+IDAgPyAoKDIgKiBzKSAvIChsICsgcykpICogU1ZfTUFYIDogMCxcbiAgICB2OiBsICsgcyxcbiAgICBhLFxuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBIc2xDb2xvciB7XG4gIGg6IG51bWJlcjtcbiAgczogbnVtYmVyO1xuICBsOiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIEhzbGFDb2xvciBleHRlbmRzIEhzbENvbG9yIHtcbiAgYTogbnVtYmVyO1xufVxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzbGEgPSAoeyBoLCBzLCB2LCBhIH06IEhzdmFDb2xvcik6IEhzbGFDb2xvciA9PiB7XG4gIGNvbnN0IGhoID0gKCgyMDAgLSBzKSAqIHYpIC8gU1ZfTUFYO1xuXG4gIHJldHVybiB7XG4gICAgaCxcbiAgICBzOiBoaCA+IDAgJiYgaGggPCAyMDAgPyAoKHMgKiB2KSAvIFNWX01BWCAvIChoaCA8PSBTVl9NQVggPyBoaCA6IDIwMCAtIGhoKSkgKiBTVl9NQVggOiAwLFxuICAgIGw6IGhoIC8gMixcbiAgICBhLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFTdHJpbmdUb0hzdmEgPSAoaHN2U3RyaW5nOiBzdHJpbmcpOiBIc3ZhQ29sb3IgPT4ge1xuICBjb25zdCBtYXRjaGVyID1cbiAgICAvaHN2YT9cXCg/XFxzKigtP1xcZCpcXC4/XFxkKykoZGVnfHJhZHxncmFkfHR1cm4pP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspJT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSU/LD9cXHMqWy9cXHNdKigtP1xcZCpcXC4/XFxkKyk/KCUpP1xccypcXCk/L2k7XG4gIGNvbnN0IG1hdGNoID0gbWF0Y2hlci5leGVjKGhzdlN0cmluZyk7XG5cbiAgaWYgKCFtYXRjaCkgcmV0dXJuIHsgaDogMCwgczogMCwgdjogMCwgYTogMSB9O1xuXG4gIHJldHVybiB7XG4gICAgaDogcGFyc2VIdWUobWF0Y2hbMV0sIG1hdGNoWzJdKSxcbiAgICBzOiBOdW1iZXIobWF0Y2hbM10pLFxuICAgIHY6IE51bWJlcihtYXRjaFs0XSksXG4gICAgYTogbWF0Y2hbNV0gPT09IHVuZGVmaW5lZCA/IDEgOiBOdW1iZXIobWF0Y2hbNV0pIC8gKG1hdGNoWzZdID8gU1ZfTUFYIDogMSksXG4gIH07XG59O1xuXG4vKipcbiAqIFZhbGlkIENTUyA8YW5nbGU+IHVuaXRzLlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2FuZ2xlXG4gKi9cbmNvbnN0IGFuZ2xlVW5pdHM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7XG4gIGdyYWQ6IEhVRV9NQVggLyA0MDAsXG4gIHR1cm46IEhVRV9NQVgsXG4gIHJhZDogSFVFX01BWCAvIChNYXRoLlBJICogMiksXG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VIdWUgPSAodmFsdWU6IHN0cmluZywgdW5pdCA9ICdkZWcnKTogbnVtYmVyID0+IHtcbiAgcmV0dXJuIE51bWJlcih2YWx1ZSkgKiAoYW5nbGVVbml0c1t1bml0XSB8fCAxKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZTdHJpbmdUb0hzdmEgPSBoc3ZhU3RyaW5nVG9Ic3ZhO1xuZXhwb3J0IGNvbnN0IHJnYmFTdHJpbmdUb0hzdmEgPSAocmdiYVN0cmluZzogc3RyaW5nKTogSHN2YUNvbG9yID0+IHtcbiAgY29uc3QgbWF0Y2hlciA9XG4gICAgL3JnYmE/XFwoP1xccyooLT9cXGQqXFwuP1xcZCspKCUpP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspKCUpP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspKCUpPyw/XFxzKlsvXFxzXSooLT9cXGQqXFwuP1xcZCspPyglKT9cXHMqXFwpPy9pO1xuICBjb25zdCBtYXRjaCA9IG1hdGNoZXIuZXhlYyhyZ2JhU3RyaW5nKTtcblxuICBpZiAoIW1hdGNoKSByZXR1cm4geyBoOiAwLCBzOiAwLCB2OiAwLCBhOiAxIH07XG5cbiAgcmV0dXJuIHJnYmFUb0hzdmEoe1xuICAgIHI6IE51bWJlcihtYXRjaFsxXSkgLyAobWF0Y2hbMl0gPyBTVl9NQVggLyBSR0JfTUFYIDogMSksXG4gICAgZzogTnVtYmVyKG1hdGNoWzNdKSAvIChtYXRjaFs0XSA/IFNWX01BWCAvIFJHQl9NQVggOiAxKSxcbiAgICBiOiBOdW1iZXIobWF0Y2hbNV0pIC8gKG1hdGNoWzZdID8gU1ZfTUFYIC8gUkdCX01BWCA6IDEpLFxuICAgIGE6IG1hdGNoWzddID09PSB1bmRlZmluZWQgPyAxIDogTnVtYmVyKG1hdGNoWzddKSAvIChtYXRjaFs4XSA/IFNWX01BWCA6IDEpLFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCByZ2JTdHJpbmdUb0hzdmEgPSByZ2JhU3RyaW5nVG9Ic3ZhO1xuXG4vKiogQ29udmVydHMgYW4gUkdCQSBjb2xvciBwbHVzIGFscGhhIHRyYW5zcGFyZW5jeSB0byBoZXggKi9cbmV4cG9ydCBjb25zdCByZ2JhVG9IZXggPSAoeyByLCBnLCBiIH06IFJnYmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGxldCBiaW4gPSAociA8PCAxNikgfCAoZyA8PCA4KSB8IGI7XG4gIHJldHVybiBgIyR7KChoKSA9PiBuZXcgQXJyYXkoNyAtIGgubGVuZ3RoKS5qb2luKCcwJykgKyBoKShiaW4udG9TdHJpbmcoMTYpKX1gO1xufTtcblxuZXhwb3J0IGNvbnN0IHJnYmFUb0hleGEgPSAoeyByLCBnLCBiLCBhIH06IFJnYmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGFscGhhID0gdHlwZW9mIGEgPT09ICdudW1iZXInICYmICgoYSAqIDI1NSkgfCAoMSA8PCA4KSkudG9TdHJpbmcoMTYpLnNsaWNlKDEpO1xuICByZXR1cm4gYCR7cmdiYVRvSGV4KHsgciwgZywgYiwgYSB9KX0ke2FscGhhID8gYWxwaGEgOiAnJ31gO1xufTtcblxuZXhwb3J0IGNvbnN0IGhleFRvSHN2YSA9IChoZXg6IHN0cmluZyk6IEhzdmFDb2xvciA9PiByZ2JhVG9Ic3ZhKGhleFRvUmdiYShoZXgpKTtcbmV4cG9ydCBjb25zdCBoZXhUb1JnYmEgPSAoaGV4OiBzdHJpbmcpOiBSZ2JhQ29sb3IgPT4ge1xuICBjb25zdCBodGVtcCA9IGhleC5yZXBsYWNlKCcjJywgJycpO1xuICBpZiAoL14jPy8udGVzdChoZXgpICYmIGh0ZW1wLmxlbmd0aCA9PT0gMykge1xuICAgIGhleCA9IGAjJHtodGVtcC5jaGFyQXQoMCl9JHtodGVtcC5jaGFyQXQoMCl9JHtodGVtcC5jaGFyQXQoMSl9JHtodGVtcC5jaGFyQXQoMSl9JHtodGVtcC5jaGFyQXQoMil9JHtodGVtcC5jaGFyQXQoMil9YDtcbiAgfVxuICBjb25zdCByZWcgPSBuZXcgUmVnRXhwKGBbQS1aYS16MC05XXsyfWAsICdnJyk7XG4gIGNvbnN0IFtyLCBnLCBiID0gMCwgYV0gPSBoZXgubWF0Y2gocmVnKSEubWFwKCh2KSA9PiBwYXJzZUludCh2LCAxNikpO1xuICByZXR1cm4ge1xuICAgIHIsXG4gICAgZyxcbiAgICBiLFxuICAgIGE6IGEgPyBhIC8gUkdCX01BWCA6IDEsXG4gIH07XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIEhTVkEgdG8gUkdCQS4gQmFzZWQgb24gZm9ybXVsYSBmcm9tIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0hTTF9hbmRfSFNWXG4gKiBAcGFyYW0gY29sb3IgSFNWQSBjb2xvciBhcyBhbiBhcnJheSBbMC0zNjAsIDAtMSwgMC0xLCAwLTFdXG4gKi9cbmV4cG9ydCBjb25zdCBoc3ZhVG9SZ2JhID0gKHsgaCwgcywgdiwgYSB9OiBIc3ZhQ29sb3IpOiBSZ2JhQ29sb3IgPT4ge1xuICBsZXQgX2ggPSBoIC8gNjAsXG4gICAgX3MgPSBzIC8gU1ZfTUFYLFxuICAgIF92ID0gdiAvIFNWX01BWCxcbiAgICBoaSA9IE1hdGguZmxvb3IoX2gpICUgNjtcblxuICBsZXQgZiA9IF9oIC0gTWF0aC5mbG9vcihfaCksXG4gICAgX3AgPSBSR0JfTUFYICogX3YgKiAoMSAtIF9zKSxcbiAgICBfcSA9IFJHQl9NQVggKiBfdiAqICgxIC0gX3MgKiBmKSxcbiAgICBfdCA9IFJHQl9NQVggKiBfdiAqICgxIC0gX3MgKiAoMSAtIGYpKTtcbiAgX3YgKj0gUkdCX01BWDtcbiAgY29uc3QgcmdiYSA9IHt9IGFzIFJnYmFDb2xvcjtcbiAgc3dpdGNoIChoaSkge1xuICAgIGNhc2UgMDpcbiAgICAgIHJnYmEuciA9IF92O1xuICAgICAgcmdiYS5nID0gX3Q7XG4gICAgICByZ2JhLmIgPSBfcDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMTpcbiAgICAgIHJnYmEuciA9IF9xO1xuICAgICAgcmdiYS5nID0gX3Y7XG4gICAgICByZ2JhLmIgPSBfcDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHJnYmEuciA9IF9wO1xuICAgICAgcmdiYS5nID0gX3Y7XG4gICAgICByZ2JhLmIgPSBfdDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMzpcbiAgICAgIHJnYmEuciA9IF9wO1xuICAgICAgcmdiYS5nID0gX3E7XG4gICAgICByZ2JhLmIgPSBfdjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgNDpcbiAgICAgIHJnYmEuciA9IF90O1xuICAgICAgcmdiYS5nID0gX3A7XG4gICAgICByZ2JhLmIgPSBfdjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgNTpcbiAgICAgIHJnYmEuciA9IF92O1xuICAgICAgcmdiYS5nID0gX3A7XG4gICAgICByZ2JhLmIgPSBfcTtcbiAgICAgIGJyZWFrO1xuICB9XG4gIHJnYmEuciA9IE1hdGgucm91bmQocmdiYS5yKTtcbiAgcmdiYS5nID0gTWF0aC5yb3VuZChyZ2JhLmcpO1xuICByZ2JhLmIgPSBNYXRoLnJvdW5kKHJnYmEuYik7XG4gIHJldHVybiB7IC4uLnJnYmEsIGEgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9SZ2JTdHJpbmcgPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyByLCBnLCBiIH0gPSBoc3ZhVG9SZ2JhKGhzdmEpO1xuICByZXR1cm4gYHJnYigke3J9LCAke2d9LCAke2J9KWA7XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvUmdiYVN0cmluZyA9IChoc3ZhOiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IHIsIGcsIGIsIGEgfSA9IGhzdmFUb1JnYmEoaHN2YSk7XG4gIHJldHVybiBgcmdiYSgke3J9LCAke2d9LCAke2J9LCAke2F9KWA7XG59O1xuXG5leHBvcnQgY29uc3QgcmdiYVRvUmdiID0gKHsgciwgZywgYiB9OiBSZ2JhQ29sb3IpOiBSZ2JDb2xvciA9PiAoeyByLCBnLCBiIH0pO1xuZXhwb3J0IGNvbnN0IGhzbGFUb0hzbCA9ICh7IGgsIHMsIGwgfTogSHNsYUNvbG9yKTogSHNsQ29sb3IgPT4gKHsgaCwgcywgbCB9KTtcbmV4cG9ydCBjb25zdCBoc3ZhVG9IZXggPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHJnYmFUb0hleChoc3ZhVG9SZ2JhKGhzdmEpKTtcbmV4cG9ydCBjb25zdCBoc3ZhVG9IZXhhID0gKGhzdmE6IEhzdmFDb2xvcik6IHN0cmluZyA9PiByZ2JhVG9IZXhhKGhzdmFUb1JnYmEoaHN2YSkpO1xuZXhwb3J0IGNvbnN0IGhzdmFUb0hzdiA9ICh7IGgsIHMsIHYgfTogSHN2YUNvbG9yKTogSHN2Q29sb3IgPT4gKHsgaCwgcywgdiB9KTtcblxuZXhwb3J0IGNvbnN0IGNvbG9yID0gKHN0cjogc3RyaW5nIHwgSHN2YUNvbG9yKTogQ29sb3JSZXN1bHQgPT4ge1xuICBsZXQgcmdiITogUmdiQ29sb3I7XG4gIGxldCBoc2whOiBIc2xDb2xvcjtcbiAgbGV0IGhzdiE6IEhzdkNvbG9yO1xuICBsZXQgcmdiYSE6IFJnYmFDb2xvcjtcbiAgbGV0IGhzbGEhOiBIc2xhQ29sb3I7XG4gIGxldCBoc3ZhITogSHN2YUNvbG9yO1xuICBsZXQgaGV4ITogc3RyaW5nO1xuICBsZXQgaGV4YSE6IHN0cmluZztcbiAgaWYgKHR5cGVvZiBzdHIgPT09ICdzdHJpbmcnICYmIHZhbGlkSGV4KHN0cikpIHtcbiAgICBoc3ZhID0gaGV4VG9Ic3ZhKHN0cik7XG4gICAgaGV4ID0gc3RyO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKSB7XG4gICAgaHN2YSA9IHN0cjtcbiAgfVxuICBpZiAoaHN2YSkge1xuICAgIGhzdiA9IGhzdmFUb0hzdihoc3ZhKTtcbiAgICBoc2xhID0gaHN2YVRvSHNsYShoc3ZhKTtcbiAgICByZ2JhID0gaHN2YVRvUmdiYShoc3ZhKTtcbiAgICBoZXhhID0gcmdiYVRvSGV4YShyZ2JhKTtcbiAgICBoZXggPSBoc3ZhVG9IZXgoaHN2YSk7XG4gICAgaHNsID0gaHNsYVRvSHNsKGhzbGEpO1xuICAgIHJnYiA9IHJnYmFUb1JnYihyZ2JhKTtcbiAgfVxuICByZXR1cm4geyByZ2IsIGhzbCwgaHN2LCByZ2JhLCBoc2xhLCBoc3ZhLCBoZXgsIGhleGEgfTtcbn07XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJ2YWxpZEhleCIsIlJHQl9NQVgiLCJIVUVfTUFYIiwiU1ZfTUFYIiwicmdiYVRvSHN2YSIsInIiLCJnIiwiYiIsImEiLCJtYXgiLCJNYXRoIiwiZGVsdGEiLCJtaW4iLCJoaCIsImgiLCJzIiwidiIsImhzdmFUb0hzbFN0cmluZyIsImhzdmEiLCJoc3ZhVG9Ic2xhIiwibCIsInJvdW5kIiwiaHN2YVRvSHN2U3RyaW5nIiwiaHN2YVRvSHN2YVN0cmluZyIsImhzdmFUb0hzbGFTdHJpbmciLCJoc2xTdHJpbmdUb0hzbGEiLCJzdHIiLCJtYXRjaCIsIm1hcCIsIk51bWJlciIsImhzbGFTdHJpbmdUb0hzdmEiLCJoc2xTdHJpbmciLCJtYXRjaGVyIiwiZXhlYyIsImhzbGFUb0hzdmEiLCJwYXJzZUh1ZSIsInVuZGVmaW5lZCIsImhzbFN0cmluZ1RvSHN2YSIsImhzdmFTdHJpbmdUb0hzdmEiLCJoc3ZTdHJpbmciLCJhbmdsZVVuaXRzIiwiZ3JhZCIsInR1cm4iLCJyYWQiLCJQSSIsInZhbHVlIiwidW5pdCIsImhzdlN0cmluZ1RvSHN2YSIsInJnYmFTdHJpbmdUb0hzdmEiLCJyZ2JhU3RyaW5nIiwicmdiU3RyaW5nVG9Ic3ZhIiwicmdiYVRvSGV4IiwiYmluIiwiQXJyYXkiLCJsZW5ndGgiLCJqb2luIiwidG9TdHJpbmciLCJyZ2JhVG9IZXhhIiwiYWxwaGEiLCJzbGljZSIsImhleFRvSHN2YSIsImhleCIsImhleFRvUmdiYSIsImh0ZW1wIiwicmVwbGFjZSIsInRlc3QiLCJjaGFyQXQiLCJyZWciLCJSZWdFeHAiLCJwYXJzZUludCIsImhzdmFUb1JnYmEiLCJfaCIsIl9zIiwiX3YiLCJoaSIsImZsb29yIiwiZiIsIl9wIiwiX3EiLCJfdCIsInJnYmEiLCJoc3ZhVG9SZ2JTdHJpbmciLCJoc3ZhVG9SZ2JhU3RyaW5nIiwicmdiYVRvUmdiIiwiaHNsYVRvSHNsIiwiaHN2YVRvSGV4IiwiaHN2YVRvSGV4YSIs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QUFDNUNSLElBQUFBLElBQUksR0FBRzBDLFNBQVMsQ0FBQ2xDLEdBQUQsQ0FBaEI7QUFDQW1DLElBQUFBLEdBQUcsR0FBR25DLEdBQU47QUFDRCxHQUhELE1BR08sSUFBSSxPQUFPQSxHQUFQLEtBQWUsUUFBbkIsRUFBNkI7QUFDbENSLElBQUFBLElBQUksR0FBR1EsR0FBUDtBQUNEOztBQUNELE1BQUlSLElBQUosRUFBVTtBQUNSeUUsSUFBQUEsR0FBRyxHQUFHSixTQUFTLENBQUNyRSxJQUFELENBQWY7QUFDQTBFLElBQUFBLElBQUksR0FBR3pFLFVBQVUsQ0FBQ0QsSUFBRCxDQUFqQjtBQUNBOEQsSUFBQUEsSUFBSSxHQUFHVixVQUFVLENBQUNwRCxJQUFELENBQWpCO0FBQ0EyRSxJQUFBQSxJQUFJLEdBQUdwQyxVQUFVLENBQUN1QixJQUFELENBQWpCO0FBQ0FuQixJQUFBQSxHQUFHLEdBQUd3QixTQUFTLENBQUNuRSxJQUFELENBQWY7QUFDQXdFLElBQUFBLEdBQUcsR0FBR04sU0FBUyxDQUFDUSxJQUFELENBQWY7QUFDQUgsSUFBQUEsR0FBRyxHQUFHTixTQUFTLENBQUNILElBQUQsQ0FBZjtBQUNEOztBQUNELFNBQU87QUFBRVMsSUFBQUEsR0FBRyxFQUFIQSxHQUFGO0FBQU9DLElBQUFBLEdBQUcsRUFBSEEsR0FBUDtBQUFZQyxJQUFBQSxHQUFHLEVBQUhBLEdBQVo7QUFBaUJYLElBQUFBLElBQUksRUFBSkEsSUFBakI7QUFBdUJZLElBQUFBLElBQUksRUFBSkEsSUFBdkI7QUFBNkIxRSxJQUFBQSxJQUFJLEVBQUpBLElBQTdCO0FBQW1DMkMsSUFBQUEsR0FBRyxFQUFIQSxHQUFuQztBQUF3Q2dDLElBQUFBLElBQUksRUFBSkE7QUFBeEMsR0FBUDtBQUNELENBekJNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdmFsaWRIZXggfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2dldENvbnRyYXN0aW5nQ29sb3InO1xuXG5jb25zdCBSR0JfTUFYID0gMjU1O1xuY29uc3QgSFVFX01BWCA9IDM2MDtcbmNvbnN0IFNWX01BWCA9IDEwMDtcblxuZXhwb3J0IHR5cGUgT2JqZWN0Q29sb3IgPSBSZ2JDb2xvciB8IEhzbENvbG9yIHwgSHN2Q29sb3IgfCBSZ2JhQ29sb3IgfCBIc2xhQ29sb3IgfCBIc3ZhQ29sb3I7XG5leHBvcnQgdHlwZSBDb2xvclJlc3VsdCA9IHtcbiAgcmdiOiBSZ2JDb2xvcjtcbiAgaHNsOiBIc2xDb2xvcjtcbiAgaHN2OiBIc3ZDb2xvcjtcbiAgcmdiYTogUmdiYUNvbG9yO1xuICBoc2xhOiBIc2xhQ29sb3I7XG4gIGhzdmE6IEhzdmFDb2xvcjtcbiAgaGV4OiBzdHJpbmc7XG4gIGhleGE6IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHN2Q29sb3Ige1xuICBoOiBudW1iZXI7XG4gIHM6IG51bWJlcjtcbiAgdjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhzdmFDb2xvciBleHRlbmRzIEhzdkNvbG9yIHtcbiAgYTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJnYkNvbG9yIHtcbiAgcjogbnVtYmVyO1xuICBnOiBudW1iZXI7XG4gIGI6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmdiYUNvbG9yIGV4dGVuZHMgUmdiQ29sb3Ige1xuICBhOiBudW1iZXI7XG59XG5cbi8qKlxuICogYGBganNcbiAqIHJnYmFUb0hzdmEoeyByOiAyNTUsIGc6IDI1NSwgYjogMjU1LCBhOiAxIH0pIC8vPT4geyBoOiAwLCBzOiAwLCB2OiAxMDAsIGE6IDEgfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCByZ2JhVG9Ic3ZhID0gKHsgciwgZywgYiwgYSB9OiBSZ2JhQ29sb3IpOiBIc3ZhQ29sb3IgPT4ge1xuICBjb25zdCBtYXggPSBNYXRoLm1heChyLCBnLCBiKTtcbiAgY29uc3QgZGVsdGEgPSBtYXggLSBNYXRoLm1pbihyLCBnLCBiKTtcblxuICAvLyBwcmV0dGllci1pZ25vcmVcbiAgY29uc3QgaGggPSBkZWx0YVxuICAgID8gbWF4ID09PSByXG4gICAgICA/IChnIC0gYikgLyBkZWx0YVxuICAgICAgOiBtYXggPT09IGdcbiAgICAgICAgPyAyICsgKGIgLSByKSAvIGRlbHRhXG4gICAgICAgIDogNCArIChyIC0gZykgLyBkZWx0YVxuICAgIDogMDtcblxuICByZXR1cm4ge1xuICAgIGg6IDYwICogKGhoIDwgMCA/IGhoICsgNiA6IGhoKSxcbiAgICBzOiBtYXggPyAoZGVsdGEgLyBtYXgpICogU1ZfTUFYIDogMCxcbiAgICB2OiAobWF4IC8gUkdCX01BWCkgKiBTVl9NQVgsXG4gICAgYSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9Ic2xTdHJpbmcgPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyBoLCBzLCBsIH0gPSBoc3ZhVG9Ic2xhKGhzdmEpO1xuICAvLyByZXR1cm4gYGhzbCgke2h9LCAke3N9JSwgJHtsfSUpYDtcbiAgcmV0dXJuIGBoc2woJHtofSwgJHtNYXRoLnJvdW5kKHMpfSUsICR7TWF0aC5yb3VuZChsKX0lKWA7XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvSHN2U3RyaW5nID0gKHsgaCwgcywgdiB9OiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gYGhzdigke2h9LCAke3N9JSwgJHt2fSUpYDtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9Ic3ZhU3RyaW5nID0gKHsgaCwgcywgdiwgYSB9OiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gYGhzdmEoJHtofSwgJHtzfSUsICR7dn0lLCAke2F9KWA7XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvSHNsYVN0cmluZyA9IChoc3ZhOiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IGgsIHMsIGwsIGEgfSA9IGhzdmFUb0hzbGEoaHN2YSk7XG4gIHJldHVybiBgaHNsYSgke2h9LCAke3N9JSwgJHtsfSUsICR7YX0pYDtcbn07XG5cbmV4cG9ydCBjb25zdCBoc2xTdHJpbmdUb0hzbGEgPSAoc3RyOiBzdHJpbmcpOiBIc2xhQ29sb3IgPT4ge1xuICBjb25zdCBbaCwgcywgbCwgYV0gPSAoc3RyLm1hdGNoKC9cXGQrL2cpIHx8IFtdKS5tYXAoTnVtYmVyKTtcbiAgcmV0dXJuIHsgaCwgcywgbCwgYSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGhzbGFTdHJpbmdUb0hzdmEgPSAoaHNsU3RyaW5nOiBzdHJpbmcpOiBIc3ZhQ29sb3IgPT4ge1xuICBjb25zdCBtYXRjaGVyID1cbiAgICAvaHNsYT9cXCg/XFxzKigtP1xcZCpcXC4/XFxkKykoZGVnfHJhZHxncmFkfHR1cm4pP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspJT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSU/LD9cXHMqWy9cXHNdKigtP1xcZCpcXC4/XFxkKyk/KCUpP1xccypcXCk/L2k7XG4gIGNvbnN0IG1hdGNoID0gbWF0Y2hlci5leGVjKGhzbFN0cmluZyk7XG5cbiAgaWYgKCFtYXRjaCkgcmV0dXJuIHsgaDogMCwgczogMCwgdjogMCwgYTogMSB9O1xuXG4gIHJldHVybiBoc2xhVG9Ic3ZhKHtcbiAgICBoOiBwYXJzZUh1ZShtYXRjaFsxXSwgbWF0Y2hbMl0pLFxuICAgIHM6IE51bWJlcihtYXRjaFszXSksXG4gICAgbDogTnVtYmVyKG1hdGNoWzRdKSxcbiAgICBhOiBtYXRjaFs1XSA9PT0gdW5kZWZpbmVkID8gMSA6IE51bWJlcihtYXRjaFs1XSkgLyAobWF0Y2hbNl0gPyAxMDAgOiAxKSxcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgaHNsU3RyaW5nVG9Ic3ZhID0gaHNsYVN0cmluZ1RvSHN2YTtcblxuZXhwb3J0IGNvbnN0IGhzbGFUb0hzdmEgPSAoeyBoLCBzLCBsLCBhIH06IEhzbGFDb2xvcik6IEhzdmFDb2xvciA9PiB7XG4gIHMgKj0gKGwgPCA1MCA/IGwgOiBTVl9NQVggLSBsKSAvIFNWX01BWDtcblxuICByZXR1cm4ge1xuICAgIGg6IGgsXG4gICAgczogcyA+IDAgPyAoKDIgKiBzKSAvIChsICsgcykpICogU1ZfTUFYIDogMCxcbiAgICB2OiBsICsgcyxcbiAgICBhLFxuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBIc2xDb2xvciB7XG4gIGg6IG51bWJlcjtcbiAgczogbnVtYmVyO1xuICBsOiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIEhzbGFDb2xvciBleHRlbmRzIEhzbENvbG9yIHtcbiAgYTogbnVtYmVyO1xufVxuZXhwb3J0IGNvbnN0IGhzdmFUb0hzbGEgPSAoeyBoLCBzLCB2LCBhIH06IEhzdmFDb2xvcik6IEhzbGFDb2xvciA9PiB7XG4gIGNvbnN0IGhoID0gKCgyMDAgLSBzKSAqIHYpIC8gU1ZfTUFYO1xuXG4gIHJldHVybiB7XG4gICAgaCxcbiAgICBzOiBoaCA+IDAgJiYgaGggPCAyMDAgPyAoKHMgKiB2KSAvIFNWX01BWCAvIChoaCA8PSBTVl9NQVggPyBoaCA6IDIwMCAtIGhoKSkgKiBTVl9NQVggOiAwLFxuICAgIGw6IGhoIC8gMixcbiAgICBhLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGhzdmFTdHJpbmdUb0hzdmEgPSAoaHN2U3RyaW5nOiBzdHJpbmcpOiBIc3ZhQ29sb3IgPT4ge1xuICBjb25zdCBtYXRjaGVyID1cbiAgICAvaHN2YT9cXCg/XFxzKigtP1xcZCpcXC4/XFxkKykoZGVnfHJhZHxncmFkfHR1cm4pP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspJT9bLFxcc10rKC0/XFxkKlxcLj9cXGQrKSU/LD9cXHMqWy9cXHNdKigtP1xcZCpcXC4/XFxkKyk/KCUpP1xccypcXCk/L2k7XG4gIGNvbnN0IG1hdGNoID0gbWF0Y2hlci5leGVjKGhzdlN0cmluZyk7XG5cbiAgaWYgKCFtYXRjaCkgcmV0dXJuIHsgaDogMCwgczogMCwgdjogMCwgYTogMSB9O1xuXG4gIHJldHVybiB7XG4gICAgaDogcGFyc2VIdWUobWF0Y2hbMV0sIG1hdGNoWzJdKSxcbiAgICBzOiBOdW1iZXIobWF0Y2hbM10pLFxuICAgIHY6IE51bWJlcihtYXRjaFs0XSksXG4gICAgYTogbWF0Y2hbNV0gPT09IHVuZGVmaW5lZCA/IDEgOiBOdW1iZXIobWF0Y2hbNV0pIC8gKG1hdGNoWzZdID8gU1ZfTUFYIDogMSksXG4gIH07XG59O1xuXG4vKipcbiAqIFZhbGlkIENTUyA8YW5nbGU+IHVuaXRzLlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2FuZ2xlXG4gKi9cbmNvbnN0IGFuZ2xlVW5pdHM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7XG4gIGdyYWQ6IEhVRV9NQVggLyA0MDAsXG4gIHR1cm46IEhVRV9NQVgsXG4gIHJhZDogSFVFX01BWCAvIChNYXRoLlBJICogMiksXG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VIdWUgPSAodmFsdWU6IHN0cmluZywgdW5pdCA9ICdkZWcnKTogbnVtYmVyID0+IHtcbiAgcmV0dXJuIE51bWJlcih2YWx1ZSkgKiAoYW5nbGVVbml0c1t1bml0XSB8fCAxKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZTdHJpbmdUb0hzdmEgPSBoc3ZhU3RyaW5nVG9Ic3ZhO1xuZXhwb3J0IGNvbnN0IHJnYmFTdHJpbmdUb0hzdmEgPSAocmdiYVN0cmluZzogc3RyaW5nKTogSHN2YUNvbG9yID0+IHtcbiAgY29uc3QgbWF0Y2hlciA9XG4gICAgL3JnYmE/XFwoP1xccyooLT9cXGQqXFwuP1xcZCspKCUpP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspKCUpP1ssXFxzXSsoLT9cXGQqXFwuP1xcZCspKCUpPyw/XFxzKlsvXFxzXSooLT9cXGQqXFwuP1xcZCspPyglKT9cXHMqXFwpPy9pO1xuICBjb25zdCBtYXRjaCA9IG1hdGNoZXIuZXhlYyhyZ2JhU3RyaW5nKTtcblxuICBpZiAoIW1hdGNoKSByZXR1cm4geyBoOiAwLCBzOiAwLCB2OiAwLCBhOiAxIH07XG5cbiAgcmV0dXJuIHJnYmFUb0hzdmEoe1xuICAgIHI6IE51bWJlcihtYXRjaFsxXSkgLyAobWF0Y2hbMl0gPyBTVl9NQVggLyBSR0JfTUFYIDogMSksXG4gICAgZzogTnVtYmVyKG1hdGNoWzNdKSAvIChtYXRjaFs0XSA/IFNWX01BWCAvIFJHQl9NQVggOiAxKSxcbiAgICBiOiBOdW1iZXIobWF0Y2hbNV0pIC8gKG1hdGNoWzZdID8gU1ZfTUFYIC8gUkdCX01BWCA6IDEpLFxuICAgIGE6IG1hdGNoWzddID09PSB1bmRlZmluZWQgPyAxIDogTnVtYmVyKG1hdGNoWzddKSAvIChtYXRjaFs4XSA/IFNWX01BWCA6IDEpLFxuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCByZ2JTdHJpbmdUb0hzdmEgPSByZ2JhU3RyaW5nVG9Ic3ZhO1xuXG4vKiogQ29udmVydHMgYW4gUkdCQSBjb2xvciBwbHVzIGFscGhhIHRyYW5zcGFyZW5jeSB0byBoZXggKi9cbmV4cG9ydCBjb25zdCByZ2JhVG9IZXggPSAoeyByLCBnLCBiIH06IFJnYmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGxldCBiaW4gPSAociA8PCAxNikgfCAoZyA8PCA4KSB8IGI7XG4gIHJldHVybiBgIyR7KChoKSA9PiBuZXcgQXJyYXkoNyAtIGgubGVuZ3RoKS5qb2luKCcwJykgKyBoKShiaW4udG9TdHJpbmcoMTYpKX1gO1xufTtcblxuZXhwb3J0IGNvbnN0IHJnYmFUb0hleGEgPSAoeyByLCBnLCBiLCBhIH06IFJnYmFDb2xvcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGFscGhhID0gdHlwZW9mIGEgPT09ICdudW1iZXInICYmICgoYSAqIDI1NSkgfCAoMSA8PCA4KSkudG9TdHJpbmcoMTYpLnNsaWNlKDEpO1xuICByZXR1cm4gYCR7cmdiYVRvSGV4KHsgciwgZywgYiwgYSB9KX0ke2FscGhhID8gYWxwaGEgOiAnJ31gO1xufTtcblxuZXhwb3J0IGNvbnN0IGhleFRvSHN2YSA9IChoZXg6IHN0cmluZyk6IEhzdmFDb2xvciA9PiByZ2JhVG9Ic3ZhKGhleFRvUmdiYShoZXgpKTtcbmV4cG9ydCBjb25zdCBoZXhUb1JnYmEgPSAoaGV4OiBzdHJpbmcpOiBSZ2JhQ29sb3IgPT4ge1xuICBjb25zdCBodGVtcCA9IGhleC5yZXBsYWNlKCcjJywgJycpO1xuICBpZiAoL14jPy8udGVzdChoZXgpICYmIGh0ZW1wLmxlbmd0aCA9PT0gMykge1xuICAgIGhleCA9IGAjJHtodGVtcC5jaGFyQXQoMCl9JHtodGVtcC5jaGFyQXQoMCl9JHtodGVtcC5jaGFyQXQoMSl9JHtodGVtcC5jaGFyQXQoMSl9JHtodGVtcC5jaGFyQXQoMil9JHtodGVtcC5jaGFyQXQoMil9YDtcbiAgfVxuICBjb25zdCByZWcgPSBuZXcgUmVnRXhwKGBbQS1aYS16MC05XXsyfWAsICdnJyk7XG4gIGNvbnN0IFtyLCBnLCBiID0gMCwgYV0gPSBoZXgubWF0Y2gocmVnKSEubWFwKCh2KSA9PiBwYXJzZUludCh2LCAxNikpO1xuICByZXR1cm4ge1xuICAgIHIsXG4gICAgZyxcbiAgICBiLFxuICAgIGE6IGEgPyBhIC8gUkdCX01BWCA6IDEsXG4gIH07XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIEhTVkEgdG8gUkdCQS4gQmFzZWQgb24gZm9ybXVsYSBmcm9tIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0hTTF9hbmRfSFNWXG4gKiBAcGFyYW0gY29sb3IgSFNWQSBjb2xvciBhcyBhbiBhcnJheSBbMC0zNjAsIDAtMSwgMC0xLCAwLTFdXG4gKi9cbmV4cG9ydCBjb25zdCBoc3ZhVG9SZ2JhID0gKHsgaCwgcywgdiwgYSB9OiBIc3ZhQ29sb3IpOiBSZ2JhQ29sb3IgPT4ge1xuICBsZXQgX2ggPSBoIC8gNjAsXG4gICAgX3MgPSBzIC8gU1ZfTUFYLFxuICAgIF92ID0gdiAvIFNWX01BWCxcbiAgICBoaSA9IE1hdGguZmxvb3IoX2gpICUgNjtcblxuICBsZXQgZiA9IF9oIC0gTWF0aC5mbG9vcihfaCksXG4gICAgX3AgPSBSR0JfTUFYICogX3YgKiAoMSAtIF9zKSxcbiAgICBfcSA9IFJHQl9NQVggKiBfdiAqICgxIC0gX3MgKiBmKSxcbiAgICBfdCA9IFJHQl9NQVggKiBfdiAqICgxIC0gX3MgKiAoMSAtIGYpKTtcbiAgX3YgKj0gUkdCX01BWDtcbiAgY29uc3QgcmdiYSA9IHt9IGFzIFJnYmFDb2xvcjtcbiAgc3dpdGNoIChoaSkge1xuICAgIGNhc2UgMDpcbiAgICAgIHJnYmEuciA9IF92O1xuICAgICAgcmdiYS5nID0gX3Q7XG4gICAgICByZ2JhLmIgPSBfcDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMTpcbiAgICAgIHJnYmEuciA9IF9xO1xuICAgICAgcmdiYS5nID0gX3Y7XG4gICAgICByZ2JhLmIgPSBfcDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHJnYmEuciA9IF9wO1xuICAgICAgcmdiYS5nID0gX3Y7XG4gICAgICByZ2JhLmIgPSBfdDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMzpcbiAgICAgIHJnYmEuciA9IF9wO1xuICAgICAgcmdiYS5nID0gX3E7XG4gICAgICByZ2JhLmIgPSBfdjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgNDpcbiAgICAgIHJnYmEuciA9IF90O1xuICAgICAgcmdiYS5nID0gX3A7XG4gICAgICByZ2JhLmIgPSBfdjtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgNTpcbiAgICAgIHJnYmEuciA9IF92O1xuICAgICAgcmdiYS5nID0gX3A7XG4gICAgICByZ2JhLmIgPSBfcTtcbiAgICAgIGJyZWFrO1xuICB9XG4gIHJnYmEuciA9IE1hdGgucm91bmQocmdiYS5yKTtcbiAgcmdiYS5nID0gTWF0aC5yb3VuZChyZ2JhLmcpO1xuICByZ2JhLmIgPSBNYXRoLnJvdW5kKHJnYmEuYik7XG4gIHJldHVybiB7IC4uLnJnYmEsIGEgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBoc3ZhVG9SZ2JTdHJpbmcgPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyByLCBnLCBiIH0gPSBoc3ZhVG9SZ2JhKGhzdmEpO1xuICByZXR1cm4gYHJnYigke3J9LCAke2d9LCAke2J9KWA7XG59O1xuXG5leHBvcnQgY29uc3QgaHN2YVRvUmdiYVN0cmluZyA9IChoc3ZhOiBIc3ZhQ29sb3IpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IHIsIGcsIGIsIGEgfSA9IGhzdmFUb1JnYmEoaHN2YSk7XG4gIHJldHVybiBgcmdiYSgke3J9LCAke2d9LCAke2J9LCAke2F9KWA7XG59O1xuXG5leHBvcnQgY29uc3QgcmdiYVRvUmdiID0gKHsgciwgZywgYiB9OiBSZ2JhQ29sb3IpOiBSZ2JDb2xvciA9PiAoeyByLCBnLCBiIH0pO1xuZXhwb3J0IGNvbnN0IGhzbGFUb0hzbCA9ICh7IGgsIHMsIGwgfTogSHNsYUNvbG9yKTogSHNsQ29sb3IgPT4gKHsgaCwgcywgbCB9KTtcbmV4cG9ydCBjb25zdCBoc3ZhVG9IZXggPSAoaHN2YTogSHN2YUNvbG9yKTogc3RyaW5nID0+IHJnYmFUb0hleChoc3ZhVG9SZ2JhKGhzdmEpKTtcbmV4cG9ydCBjb25zdCBoc3ZhVG9IZXhhID0gKGhzdmE6IEhzdmFDb2xvcik6IHN0cmluZyA9PiByZ2JhVG9IZXhhKGhzdmFUb1JnYmEoaHN2YSkpO1xuZXhwb3J0IGNvbnN0IGhzdmFUb0hzdiA9ICh7IGgsIHMsIHYgfTogSHN2YUNvbG9yKTogSHN2Q29sb3IgPT4gKHsgaCwgcywgdiB9KTtcblxuZXhwb3J0IGNvbnN0IGNvbG9yID0gKHN0cjogc3RyaW5nIHwgSHN2YUNvbG9yKTogQ29sb3JSZXN1bHQgPT4ge1xuICBsZXQgcmdiITogUmdiQ29sb3I7XG4gIGxldCBoc2whOiBIc2xDb2xvcjtcbiAgbGV0IGhzdiE6IEhzdkNvbG9yO1xuICBsZXQgcmdiYSE6IFJnYmFDb2xvcjtcbiAgbGV0IGhzbGEhOiBIc2xhQ29sb3I7XG4gIGxldCBoc3ZhITogSHN2YUNvbG9yO1xuICBsZXQgaGV4ITogc3RyaW5nO1xuICBsZXQgaGV4YSE6IHN0cmluZztcbiAgaWYgKHR5cGVvZiBzdHIgPT09ICdzdHJpbmcnICYmIHZhbGlkSGV4KHN0cikpIHtcbiAgICBoc3ZhID0gaGV4VG9Ic3ZhKHN0cik7XG4gICAgaGV4ID0gc3RyO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKSB7XG4gICAgaHN2YSA9IHN0cjtcbiAgfVxuICBpZiAoaHN2YSkge1xuICAgIGhzdiA9IGhzdmFUb0hzdihoc3ZhKTtcbiAgICBoc2xhID0gaHN2YVRvSHNsYShoc3ZhKTtcbiAgICByZ2JhID0gaHN2YVRvUmdiYShoc3ZhKTtcbiAgICBoZXhhID0gcmdiYVRvSGV4YShyZ2JhKTtcbiAgICBoZXggPSBoc3ZhVG9IZXgoaHN2YSk7XG4gICAgaHNsID0gaHNsYVRvSHNsKGhzbGEpO1xuICAgIHJnYiA9IHJnYmFUb1JnYihyZ2JhKTtcbiAgfVxuICByZXR1cm4geyByZ2IsIGhzbCwgaHN2LCByZ2JhLCBoc2xhLCBoc3ZhLCBoZXgsIGhleGEgfTtcbn07XG4iXX0=
{
"name": "@uiw/color-convert",
"version": "0.0.34",
"version": "0.1.0",
"description": "Color Convert",

@@ -5,0 +5,0 @@ "author": "Kenny Wong <wowohoo@qq.com>",

@@ -41,3 +41,5 @@ Color Convert

```js
hsvaToHex({ h: 0, s: 0, v: 30, a: 0.4875 }) // => "#4d4d4d7c"
hsvaToHexa({ h: 0, s: 0, v: 30, a: 0.4875 }) // => '#4d4d4d7c'
hsvaToHexa({ h: 0, s: 0, v: 100, a: 1 }) // => '#ffffffff'
hsvaToHexa({ h: 60, s: 100, v: 100, a: 1 }) // => '#ffff00ff'
```

@@ -54,9 +56,23 @@

```js
hsvaToHsla({ h: 0, s: 0, l: 100, a: 1 }) // => { h: 0, s: 0, v: 100, a: 1 }
hslaToHsva({ h: 0, s: 100, l: 50, a: 1 }) // => { h: 0, s: 100, v: 100, a: 1 }
hslaToHsva({ h: 0, s: 0, l: 0, a: 1 }) // => { h: 0, s: 0, v: 0, a: 1 }
hslaToHsva({ h: 200, s: 25, l: 32, a: 1 }) // => { h: 200, s: 40, v: 40, a: 1 }
```
#### `hslStringToHsla`
```js
hslStringToHsla('')
// => { h: undefined, s: undefined, l: undefined, a: undefined }
hslStringToHsla('hsl(50, 10%, 10%)')
// => { h: 50, s: 10, l: 10 }
hslStringToHsla('hsl(49deg 90% 65% / 39%)')
// => { h: 49, s: 90, l: 65, a: 39 }
```
#### `hsvaToHslString`
```js
hsvaToHsla({ h: 200, s: 40, v: 40, a: 1 }) // => hsl(200, 25%, 32%)
hsvaToHslString({ h: 200, s: 40, v: 40, a: 1 }) // => 'hsl(200, 25%, 32%)'
hsvaToHslString({ h: 0, s: 0, v: 0, a: 1 }) // => 'hsl(0, 0%, 0%)'
```

@@ -73,3 +89,5 @@

```js
hslStringToHsva('hsla(0deg, 0%, 0%, 0.5)') // => { h: 0, s: 0, v: 0, a: 0.5 }
hslaStringToHsva('hsla(0deg, 0%, 0%, 0.5)') // => { h: 0, s: 0, v: 0, a: 0.5 }
hslaStringToHsva('hsla(200, 25%, 32%, 1)') // => { h: 200, s: 40, v: 40, a: 1 }
hslaStringToHsva('hsla(.5turn 25% 32% / 50%)') // => { h: 180, s: 40, v: 40, a: 0.5 }
```

@@ -80,3 +98,5 @@

```js
hslStringToHsva({ h: 0, s: 0, v: 100, a: 1 }) // => { r: 255, g: 255, b: 255, a: 1 }
hsvaToRgba({ h: 0, s: 0, v: 100, a: 1 }) //=> { r: 255, g: 255, b: 255, a: 1 }
hsvaToRgba({ h: 128, s: 0, v: 100, a: 1 }) //=> { r: 255, g: 255, b: 255, a: 1 }
hsvaToRgba({ h: 0, s: 100, v: 100, a: 0.567 }) //=> { r: 255, g: 0, b: 0, a: 0.567 }
```

@@ -129,3 +149,5 @@

```js
hsvaToHsvString('hsva(0, 11%, 0, 0.5)') // => { h: 0, s: 11, v: 0, a: 0.5 }
hsvStringToHsva('hsv(0, 11%, 0%)') //=> { h: 0, s: 11, v: 0, a: 1, }
hsvStringToHsva('hsv(90deg 20% 10%)') //=> { h: 90, s: 20, v: 10, a: 1, }
hsvStringToHsva('hsv(100grad 20% 10%)') //=> { h: 90, s: 20, v: 10, a: 1, }
```

@@ -139,3 +161,3 @@

#### `rgbaToRgb`
#### `hslaToHsl`

@@ -142,0 +164,0 @@ ```js

@@ -86,2 +86,7 @@ import { validHex } from './utils';

export const hslStringToHsla = (str: string): HslaColor => {
const [h, s, l, a] = (str.match(/\d+/g) || []).map(Number);
return { h, s, l, a };
};
export const hslaStringToHsva = (hslString: string): HsvaColor => {

@@ -88,0 +93,0 @@ const matcher =

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc