-
Notifications
You must be signed in to change notification settings - Fork 14
/
bss.min.js.map
1 lines (1 loc) · 23.3 KB
/
bss.min.js.map
1
{"version":3,"file":"bss.min.js","sources":["lib/pseudos.js","lib/popular.js","lib/utils.js","lib/sheet.js","lib/index.js"],"sourcesContent":["export default [\n ':active',\n ':any',\n ':checked',\n ':default',\n ':disabled',\n ':empty',\n ':enabled',\n ':first',\n ':first-child',\n ':first-of-type',\n ':fullscreen',\n ':focus',\n ':hover',\n ':indeterminate',\n ':in-range',\n ':invalid',\n ':last-child',\n ':last-of-type',\n ':left',\n ':link',\n ':only-child',\n ':only-of-type',\n ':optional',\n ':out-of-range',\n ':read-only',\n ':read-write',\n ':required',\n ':right',\n ':root',\n ':scope',\n ':target',\n ':valid',\n ':visited',\n\n // With value\n ':dir',\n ':lang',\n ':not',\n ':nth-child',\n ':nth-last-child',\n ':nth-last-of-type',\n ':nth-of-type',\n\n // Elements\n '::after',\n '::before',\n '::first-letter',\n '::first-line',\n '::selection',\n '::backdrop',\n '::placeholder',\n '::marker',\n '::spelling-error',\n '::grammar-error'\n]\n","export default {\n ai : 'alignItems',\n b : 'bottom',\n bc : 'backgroundColor',\n br : 'borderRadius',\n bs : 'boxShadow',\n bi : 'backgroundImage',\n c : 'color',\n d : 'display',\n f : 'float',\n fd : 'flexDirection',\n ff : 'fontFamily',\n fs : 'fontSize',\n h : 'height',\n jc : 'justifyContent',\n l : 'left',\n lh : 'lineHeight',\n ls : 'letterSpacing',\n m : 'margin',\n mb : 'marginBottom',\n ml : 'marginLeft',\n mr : 'marginRight',\n mt : 'marginTop',\n o : 'opacity',\n p : 'padding',\n pb : 'paddingBottom',\n pl : 'paddingLeft',\n pr : 'paddingRight',\n pt : 'paddingTop',\n r : 'right',\n t : 'top',\n ta : 'textAlign',\n td : 'textDecoration',\n tt : 'textTransform',\n w : 'width'\n}\n","export const cssProperties = ['float'].concat(Object.keys(\n typeof document === 'undefined'\n ? {}\n : findWidth(document.documentElement.style)\n).filter(p => p.indexOf('-') === -1 && p !== 'length'))\n\nfunction findWidth(obj) {\n return obj\n ? obj.hasOwnProperty('width')\n ? obj\n : findWidth(Object.getPrototypeOf(obj))\n : {}\n}\n\nexport const isProp = /^-?-?[a-z][a-z-_0-9]*$/i\n\nexport const memoize = (fn, cache = {}) => item =>\n item in cache\n ? cache[item]\n : cache[item] = fn(item)\n\nexport function add(style, prop, values) {\n if (prop in style) // Recursively increase specificity\n add(style, '!' + prop, values)\n else\n style[prop] = formatValues(prop, values)\n}\n\nexport const vendorMap = Object.create(null, {})\nexport const vendorValuePrefix = Object.create(null, {})\n\nexport const vendorRegex = /^(o|O|ms|MS|Ms|moz|Moz|webkit|Webkit|WebKit)([A-Z])/\n\nconst appendPx = memoize(prop => {\n const el = document.createElement('div')\n\n try {\n el.style[prop] = '1px'\n el.style.setProperty(prop, '1px')\n return el.style[prop].slice(-3) === '1px' ? 'px' : ''\n } catch (err) {\n return ''\n }\n}, {\n flex: '',\n boxShadow: 'px',\n border: 'px',\n borderTop: 'px',\n borderRight: 'px',\n borderBottom: 'px',\n borderLeft: 'px'\n})\n\nexport function lowercaseFirst(string) {\n return string.charAt(0).toLowerCase() + string.slice(1)\n}\n\nexport function assign(obj, obj2) {\n for (const key in obj2) {\n if (obj2.hasOwnProperty(key)) {\n obj[key] = typeof obj2[key] === 'string'\n ? obj2[key]\n : assign(obj[key] || {}, obj2[key])\n }\n }\n return obj\n}\n\nconst hyphenSeparator = /-([a-z])/g\nexport function hyphenToCamelCase(hyphen) {\n return hyphen.slice(hyphen.charAt(0) === '-' ? 1 : 0).replace(hyphenSeparator, function(match) {\n return match[1].toUpperCase()\n })\n}\n\nconst camelSeparator = /(\\B[A-Z])/g\nexport function camelCaseToHyphen(camelCase) {\n return camelCase.replace(camelSeparator, '-$1').toLowerCase()\n}\n\nconst initialMatch = /([A-Z])/g\nexport function initials(camelCase) {\n return camelCase.charAt(0) + (camelCase.match(initialMatch) || []).join('').toLowerCase()\n}\n\nconst ampersandMatch = /&/g\nexport function objectToRules(style, selector, suffix = '', single) {\n const base = {}\n const extra = suffix.indexOf('&') > -1 && suffix.indexOf(',') === -1 ? '' : '&'\n let rules = []\n\n Object.keys(style).forEach(prop => {\n if (prop.charAt(0) === '@')\n rules.push(prop + '{' + objectToRules(style[prop], selector, suffix, single).join('') + '}')\n else if (typeof style[prop] === 'object')\n rules = rules.concat(objectToRules(style[prop], selector, suffix + prop, single))\n else\n base[prop] = style[prop]\n })\n\n if (Object.keys(base).length) {\n rules.unshift(\n ((single || (suffix.charAt(0) === ' ') ? '' : '&') + extra + suffix).replace(ampersandMatch, selector).trim() +\n '{' + stylesToCss(base) + '}'\n )\n }\n\n return rules\n}\n\nexport const selectorSplit = /,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/\n\nexport function stylesToCss(style) {\n return Object.keys(style).reduce((acc, prop) =>\n acc + propToString(prop.charAt(0) === '!' ? prop.slice(1) : prop, style[prop])\n , '')\n}\n\nexport function readClasses(sheet) {\n throw new Error('not implemented')\n}\n\nfunction propToString(prop, value) {\n prop = prop in vendorMap ? vendorMap[prop] : prop\n return (vendorRegex.test(prop) ? '-' : '')\n + (cssVar(prop)\n ? prop\n : camelCaseToHyphen(prop)\n )\n + ':'\n + value\n + ';'\n}\n\nfunction formatValues(prop, value) {\n return Array.isArray(value)\n ? value.map(v => formatValue(prop, v)).join(' ')\n : typeof value === 'string'\n ? formatValues(prop, value.split(' '))\n : formatValue(prop, value)\n}\n\nfunction formatValue(prop, value) {\n return value in vendorValuePrefix\n ? vendorValuePrefix[value]\n : value + (isNaN(value) || value === null || value === 0 || value === '0' || typeof value === 'boolean' || cssVar(prop) ? '' : appendPx(prop))\n}\n\nfunction cssVar(prop) {\n return prop.charAt(0) === '-' && prop.charAt(1) === '-'\n}\n","import {\n objectToRules\n} from './utils.js'\n\nexport const classPrefix = 'b' + ('000' + ((Math.random() * 46656) | 0).toString(36)).slice(-3) +\n ('000' + ((Math.random() * 46656) | 0).toString(36)).slice(-3)\n\nconst styleSheet = typeof document === 'object' && document.createElement('style')\nstyleSheet && document.head && document.head.appendChild(styleSheet)\nstyleSheet && (styleSheet.id = classPrefix)\n\nconst sheet = styleSheet && styleSheet.sheet\n\nlet debug = false\nlet classes = Object.create(null, {})\nlet rules = []\nlet count = 0\n\nexport function setDebug(d) {\n debug = d\n}\n\nexport function getSheet() {\n const content = rules.join('')\n rules = []\n classes = Object.create(null, {})\n count = 0\n return content\n}\n\nexport function getRules() {\n return rules\n}\n\nexport function insert(rule, index) {\n rules.push(rule)\n\n if (debug)\n return styleSheet.textContent = rules.join('\\n')\n\n try {\n sheet && sheet.insertRule(rule, arguments.length > 1\n ? index\n : sheet.cssRules.length)\n } catch (e) {\n // Ignore thrown errors in eg. firefox for unsupported strings (::-webkit-inner-spin-button)\n }\n}\n\nexport function createClass(style) {\n const json = JSON.stringify(style)\n\n if (json in classes)\n return classes[json]\n\n const className = classPrefix + (++count)\n , rules = objectToRules(style, '.' + className)\n\n for (let i = 0; i < rules.length; i++)\n insert(rules[i])\n\n classes[json] = className\n\n return className\n}\n","/* eslint no-invalid-this: 0 */\nimport pseudos from './pseudos.js'\nimport popular from './popular.js'\n\nimport {\n classPrefix,\n createClass,\n setDebug,\n getSheet,\n getRules,\n insert\n} from './sheet'\n\nimport {\n hyphenToCamelCase,\n vendorValuePrefix,\n lowercaseFirst,\n objectToRules,\n selectorSplit,\n cssProperties,\n stylesToCss,\n vendorRegex,\n vendorMap,\n initials,\n memoize,\n isProp,\n assign,\n add\n} from './utils'\n\nconst shorts = Object.create(null)\n\nfunction bss(input, value) {\n const b = chain(bss)\n input && assign(b.__style, parse.apply(null, arguments))\n return b\n}\n\nfunction setProp(prop, value) {\n Object.defineProperty(bss, prop, {\n configurable: true,\n value\n })\n}\n\nObject.defineProperties(bss, {\n __style: {\n configurable: true,\n writable: true,\n value: {}\n },\n valueOf: {\n configurable: true,\n writable: true,\n value: function() {\n return '.' + this.class\n }\n },\n toString: {\n configurable: true,\n writable: true,\n value: function() {\n return this.class\n }\n }\n})\n\nsetProp('setDebug', setDebug)\n\nsetProp('$keyframes', keyframes)\nsetProp('$media', $media)\nsetProp('$import', $import)\nsetProp('$nest', $nest)\nsetProp('getSheet', getSheet)\nsetProp('getRules', getRules)\nsetProp('helper', helper)\nsetProp('css', css)\nsetProp('classPrefix', classPrefix)\n\nfunction chain(instance) {\n const newInstance = Object.create(bss, {\n __style: {\n value: assign({}, instance.__style)\n },\n style: {\n enumerable: true,\n get: function() {\n return Object.keys(this.__style).reduce((acc, key) => {\n if (typeof this.__style[key] === 'number' || typeof this.__style[key] === 'string')\n acc[key.charAt(0) === '!' ? key.slice(1) : key] = this.__style[key]\n return acc\n }, {})\n }\n }\n })\n\n if (instance === bss)\n bss.__style = {}\n\n return newInstance\n}\n\ncssProperties.forEach(prop => {\n const vendor = prop.match(vendorRegex)\n if (vendor) {\n const unprefixed = lowercaseFirst(prop.replace(vendorRegex, '$2'))\n if (cssProperties.indexOf(unprefixed) === -1) {\n if (unprefixed === 'flexDirection')\n vendorValuePrefix.flex = '-' + vendor[1].toLowerCase() + '-flex'\n\n vendorMap[unprefixed] = prop\n setProp(unprefixed, setter(prop))\n setProp(short(unprefixed), bss[unprefixed])\n return\n }\n }\n\n setProp(prop, setter(prop))\n setProp(short(prop), bss[prop])\n})\n\nsetProp('content', function Content(arg) {\n const b = chain(this)\n arg === null || arg === undefined || arg === false\n ? delete b.__style.content\n : b.__style.content = '\"' + arg + '\"'\n return b\n})\n\nObject.defineProperty(bss, 'class', {\n set: function(value) {\n this.__class = value\n },\n get: function() {\n return this.__class || createClass(this.__style)\n }\n})\n\nfunction $media(value, style) {\n const b = chain(this)\n if (value)\n b.__style['@media ' + value] = parse(style)\n\n return b\n}\n\nconst hasUrl = /^('|\"|url\\('|url\\(\")/i\nfunction $import(value) {\n value && insert('@import '\n + (hasUrl.test(value) ? value : '\"' + value + '\"')\n + ';', 0)\n\n return chain(this)\n}\n\nfunction $nest(selector, properties) {\n const b = chain(this)\n if (arguments.length === 1)\n Object.keys(selector).forEach(x => addNest(b.__style, x, selector[x]))\n else if (selector)\n addNest(b.__style, selector, properties)\n\n return b\n}\n\nfunction addNest(style, selector, properties) {\n const prop = selector.split(selectorSplit).map(x => {\n x = x.trim()\n return (x.charAt(0) === ':' || x.charAt(0) === '[' ? '' : ' ') + x\n }).join(',&')\n\n prop in style\n ? assign(style[prop], parse(properties))\n : style[prop] = parse(properties)\n}\n\npseudos.forEach(name =>\n setProp('$' + hyphenToCamelCase(name.replace(/:/g, '')), function Pseudo(value, style) {\n const b = chain(this)\n if (isTagged(value))\n b.__style[name] = parse.apply(null, arguments)\n else if (value || style)\n b.__style[name + (style ? '(' + value + ')' : '')] = parse(style || value)\n return b\n })\n)\n\nfunction setter(prop) {\n return function CssProperty(value) {\n const b = chain(this)\n if (!value && value !== 0)\n delete b.__style[prop]\n else if (arguments.length > 0)\n add(b.__style, prop, Array.prototype.slice.call(arguments))\n\n return b\n }\n}\n\nfunction css(selector, style) {\n if (arguments.length === 1)\n Object.keys(selector).forEach(key => addCss(key, selector[key]))\n else\n addCss(selector, style)\n\n return chain(this)\n}\n\nfunction addCss(selector, style) {\n objectToRules(parse(style), selector, '', true).forEach(rule => insert(rule))\n}\n\nfunction helper(name, styling) {\n if (arguments.length === 1)\n return Object.keys(name).forEach(key => helper(key, name[key]))\n\n delete bss[name] // Needed to avoid weird get calls in chrome\n\n if (typeof styling === 'function') {\n helper[name] = styling\n Object.defineProperty(bss, name, {\n configurable: true,\n value: function Helper(input) {\n const b = chain(this)\n const result = isTagged(input)\n ? styling(raw(input, arguments))\n : styling.apply(null, arguments)\n assign(b.__style, result.__style)\n return b\n }\n })\n } else {\n helper[name] = parse(styling)\n Object.defineProperty(bss, name, {\n configurable: true,\n get: function() {\n const b = chain(this)\n assign(b.__style, parse(styling))\n return b\n }\n })\n }\n}\n\nbss.helper('$animate', (value, props) =>\n bss.animation(bss.$keyframes(props) + ' ' + value)\n)\n\nfunction short(prop) {\n const acronym = initials(prop)\n , short = popular[acronym] && popular[acronym] !== prop ? prop : acronym\n\n shorts[short] = prop\n return short\n}\n\nconst blockEndMatch = /;(?![^(\"]*[)\"])|\\n/\nconst commentsMatch = /\\/\\*[\\s\\S]*?\\*\\/|([^:]|^)\\/\\/.*(?![^(\"]*[)\"])/g\nconst propSeperator = /[ :]+/\n\nconst stringToObject = memoize(string => {\n let last = ''\n , prev\n\n return string.trim().replace(commentsMatch, '').split(blockEndMatch).reduce((acc, line) => {\n if (!line)\n return acc\n line = last + line.trim()\n const [key, ...tokens] = line.replace(propSeperator, ' ').split(' ')\n\n last = line.charAt(line.length - 1) === ',' ? line : ''\n if (last)\n return acc\n\n if (line.charAt(0) === ',' || !isProp.test(key)) {\n acc[prev] += ' ' + line\n return acc\n }\n\n if (!key)\n return acc\n\n const prop = key.charAt(0) === '-' && key.charAt(1) === '-'\n ? key\n : hyphenToCamelCase(key)\n\n prev = shorts[prop] || prop\n\n if (key in helper) {\n typeof helper[key] === 'function'\n ? assign(acc, helper[key](...tokens).__style)\n : assign(acc, helper[key])\n } else if (prop in helper) {\n typeof helper[prop] === 'function'\n ? assign(acc, helper[prop](...tokens).__style)\n : assign(acc, helper[prop])\n } else if (tokens.length > 0) {\n add(acc, prev, tokens)\n }\n\n return acc\n }, {})\n})\n\nlet count = 0\nconst keyframeCache = {}\n\nfunction keyframes(props) {\n const content = Object.keys(props).reduce((acc, key) =>\n acc + key + '{' + stylesToCss(parse(props[key])) + '}'\n , '')\n\n if (content in keyframeCache)\n return keyframeCache[content]\n\n const name = classPrefix + count++\n keyframeCache[content] = name\n insert('@keyframes ' + name + '{' + content + '}')\n\n return name\n}\n\nfunction parse(input, value) {\n if (typeof input === 'string') {\n if (typeof value === 'string' || typeof value === 'number')\n return ({ [input] : value })\n\n return stringToObject(input)\n } else if (isTagged(input)) {\n return stringToObject(raw(input, arguments))\n }\n\n return input.__style || sanitize(input)\n}\n\nfunction isTagged(input) {\n return Array.isArray(input) && typeof input[0] === 'string'\n}\n\nfunction raw(input, args) {\n let str = ''\n for (let i = 0; i < input.length; i++)\n str += input[i] + (args[i + 1] || args[i + 1] === 0 ? args[i + 1] : '')\n return str\n}\n\nfunction sanitize(styles) {\n return Object.keys(styles).reduce((acc, key) => {\n const value = styles[key]\n key = shorts[key] || key\n\n if (!value && value !== 0 && value !== '')\n return acc\n\n if (key === 'content' && value.charAt(0) !== '\"')\n acc[key] = '\"' + value + '\"'\n else if (typeof value === 'object')\n acc[key] = sanitize(value)\n else\n add(acc, key, value)\n\n return acc\n }, {})\n}\n\nexport default bss\n"],"names":["count"],"mappings":"0OAAe,CACb,UACA,OACA,WACA,WACA,YACA,SACA,WACA,SACA,eACA,iBACA,cACA,SACA,SACA,iBACA,YACA,WACA,cACA,gBACA,QACA,QACA,cACA,gBACA,YACA,gBACA,aACA,cACA,YACA,SACA,QACA,SACA,UACA,SACA,WAGA,OACA,QACA,OACA,aACA,kBACA,oBACA,eAGA,UACA,WACA,iBACA,eACA,cACA,aACA,gBACA,WACA,mBACA,qBCtDa,CACb,GAAK,aACL,EAAK,SACL,GAAK,kBACL,GAAK,eACL,GAAK,YACL,GAAK,kBACL,EAAK,QACL,EAAK,UACL,EAAK,QACL,GAAK,gBACL,GAAK,aACL,GAAK,WACL,EAAK,SACL,GAAK,iBACL,EAAK,OACL,GAAK,aACL,GAAK,gBACL,EAAK,SACL,GAAK,eACL,GAAK,aACL,GAAK,cACL,GAAK,YACL,EAAK,UACL,EAAK,UACL,GAAK,gBACL,GAAK,cACL,GAAK,eACL,GAAK,aACL,EAAK,QACL,EAAK,MACL,GAAK,YACL,GAAK,iBACL,GAAK,gBACL,EAAK,cClCM,GAAgB,CAAC,SAAS,OAAO,OAAO,KACnD,MAAO,WAAa,YAChB,GACA,EAAU,SAAS,gBAAgB,QACvC,OAAO,GAAK,EAAE,QAAQ,OAAS,IAAM,IAAM,WAE7C,WAAmB,EAAK,OACf,GACH,EAAI,eAAe,SACjB,EACA,EAAU,OAAO,eAAe,IAClC,QAGO,GAAS,0BAET,EAAU,CAAC,EAAI,EAAQ,KAAO,GACzC,IAAQ,GACJ,EAAM,GACN,EAAM,GAAQ,EAAG,cAEH,EAAO,EAAM,EAAQ,CACnC,IAAQ,KACN,EAAO,IAAM,EAAM,KAEjB,GAAQ,EAAa,EAAM,QAGxB,GAAY,OAAO,OAAO,KAAM,IAChC,EAAoB,OAAO,OAAO,KAAM,IAExC,EAAc,sDAErB,EAAW,EAAQ,GAAQ,MACzB,GAAK,SAAS,cAAc,UAE9B,UACC,MAAM,GAAQ,QACd,MAAM,YAAY,EAAM,OACpB,EAAG,MAAM,GAAM,MAAM,MAAQ,MAAQ,KAAO,SAC5C,SACA,KAER,CACD,KAAM,GACN,UAAW,KACX,OAAQ,KACR,UAAW,KACX,YAAa,KACb,aAAc,KACd,WAAY,kBAGiB,EAAQ,OAC9B,GAAO,OAAO,GAAG,cAAgB,EAAO,MAAM,cAGhC,EAAK,EAAM,UACrB,KAAO,GACZ,EAAK,eAAe,OAClB,GAAO,MAAO,GAAK,IAAS,SAC5B,EAAK,GACL,EAAO,EAAI,IAAQ,GAAI,EAAK,WAG7B,GAGT,KAAM,GAAkB,uBACU,EAAQ,OACjC,GAAO,MAAM,EAAO,OAAO,KAAO,IAAM,EAAI,GAAG,QAAQ,EAAiB,SAAS,EAAO,OACtF,GAAM,GAAG,gBAIpB,KAAM,GAAiB,wBACW,EAAW,OACpC,GAAU,QAAQ,EAAgB,OAAO,cAGlD,KAAM,GAAe,uBACI,EAAW,OAC3B,GAAU,OAAO,MAAgB,MAAM,IAAiB,IAAI,KAAK,IAAI,cAG9E,KAAM,IAAiB,gBACO,EAAO,EAAU,EAAS,GAAI,EAAQ,MAC5D,GAAO,GACP,EAAQ,EAAO,QAAQ,KAAO,IAAM,EAAO,QAAQ,OAAS,GAAK,GAAK,OACxE,GAAQ,iBAEL,KAAK,GAAO,QAAQ,GAAQ,CAC7B,EAAK,OAAO,KAAO,MACf,KAAK,EAAO,IAAM,EAAc,EAAM,GAAO,EAAU,EAAQ,GAAQ,KAAK,IAAM,KACjF,MAAO,GAAM,IAAU,WACtB,EAAM,OAAO,EAAc,EAAM,GAAO,EAAU,EAAS,EAAM,MAEpE,GAAQ,EAAM,KAGnB,OAAO,KAAK,GAAM,UACd,aACS,EAAO,OAAO,KAAO,IAAO,GAAK,KAAO,EAAQ,GAAQ,QAAQ,GAAgB,GAAU,OACvG,IAAM,EAAY,GAAQ,KAIvB,OAGI,IAAgB,2CAED,EAAO,OAC1B,QAAO,KAAK,GAAO,OAAO,CAAC,EAAK,IACrC,EAAM,GAAa,EAAK,OAAO,KAAO,IAAM,EAAK,MAAM,GAAK,EAAM,EAAM,IACxE,IAOJ,YAAsB,EAAM,EAAO,UAC1B,IAAQ,GAAY,EAAU,GAAQ,KACzB,KAAK,GAAQ,IAAM,OAC3B,GACN,EACA,EAAkB,IAEpB,IACA,EACA,IAGN,WAAsB,EAAM,EAAO,OAC1B,OAAM,QAAQ,GACjB,EAAM,IAAI,GAAK,EAAY,EAAM,IAAI,KAAK,KAC1C,MAAO,IAAU,SACf,EAAa,EAAM,EAAM,MAAM,MAC/B,EAAY,EAAM,GAG1B,WAAqB,EAAM,EAAO,OACzB,KAAS,GACZ,EAAkB,GAClB,SAAe,IAAU,IAAU,MAAQ,IAAU,GAAK,IAAU,KAAO,MAAO,IAAU,WAAa,EAAO,GAAQ,GAAK,EAAS,IAG5I,WAAgB,EAAM,OACb,GAAK,OAAO,KAAO,KAAO,EAAK,OAAO,KAAO,SCjJzC,GAAc,iBAAsB,SAAW,MAAS,GAAG,SAAS,KAAK,MAAM,iBACxD,SAAW,MAAS,GAAG,SAAS,KAAK,MAAM,IAEzE,EAAa,MAAO,WAAa,UAAY,SAAS,cAAc,SAC1E,GAAc,SAAS,MAAQ,SAAS,KAAK,YAAY,GACzD,MAA0B,GAAK,GAE/B,KAAM,GAAQ,GAAc,EAAW,MAEvC,GAAI,GAAQ,GACR,EAAU,OAAO,OAAO,KAAM,IAC9B,EAAQ,GACRA,EAAQ,cAEa,EAAG,GAClB,eAGiB,MACnB,GAAU,EAAM,KAAK,aACnB,KACE,OAAO,OAAO,KAAM,MACtB,EACD,eAGkB,OAClB,cAGc,EAAM,EAAO,MAC5B,KAAK,GAEP,QACK,GAAW,YAAc,EAAM,KAAK;AAAA,MAEzC,IACO,EAAM,WAAW,EAAM,UAAU,OAAS,EAC/C,EACA,EAAM,SAAS,cACZ,iBAKiB,EAAO,MAC3B,GAAO,KAAK,UAAU,MAExB,IAAQ,SACH,GAAQ,QAEX,GAAY,EAAe,GAAEA,EAC7B,EAAQ,EAAc,EAAO,IAAM,UAEhC,GAAI,EAAG,EAAI,EAAM,OAAQ,MACzB,EAAM,aAEP,GAAQ,EAET,ECjCT,KAAM,GAAS,OAAO,OAAO,MAE7B,WAAa,EAAO,EAAO,MACnB,GAAI,EAAM,aACP,EAAO,EAAE,QAAS,EAAM,MAAM,KAAM,YACtC,EAGT,WAAiB,EAAM,EAAO,QACrB,eAAe,EAAK,EAAM,CAC/B,aAAc,GACd,UAIJ,OAAO,iBAAiB,EAAK,CAC3B,QAAS,CACP,aAAc,GACd,SAAU,GACV,MAAO,IAET,QAAS,CACP,aAAc,GACd,SAAU,GACV,MAAO,UAAW,OACT,IAAM,KAAK,QAGtB,SAAU,CACR,aAAc,GACd,SAAU,GACV,MAAO,UAAW,OACT,MAAK,UAKlB,EAAQ,WAAY,IAEpB,EAAQ,aAAc,IACtB,EAAQ,SAAU,IAClB,EAAQ,UAAW,IACnB,EAAQ,QAAS,IACjB,EAAQ,WAAY,IACpB,EAAQ,WAAY,IACpB,EAAQ,SAAU,GAClB,EAAQ,MAAO,IACf,EAAQ,cAAe,GAEvB,WAAe,EAAU,MACjB,GAAc,OAAO,OAAO,EAAK,CACrC,QAAS,CACP,MAAO,EAAO,GAAI,EAAS,UAE7B,MAAO,CACL,WAAY,GACZ,IAAK,UAAW,OACP,QAAO,KAAK,KAAK,SAAS,OAAO,CAAC,EAAK,IACxC,QAAO,MAAK,QAAQ,IAAS,UAAY,MAAO,MAAK,QAAQ,IAAS,cACpE,EAAI,OAAO,KAAO,IAAM,EAAI,MAAM,GAAK,GAAO,KAAK,QAAQ,IAC1D,GACN,cAKL,KAAa,MACX,QAAU,IAET,EAGT,EAAc,QAAQ,GAAQ,MACtB,GAAS,EAAK,MAAM,MACtB,EAAQ,MACJ,GAAa,EAAe,EAAK,QAAQ,EAAa,UACxD,EAAc,QAAQ,KAAgB,GAAI,CACxC,IAAe,oBACC,KAAO,IAAM,EAAO,GAAG,cAAgB,WAEjD,GAAc,IAChB,EAAY,EAAO,MACnB,EAAM,GAAa,EAAI,cAK3B,EAAM,EAAO,MACb,EAAM,GAAO,EAAI,MAG3B,EAAQ,UAAW,SAAiB,EAAK,MACjC,GAAI,EAAM,gBACR,MAA6B,IAAQ,GACzC,MAAO,GAAE,QAAQ,QACjB,EAAE,QAAQ,QAAU,IAAM,EAAM,IAC7B,IAGT,OAAO,eAAe,EAAK,QAAS,CAClC,IAAK,SAAS,EAAO,MACd,QAAU,GAEjB,IAAK,UAAW,OACP,MAAK,SAAW,GAAY,KAAK,YAI5C,YAAgB,EAAO,EAAO,MACtB,GAAI,EAAM,YACZ,OACA,QAAQ,UAAY,GAAS,EAAM,IAEhC,EAGT,KAAM,IAAS,wBACf,YAAiB,EAAO,WACb,EAAO,eACJ,KAAK,GAAS,EAAQ,IAAM,EAAQ,KAC5C,IAAK,GAEF,EAAM,MAGf,YAAe,EAAU,EAAY,MAC7B,GAAI,EAAM,YACZ,WAAU,SAAW,SAChB,KAAK,GAAU,QAAQ,GAAK,EAAQ,EAAE,QAAS,EAAG,EAAS,KAC3D,KACC,EAAE,QAAS,EAAU,GAExB,EAGT,WAAiB,EAAO,EAAU,EAAY,MACtC,GAAO,EAAS,MAAM,IAAe,IAAI,MACzC,EAAE,UACI,OAAO,KAAO,KAAO,EAAE,OAAO,KAAO,IAAM,GAAK,KAAO,IAChE,KAAK,UAEA,GACJ,EAAO,EAAM,GAAO,EAAM,IAC1B,EAAM,GAAQ,EAAM,GAG1B,EAAQ,QAAQ,GACd,EAAQ,IAAM,EAAkB,EAAK,QAAQ,KAAM,KAAM,SAAgB,EAAO,EAAO,MAC/E,GAAI,EAAM,YACZ,GAAS,KACT,QAAQ,GAAQ,EAAM,MAAM,KAAM,WAC7B,IAAS,OACd,QAAQ,KAAgB,IAAM,EAAQ,IAAM,KAAO,EAAM,GAAS,IAC/D,KAIX,WAAgB,EAAM,OACb,UAAqB,EAAO,MAC3B,GAAI,EAAM,YACZ,CAAC,GAAS,IAAU,QACf,GAAE,QAAQ,GACV,UAAU,OAAS,KACtB,EAAE,QAAS,EAAM,MAAM,UAAU,MAAM,KAAK,YAE3C,GAIX,YAAa,EAAU,EAAO,OACxB,WAAU,SAAW,SAChB,KAAK,GAAU,QAAQ,GAAO,EAAO,EAAK,EAAS,OAEnD,EAAU,GAEZ,EAAM,MAGf,WAAgB,EAAU,EAAO,GACjB,EAAM,GAAQ,EAAU,GAAI,IAAM,QAAQ,GAAQ,EAAO,IAGzE,WAAgB,EAAM,EAAS,IACzB,UAAU,SAAW,QAChB,QAAO,KAAK,GAAM,QAAQ,GAAO,EAAO,EAAK,EAAK,WAEpD,GAAI,GAEP,MAAO,IAAY,cACd,GAAQ,SACR,eAAe,EAAK,EAAM,CAC/B,aAAc,GACd,MAAO,SAAgB,EAAO,MACtB,GAAI,EAAM,MACV,EAAS,EAAS,GACpB,EAAQ,EAAI,EAAO,YACnB,EAAQ,MAAM,KAAM,oBACjB,EAAE,QAAS,EAAO,SAClB,SAIJ,GAAQ,EAAM,UACd,eAAe,EAAK,EAAM,CAC/B,aAAc,GACd,IAAK,UAAW,MACR,GAAI,EAAM,eACT,EAAE,QAAS,EAAM,IACjB,MAMf,EAAI,OAAO,WAAY,CAAC,EAAO,IAC7B,EAAI,UAAU,EAAI,WAAW,GAAS,IAAM,IAG9C,WAAe,EAAM,MACb,GAAU,GAAS,GACnB,EAAQ,EAAQ,IAAY,EAAQ,KAAa,EAAO,EAAO,WAE9D,GAAS,EACT,EAGT,KAAM,IAAgB,qBAChB,GAAgB,iDAChB,GAAgB,QAEhB,EAAiB,EAAQ,GAAU,IACnC,GAAO,GACP,QAEG,GAAO,OAAO,QAAQ,GAAe,IAAI,MAAM,IAAe,OAAO,CAAC,EAAK,IAAS,IACrF,CAAC,QACI,KACF,EAAO,EAAK,YACb,CAAC,KAAQ,GAAU,EAAK,QAAQ,GAAe,KAAK,MAAM,UAEzD,EAAK,OAAO,EAAK,OAAS,KAAO,IAAM,EAAO,GACjD,QACK,MAEL,EAAK,OAAO,KAAO,KAAO,CAAC,EAAO,KAAK,YACrC,IAAS,IAAM,EACZ,KAGL,CAAC,QACI,QAEH,GAAO,EAAI,OAAO,KAAO,KAAO,EAAI,OAAO,KAAO,IACpD,EACA,EAAkB,YAEf,EAAO,IAAS,EAEnB,IAAO,SACF,GAAO,IAAS,WACnB,EAAO,EAAK,EAAO,GAAK,GAAG,GAAQ,SACnC,EAAO,EAAK,EAAO,IACd,IAAQ,SACV,GAAO,IAAU,WACpB,EAAO,EAAK,EAAO,GAAM,GAAG,GAAQ,SACpC,EAAO,EAAK,EAAO,IACd,EAAO,OAAS,KACrB,EAAK,EAAM,GAGV,GACN,MAGL,GAAI,IAAQ,EACZ,KAAM,GAAgB,GAEtB,YAAmB,EAAO,MAClB,GAAU,OAAO,KAAK,GAAO,OAAO,CAAC,EAAK,IAC9C,EAAM,EAAM,IAAM,EAAY,EAAM,EAAM,KAAS,IACnD,OAEE,IAAW,SACN,GAAc,QAEjB,GAAO,EAAc,cACb,GAAW,IAClB,cAAgB,EAAO,IAAM,EAAU,KAEvC,EAGT,WAAe,EAAO,EAAO,OACvB,OAAO,IAAU,SACf,MAAO,IAAU,UAAY,MAAO,IAAU,SACxC,EAAG,GAAS,GAEf,EAAe,GACb,EAAS,GACX,EAAe,EAAI,EAAO,YAG5B,EAAM,SAAW,EAAS,GAGnC,WAAkB,EAAO,OAChB,OAAM,QAAQ,IAAU,MAAO,GAAM,IAAO,SAGrD,WAAa,EAAO,EAAM,IACpB,GAAM,UACD,GAAI,EAAG,EAAI,EAAM,OAAQ,OACzB,EAAM,MAAW,EAAI,IAAM,EAAK,EAAI,KAAO,EAAI,EAAK,EAAI,GAAK,UAC/D,GAGT,WAAkB,EAAQ,OACjB,QAAO,KAAK,GAAQ,OAAO,CAAC,EAAK,IAAQ,MACxC,GAAQ,EAAO,YACf,EAAO,IAAQ,EAEjB,CAAC,GAAS,IAAU,GAAK,IAAU,KAGnC,IAAQ,WAAa,EAAM,OAAO,KAAO,MACvC,GAAO,IAAM,EAAQ,IAClB,MAAO,IAAU,WACpB,GAAO,EAAS,KAEhB,EAAK,EAAK,IAET,GACN"}