{"version":3,"sources":["webpack:///./node_modules/tinycolor2/cjs/tinycolor.js"],"names":["module","exports","trimLeft","trimRight","tinycolor","color","opts","this","rgb","inputToRGB","_originalInput","_r","r","_g","g","_b","b","_a","a","_roundA","Math","round","_format","format","_gradientType","gradientType","_ok","ok","s","v","l","stringInputToObject","isValidCSSUnit","rgbToRgb","String","substr","h","convertToPercentage","hsvToRgb","hslToRgb","hasOwnProperty","boundAlpha","min","max","bound01","rgbToHsl","d","hue2rgb","p","q","t","rgbToHsv","i","floor","f","mod","rgbToHex","allow3Char","hex","pad2","toString","charAt","join","rgbaToHex","allow4Char","convertDecimalToHex","rgbaToArgbHex","desaturate","amount","hsl","toHsl","clamp01","saturate","greyscale","lighten","brighten","toRgb","darken","spin","hue","complement","polyad","number","isNaN","Error","result","step","push","splitcomplement","analogous","results","slices","part","ret","monochromatic","hsv","toHsv","modification","prototype","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","pow","setAlpha","value","toHsvString","toHslString","toHex","toHexString","toHex8","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","clone","_applyModification","fn","args","apply","concat","slice","call","arguments","_applyCombination","triad","tetrad","fromRatio","newColor","equals","color1","color2","random","mix","rgb1","rgb2","readability","c1","c2","isReadable","wcag2","wcag2Parms","out","validateWCAG2Parms","level","size","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","length","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","flip","o","flipped","parseFloat","n","isOnePointZero","processPercent","isPercentage","parseInt","abs","val","parseIntFromHex","indexOf","c","convertHexToDecimal","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","matchers","RegExp","rgba","hsla","hsva","hex3","hex6","hex4","hex8","exec","replace","toLowerCase","match","named","parms","toUpperCase","factory"],"mappings":";+EAEiEA,EAAOC,QAG/D,WAAe,aAKtB,MAAMC,EAAW,OACXC,EAAY,OAElB,SAASC,EAAUC,EAAOC,GAKxB,GAHAA,EAAOA,GAAQ,CAAC,GADhBD,EAAQA,GAAgB,cAIHD,EACnB,OAAOC,EAGT,KAAME,gBAAgBH,GACpB,OAAO,IAAIA,EAAUC,EAAOC,GAG9B,IAAIE,EAAMC,EAAWJ,GACpBE,KAAKG,eAAiBL,EACpBE,KAAKI,GAAKH,EAAII,EACdL,KAAKM,GAAKL,EAAIM,EACdP,KAAKQ,GAAKP,EAAIQ,EACdT,KAAKU,GAAKT,EAAIU,EACdX,KAAKY,QAAUC,KAAKC,MAAM,IAAMd,KAAKU,IAAM,IAC3CV,KAAKe,QAAUhB,EAAKiB,QAAUf,EAAIe,OACrChB,KAAKiB,cAAgBlB,EAAKmB,aAMtBlB,KAAKI,GAAK,IAAGJ,KAAKI,GAAKS,KAAKC,MAAMd,KAAKI,KACvCJ,KAAKM,GAAK,IAAGN,KAAKM,GAAKO,KAAKC,MAAMd,KAAKM,KACvCN,KAAKQ,GAAK,IAAGR,KAAKQ,GAAKK,KAAKC,MAAMd,KAAKQ,KAE3CR,KAAKmB,IAAMlB,EAAImB,EACjB,CAgUA,SAASlB,EAAWJ,GAClB,IAAIG,EAAM,CAAEI,EAAG,EAAGE,EAAG,EAAGE,EAAG,GACvBE,EAAI,EACJU,EAAI,KACJC,EAAI,KACJC,EAAI,KACJH,GAAK,EACLJ,GAAS,EA4Cb,MA1CoB,iBAATlB,IACTA,EAAQ0B,EAAoB1B,IAGV,iBAATA,IAEP2B,EAAe3B,EAAMO,IACrBoB,EAAe3B,EAAMS,IACrBkB,EAAe3B,EAAMW,IAErBR,EAAMyB,EAAS5B,EAAMO,EAAGP,EAAMS,EAAGT,EAAMW,GACvCW,GAAK,EACLJ,EAAwC,MAA/BW,OAAO7B,EAAMO,GAAGuB,QAAQ,GAAa,OAAS,OAEvDH,EAAe3B,EAAM+B,IACrBJ,EAAe3B,EAAMuB,IACrBI,EAAe3B,EAAMwB,IAErBD,EAAIS,EAAoBhC,EAAMuB,GAC9BC,EAAIQ,EAAoBhC,EAAMwB,GAC9BrB,EAAM8B,EAASjC,EAAM+B,EAAGR,EAAGC,GAC3BF,GAAK,EACLJ,EAAS,OAETS,EAAe3B,EAAM+B,IACrBJ,EAAe3B,EAAMuB,IACrBI,EAAe3B,EAAMyB,KAErBF,EAAIS,EAAoBhC,EAAMuB,GAC9BE,EAAIO,EAAoBhC,EAAMyB,GAC9BtB,EAAM+B,EAASlC,EAAM+B,EAAGR,EAAGE,GAC3BH,GAAK,EACLJ,EAAS,OAGPlB,EAAMmC,eAAe,OACvBtB,EAAIb,EAAMa,IAIdA,EAAIuB,EAAWvB,GAER,CACLS,GAAIA,EACJJ,OAAQlB,EAAMkB,QAAUA,EACxBX,EAAGQ,KAAKsB,IAAI,IAAKtB,KAAKuB,IAAInC,EAAII,EAAG,IACjCE,EAAGM,KAAKsB,IAAI,IAAKtB,KAAKuB,IAAInC,EAAIM,EAAG,IACjCE,EAAGI,KAAKsB,IAAI,IAAKtB,KAAKuB,IAAInC,EAAIQ,EAAG,IACjCE,EAAGA,EAEP,CAaA,SAASe,EAASrB,EAAGE,EAAGE,GACtB,MAAO,CACLJ,EAAqB,IAAlBgC,EAAQhC,EAAG,KACdE,EAAqB,IAAlB8B,EAAQ9B,EAAG,KACdE,EAAqB,IAAlB4B,EAAQ5B,EAAG,KAElB,CAMA,SAAS6B,EAASjC,EAAGE,EAAGE,GACtBJ,EAAIgC,EAAQhC,EAAG,KACfE,EAAI8B,EAAQ9B,EAAG,KACfE,EAAI4B,EAAQ5B,EAAG,KAEf,IAEIoB,EACFR,EAHEe,EAAMvB,KAAKuB,IAAI/B,EAAGE,EAAGE,GACvB0B,EAAMtB,KAAKsB,IAAI9B,EAAGE,EAAGE,GAGrBc,GAAKa,EAAMD,GAAO,EAEpB,GAAIC,GAAOD,EACTN,EAAIR,EAAI,MACH,CACL,IAAIkB,EAAIH,EAAMD,EAEd,OADAd,EAAIE,EAAI,GAAMgB,GAAK,EAAIH,EAAMD,GAAOI,GAAKH,EAAMD,GACvCC,GACN,KAAK/B,EACHwB,GAAKtB,EAAIE,GAAK8B,GAAKhC,EAAIE,EAAI,EAAI,GAC/B,MACF,KAAKF,EACHsB,GAAKpB,EAAIJ,GAAKkC,EAAI,EAClB,MACF,KAAK9B,EACHoB,GAAKxB,EAAIE,GAAKgC,EAAI,EAItBV,GAAK,CACP,CAEA,MAAO,CAAEA,EAAGA,EAAGR,EAAGA,EAAGE,EAAGA,EAC1B,CAMA,SAASS,EAASH,EAAGR,EAAGE,GACtB,IAAIlB,EAAGE,EAAGE,EAMV,SAAS+B,EAAQC,EAAGC,EAAGC,GAGrB,OAFIA,EAAI,IAAGA,GAAK,GACZA,EAAI,IAAGA,GAAK,GACZA,EAAI,EAAI,EAAUF,EAAc,GAATC,EAAID,GAASE,EACpCA,EAAI,GAAcD,EAClBC,EAAI,EAAI,EAAUF,GAAKC,EAAID,IAAM,EAAI,EAAIE,GAAK,EAC3CF,CACT,CAEA,GAbAZ,EAAIQ,EAAQR,EAAG,KACfR,EAAIgB,EAAQhB,EAAG,KACfE,EAAIc,EAAQd,EAAG,KAWL,IAANF,EACFhB,EAAIE,EAAIE,EAAIc,MACP,CACL,IAAImB,EAAInB,EAAI,GAAMA,GAAK,EAAIF,GAAKE,EAAIF,EAAIE,EAAIF,EACxCoB,EAAI,EAAIlB,EAAImB,EAChBrC,EAAImC,EAAQC,EAAGC,EAAGb,EAAI,EAAI,GAC1BtB,EAAIiC,EAAQC,EAAGC,EAAGb,GAClBpB,EAAI+B,EAAQC,EAAGC,EAAGb,EAAI,EAAI,EAC5B,CAEA,MAAO,CAAExB,EAAO,IAAJA,EAASE,EAAO,IAAJA,EAASE,EAAO,IAAJA,EACtC,CAMA,SAASmC,EAASvC,EAAGE,EAAGE,GACtBJ,EAAIgC,EAAQhC,EAAG,KACfE,EAAI8B,EAAQ9B,EAAG,KACfE,EAAI4B,EAAQ5B,EAAG,KAEf,IAEIoB,EACFR,EAHEe,EAAMvB,KAAKuB,IAAI/B,EAAGE,EAAGE,GACvB0B,EAAMtB,KAAKsB,IAAI9B,EAAGE,EAAGE,GAGrBa,EAAIc,EAEFG,EAAIH,EAAMD,EAGd,GAFAd,EAAY,IAARe,EAAY,EAAIG,EAAIH,EAEpBA,GAAOD,EACTN,EAAI,MACC,CACL,OAAQO,GACN,KAAK/B,EACHwB,GAAKtB,EAAIE,GAAK8B,GAAKhC,EAAIE,EAAI,EAAI,GAC/B,MACF,KAAKF,EACHsB,GAAKpB,EAAIJ,GAAKkC,EAAI,EAClB,MACF,KAAK9B,EACHoB,GAAKxB,EAAIE,GAAKgC,EAAI,EAGtBV,GAAK,CACP,CACA,MAAO,CAAEA,EAAGA,EAAGR,EAAGA,EAAGC,EAAGA,EAC1B,CAMA,SAASS,EAASF,EAAGR,EAAGC,GACtBO,EAAsB,EAAlBQ,EAAQR,EAAG,KACfR,EAAIgB,EAAQhB,EAAG,KACfC,EAAIe,EAAQf,EAAG,KAEf,IAAIuB,EAAIhC,KAAKiC,MAAMjB,GACjBkB,EAAIlB,EAAIgB,EACRJ,EAAInB,GAAK,EAAID,GACbqB,EAAIpB,GAAK,EAAIyB,EAAI1B,GACjBsB,EAAIrB,GAAK,GAAK,EAAIyB,GAAK1B,GACvB2B,EAAMH,EAAI,EAKZ,MAAO,CAAExC,EAAO,IAJV,CAACiB,EAAGoB,EAAGD,EAAGA,EAAGE,EAAGrB,GAAG0B,GAIJzC,EAAO,IAHtB,CAACoC,EAAGrB,EAAGA,EAAGoB,EAAGD,EAAGA,GAAGO,GAGQvC,EAAO,IAFlC,CAACgC,EAAGA,EAAGE,EAAGrB,EAAGA,EAAGoB,GAAGM,GAG3B,CAMA,SAASC,EAAS5C,EAAGE,EAAGE,EAAGyC,GACzB,IAAIC,EAAM,CACRC,EAAKvC,KAAKC,MAAMT,GAAGgD,SAAS,KAC5BD,EAAKvC,KAAKC,MAAMP,GAAG8C,SAAS,KAC5BD,EAAKvC,KAAKC,MAAML,GAAG4C,SAAS,MAI9B,OACEH,GACAC,EAAI,GAAGG,OAAO,IAAMH,EAAI,GAAGG,OAAO,IAClCH,EAAI,GAAGG,OAAO,IAAMH,EAAI,GAAGG,OAAO,IAClCH,EAAI,GAAGG,OAAO,IAAMH,EAAI,GAAGG,OAAO,GAE3BH,EAAI,GAAGG,OAAO,GAAKH,EAAI,GAAGG,OAAO,GAAKH,EAAI,GAAGG,OAAO,GAGtDH,EAAII,KAAK,GAClB,CAMA,SAASC,EAAUnD,EAAGE,EAAGE,EAAGE,EAAG8C,GAC7B,IAAIN,EAAM,CACRC,EAAKvC,KAAKC,MAAMT,GAAGgD,SAAS,KAC5BD,EAAKvC,KAAKC,MAAMP,GAAG8C,SAAS,KAC5BD,EAAKvC,KAAKC,MAAML,GAAG4C,SAAS,KAC5BD,EAAKM,EAAoB/C,KAI3B,OACE8C,GACAN,EAAI,GAAGG,OAAO,IAAMH,EAAI,GAAGG,OAAO,IAClCH,EAAI,GAAGG,OAAO,IAAMH,EAAI,GAAGG,OAAO,IAClCH,EAAI,GAAGG,OAAO,IAAMH,EAAI,GAAGG,OAAO,IAClCH,EAAI,GAAGG,OAAO,IAAMH,EAAI,GAAGG,OAAO,GAGhCH,EAAI,GAAGG,OAAO,GAAKH,EAAI,GAAGG,OAAO,GAAKH,EAAI,GAAGG,OAAO,GAAKH,EAAI,GAAGG,OAAO,GAIpEH,EAAII,KAAK,GAClB,CAKA,SAASI,EAActD,EAAGE,EAAGE,EAAGE,GAQ9B,MAPU,CACRyC,EAAKM,EAAoB/C,IACzByC,EAAKvC,KAAKC,MAAMT,GAAGgD,SAAS,KAC5BD,EAAKvC,KAAKC,MAAMP,GAAG8C,SAAS,KAC5BD,EAAKvC,KAAKC,MAAML,GAAG4C,SAAS,MAGnBE,KAAK,GAClB,CAsBA,SAASK,EAAW9D,EAAO+D,GACzBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIC,EAAMjE,EAAUC,GAAOiE,QAG3B,OAFAD,EAAIzC,GAAKwC,EAAS,IAClBC,EAAIzC,EAAI2C,EAAQF,EAAIzC,GACbxB,EAAUiE,EACnB,CAEA,SAASG,EAASnE,EAAO+D,GACvBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIC,EAAMjE,EAAUC,GAAOiE,QAG3B,OAFAD,EAAIzC,GAAKwC,EAAS,IAClBC,EAAIzC,EAAI2C,EAAQF,EAAIzC,GACbxB,EAAUiE,EACnB,CAEA,SAASI,EAAUpE,GACjB,OAAOD,EAAUC,GAAO8D,WAAW,IACrC,CAEA,SAASO,EAAQrE,EAAO+D,GACtBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIC,EAAMjE,EAAUC,GAAOiE,QAG3B,OAFAD,EAAIvC,GAAKsC,EAAS,IAClBC,EAAIvC,EAAIyC,EAAQF,EAAIvC,GACb1B,EAAUiE,EACnB,CAEA,SAASM,EAAStE,EAAO+D,GACvBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAI5D,EAAMJ,EAAUC,GAAOuE,QAI3B,OAHApE,EAAII,EAAIQ,KAAKuB,IAAI,EAAGvB,KAAKsB,IAAI,IAAKlC,EAAII,EAAIQ,KAAKC,OAAc+C,EAAS,IAAjB,OACrD5D,EAAIM,EAAIM,KAAKuB,IAAI,EAAGvB,KAAKsB,IAAI,IAAKlC,EAAIM,EAAIM,KAAKC,OAAc+C,EAAS,IAAjB,OACrD5D,EAAIQ,EAAII,KAAKuB,IAAI,EAAGvB,KAAKsB,IAAI,IAAKlC,EAAIQ,EAAII,KAAKC,OAAc+C,EAAS,IAAjB,OAC9ChE,EAAUI,EACnB,CAEA,SAASqE,EAAOxE,EAAO+D,GACrBA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GACtC,IAAIC,EAAMjE,EAAUC,GAAOiE,QAG3B,OAFAD,EAAIvC,GAAKsC,EAAS,IAClBC,EAAIvC,EAAIyC,EAAQF,EAAIvC,GACb1B,EAAUiE,EACnB,CAIA,SAASS,EAAKzE,EAAO+D,GACnB,IAAIC,EAAMjE,EAAUC,GAAOiE,QACvBS,GAAOV,EAAIjC,EAAIgC,GAAU,IAE7B,OADAC,EAAIjC,EAAI2C,EAAM,EAAI,IAAMA,EAAMA,EACvB3E,EAAUiE,EACnB,CAOA,SAASW,EAAW3E,GAClB,IAAIgE,EAAMjE,EAAUC,GAAOiE,QAE3B,OADAD,EAAIjC,GAAKiC,EAAIjC,EAAI,KAAO,IACjBhC,EAAUiE,EACnB,CAEA,SAASY,EAAO5E,EAAO6E,GACrB,GAAIC,MAAMD,IAAWA,GAAU,EAC7B,MAAM,IAAIE,MAAM,gDAKlB,IAHA,IAAIf,EAAMjE,EAAUC,GAAOiE,QACvBe,EAAS,CAACjF,EAAUC,IACpBiF,EAAO,IAAMJ,EACR9B,EAAI,EAAGA,EAAI8B,EAAQ9B,IAC1BiC,EAAOE,KAAKnF,EAAU,CAAEgC,GAAIiC,EAAIjC,EAAIgB,EAAIkC,GAAQ,IAAK1D,EAAGyC,EAAIzC,EAAGE,EAAGuC,EAAIvC,KAGxE,OAAOuD,CACT,CAEA,SAASG,EAAgBnF,GACvB,IAAIgE,EAAMjE,EAAUC,GAAOiE,QACvBlC,EAAIiC,EAAIjC,EACZ,MAAO,CACLhC,EAAUC,GACVD,EAAU,CAAEgC,GAAIA,EAAI,IAAM,IAAKR,EAAGyC,EAAIzC,EAAGE,EAAGuC,EAAIvC,IAChD1B,EAAU,CAAEgC,GAAIA,EAAI,KAAO,IAAKR,EAAGyC,EAAIzC,EAAGE,EAAGuC,EAAIvC,IAErD,CAEA,SAAS2D,EAAUpF,EAAOqF,EAASC,GACjCD,EAAUA,GAAW,EACrBC,EAASA,GAAU,GAEnB,IAAItB,EAAMjE,EAAUC,GAAOiE,QACvBsB,EAAO,IAAMD,EACbE,EAAM,CAACzF,EAAUC,IAErB,IAAKgE,EAAIjC,GAAKiC,EAAIjC,GAAMwD,EAAOF,GAAY,GAAK,KAAO,MAAOA,GAC5DrB,EAAIjC,GAAKiC,EAAIjC,EAAIwD,GAAQ,IACzBC,EAAIN,KAAKnF,EAAUiE,IAErB,OAAOwB,CACT,CAEA,SAASC,EAAczF,EAAOqF,GAC5BA,EAAUA,GAAW,EAQrB,IAPA,IAAIK,EAAM3F,EAAUC,GAAO2F,QACvB5D,EAAI2D,EAAI3D,EACVR,EAAImE,EAAInE,EACRC,EAAIkE,EAAIlE,EACNgE,EAAM,GACNI,EAAe,EAAIP,EAEhBA,KACLG,EAAIN,KAAKnF,EAAU,CAAEgC,EAAGA,EAAGR,EAAGA,EAAGC,EAAGA,KACpCA,GAAKA,EAAIoE,GAAgB,EAG3B,OAAOJ,CACT,CA7tBAzF,EAAU8F,UAAY,CACpBC,OAAQ,WACN,OAAO5F,KAAK6F,gBAAkB,GAChC,EACAC,QAAS,WACP,OAAQ9F,KAAK4F,QACf,EACAG,QAAS,WACP,OAAO/F,KAAKmB,GACd,EACA6E,iBAAkB,WAChB,OAAOhG,KAAKG,cACd,EACA8F,UAAW,WACT,OAAOjG,KAAKe,OACd,EACAmF,SAAU,WACR,OAAOlG,KAAKU,EACd,EACAmF,cAAe,WAEb,IAAI5F,EAAMD,KAAKqE,QACf,OAAgB,IAARpE,EAAII,EAAkB,IAARJ,EAAIM,EAAkB,IAARN,EAAIQ,GAAW,GACrD,EACA0F,aAAc,WAEZ,IACIC,EAAOC,EAAOC,EADdrG,EAAMD,KAAKqE,QAYf,OAVA+B,EAAQnG,EAAII,EAAI,IAChBgG,EAAQpG,EAAIM,EAAI,IAChB+F,EAAQrG,EAAIQ,EAAI,IAQT,OANH2F,GAAS,OAAaA,EAAQ,MACzBvF,KAAK0F,KAAKH,EAAQ,MAAS,MAAO,MAKvB,OAJhBC,GAAS,OAAaA,EAAQ,MACzBxF,KAAK0F,KAAKF,EAAQ,MAAS,MAAO,MAGV,OAF7BC,GAAS,OAAaA,EAAQ,MACzBzF,KAAK0F,KAAKD,EAAQ,MAAS,MAAO,KAE7C,EACAE,SAAU,SAAUC,GAGlB,OAFAzG,KAAKU,GAAKwB,EAAWuE,GACrBzG,KAAKY,QAAUC,KAAKC,MAAM,IAAMd,KAAKU,IAAM,IACpCV,IACT,EACAyF,MAAO,WACL,IAAID,EAAM5C,EAAS5C,KAAKI,GAAIJ,KAAKM,GAAIN,KAAKQ,IAC1C,MAAO,CAAEqB,EAAW,IAAR2D,EAAI3D,EAASR,EAAGmE,EAAInE,EAAGC,EAAGkE,EAAIlE,EAAGX,EAAGX,KAAKU,GACvD,EACAgG,YAAa,WACX,IAAIlB,EAAM5C,EAAS5C,KAAKI,GAAIJ,KAAKM,GAAIN,KAAKQ,IACtCqB,EAAIhB,KAAKC,MAAc,IAAR0E,EAAI3D,GACrBR,EAAIR,KAAKC,MAAc,IAAR0E,EAAInE,GACnBC,EAAIT,KAAKC,MAAc,IAAR0E,EAAIlE,GACrB,OAAkB,GAAXtB,KAAKU,GACR,OAASmB,EAAI,KAAOR,EAAI,MAAQC,EAAI,KACpC,QAAUO,EAAI,KAAOR,EAAI,MAAQC,EAAI,MAAQtB,KAAKY,QAAU,GAClE,EACAmD,MAAO,WACL,IAAID,EAAMxB,EAAStC,KAAKI,GAAIJ,KAAKM,GAAIN,KAAKQ,IAC1C,MAAO,CAAEqB,EAAW,IAARiC,EAAIjC,EAASR,EAAGyC,EAAIzC,EAAGE,EAAGuC,EAAIvC,EAAGZ,EAAGX,KAAKU,GACvD,EACAiG,YAAa,WACX,IAAI7C,EAAMxB,EAAStC,KAAKI,GAAIJ,KAAKM,GAAIN,KAAKQ,IACtCqB,EAAIhB,KAAKC,MAAc,IAARgD,EAAIjC,GACrBR,EAAIR,KAAKC,MAAc,IAARgD,EAAIzC,GACnBE,EAAIV,KAAKC,MAAc,IAARgD,EAAIvC,GACrB,OAAkB,GAAXvB,KAAKU,GACR,OAASmB,EAAI,KAAOR,EAAI,MAAQE,EAAI,KACpC,QAAUM,EAAI,KAAOR,EAAI,MAAQE,EAAI,MAAQvB,KAAKY,QAAU,GAClE,EACAgG,MAAO,SAAU1D,GACf,OAAOD,EAASjD,KAAKI,GAAIJ,KAAKM,GAAIN,KAAKQ,GAAI0C,EAC7C,EACA2D,YAAa,SAAU3D,GACrB,MAAO,IAAMlD,KAAK4G,MAAM1D,EAC1B,EACA4D,OAAQ,SAAUrD,GAChB,OAAOD,EAAUxD,KAAKI,GAAIJ,KAAKM,GAAIN,KAAKQ,GAAIR,KAAKU,GAAI+C,EACvD,EACAsD,aAAc,SAAUtD,GACtB,MAAO,IAAMzD,KAAK8G,OAAOrD,EAC3B,EACAY,MAAO,WACL,MAAO,CACLhE,EAAGQ,KAAKC,MAAMd,KAAKI,IACnBG,EAAGM,KAAKC,MAAMd,KAAKM,IACnBG,EAAGI,KAAKC,MAAMd,KAAKQ,IACnBG,EAAGX,KAAKU,GAEZ,EACAsG,YAAa,WACX,OAAkB,GAAXhH,KAAKU,GACR,OACEG,KAAKC,MAAMd,KAAKI,IAChB,KACAS,KAAKC,MAAMd,KAAKM,IAChB,KACAO,KAAKC,MAAMd,KAAKQ,IAChB,IACF,QACEK,KAAKC,MAAMd,KAAKI,IAChB,KACAS,KAAKC,MAAMd,KAAKM,IAChB,KACAO,KAAKC,MAAMd,KAAKQ,IAChB,KACAR,KAAKY,QACL,GACR,EACAqG,gBAAiB,WACf,MAAO,CACL5G,EAAGQ,KAAKC,MAA8B,IAAxBuB,EAAQrC,KAAKI,GAAI,MAAc,IAC7CG,EAAGM,KAAKC,MAA8B,IAAxBuB,EAAQrC,KAAKM,GAAI,MAAc,IAC7CG,EAAGI,KAAKC,MAA8B,IAAxBuB,EAAQrC,KAAKQ,GAAI,MAAc,IAC7CG,EAAGX,KAAKU,GAEZ,EACAwG,sBAAuB,WACrB,OAAkB,GAAXlH,KAAKU,GACR,OACEG,KAAKC,MAA8B,IAAxBuB,EAAQrC,KAAKI,GAAI,MAC5B,MACAS,KAAKC,MAA8B,IAAxBuB,EAAQrC,KAAKM,GAAI,MAC5B,MACAO,KAAKC,MAA8B,IAAxBuB,EAAQrC,KAAKQ,GAAI,MAC5B,KACF,QACEK,KAAKC,MAA8B,IAAxBuB,EAAQrC,KAAKI,GAAI,MAC5B,MACAS,KAAKC,MAA8B,IAAxBuB,EAAQrC,KAAKM,GAAI,MAC5B,MACAO,KAAKC,MAA8B,IAAxBuB,EAAQrC,KAAKQ,GAAI,MAC5B,MACAR,KAAKY,QACL,GACR,EACAuG,OAAQ,WACN,OAAgB,IAAZnH,KAAKU,GACA,gBAGLV,KAAKU,GAAK,KAIP0G,EAASnE,EAASjD,KAAKI,GAAIJ,KAAKM,GAAIN,KAAKQ,IAAI,MAAU,EAChE,EACA6G,SAAU,SAAUC,GAClB,IAAIC,EAAa,IAAM5D,EAAc3D,KAAKI,GAAIJ,KAAKM,GAAIN,KAAKQ,GAAIR,KAAKU,IACjE8G,EAAmBD,EACnBrG,EAAelB,KAAKiB,cAAgB,qBAAuB,GAE/D,GAAIqG,EAAa,CACf,IAAIjG,EAAIxB,EAAUyH,GAClBE,EAAmB,IAAM7D,EAActC,EAAEjB,GAAIiB,EAAEf,GAAIe,EAAEb,GAAIa,EAAEX,GAC7D,CAEA,MACE,8CACAQ,EACA,iBACAqG,EACA,gBACAC,EACA,GAEJ,EACAnE,SAAU,SAAUrC,GAClB,IAAIyG,IAAczG,EAClBA,EAASA,GAAUhB,KAAKe,QAExB,IAAI2G,GAAkB,EAClBC,EAAW3H,KAAKU,GAAK,GAAKV,KAAKU,IAAM,EAWzC,OATG+G,IACDE,GACY,QAAX3G,GACY,SAAXA,GACW,SAAXA,GACW,SAAXA,GACW,SAAXA,GACW,SAAXA,GAUW,QAAXA,IACF0G,EAAkB1H,KAAKgH,eAEV,SAAXhG,IACF0G,EAAkB1H,KAAKkH,yBAEV,QAAXlG,GAA+B,SAAXA,IACtB0G,EAAkB1H,KAAK6G,eAEV,SAAX7F,IACF0G,EAAkB1H,KAAK6G,aAAY,IAEtB,SAAX7F,IACF0G,EAAkB1H,KAAK+G,cAAa,IAEvB,SAAX/F,IACF0G,EAAkB1H,KAAK+G,gBAEV,SAAX/F,IACF0G,EAAkB1H,KAAKmH,UAEV,QAAXnG,IACF0G,EAAkB1H,KAAK2G,eAEV,QAAX3F,IACF0G,EAAkB1H,KAAK0G,eAGlBgB,GAAmB1H,KAAK6G,eAjCd,SAAX7F,GAAiC,IAAZhB,KAAKU,GACrBV,KAAKmH,SAEPnH,KAAKgH,aA+BhB,EACAY,MAAO,WACL,OAAO/H,EAAUG,KAAKqD,WACxB,EAEAwE,mBAAoB,SAAUC,EAAIC,GAChC,IAAIjI,EAAQgI,EAAGE,MAAM,KAAM,CAAChI,MAAMiI,OAAO,GAAGC,MAAMC,KAAKJ,KAKvD,OAJA/H,KAAKI,GAAKN,EAAMM,GAChBJ,KAAKM,GAAKR,EAAMQ,GAChBN,KAAKQ,GAAKV,EAAMU,GAChBR,KAAKwG,SAAS1G,EAAMY,IACbV,IACT,EACAmE,QAAS,WACP,OAAOnE,KAAK6H,mBAAmB1D,EAASiE,UAC1C,EACAhE,SAAU,WACR,OAAOpE,KAAK6H,mBAAmBzD,EAAUgE,UAC3C,EACA9D,OAAQ,WACN,OAAOtE,KAAK6H,mBAAmBvD,EAAQ8D,UACzC,EACAxE,WAAY,WACV,OAAO5D,KAAK6H,mBAAmBjE,EAAYwE,UAC7C,EACAnE,SAAU,WACR,OAAOjE,KAAK6H,mBAAmB5D,EAAUmE,UAC3C,EACAlE,UAAW,WACT,OAAOlE,KAAK6H,mBAAmB3D,EAAWkE,UAC5C,EACA7D,KAAM,WACJ,OAAOvE,KAAK6H,mBAAmBtD,EAAM6D,UACvC,EAEAC,kBAAmB,SAAUP,EAAIC,GAC/B,OAAOD,EAAGE,MAAM,KAAM,CAAChI,MAAMiI,OAAO,GAAGC,MAAMC,KAAKJ,IACpD,EACA7C,UAAW,WACT,OAAOlF,KAAKqI,kBAAkBnD,EAAWkD,UAC3C,EACA3D,WAAY,WACV,OAAOzE,KAAKqI,kBAAkB5D,EAAY2D,UAC5C,EACA7C,cAAe,WACb,OAAOvF,KAAKqI,kBAAkB9C,EAAe6C,UAC/C,EACAnD,gBAAiB,WACf,OAAOjF,KAAKqI,kBAAkBpD,EAAiBmD,UACjD,EAKAE,MAAO,WACL,OAAOtI,KAAKqI,kBAAkB3D,EAAQ,CAAC,GACzC,EACA6D,OAAQ,WACN,OAAOvI,KAAKqI,kBAAkB3D,EAAQ,CAAC,GACzC,GAKF7E,EAAU2I,UAAY,SAAU1I,EAAOC,GACrC,GAAoB,iBAATD,EAAmB,CAC5B,IAAI2I,EAAW,CAAC,EAChB,IAAK,IAAI5F,KAAK/C,EACRA,EAAMmC,eAAeY,KAErB4F,EAAS5F,GADD,MAANA,EACY/C,EAAM+C,GAENf,EAAoBhC,EAAM+C,KAI9C/C,EAAQ2I,CACV,CAEA,OAAO5I,EAAUC,EAAOC,EAC1B,EAuSAF,EAAU6I,OAAS,SAAUC,EAAQC,GACnC,SAAKD,IAAWC,IACT/I,EAAU8I,GAAQ3B,eAAiBnH,EAAU+I,GAAQ5B,aAC9D,EAEAnH,EAAUgJ,OAAS,WACjB,OAAOhJ,EAAU2I,UAAU,CACzBnI,EAAGQ,KAAKgI,SACRtI,EAAGM,KAAKgI,SACRpI,EAAGI,KAAKgI,UAEZ,EAmIAhJ,EAAUiJ,IAAM,SAAUH,EAAQC,EAAQ/E,GACxCA,EAAoB,IAAXA,EAAe,EAAIA,GAAU,GAEtC,IAAIkF,EAAOlJ,EAAU8I,GAAQtE,QACzB2E,EAAOnJ,EAAU+I,GAAQvE,QAEzB5B,EAAIoB,EAAS,IASjB,OAAOhE,EAPI,CACTQ,GAAI2I,EAAK3I,EAAI0I,EAAK1I,GAAKoC,EAAIsG,EAAK1I,EAChCE,GAAIyI,EAAKzI,EAAIwI,EAAKxI,GAAKkC,EAAIsG,EAAKxI,EAChCE,GAAIuI,EAAKvI,EAAIsI,EAAKtI,GAAKgC,EAAIsG,EAAKtI,EAChCE,GAAIqI,EAAKrI,EAAIoI,EAAKpI,GAAK8B,EAAIsG,EAAKpI,GAIpC,EAQAd,EAAUoJ,YAAc,SAAUN,EAAQC,GACxC,IAAIM,EAAKrJ,EAAU8I,GACfQ,EAAKtJ,EAAU+I,GACnB,OACG/H,KAAKuB,IAAI8G,EAAG/C,eAAgBgD,EAAGhD,gBAAkB,MACjDtF,KAAKsB,IAAI+G,EAAG/C,eAAgBgD,EAAGhD,gBAAkB,IAEtD,EAYAtG,EAAUuJ,WAAa,SAAUT,EAAQC,EAAQS,GAC/C,IACIC,EAAYC,EADZN,EAAcpJ,EAAUoJ,YAAYN,EAAQC,GAMhD,OAHAW,GAAM,GAEND,EAAaE,EAAmBH,IACbI,MAAQH,EAAWI,MACpC,IAAK,UACL,IAAK,WACHH,EAAMN,GAAe,IACrB,MACF,IAAK,UACHM,EAAMN,GAAe,EACrB,MACF,IAAK,WACHM,EAAMN,GAAe,EAGzB,OAAOM,CACT,EAWA1J,EAAU8J,aAAe,SAAUC,EAAWC,EAAW9B,GACvD,IAEIkB,EACAa,EAAuBL,EAAOC,EAH9BK,EAAY,KACZC,EAAY,EAIhBF,GADA/B,EAAOA,GAAQ,CAAC,GACa+B,sBAC7BL,EAAQ1B,EAAK0B,MACbC,EAAO3B,EAAK2B,KAEZ,IAAK,IAAI7G,EAAI,EAAGA,EAAIgH,EAAUI,OAAQpH,KACpCoG,EAAcpJ,EAAUoJ,YAAYW,EAAWC,EAAUhH,KACvCmH,IAChBA,EAAYf,EACZc,EAAYlK,EAAUgK,EAAUhH,KAIpC,OACEhD,EAAUuJ,WAAWQ,EAAWG,EAAW,CACzCN,MAAOA,EACPC,KAAMA,MAEPI,EAEMC,GAEPhC,EAAK+B,uBAAwB,EACtBjK,EAAU8J,aAAaC,EAAW,CAAC,OAAQ,QAAS7B,GAE/D,EAKA,IAAImC,EAASrK,EAAUqK,MAAQ,CAC7BC,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,SACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,MACPC,eAAgB,SAChBC,KAAM,MACNC,WAAY,SACZC,MAAO,SACPC,UAAW,SACXC,YAAa,SACbC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,SAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,SACVC,SAAU,SACVC,cAAe,SACfC,SAAU,SACVC,UAAW,SACXC,SAAU,SACVC,UAAW,SACXC,YAAa,SACbC,eAAgB,SAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,SACTC,WAAY,SACZC,aAAc,SACdC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,SAAU,SACVC,YAAa,SACbC,QAAS,SACTC,QAAS,SACTC,WAAY,SACZC,UAAW,SACXC,YAAa,SACbC,YAAa,SACbC,QAAS,MACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,SACNC,MAAO,SACPC,YAAa,SACbC,KAAM,SACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,SACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,SACfC,aAAc,SACdC,eAAgB,MAChBC,eAAgB,MAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,SACXC,MAAO,SACPC,QAAS,MACTC,OAAQ,SACRC,iBAAkB,SAClBC,WAAY,SACZC,aAAc,SACdC,aAAc,SACdC,eAAgB,SAChBC,gBAAiB,SACjBC,kBAAmB,SACnBC,gBAAiB,SACjBC,gBAAiB,SACjBC,aAAc,SACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,UAAW,SACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,SACRC,cAAe,SACfC,IAAK,MACLC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,UAAW,SACXC,UAAW,SACXC,KAAM,SACNC,YAAa,SACbC,UAAW,SACXC,IAAK,SACLC,KAAM,SACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,MACPC,WAAY,SACZC,OAAQ,MACRC,YAAa,UAIXnM,EAAYvH,EAAUuH,SAAWoM,EAAKtJ,GAM1C,SAASsJ,EAAKC,GACZ,IAAIC,EAAU,CAAC,EACf,IAAK,IAAI7Q,KAAK4Q,EACRA,EAAExR,eAAeY,KACnB6Q,EAAQD,EAAE5Q,IAAMA,GAGpB,OAAO6Q,CACT,CAGA,SAASxR,EAAWvB,GAOlB,OANAA,EAAIgT,WAAWhT,IAEXiE,MAAMjE,IAAMA,EAAI,GAAKA,EAAI,KAC3BA,EAAI,GAGCA,CACT,CAGA,SAAS0B,EAAQuR,EAAGxR,GACdyR,EAAeD,KAAIA,EAAI,QAE3B,IAAIE,EAAiBC,EAAaH,GASlC,OARAA,EAAI/S,KAAKsB,IAAIC,EAAKvB,KAAKuB,IAAI,EAAGuR,WAAWC,KAGrCE,IACFF,EAAII,SAASJ,EAAIxR,EAAK,IAAM,KAI1BvB,KAAKoT,IAAIL,EAAIxR,GAAO,KACf,EAIDwR,EAAIxR,EAAOuR,WAAWvR,EAChC,CAGA,SAAS4B,EAAQkQ,GACf,OAAOrT,KAAKsB,IAAI,EAAGtB,KAAKuB,IAAI,EAAG8R,GACjC,CAGA,SAASC,EAAgBD,GACvB,OAAOF,SAASE,EAAK,GACvB,CAIA,SAASL,EAAeD,GACtB,MAAmB,iBAALA,IAAoC,GAAnBA,EAAEQ,QAAQ,MAAgC,IAAlBT,WAAWC,EACpE,CAGA,SAASG,EAAaH,GACpB,MAAoB,iBAANA,IAAqC,GAAnBA,EAAEQ,QAAQ,IAC5C,CAGA,SAAShR,EAAKiR,GACZ,OAAmB,GAAZA,EAAEpK,OAAc,IAAMoK,EAAI,GAAKA,CACxC,CAGA,SAASvS,EAAoB8R,GAK3B,OAJIA,GAAK,IACPA,EAAQ,IAAJA,EAAU,KAGTA,CACT,CAGA,SAASlQ,EAAoBnB,GAC3B,OAAO1B,KAAKC,MAAsB,IAAhB6S,WAAWpR,IAAUc,SAAS,GAClD,CAEA,SAASiR,EAAoBzS,GAC3B,OAAOsS,EAAgBtS,GAAK,GAC9B,CAEA,IAQM0S,EAKAC,EAQAC,EArBFC,GAaEF,EACF,eANED,EAAW,8CAQb,aACAA,EACA,aACAA,EACA,YACEE,EACF,cACAF,EACA,aACAA,EACA,aACAA,EACA,aACAA,EACA,YAEK,CACLA,SAAU,IAAII,OAAOJ,GACrBtU,IAAK,IAAI0U,OAAO,MAAQH,GACxBI,KAAM,IAAID,OAAO,OAASF,GAC1B3Q,IAAK,IAAI6Q,OAAO,MAAQH,GACxBK,KAAM,IAAIF,OAAO,OAASF,GAC1BjP,IAAK,IAAImP,OAAO,MAAQH,GACxBM,KAAM,IAAIH,OAAO,OAASF,GAC1BM,KAAM,uDACNC,KAAM,uDACNC,KAAM,uEACNC,KAAM,yEAOV,SAASzT,EAAe3B,GACtB,QAAS4U,EAASH,SAASY,KAAKrV,EAClC,CAKA,SAAS0B,EAAoB1B,GAC3BA,EAAQA,EAAMsV,QAAQzV,EAAU,IAAIyV,QAAQxV,EAAW,IAAIyV,cAC3D,IAYIC,EAZAC,GAAQ,EACZ,GAAIrL,EAAMpK,GACRA,EAAQoK,EAAMpK,GACdyV,GAAQ,OACH,GAAa,eAATzV,EACT,MAAO,CAAEO,EAAG,EAAGE,EAAG,EAAGE,EAAG,EAAGE,EAAG,EAAGK,OAAQ,QAQ3C,OAAKsU,EAAQZ,EAASzU,IAAIkV,KAAKrV,IACtB,CAAEO,EAAGiV,EAAM,GAAI/U,EAAG+U,EAAM,GAAI7U,EAAG6U,EAAM,KAEzCA,EAAQZ,EAASE,KAAKO,KAAKrV,IACvB,CAAEO,EAAGiV,EAAM,GAAI/U,EAAG+U,EAAM,GAAI7U,EAAG6U,EAAM,GAAI3U,EAAG2U,EAAM,KAEtDA,EAAQZ,EAAS5Q,IAAIqR,KAAKrV,IACtB,CAAE+B,EAAGyT,EAAM,GAAIjU,EAAGiU,EAAM,GAAI/T,EAAG+T,EAAM,KAEzCA,EAAQZ,EAASG,KAAKM,KAAKrV,IACvB,CAAE+B,EAAGyT,EAAM,GAAIjU,EAAGiU,EAAM,GAAI/T,EAAG+T,EAAM,GAAI3U,EAAG2U,EAAM,KAEtDA,EAAQZ,EAASlP,IAAI2P,KAAKrV,IACtB,CAAE+B,EAAGyT,EAAM,GAAIjU,EAAGiU,EAAM,GAAIhU,EAAGgU,EAAM,KAEzCA,EAAQZ,EAASI,KAAKK,KAAKrV,IACvB,CAAE+B,EAAGyT,EAAM,GAAIjU,EAAGiU,EAAM,GAAIhU,EAAGgU,EAAM,GAAI3U,EAAG2U,EAAM,KAEtDA,EAAQZ,EAASQ,KAAKC,KAAKrV,IACvB,CACLO,EAAG8T,EAAgBmB,EAAM,IACzB/U,EAAG4T,EAAgBmB,EAAM,IACzB7U,EAAG0T,EAAgBmB,EAAM,IACzB3U,EAAG2T,EAAoBgB,EAAM,IAC7BtU,OAAQuU,EAAQ,OAAS,SAGxBD,EAAQZ,EAASM,KAAKG,KAAKrV,IACvB,CACLO,EAAG8T,EAAgBmB,EAAM,IACzB/U,EAAG4T,EAAgBmB,EAAM,IACzB7U,EAAG0T,EAAgBmB,EAAM,IACzBtU,OAAQuU,EAAQ,OAAS,QAGxBD,EAAQZ,EAASO,KAAKE,KAAKrV,IACvB,CACLO,EAAG8T,EAAgBmB,EAAM,GAAK,GAAKA,EAAM,IACzC/U,EAAG4T,EAAgBmB,EAAM,GAAK,GAAKA,EAAM,IACzC7U,EAAG0T,EAAgBmB,EAAM,GAAK,GAAKA,EAAM,IACzC3U,EAAG2T,EAAoBgB,EAAM,GAAK,GAAKA,EAAM,IAC7CtU,OAAQuU,EAAQ,OAAS,WAGxBD,EAAQZ,EAASK,KAAKI,KAAKrV,KACvB,CACLO,EAAG8T,EAAgBmB,EAAM,GAAK,GAAKA,EAAM,IACzC/U,EAAG4T,EAAgBmB,EAAM,GAAK,GAAKA,EAAM,IACzC7U,EAAG0T,EAAgBmB,EAAM,GAAK,GAAKA,EAAM,IACzCtU,OAAQuU,EAAQ,OAAS,MAK/B,CAEA,SAAS/L,EAAmBgM,GAG1B,IAAI/L,EAAOC,EAUX,MANc,QAFdD,IADA+L,EAAQA,GAAS,CAAE/L,MAAO,KAAMC,KAAM,UACvBD,OAAS,MAAMgM,gBAEE,QAAVhM,IACpBA,EAAQ,MAEG,WAJbC,GAAQ8L,EAAM9L,MAAQ,SAAS2L,gBAIE,UAAT3L,IACtBA,EAAO,SAEF,CAAED,MAAOA,EAAOC,KAAMA,EAC/B,CAEA,OAAO7J,CAER,CAnwCiF6V,E","file":"46.bundle.min.js?2.22.11.78cb48d1.1676942939545","sourcesContent":["// This file is autogenerated. It's used to publish CJS to npm.\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.tinycolor = factory());\n})(this, (function () { 'use strict';\n\n // https://github.com/bgrins/TinyColor\n // Brian Grinstead, MIT License\n\n const trimLeft = /^\\s+/;\n const trimRight = /\\s+$/;\n\n function tinycolor(color, opts) {\n color = color ? color : \"\";\n opts = opts || {};\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n (this._originalInput = color),\n (this._r = rgb.r),\n (this._g = rgb.g),\n (this._b = rgb.b),\n (this._a = rgb.a),\n (this._roundA = Math.round(100 * this._a) / 100),\n (this._format = opts.format || rgb.format);\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) this._r = Math.round(this._r);\n if (this._g < 1) this._g = Math.round(this._g);\n if (this._b < 1) this._b = Math.round(this._b);\n\n this._ok = rgb.ok;\n }\n\n tinycolor.prototype = {\n isDark: function () {\n return this.getBrightness() < 128;\n },\n isLight: function () {\n return !this.isDark();\n },\n isValid: function () {\n return this._ok;\n },\n getOriginalInput: function () {\n return this._originalInput;\n },\n getFormat: function () {\n return this._format;\n },\n getAlpha: function () {\n return this._a;\n },\n getBrightness: function () {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function () {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r / 255;\n GsRGB = rgb.g / 255;\n BsRGB = rgb.b / 255;\n\n if (RsRGB <= 0.03928) R = RsRGB / 12.92;\n else R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n if (GsRGB <= 0.03928) G = GsRGB / 12.92;\n else G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n if (BsRGB <= 0.03928) B = BsRGB / 12.92;\n else B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n },\n setAlpha: function (value) {\n this._a = boundAlpha(value);\n this._roundA = Math.round(100 * this._a) / 100;\n return this;\n },\n toHsv: function () {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function () {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = Math.round(hsv.h * 360),\n s = Math.round(hsv.s * 100),\n v = Math.round(hsv.v * 100);\n return this._a == 1\n ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\"\n : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function () {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function () {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = Math.round(hsl.h * 360),\n s = Math.round(hsl.s * 100),\n l = Math.round(hsl.l * 100);\n return this._a == 1\n ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\"\n : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function (allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function (allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function (allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function (allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function () {\n return {\n r: Math.round(this._r),\n g: Math.round(this._g),\n b: Math.round(this._b),\n a: this._a,\n };\n },\n toRgbString: function () {\n return this._a == 1\n ? \"rgb(\" +\n Math.round(this._r) +\n \", \" +\n Math.round(this._g) +\n \", \" +\n Math.round(this._b) +\n \")\"\n : \"rgba(\" +\n Math.round(this._r) +\n \", \" +\n Math.round(this._g) +\n \", \" +\n Math.round(this._b) +\n \", \" +\n this._roundA +\n \")\";\n },\n toPercentageRgb: function () {\n return {\n r: Math.round(bound01(this._r, 255) * 100) + \"%\",\n g: Math.round(bound01(this._g, 255) * 100) + \"%\",\n b: Math.round(bound01(this._b, 255) * 100) + \"%\",\n a: this._a,\n };\n },\n toPercentageRgbString: function () {\n return this._a == 1\n ? \"rgb(\" +\n Math.round(bound01(this._r, 255) * 100) +\n \"%, \" +\n Math.round(bound01(this._g, 255) * 100) +\n \"%, \" +\n Math.round(bound01(this._b, 255) * 100) +\n \"%)\"\n : \"rgba(\" +\n Math.round(bound01(this._r, 255) * 100) +\n \"%, \" +\n Math.round(bound01(this._g, 255) * 100) +\n \"%, \" +\n Math.round(bound01(this._b, 255) * 100) +\n \"%, \" +\n this._roundA +\n \")\";\n },\n toName: function () {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function (secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return (\n \"progid:DXImageTransform.Microsoft.gradient(\" +\n gradientType +\n \"startColorstr=\" +\n hex8String +\n \",endColorstr=\" +\n secondHex8String +\n \")\"\n );\n },\n toString: function (format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat =\n !formatSet &&\n hasAlpha &&\n (format === \"hex\" ||\n format === \"hex6\" ||\n format === \"hex3\" ||\n format === \"hex4\" ||\n format === \"hex8\" ||\n format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function () {\n return tinycolor(this.toString());\n },\n\n _applyModification: function (fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function () {\n return this._applyModification(lighten, arguments);\n },\n brighten: function () {\n return this._applyModification(brighten, arguments);\n },\n darken: function () {\n return this._applyModification(darken, arguments);\n },\n desaturate: function () {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function () {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function () {\n return this._applyModification(greyscale, arguments);\n },\n spin: function () {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function (fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function () {\n return this._applyCombination(analogous, arguments);\n },\n complement: function () {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function () {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function () {\n return this._applyCombination(splitcomplement, arguments);\n },\n // Disabled until https://github.com/bgrins/TinyColor/issues/254\n // polyad: function (number) {\n // return this._applyCombination(polyad, [number]);\n // },\n triad: function () {\n return this._applyCombination(polyad, [3]);\n },\n tetrad: function () {\n return this._applyCombination(polyad, [4]);\n },\n };\n\n // If input is an object, force 1 into \"1.0\" to handle ratios properly\n // String input requires \"1.0\" as input, so 1 will be treated as 1\n tinycolor.fromRatio = function (color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n } else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n };\n\n // Given a string or object, convert that input to RGB\n // Possible string inputs:\n //\n // \"red\"\n // \"#f00\" or \"f00\"\n // \"#ff0000\" or \"ff0000\"\n // \"#ff000000\" or \"ff000000\"\n // \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n // \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n // \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n // \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n // \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n // \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n // \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n //\n function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (\n isValidCSSUnit(color.r) &&\n isValidCSSUnit(color.g) &&\n isValidCSSUnit(color.b)\n ) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (\n isValidCSSUnit(color.h) &&\n isValidCSSUnit(color.s) &&\n isValidCSSUnit(color.v)\n ) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (\n isValidCSSUnit(color.h) &&\n isValidCSSUnit(color.s) &&\n isValidCSSUnit(color.l)\n ) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n }\n\n // Conversion Functions\n // --------------------\n\n // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n // \n\n // `rgbToRgb`\n // Handle bounds / percentage checking to conform to CSS color spec\n // \n // *Assumes:* r, g, b in [0, 255] or [0, 1]\n // *Returns:* { r, g, b } in [0, 255]\n function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n }\n\n // `rgbToHsl`\n // Converts an RGB color value to HSL.\n // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n // *Returns:* { h, s, l } in [0,1]\n function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n l = (max + min) / 2;\n\n if (max == min) {\n h = s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n }\n\n // `hslToRgb`\n // Converts an HSL color value to RGB.\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n // *Returns:* { r, g, b } in the set [0, 255]\n function hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n }\n\n // `rgbToHsv`\n // Converts an RGB color value to HSV\n // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n // *Returns:* { h, s, v } in [0,1]\n function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n var h,\n s,\n v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if (max == min) {\n h = 0; // achromatic\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n }\n\n // `hsvToRgb`\n // Converts an HSV color value to RGB.\n // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n // *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n }\n\n // `rgbToHex`\n // Converts an RGB color to hex\n // Assumes r, g, and b are contained in the set [0, 255]\n // Returns a 3 or 6 character hex\n function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n\n // Return a 3 character hex if possible\n if (\n allow3Char &&\n hex[0].charAt(0) == hex[0].charAt(1) &&\n hex[1].charAt(0) == hex[1].charAt(1) &&\n hex[2].charAt(0) == hex[2].charAt(1)\n ) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n }\n\n // `rgbaToHex`\n // Converts an RGBA color plus alpha transparency to hex\n // Assumes r, g, b are contained in the set [0, 255] and\n // a in [0, 1]. Returns a 4 or 8 character rgba hex\n function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n\n // Return a 4 character hex if possible\n if (\n allow4Char &&\n hex[0].charAt(0) == hex[0].charAt(1) &&\n hex[1].charAt(0) == hex[1].charAt(1) &&\n hex[2].charAt(0) == hex[2].charAt(1) &&\n hex[3].charAt(0) == hex[3].charAt(1)\n ) {\n return (\n hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0)\n );\n }\n\n return hex.join(\"\");\n }\n\n // `rgbaToArgbHex`\n // Converts an RGBA color to an ARGB Hex8 string\n // Rarely used, but required for \"toFilter()\"\n function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n\n return hex.join(\"\");\n }\n\n // `equals`\n // Can be called with any tinycolor input\n tinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) return false;\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n };\n\n tinycolor.random = function () {\n return tinycolor.fromRatio({\n r: Math.random(),\n g: Math.random(),\n b: Math.random(),\n });\n };\n\n // Modification Functions\n // ----------------------\n // Thanks to less.js for some of the basics here\n // \n\n function desaturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n\n function saturate(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n }\n\n function greyscale(color) {\n return tinycolor(color).desaturate(100);\n }\n\n function lighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n\n function brighten(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb = tinycolor(color).toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return tinycolor(rgb);\n }\n\n function darken(color, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n }\n\n // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n // Values outside of this range will be wrapped into this range.\n function spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n }\n\n // Combination Functions\n // ---------------------\n // Thanks to jQuery xColor for some of the ideas behind these\n // \n\n function complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n }\n\n function polyad(color, number) {\n if (isNaN(number) || number <= 0) {\n throw new Error(\"Argument to polyad must be a positive number\");\n }\n var hsl = tinycolor(color).toHsl();\n var result = [tinycolor(color)];\n var step = 360 / number;\n for (var i = 1; i < number; i++) {\n result.push(tinycolor({ h: (hsl.h + i * step) % 360, s: hsl.s, l: hsl.l }));\n }\n\n return result;\n }\n\n function splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n }\n\n function analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n }\n\n function monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h,\n s = hsv.s,\n v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n\n return ret;\n }\n\n // Utility Functions\n // ---------------------\n\n tinycolor.mix = function (color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n\n return tinycolor(rgba);\n };\n\n // Readability Functions\n // ---------------------\n // false\n // tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\n tinycolor.isReadable = function (color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n };\n\n // `mostReadable`\n // Given a base color and a list of possible foreground or background\n // colors for that base, returns the most readable color.\n // Optionally returns Black or White if the most readable color is unreadable.\n // *Example*\n // tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n // tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n // tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n // tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\n tinycolor.mostReadable = function (baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (\n tinycolor.isReadable(baseColor, bestColor, {\n level: level,\n size: size,\n }) ||\n !includeFallbackColors\n ) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n };\n\n // Big List of Colors\n // ------------------\n // \n var names = (tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\",\n });\n\n // Make it easy to access colors via `hexNames[hex]`\n var hexNames = (tinycolor.hexNames = flip(names));\n\n // Utilities\n // ---------\n\n // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\n function flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n }\n\n // Return a valid alpha value [0,1] with all invalid values being set to 1\n function boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n }\n\n // Take input from [0, n] and return it as [0, 1]\n function bound01(n, max) {\n if (isOnePointZero(n)) n = \"100%\";\n\n var processPercent = isPercentage(n);\n n = Math.min(max, Math.max(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n }\n\n // Force a number between 0 and 1\n function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n }\n\n // Parse a base-16 hex value into a base-10 integer\n function parseIntFromHex(val) {\n return parseInt(val, 16);\n }\n\n // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n // \n function isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n }\n\n // Check to see if string passed in is a percentage\n function isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n }\n\n // Force a hex value to have 2 characters\n function pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n }\n\n // Replace a decimal with it's percentage value\n function convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n\n return n;\n }\n\n // Converts a decimal to a hex value\n function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n }\n // Converts a hex value to a decimal\n function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n }\n\n var matchers = (function () {\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 =\n \"[\\\\s|\\\\(]+(\" +\n CSS_UNIT +\n \")[,|\\\\s]+(\" +\n CSS_UNIT +\n \")[,|\\\\s]+(\" +\n CSS_UNIT +\n \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 =\n \"[\\\\s|\\\\(]+(\" +\n CSS_UNIT +\n \")[,|\\\\s]+(\" +\n CSS_UNIT +\n \")[,|\\\\s]+(\" +\n CSS_UNIT +\n \")[,|\\\\s]+(\" +\n CSS_UNIT +\n \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n };\n })();\n\n // `isValidCSSUnit`\n // Take in a single string / number and check to see if it looks like a CSS unit\n // (see `matchers` above for definition).\n function isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n }\n\n // `stringInputToObject`\n // Permissive string parsing. Take in a number of formats, and output an object\n // based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n function stringInputToObject(color) {\n color = color.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n } else if (color == \"transparent\") {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\",\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\",\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named ? \"name\" : \"hex8\",\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named ? \"name\" : \"hex\",\n };\n }\n\n return false;\n }\n\n function validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || { level: \"AA\", size: \"small\" };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return { level: level, size: size };\n }\n\n return tinycolor;\n\n}));\n"],"sourceRoot":""}