inferred-types 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["string","createConstant$4","createConstant$3","createConstant$2","createConstant$1","createConstant","wide","entry","LOWER_ALPHA_CHARS","UPPER_ALPHA_CHARS","ALPHA_CHARS","AMAZON_BOOKS","SAFE_STRING","NON_BREAKING_SPACE","BRANDED","WHITESPACE_CHARS","COMMA","COMPARISON_OPERATIONS","MONTH_NAME","MONTH_ABBR","MONTH_NAME_LOOKUP","MONTH_ABBREV_LOOKUP","MONTH_TO_SEASON_LOOKUP","DATE_TYPE","ISO_DATE_30","ISO_DATE_31","DOUBLE_LEAP_MODERN","FALSY_VALUES","US_STATE_LOOKUP_STRICT","US_STATE_LOOKUP_PROVINCES","US_STATE_LOOKUP","HASH_TABLE_ALPHA_LOWER","HASH_TABLE_SPECIAL","HASH_TABLE_ALPHA_UPPER","HASH_TABLE_CHAR","HTML_BLOCK_TAGS","HTML_ATOMIC_TAGS","ISO3166_1","MARKED","DISTANCE_METRICS_LOOKUP","MASS_METRICS_LOOKUP","SPEED_METRICS_LOOKUP","ACCELERATION_METRICS_LOOKUP","VOLUME_METRICS_LOOKUP","TEMPERATURE_METRICS_LOOKUP","PRESSURE_METRICS_LOOKUP","ENERGY_METRICS_LOOKUP","TIME_METRICS_LOOKUP","POWER_METRICS_LOOKUP","FREQUENCY_METRICS_LOOKUP","VOLTAGE_METRICS_LOOKUP","CURRENT_METRICS_LOOKUP","RESISTANCE_METRICS_LOOKUP","LUMINOSITY_METRICS_LOOKUP","AREA_METRICS_LOOKUP","BRACKET_NESTING","QUOTE_NESTING","NETWORK_PROTOCOL_INSECURE","NETWORK_PROTOCOL_SECURE","NETWORK_PROTOCOL","NETWORK_PROTOCOL_LOOKUP","PROTOCOL_DEFAULT_PORTS","Never","US_NEWS","UK_NEWS","GERMAN_NEWS","FRENCH_NEWS","CANADIAN_NEWS","DUTCH_NEWS","ITALIAN_NEWS","BELGIUM_NEWS","MEXICAN_NEWS","SPANISH_NEWS","INDIAN_NEWS","CHINESE_NEWS","DANISH_NEWS","SWISS_NEWS","AUSTRALIAN_NEWS","JAPANESE_NEWS","SOUTH_KOREAN_NEWS","TURKISH_NEWS","NORWEGIAN_NEWS","NO_DEFAULT_VALUE","NOT_APPLICABLE","NOT_DEFINED","NUMERIC_CHAR","PHONE_COUNTRY_CODES","PLURAL_EXCEPTIONS","REPO_SOURCES","REPO_SOURCE_LOOKUP","AMAZON_DNS","WALMART_DNS","APPLE_DNS","HOME_DEPOT_DNS","EBAY_DNS","TARGET_DNS","ETSY_DNS","COSTCO_DNS","BEST_BUY_DNS","WAYFAIR_DNS","NIKE_DNS","MACYS_DNS","DELL_DNS","HM_DNS","ZARA_DNS","KROGER_DNS","WALGREENS_DNS","CVS_DNS","WHOLE_FOODS_DNS","SAFE_ENCODING__QUOTES","SAFE_ENCODING__WHITESPACE","SAFE_ENCODING__BRACKETS","SAFE_ENCODING_KEYS","SHAPE_PREFIXES","SIMPLE_SCALAR_TOKENS","SIMPLE_OPT_SCALAR_TOKENS","SIMPLE_UNION_TOKENS","SIMPLE_MAP_KEYS","SIMPLE_MAP_VALUES","SIMPLE_DICT_TOKENS","SIMPLE_ARRAY_TOKENS","SIMPLE_MAP_TOKENS","SIMPLE_SET_TOKENS","SIMPLE_CONTAINER_TOKENS","SIMPLE_TOKENS","SINGULAR_NOUN_ENDINGS","SOCIAL_MEDIA","TW_HUE_NEUTRAL","TW_HUE_VIBRANT","TW_HUE_STATIC","TW_HUE","TW_LUMINOSITY","TW_LUMIN_50","TW_LUMIN_100","TW_LUMIN_200","TW_LUMIN_300","TW_LUMIN_400","TW_LUMIN_500","TW_LUMIN_600","TW_LUMIN_700","TW_LUMIN_800","TW_LUMIN_900","TW_LUMIN_950","TW_CHROMA","TW_CHROMA_50","TW_CHROMA_100","TW_CHROMA_200","TW_CHROMA_300","TW_CHROMA_400","TW_CHROMA_500","TW_CHROMA_600","TW_CHROMA_700","TW_CHROMA_800","TW_CHROMA_900","TW_CHROMA_950","TW_COLOR_TARGETS","TW_MODIFIERS_CORE","TW_MODIFIERS_ORDER","TW_MODIFIERS_RELN","TW_MODIFIERS_SIZING","TW_MODIFIERS","IANA_TIMEZONES__AFRICA","IANA_TIMEZONES__AMERICA","IANA_TIMEZONES__ANTARCTICA","IANA_TIMEZONES__ASIA","IANA_TIMEZONES__ATLANTIC","IANA_TIMEZONES__AUSTRALIA","IANA_TIMEZONES__EUROPE","IANA_TIMEZONES__INDIAN","IANA_TIMEZONES__PACIFIC","IANA_TIMEZONES__OTHER","IANA_TIMEZONES","WideAssignment","TYPE_COMPARISONS","FALSY_TYPE_KINDS","LITERAL_TYPE_KINDS","WIDE_TYPE_KINDS","NARROW_CONTAINER_TYPE_KINDS","WIDE_CONTAINER_TYPE_KINDS","TYPE_KINDS","TT_ATOMICS","TT_SINGLETONS","TT_SETS","TT_FUNCTIONS","TT_CONTAINERS","TT_KIND_VARIANTS","wide$1","s"],"sources":["../../constants/dist/index.js","../../runtime/dist/index.js","../../types/dist/index.js"],"sourcesContent":["//#region src/Alpha.ts\n/**\n* An array of all the lower-cased alphabetic characters\n*/\nconst LOWER_ALPHA_CHARS = [\n\t\"a\",\n\t\"b\",\n\t\"c\",\n\t\"d\",\n\t\"e\",\n\t\"f\",\n\t\"g\",\n\t\"h\",\n\t\"i\",\n\t\"j\",\n\t\"k\",\n\t\"l\",\n\t\"m\",\n\t\"n\",\n\t\"o\",\n\t\"p\",\n\t\"q\",\n\t\"r\",\n\t\"s\",\n\t\"t\",\n\t\"u\",\n\t\"v\",\n\t\"w\",\n\t\"x\",\n\t\"y\",\n\t\"z\"\n];\n/**\n* An array of all the upper-cased alphabetic characters\n*/\nconst UPPER_ALPHA_CHARS = [\n\t\"A\",\n\t\"B\",\n\t\"C\",\n\t\"D\",\n\t\"E\",\n\t\"F\",\n\t\"G\",\n\t\"H\",\n\t\"I\",\n\t\"J\",\n\t\"K\",\n\t\"L\",\n\t\"M\",\n\t\"N\",\n\t\"O\",\n\t\"P\",\n\t\"Q\",\n\t\"R\",\n\t\"S\",\n\t\"T\",\n\t\"U\",\n\t\"V\",\n\t\"W\",\n\t\"X\",\n\t\"Y\",\n\t\"Z\"\n];\n/**\n* An array of all alphabetic characters (upper and lower)\n*/\nconst ALPHA_CHARS = [...LOWER_ALPHA_CHARS, ...UPPER_ALPHA_CHARS];\n\n//#endregion\n//#region src/Books.ts\nconst string = `{{ string }}`;\nconst AMAZON_BOOKS = [\n\t`https://www.amazon.com/${string}storeType=ebooks${string}`,\n\t`https://www.amazon.com/${string}ref=tmm_hrd_swatch${string}`,\n\t`https://www.amazon.com/${string}ref=tmm_pap_swatch${string}`,\n\t`https://www.amazon.com/${string}ref=tmm_aud_swatch${string}`,\n\t`https://www.amazon.com/books-used-books-textbooks/${string}`\n];\n\n//#endregion\n//#region src/Brands.ts\nconst SAFE_STRING = Symbol(\"SafeString\");\nconst NON_BREAKING_SPACE = Symbol(\"Non-Breaking Space\");\nconst BRANDED = Symbol(\"Branded\");\n\n//#endregion\n//#region src/Characters.ts\nconst WHITESPACE_CHARS = [\n\t\" \",\n\t\"\\n\",\n\t\"\t\",\n\t\"\\b\"\n];\n\n//#endregion\n//#region src/colors.ts\nconst CSS_NAMED_COLORS = [\n\t\"aliceblue\",\n\t\"antiquewhite\",\n\t\"aqua\",\n\t\"aquamarine\",\n\t\"azure\",\n\t\"beige\",\n\t\"bisque\",\n\t\"black\",\n\t\"blanchedalmond\",\n\t\"blue\",\n\t\"blueviolet\",\n\t\"brown\",\n\t\"burlywood\",\n\t\"cadetblue\",\n\t\"chartreuse\",\n\t\"chocolate\",\n\t\"coral\",\n\t\"cornflowerblue\",\n\t\"cornsilk\",\n\t\"crimson\",\n\t\"cyan\",\n\t\"darkblue\",\n\t\"darkcyan\",\n\t\"darkgoldenrod\",\n\t\"darkgray\",\n\t\"darkgreen\",\n\t\"darkgrey\",\n\t\"darkkhaki\",\n\t\"darkmagenta\",\n\t\"darkolivegreen\",\n\t\"darkorange\",\n\t\"darkorchid\",\n\t\"darkred\",\n\t\"darksalmon\",\n\t\"darkseagreen\",\n\t\"darkslateblue\",\n\t\"darkslategray\",\n\t\"darkslategrey\",\n\t\"darkturquoise\",\n\t\"darkviolet\",\n\t\"deeppink\",\n\t\"deepskyblue\",\n\t\"dimgray\",\n\t\"dimgrey\",\n\t\"dodgerblue\",\n\t\"firebrick\",\n\t\"floralwhite\",\n\t\"forestgreen\",\n\t\"fuchsia\",\n\t\"gainsboro\",\n\t\"ghostwhite\",\n\t\"gold\",\n\t\"goldenrod\",\n\t\"gray\",\n\t\"green\",\n\t\"greenyellow\",\n\t\"grey\",\n\t\"honeydew\",\n\t\"hotpink\",\n\t\"indianred\",\n\t\"indigo\",\n\t\"ivory\",\n\t\"khaki\",\n\t\"lavender\",\n\t\"lavenderblush\",\n\t\"lawngreen\",\n\t\"lemonchiffon\",\n\t\"lightblue\",\n\t\"lightcoral\",\n\t\"lightcyan\",\n\t\"lightgoldenrodyellow\",\n\t\"lightgray\",\n\t\"lightgreen\",\n\t\"lightgrey\",\n\t\"lightpink\",\n\t\"lightsalmon\",\n\t\"lightseagreen\",\n\t\"lightskyblue\",\n\t\"lightslategray\",\n\t\"lightslategrey\",\n\t\"lightsteelblue\",\n\t\"lightyellow\",\n\t\"lime\",\n\t\"limegreen\",\n\t\"linen\",\n\t\"magenta\",\n\t\"maroon\",\n\t\"mediumaquamarine\",\n\t\"mediumblue\",\n\t\"mediumorchid\",\n\t\"mediumpurple\",\n\t\"mediumseagreen\",\n\t\"mediumslateblue\",\n\t\"mediumspringgreen\",\n\t\"mediumturquoise\",\n\t\"mediumvioletred\",\n\t\"midnightblue\",\n\t\"mintcream\",\n\t\"mistyrose\",\n\t\"moccasin\",\n\t\"navajowhite\",\n\t\"navy\",\n\t\"oldlace\",\n\t\"olive\",\n\t\"olivedrab\",\n\t\"orange\",\n\t\"orangered\",\n\t\"orchid\",\n\t\"palegoldenrod\",\n\t\"palegreen\",\n\t\"paleturquoise\",\n\t\"palevioletred\",\n\t\"papayawhip\",\n\t\"peachpuff\",\n\t\"peru\",\n\t\"pink\",\n\t\"plum\",\n\t\"powderblue\",\n\t\"purple\",\n\t\"rebeccapurple\",\n\t\"red\",\n\t\"rosybrown\",\n\t\"royalblue\",\n\t\"saddlebrown\",\n\t\"salmon\",\n\t\"sandybrown\",\n\t\"seagreen\",\n\t\"seashell\",\n\t\"sienna\",\n\t\"silver\",\n\t\"skyblue\",\n\t\"slateblue\",\n\t\"slategray\",\n\t\"slategrey\",\n\t\"snow\",\n\t\"springgreen\",\n\t\"steelblue\",\n\t\"tan\",\n\t\"teal\",\n\t\"thistle\",\n\t\"tomato\",\n\t\"turquoise\",\n\t\"violet\",\n\t\"wheat\",\n\t\"white\",\n\t\"whitesmoke\",\n\t\"yellow\",\n\t\"yellowgreen\"\n];\n\n//#endregion\n//#region src/Comma.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant$4(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n/**\n* **COMMA**\n*\n* A constant used for serializing a comma in cases\n* where a comma has special meaning (for instance\n* CSV data where a raw comma is considered a\n* separator)\n*/\nconst COMMA = createConstant$4(\"comma\");\n\n//#endregion\n//#region src/CommonObjProps.ts\nconst COMMON_OBJ_PROPS = [\n\t\"id\",\n\t\"type\",\n\t\"kind\",\n\t\"_type\",\n\t\"_kind\",\n\t\"key\",\n\t\"value\",\n\t\"name\"\n];\n\n//#endregion\n//#region src/Comparisons.ts\nconst COMPARISON_OPERATIONS = [\n\t\"extends\",\n\t\"startsWith\",\n\t\"endsWith\",\n\t\"endsWithNumber\",\n\t\"startsWithNumber\",\n\t\"onlyNumbers\",\n\t\"alphaNumeric\",\n\t\"onlyLetters\",\n\t\"contains\",\n\t\"containsSome\",\n\t\"containsAll\",\n\t\"greaterThan\",\n\t\"greaterThanOrEqual\",\n\t\"lessThan\",\n\t\"lessThanOrEqual\",\n\t\"objectKeyGreaterThan\",\n\t\"objectKeyGreaterThanOrEqual\",\n\t\"objectKeyLessThan\",\n\t\"objectKeyLessThanOrEqual\",\n\t\"objectKeyEquals\",\n\t\"objectKeyExtends\",\n\t\"betweenInclusively\",\n\t\"betweenExclusively\",\n\t\"equals\",\n\t\"equalsSome\",\n\t\"errors\",\n\t\"errorsOfType\",\n\t\"before\",\n\t\"after\",\n\t\"sameDay\",\n\t\"sameMonth\",\n\t\"sameMonthYear\",\n\t\"sameYear\",\n\t\"truthy\",\n\t\"falsy\",\n\t\"true\",\n\t\"false\",\n\t\"returnEquals\",\n\t\"returnExtends\",\n\t\"isTemplateLiteral\",\n\t\"hasLength\"\n];\n\n//#endregion\n//#region src/Consonants.ts\nconst CONSONANTS = [\n\t\"b\",\n\t\"c\",\n\t\"d\",\n\t\"f\",\n\t\"g\",\n\t\"h\",\n\t\"j\",\n\t\"k\",\n\t\"l\",\n\t\"m\",\n\t\"n\",\n\t\"p\",\n\t\"q\",\n\t\"r\",\n\t\"s\",\n\t\"t\",\n\t\"v\",\n\t\"w\",\n\t\"x\",\n\t\"z\",\n\t\"y\"\n];\n\n//#endregion\n//#region src/DateTime.ts\n/**\n* **MONTH_NAME**\n*\n* Full month names.\n*/\nconst MONTH_NAME = [\n\t\"January\",\n\t\"February\",\n\t\"March\",\n\t\"April\",\n\t\"May\",\n\t\"June\",\n\t\"July\",\n\t\"August\",\n\t\"September\",\n\t\"October\",\n\t\"November\",\n\t\"December\"\n];\n/**\n* **MONTH_ABBR**\n*\n* Abbreviated month names.\n*/\nconst MONTH_ABBR = [\n\t\"Jan\",\n\t\"Feb\",\n\t\"Mar\",\n\t\"Apr\",\n\t\"May\",\n\t\"Jun\",\n\t\"Jul\",\n\t\"Aug\",\n\t\"Sep\",\n\t\"Oct\",\n\t\"Nov\",\n\t\"Dec\"\n];\nconst MONTH_NAME_LOOKUP = {\n\t\"January\": {\n\t\tabbrev: \"Jan\",\n\t\tnum: 1,\n\t\ttwoDigitStr: \"01\"\n\t},\n\t\"February\": {\n\t\tabbrev: \"Feb\",\n\t\tnum: 2,\n\t\ttwoDigitStr: \"02\"\n\t},\n\t\"March\": {\n\t\tabbrev: \"Mar\",\n\t\tnum: 3,\n\t\ttwoDigitStr: \"03\"\n\t},\n\t\"April\": {\n\t\tabbrev: \"Apr\",\n\t\tnum: 4,\n\t\ttwoDigitStr: \"04\"\n\t},\n\t\"May\": {\n\t\tabbrev: \"May\",\n\t\tnum: 5,\n\t\ttwoDigitStr: \"05\"\n\t},\n\t\"June\": {\n\t\tabbrev: \"Jun\",\n\t\tnum: 6,\n\t\ttwoDigitStr: \"06\"\n\t},\n\t\"July\": {\n\t\tabbrev: \"Jul\",\n\t\tnum: 7,\n\t\ttwoDigitStr: \"07\"\n\t},\n\t\"August\": {\n\t\tabbrev: \"Aug\",\n\t\tnum: 8,\n\t\ttwoDigitStr: \"08\"\n\t},\n\t\"September\": {\n\t\tabbrev: \"Sep\",\n\t\tnum: 9,\n\t\ttwoDigitStr: \"09\"\n\t},\n\t\"October\": {\n\t\tabbrev: \"Oct\",\n\t\tnum: 10,\n\t\ttwoDigitStr: \"10\"\n\t},\n\t\"November\": {\n\t\tabbrev: \"Nov\",\n\t\tnum: 11,\n\t\ttwoDigitStr: \"11\"\n\t},\n\t\"December\": {\n\t\tabbrev: \"Dec\",\n\t\tnum: 12,\n\t\ttwoDigitStr: \"12\"\n\t}\n};\nconst MONTH_ABBREV_LOOKUP = {\n\t\"Jan\": {\n\t\tname: \"January\",\n\t\tnum: 1,\n\t\ttwoDigitStr: \"01\"\n\t},\n\t\"Feb\": {\n\t\tname: \"February\",\n\t\tnum: 2,\n\t\ttwoDigitStr: \"02\"\n\t},\n\t\"Mar\": {\n\t\tname: \"March\",\n\t\tnum: 3,\n\t\ttwoDigitStr: \"03\"\n\t},\n\t\"Apr\": {\n\t\tname: \"April\",\n\t\tnum: 4,\n\t\ttwoDigitStr: \"04\"\n\t},\n\t\"May\": {\n\t\tname: \"May\",\n\t\tnum: 5,\n\t\ttwoDigitStr: \"05\"\n\t},\n\t\"Jun\": {\n\t\tname: \"June\",\n\t\tnum: 6,\n\t\ttwoDigitStr: \"06\"\n\t},\n\t\"Jul\": {\n\t\tname: \"July\",\n\t\tnum: 7,\n\t\ttwoDigitStr: \"07\"\n\t},\n\t\"Aug\": {\n\t\tname: \"August\",\n\t\tnum: 8,\n\t\ttwoDigitStr: \"08\"\n\t},\n\t\"Sep\": {\n\t\tname: \"September\",\n\t\tnum: 9,\n\t\ttwoDigitStr: \"09\"\n\t},\n\t\"Oct\": {\n\t\tname: \"October\",\n\t\tnum: 10,\n\t\ttwoDigitStr: \"10\"\n\t},\n\t\"Nov\": {\n\t\tname: \"November\",\n\t\tnum: 11,\n\t\ttwoDigitStr: \"11\"\n\t},\n\t\"Dec\": {\n\t\tname: \"December\",\n\t\tnum: 12,\n\t\ttwoDigitStr: \"12\"\n\t}\n};\n/** the seasons in a year */\nconst SEASONS = [\n\t\"Summer\",\n\t\"Spring\",\n\t\"Fall\",\n\t\"Winter\"\n];\n/**\n* Maps each season to the months which represent that season (by\n* hemisphere).\n*/\nconst SEASON_TO_MONTH_LOOKUP = {\n\tWinter: {\n\t\tnorthern: [\n\t\t\t\"Dec\",\n\t\t\t\"Jan\",\n\t\t\t\"Feb\"\n\t\t],\n\t\tsouthern: [\n\t\t\t\"Jun\",\n\t\t\t\"Jul\",\n\t\t\t\"Aug\"\n\t\t]\n\t},\n\tSpring: {\n\t\tnorthern: [\n\t\t\t\"Mar\",\n\t\t\t\"Apr\",\n\t\t\t\"May\"\n\t\t],\n\t\tsouthern: [\n\t\t\t\"Sep\",\n\t\t\t\"Oct\",\n\t\t\t\"Nom\"\n\t\t]\n\t},\n\tSummer: {\n\t\tnorthern: [\n\t\t\t\"Jun\",\n\t\t\t\"Jul\",\n\t\t\t\"Aug\"\n\t\t],\n\t\tsouthern: [\n\t\t\t\"Dec\",\n\t\t\t\"Jan\",\n\t\t\t\"Feb\"\n\t\t]\n\t},\n\tFall: {\n\t\tnorthern: [\n\t\t\t\"Sep\",\n\t\t\t\"Oct\",\n\t\t\t\"Nov\"\n\t\t],\n\t\tsouthern: [\n\t\t\t\"Mar\",\n\t\t\t\"Apr\",\n\t\t\t\"May\"\n\t\t]\n\t}\n};\nconst MONTH_TO_SEASON_LOOKUP = {\n\tnorthern: {\n\t\t\"Jan\": \"Winter\",\n\t\t\"Feb\": \"Winter\",\n\t\t\"Mar\": \"Spring\",\n\t\t\"Apr\": \"Spring\",\n\t\t\"May\": \"Spring\",\n\t\t\"Jun\": \"Summer\",\n\t\t\"Jul\": \"Summer\",\n\t\t\"Aug\": \"Summer\",\n\t\t\"Sep\": \"Fall\",\n\t\t\"Oct\": \"Fall\",\n\t\t\"Nov\": \"Fall\",\n\t\t\"Dec\": \"Winter\"\n\t},\n\tsouthern: {\n\t\t\"Jan\": \"Summer\",\n\t\t\"Feb\": \"Summer\",\n\t\t\"Mar\": \"Fall\",\n\t\t\"Apr\": \"Fall\",\n\t\t\"May\": \"Fall\",\n\t\t\"Jun\": \"Summer\",\n\t\t\"Jul\": \"Summer\",\n\t\t\"Aug\": \"Summer\",\n\t\t\"Sep\": \"Spring\",\n\t\t\"Oct\": \"Spring\",\n\t\t\"Nov\": \"Spring\",\n\t\t\"Dec\": \"Summer\"\n\t}\n};\nconst WEEK_DAY_ABBREV = [\n\t\"Mon\",\n\t\"Tue\",\n\t\"Wed\",\n\t\"Thu\",\n\t\"Fri\"\n];\nconst WEEK_DAY = [\n\t\"Monday\",\n\t\"Tuesday\",\n\t\"Wednesday\",\n\t\"Thursday\",\n\t\"Friday\"\n];\nconst WEEKEND_DAY_ABBREV = [\"Sat\", \"Sun\"];\nconst WEEKEND_DAY = [\"Saturday\", \"Sunday\"];\nconst DAYS_OF_WEEK__Sun = [\n\t\"Sun\",\n\t\"Mon\",\n\t\"Tue\",\n\t\"Wed\",\n\t\"Thu\",\n\t\"Fri\",\n\t\"Sat\"\n];\nconst DAYS_OF_WEEK__Mon = [\n\t\"Mon\",\n\t\"Tue\",\n\t\"Wed\",\n\t\"Thu\",\n\t\"Fri\",\n\t\"Sat\",\n\t\"Sun\"\n];\nconst DATE_TYPE = [\n\t\"datetime\",\n\t\"date\",\n\t\"year-independent\",\n\t\"year-month\",\n\t\"year\"\n];\n/**\n* months with 30 days\n*/\nconst ISO_DATE_30 = [\n\t\"04\",\n\t\"06\",\n\t\"09\",\n\t\"11\"\n];\n/**\n* months with 31 days\n*/\nconst ISO_DATE_31 = [\n\t\"01\",\n\t\"03\",\n\t\"05\",\n\t\"07\",\n\t\"08\",\n\t\"10\",\n\t\"12\"\n];\n\n//#endregion\n//#region src/DoubleLeap_Exotic.ts\n/**\n* Double Leap Years for 1st Millennium\n*/\nconst DOUBLE_LEAP_M1 = [\n\t8,\n\t16,\n\t24,\n\t32,\n\t40,\n\t48,\n\t76,\n\t84,\n\t92,\n\t108,\n\t116,\n\t124,\n\t152,\n\t160,\n\t168,\n\t176,\n\t184,\n\t192,\n\t228,\n\t236,\n\t244,\n\t252,\n\t260,\n\t268,\n\t276,\n\t304,\n\t312,\n\t320,\n\t328,\n\t336,\n\t344,\n\t352,\n\t380,\n\t388,\n\t396,\n\t404,\n\t412,\n\t420,\n\t428,\n\t456,\n\t464,\n\t472,\n\t480,\n\t488,\n\t496,\n\t504,\n\t532,\n\t540,\n\t548,\n\t556,\n\t564,\n\t572,\n\t580,\n\t608,\n\t616,\n\t624,\n\t632,\n\t640,\n\t648,\n\t656,\n\t684,\n\t692,\n\t708,\n\t716,\n\t724,\n\t732,\n\t760,\n\t768,\n\t776,\n\t784,\n\t792,\n\t800,\n\t808,\n\t836,\n\t844,\n\t852,\n\t860,\n\t868,\n\t876,\n\t884,\n\t912,\n\t920,\n\t928,\n\t936,\n\t944,\n\t952,\n\t960,\n\t988,\n\t996\n];\n/**\n* Double Leap Years for 4th Millennium\n*/\nconst DOUBLE_LEAP_M4 = [\n\t3004,\n\t3012,\n\t3020,\n\t3028,\n\t3036,\n\t3044,\n\t3052,\n\t3080,\n\t3088,\n\t3096,\n\t3104,\n\t3112,\n\t3120,\n\t3128,\n\t3156,\n\t3164,\n\t3172,\n\t3180,\n\t3188,\n\t3196,\n\t3204,\n\t3232,\n\t3240,\n\t3248,\n\t3256,\n\t3264,\n\t3272,\n\t3280,\n\t3308,\n\t3316,\n\t3324,\n\t3332,\n\t3340,\n\t3348,\n\t3356,\n\t3384,\n\t3392,\n\t3400,\n\t3408,\n\t3416,\n\t3424,\n\t3432,\n\t3460,\n\t3468,\n\t3476,\n\t3484,\n\t3492,\n\t3500,\n\t3508,\n\t3516,\n\t3524,\n\t3532,\n\t3560,\n\t3568,\n\t3576,\n\t3584,\n\t3592,\n\t3600,\n\t3608,\n\t3616,\n\t3624,\n\t3632,\n\t3640,\n\t3648,\n\t3676,\n\t3684,\n\t3692,\n\t3700,\n\t3728,\n\t3736,\n\t3744,\n\t3752,\n\t3760,\n\t3768,\n\t3796,\n\t3804,\n\t3812,\n\t3820,\n\t3828,\n\t3836,\n\t3864,\n\t3872,\n\t3880,\n\t3888,\n\t3896,\n\t3904,\n\t3912,\n\t3920,\n\t3928,\n\t3936,\n\t3964,\n\t3972,\n\t3980,\n\t3988\n];\n/**\n* Double Leap Years for 1st Millennium\n*/\nconst DOUBLE_LEAP_M5 = [\n\t4004,\n\t4012,\n\t4020,\n\t4028,\n\t4036,\n\t4044,\n\t4052,\n\t4060,\n\t4068,\n\t4076,\n\t4104,\n\t4112,\n\t4120,\n\t4128,\n\t4136,\n\t4144,\n\t4152,\n\t4180,\n\t4188,\n\t4196,\n\t4204,\n\t4212,\n\t4220,\n\t4228,\n\t4256,\n\t4264,\n\t4272,\n\t4280,\n\t4288,\n\t4296,\n\t4304,\n\t4332,\n\t4340,\n\t4348,\n\t4356,\n\t4364,\n\t4372,\n\t4380,\n\t4408,\n\t4416,\n\t4424,\n\t4432,\n\t4440,\n\t4448,\n\t4456,\n\t4484,\n\t4492,\n\t4500,\n\t4508,\n\t4516,\n\t4524,\n\t4532,\n\t4560,\n\t4568,\n\t4576,\n\t4584,\n\t4592,\n\t4600,\n\t4608,\n\t4636,\n\t4644,\n\t4652,\n\t4660,\n\t4668,\n\t4676,\n\t4684,\n\t4712,\n\t4720,\n\t4728,\n\t4736,\n\t4744,\n\t4752,\n\t4760,\n\t4788,\n\t4796,\n\t4804,\n\t4812,\n\t4820,\n\t4828,\n\t4836,\n\t4864,\n\t4872,\n\t4880,\n\t4888,\n\t4896,\n\t4904,\n\t4912,\n\t4940,\n\t4948,\n\t4956,\n\t4964,\n\t4972,\n\t4980,\n\t4988\n];\n\n//#endregion\n//#region src/DoubleLeap_Typical.ts\n/**\n* Double Leap Years for 2nd Millennium (1000-1999)\n*/\nconst DOUBLE_LEAP_M2 = [\n\t1004,\n\t1012,\n\t1020,\n\t1028,\n\t1036,\n\t1064,\n\t1072,\n\t1080,\n\t1088,\n\t1096,\n\t1104,\n\t1112,\n\t1140,\n\t1148,\n\t1156,\n\t1164,\n\t1172,\n\t1180,\n\t1188,\n\t1216,\n\t1224,\n\t1232,\n\t1240,\n\t1248,\n\t1256,\n\t1264,\n\t1292,\n\t1308,\n\t1316,\n\t1324,\n\t1332,\n\t1340,\n\t1368,\n\t1376,\n\t1384,\n\t1392,\n\t1408,\n\t1416,\n\t1444,\n\t1452,\n\t1460,\n\t1468,\n\t1476,\n\t1484,\n\t1492,\n\t1520,\n\t1528,\n\t1536,\n\t1544,\n\t1552,\n\t1560,\n\t1568,\n\t1596,\n\t1604,\n\t1612,\n\t1620,\n\t1628,\n\t1636,\n\t1644,\n\t1672,\n\t1680,\n\t1688,\n\t1696,\n\t1704,\n\t1712,\n\t1720,\n\t1748,\n\t1756,\n\t1764,\n\t1772,\n\t1780,\n\t1788,\n\t1796,\n\t1824,\n\t1832,\n\t1840,\n\t1848,\n\t1856,\n\t1864,\n\t1872,\n\t1908,\n\t1916,\n\t1924,\n\t1932,\n\t1940,\n\t1948,\n\t1976,\n\t1984,\n\t1992,\n\t2e3\n];\n/**\n* Double Leap Years for 3rd Millennium (2000-2999)\n*/\nconst DOUBLE_LEAP_M3 = [\n\t2008,\n\t2016,\n\t2024,\n\t2052,\n\t2060,\n\t2068,\n\t2076,\n\t2084,\n\t2092,\n\t2128,\n\t2136,\n\t2144,\n\t2152,\n\t2160,\n\t2168,\n\t2176,\n\t2204,\n\t2212,\n\t2220,\n\t2228,\n\t2236,\n\t2244,\n\t2252,\n\t2280,\n\t2288,\n\t2296,\n\t2304,\n\t2312,\n\t2320,\n\t2328,\n\t2356,\n\t2364,\n\t2372,\n\t2380,\n\t2388,\n\t2396,\n\t2404,\n\t2432,\n\t2440,\n\t2448,\n\t2456,\n\t2464,\n\t2472,\n\t2480,\n\t2508,\n\t2516,\n\t2524,\n\t2532,\n\t2540,\n\t2548,\n\t2556,\n\t2564,\n\t2592,\n\t2600,\n\t2608,\n\t2616,\n\t2624,\n\t2632,\n\t2640,\n\t2668,\n\t2676,\n\t2684,\n\t2692,\n\t2700,\n\t2708,\n\t2716,\n\t2744,\n\t2752,\n\t2760,\n\t2768,\n\t2776,\n\t2784,\n\t2792,\n\t2820,\n\t2828,\n\t2836,\n\t2844,\n\t2852,\n\t2860,\n\t2888,\n\t2896,\n\t2904,\n\t2912,\n\t2920,\n\t2928,\n\t2936,\n\t2964,\n\t2972,\n\t2980,\n\t2988,\n\t2996\n];\n/**\n* Double Leap Years for modern times (1400-2300)\n*/\nconst DOUBLE_LEAP_MODERN = [\n\t1408,\n\t1416,\n\t1444,\n\t1452,\n\t1460,\n\t1468,\n\t1476,\n\t1484,\n\t1492,\n\t1520,\n\t1528,\n\t1536,\n\t1544,\n\t1552,\n\t1560,\n\t1568,\n\t1596,\n\t1604,\n\t1612,\n\t1620,\n\t1628,\n\t1636,\n\t1644,\n\t1672,\n\t1680,\n\t1688,\n\t1696,\n\t1704,\n\t1712,\n\t1720,\n\t1748,\n\t1756,\n\t1764,\n\t1772,\n\t1780,\n\t1788,\n\t1796,\n\t1824,\n\t1832,\n\t1840,\n\t1848,\n\t1856,\n\t1864,\n\t1872,\n\t1908,\n\t1916,\n\t1924,\n\t1932,\n\t1940,\n\t1948,\n\t1976,\n\t1984,\n\t1992,\n\t2e3,\n\t2008,\n\t2016,\n\t2024,\n\t2052,\n\t2060,\n\t2068,\n\t2076,\n\t2084,\n\t2092,\n\t2128,\n\t2136,\n\t2144,\n\t2152,\n\t2160,\n\t2168,\n\t2176,\n\t2204,\n\t2212,\n\t2220,\n\t2228,\n\t2236,\n\t2244,\n\t2252,\n\t2280,\n\t2288,\n\t2296\n];\n\n//#endregion\n//#region src/Editor.ts\nconst EDITORS = [\n\t{\n\t\tname: \"Atom\",\n\t\texec: \"atom\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Brackets\",\n\t\texec: \"brackets\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Eclipse\",\n\t\texec: \"eclipse\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Emacs\",\n\t\texec: \"emacs\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"gedit\",\n\t\texec: \"gedit\",\n\t\tconsole: false,\n\t\tos: [\"linux\"]\n\t},\n\t{\n\t\tname: \"IntelliJ IDEA\",\n\t\texec: \"indea\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Kate\",\n\t\texec: \"kate\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Nano\",\n\t\texec: \"nano\",\n\t\tconsole: true,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Neovim\",\n\t\texec: \"neovim\",\n\t\tconsole: true,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Vim\",\n\t\texec: \"vim\",\n\t\tconsole: true,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Vi\",\n\t\texec: \"vi\",\n\t\tconsole: true,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Notepad\",\n\t\texec: \"notepad\",\n\t\tconsole: false,\n\t\tos: [\"win\"]\n\t},\n\t{\n\t\tname: \"Notepad++\",\n\t\texec: \"notepad++\",\n\t\tconsole: false,\n\t\tos: [\"win\"]\n\t},\n\t{\n\t\tname: \"PyCharm\",\n\t\texec: \"pycharm\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"TextEdit\",\n\t\texec: \"open -e\",\n\t\tconsole: false,\n\t\tos: [\"mac\"]\n\t},\n\t{\n\t\tname: \"Sublime Text\",\n\t\texec: \"subl\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Textmate\",\n\t\texec: \"mate\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Zed\",\n\t\texec: \"zed\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t}\n];\n\n//#endregion\n//#region src/FalsyValues.ts\n/**\n* **FALSY_VALUES**\n*\n* A tuple which contains all values which are considered _falsy_ in\n* Javascript.\n*/\nconst FALSY_VALUES = [\n\tfalse,\n\t0,\n\t-0,\n\t\"\",\n\tnull,\n\tvoid 0,\n\tNaN\n];\n\n//#endregion\n//#region src/Functional.ts\n/**\n* **RESULT**\n*\n* Concrete values for `Ok` and `Err` states.\n*/\nconst RESULT = {\n\tOk: \"ok\",\n\tErr: \"err\"\n};\n/**\n* **OPTION**\n*\n* Concrete values for `Some` and `None` states.\n*/\nconst OPTION = {\n\tSome: 1,\n\tNone: 0\n};\n\n//#endregion\n//#region src/Geo.ts\nconst HEMISPHERE = [\"northern\", \"southern\"];\n/**\n* The continents on planet earth\n*/\nconst CONTINENTS = [\n\t\"Africa\",\n\t\"Australia\",\n\t\"Antarctica\",\n\t\"Asia\",\n\t\"Europe\",\n\t\"North America\",\n\t\"South America\"\n];\n/**\n* The 50 US states: `[name, abbrev, true]`\n*/\nconst US_STATE_LOOKUP_STRICT = [\n\t{\n\t\tname: \"Alabama\",\n\t\tabbrev: \"AL\"\n\t},\n\t{\n\t\tname: \"Alaska\",\n\t\tabbrev: \"AK\"\n\t},\n\t{\n\t\tname: \"Arizona\",\n\t\tabbrev: \"AZ\"\n\t},\n\t{\n\t\tname: \"Arkansas\",\n\t\tabbrev: \"AR\"\n\t},\n\t{\n\t\tname: \"California\",\n\t\tabbrev: \"CA\"\n\t},\n\t{\n\t\tname: \"Colorado\",\n\t\tabbrev: \"CO\"\n\t},\n\t{\n\t\tname: \"Connecticut\",\n\t\tabbrev: \"CT\"\n\t},\n\t{\n\t\tname: \"Delaware\",\n\t\tabbrev: \"DE\"\n\t},\n\t{\n\t\tname: \"Florida\",\n\t\tabbrev: \"FL\"\n\t},\n\t{\n\t\tname: \"Georgia\",\n\t\tabbrev: \"GA\"\n\t},\n\t{\n\t\tname: \"Hawaii\",\n\t\tabbrev: \"HI\"\n\t},\n\t{\n\t\tname: \"Idaho\",\n\t\tabbrev: \"ID\"\n\t},\n\t{\n\t\tname: \"Illinois\",\n\t\tabbrev: \"IL\"\n\t},\n\t{\n\t\tname: \"Indiana\",\n\t\tabbrev: \"IN\"\n\t},\n\t{\n\t\tname: \"Iowa\",\n\t\tabbrev: \"IA\"\n\t},\n\t{\n\t\tname: \"Kansas\",\n\t\tabbrev: \"KS\"\n\t},\n\t{\n\t\tname: \"Kentucky\",\n\t\tabbrev: \"KY\"\n\t},\n\t{\n\t\tname: \"Louisiana\",\n\t\tabbrev: \"LA\"\n\t},\n\t{\n\t\tname: \"Maine\",\n\t\tabbrev: \"ME\"\n\t},\n\t{\n\t\tname: \"Maryland\",\n\t\tabbrev: \"MD\"\n\t},\n\t{\n\t\tname: \"Massachusetts\",\n\t\tabbrev: \"MA\"\n\t},\n\t{\n\t\tname: \"Michigan\",\n\t\tabbrev: \"MI\"\n\t},\n\t{\n\t\tname: \"Minnesota\",\n\t\tabbrev: \"MN\"\n\t},\n\t{\n\t\tname: \"Mississippi\",\n\t\tabbrev: \"MS\"\n\t},\n\t{\n\t\tname: \"Missouri\",\n\t\tabbrev: \"MO\"\n\t},\n\t{\n\t\tname: \"Montana\",\n\t\tabbrev: \"MT\"\n\t},\n\t{\n\t\tname: \"Nebraska\",\n\t\tabbrev: \"NE\"\n\t},\n\t{\n\t\tname: \"Nevada\",\n\t\tabbrev: \"NV\"\n\t},\n\t{\n\t\tname: \"New Hampshire\",\n\t\tabbrev: \"NH\"\n\t},\n\t{\n\t\tname: \"New Jersey\",\n\t\tabbrev: \"NJ\"\n\t},\n\t{\n\t\tname: \"New Mexico\",\n\t\tabbrev: \"NM\"\n\t},\n\t{\n\t\tname: \"New York\",\n\t\tabbrev: \"NY\"\n\t},\n\t{\n\t\tname: \"North Carolina\",\n\t\tabbrev: \"NC\"\n\t},\n\t{\n\t\tname: \"North Dakota\",\n\t\tabbrev: \"ND\"\n\t},\n\t{\n\t\tname: \"Ohio\",\n\t\tabbrev: \"OH\"\n\t},\n\t{\n\t\tname: \"Oklahoma\",\n\t\tabbrev: \"OK\"\n\t},\n\t{\n\t\tname: \"Oregon\",\n\t\tabbrev: \"OR\"\n\t},\n\t{\n\t\tname: \"Pennsylvania\",\n\t\tabbrev: \"PA\"\n\t},\n\t{\n\t\tname: \"Rhode Island\",\n\t\tabbrev: \"RI\"\n\t},\n\t{\n\t\tname: \"South Carolina\",\n\t\tabbrev: \"SC\"\n\t},\n\t{\n\t\tname: \"South Dakota\",\n\t\tabbrev: \"SD\"\n\t},\n\t{\n\t\tname: \"Tennessee\",\n\t\tabbrev: \"TN\"\n\t},\n\t{\n\t\tname: \"Texas\",\n\t\tabbrev: \"TX\"\n\t},\n\t{\n\t\tname: \"Utah\",\n\t\tabbrev: \"UT\"\n\t},\n\t{\n\t\tname: \"Vermont\",\n\t\tabbrev: \"VT\"\n\t},\n\t{\n\t\tname: \"Virginia\",\n\t\tabbrev: \"VA\"\n\t},\n\t{\n\t\tname: \"Washington\",\n\t\tabbrev: \"WA\"\n\t},\n\t{\n\t\tname: \"West Virginia\",\n\t\tabbrev: \"WV\"\n\t},\n\t{\n\t\tname: \"Wisconsin\",\n\t\tabbrev: \"WI\"\n\t},\n\t{\n\t\tname: \"Wyoming\",\n\t\tabbrev: \"WY\"\n\t}\n];\n/**\n* The 9 provinces to the US which are granted State codes.\n*/\nconst US_STATE_LOOKUP_PROVINCES = [\n\t{\n\t\tname: \"Puerto Rico\",\n\t\tabbrev: \"PR\"\n\t},\n\t{\n\t\tname: \"Virgin Islands\",\n\t\tabbrev: \"VI\"\n\t},\n\t{\n\t\tname: \"Palau\",\n\t\tabbrev: \"PW\"\n\t},\n\t{\n\t\tname: \"Federated States of Micronesia\",\n\t\tabbrev: \"FM\"\n\t},\n\t{\n\t\tname: \"Northern Mariana Islands\",\n\t\tabbrev: \"MP\"\n\t},\n\t{\n\t\tname: \"District of Columbia\",\n\t\tabbrev: \"DC\"\n\t},\n\t{\n\t\tname: \"Marshall Islands\",\n\t\tabbrev: \"MH\"\n\t},\n\t{\n\t\tname: \"American Samoa\",\n\t\tabbrev: \"AS\"\n\t},\n\t{\n\t\tname: \"Guam\",\n\t\tabbrev: \"GU\"\n\t}\n];\n/**\n* All 50 states and 9 provinces which have State abbreviations.\n*\n* Data format is: `[name, abbrev, flag]` where the boolean flag\n* indicates whether the line item is one of the 50 true states.\n*/\nconst US_STATE_LOOKUP = [...US_STATE_LOOKUP_STRICT, ...US_STATE_LOOKUP_PROVINCES];\n/**\n* A lookup which provides a list of state abbreviations associated\n* with the first digit of the zip code.\n*/\nconst ZIP_TO_STATE = {\n\t0: [\n\t\t\"CT\",\n\t\t\"MA\",\n\t\t\"ME\",\n\t\t\"NH\",\n\t\t\"NJ\",\n\t\t\"NY\",\n\t\t\"PR\",\n\t\t\"RI\",\n\t\t\"VT\",\n\t\t\"VI\"\n\t],\n\t1: [\n\t\t\"DE\",\n\t\t\"NY\",\n\t\t\"PA\"\n\t],\n\t2: [\n\t\t\"DC\",\n\t\t\"MD\",\n\t\t\"NC\",\n\t\t\"SC\",\n\t\t\"VA\",\n\t\t\"WV\"\n\t],\n\t3: [\n\t\t\"AL\",\n\t\t\"FL\",\n\t\t\"GA\",\n\t\t\"MS\",\n\t\t\"TN\"\n\t],\n\t4: [\n\t\t\"IN\",\n\t\t\"KY\",\n\t\t\"MI\",\n\t\t\"OH\"\n\t],\n\t5: [\n\t\t\"IA\",\n\t\t\"MN\",\n\t\t\"MT\",\n\t\t\"ND\",\n\t\t\"SD\",\n\t\t\"WI\"\n\t],\n\t6: [\n\t\t\"IL\",\n\t\t\"KS\",\n\t\t\"MO\",\n\t\t\"NE\"\n\t],\n\t7: [\n\t\t\"AR\",\n\t\t\"LA\",\n\t\t\"OK\",\n\t\t\"TX\"\n\t],\n\t8: [\n\t\t\"AZ\",\n\t\t\"CO\",\n\t\t\"ID\",\n\t\t\"NM\",\n\t\t\"NV\",\n\t\t\"UT\",\n\t\t\"WY\"\n\t],\n\t9: [\n\t\t\"AK\",\n\t\t\"AS\",\n\t\t\"CA\",\n\t\t\"GU\",\n\t\t\"HI\",\n\t\t\"MH\",\n\t\t\"FM\",\n\t\t\"MP\",\n\t\t\"OR\",\n\t\t\"PW\",\n\t\t\"WA\"\n\t]\n};\n\n//#endregion\n//#region src/HashTable.ts\nconst HASH_TABLE_WIDE = {\n\tstring: \"318\",\n\tnumber: \"523\",\n\tboolean: \"21\",\n\tnever: \"!!!\",\n\tunknown: \"ed\",\n\tundefined: \"ce\",\n\tnull: \"cc\",\n\tsymbol: \"78\",\n\tobject: \"fe8\",\n\tarray: \"17\",\n\trecord: \"ee\",\n\tmap: \"e65\",\n\tweakMap: \"e64\",\n\tset: \"f62\",\n\tunion: \"f61\"\n};\nconst HASH_TABLE_ALPHA_LOWER = {\n\ta: \"8\",\n\tb: \"~\",\n\tc: \"^\",\n\td: \".\",\n\te: \"82\",\n\tf: \"89\",\n\tg: \",\",\n\th: \"!\",\n\ti: \"-7\",\n\tj: \"-8\",\n\tk: \"88\",\n\tl: \"8f\",\n\tm: \"8e\",\n\tn: \"6e\",\n\to: \"44\",\n\tp: \"60\",\n\tq: \"61\",\n\tr: \"71\",\n\ts: \":\",\n\tt: \"-45\",\n\tu: \"-5\",\n\tv: \"-9\",\n\tw: \"-f\",\n\tx: \"+1\",\n\ty: \";\",\n\tz: \"*1\"\n};\nconst HASH_TABLE_SPECIAL = {\n\t\"!\": \"1\",\n\t\"@\": \"8\",\n\t\"#\": \"5\",\n\t\"$\": \"4\",\n\t\"%\": \"3\",\n\t\"^\": \"2\",\n\t\"&\": \"9\",\n\t\"*\": \"7\",\n\t\"(\": \"6\",\n\t\")\": \"12\",\n\t\"{\": \"33\",\n\t\"}\": \"54\",\n\t\"[\": \"x8\",\n\t\"]\": \"y4\",\n\t\":\": \"z2\",\n\t\";\": \"e88\",\n\t\"\\\"\": \"c11\",\n\t\"'\": \"c12\",\n\t\"<\": \"p3\",\n\t\",\": \"45\",\n\t\">\": \"e9\",\n\t\".\": \"f2\",\n\t\"?\": \"ee\",\n\t\"/\": \"u9\",\n\t\"\\\\\": \"f9\",\n\t\"|\": \"q1\",\n\t\"~\": \"fe\",\n\t\"`\": \"8e\"\n};\nconst HASH_TABLE_DIGIT = {\n\t0: \"-2\",\n\t1: \"-9\",\n\t2: \"ff\",\n\t3: \"fe\",\n\t4: \"2e\",\n\t5: \"cd\",\n\t6: \"54\",\n\t7: \"27\",\n\t8: \"49\",\n\t9: \"51\"\n};\nconst HASH_TABLE_ALPHA_UPPER = {\n\tA: \"b8\",\n\tB: \"~9\",\n\tC: \"6^\",\n\tD: \".8\",\n\tE: \"5<\",\n\tF: \">7\",\n\tG: \"1,\",\n\tH: \"!7\",\n\tI: \"8#\",\n\tJ: \"@9\",\n\tK: \"1*\",\n\tL: \"4&\",\n\tM: \"+5\",\n\tN: \"j|\",\n\tO: \"-l\",\n\tP: \"q{\",\n\tQ: \"]9\",\n\tR: \"f%\",\n\tS: \":3\",\n\tT: \"?+\",\n\tU: \"}5\",\n\tV: \"'4\",\n\tW: \"1@g\",\n\tX: \"0+1\",\n\tY: \"4;\",\n\tZ: \"a*1\"\n};\nconst HASH_TABLE_CHAR = {\n\t...HASH_TABLE_ALPHA_LOWER,\n\t...HASH_TABLE_ALPHA_UPPER,\n\t...HASH_TABLE_SPECIAL\n};\nconst HASH_TABLE_OTHER = \"999\";\n\n//#endregion\n//#region src/HTML.ts\n/**\n* An array of all valid HTML tags that have both opening and closing tags.\n*/\nconst HTML_BLOCK_TAGS = [\n\t\"a\",\n\t\"abbr\",\n\t\"address\",\n\t\"article\",\n\t\"aside\",\n\t\"b\",\n\t\"bdi\",\n\t\"bdo\",\n\t\"blockquote\",\n\t\"body\",\n\t\"button\",\n\t\"canvas\",\n\t\"caption\",\n\t\"cite\",\n\t\"code\",\n\t\"colgroup\",\n\t\"data\",\n\t\"datalist\",\n\t\"dd\",\n\t\"del\",\n\t\"details\",\n\t\"dfn\",\n\t\"dialog\",\n\t\"div\",\n\t\"dl\",\n\t\"dt\",\n\t\"em\",\n\t\"fieldset\",\n\t\"figcaption\",\n\t\"figure\",\n\t\"footer\",\n\t\"form\",\n\t\"h1\",\n\t\"h2\",\n\t\"h3\",\n\t\"h4\",\n\t\"h5\",\n\t\"h6\",\n\t\"head\",\n\t\"header\",\n\t\"html\",\n\t\"i\",\n\t\"iframe\",\n\t\"ins\",\n\t\"kbd\",\n\t\"label\",\n\t\"legend\",\n\t\"li\",\n\t\"main\",\n\t\"map\",\n\t\"mark\",\n\t\"menu\",\n\t\"meter\",\n\t\"nav\",\n\t\"noscript\",\n\t\"object\",\n\t\"ol\",\n\t\"optgroup\",\n\t\"option\",\n\t\"output\",\n\t\"p\",\n\t\"picture\",\n\t\"pre\",\n\t\"progress\",\n\t\"q\",\n\t\"rp\",\n\t\"rt\",\n\t\"ruby\",\n\t\"s\",\n\t\"samp\",\n\t\"script\",\n\t\"section\",\n\t\"select\",\n\t\"small\",\n\t\"span\",\n\t\"strong\",\n\t\"style\",\n\t\"sub\",\n\t\"summary\",\n\t\"sup\",\n\t\"svg\",\n\t\"table\",\n\t\"tbody\",\n\t\"td\",\n\t\"template\",\n\t\"textarea\",\n\t\"tfoot\",\n\t\"th\",\n\t\"thead\",\n\t\"time\",\n\t\"title\",\n\t\"tr\",\n\t\"u\",\n\t\"ul\",\n\t\"var\",\n\t\"video\"\n];\n/**\n* An array of all valid HTML tags that are self-closing (do not have closing tags).\n*/\nconst HTML_ATOMIC_TAGS = [\n\t\"area\",\n\t\"base\",\n\t\"br\",\n\t\"col\",\n\t\"embed\",\n\t\"hr\",\n\t\"img\",\n\t\"input\",\n\t\"link\",\n\t\"meta\",\n\t\"param\",\n\t\"source\",\n\t\"track\",\n\t\"wbr\"\n];\n\n//#endregion\n//#region src/Http.ts\n/**\n* A constant array containing a comprehensive list of common MIME (Multipurpose Internet Mail Extensions) types.\n* This array is marked as `const` to enable TypeScript to infer literal types for each element.\n*\n* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types\n*/\nconst MIME_TYPES = [\n\t\"application/json\",\n\t\"application/xml\",\n\t\"application/javascript\",\n\t\"application/pdf\",\n\t\"application/ld+json\",\n\t\"application/octet-stream\",\n\t\"application/x-www-form-urlencoded\",\n\t\"application/vnd.api+json\",\n\t\"application/msword\",\n\t\"application/grpc\",\n\t\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n\t\"application/vnd.ms-excel\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n\t\"application/vnd.ms-powerpoint\",\n\t\"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\n\t\"text/plain\",\n\t\"text/html\",\n\t\"text/css\",\n\t\"text/csv\",\n\t\"text/javascript\",\n\t\"text/markdown\",\n\t\"image/jpeg\",\n\t\"image/png\",\n\t\"image/gif\",\n\t\"image/bmp\",\n\t\"image/webp\",\n\t\"image/svg+xml\",\n\t\"image/tiff\",\n\t\"audio/mpeg\",\n\t\"audio/ogg\",\n\t\"audio/wav\",\n\t\"audio/webm\",\n\t\"audio/flac\",\n\t\"video/mp4\",\n\t\"video/mpeg\",\n\t\"video/ogg\",\n\t\"video/webm\",\n\t\"video/quicktime\",\n\t\"multipart/form-data\",\n\t\"multipart/mixed\",\n\t\"multipart/alternative\",\n\t\"multipart/related\",\n\t\"font/woff\",\n\t\"font/woff2\",\n\t\"font/ttf\",\n\t\"font/otf\",\n\t\"application/rss+xml\",\n\t\"application/atom+xml\",\n\t\"application/x-pkcs12\",\n\t\"application/x-shockwave-flash\",\n\t\"application/x-www-form-urlencoded\",\n\t\"application/x-font-ttf\",\n\t\"application/x-font-opentype\",\n\t\"application/x-font-woff\",\n\t\"application/x-font-woff2\",\n\t\"application/vnd.rar\",\n\t\"application/zip\",\n\t\"application/x-7z-compressed\"\n];\n\n//#endregion\n//#region src/Images.ts\nconst IMAGE_FORMAT_LOOKUP = [\n\t{\n\t\text: \"jpg\",\n\t\twebFormat: true,\n\t\tother_ext: [\"jpeg\"]\n\t},\n\t{\n\t\text: \"png\",\n\t\twebFormat: true,\n\t\tother_ext: []\n\t},\n\t{\n\t\text: \"gif\",\n\t\twebFormat: true,\n\t\tother_ext: []\n\t},\n\t{\n\t\text: \"heif\",\n\t\twebFormat: true,\n\t\tother_ext: []\n\t},\n\t{\n\t\text: \"svg\",\n\t\twebFormat: true,\n\t\tother_ext: []\n\t},\n\t{\n\t\text: \"raw\",\n\t\twebFormat: false,\n\t\tother_ext: []\n\t},\n\t{\n\t\text: \"dng\",\n\t\twebFormat: false,\n\t\tother_ext: []\n\t},\n\t{\n\t\text: \"avif\",\n\t\twebFormat: true,\n\t\tother_ext: []\n\t},\n\t{\n\t\text: \"webp\",\n\t\twebFormat: true,\n\t\tother_ext: []\n\t},\n\t{\n\t\text: \"tiff\",\n\t\twebFormat: false,\n\t\tother_ext: [\"tif\"]\n\t}\n];\n\n//#endregion\n//#region src/InputTokenConstants.ts\nconst IT_ATOMIC_TOKENS = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"true\",\n\t\"false\",\n\t\"undefined\",\n\t\"unknown\",\n\t\"any\",\n\t\"null\",\n\t\"void\",\n\t\"bigint\",\n\t\"object\",\n\t\"Object\",\n\t\"function\"\n];\n/**\n* All literal token declarations from a base type\n*/\nconst IT_LITERAL_TOKENS = [\n\t`String({{string}})`,\n\t`Number({{number}})`,\n\t`Boolean({{boolean}})`\n];\nconst IT_CONTAINER_TOKENS = [\n\t`Map<{{string}},{{string}}>`,\n\t`WeakMap<{{string}},{{string}}>`,\n\t`Set<{{string}}>`,\n\t`Record<{{string}},{{string}}`,\n\t`Array<{{string}}>`,\n\t`Fn({{string}})=>{{string}}`,\n\t`Fn({{string}})=>{{string}} & {{{string}}}`,\n\t`[{{string}}]`,\n\t`{{{string}}}`\n];\n\n//#endregion\n//#region src/Interpolation.ts\n/**\n* Static text blocks which can be used to interpolate into dynamic\n* string literal sections.\n*/\nconst INTERPOLATION_BLOCKS = [\n\t\"{{string}}\",\n\t\"{{number}}\",\n\t\"{{boolean}}\"\n];\n\n//#endregion\n//#region src/ISO3166.ts\n/**\n* All country codes (name, alpha-2, country-code)\n*/\nconst ISO3166_1 = [\n\t{\n\t\tname: \"Afghanistan\",\n\t\talpha2: \"AF\",\n\t\tcountryCode: \"004\",\n\t\talpha3: \"AFG\"\n\t},\n\t{\n\t\tname: \"Albania\",\n\t\talpha2: \"AL\",\n\t\tcountryCode: \"008\",\n\t\talpha3: \"ALB\"\n\t},\n\t{\n\t\tname: \"Algeria\",\n\t\talpha2: \"DZ\",\n\t\tcountryCode: \"012\",\n\t\talpha3: \"DZA\"\n\t},\n\t{\n\t\tname: \"Andorra\",\n\t\talpha2: \"AD\",\n\t\tcountryCode: \"020\",\n\t\talpha3: \"AND\"\n\t},\n\t{\n\t\tname: \"Angola\",\n\t\talpha2: \"AO\",\n\t\tcountryCode: \"024\",\n\t\talpha3: \"AGO\"\n\t},\n\t{\n\t\tname: \"Argentina\",\n\t\talpha2: \"AR\",\n\t\tcountryCode: \"032\",\n\t\talpha3: \"ARG\"\n\t},\n\t{\n\t\tname: \"Australia\",\n\t\talpha2: \"AU\",\n\t\tcountryCode: \"036\",\n\t\talpha3: \"AUS\"\n\t},\n\t{\n\t\tname: \"Austria\",\n\t\talpha2: \"AT\",\n\t\tcountryCode: \"040\",\n\t\talpha3: \"AUT\"\n\t},\n\t{\n\t\tname: \"Azerbaijan\",\n\t\talpha2: \"AZ\",\n\t\tcountryCode: \"031\",\n\t\talpha3: \"AZE\"\n\t},\n\t{\n\t\tname: \"Bahamas\",\n\t\talpha2: \"BS\",\n\t\tcountryCode: \"044\",\n\t\talpha3: \"BHS\"\n\t},\n\t{\n\t\tname: \"Bangladesh\",\n\t\talpha2: \"BD\",\n\t\tcountryCode: \"050\",\n\t\talpha3: \"BGD\"\n\t},\n\t{\n\t\tname: \"Belgium\",\n\t\talpha2: \"BE\",\n\t\tcountryCode: \"056\",\n\t\talpha3: \"BEL\"\n\t},\n\t{\n\t\tname: \"Belize\",\n\t\talpha2: \"BZ\",\n\t\tcountryCode: \"084\",\n\t\talpha3: \"BLZ\"\n\t},\n\t{\n\t\tname: \"Benin\",\n\t\talpha2: \"BJ\",\n\t\tcountryCode: \"204\",\n\t\talpha3: \"BEN\"\n\t},\n\t{\n\t\tname: \"Bhutan\",\n\t\talpha2: \"BT\",\n\t\tcountryCode: \"064\",\n\t\talpha3: \"BTN\"\n\t},\n\t{\n\t\tname: \"Bolivia\",\n\t\talpha2: \"BO\",\n\t\tcountryCode: \"068\",\n\t\talpha3: \"BOL\"\n\t},\n\t{\n\t\tname: \"Bosnia and Herzegovina\",\n\t\talpha2: \"BA\",\n\t\tcountryCode: \"070\",\n\t\talpha3: \"BIH\"\n\t},\n\t{\n\t\tname: \"Botswana\",\n\t\talpha2: \"BW\",\n\t\tcountryCode: \"072\",\n\t\talpha3: \"BWA\"\n\t},\n\t{\n\t\tname: \"Brazil\",\n\t\talpha2: \"BR\",\n\t\tcountryCode: \"076\",\n\t\talpha3: \"BRA\"\n\t},\n\t{\n\t\tname: \"Brunei Darussalam\",\n\t\talpha2: \"BN\",\n\t\tcountryCode: \"096\",\n\t\talpha3: \"BRN\"\n\t},\n\t{\n\t\tname: \"Bulgaria\",\n\t\talpha2: \"BG\",\n\t\tcountryCode: \"100\",\n\t\talpha3: \"BGR\"\n\t},\n\t{\n\t\tname: \"Burkina Faso\",\n\t\talpha2: \"BF\",\n\t\tcountryCode: \"854\",\n\t\talpha3: \"BFA\"\n\t},\n\t{\n\t\tname: \"Burundi\",\n\t\talpha2: \"BI\",\n\t\tcountryCode: \"108\",\n\t\talpha3: \"BDI\"\n\t},\n\t{\n\t\tname: \"Cambodia\",\n\t\talpha2: \"KH\",\n\t\tcountryCode: \"116\",\n\t\talpha3: \"KHM\"\n\t},\n\t{\n\t\tname: \"Cameroon\",\n\t\talpha2: \"CM\",\n\t\tcountryCode: \"120\",\n\t\talpha3: \"CMR\"\n\t},\n\t{\n\t\tname: \"Canada\",\n\t\talpha2: \"CA\",\n\t\tcountryCode: \"124\",\n\t\talpha3: \"CAN\"\n\t},\n\t{\n\t\tname: \"Afghanistan\",\n\t\talpha2: \"AF\",\n\t\tcountryCode: \"004\",\n\t\talpha3: \"AFG\"\n\t},\n\t{\n\t\tname: \"Albania\",\n\t\talpha2: \"AL\",\n\t\tcountryCode: \"008\",\n\t\talpha3: \"ALB\"\n\t},\n\t{\n\t\tname: \"Algeria\",\n\t\talpha2: \"DZ\",\n\t\tcountryCode: \"012\",\n\t\talpha3: \"DZA\"\n\t},\n\t{\n\t\tname: \"Andorra\",\n\t\talpha2: \"AD\",\n\t\tcountryCode: \"020\",\n\t\talpha3: \"AND\"\n\t},\n\t{\n\t\tname: \"Angola\",\n\t\talpha2: \"AO\",\n\t\tcountryCode: \"024\",\n\t\talpha3: \"AGO\"\n\t},\n\t{\n\t\tname: \"Argentina\",\n\t\talpha2: \"AR\",\n\t\tcountryCode: \"032\",\n\t\talpha3: \"ARG\"\n\t},\n\t{\n\t\tname: \"Australia\",\n\t\talpha2: \"AU\",\n\t\tcountryCode: \"036\",\n\t\talpha3: \"AUS\"\n\t},\n\t{\n\t\tname: \"Austria\",\n\t\talpha2: \"AT\",\n\t\tcountryCode: \"040\",\n\t\talpha3: \"AUT\"\n\t},\n\t{\n\t\tname: \"Azerbaijan\",\n\t\talpha2: \"AZ\",\n\t\tcountryCode: \"031\",\n\t\talpha3: \"AZE\"\n\t},\n\t{\n\t\tname: \"Bahamas\",\n\t\talpha2: \"BS\",\n\t\tcountryCode: \"044\",\n\t\talpha3: \"BHS\"\n\t},\n\t{\n\t\tname: \"Bangladesh\",\n\t\talpha2: \"BD\",\n\t\tcountryCode: \"050\",\n\t\talpha3: \"BGD\"\n\t},\n\t{\n\t\tname: \"Belgium\",\n\t\talpha2: \"BE\",\n\t\tcountryCode: \"056\",\n\t\talpha3: \"BEL\"\n\t},\n\t{\n\t\tname: \"Belize\",\n\t\talpha2: \"BZ\",\n\t\tcountryCode: \"084\",\n\t\talpha3: \"BLZ\"\n\t},\n\t{\n\t\tname: \"Benin\",\n\t\talpha2: \"BJ\",\n\t\tcountryCode: \"204\",\n\t\talpha3: \"BEN\"\n\t},\n\t{\n\t\tname: \"Bhutan\",\n\t\talpha2: \"BT\",\n\t\tcountryCode: \"064\",\n\t\talpha3: \"BTN\"\n\t},\n\t{\n\t\tname: \"Bolivia\",\n\t\talpha2: \"BO\",\n\t\tcountryCode: \"068\",\n\t\talpha3: \"BOL\"\n\t},\n\t{\n\t\tname: \"Bosnia and Herzegovina\",\n\t\talpha2: \"BA\",\n\t\tcountryCode: \"070\",\n\t\talpha3: \"BIH\"\n\t},\n\t{\n\t\tname: \"Botswana\",\n\t\talpha2: \"BW\",\n\t\tcountryCode: \"072\",\n\t\talpha3: \"BWA\"\n\t},\n\t{\n\t\tname: \"Brazil\",\n\t\talpha2: \"BR\",\n\t\tcountryCode: \"076\",\n\t\talpha3: \"BRA\"\n\t},\n\t{\n\t\tname: \"Brunei Darussalam\",\n\t\talpha2: \"BN\",\n\t\tcountryCode: \"096\",\n\t\talpha3: \"BRN\"\n\t},\n\t{\n\t\tname: \"Bulgaria\",\n\t\talpha2: \"BG\",\n\t\tcountryCode: \"100\",\n\t\talpha3: \"BGR\"\n\t},\n\t{\n\t\tname: \"Burkina Faso\",\n\t\talpha2: \"BF\",\n\t\tcountryCode: \"854\",\n\t\talpha3: \"BFA\"\n\t},\n\t{\n\t\tname: \"Burundi\",\n\t\talpha2: \"BI\",\n\t\tcountryCode: \"108\",\n\t\talpha3: \"BDI\"\n\t},\n\t{\n\t\tname: \"Cambodia\",\n\t\talpha2: \"KH\",\n\t\tcountryCode: \"116\",\n\t\talpha3: \"KHM\"\n\t},\n\t{\n\t\tname: \"Cameroon\",\n\t\talpha2: \"CM\",\n\t\tcountryCode: \"120\",\n\t\talpha3: \"CMR\"\n\t},\n\t{\n\t\tname: \"Canada\",\n\t\talpha2: \"CA\",\n\t\tcountryCode: \"124\",\n\t\talpha3: \"CAN\"\n\t},\n\t{\n\t\tname: \"Maldives\",\n\t\talpha2: \"MV\",\n\t\tcountryCode: \"462\",\n\t\talpha3: \"MDV\"\n\t},\n\t{\n\t\tname: \"Mali\",\n\t\talpha2: \"ML\",\n\t\tcountryCode: \"466\",\n\t\talpha3: \"MLI\"\n\t},\n\t{\n\t\tname: \"Malta\",\n\t\talpha2: \"MT\",\n\t\tcountryCode: \"470\",\n\t\talpha3: \"MLT\"\n\t},\n\t{\n\t\tname: \"Marshall Islands\",\n\t\talpha2: \"MH\",\n\t\tcountryCode: \"584\",\n\t\talpha3: \"MHL\"\n\t},\n\t{\n\t\tname: \"Mauritania\",\n\t\talpha2: \"MR\",\n\t\tcountryCode: \"478\",\n\t\talpha3: \"MRT\"\n\t},\n\t{\n\t\tname: \"Mauritius\",\n\t\talpha2: \"MU\",\n\t\tcountryCode: \"480\",\n\t\talpha3: \"MUS\"\n\t},\n\t{\n\t\tname: \"Mexico\",\n\t\talpha2: \"MX\",\n\t\tcountryCode: \"484\",\n\t\talpha3: \"MEX\"\n\t},\n\t{\n\t\tname: \"Micronesia (Federated States of)\",\n\t\talpha2: \"FM\",\n\t\tcountryCode: \"583\",\n\t\talpha3: \"FSM\"\n\t},\n\t{\n\t\tname: \"Moldova (Republic of)\",\n\t\talpha2: \"MD\",\n\t\tcountryCode: \"498\",\n\t\talpha3: \"MDA\"\n\t},\n\t{\n\t\tname: \"Monaco\",\n\t\talpha2: \"MC\",\n\t\tcountryCode: \"492\",\n\t\talpha3: \"MCO\"\n\t},\n\t{\n\t\tname: \"Mongolia\",\n\t\talpha2: \"MN\",\n\t\tcountryCode: \"496\",\n\t\talpha3: \"MNG\"\n\t},\n\t{\n\t\tname: \"Montenegro\",\n\t\talpha2: \"ME\",\n\t\tcountryCode: \"499\",\n\t\talpha3: \"MNE\"\n\t},\n\t{\n\t\tname: \"Morocco\",\n\t\talpha2: \"MA\",\n\t\tcountryCode: \"504\",\n\t\talpha3: \"MAR\"\n\t},\n\t{\n\t\tname: \"Mozambique\",\n\t\talpha2: \"MZ\",\n\t\tcountryCode: \"508\",\n\t\talpha3: \"MOZ\"\n\t},\n\t{\n\t\tname: \"Myanmar\",\n\t\talpha2: \"MM\",\n\t\tcountryCode: \"104\",\n\t\talpha3: \"MMR\"\n\t},\n\t{\n\t\tname: \"Namibia\",\n\t\talpha2: \"NA\",\n\t\tcountryCode: \"516\",\n\t\talpha3: \"NAM\"\n\t},\n\t{\n\t\tname: \"Nauru\",\n\t\talpha2: \"NR\",\n\t\tcountryCode: \"520\",\n\t\talpha3: \"NRU\"\n\t},\n\t{\n\t\tname: \"Nepal\",\n\t\talpha2: \"NP\",\n\t\tcountryCode: \"524\",\n\t\talpha3: \"NPL\"\n\t},\n\t{\n\t\tname: \"Netherlands\",\n\t\talpha2: \"NL\",\n\t\tcountryCode: \"528\",\n\t\talpha3: \"NLD\"\n\t},\n\t{\n\t\tname: \"New Zealand\",\n\t\talpha2: \"NZ\",\n\t\tcountryCode: \"554\",\n\t\talpha3: \"NZL\"\n\t},\n\t{\n\t\tname: \"Nicaragua\",\n\t\talpha2: \"NI\",\n\t\tcountryCode: \"558\",\n\t\talpha3: \"NIC\"\n\t},\n\t{\n\t\tname: \"Niger\",\n\t\talpha2: \"NE\",\n\t\tcountryCode: \"562\",\n\t\talpha3: \"NER\"\n\t},\n\t{\n\t\tname: \"Nigeria\",\n\t\talpha2: \"NG\",\n\t\tcountryCode: \"566\",\n\t\talpha3: \"NGA\"\n\t},\n\t{\n\t\tname: \"North Macedonia\",\n\t\talpha2: \"MK\",\n\t\tcountryCode: \"807\",\n\t\talpha3: \"MKD\"\n\t},\n\t{\n\t\tname: \"Norway\",\n\t\talpha2: \"NO\",\n\t\tcountryCode: \"578\",\n\t\talpha3: \"NOR\"\n\t},\n\t{\n\t\tname: \"Oman\",\n\t\talpha2: \"OM\",\n\t\tcountryCode: \"512\",\n\t\talpha3: \"OMN\"\n\t},\n\t{\n\t\tname: \"Pakistan\",\n\t\talpha2: \"PK\",\n\t\tcountryCode: \"586\",\n\t\talpha3: \"PAK\"\n\t},\n\t{\n\t\tname: \"Palau\",\n\t\talpha2: \"PW\",\n\t\tcountryCode: \"585\",\n\t\talpha3: \"PLW\"\n\t},\n\t{\n\t\tname: \"Panama\",\n\t\talpha2: \"PA\",\n\t\tcountryCode: \"591\",\n\t\talpha3: \"PAN\"\n\t},\n\t{\n\t\tname: \"Papua New Guinea\",\n\t\talpha2: \"PG\",\n\t\tcountryCode: \"598\",\n\t\talpha3: \"PNG\"\n\t},\n\t{\n\t\tname: \"Paraguay\",\n\t\talpha2: \"PY\",\n\t\tcountryCode: \"600\",\n\t\talpha3: \"PRY\"\n\t},\n\t{\n\t\tname: \"Peru\",\n\t\talpha2: \"PE\",\n\t\tcountryCode: \"604\",\n\t\talpha3: \"PER\"\n\t},\n\t{\n\t\tname: \"Philippines\",\n\t\talpha2: \"PH\",\n\t\tcountryCode: \"608\",\n\t\talpha3: \"PHL\"\n\t},\n\t{\n\t\tname: \"Poland\",\n\t\talpha2: \"PL\",\n\t\tcountryCode: \"616\",\n\t\talpha3: \"POL\"\n\t},\n\t{\n\t\tname: \"Portugal\",\n\t\talpha2: \"PT\",\n\t\tcountryCode: \"620\",\n\t\talpha3: \"PRT\"\n\t},\n\t{\n\t\tname: \"Qatar\",\n\t\talpha2: \"QA\",\n\t\tcountryCode: \"634\",\n\t\talpha3: \"QAT\"\n\t},\n\t{\n\t\tname: \"Romania\",\n\t\talpha2: \"RO\",\n\t\tcountryCode: \"642\",\n\t\talpha3: \"ROU\"\n\t},\n\t{\n\t\tname: \"Russian Federation\",\n\t\talpha2: \"RU\",\n\t\tcountryCode: \"643\",\n\t\talpha3: \"RUS\"\n\t},\n\t{\n\t\tname: \"Rwanda\",\n\t\talpha2: \"RW\",\n\t\tcountryCode: \"646\",\n\t\talpha3: \"RWA\"\n\t},\n\t{\n\t\tname: \"Saint Kitts and Nevis\",\n\t\talpha2: \"KN\",\n\t\tcountryCode: \"659\",\n\t\talpha3: \"KNA\"\n\t},\n\t{\n\t\tname: \"Saint Lucia\",\n\t\talpha2: \"LC\",\n\t\tcountryCode: \"662\",\n\t\talpha3: \"LCA\"\n\t},\n\t{\n\t\tname: \"Saint Vincent and the Grenadines\",\n\t\talpha2: \"VC\",\n\t\tcountryCode: \"670\",\n\t\talpha3: \"VCT\"\n\t},\n\t{\n\t\tname: \"Samoa\",\n\t\talpha2: \"WS\",\n\t\tcountryCode: \"882\",\n\t\talpha3: \"WSM\"\n\t},\n\t{\n\t\tname: \"San Marino\",\n\t\talpha2: \"SM\",\n\t\tcountryCode: \"674\",\n\t\talpha3: \"SMR\"\n\t},\n\t{\n\t\tname: \"Sao Tome and Principe\",\n\t\talpha2: \"ST\",\n\t\tcountryCode: \"678\",\n\t\talpha3: \"STP\"\n\t},\n\t{\n\t\tname: \"Saudi Arabia\",\n\t\talpha2: \"SA\",\n\t\tcountryCode: \"682\",\n\t\talpha3: \"SAU\"\n\t},\n\t{\n\t\tname: \"Senegal\",\n\t\talpha2: \"SN\",\n\t\tcountryCode: \"686\",\n\t\talpha3: \"SEN\"\n\t},\n\t{\n\t\tname: \"Serbia\",\n\t\talpha2: \"RS\",\n\t\tcountryCode: \"688\",\n\t\talpha3: \"SRB\"\n\t},\n\t{\n\t\tname: \"Seychelles\",\n\t\talpha2: \"SC\",\n\t\tcountryCode: \"690\",\n\t\talpha3: \"SYC\"\n\t},\n\t{\n\t\tname: \"Sierra Leone\",\n\t\talpha2: \"SL\",\n\t\tcountryCode: \"694\",\n\t\talpha3: \"SLE\"\n\t},\n\t{\n\t\tname: \"Singapore\",\n\t\talpha2: \"SG\",\n\t\tcountryCode: \"702\",\n\t\talpha3: \"SGP\"\n\t},\n\t{\n\t\tname: \"Slovakia\",\n\t\talpha2: \"SK\",\n\t\tcountryCode: \"703\",\n\t\talpha3: \"SVK\"\n\t},\n\t{\n\t\tname: \"Slovenia\",\n\t\talpha2: \"SI\",\n\t\tcountryCode: \"705\",\n\t\talpha3: \"SVN\"\n\t},\n\t{\n\t\tname: \"Solomon Islands\",\n\t\talpha2: \"SB\",\n\t\tcountryCode: \"090\",\n\t\talpha3: \"SLB\"\n\t},\n\t{\n\t\tname: \"Somalia\",\n\t\talpha2: \"SO\",\n\t\tcountryCode: \"706\",\n\t\talpha3: \"SOM\"\n\t},\n\t{\n\t\tname: \"South Africa\",\n\t\talpha2: \"ZA\",\n\t\tcountryCode: \"710\",\n\t\talpha3: \"ZAF\"\n\t},\n\t{\n\t\tname: \"South Sudan\",\n\t\talpha2: \"SS\",\n\t\tcountryCode: \"728\",\n\t\talpha3: \"SSD\"\n\t},\n\t{\n\t\tname: \"Spain\",\n\t\talpha2: \"ES\",\n\t\tcountryCode: \"724\",\n\t\talpha3: \"ESP\"\n\t},\n\t{\n\t\tname: \"Sri Lanka\",\n\t\talpha2: \"LK\",\n\t\tcountryCode: \"144\",\n\t\talpha3: \"LKA\"\n\t},\n\t{\n\t\tname: \"Sudan\",\n\t\talpha2: \"SD\",\n\t\tcountryCode: \"729\",\n\t\talpha3: \"SDN\"\n\t},\n\t{\n\t\tname: \"Suriname\",\n\t\talpha2: \"SR\",\n\t\tcountryCode: \"740\",\n\t\talpha3: \"SUR\"\n\t},\n\t{\n\t\tname: \"Sweden\",\n\t\talpha2: \"SE\",\n\t\tcountryCode: \"752\",\n\t\talpha3: \"SWE\"\n\t},\n\t{\n\t\tname: \"Switzerland\",\n\t\talpha2: \"CH\",\n\t\tcountryCode: \"756\",\n\t\talpha3: \"CHE\"\n\t},\n\t{\n\t\tname: \"Syrian Arab Republic\",\n\t\talpha2: \"SY\",\n\t\tcountryCode: \"760\",\n\t\talpha3: \"SYR\"\n\t},\n\t{\n\t\tname: \"Taiwan\",\n\t\talpha2: \"TW\",\n\t\tcountryCode: \"158\",\n\t\talpha3: \"TWN\"\n\t},\n\t{\n\t\tname: \"Tajikistan\",\n\t\talpha2: \"TJ\",\n\t\tcountryCode: \"762\",\n\t\talpha3: \"TJK\"\n\t},\n\t{\n\t\tname: \"Tanzania\",\n\t\talpha2: \"TZ\",\n\t\tcountryCode: \"834\",\n\t\talpha3: \"TZA\"\n\t},\n\t{\n\t\tname: \"Thailand\",\n\t\talpha2: \"TH\",\n\t\tcountryCode: \"764\",\n\t\talpha3: \"THA\"\n\t},\n\t{\n\t\tname: \"Timor-Leste\",\n\t\talpha2: \"TL\",\n\t\tcountryCode: \"626\",\n\t\talpha3: \"TLS\"\n\t},\n\t{\n\t\tname: \"Togo\",\n\t\talpha2: \"TG\",\n\t\tcountryCode: \"768\",\n\t\talpha3: \"TGO\"\n\t},\n\t{\n\t\tname: \"Tonga\",\n\t\talpha2: \"TO\",\n\t\tcountryCode: \"776\",\n\t\talpha3: \"TON\"\n\t},\n\t{\n\t\tname: \"Tonga\",\n\t\talpha2: \"TO\",\n\t\tcountryCode: \"776\",\n\t\talpha3: \"TON\"\n\t},\n\t{\n\t\tname: \"Trinidad and Tobago\",\n\t\talpha2: \"TT\",\n\t\tcountryCode: \"780\",\n\t\talpha3: \"TTO\"\n\t},\n\t{\n\t\tname: \"Tunisia\",\n\t\talpha2: \"TN\",\n\t\tcountryCode: \"788\",\n\t\talpha3: \"TUN\"\n\t},\n\t{\n\t\tname: \"Turkey\",\n\t\talpha2: \"TR\",\n\t\tcountryCode: \"792\",\n\t\talpha3: \"TUR\"\n\t},\n\t{\n\t\tname: \"Turkmenistan\",\n\t\talpha2: \"TM\",\n\t\tcountryCode: \"795\",\n\t\talpha3: \"TKM\"\n\t},\n\t{\n\t\tname: \"Tuvalu\",\n\t\talpha2: \"TV\",\n\t\tcountryCode: \"798\",\n\t\talpha3: \"TUV\"\n\t},\n\t{\n\t\tname: \"Uganda\",\n\t\talpha2: \"UG\",\n\t\tcountryCode: \"800\",\n\t\talpha3: \"UGA\"\n\t},\n\t{\n\t\tname: \"Ukraine\",\n\t\talpha2: \"UA\",\n\t\tcountryCode: \"804\",\n\t\talpha3: \"UKR\"\n\t},\n\t{\n\t\tname: \"United Arab Emirates\",\n\t\talpha2: \"AE\",\n\t\tcountryCode: \"784\",\n\t\talpha3: \"ARE\"\n\t},\n\t{\n\t\tname: \"United Kingdom\",\n\t\talpha2: \"GB\",\n\t\tcountryCode: \"826\",\n\t\talpha3: \"GBR\"\n\t},\n\t{\n\t\tname: \"United States of America\",\n\t\talpha2: \"US\",\n\t\tcountryCode: \"840\",\n\t\talpha3: \"USA\"\n\t},\n\t{\n\t\tname: \"Uruguay\",\n\t\talpha2: \"UY\",\n\t\tcountryCode: \"858\",\n\t\talpha3: \"URY\"\n\t},\n\t{\n\t\tname: \"Uzbekistan\",\n\t\talpha2: \"UZ\",\n\t\tcountryCode: \"860\",\n\t\talpha3: \"UZB\"\n\t},\n\t{\n\t\tname: \"Vanuatu\",\n\t\talpha2: \"VU\",\n\t\tcountryCode: \"548\",\n\t\talpha3: \"VUT\"\n\t},\n\t{\n\t\tname: \"Venezuela\",\n\t\talpha2: \"VE\",\n\t\tcountryCode: \"862\",\n\t\talpha3: \"VEN\"\n\t},\n\t{\n\t\tname: \"Viet Nam\",\n\t\talpha2: \"VN\",\n\t\tcountryCode: \"704\",\n\t\talpha3: \"VNM\"\n\t},\n\t{\n\t\tname: \"Yemen\",\n\t\talpha2: \"YE\",\n\t\tcountryCode: \"887\",\n\t\talpha3: \"YEM\"\n\t},\n\t{\n\t\tname: \"Zambia\",\n\t\talpha2: \"ZM\",\n\t\tcountryCode: \"894\",\n\t\talpha3: \"ZMB\"\n\t},\n\t{\n\t\tname: \"Zimbabwe\",\n\t\talpha2: \"ZW\",\n\t\tcountryCode: \"716\",\n\t\talpha3: \"ZWE\"\n\t}\n];\n\n//#endregion\n//#region src/Marked.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant$3(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\nconst MARKED = createConstant$3(\"Marked\");\n\n//#endregion\n//#region src/Markers.ts\nconst BLOOD_MARKERS_LOOKUP = [\n\t{\n\t\tabbrev: \"Hb\",\n\t\tname: \"hemoglobin\",\n\t\tmeasurements: [\"g/dL\", \"mmol/L\"]\n\t},\n\t{\n\t\tabbrev: \"WBC\",\n\t\tname: \"white blood cell count\",\n\t\tmeasurements: [\"cells/µL\"]\n\t},\n\t{\n\t\tabbrev: \"RBC\",\n\t\tname: \"red blood cell count\",\n\t\tmeasurements: [\"million cells/µL\", \"trillion cells/L\"]\n\t},\n\t{\n\t\tabbrev: \"PLT\",\n\t\tname: \"platelet count\",\n\t\tmeasurements: [\"thousand/µL\", \"million/L\"]\n\t},\n\t{\n\t\tabbrev: \"Hct\",\n\t\tname: \"hematocrit\",\n\t\tmeasurements: [\"%\"]\n\t},\n\t{\n\t\tabbrev: \"MCV\",\n\t\tname: \"mean corpuscular volume\",\n\t\tmeasurements: [\"fL\"]\n\t},\n\t{\n\t\tabbrev: \"MCH\",\n\t\tname: \"mean corpuscular hemoglobin\",\n\t\tmeasurements: [\"pg/cell\"]\n\t},\n\t{\n\t\tabbrev: \"MCHC\",\n\t\tname: \"mean corpuscular hemoglobin concentration\",\n\t\tmeasurements: [\"g/dL\"]\n\t},\n\t{\n\t\tabbrev: \"RDW\",\n\t\tname: \"red cell distribution width\",\n\t\tmeasurements: [\"%\"]\n\t},\n\t{\n\t\tabbrev: \"Glucose\",\n\t\tname: \"blood glucose\",\n\t\tmeasurements: [\"mg/dL\", \"mmol/L\"]\n\t},\n\t{\n\t\tabbrev: \"ALT\",\n\t\tname: \"alanine aminotransferase\",\n\t\tmeasurements: [\"U/L\"]\n\t},\n\t{\n\t\tabbrev: \"AST\",\n\t\tname: \"aspartate aminotransferase\",\n\t\tmeasurements: [\"U/L\"]\n\t},\n\t{\n\t\tabbrev: \"LDL\",\n\t\tname: \"low-density lipoprotein\",\n\t\tmeasurements: [\"mg/dL\", \"mmol/L\"]\n\t},\n\t{\n\t\tabbrev: \"HDL\",\n\t\tname: \"high-density lipoprotein\",\n\t\tmeasurements: [\"mg/dL\", \"mmol/L\"]\n\t},\n\t{\n\t\tabbrev: \"Triglycerides\",\n\t\tname: \"triglycerides\",\n\t\tmeasurements: [\"mg/dL\", \"mmol/L\"]\n\t},\n\t{\n\t\tabbrev: \"CRP\",\n\t\tname: \"C-reactive protein\",\n\t\tmeasurements: [\"mg/L\"]\n\t},\n\t{\n\t\tabbrev: \"TSH\",\n\t\tname: \"thyroid-stimulating hormone\",\n\t\tmeasurements: [\"mIU/L\"]\n\t},\n\t{\n\t\tabbrev: \"BUN\",\n\t\tname: \"blood urea nitrogen\",\n\t\tmeasurements: [\"mg/dL\", \"mmol/L\"]\n\t},\n\t{\n\t\tabbrev: \"Creatinine\",\n\t\tname: \"creatinine\",\n\t\tmeasurements: [\"mg/dL\", \"µmol/L\"]\n\t},\n\t{\n\t\tabbrev: \"Bilirubin\",\n\t\tname: \"bilirubin\",\n\t\tmeasurements: [\"mg/dL\", \"µmol/L\"]\n\t}\n];\n\n//#endregion\n//#region src/Metrics.ts\nconst DISTANCE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"km\",\n\t\tname: \"kilometer\"\n\t},\n\t{\n\t\tabbrev: \"mi\",\n\t\tname: \"mile\"\n\t},\n\t{\n\t\tabbrev: \"mm\",\n\t\tname: \"millimeter\"\n\t},\n\t{\n\t\tabbrev: \"cm\",\n\t\tname: \"centimeter\"\n\t},\n\t{\n\t\tabbrev: \"yd\",\n\t\tname: \"yard\"\n\t},\n\t{\n\t\tabbrev: \"ft\",\n\t\tname: \"foot\"\n\t},\n\t{\n\t\tabbrev: \"in\",\n\t\tname: \"inch\"\n\t},\n\t{\n\t\tabbrev: \"m\",\n\t\tname: \"meter\"\n\t},\n\t{\n\t\tabbrev: \"nm\",\n\t\tname: \"nautical mile\"\n\t},\n\t{\n\t\tabbrev: \"nmi\",\n\t\tname: \"nanometer\"\n\t},\n\t{\n\t\tabbrev: \"µm\",\n\t\tname: \"micrometer\"\n\t},\n\t{\n\t\tabbrev: \"dm\",\n\t\tname: \"decimeter\"\n\t},\n\t{\n\t\tabbrev: \"AU\",\n\t\tname: \"astronomical unit\"\n\t},\n\t{\n\t\tabbrev: \"ly\",\n\t\tname: \"light year\"\n\t},\n\t{\n\t\tabbrev: \"pc\",\n\t\tname: \"parsec\"\n\t}\n];\nconst MASS_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"g\",\n\t\tname: \"gram\"\n\t},\n\t{\n\t\tabbrev: \"kg\",\n\t\tname: \"kilogram\"\n\t},\n\t{\n\t\tabbrev: \"mg\",\n\t\tname: \"milligram\"\n\t},\n\t{\n\t\tabbrev: \"µg\",\n\t\tname: \"microgram\"\n\t},\n\t{\n\t\tabbrev: \"t\",\n\t\tname: \"tonne\"\n\t},\n\t{\n\t\tabbrev: \"lb\",\n\t\tname: \"pound\"\n\t},\n\t{\n\t\tabbrev: \"oz\",\n\t\tname: \"ounce\"\n\t},\n\t{\n\t\tabbrev: \"st\",\n\t\tname: \"stone\"\n\t},\n\t{\n\t\tabbrev: \"ct\",\n\t\tname: \"carat\"\n\t},\n\t{\n\t\tabbrev: \"Mt\",\n\t\tname: \"megatonne\"\n\t},\n\t{\n\t\tabbrev: \"gt\",\n\t\tname: \"gigatonne\"\n\t},\n\t{\n\t\tabbrev: \"slug\",\n\t\tname: \"slug\"\n\t},\n\t{\n\t\tabbrev: \"dr\",\n\t\tname: \"dram\"\n\t},\n\t{\n\t\tabbrev: \"gr\",\n\t\tname: \"grain\"\n\t},\n\t{\n\t\tabbrev: \"q\",\n\t\tname: \"quintal\"\n\t}\n];\nconst SPEED_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"m/s\",\n\t\tname: \"meters per second\"\n\t},\n\t{\n\t\tabbrev: \"km/h\",\n\t\tname: \"kilometers per hour\"\n\t},\n\t{\n\t\tabbrev: \"mph\",\n\t\tname: \"miles per hour\"\n\t},\n\t{\n\t\tabbrev: \"kn\",\n\t\tname: \"knot\"\n\t},\n\t{\n\t\tabbrev: \"ft/s\",\n\t\tname: \"feet per second\"\n\t},\n\t{\n\t\tabbrev: \"c\",\n\t\tname: \"speed of light\"\n\t},\n\t{\n\t\tabbrev: \"mach\",\n\t\tname: \"mach\"\n\t},\n\t{\n\t\tabbrev: \"cm/s\",\n\t\tname: \"centimeters per second\"\n\t},\n\t{\n\t\tabbrev: \"in/s\",\n\t\tname: \"inches per second\"\n\t},\n\t{\n\t\tabbrev: \"ly/y\",\n\t\tname: \"light years per year\"\n\t}\n];\nconst ACCELERATION_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"m/s²\",\n\t\tname: \"meters per second squared\"\n\t},\n\t{\n\t\tabbrev: \"ft/s²\",\n\t\tname: \"feet per second squared\"\n\t},\n\t{\n\t\tabbrev: \"g\",\n\t\tname: \"g-force\"\n\t},\n\t{\n\t\tabbrev: \"Gal\",\n\t\tname: \"galileo\"\n\t},\n\t{\n\t\tabbrev: \"cm/s²\",\n\t\tname: \"centimeters per second squared\"\n\t},\n\t{\n\t\tabbrev: \"km/h²\",\n\t\tname: \"kilometers per hour squared\"\n\t},\n\t{\n\t\tabbrev: \"in/s²\",\n\t\tname: \"inches per second squared\"\n\t},\n\t{\n\t\tabbrev: \"mi/h²\",\n\t\tname: \"miles per hour squared\"\n\t},\n\t{\n\t\tabbrev: \"kn/s²\",\n\t\tname: \"knots per second squared\"\n\t}\n];\nconst VOLUME_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"L\",\n\t\tname: \"liter\"\n\t},\n\t{\n\t\tabbrev: \"dL\",\n\t\tname: \"deciliter\"\n\t},\n\t{\n\t\tabbrev: \"mL\",\n\t\tname: \"milliliter\"\n\t},\n\t{\n\t\tabbrev: \"µL\",\n\t\tname: \"microliter\"\n\t},\n\t{\n\t\tabbrev: \"cm³\",\n\t\tname: \"cubic centimeter\"\n\t},\n\t{\n\t\tabbrev: \"m³\",\n\t\tname: \"cubic meter\"\n\t},\n\t{\n\t\tabbrev: \"ft³\",\n\t\tname: \"cubic foot\"\n\t},\n\t{\n\t\tabbrev: \"in³\",\n\t\tname: \"cubic inch\"\n\t},\n\t{\n\t\tabbrev: \"gallon\",\n\t\tname: \"gallon\"\n\t},\n\t{\n\t\tabbrev: \"qt\",\n\t\tname: \"quart\"\n\t},\n\t{\n\t\tabbrev: \"pt\",\n\t\tname: \"pint\"\n\t},\n\t{\n\t\tabbrev: \"fl oz\",\n\t\tname: \"fluid ounce\"\n\t},\n\t{\n\t\tabbrev: \"barrel\",\n\t\tname: \"barrel\"\n\t},\n\t{\n\t\tabbrev: \"tbsp\",\n\t\tname: \"tablespoon\"\n\t},\n\t{\n\t\tabbrev: \"tsp\",\n\t\tname: \"teaspoon\"\n\t}\n];\nconst TEMPERATURE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"°C\",\n\t\tname: \"celsius\"\n\t},\n\t{\n\t\tabbrev: \"°F\",\n\t\tname: \"fahrenheit\"\n\t},\n\t{\n\t\tabbrev: \"K\",\n\t\tname: \"kelvin\"\n\t}\n];\nconst PRESSURE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"Pa\",\n\t\tname: \"pascal\"\n\t},\n\t{\n\t\tabbrev: \"bar\",\n\t\tname: \"bar\"\n\t},\n\t{\n\t\tabbrev: \"atm\",\n\t\tname: \"atmosphere\"\n\t},\n\t{\n\t\tabbrev: \"mmHg\",\n\t\tname: \"millimeters of mercury\"\n\t},\n\t{\n\t\tabbrev: \"psi\",\n\t\tname: \"pounds per square inch\"\n\t}\n];\nconst ENERGY_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"J\",\n\t\tname: \"joule\"\n\t},\n\t{\n\t\tabbrev: \"cal\",\n\t\tname: \"calorie\"\n\t},\n\t{\n\t\tabbrev: \"kcal\",\n\t\tname: \"kilocalorie\"\n\t},\n\t{\n\t\tabbrev: \"kWh\",\n\t\tname: \"kilowatt-hour\"\n\t},\n\t{\n\t\tabbrev: \"BTU\",\n\t\tname: \"british thermal unit\"\n\t},\n\t{\n\t\tabbrev: \"eV\",\n\t\tname: \"electronvolt\"\n\t}\n];\nconst TIME_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"s\",\n\t\tname: \"second\"\n\t},\n\t{\n\t\tabbrev: \"m\",\n\t\tname: \"minute\"\n\t},\n\t{\n\t\tabbrev: \"h\",\n\t\tname: \"hour\"\n\t},\n\t{\n\t\tabbrev: \"day\",\n\t\tname: \"day\"\n\t},\n\t{\n\t\tabbrev: \"week\",\n\t\tname: \"week\"\n\t},\n\t{\n\t\tabbrev: \"mo\",\n\t\tname: \"month\"\n\t},\n\t{\n\t\tabbrev: \"ms\",\n\t\tname: \"millisecond\"\n\t},\n\t{\n\t\tabbrev: \"µs\",\n\t\tname: \"microsecond\"\n\t},\n\t{\n\t\tabbrev: \"ns\",\n\t\tname: \"nanosecond\"\n\t}\n];\nconst POWER_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"W\",\n\t\tname: \"Watt\"\n\t},\n\t{\n\t\tabbrev: \"kW\",\n\t\tname: \"kilowatt\"\n\t},\n\t{\n\t\tabbrev: \"MW\",\n\t\tname: \"megawatt\"\n\t},\n\t{\n\t\tabbrev: \"hp\",\n\t\tname: \"horsepower\"\n\t},\n\t{\n\t\tabbrev: \"GW\",\n\t\tname: \"gigawatt\"\n\t}\n];\nconst FREQUENCY_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"Hz\",\n\t\tname: \"hertz\"\n\t},\n\t{\n\t\tabbrev: \"kHz\",\n\t\tname: \"kilohertz\"\n\t},\n\t{\n\t\tabbrev: \"MHz\",\n\t\tname: \"megahertz\"\n\t},\n\t{\n\t\tabbrev: \"GHz\",\n\t\tname: \"gigahertz\"\n\t},\n\t{\n\t\tabbrev: \"THz\",\n\t\tname: \"terahertz\"\n\t}\n];\nconst VOLTAGE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"V\",\n\t\tname: \"volt\"\n\t},\n\t{\n\t\tabbrev: \"kV\",\n\t\tname: \"kilovolt\"\n\t},\n\t{\n\t\tabbrev: \"mV\",\n\t\tname: \"millivolt\"\n\t},\n\t{\n\t\tabbrev: \"µV\",\n\t\tname: \"microvolt\"\n\t}\n];\nconst CURRENT_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"A\",\n\t\tname: \"ampere\"\n\t},\n\t{\n\t\tabbrev: \"mA\",\n\t\tname: \"milliampere\"\n\t},\n\t{\n\t\tabbrev: \"µA\",\n\t\tname: \"microampere\"\n\t},\n\t{\n\t\tabbrev: \"kA\",\n\t\tname: \"kiloampere\"\n\t}\n];\nconst RESISTANCE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"Ω\",\n\t\tname: \"ohm\"\n\t},\n\t{\n\t\tabbrev: \"kΩ\",\n\t\tname: \"kiloohm\"\n\t},\n\t{\n\t\tabbrev: \"MΩ\",\n\t\tname: \"megaohm\"\n\t}\n];\nconst LUMINOSITY_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"cd\",\n\t\tname: \"candela\"\n\t},\n\t{\n\t\tabbrev: \"lm\",\n\t\tname: \"lumen\"\n\t},\n\t{\n\t\tabbrev: \"lx\",\n\t\tname: \"lux\"\n\t}\n];\nconst AREA_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"m²\",\n\t\tname: \"square meter\"\n\t},\n\t{\n\t\tabbrev: \"cm²\",\n\t\tname: \"square centimeter\"\n\t},\n\t{\n\t\tabbrev: \"mm²\",\n\t\tname: \"square millimeter\"\n\t},\n\t{\n\t\tabbrev: \"km²\",\n\t\tname: \"square kilometer\"\n\t},\n\t{\n\t\tabbrev: \"ft²\",\n\t\tname: \"square foot\"\n\t},\n\t{\n\t\tabbrev: \"in²\",\n\t\tname: \"square inch\"\n\t},\n\t{\n\t\tabbrev: \"acre\",\n\t\tname: \"acre\"\n\t},\n\t{\n\t\tabbrev: \"ha\",\n\t\tname: \"hectare\"\n\t}\n];\n\n//#endregion\n//#region src/Nesting.ts\n/**\n* A paired bracketing strategy which matches on\n* bracket characters:\n*\n* - parenthesis: `(` -> `)`\n* - square brackets: `[` -> `]`\n* - angle brackets: `<` -> `>`\n* - and curlies: `{` -> `}`\n*/\nconst BRACKET_NESTING = {\n\t\"{\": \"}\",\n\t\"[\": \"]\",\n\t\"<\": \">\",\n\t\"(\": \")\"\n};\n/**\n* A paired bracketing strategy which includes the three\n* main quotation symbols:\n*\n* - single quote (**'**),\n* - double quote (**\"**),\n* - and backtick (**`**)\n*/\nconst QUOTE_NESTING = {\n\t\"\\\"\": \"\\\"\",\n\t\"'\": \"'\",\n\t\"`\": \"`\"\n};\n/**\n* A paired bracketing strategy which includes:\n*\n* - all bracket characters\n* - all quote characters\n*/\nconst BRACKET_AND_QUOTE_NESTING = {\n\t\"{\": \"}\",\n\t\"[\": \"]\",\n\t\"<\": \">\",\n\t\"(\": \")\",\n\t\"\\\"\": \"\\\"\",\n\t\"'\": \"'\",\n\t\"`\": \"`\"\n};\n\n//#endregion\n//#region src/NetworkConstants.ts\nconst IPv6 = {\n\tLoopback: \"::1/128\",\n\tMulticast: \"ff00::/8\",\n\tIPv4MappedAddresses: \"::FFFF:0:0/96\",\n\tUnicast: \"fe80::/10\",\n\tDocumentationAddresses: \"2001:db8::/32\"\n};\nconst IPv4 = { Loopback: \"127.0.0.1\" };\nconst NETWORK_PROTOCOL_INSECURE = [\n\t\"http\",\n\t\"ftp\",\n\t\"ws\",\n\t\"dns\",\n\t\"telnet\",\n\t\"imap\",\n\t\"pop3\",\n\t\"smtp\"\n];\nconst NETWORK_PROTOCOL_SECURE = [\n\t\"https\",\n\t\"sftp\",\n\t\"wss\",\n\t\"sdns\",\n\t\"ssh\"\n];\nconst NETWORK_PROTOCOL = [...NETWORK_PROTOCOL_INSECURE, ...NETWORK_PROTOCOL_SECURE];\n/**\n* Lookup of protocols which provides a tuple of: `[insecure,secure]`\n*/\nconst NETWORK_PROTOCOL_LOOKUP = {\n\thttp: [\"http\", \"https\"],\n\tftp: [\"ftp\", \"sftp\"],\n\tfile: [\"\", \"file\"],\n\tws: [\"ws\", \"wss\"],\n\tssh: [\"\", \"ssh\"],\n\tscp: [\"\", \"scp\"],\n\ttelnet: [\"telnet\", \"\"],\n\tdns: [\"dns\", \"sdns\"]\n};\nconst PROTOCOL_DEFAULT_PORTS = {\n\thttp: 80,\n\thttps: 443,\n\tws: 80,\n\twss: 443,\n\tssh: 22,\n\ttelnet: 23,\n\tdns: 53,\n\tsdns: 853,\n\tsmtp: 25,\n\timap: 142,\n\tpop3: 110,\n\tftp: 21,\n\tsftp: 22\n};\n/**\n* **TLD**\n*\n* Top level domains in DNS. This is not a comprehensive list but\n* takes the core ones and adds in some popular choices.\n*/\nconst TOP_LEVEL_DOMAINS = [\n\t\"com\",\n\t\"org\",\n\t\"net\",\n\t\"int\",\n\t\"edu\",\n\t\"gov\",\n\t\"io\",\n\t\"mil\",\n\t\"arpa\",\n\t\"academy\",\n\t\"agency\",\n\t\"analytics\",\n\t\"app\",\n\t\"art\",\n\t\"bet\",\n\t\"beer\",\n\t\"book\",\n\t\"coffee\",\n\t\"dot\",\n\t\"doctor\",\n\t\"dog\",\n\t\"family\",\n\t\"game\",\n\t\"guide\",\n\t\"guru\",\n\t\"info\",\n\t\"inc\",\n\t\"news\",\n\t\"new\",\n\t\"ninja\",\n\t\"now\",\n\t\"online\",\n\t\"page\",\n\t\"photos\",\n\t\"place\",\n\t\"pub\",\n\t\"room\",\n\t\"show\",\n\t\"technology\",\n\t\"tel\",\n\t\"tech\",\n\t\"team\",\n\t\"talk\",\n\t\"travel\",\n\t\"website\",\n\t\"work\",\n\t\"works\",\n\t\"wow\",\n\t\"uk\",\n\t\"us\",\n\t\"fr\",\n\t\"de\",\n\t\"eu\",\n\t\"london\"\n];\n\n//#endregion\n//#region src/Never.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant$2(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n/**\n* **Never**\n*\n* A runtime constant that is meant to represent the `never` type.\n*\n* **Related:** you can use the `never()` runtime utility to give a\n* runtime value but force it's type to `never`.\n*/\nconst Never = createConstant$2(\"never\");\n\n//#endregion\n//#region src/News.ts\nconst US_NEWS = [\n\t{\n\t\tcompany: \"New York Times\",\n\t\tbaseUrls: [\"www.nytimes.com\"]\n\t},\n\t{\n\t\tcompany: \"CNN\",\n\t\tbaseUrls: [\"www.cnn.com\"]\n\t},\n\t{\n\t\tcompany: \"Fox News\",\n\t\tbaseUrls: [\"www.foxnews.com\"]\n\t},\n\t{\n\t\tcompany: \"NBC News\",\n\t\tbaseUrls: [\"www.nbcnews.com\", \"www.msnbc.com\"]\n\t},\n\t{\n\t\tcompany: \"ABC News\",\n\t\tbaseUrls: [\"abcnews.go.com\"]\n\t},\n\t{\n\t\tcompany: \"The Washington Post\",\n\t\tbaseUrls: [\"www.washingtonpost.com\"]\n\t},\n\t{\n\t\tcompany: \"USA Today\",\n\t\tbaseUrls: [\"www.usatoday.com\"]\n\t},\n\t{\n\t\tcompany: \"Bloomberg\",\n\t\tbaseUrls: [\"www.bloomberg.com\"]\n\t},\n\t{\n\t\tcompany: \"NPR\",\n\t\tbaseUrls: [\"www.npr.org\"]\n\t},\n\t{\n\t\tcompany: \"CBS News\",\n\t\tbaseUrls: [\"www.cbsnews.com\"]\n\t},\n\t{\n\t\tcompany: \"The Wall Street Journal\",\n\t\tbaseUrls: [\"www.wsj.com\"]\n\t},\n\t{\n\t\tcompany: \"Associated Press (AP)\",\n\t\tbaseUrls: [\"www.apnews.com\", \"www.ap.org\"]\n\t},\n\t{\n\t\tcompany: \"Reuters\",\n\t\tbaseUrls: [\"www.reuters.com\"]\n\t},\n\t{\n\t\tcompany: \"Newsweek\",\n\t\tbaseUrls: [\"www.newsweek.com\"]\n\t},\n\t{\n\t\tcompany: \"Politico\",\n\t\tbaseUrls: [\"www.politico.com\"]\n\t},\n\t{\n\t\tcompany: \"The Atlantic\",\n\t\tbaseUrls: [\"www.theatlantic.com\"]\n\t},\n\t{\n\t\tcompany: \"Nexstar Media Group\",\n\t\tbaseUrls: [\"www.nexstar.tv\"]\n\t},\n\t{\n\t\tcompany: \"PBS News\",\n\t\tbaseUrls: [\"www.pbs.org\"]\n\t},\n\t{\n\t\tcompany: \"HuffPost\",\n\t\tbaseUrls: [\"www.huffpost.com\"]\n\t},\n\t{\n\t\tcompany: \"The Boston Globe\",\n\t\tbaseUrls: [\"www.bostonglobe.com\"]\n\t}\n];\nconst UK_NEWS = [\n\t{\n\t\tcompany: \"BBC\",\n\t\tbaseUrls: [\"www.bbc.co.uk\", \"www.bbc.com\"]\n\t},\n\t{\n\t\tcompany: \"The Guardian\",\n\t\tbaseUrls: [\"www.theguardian.com/uk\"]\n\t},\n\t{\n\t\tcompany: \"The Daily Mail\",\n\t\tbaseUrls: [\"www.dailymail.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"The Sun\",\n\t\tbaseUrls: [\"www.thesun.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"The Times\",\n\t\tbaseUrls: [\"www.thetimes.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Sky News\",\n\t\tbaseUrls: [\"news.sky.com\"]\n\t},\n\t{\n\t\tcompany: \"The Telegraph\",\n\t\tbaseUrls: [\"www.telegraph.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"ITV News\",\n\t\tbaseUrls: [\"www.itv.com/news\"]\n\t},\n\t{\n\t\tcompany: \"Financial Times\",\n\t\tbaseUrls: [\"www.ft.com\"]\n\t},\n\t{\n\t\tcompany: \"Metro\",\n\t\tbaseUrls: [\"www.metro.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"The Independent\",\n\t\tbaseUrls: [\"www.independent.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Evening Standard\",\n\t\tbaseUrls: [\"www.standard.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Daily Mirror\",\n\t\tbaseUrls: [\"www.mirror.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Channel 4 News\",\n\t\tbaseUrls: [\"www.channel4.com/news\"]\n\t},\n\t{\n\t\tcompany: \"LBC\",\n\t\tbaseUrls: [\"www.lbc.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Daily Express\",\n\t\tbaseUrls: [\"www.express.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Birmingham Mail\",\n\t\tbaseUrls: [\"www.birminghammail.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Manchester Evening News\",\n\t\tbaseUrls: [\"www.manchestereveningnews.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"The Scotsman\",\n\t\tbaseUrls: [\"www.scotsman.com\"]\n\t},\n\t{\n\t\tcompany: \"Daily Record\",\n\t\tbaseUrls: [\"www.dailyrecord.co.uk\"]\n\t}\n];\nconst GERMAN_NEWS = [\n\t{\n\t\tcompany: \"BILD\",\n\t\tbaseUrls: [\"www.bild.de\"]\n\t},\n\t{\n\t\tcompany: \"Die Zeit\",\n\t\tbaseUrls: [\"www.zeit.de\"]\n\t},\n\t{\n\t\tcompany: \"Frankfurter Allgemeine Zeitung\",\n\t\tbaseUrls: [\"www.faz.net\"]\n\t},\n\t{\n\t\tcompany: \"Süddeutsche Zeitung\",\n\t\tbaseUrls: [\"www.sueddeutsche.de\"]\n\t},\n\t{\n\t\tcompany: \"Der Spiegel\",\n\t\tbaseUrls: [\"www.spiegel.de\"]\n\t},\n\t{\n\t\tcompany: \"Die Welt\",\n\t\tbaseUrls: [\"www.welt.de\"]\n\t},\n\t{\n\t\tcompany: \"Tagesschau\",\n\t\tbaseUrls: [\"www.tagesschau.de\"]\n\t},\n\t{\n\t\tcompany: \"t-online\",\n\t\tbaseUrls: [\"www.t-online.de\"]\n\t},\n\t{\n\t\tcompany: \"n-tv\",\n\t\tbaseUrls: [\"www.n-tv.de\"]\n\t},\n\t{\n\t\tcompany: \"Handelsblatt\",\n\t\tbaseUrls: [\"www.handelsblatt.com\"]\n\t},\n\t{\n\t\tcompany: \"Focus Online\",\n\t\tbaseUrls: [\"www.focus.de\"]\n\t},\n\t{\n\t\tcompany: \"Frankfurter Rundschau\",\n\t\tbaseUrls: [\"www.fr.de\", \"www.fr-online.de\"]\n\t},\n\t{\n\t\tcompany: \"taz - die tageszeitung\",\n\t\tbaseUrls: [\"www.taz.de\"]\n\t},\n\t{\n\t\tcompany: \"Der Tagesspiegel\",\n\t\tbaseUrls: [\"www.tagesspiegel.de\"]\n\t},\n\t{\n\t\tcompany: \"Rheinische Post\",\n\t\tbaseUrls: [\"www.rp-online.de\"]\n\t},\n\t{\n\t\tcompany: \"Express\",\n\t\tbaseUrls: [\"www.express.de\"]\n\t},\n\t{\n\t\tcompany: \"Münchner Merkur\",\n\t\tbaseUrls: [\"www.merkur.de\"]\n\t},\n\t{\n\t\tcompany: \"Stuttgarter Zeitung\",\n\t\tbaseUrls: [\"www.stuttgarter-zeitung.de\"]\n\t},\n\t{\n\t\tcompany: \"Hamburger Abendblatt\",\n\t\tbaseUrls: [\"www.abendblatt.de\"]\n\t},\n\t{\n\t\tcompany: \"Deutsche Welle\",\n\t\tbaseUrls: [\"www.dw.com\"]\n\t}\n];\nconst FRENCH_NEWS = [\n\t{\n\t\tcompany: \"Le Figaro\",\n\t\tbaseUrls: [\"www.lefigaro.fr\"]\n\t},\n\t{\n\t\tcompany: \"Le Monde\",\n\t\tbaseUrls: [\"www.lemonde.fr\"]\n\t},\n\t{\n\t\tcompany: \"France 24\",\n\t\tbaseUrls: [\"www.france24.com\"]\n\t},\n\t{\n\t\tcompany: \"Libération\",\n\t\tbaseUrls: [\"www.liberation.fr\"]\n\t},\n\t{\n\t\tcompany: \"Les Echos\",\n\t\tbaseUrls: [\"www.lesechos.fr\"]\n\t},\n\t{\n\t\tcompany: \"Ouest-France\",\n\t\tbaseUrls: [\"www.ouest-france.fr\"]\n\t},\n\t{\n\t\tcompany: \"Le Parisien\",\n\t\tbaseUrls: [\"www.leparisien.fr\"]\n\t},\n\t{\n\t\tcompany: \"Mediapart\",\n\t\tbaseUrls: [\"www.mediapart.fr\"]\n\t},\n\t{\n\t\tcompany: \"L'Express\",\n\t\tbaseUrls: [\"www.lexpress.fr\"]\n\t},\n\t{\n\t\tcompany: \"La Croix\",\n\t\tbaseUrls: [\"www.la-croix.com\"]\n\t},\n\t{\n\t\tcompany: \"20 Minutes\",\n\t\tbaseUrls: [\"www.20minutes.fr\"]\n\t},\n\t{\n\t\tcompany: \"Courrier International\",\n\t\tbaseUrls: [\"www.courrierinternational.com\"]\n\t},\n\t{\n\t\tcompany: \"Le Point\",\n\t\tbaseUrls: [\"www.lepoint.fr\"]\n\t},\n\t{\n\t\tcompany: \"Marianne\",\n\t\tbaseUrls: [\"www.marianne.net\"]\n\t},\n\t{\n\t\tcompany: \"BFM TV\",\n\t\tbaseUrls: [\"www.bfmtv.com\"]\n\t},\n\t{\n\t\tcompany: \"RTL France\",\n\t\tbaseUrls: [\"www.rtl.fr\"]\n\t},\n\t{\n\t\tcompany: \"Charlie Hebdo\",\n\t\tbaseUrls: [\"www.charliehebdo.fr\"]\n\t},\n\t{\n\t\tcompany: \"Challenges\",\n\t\tbaseUrls: [\"www.challenges.fr\"]\n\t},\n\t{\n\t\tcompany: \"Télérama\",\n\t\tbaseUrls: [\"www.telerama.fr\"]\n\t},\n\t{\n\t\tcompany: \"L'Obs\",\n\t\tbaseUrls: [\"www.nouvelobs.com\"]\n\t}\n];\nconst CANADIAN_NEWS = [\n\t{\n\t\tcompany: \"CBC News\",\n\t\tbaseUrls: [\"www.cbc.ca\"]\n\t},\n\t{\n\t\tcompany: \"CTV News\",\n\t\tbaseUrls: [\"www.ctvnews.ca\"]\n\t},\n\t{\n\t\tcompany: \"The Globe and Mail\",\n\t\tbaseUrls: [\"www.theglobeandmail.com\"]\n\t},\n\t{\n\t\tcompany: \"Global News\",\n\t\tbaseUrls: [\"www.globalnews.ca\"]\n\t},\n\t{\n\t\tcompany: \"Toronto Star\",\n\t\tbaseUrls: [\"www.thestar.com\"]\n\t},\n\t{\n\t\tcompany: \"National Post\",\n\t\tbaseUrls: [\"www.nationalpost.com\"]\n\t},\n\t{\n\t\tcompany: \"La Presse\",\n\t\tbaseUrls: [\"www.lapresse.ca\"]\n\t},\n\t{\n\t\tcompany: \"Radio-Canada\",\n\t\tbaseUrls: [\"ici.radio-canada.ca\"]\n\t},\n\t{\n\t\tcompany: \"The Canadian Press\",\n\t\tbaseUrls: [\"www.thecanadianpress.com\"]\n\t},\n\t{\n\t\tcompany: \"Financial Post\",\n\t\tbaseUrls: [\"financialpost.com\"]\n\t},\n\t{\n\t\tcompany: \"The Weather Network\",\n\t\tbaseUrls: [\"www.theweathernetwork.com\"]\n\t},\n\t{\n\t\tcompany: \"Le Devoir\",\n\t\tbaseUrls: [\"www.ledevoir.com\"]\n\t},\n\t{\n\t\tcompany: \"TVA Nouvelles\",\n\t\tbaseUrls: [\"www.tvanouvelles.ca\"]\n\t},\n\t{\n\t\tcompany: \"Journal de Montréal\",\n\t\tbaseUrls: [\"www.journaldemontreal.com\"]\n\t},\n\t{\n\t\tcompany: \"CityNews\",\n\t\tbaseUrls: [\"www.citynews.ca\"]\n\t},\n\t{\n\t\tcompany: \"BNN Bloomberg\",\n\t\tbaseUrls: [\"www.bnnbloomberg.ca\"]\n\t},\n\t{\n\t\tcompany: \"The Hamilton Spectator\",\n\t\tbaseUrls: [\"www.thespec.com\"]\n\t},\n\t{\n\t\tcompany: \"Ottawa Citizen\",\n\t\tbaseUrls: [\"ottawacitizen.com\"]\n\t},\n\t{\n\t\tcompany: \"Windsor Star\",\n\t\tbaseUrls: [\"windsorstar.com\"]\n\t},\n\t{\n\t\tcompany: \"Edmonton Journal\",\n\t\tbaseUrls: [\"edmontonjournal.com\"]\n\t}\n];\nconst DUTCH_NEWS = [\n\t{\n\t\tcompany: \"Algemeen Dagblad (AD)\",\n\t\tbaseUrls: [\"www.ad.nl\"]\n\t},\n\t{\n\t\tcompany: \"NOS\",\n\t\tbaseUrls: [\"www.nos.nl\"]\n\t},\n\t{\n\t\tcompany: \"De Telegraaf\",\n\t\tbaseUrls: [\"www.telegraaf.nl\"]\n\t},\n\t{\n\t\tcompany: \"NU.nl\",\n\t\tbaseUrls: [\"www.nu.nl\"]\n\t},\n\t{\n\t\tcompany: \"Volkskrant\",\n\t\tbaseUrls: [\"www.volkskrant.nl\"]\n\t},\n\t{\n\t\tcompany: \"NRC Handelsblad\",\n\t\tbaseUrls: [\"www.nrc.nl\"]\n\t},\n\t{\n\t\tcompany: \"Trouw\",\n\t\tbaseUrls: [\"www.trouw.nl\"]\n\t},\n\t{\n\t\tcompany: \"Het Parool\",\n\t\tbaseUrls: [\"www.parool.nl\"]\n\t},\n\t{\n\t\tcompany: \"RTL Nieuws\",\n\t\tbaseUrls: [\"www.rtlnieuws.nl\"]\n\t},\n\t{\n\t\tcompany: \"BNR Nieuwsradio\",\n\t\tbaseUrls: [\"www.bnr.nl\"]\n\t},\n\t{\n\t\tcompany: \"Emerce\",\n\t\tbaseUrls: [\"www.emerce.nl\"]\n\t},\n\t{\n\t\tcompany: \"VPRO\",\n\t\tbaseUrls: [\"www.vpro.nl\"]\n\t},\n\t{\n\t\tcompany: \"De Gelderlander\",\n\t\tbaseUrls: [\"www.gelderlander.nl\"]\n\t},\n\t{\n\t\tcompany: \"Friesch Dagblad\",\n\t\tbaseUrls: [\"www.frieschdagblad.nl\"]\n\t},\n\t{\n\t\tcompany: \"De Stentor\",\n\t\tbaseUrls: [\"www.destentor.nl\"]\n\t},\n\t{\n\t\tcompany: \"Metro Nieuws\",\n\t\tbaseUrls: [\"www.metronieuws.nl\"]\n\t},\n\t{\n\t\tcompany: \"ANP\",\n\t\tbaseUrls: [\"www.anp.nl\"]\n\t},\n\t{\n\t\tcompany: \"Dagblad van het Noorden\",\n\t\tbaseUrls: [\"www.dvhn.nl\"]\n\t},\n\t{\n\t\tcompany: \"Reformatorisch Dagblad\",\n\t\tbaseUrls: [\"www.rd.nl\"]\n\t},\n\t{\n\t\tcompany: \"Financieele Dagblad\",\n\t\tbaseUrls: [\"www.fd.nl\"]\n\t}\n];\nconst ITALIAN_NEWS = [\n\t{\n\t\tcompany: \"ANSA\",\n\t\tbaseUrls: [\"www.ansa.it\", \"www.ansamed.info\"]\n\t},\n\t{\n\t\tcompany: \"Corriere della Sera\",\n\t\tbaseUrls: [\"www.corriere.it\"]\n\t},\n\t{\n\t\tcompany: \"la Repubblica\",\n\t\tbaseUrls: [\"www.repubblica.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Sole 24 Ore\",\n\t\tbaseUrls: [\"www.ilsole24ore.com\"]\n\t},\n\t{\n\t\tcompany: \"La Stampa\",\n\t\tbaseUrls: [\"www.lastampa.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Messaggero\",\n\t\tbaseUrls: [\"www.ilmessaggero.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Giornale\",\n\t\tbaseUrls: [\"www.ilgiornale.it\"]\n\t},\n\t{\n\t\tcompany: \"Avvenire\",\n\t\tbaseUrls: [\"www.avvenire.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Fatto Quotidiano\",\n\t\tbaseUrls: [\"www.ilfattoquotidiano.it\"]\n\t},\n\t{\n\t\tcompany: \"La Nazione\",\n\t\tbaseUrls: [\"www.lanazione.it\"]\n\t},\n\t{\n\t\tcompany: \"TgCom24\",\n\t\tbaseUrls: [\"www.tgcom24.mediaset.it\"]\n\t},\n\t{\n\t\tcompany: \"Sky TG24\",\n\t\tbaseUrls: [\"tg24.sky.it\"]\n\t},\n\t{\n\t\tcompany: \"Rai News\",\n\t\tbaseUrls: [\"www.rainews.it\"]\n\t},\n\t{\n\t\tcompany: \"Gazzetta dello Sport\",\n\t\tbaseUrls: [\"www.gazzetta.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Resto del Carlino\",\n\t\tbaseUrls: [\"www.ilrestodelcarlino.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Mattino\",\n\t\tbaseUrls: [\"www.ilmattino.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Secolo XIX\",\n\t\tbaseUrls: [\"www.ilsecoloxix.it\"]\n\t},\n\t{\n\t\tcompany: \"Italia Oggi\",\n\t\tbaseUrls: [\"www.italiaoggi.it\"]\n\t},\n\t{\n\t\tcompany: \"Libero\",\n\t\tbaseUrls: [\"www.liberoquotidiano.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Tirreno\",\n\t\tbaseUrls: [\"www.iltirreno.it\"]\n\t}\n];\nconst BELGIUM_NEWS = [\n\t{\n\t\tcompany: \"Het Laatste Nieuws (HLN)\",\n\t\tbaseUrls: [\"www.hln.be\"]\n\t},\n\t{\n\t\tcompany: \"Nieuwsblad\",\n\t\tbaseUrls: [\"www.nieuwsblad.be\"]\n\t},\n\t{\n\t\tcompany: \"RTBF\",\n\t\tbaseUrls: [\"www.rtbf.be\"]\n\t},\n\t{\n\t\tcompany: \"Sudinfo\",\n\t\tbaseUrls: [\"www.sudinfo.be\"]\n\t},\n\t{\n\t\tcompany: \"7sur7\",\n\t\tbaseUrls: [\"www.7sur7.be\"]\n\t},\n\t{\n\t\tcompany: \"Le Soir\",\n\t\tbaseUrls: [\"www.lesoir.be\"]\n\t},\n\t{\n\t\tcompany: \"De Standaard\",\n\t\tbaseUrls: [\"www.standaard.be\"]\n\t},\n\t{\n\t\tcompany: \"VRT NWS\",\n\t\tbaseUrls: [\"www.vrt.be\"]\n\t},\n\t{\n\t\tcompany: \"La Libre\",\n\t\tbaseUrls: [\"www.lalibre.be\"]\n\t},\n\t{\n\t\tcompany: \"Gazet van Antwerpen\",\n\t\tbaseUrls: [\"www.gva.be\"]\n\t},\n\t{\n\t\tcompany: \"Het Belang van Limburg\",\n\t\tbaseUrls: [\"www.hbvl.be\"]\n\t},\n\t{\n\t\tcompany: \"De Morgen\",\n\t\tbaseUrls: [\"www.demorgen.be\"]\n\t},\n\t{\n\t\tcompany: \"L'Avenir\",\n\t\tbaseUrls: [\"www.lavenir.net\"]\n\t},\n\t{\n\t\tcompany: \"The Brussels Times\",\n\t\tbaseUrls: [\"www.brusselstimes.com\"]\n\t},\n\t{\n\t\tcompany: \"Metro Belgique\",\n\t\tbaseUrls: [\"nl.metrotime.be\"]\n\t},\n\t{\n\t\tcompany: \"Sudpresse\",\n\t\tbaseUrls: [\"www.sudpress.be\"]\n\t},\n\t{\n\t\tcompany: \"Flamish Radio and TV Broadcasting Organization (VRT)\",\n\t\tbaseUrls: [\"www.vrt.be\"]\n\t},\n\t{\n\t\tcompany: \"Knack\",\n\t\tbaseUrls: [\"www.knack.be\"]\n\t},\n\t{\n\t\tcompany: \"De Tijd\",\n\t\tbaseUrls: [\"www.tijd.be\"]\n\t},\n\t{\n\t\tcompany: \"BX1\",\n\t\tbaseUrls: [\"www.bx1.be\"]\n\t}\n];\nconst MEXICAN_NEWS = [\n\t{\n\t\tcompany: \"Televisa\",\n\t\tbaseUrls: [\"www.televisa.news\"]\n\t},\n\t{\n\t\tcompany: \"El Universal\",\n\t\tbaseUrls: [\"www.eluniversal.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Milenio\",\n\t\tbaseUrls: [\"www.milenio.com\"]\n\t},\n\t{\n\t\tcompany: \"Excélsior\",\n\t\tbaseUrls: [\"www.excelsior.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Reforma\",\n\t\tbaseUrls: [\"www.reforma.com\"]\n\t},\n\t{\n\t\tcompany: \"La Jornada\",\n\t\tbaseUrls: [\"www.jornada.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"El Financiero\",\n\t\tbaseUrls: [\"www.elfinanciero.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Proceso\",\n\t\tbaseUrls: [\"www.proceso.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"SDP Noticias\",\n\t\tbaseUrls: [\"www.sdpnoticias.com\"]\n\t},\n\t{\n\t\tcompany: \"Diario de Yucatán\",\n\t\tbaseUrls: [\"www.yucatan.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"El Economista\",\n\t\tbaseUrls: [\"www.eleconomista.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"El Heraldo de México\",\n\t\tbaseUrls: [\"www.heraldodemexico.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Noticieros Televisa\",\n\t\tbaseUrls: [\"noticieros.televisa.com\"]\n\t},\n\t{\n\t\tcompany: \"Expansión\",\n\t\tbaseUrls: [\"expansion.mx\"]\n\t},\n\t{\n\t\tcompany: \"La Razón\",\n\t\tbaseUrls: [\"www.razon.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Noroeste\",\n\t\tbaseUrls: [\"www.noroeste.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Uniradio Noticias\",\n\t\tbaseUrls: [\"www.uniradionoticias.com\"]\n\t},\n\t{\n\t\tcompany: \"El Imparcial\",\n\t\tbaseUrls: [\"www.elimparcial.com\"]\n\t},\n\t{\n\t\tcompany: \"Publimetro México\",\n\t\tbaseUrls: [\"www.publimetro.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Notimex\",\n\t\tbaseUrls: [\"www.notimex.gob.mx\"]\n\t}\n];\nconst SPANISH_NEWS = [\n\t{\n\t\tcompany: \"El País\",\n\t\tbaseUrls: [\"www.elpais.com\"]\n\t},\n\t{\n\t\tcompany: \"El Mundo\",\n\t\tbaseUrls: [\"www.elmundo.es\"]\n\t},\n\t{\n\t\tcompany: \"ABC\",\n\t\tbaseUrls: [\"www.abc.es\"]\n\t},\n\t{\n\t\tcompany: \"La Vanguardia\",\n\t\tbaseUrls: [\"www.lavanguardia.com\"]\n\t},\n\t{\n\t\tcompany: \"El Confidencial\",\n\t\tbaseUrls: [\"www.elconfidencial.com\"]\n\t},\n\t{\n\t\tcompany: \"La Razón\",\n\t\tbaseUrls: [\"www.larazon.es\"]\n\t},\n\t{\n\t\tcompany: \"20 Minutos\",\n\t\tbaseUrls: [\"www.20minutos.es\"]\n\t},\n\t{\n\t\tcompany: \"Agencia EFE\",\n\t\tbaseUrls: [\"www.efe.com\"]\n\t},\n\t{\n\t\tcompany: \"Europa Press\",\n\t\tbaseUrls: [\"www.europapress.es\"]\n\t},\n\t{\n\t\tcompany: \"Diario AS\",\n\t\tbaseUrls: [\"www.as.com\"]\n\t},\n\t{\n\t\tcompany: \"Mundo Deportivo\",\n\t\tbaseUrls: [\"www.mundodeportivo.com\"]\n\t},\n\t{\n\t\tcompany: \"El Periódico\",\n\t\tbaseUrls: [\"www.elperiodico.com\"]\n\t},\n\t{\n\t\tcompany: \"Cinco Días\",\n\t\tbaseUrls: [\"www.cincodias.com\"]\n\t},\n\t{\n\t\tcompany: \"Expansión\",\n\t\tbaseUrls: [\"www.expansion.com\"]\n\t},\n\t{\n\t\tcompany: \"La Información\",\n\t\tbaseUrls: [\"www.lainformacion.com\"]\n\t},\n\t{\n\t\tcompany: \"OK Diario\",\n\t\tbaseUrls: [\"www.okdiario.com\"]\n\t},\n\t{\n\t\tcompany: \"Heraldo de Aragón\",\n\t\tbaseUrls: [\"www.heraldo.es\"]\n\t},\n\t{\n\t\tcompany: \"Faro de Vigo\",\n\t\tbaseUrls: [\"www.farodevigo.es\"]\n\t},\n\t{\n\t\tcompany: \"El Correo\",\n\t\tbaseUrls: [\"www.elcorreo.com\"]\n\t},\n\t{\n\t\tcompany: \"Diario Sur\",\n\t\tbaseUrls: [\"www.diariosur.es\"]\n\t}\n];\nconst INDIAN_NEWS = [\n\t{\n\t\tcompany: \"The Times of India\",\n\t\tbaseUrls: [\"timesofindia.indiatimes.com\"]\n\t},\n\t{\n\t\tcompany: \"The Hindu\",\n\t\tbaseUrls: [\"www.thehindu.com\"]\n\t},\n\t{\n\t\tcompany: \"Hindustan Times\",\n\t\tbaseUrls: [\"www.hindustantimes.com\"]\n\t},\n\t{\n\t\tcompany: \"NDTV\",\n\t\tbaseUrls: [\"www.ndtv.com\"]\n\t},\n\t{\n\t\tcompany: \"India Today\",\n\t\tbaseUrls: [\"www.indiatoday.in\"]\n\t},\n\t{\n\t\tcompany: \"Zee News\",\n\t\tbaseUrls: [\"zeenews.india.com\"]\n\t},\n\t{\n\t\tcompany: \"Indian Express\",\n\t\tbaseUrls: [\"indianexpress.com\"]\n\t},\n\t{\n\t\tcompany: \"The Economic Times\",\n\t\tbaseUrls: [\"economictimes.indiatimes.com\"]\n\t},\n\t{\n\t\tcompany: \"Deccan Herald\",\n\t\tbaseUrls: [\"www.deccanherald.com\"]\n\t},\n\t{\n\t\tcompany: \"DNA India\",\n\t\tbaseUrls: [\"www.dnaindia.com\"]\n\t},\n\t{\n\t\tcompany: \"The Print\",\n\t\tbaseUrls: [\"theprint.in\"]\n\t},\n\t{\n\t\tcompany: \"News18\",\n\t\tbaseUrls: [\"www.news18.com\"]\n\t},\n\t{\n\t\tcompany: \"Scroll.in\",\n\t\tbaseUrls: [\"scroll.in\"]\n\t},\n\t{\n\t\tcompany: \"Asian News International (ANI)\",\n\t\tbaseUrls: [\"www.aninews.in\"]\n\t},\n\t{\n\t\tcompany: \"Outlook India\",\n\t\tbaseUrls: [\"www.outlookindia.com\"]\n\t},\n\t{\n\t\tcompany: \"Business Standard\",\n\t\tbaseUrls: [\"www.business-standard.com\"]\n\t},\n\t{\n\t\tcompany: \"Mint\",\n\t\tbaseUrls: [\"www.livemint.com\"]\n\t},\n\t{\n\t\tcompany: \"OneIndia\",\n\t\tbaseUrls: [\"www.oneindia.com\"]\n\t},\n\t{\n\t\tcompany: \"Quint\",\n\t\tbaseUrls: [\"www.thequint.com\"]\n\t},\n\t{\n\t\tcompany: \"Free Press Journal\",\n\t\tbaseUrls: [\"www.freepressjournal.in\"]\n\t}\n];\nconst CHINESE_NEWS = [\n\t{\n\t\tcompany: \"Xinhua News Agency\",\n\t\tbaseUrls: [\"www.xinhuanet.com\"]\n\t},\n\t{\n\t\tcompany: \"China Central Television (CCTV)\",\n\t\tbaseUrls: [\"www.cctv.com\"]\n\t},\n\t{\n\t\tcompany: \"China Daily\",\n\t\tbaseUrls: [\"www.chinadaily.com.cn\"]\n\t},\n\t{\n\t\tcompany: \"CGTN (China Global Television Network)\",\n\t\tbaseUrls: [\"www.cgtn.com\"]\n\t},\n\t{\n\t\tcompany: \"People's Daily\",\n\t\tbaseUrls: [\"www.people.cn\"]\n\t},\n\t{\n\t\tcompany: \"Global Times\",\n\t\tbaseUrls: [\"www.globaltimes.cn\"]\n\t},\n\t{\n\t\tcompany: \"South China Morning Post\",\n\t\tbaseUrls: [\"www.scmp.com\"]\n\t},\n\t{\n\t\tcompany: \"Shanghai Daily\",\n\t\tbaseUrls: [\"www.shanghaidaily.com\"]\n\t},\n\t{\n\t\tcompany: \"China News Service\",\n\t\tbaseUrls: [\"www.ecns.cn\"]\n\t},\n\t{\n\t\tcompany: \"Caixin\",\n\t\tbaseUrls: [\"www.caixinglobal.com\"]\n\t},\n\t{\n\t\tcompany: \"The Paper\",\n\t\tbaseUrls: [\"www.thepaper.cn\"]\n\t},\n\t{\n\t\tcompany: \"Yicai Global\",\n\t\tbaseUrls: [\"www.yicaiglobal.com\"]\n\t},\n\t{\n\t\tcompany: \"Economic Daily\",\n\t\tbaseUrls: [\"www.ce.cn\"]\n\t},\n\t{\n\t\tcompany: \"21st Century Business Herald\",\n\t\tbaseUrls: [\"www.21jingji.com\"]\n\t},\n\t{\n\t\tcompany: \"Beijing Review\",\n\t\tbaseUrls: [\"www.bjreview.com\"]\n\t},\n\t{\n\t\tcompany: \"China Economic Net\",\n\t\tbaseUrls: [\"www.ce.cn\"]\n\t},\n\t{\n\t\tcompany: \"Tencent News\",\n\t\tbaseUrls: [\"news.qq.com\"]\n\t},\n\t{\n\t\tcompany: \"Sina News\",\n\t\tbaseUrls: [\"news.sina.com.cn\"]\n\t},\n\t{\n\t\tcompany: \"NetEase News\",\n\t\tbaseUrls: [\"news.163.com\"]\n\t},\n\t{\n\t\tcompany: \"Phoenix TV\",\n\t\tbaseUrls: [\"www.ifeng.com\"]\n\t}\n];\n/** news sites in Denmark */\nconst DANISH_NEWS = [\n\t{\n\t\tcompany: \"Politiken\",\n\t\tbaseUrls: [\"www.politiken.dk\"]\n\t},\n\t{\n\t\tcompany: \"Berlingske\",\n\t\tbaseUrls: [\"www.berlingske.dk\"]\n\t},\n\t{\n\t\tcompany: \"Jyllands-Posten\",\n\t\tbaseUrls: [\"jyllands-posten.dk\"]\n\t},\n\t{\n\t\tcompany: \"Ekstra Bladet\",\n\t\tbaseUrls: [\"ekstrabladet.dk\"]\n\t},\n\t{\n\t\tcompany: \"Information\",\n\t\tbaseUrls: [\"www.information.dk\"]\n\t},\n\t{\n\t\tcompany: \"BT\",\n\t\tbaseUrls: [\"www.bt.dk\"]\n\t},\n\t{\n\t\tcompany: \"Weekendavisen\",\n\t\tbaseUrls: [\"www.weekendavisen.dk\"]\n\t},\n\t{\n\t\tcompany: \"Fyens Stiftstidende\",\n\t\tbaseUrls: [\"fyens.dk\"]\n\t},\n\t{\n\t\tcompany: \"Kristeligt Dagblad\",\n\t\tbaseUrls: [\"www.kristeligt-dagblad.dk\"]\n\t},\n\t{\n\t\tcompany: \"Copenhagen Post\",\n\t\tbaseUrls: [\"cphpost.dk\"]\n\t},\n\t{\n\t\tcompany: \"Nordjyske Stiftstidende\",\n\t\tbaseUrls: [\"nordjyske.dk\"]\n\t},\n\t{\n\t\tcompany: \"Århus Stiftstidende\",\n\t\tbaseUrls: [\"stiften.dk\"]\n\t},\n\t{\n\t\tcompany: \"Dagbladet Børsen\",\n\t\tbaseUrls: [\"borsen.dk\"]\n\t},\n\t{\n\t\tcompany: \"Lokalavisen\",\n\t\tbaseUrls: [\"lokalavisen.dk\"]\n\t},\n\t{\n\t\tcompany: \"TV2 Nyheder\",\n\t\tbaseUrls: [\"tv2.dk\"]\n\t},\n\t{\n\t\tcompany: \"DR Nyheder\",\n\t\tbaseUrls: [\"dr.dk\"]\n\t},\n\t{\n\t\tcompany: \"Avisen Danmark\",\n\t\tbaseUrls: [\"avisen.dk\"]\n\t},\n\t{\n\t\tcompany: \"Fagbladet 3F\",\n\t\tbaseUrls: [\"fagbladet3f.dk\"]\n\t},\n\t{\n\t\tcompany: \"Herning Folkeblad\",\n\t\tbaseUrls: [\"herningfolkeblad.dk\"]\n\t},\n\t{\n\t\tcompany: \"Midtjyllands Avis\",\n\t\tbaseUrls: [\"midtjyllandsavis.dk\"]\n\t}\n];\nconst SWISS_NEWS = [\n\t{\n\t\tcompany: \"Neue Zürcher Zeitung (NZZ)\",\n\t\tbaseUrls: [\"www.nzz.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Swissinfo\",\n\t\tbaseUrls: [\"www.swissinfo.ch\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"20 Minuten\",\n\t\tbaseUrls: [\"www.20min.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Blick\",\n\t\tbaseUrls: [\"www.blick.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Le Temps\",\n\t\tbaseUrls: [\"www.letemps.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Tages-Anzeiger\",\n\t\tbaseUrls: [\"www.tagesanzeiger.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"SRF News\",\n\t\tbaseUrls: [\"www.srf.ch\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Luzerner Zeitung\",\n\t\tbaseUrls: [\"www.luzernerzeitung.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"La Tribune de Genève\",\n\t\tbaseUrls: [\"www.tdg.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Aargauer Zeitung\",\n\t\tbaseUrls: [\"www.aargauerzeitung.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"24 Heures\",\n\t\tbaseUrls: [\"www.24heures.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Radio Télévision Suisse (RTS)\",\n\t\tbaseUrls: [\"www.rts.ch\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Der Bund\",\n\t\tbaseUrls: [\"www.derbund.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Schweizer Radio und Fernsehen (SRF)\",\n\t\tbaseUrls: [\"www.srf.ch\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Basler Zeitung\",\n\t\tbaseUrls: [\"www.bazonline.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Handelszeitung\",\n\t\tbaseUrls: [\"www.handelszeitung.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Watson\",\n\t\tbaseUrls: [\"www.watson.ch\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Le Matin\",\n\t\tbaseUrls: [\"www.lematin.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"La Liberté\",\n\t\tbaseUrls: [\"www.laliberte.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Swiss Times\",\n\t\tbaseUrls: [\"www.theswisstimes.ch\"],\n\t\ttype: [\"digital-first\"]\n\t}\n];\nconst AUSTRALIAN_NEWS = [\n\t{\n\t\tcompany: \"ABC News\",\n\t\tbaseUrls: [\"www.abc.net.au\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"The Sydney Morning Herald\",\n\t\tbaseUrls: [\"www.smh.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Australian\",\n\t\tbaseUrls: [\"www.theaustralian.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Herald Sun\",\n\t\tbaseUrls: [\"www.heraldsun.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"9News\",\n\t\tbaseUrls: [\"www.9news.com.au\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"SBS News\",\n\t\tbaseUrls: [\"www.sbs.com.au\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"digital\",\n\t\t\t\"multicultural\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"The Age\",\n\t\tbaseUrls: [\"www.theage.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sky News Australia\",\n\t\tbaseUrls: [\"www.skynews.com.au\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Australian Financial Review\",\n\t\tbaseUrls: [\"www.afr.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"news.com.au\",\n\t\tbaseUrls: [\"www.news.com.au\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"The Courier-Mail\",\n\t\tbaseUrls: [\"www.couriermail.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"7NEWS\",\n\t\tbaseUrls: [\"7news.com.au\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The West Australian\",\n\t\tbaseUrls: [\"www.thewest.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Daily Telegraph\",\n\t\tbaseUrls: [\"www.dailytelegraph.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Guardian Australia\",\n\t\tbaseUrls: [\"www.theguardian.com/au\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Crikey\",\n\t\tbaseUrls: [\"www.crikey.com.au\"],\n\t\ttype: [\"digital-first\", \"independent\"]\n\t},\n\t{\n\t\tcompany: \"AAP (Australian Associated Press)\",\n\t\tbaseUrls: [\"www.aap.com.au\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"NT News\",\n\t\tbaseUrls: [\"www.ntnews.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Canberra Times\",\n\t\tbaseUrls: [\"www.canberratimes.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Brisbane Times\",\n\t\tbaseUrls: [\"www.brisbanetimes.com.au\"],\n\t\ttype: [\"digital-first\"]\n\t}\n];\nconst JAPANESE_NEWS = [\n\t{\n\t\tcompany: \"The Asahi Shimbun\",\n\t\tbaseUrls: [\"www.asahi.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Yomiuri Shimbun\",\n\t\tbaseUrls: [\"www.yomiuri.co.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Nikkei\",\n\t\tbaseUrls: [\"www.nikkei.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Mainichi Shimbun\",\n\t\tbaseUrls: [\"mainichi.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Kyodo News\",\n\t\tbaseUrls: [\"www.kyodonews.jp\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Japan Times\",\n\t\tbaseUrls: [\"www.japantimes.co.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"NHK\",\n\t\tbaseUrls: [\"www.nhk.or.jp\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Fuji News Network (FNN)\",\n\t\tbaseUrls: [\"www.fnn.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sankei Shimbun\",\n\t\tbaseUrls: [\"www.sankei.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Toyo Keizai\",\n\t\tbaseUrls: [\"www.toyokeizai.net\"],\n\t\ttype: [\"digital\", \"business magazine\"]\n\t},\n\t{\n\t\tcompany: \"Hokkaido Shimbun\",\n\t\tbaseUrls: [\"www.hokkaido-np.co.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Shizuoka Shimbun\",\n\t\tbaseUrls: [\"www.at-s.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Tokyo Shimbun\",\n\t\tbaseUrls: [\"www.tokyo-np.co.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Yahoo Japan News\",\n\t\tbaseUrls: [\"news.yahoo.co.jp\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"TBS News\",\n\t\tbaseUrls: [\"news.tbs.co.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Nippon TV News 24 Japan\",\n\t\tbaseUrls: [\"www.news24.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Jiji Press\",\n\t\tbaseUrls: [\"www.jiji.com\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"TV Asahi News\",\n\t\tbaseUrls: [\"news.tv-asahi.co.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"WOWOW Prime News\",\n\t\tbaseUrls: [\"www.wowow.co.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Kansai Telecasting Corporation (KTV)\",\n\t\tbaseUrls: [\"www.ktv.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t}\n];\nconst SOUTH_KOREAN_NEWS = [\n\t{\n\t\tcompany: \"Yonhap News Agency\",\n\t\tbaseUrls: [\"www.yonhapnews.co.kr\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Korea Herald\",\n\t\tbaseUrls: [\"www.koreaherald.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Korea Times\",\n\t\tbaseUrls: [\"www.koreatimes.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Chosun Ilbo\",\n\t\tbaseUrls: [\"www.chosun.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"JoongAng Ilbo\",\n\t\tbaseUrls: [\"www.joongang.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Dong-A Ilbo\",\n\t\tbaseUrls: [\"www.donga.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"MBC News\",\n\t\tbaseUrls: [\"www.imnews.imbc.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"SBS News\",\n\t\tbaseUrls: [\"news.sbs.co.kr\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"KBS News\",\n\t\tbaseUrls: [\"news.kbs.co.kr\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Hankyoreh\",\n\t\tbaseUrls: [\"english.hani.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Maeil Business Newspaper\",\n\t\tbaseUrls: [\"www.mk.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"MoneyToday\",\n\t\tbaseUrls: [\"www.mt.co.kr\"],\n\t\ttype: [\"digital-first\", \"business\"]\n\t},\n\t{\n\t\tcompany: \"Seoul Shinmun\",\n\t\tbaseUrls: [\"www.seoul.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"OhmyNews\",\n\t\tbaseUrls: [\"www.ohmynews.com\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"News1 Korea\",\n\t\tbaseUrls: [\"www.news1.kr\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Asia Business Daily\",\n\t\tbaseUrls: [\"www.asiae.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Herald Business\",\n\t\tbaseUrls: [\"biz.heraldcorp.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"eDaily\",\n\t\tbaseUrls: [\"www.edaily.co.kr\"],\n\t\ttype: [\"digital-first\", \"business\"]\n\t},\n\t{\n\t\tcompany: \"Seoul Economic Daily\",\n\t\tbaseUrls: [\"www.sedaily.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"JTBC News\",\n\t\tbaseUrls: [\"news.jtbc.co.kr\"],\n\t\ttype: [\"television\", \"digital\"]\n\t}\n];\nconst TURKISH_NEWS = [\n\t{\n\t\tcompany: \"Anadolu Agency (AA)\",\n\t\tbaseUrls: [\"www.aa.com.tr\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Hürriyet\",\n\t\tbaseUrls: [\"www.hurriyet.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sabah\",\n\t\tbaseUrls: [\"www.sabah.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Milliyet\",\n\t\tbaseUrls: [\"www.milliyet.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"TRT World\",\n\t\tbaseUrls: [\"www.trtworld.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"CNN Türk\",\n\t\tbaseUrls: [\"www.cnnturk.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sozcu\",\n\t\tbaseUrls: [\"www.sozcu.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Daily Sabah\",\n\t\tbaseUrls: [\"www.dailysabah.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Yeni Şafak\",\n\t\tbaseUrls: [\"www.yenisafak.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Habertürk\",\n\t\tbaseUrls: [\"www.haberturk.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"BirGün\",\n\t\tbaseUrls: [\"www.birgun.net\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Türkiye Gazetesi\",\n\t\tbaseUrls: [\"www.turkiyegazetesi.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Cumhuriyet\",\n\t\tbaseUrls: [\"www.cumhuriyet.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Diken\",\n\t\tbaseUrls: [\"www.diken.com.tr\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"NTV\",\n\t\tbaseUrls: [\"www.ntv.com.tr\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Ensonhaber\",\n\t\tbaseUrls: [\"www.ensonhaber.com\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"T24\",\n\t\tbaseUrls: [\"www.t24.com.tr\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Karar\",\n\t\tbaseUrls: [\"www.karar.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Gazete Duvar\",\n\t\tbaseUrls: [\"www.gazeteduvar.com.tr\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Bloomberg HT\",\n\t\tbaseUrls: [\"www.bloomberght.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t}\n];\nconst NORWEGIAN_NEWS = [\n\t{\n\t\tcompany: \"Aftenposten\",\n\t\tbaseUrls: [\"www.aftenposten.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Verdens Gang (VG)\",\n\t\tbaseUrls: [\"www.vg.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Dagbladet\",\n\t\tbaseUrls: [\"www.dagbladet.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"NRK\",\n\t\tbaseUrls: [\"www.nrk.no\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Dagens Næringsliv\",\n\t\tbaseUrls: [\"www.dn.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Nettavisen\",\n\t\tbaseUrls: [\"www.nettavisen.no\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Klassekampen\",\n\t\tbaseUrls: [\"www.klassekampen.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Morgenbladet\",\n\t\tbaseUrls: [\"www.morgenbladet.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"E24\",\n\t\tbaseUrls: [\"www.e24.no\"],\n\t\ttype: [\"digital-first\", \"business\"]\n\t},\n\t{\n\t\tcompany: \"TV2\",\n\t\tbaseUrls: [\"www.tv2.no\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Bergens Tidende\",\n\t\tbaseUrls: [\"www.bt.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Adresseavisen\",\n\t\tbaseUrls: [\"www.adressa.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Stavanger Aftenblad\",\n\t\tbaseUrls: [\"www.aftenbladet.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Fædrelandsvennen\",\n\t\tbaseUrls: [\"www.fvn.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"ABC Nyheter\",\n\t\tbaseUrls: [\"www.abcnyheter.no\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Romerikes Blad\",\n\t\tbaseUrls: [\"www.rb.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sunnmørsposten\",\n\t\tbaseUrls: [\"www.smp.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Finansavisen\",\n\t\tbaseUrls: [\"www.finansavisen.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Nordlys\",\n\t\tbaseUrls: [\"www.nordlys.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Hamar Arbeiderblad\",\n\t\tbaseUrls: [\"www.h-a.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t}\n];\n\n//#endregion\n//#region src/NoDefaultValue.ts\nfunction createConstant$1(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n/**\n* A constant which indicates that a particular\n* type/property was not given a _default value_.\n*/\nconst NO_DEFAULT_VALUE = createConstant$1(\"no-default-value\");\n\n//#endregion\n//#region src/NotApplicable.ts\nconst NOT_APPLICABLE = Symbol(\"not applicable\");\n\n//#endregion\n//#region src/NotDefined.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n/**\n* **NOT_DEFINED**\n*\n* A runtime constant which indicates that some value has not been defined (yet).\n*/\nconst NOT_DEFINED = createConstant(\"not-defined\");\n\n//#endregion\n//#region src/NumericChar.ts\n/**\n* **NUMERIC_CHAR**\n*\n* A tuple containing all numeric characters.\n*\n* **Related:** `NumericChar`\n*/\nconst NUMERIC_CHAR = [\n\t\"0\",\n\t\"1\",\n\t\"2\",\n\t\"3\",\n\t\"4\",\n\t\"5\",\n\t\"6\",\n\t\"7\",\n\t\"8\",\n\t\"9\"\n];\nconst NON_ZERO_NUMERIC_CHAR = [\n\t\"1\",\n\t\"2\",\n\t\"3\",\n\t\"4\",\n\t\"5\",\n\t\"6\",\n\t\"7\",\n\t\"8\",\n\t\"9\"\n];\n\n//#endregion\n//#region src/NumericDigit.ts\n/**\n* **NUMERIC_DIGIT**\n*\n* A tuple of all numeric digits.\n*\n* **Related:** `Digit`\n*/\nconst NUMERIC_DIGIT = [\n\t0,\n\t1,\n\t2,\n\t3,\n\t4,\n\t5,\n\t6,\n\t7,\n\t8,\n\t9\n];\n\n//#endregion\n//#region src/Phone.ts\nconst PHONE_FORMAT = [\n\t\"Dashed (e.g., 456-555-1212)\",\n\t\"Dotted (e.g., 456.555.1212)\",\n\t\"ParaSpaced (e.g., (456) 555 1212)\",\n\t\"ParaDashed (e.g., (456) 555-1212)\"\n];\n/**\n* **PHONE_COUNTRY_CODES**\n*\n* `[code, 3 letter country code, 2 letter country code]`\n*/\nconst PHONE_COUNTRY_CODES = [\n\t[\n\t\t\"886\",\n\t\t\"TWN\",\n\t\t\"TW\"\n\t],\n\t[\n\t\t\"93\",\n\t\t\"AFG\",\n\t\t\"AF\"\n\t],\n\t[\n\t\t\"355\",\n\t\t\"ALB\",\n\t\t\"AL\"\n\t],\n\t[\n\t\t\"213\",\n\t\t\"DZA\",\n\t\t\"DZ\"\n\t],\n\t[\n\t\t\"1-684\",\n\t\t\"ASM\",\n\t\t\"AS\"\n\t],\n\t[\n\t\t\"376\",\n\t\t\"AND\",\n\t\t\"AD\"\n\t],\n\t[\n\t\t\"244\",\n\t\t\"AGO\",\n\t\t\"AO\"\n\t],\n\t[\n\t\t\"1-264\",\n\t\t\"AIA\",\n\t\t\"AI\"\n\t],\n\t[\n\t\t\"672\",\n\t\t\"ATA\",\n\t\t\"AQ\"\n\t],\n\t[\n\t\t\"1-268\",\n\t\t\"ATG\",\n\t\t\"AG\"\n\t],\n\t[\n\t\t\"54\",\n\t\t\"ARG\",\n\t\t\"AR\"\n\t],\n\t[\n\t\t\"374\",\n\t\t\"ARM\",\n\t\t\"AM\"\n\t],\n\t[\n\t\t\"297\",\n\t\t\"ABW\",\n\t\t\"AW\"\n\t],\n\t[\n\t\t\"61\",\n\t\t\"AUS\",\n\t\t\"AU\"\n\t],\n\t[\n\t\t\"43\",\n\t\t\"AUT\",\n\t\t\"AT\"\n\t],\n\t[\n\t\t\"994\",\n\t\t\"AZE\",\n\t\t\"AZ\"\n\t],\n\t[\n\t\t\"1-242\",\n\t\t\"BHS\",\n\t\t\"BS\"\n\t],\n\t[\n\t\t\"973\",\n\t\t\"BHR\",\n\t\t\"BH\"\n\t],\n\t[\n\t\t\"880\",\n\t\t\"BGD\",\n\t\t\"BD\"\n\t],\n\t[\n\t\t\"1-246\",\n\t\t\"BRB\",\n\t\t\"BB\"\n\t],\n\t[\n\t\t\"375\",\n\t\t\"BLR\",\n\t\t\"BY\"\n\t],\n\t[\n\t\t\"32\",\n\t\t\"BEL\",\n\t\t\"BE\"\n\t],\n\t[\n\t\t\"501\",\n\t\t\"BLZ\",\n\t\t\"BZ\"\n\t],\n\t[\n\t\t\"229\",\n\t\t\"BEN\",\n\t\t\"BJ\"\n\t],\n\t[\n\t\t\"1-441\",\n\t\t\"BMU\",\n\t\t\"BM\"\n\t],\n\t[\n\t\t\"975\",\n\t\t\"BTN\",\n\t\t\"BT\"\n\t],\n\t[\n\t\t\"591\",\n\t\t\"BOL\",\n\t\t\"BO\"\n\t],\n\t[\n\t\t\"599\",\n\t\t\"BES\",\n\t\t\"BQ\"\n\t],\n\t[\n\t\t\"387\",\n\t\t\"BIH\",\n\t\t\"BA\"\n\t],\n\t[\n\t\t\"267\",\n\t\t\"BWA\",\n\t\t\"BW\"\n\t],\n\t[\n\t\t\"47\",\n\t\t\"BVT\",\n\t\t\"BV\"\n\t],\n\t[\n\t\t\"55\",\n\t\t\"BRA\",\n\t\t\"BR\"\n\t],\n\t[\n\t\t\"246\",\n\t\t\"IOT\",\n\t\t\"IO\"\n\t],\n\t[\n\t\t\"1-284\",\n\t\t\"VGB\",\n\t\t\"VG\"\n\t],\n\t[\n\t\t\"673\",\n\t\t\"BRN\",\n\t\t\"BN\"\n\t],\n\t[\n\t\t\"359\",\n\t\t\"BGR\",\n\t\t\"BG\"\n\t],\n\t[\n\t\t\"226\",\n\t\t\"BFA\",\n\t\t\"BF\"\n\t],\n\t[\n\t\t\"257\",\n\t\t\"BDI\",\n\t\t\"BI\"\n\t],\n\t[\n\t\t\"238\",\n\t\t\"CPV\",\n\t\t\"CV\"\n\t],\n\t[\n\t\t\"855\",\n\t\t\"KHM\",\n\t\t\"KH\"\n\t],\n\t[\n\t\t\"237\",\n\t\t\"CMR\",\n\t\t\"CM\"\n\t],\n\t[\n\t\t\"1\",\n\t\t\"CAN\",\n\t\t\"CA\"\n\t],\n\t[\n\t\t\"1-345\",\n\t\t\"CYM\",\n\t\t\"KY\"\n\t],\n\t[\n\t\t\"236\",\n\t\t\"CAF\",\n\t\t\"CF\"\n\t],\n\t[\n\t\t\"235\",\n\t\t\"TCD\",\n\t\t\"TD\"\n\t],\n\t[\n\t\t\"56\",\n\t\t\"CHL\",\n\t\t\"CL\"\n\t],\n\t[\n\t\t\"86\",\n\t\t\"CHN\",\n\t\t\"CN\"\n\t],\n\t[\n\t\t\"852\",\n\t\t\"HKG\",\n\t\t\"HK\"\n\t],\n\t[\n\t\t\"853\",\n\t\t\"MAC\",\n\t\t\"MO\"\n\t],\n\t[\n\t\t\"61\",\n\t\t\"CXR\",\n\t\t\"CX\"\n\t],\n\t[\n\t\t\"61\",\n\t\t\"CCK\",\n\t\t\"CC\"\n\t],\n\t[\n\t\t\"57\",\n\t\t\"COL\",\n\t\t\"CO\"\n\t],\n\t[\n\t\t\"269\",\n\t\t\"COM\",\n\t\t\"KM\"\n\t],\n\t[\n\t\t\"242\",\n\t\t\"COG\",\n\t\t\"CG\"\n\t],\n\t[\n\t\t\"682\",\n\t\t\"COK\",\n\t\t\"CK\"\n\t],\n\t[\n\t\t\"506\",\n\t\t\"CRI\",\n\t\t\"CR\"\n\t],\n\t[\n\t\t\"385\",\n\t\t\"HRV\",\n\t\t\"HR\"\n\t],\n\t[\n\t\t\"53\",\n\t\t\"CUB\",\n\t\t\"CU\"\n\t],\n\t[\n\t\t\"599\",\n\t\t\"CUW\",\n\t\t\"CW\"\n\t],\n\t[\n\t\t\"357\",\n\t\t\"CYP\",\n\t\t\"CY\"\n\t],\n\t[\n\t\t\"420\",\n\t\t\"CZE\",\n\t\t\"CZ\"\n\t],\n\t[\n\t\t\"225\",\n\t\t\"CIV\",\n\t\t\"CI\"\n\t],\n\t[\n\t\t\"850\",\n\t\t\"PRK\",\n\t\t\"KP\"\n\t],\n\t[\n\t\t\"243\",\n\t\t\"COD\",\n\t\t\"CD\"\n\t],\n\t[\n\t\t\"45\",\n\t\t\"DNK\",\n\t\t\"DK\"\n\t],\n\t[\n\t\t\"253\",\n\t\t\"DJI\",\n\t\t\"DJ\"\n\t],\n\t[\n\t\t\"1-767\",\n\t\t\"DMA\",\n\t\t\"DM\"\n\t],\n\t[\n\t\t\"1-809\",\n\t\t\"DOM\",\n\t\t\"DO\"\n\t],\n\t[\n\t\t\"1-829\",\n\t\t\"DOM\",\n\t\t\"DO\"\n\t],\n\t[\n\t\t\"1-849\",\n\t\t\"DOM\",\n\t\t\"DO\"\n\t],\n\t[\n\t\t\"593\",\n\t\t\"ECU\",\n\t\t\"EC\"\n\t],\n\t[\n\t\t\"20\",\n\t\t\"EGY\",\n\t\t\"EG\"\n\t],\n\t[\n\t\t\"503\",\n\t\t\"SLV\",\n\t\t\"SV\"\n\t],\n\t[\n\t\t\"240\",\n\t\t\"GNQ\",\n\t\t\"GQ\"\n\t],\n\t[\n\t\t\"291\",\n\t\t\"ERI\",\n\t\t\"ER\"\n\t],\n\t[\n\t\t\"372\",\n\t\t\"EST\",\n\t\t\"EE\"\n\t],\n\t[\n\t\t\"268\",\n\t\t\"SWZ\",\n\t\t\"SZ\"\n\t],\n\t[\n\t\t\"251\",\n\t\t\"ETH\",\n\t\t\"ET\"\n\t],\n\t[\n\t\t\"500\",\n\t\t\"FLK\",\n\t\t\"FK\"\n\t],\n\t[\n\t\t\"298\",\n\t\t\"FRO\",\n\t\t\"FO\"\n\t],\n\t[\n\t\t\"679\",\n\t\t\"FJI\",\n\t\t\"FJ\"\n\t],\n\t[\n\t\t\"358\",\n\t\t\"FIN\",\n\t\t\"FI\"\n\t],\n\t[\n\t\t\"33\",\n\t\t\"FRA\",\n\t\t\"FR\"\n\t],\n\t[\n\t\t\"594\",\n\t\t\"GUF\",\n\t\t\"GF\"\n\t],\n\t[\n\t\t\"689\",\n\t\t\"PYF\",\n\t\t\"PF\"\n\t],\n\t[\n\t\t\"262\",\n\t\t\"ATF\",\n\t\t\"TF\"\n\t],\n\t[\n\t\t\"241\",\n\t\t\"GAB\",\n\t\t\"GA\"\n\t],\n\t[\n\t\t\"220\",\n\t\t\"GMB\",\n\t\t\"GM\"\n\t],\n\t[\n\t\t\"995\",\n\t\t\"GEO\",\n\t\t\"GE\"\n\t],\n\t[\n\t\t\"49\",\n\t\t\"DEU\",\n\t\t\"DE\"\n\t],\n\t[\n\t\t\"233\",\n\t\t\"GHA\",\n\t\t\"GH\"\n\t],\n\t[\n\t\t\"350\",\n\t\t\"GIB\",\n\t\t\"GI\"\n\t],\n\t[\n\t\t\"30\",\n\t\t\"GRC\",\n\t\t\"GR\"\n\t],\n\t[\n\t\t\"299\",\n\t\t\"GRL\",\n\t\t\"GL\"\n\t],\n\t[\n\t\t\"1-473\",\n\t\t\"GRD\",\n\t\t\"GD\"\n\t],\n\t[\n\t\t\"590\",\n\t\t\"GLP\",\n\t\t\"GP\"\n\t],\n\t[\n\t\t\"1-671\",\n\t\t\"GUM\",\n\t\t\"GU\"\n\t],\n\t[\n\t\t\"502\",\n\t\t\"GTM\",\n\t\t\"GT\"\n\t],\n\t[\n\t\t\"44\",\n\t\t\"GGY\",\n\t\t\"GG\"\n\t],\n\t[\n\t\t\"224\",\n\t\t\"GIN\",\n\t\t\"GN\"\n\t],\n\t[\n\t\t\"245\",\n\t\t\"GNB\",\n\t\t\"GW\"\n\t],\n\t[\n\t\t\"592\",\n\t\t\"GUY\",\n\t\t\"GY\"\n\t],\n\t[\n\t\t\"509\",\n\t\t\"HTI\",\n\t\t\"HT\"\n\t],\n\t[\n\t\t\"672\",\n\t\t\"HMD\",\n\t\t\"HM\"\n\t],\n\t[\n\t\t\"39-06\",\n\t\t\"VAT\",\n\t\t\"VA\"\n\t],\n\t[\n\t\t\"504\",\n\t\t\"HND\",\n\t\t\"HN\"\n\t],\n\t[\n\t\t\"36\",\n\t\t\"HUN\",\n\t\t\"HU\"\n\t],\n\t[\n\t\t\"354\",\n\t\t\"ISL\",\n\t\t\"IS\"\n\t],\n\t[\n\t\t\"91\",\n\t\t\"IND\",\n\t\t\"IN\"\n\t],\n\t[\n\t\t\"62\",\n\t\t\"IDN\",\n\t\t\"ID\"\n\t],\n\t[\n\t\t\"98\",\n\t\t\"IRN\",\n\t\t\"IR\"\n\t],\n\t[\n\t\t\"964\",\n\t\t\"IRQ\",\n\t\t\"IQ\"\n\t],\n\t[\n\t\t\"353\",\n\t\t\"IRL\",\n\t\t\"IE\"\n\t],\n\t[\n\t\t\"44\",\n\t\t\"IMN\",\n\t\t\"IM\"\n\t],\n\t[\n\t\t\"972\",\n\t\t\"ISR\",\n\t\t\"IL\"\n\t],\n\t[\n\t\t\"39\",\n\t\t\"ITA\",\n\t\t\"IT\"\n\t],\n\t[\n\t\t\"1-876\",\n\t\t\"JAM\",\n\t\t\"JM\"\n\t],\n\t[\n\t\t\"81\",\n\t\t\"JPN\",\n\t\t\"JP\"\n\t],\n\t[\n\t\t\"44\",\n\t\t\"JEY\",\n\t\t\"JE\"\n\t],\n\t[\n\t\t\"962\",\n\t\t\"JOR\",\n\t\t\"JO\"\n\t],\n\t[\n\t\t\"7\",\n\t\t\"KAZ\",\n\t\t\"KZ\"\n\t],\n\t[\n\t\t\"254\",\n\t\t\"KEN\",\n\t\t\"KE\"\n\t],\n\t[\n\t\t\"686\",\n\t\t\"KIR\",\n\t\t\"KI\"\n\t],\n\t[\n\t\t\"965\",\n\t\t\"KWT\",\n\t\t\"KW\"\n\t],\n\t[\n\t\t\"996\",\n\t\t\"KGZ\",\n\t\t\"KG\"\n\t],\n\t[\n\t\t\"856\",\n\t\t\"LAO\",\n\t\t\"LA\"\n\t],\n\t[\n\t\t\"371\",\n\t\t\"LVA\",\n\t\t\"LV\"\n\t],\n\t[\n\t\t\"961\",\n\t\t\"LBN\",\n\t\t\"LB\"\n\t],\n\t[\n\t\t\"266\",\n\t\t\"LSO\",\n\t\t\"LS\"\n\t],\n\t[\n\t\t\"231\",\n\t\t\"LBR\",\n\t\t\"LR\"\n\t],\n\t[\n\t\t\"218\",\n\t\t\"LBY\",\n\t\t\"LY\"\n\t],\n\t[\n\t\t\"423\",\n\t\t\"LIE\",\n\t\t\"LI\"\n\t],\n\t[\n\t\t\"370\",\n\t\t\"LTU\",\n\t\t\"LT\"\n\t],\n\t[\n\t\t\"352\",\n\t\t\"LUX\",\n\t\t\"LU\"\n\t],\n\t[\n\t\t\"261\",\n\t\t\"MDG\",\n\t\t\"MG\"\n\t],\n\t[\n\t\t\"265\",\n\t\t\"MWI\",\n\t\t\"MW\"\n\t],\n\t[\n\t\t\"60\",\n\t\t\"MYS\",\n\t\t\"MY\"\n\t],\n\t[\n\t\t\"960\",\n\t\t\"MDV\",\n\t\t\"MV\"\n\t],\n\t[\n\t\t\"223\",\n\t\t\"MLI\",\n\t\t\"ML\"\n\t],\n\t[\n\t\t\"356\",\n\t\t\"MLT\",\n\t\t\"MT\"\n\t],\n\t[\n\t\t\"692\",\n\t\t\"MHL\",\n\t\t\"MH\"\n\t],\n\t[\n\t\t\"596\",\n\t\t\"MTQ\",\n\t\t\"MQ\"\n\t],\n\t[\n\t\t\"222\",\n\t\t\"MRT\",\n\t\t\"MR\"\n\t],\n\t[\n\t\t\"230\",\n\t\t\"MUS\",\n\t\t\"MU\"\n\t],\n\t[\n\t\t\"262\",\n\t\t\"MYT\",\n\t\t\"YT\"\n\t],\n\t[\n\t\t\"52\",\n\t\t\"MEX\",\n\t\t\"MX\"\n\t],\n\t[\n\t\t\"691\",\n\t\t\"FSM\",\n\t\t\"FM\"\n\t],\n\t[\n\t\t\"377\",\n\t\t\"MCO\",\n\t\t\"MC\"\n\t],\n\t[\n\t\t\"976\",\n\t\t\"MNG\",\n\t\t\"MN\"\n\t],\n\t[\n\t\t\"382\",\n\t\t\"MNE\",\n\t\t\"ME\"\n\t],\n\t[\n\t\t\"1-664\",\n\t\t\"MSR\",\n\t\t\"MS\"\n\t],\n\t[\n\t\t\"212\",\n\t\t\"MAR\",\n\t\t\"MA\"\n\t],\n\t[\n\t\t\"258\",\n\t\t\"MOZ\",\n\t\t\"MZ\"\n\t],\n\t[\n\t\t\"95\",\n\t\t\"MMR\",\n\t\t\"MM\"\n\t],\n\t[\n\t\t\"264\",\n\t\t\"NAM\",\n\t\t\"NA\"\n\t],\n\t[\n\t\t\"674\",\n\t\t\"NRU\",\n\t\t\"NR\"\n\t],\n\t[\n\t\t\"977\",\n\t\t\"NPL\",\n\t\t\"NP\"\n\t],\n\t[\n\t\t\"31\",\n\t\t\"NLD\",\n\t\t\"NL\"\n\t],\n\t[\n\t\t\"687\",\n\t\t\"NCL\",\n\t\t\"NC\"\n\t],\n\t[\n\t\t\"64\",\n\t\t\"NZL\",\n\t\t\"NZ\"\n\t],\n\t[\n\t\t\"505\",\n\t\t\"NIC\",\n\t\t\"NI\"\n\t],\n\t[\n\t\t\"227\",\n\t\t\"NER\",\n\t\t\"NE\"\n\t],\n\t[\n\t\t\"234\",\n\t\t\"NGA\",\n\t\t\"NG\"\n\t],\n\t[\n\t\t\"683\",\n\t\t\"NIU\",\n\t\t\"NU\"\n\t],\n\t[\n\t\t\"672\",\n\t\t\"NFK\",\n\t\t\"NF\"\n\t],\n\t[\n\t\t\"1-670\",\n\t\t\"MNP\",\n\t\t\"MP\"\n\t],\n\t[\n\t\t\"47\",\n\t\t\"NOR\",\n\t\t\"NO\"\n\t],\n\t[\n\t\t\"968\",\n\t\t\"OMN\",\n\t\t\"OM\"\n\t],\n\t[\n\t\t\"92\",\n\t\t\"PAK\",\n\t\t\"PK\"\n\t],\n\t[\n\t\t\"680\",\n\t\t\"PLW\",\n\t\t\"PW\"\n\t],\n\t[\n\t\t\"507\",\n\t\t\"PAN\",\n\t\t\"PA\"\n\t],\n\t[\n\t\t\"675\",\n\t\t\"PNG\",\n\t\t\"PG\"\n\t],\n\t[\n\t\t\"595\",\n\t\t\"PRY\",\n\t\t\"PY\"\n\t],\n\t[\n\t\t\"51\",\n\t\t\"PER\",\n\t\t\"PE\"\n\t],\n\t[\n\t\t\"63\",\n\t\t\"PHL\",\n\t\t\"PH\"\n\t],\n\t[\n\t\t\"870\",\n\t\t\"PCN\",\n\t\t\"PN\"\n\t],\n\t[\n\t\t\"48\",\n\t\t\"POL\",\n\t\t\"PL\"\n\t],\n\t[\n\t\t\"351\",\n\t\t\"PRT\",\n\t\t\"PT\"\n\t],\n\t[\n\t\t\"974\",\n\t\t\"QAT\",\n\t\t\"QA\"\n\t],\n\t[\n\t\t\"82\",\n\t\t\"KOR\",\n\t\t\"KR\"\n\t],\n\t[\n\t\t\"373\",\n\t\t\"MDA\",\n\t\t\"MD\"\n\t],\n\t[\n\t\t\"40\",\n\t\t\"ROU\",\n\t\t\"RO\"\n\t],\n\t[\n\t\t\"7\",\n\t\t\"RUS\",\n\t\t\"RU\"\n\t],\n\t[\n\t\t\"250\",\n\t\t\"RWA\",\n\t\t\"RW\"\n\t],\n\t[\n\t\t\"262\",\n\t\t\"REU\",\n\t\t\"RE\"\n\t],\n\t[\n\t\t\"590\",\n\t\t\"BLM\",\n\t\t\"BL\"\n\t],\n\t[\n\t\t\"290\",\n\t\t\"SHN\",\n\t\t\"SH\"\n\t],\n\t[\n\t\t\"1-869\",\n\t\t\"KNA\",\n\t\t\"KN\"\n\t],\n\t[\n\t\t\"1-758\",\n\t\t\"LCA\",\n\t\t\"LC\"\n\t],\n\t[\n\t\t\"590\",\n\t\t\"MAF\",\n\t\t\"MF\"\n\t],\n\t[\n\t\t\"508\",\n\t\t\"SPM\",\n\t\t\"PM\"\n\t],\n\t[\n\t\t\"1-784\",\n\t\t\"VCT\",\n\t\t\"VC\"\n\t],\n\t[\n\t\t\"685\",\n\t\t\"WSM\",\n\t\t\"WS\"\n\t],\n\t[\n\t\t\"378\",\n\t\t\"SMR\",\n\t\t\"SM\"\n\t],\n\t[\n\t\t\"239\",\n\t\t\"STP\",\n\t\t\"ST\"\n\t],\n\t[\n\t\t\"966\",\n\t\t\"SAU\",\n\t\t\"SA\"\n\t],\n\t[\n\t\t\"221\",\n\t\t\"SEN\",\n\t\t\"SN\"\n\t],\n\t[\n\t\t\"381\",\n\t\t\"SRB\",\n\t\t\"RS\"\n\t],\n\t[\n\t\t\"248\",\n\t\t\"SYC\",\n\t\t\"SC\"\n\t],\n\t[\n\t\t\"232\",\n\t\t\"SLE\",\n\t\t\"SL\"\n\t],\n\t[\n\t\t\"65\",\n\t\t\"SGP\",\n\t\t\"SG\"\n\t],\n\t[\n\t\t\"1-721\",\n\t\t\"SXM\",\n\t\t\"SX\"\n\t],\n\t[\n\t\t\"421\",\n\t\t\"SVK\",\n\t\t\"SK\"\n\t],\n\t[\n\t\t\"386\",\n\t\t\"SVN\",\n\t\t\"SI\"\n\t],\n\t[\n\t\t\"677\",\n\t\t\"SLB\",\n\t\t\"SB\"\n\t],\n\t[\n\t\t\"252\",\n\t\t\"SOM\",\n\t\t\"SO\"\n\t],\n\t[\n\t\t\"27\",\n\t\t\"ZAF\",\n\t\t\"ZA\"\n\t],\n\t[\n\t\t\"500\",\n\t\t\"SGS\",\n\t\t\"GS\"\n\t],\n\t[\n\t\t\"211\",\n\t\t\"SSD\",\n\t\t\"SS\"\n\t],\n\t[\n\t\t\"34\",\n\t\t\"ESP\",\n\t\t\"ES\"\n\t],\n\t[\n\t\t\"94\",\n\t\t\"LKA\",\n\t\t\"LK\"\n\t],\n\t[\n\t\t\"970\",\n\t\t\"PSE\",\n\t\t\"PS\"\n\t],\n\t[\n\t\t\"249\",\n\t\t\"SDN\",\n\t\t\"SD\"\n\t],\n\t[\n\t\t\"597\",\n\t\t\"SUR\",\n\t\t\"SR\"\n\t],\n\t[\n\t\t\"47\",\n\t\t\"SJM\",\n\t\t\"SJ\"\n\t],\n\t[\n\t\t\"46\",\n\t\t\"SWE\",\n\t\t\"SE\"\n\t],\n\t[\n\t\t\"41\",\n\t\t\"CHE\",\n\t\t\"CH\"\n\t],\n\t[\n\t\t\"963\",\n\t\t\"SYR\",\n\t\t\"SY\"\n\t],\n\t[\n\t\t\"992\",\n\t\t\"TJK\",\n\t\t\"TJ\"\n\t],\n\t[\n\t\t\"66\",\n\t\t\"THA\",\n\t\t\"TH\"\n\t],\n\t[\n\t\t\"389\",\n\t\t\"MKD\",\n\t\t\"MK\"\n\t],\n\t[\n\t\t\"670\",\n\t\t\"TLS\",\n\t\t\"TL\"\n\t],\n\t[\n\t\t\"228\",\n\t\t\"TGO\",\n\t\t\"TG\"\n\t],\n\t[\n\t\t\"690\",\n\t\t\"TKL\",\n\t\t\"TK\"\n\t],\n\t[\n\t\t\"676\",\n\t\t\"TON\",\n\t\t\"TO\"\n\t],\n\t[\n\t\t\"1-868\",\n\t\t\"TTO\",\n\t\t\"TT\"\n\t],\n\t[\n\t\t\"216\",\n\t\t\"TUN\",\n\t\t\"TN\"\n\t],\n\t[\n\t\t\"90\",\n\t\t\"TUR\",\n\t\t\"TR\"\n\t],\n\t[\n\t\t\"993\",\n\t\t\"TKM\",\n\t\t\"TM\"\n\t],\n\t[\n\t\t\"1-649\",\n\t\t\"TCA\",\n\t\t\"TC\"\n\t],\n\t[\n\t\t\"688\",\n\t\t\"TUV\",\n\t\t\"TV\"\n\t],\n\t[\n\t\t\"256\",\n\t\t\"UGA\",\n\t\t\"UG\"\n\t],\n\t[\n\t\t\"380\",\n\t\t\"UKR\",\n\t\t\"UA\"\n\t],\n\t[\n\t\t\"971\",\n\t\t\"ARE\",\n\t\t\"AE\"\n\t],\n\t[\n\t\t\"44\",\n\t\t\"GBR\",\n\t\t\"GB\"\n\t],\n\t[\n\t\t\"255\",\n\t\t\"TZA\",\n\t\t\"TZ\"\n\t],\n\t[\n\t\t\"1-340\",\n\t\t\"VIR\",\n\t\t\"VI\"\n\t],\n\t[\n\t\t\"1\",\n\t\t\"USA\",\n\t\t\"US\"\n\t],\n\t[\n\t\t\"598\",\n\t\t\"URY\",\n\t\t\"UY\"\n\t],\n\t[\n\t\t\"998\",\n\t\t\"UZB\",\n\t\t\"UZ\"\n\t],\n\t[\n\t\t\"678\",\n\t\t\"VUT\",\n\t\t\"VU\"\n\t],\n\t[\n\t\t\"58\",\n\t\t\"VEN\",\n\t\t\"VE\"\n\t],\n\t[\n\t\t\"84\",\n\t\t\"VNM\",\n\t\t\"VN\"\n\t],\n\t[\n\t\t\"681\",\n\t\t\"WLF\",\n\t\t\"WF\"\n\t],\n\t[\n\t\t\"212\",\n\t\t\"ESH\",\n\t\t\"EH\"\n\t],\n\t[\n\t\t\"967\",\n\t\t\"YEM\",\n\t\t\"YE\"\n\t],\n\t[\n\t\t\"260\",\n\t\t\"ZMB\",\n\t\t\"ZM\"\n\t],\n\t[\n\t\t\"263\",\n\t\t\"ZWE\",\n\t\t\"ZW\"\n\t],\n\t[\n\t\t\"358\",\n\t\t\"ALA\",\n\t\t\"AX\"\n\t]\n];\n\n//#endregion\n//#region src/PluralExceptions.ts\n/**\n* **PLURAL_EXCEPTIONS**\n*\n* An array of tuples of the form `[singular, plural]`.\n*/\nconst PLURAL_EXCEPTIONS_OLD = [\n\t[\"photo\", \"photos\"],\n\t[\"piano\", \"pianos\"],\n\t[\"halo\", \"halos\"],\n\t[\"foot\", \"feet\"],\n\t[\"man\", \"men\"],\n\t[\"woman\", \"women\"],\n\t[\"person\", \"people\"],\n\t[\"mouse\", \"mice\"],\n\t[\"series\", \"series\"],\n\t[\"sheep\", \"sheep\"],\n\t[\"money\", \"monies\"],\n\t[\"deer\", \"deer\"]\n];\n/**\n* **PLURAL_EXCEPTIONS**\n*\n* A lookup table that maps singular words to their _plural_ counterpart.\n*/\nconst PLURAL_EXCEPTIONS = {\n\tphoto: \"photos\",\n\tpiano: \"pianos\",\n\thalo: \"halos\",\n\tfoot: \"feet\",\n\tman: \"men\",\n\twoman: \"women\",\n\tperson: \"people\",\n\tmouse: \"mice\",\n\tseries: \"series\",\n\tsheep: \"sheep\",\n\tmoney: \"monies\",\n\tdeer: \"deer\",\n\tgoose: \"geese\",\n\tchild: \"children\",\n\ttooth: \"teeth\",\n\tox: \"oxen\",\n\tbasis: \"bases\",\n\tradius: \"radii\",\n\tsyllabus: \"syllabi\",\n\tice: \"ice\",\n\tfish: \"fish\",\n\tmeans: \"means\",\n\tphenomenon: \"phenomena\",\n\tcriterion: \"criteria\",\n\tdatum: \"data\",\n\tmemorandum: \"memoranda\",\n\tbacterium: \"bacteria\",\n\tstratum: \"strata\",\n\tcurriculum: \"curricula\",\n\tindex: \"indices\",\n\tappendix: \"appendices\",\n\tvortex: \"vortices\",\n\tbison: \"bison\",\n\taxis: \"axes\",\n\tantenna: \"antennas\",\n\tcactus: \"cacti\",\n\tcorpus: \"corpora\",\n\tbeau: \"beaux\",\n\tdie: \"dice\",\n\tellipsis: \"ellipses\",\n\terratum: \"errata\",\n\tfocus: \"foci\",\n\tformula: \"formulas\",\n\tfungus: \"fungi\",\n\tgenus: \"genera\",\n\tgraffito: \"graffiti\",\n\tgrouse: \"grouses\",\n\thalf: \"halves\",\n\thoof: \"hooves\",\n\thypothesis: \"hypothesis\",\n\tlarva: \"larvae\",\n\tlibretto: \"libretti\",\n\tloaf: \"loaves\",\n\tlocus: \"loci\",\n\tmedium: \"mediums\",\n\tminutia: \"minutiae\",\n\tnucleus: \"nuclei\",\n\toasis: \"oases\",\n\topus: \"opuses\",\n\tovum: \"ova\",\n\tparenthesis: \"parentheses\",\n\tphylum: \"phyla\",\n\tquiz: \"quizzes\",\n\treferendum: \"referendums\",\n\tself: \"selves\",\n\tspecies: \"species\",\n\tstimulus: \"stimuli\",\n\tswine: \"swine\",\n\tsynopsis: \"synopses\",\n\tthesis: \"theses\",\n\tthief: \"thieves\",\n\tvertex: \"vertexes\",\n\twife: \"wives\",\n\twolf: \"wolves\"\n};\n\n//#endregion\n//#region src/ProxmoxConstants.ts\nconst PROXMOX_CT_STATE = [\n\t\"started\",\n\t\"stopped\",\n\t\"enabled\",\n\t\"disabled\",\n\t\"ignored\"\n];\n\n//#endregion\n//#region src/RepoConstants.ts\n/**\n* common sources for source code repositories\n*/\nconst REPO_SOURCES = [\n\t\"github\",\n\t\"bitbucket\",\n\t\"gitlab\",\n\t\"codecommit\",\n\t\"local\"\n];\n/**\n* page types you'd expect to find in a source code repository.\n*/\nconst REPO_PAGE_TYPES = [\n\t\"repo\",\n\t\"commits\",\n\t\"author\",\n\t\"org\",\n\t\"profile\",\n\t\"issues\",\n\t\"actions\",\n\t\"followers\",\n\t\"following\",\n\t\"docs\",\n\t\"unknown\"\n];\nconst REPO_SOURCE_LOOKUP = {\n\tgithub: [`https://github.com`, \"https://github.io\"],\n\tbitbucket: [\"https://bitbucket.org\"],\n\tgitlab: [\"https://gitlab.com\"],\n\tcodecommit: [\"https://aws.amazon.com/codecommit/\"],\n\tlocal: []\n};\nconst GITHUB_INSIGHT_CATEGORY_LOOKUP = {\n\tpulse: \"pulse\",\n\tcontributors: \"graphs/contributors\",\n\tcommunity: \"graphs/community\",\n\tstandards: \"community\",\n\ttraffic: \"graphs/traffic\",\n\tcommits: \"graphs/commit-activity\",\n\tcode_frequency: \"graphs/code-frequency\",\n\tdependencies: \"network/dependencies\",\n\tdependents: \"network/dependents\",\n\tdependabot: \"network/updates\",\n\tnetwork: \"network\",\n\tforks: \"forks\",\n\tpeople: \"people\"\n};\n\n//#endregion\n//#region src/Retail.ts\n/**\n* Amazon's DNS entries (for retail business)\n*/\nconst AMAZON_DNS = [\n\t\"www.amazon.com\",\n\t`www.amazon.co.uk`,\n\t`www.amazon.fr`,\n\t`www.amazon.de`,\n\t`www.amazon.it`,\n\t`www.amazon.es`\n];\nconst WALMART_DNS = [\n\t\"www.walmart.com\",\n\t\"www.walmart.ca\",\n\t\"www.walmart.com.mx\"\n];\nconst APPLE_DNS = [\"store.apple.com\", \"www.apple.com\"];\nconst HOME_DEPOT_DNS = [\"www.homedepot.com\", \"www.homedepot.ca\"];\nconst EBAY_DNS = [\n\t\"www.ebay.com\",\n\t\"www.ebay.co.uk\",\n\t\"www.ebay.fr\",\n\t\"www.ebay.de\",\n\t\"www.ebay.it\"\n];\nconst TARGET_DNS = [\"www.target.com\"];\nconst ETSY_DNS = [\"www.etsy.com\"];\nconst COSTCO_DNS = [\n\t\"www.costco.com\",\n\t\"www.costco.co.uk\",\n\t\"www.costco.ca\"\n];\nconst CHEWY_DNS = [\"www.chewy.com\"];\nconst BEST_BUY_DNS = [\"www.bestbuy.com\", \"www.bestbuy.ca\"];\nconst WAYFAIR_DNS = [\n\t\"www.wayfair.com\",\n\t\"www.wayfair.ca\",\n\t\"www.wayfair.co.uk\"\n];\nconst NIKE_DNS = [\"www.nike.com\"];\nconst MACYS_DNS = [\"www.macys.com\"];\nconst LOWES_DNS = [\"www.lowes.com\"];\nconst IKEA_DNS = [\"www.ikea.com\"];\nconst DELL_DNS = [\"www.dell.com\"];\n/** DNS for H&M retailer */\nconst HM_DNS = [\"www2.hm.com\"];\nconst ZARA_DNS = [\"www.zara.com\"];\nconst KROGER_DNS = [\"www.kroger.com\"];\nconst WALGREENS_DNS = [\"www.walgreens.com\"];\nconst CVS_DNS = [\"www.cvs.com\"];\nconst WHOLE_FOODS_DNS = [\"www.wholefoodsmarket.com\", \"www.wholefoodsmarket.co.uk\"];\n\n//#endregion\n//#region src/SafeEncoding.ts\nconst SAFE_ENCODING__QUOTES = {\n\t[`\"`]: \"^<dq>\",\n\t[`'`]: \"^<sq>\",\n\t[`\\``]: \"^<grave>\"\n};\nconst SAFE_ENCODING__WHITESPACE = {\n\t\" \": \"^<sp>\",\n\t\"\t\": \"^<tab>\",\n\t\"\\n\": \"^<n>\",\n\t\"\\r\": \"^<r>\"\n};\nconst SAFE_ENCODING__BRACKETS = {\n\t\"[\": \"^<osb>\",\n\t\"]\": \"^<csb>\",\n\t\"(\": \"^<op>\",\n\t\")\": \"^<cp>\",\n\t\"{\": \"^<oc>\",\n\t\"}\": \"^<cc>\"\n};\nconst SAFE_ENCODING_KEYS = {\n\t...SAFE_ENCODING__BRACKETS,\n\t...SAFE_ENCODING__QUOTES,\n\t...SAFE_ENCODING__WHITESPACE\n};\n\n//#endregion\n//#region src/Shape.ts\nconst SHAPE_PREFIXES = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"null\",\n\t\"undefined\",\n\t\"unknown\",\n\t\"opt::\",\n\t\"union::\",\n\t\"tuple::\",\n\t\"array::\",\n\t\"object\",\n\t\"record::\"\n];\nconst SHAPE_DELIMITER = \"||,||\";\n\n//#endregion\n//#region src/SimpleTokens.ts\nconst SIMPLE_DICT_VALUES = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"unknown\",\n\t\"Opt<string>\",\n\t\"Opt<number>\",\n\t\"Opt<boolean>\",\n\t\"Opt<unknown>\"\n];\nconst SIMPLE_SET_TYPES = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"unknown\",\n\t\"Opt<string>\",\n\t\"Opt<number>\",\n\t\"Opt<boolean>\",\n\t\"Opt<unknown>\"\n];\nconst SIMPLE_SCALAR_TOKENS = [\n\t\"string\",\n\t\"number\",\n\t`string(TOKEN)`,\n\t`number(TOKEN)`,\n\t\"boolean\",\n\t\"true\",\n\t\"false\",\n\t\"null\",\n\t\"undefined\",\n\t\"unknown\",\n\t\"any\",\n\t\"never\"\n];\nconst SIMPLE_OPT_SCALAR_TOKENS = [\n\t\"Opt<string>\",\n\t\"Opt<number>\",\n\t\"Opt<boolean>\",\n\t\"Opt<true>\",\n\t\"Opt<false>\",\n\t\"Opt<null>\",\n\t\"Opt<undefined>\",\n\t\"Opt<unknown>\",\n\t\"Opt<any>\",\n\t\"Opt<string(TOKEN)>\",\n\t\"Opt<number(TOKEN)>\",\n\t\"Opt<undefined>\"\n];\nconst SIMPLE_FN_TOKENS = [\n\t\"Fn<none> => Unknown\",\n\t\"Fn<string> => Unknown\",\n\t\"Fn<number> => Unknown\",\n\t\"Fn<boolean> => Unknown\"\n];\nconst SIMPLE_UNION_TOKENS = [`Union(TOKEN)`];\nconst SIMPLE_MAP_KEYS = [\n\t\"string\",\n\t\"number\",\n\t\"Dict\",\n\t\"Dict<string, string>\",\n\t\"Dict<string, number>\",\n\t\"Dict<string, boolean>\",\n\t\"Dict<string, unknown>\",\n\t\"Dict<string, Opt<string>>\",\n\t\"Dict<string, Opt<number>>\",\n\t\"Dict<string, Opt<boolean>>\"\n];\nconst SIMPLE_MAP_VALUES = [\n\t...SIMPLE_MAP_KEYS,\n\t\"boolean\",\n\t\"unknown\",\n\t\"undefined\",\n\t\"Dict\",\n\t\"Array\",\n\t\"Dict<string, Opt<string>>\",\n\t\"Dict<string, Opt<number>>\",\n\t\"Dict<string, Opt<boolean>>\",\n\t\"Dict<string, Opt<unknown>>\"\n];\nconst SIMPLE_DICT_TOKENS = [\n\t\"Dict\",\n\t\"Dict<string, string>\",\n\t\"Dict<string, number>\",\n\t\"Dict<string, boolean>\",\n\t\"Dict<string, unknown>\",\n\t\"Dict<string, Opt<string>>\",\n\t\"Dict<string, Opt<number>>\",\n\t\"Dict<string, Opt<boolean>>\",\n\t\"Dict<string, Opt<unknown>>\",\n\t\"Dict<{TOKEN: TOKEN}>\",\n\t\"Dict<{TOKEN: TOKEN, TOKEN: TOKEN}>\"\n];\nconst SIMPLE_ARRAY_TOKENS = [\n\t\"Array\",\n\t\"Array<string>\",\n\t\"Array<string(TOKEN)>\",\n\t\"Array<number>\",\n\t\"Array<number(TOKEN)>\",\n\t\"Array<boolean>\",\n\t\"Array<unknown>\",\n\t`Array<Dict>`,\n\t`Array<Set>`,\n\t`Array<Map>`\n];\nconst SIMPLE_MAP_TOKENS = [\n\t\"Map\",\n\t\"Map<TOKEN, TOKEN>\",\n\t\"WeakMap\"\n];\nconst SIMPLE_SET_TOKENS = [\"Set\", \"Set<TOKEN>\"];\nconst SIMPLE_CONTAINER_TOKENS = [\n\t...SIMPLE_DICT_TOKENS,\n\t...SIMPLE_ARRAY_TOKENS,\n\t...SIMPLE_MAP_TOKENS,\n\t...SIMPLE_SET_TOKENS\n];\n/**\n* **SIMPLE_TOKENS**\n*\n* A list of strings literals which can be used\n* to express the type of a variable or token\n* in relatively course granularity\n*/\nconst SIMPLE_TOKENS = [\n\t...SIMPLE_SCALAR_TOKENS,\n\t...SIMPLE_OPT_SCALAR_TOKENS,\n\t...SIMPLE_CONTAINER_TOKENS,\n\t...SIMPLE_UNION_TOKENS\n];\n\n//#endregion\n//#region src/SingularNounEnding.ts\n/**\n* Singular nouns typically end in the characters represented by this array.\n*\n* **Related:** `SingularNounEnding`\n*/\nconst SINGULAR_NOUN_ENDINGS = [\n\t\"s\",\n\t\"sh\",\n\t\"ch\",\n\t\"x\",\n\t\"z\",\n\t\"o\"\n];\n\n//#endregion\n//#region src/Social.ts\nconst SOCIAL_MEDIA = [\n\t{\n\t\tname: \"Facebook\",\n\t\tdescription: \"Connect with friends, family, and communities worldwide on one of the largest social networks.\",\n\t\tbaseUrls: [\"https://www.facebook.com\"],\n\t\tprofileUrl: \"https://www.facebook.com/:user_id\",\n\t\tapproximateUserSize: 3e9,\n\t\ttickerSymbol: \"META\"\n\t},\n\t{\n\t\tname: \"YouTube\",\n\t\tdescription: \"A platform for sharing and watching videos, connecting creators with audiences globally.\",\n\t\tbaseUrls: [\"https://www.youtube.com\"],\n\t\tprofileUrl: \"https://www.youtube.com/user/:user_id\",\n\t\tapproximateUserSize: 25e8,\n\t\ttickerSymbol: \"GOOGL\"\n\t},\n\t{\n\t\tname: \"WhatsApp\",\n\t\tdescription: \"A secure messaging app for personal and business communication.\",\n\t\tbaseUrls: [\"https://www.whatsapp.com\", \"https://wa.me\"],\n\t\tprofileUrl: \"https://wa.me/:user_id\",\n\t\tapproximateUserSize: 2e9,\n\t\ttickerSymbol: \"META\"\n\t},\n\t{\n\t\tname: \"Instagram\",\n\t\tdescription: \"Share photos and videos with friends and followers through posts, stories, and reels.\",\n\t\tbaseUrls: [\"https://www.instagram.com\"],\n\t\tprofileUrl: \"https://www.instagram.com/:user_id\",\n\t\tapproximateUserSize: 2e9,\n\t\ttickerSymbol: \"META\"\n\t},\n\t{\n\t\tname: \"TikTok\",\n\t\tdescription: \"A short-form video platform known for its highly engaging content and viral trends.\",\n\t\tbaseUrls: [\"https://www.tiktok.com\"],\n\t\tprofileUrl: \"https://www.tiktok.com/@:user_id\",\n\t\tapproximateUserSize: 16e8\n\t},\n\t{\n\t\tname: \"WeChat\",\n\t\tdescription: \"China's popular messaging and lifestyle app, integrating social media and mobile payments.\",\n\t\tbaseUrls: [\"https://www.wechat.com\"],\n\t\tprofileUrl: \"https://www.wechat.com/:user_id\",\n\t\tapproximateUserSize: 13e8\n\t},\n\t{\n\t\tname: \"Facebook Messenger\",\n\t\tdescription: \"A messaging app used for personal and business interactions, seamlessly integrated with Facebook.\",\n\t\tbaseUrls: [\"https://www.messenger.com\"],\n\t\tprofileUrl: \"https://www.messenger.com/t/:user_id\",\n\t\tapproximateUserSize: 1e9,\n\t\ttickerSymbol: \"META\"\n\t},\n\t{\n\t\tname: \"Telegram\",\n\t\tdescription: \"A messaging platform focused on privacy, with channels and group capabilities.\",\n\t\tbaseUrls: [\"https://www.telegram.org\", \"https://t.me\"],\n\t\tprofileUrl: \"https://t.me/:user_id\",\n\t\tapproximateUserSize: 9e8\n\t},\n\t{\n\t\tname: \"Snapchat\",\n\t\tdescription: \"A multimedia app popular for its disappearing messages and creative filters.\",\n\t\tbaseUrls: [\"https://www.snapchat.com\"],\n\t\tprofileUrl: \"https://www.snapchat.com/add/:user_id\",\n\t\tapproximateUserSize: 8e8,\n\t\ttickerSymbol: \"SNAP\"\n\t},\n\t{\n\t\tname: \"Douyin\",\n\t\tdescription: \"The Chinese version of TikTok, with similar short-form video content tailored for China.\",\n\t\tbaseUrls: [\"https://www.douyin.com\"],\n\t\tprofileUrl: \"https://www.douyin.com/user/:user_id\",\n\t\tapproximateUserSize: 75e7\n\t},\n\t{\n\t\tname: \"LinkedIn\",\n\t\tdescription: \"The largest professional networking platform, where users connect for career opportunities, insights, and business networking.\",\n\t\tbaseUrls: [\"https://www.linkedin.com\"],\n\t\tprofileUrl: \"https://www.linkedin.com/in/:user_id\",\n\t\tapproximateUserSize: 93e7,\n\t\ttickerSymbol: \"MSFT\"\n\t},\n\t{\n\t\tname: \"X (formerly Twitter)\",\n\t\tdescription: \"A platform for real-time updates, news sharing, and public discourse with a focus on brief, impactful posts.\",\n\t\tbaseUrls: [\"https://www.twitter.com\", \"https://x.com\"],\n\t\tprofileUrl: \"https://twitter.com/:user_id\",\n\t\tapproximateUserSize: 54e7\n\t},\n\t{\n\t\tname: \"Pinterest\",\n\t\tdescription: \"A visually-driven platform for sharing ideas, DIY projects, fashion, and more.\",\n\t\tbaseUrls: [\"https://www.pinterest.com\"],\n\t\tprofileUrl: \"https://www.pinterest.com/:user_id\",\n\t\tapproximateUserSize: 46e7,\n\t\ttickerSymbol: \"PINS\"\n\t},\n\t{\n\t\tname: \"Reddit\",\n\t\tdescription: \"A community-driven platform organized into niche forums or 'subreddits' focused on various topics.\",\n\t\tbaseUrls: [\"https://www.reddit.com\"],\n\t\tprofileUrl: \"https://www.reddit.com/user/:user_id\",\n\t\tapproximateUserSize: 43e7\n\t},\n\t{\n\t\tname: \"Clubhouse\",\n\t\tdescription: \"A voice-based social network where users engage in live audio conversations on various topics.\",\n\t\tbaseUrls: [\"https://www.clubhouse.com\"],\n\t\tprofileUrl: \"https://www.clubhouse.com/:user_id\",\n\t\tapproximateUserSize: 1e7\n\t},\n\t{\n\t\tname: \"Discord\",\n\t\tdescription: \"Originally aimed at gamers, Discord is now widely used by various communities for group chat, video, and voice calls.\",\n\t\tbaseUrls: [\"https://www.discord.com\", \"https://discord.com\"],\n\t\tprofileUrl: \"https://discord.com/users/:user_id\",\n\t\tapproximateUserSize: 3e8\n\t}\n];\n\n//#endregion\n//#region src/Tailwind.ts\nconst TW_HUE_NEUTRAL = {\n\tslate: 262,\n\tgray: 270,\n\tzinc: 269,\n\tneutral: 270,\n\tstone: 273\n};\nconst TW_HUE_VIBRANT = {\n\tred: 24,\n\torange: 44,\n\tamber: 79,\n\tyellow: 100,\n\tlime: 132,\n\tgreen: 144,\n\temerald: 159,\n\tteal: 182,\n\tcyan: 192,\n\tsky: 219,\n\tblue: 240,\n\tindigo: 268,\n\tviolet: 283,\n\tpurple: 294,\n\tfuchsia: 319,\n\tpink: 334,\n\trose: 15\n};\nconst TW_HUE_STATIC = {\n\tblack: 0,\n\twhite: 106.37411429114086\n};\n/**\n* **TW_COLOR_HUE**\n*\n* The _hue_ values for [TailwindCSS](https://tailwindcss.com/docs/customizing-colors)\n* when moved into the **oklch** color space.\n*/\nconst TW_HUE = {\n\t...TW_HUE_NEUTRAL,\n\t...TW_HUE_VIBRANT,\n\t...TW_HUE_STATIC\n};\nconst TW_LUMINOSITY = {\n\t\"50\": 97.78,\n\t\"100\": 93.56,\n\t\"200\": 88.11,\n\t\"300\": 82.67,\n\t\"400\": 74.22,\n\t\"500\": 64.78,\n\t\"600\": 57.33,\n\t\"700\": 46.89,\n\t\"800\": 39.44,\n\t\"900\": 32,\n\t\"950\": 23.78\n};\nconst TW_LUMIN_50 = TW_LUMINOSITY[\"50\"];\nconst TW_LUMIN_100 = TW_LUMINOSITY[\"100\"];\nconst TW_LUMIN_200 = TW_LUMINOSITY[\"200\"];\nconst TW_LUMIN_300 = TW_LUMINOSITY[\"300\"];\nconst TW_LUMIN_400 = TW_LUMINOSITY[\"400\"];\nconst TW_LUMIN_500 = TW_LUMINOSITY[\"500\"];\nconst TW_LUMIN_600 = TW_LUMINOSITY[\"600\"];\nconst TW_LUMIN_700 = TW_LUMINOSITY[\"700\"];\nconst TW_LUMIN_800 = TW_LUMINOSITY[\"800\"];\nconst TW_LUMIN_900 = TW_LUMINOSITY[\"900\"];\nconst TW_LUMIN_950 = TW_LUMINOSITY[\"950\"];\n/**\n* **TW_CHROMA**\n*\n* The possible chroma values from Tailwind CSS when using\n* the **okhsl** color model.\n*\n* **Related:** `TW_CHROMA_50`, `TW_CHROMA_100`, ...\n*/\nconst TW_CHROMA = {\n\t\"50\": .0108,\n\t\"100\": .0321,\n\t\"200\": .0609,\n\t\"300\": .0908,\n\t\"400\": .1398,\n\t\"500\": .1472,\n\t\"600\": .1299,\n\t\"700\": .1067,\n\t\"800\": .0898,\n\t\"900\": .0726,\n\t\"950\": .054\n};\nconst TW_CHROMA_50 = TW_CHROMA[\"50\"];\nconst TW_CHROMA_100 = TW_CHROMA[\"100\"];\nconst TW_CHROMA_200 = TW_CHROMA[\"200\"];\nconst TW_CHROMA_300 = TW_CHROMA[\"300\"];\nconst TW_CHROMA_400 = TW_CHROMA[\"400\"];\nconst TW_CHROMA_500 = TW_CHROMA[\"500\"];\nconst TW_CHROMA_600 = TW_CHROMA[\"600\"];\nconst TW_CHROMA_700 = TW_CHROMA[\"700\"];\nconst TW_CHROMA_800 = TW_CHROMA[\"800\"];\nconst TW_CHROMA_900 = TW_CHROMA[\"900\"];\nconst TW_CHROMA_950 = TW_CHROMA[\"950\"];\n/**\n* The list of \"targets\" where Tailwind color string references\n* can be applied to. These domains are prefixes to the color string\n* when used (e.g., `bg-green-500`)\n*/\nconst TW_COLOR_TARGETS = [\n\t\"bg\",\n\t\"text\",\n\t\"border\",\n\t\"ring\",\n\t\"shadow\",\n\t\"border\"\n];\nconst TW_MODIFIERS_CORE = [\n\t\"dark\",\n\t\"focus\",\n\t\"hover\",\n\t\"active\",\n\t\"visited\",\n\t\"disabled\"\n];\nconst TW_MODIFIERS_ORDER = [\n\t\"first\",\n\t\"last\",\n\t\"odd\",\n\t\"even\"\n];\nconst TW_MODIFIERS_RELN = [\n\t\"focus-within\",\n\t\"focus-visible\",\n\t\"checked\",\n\t\"peer-invalid\",\n\t`peer-checked/{{string}}`\n];\n/**\n* The list of page size prefixes which Tailwind provides for adjusting to\n* device size. These are the defaults and can be customized.\n*/\nconst TW_MODIFIERS_SIZING = [\n\t\"sm\",\n\t\"md\",\n\t\"lg\",\n\t\"xl\",\n\t\"2xl\"\n];\n/**\n* The list of _modifiers_ which you can target as a prefix to a Tailwind\n* class (e.g., `focus:...`, `hover:...`).\n*/\nconst TW_MODIFIERS = [\n\t...TW_MODIFIERS_CORE,\n\t...TW_MODIFIERS_ORDER,\n\t...TW_MODIFIERS_SIZING,\n\t...TW_MODIFIERS_RELN\n];\n\n//#endregion\n//#region src/Timezones.ts\nconst IANA_TIMEZONES__AFRICA = [\n\t\"Africa/Abidjan\",\n\t\"Africa/Accra\",\n\t\"Africa/Addis_Ababa\",\n\t\"Africa/Algiers\",\n\t\"Africa/Asmara\",\n\t\"Africa/Bamako\",\n\t\"Africa/Bangui\",\n\t\"Africa/Banjul\",\n\t\"Africa/Bissau\",\n\t\"Africa/Blantyre\",\n\t\"Africa/Brazzaville\",\n\t\"Africa/Bujumbura\",\n\t\"Africa/Cairo\",\n\t\"Africa/Casablanca\",\n\t\"Africa/Ceuta\",\n\t\"Africa/Conakry\",\n\t\"Africa/Dakar\",\n\t\"Africa/Dar_es_Salaam\",\n\t\"Africa/Djibouti\",\n\t\"Africa/Douala\",\n\t\"Africa/El_Aaiun\",\n\t\"Africa/Freetown\",\n\t\"Africa/Gaborone\",\n\t\"Africa/Harare\",\n\t\"Africa/Johannesburg\",\n\t\"Africa/Juba\",\n\t\"Africa/Kampala\",\n\t\"Africa/Khartoum\",\n\t\"Africa/Kigali\",\n\t\"Africa/Kinshasa\",\n\t\"Africa/Lagos\",\n\t\"Africa/Libreville\",\n\t\"Africa/Lome\",\n\t\"Africa/Luanda\",\n\t\"Africa/Lubumbashi\",\n\t\"Africa/Lusaka\",\n\t\"Africa/Malabo\",\n\t\"Africa/Maputo\",\n\t\"Africa/Maseru\",\n\t\"Africa/Mbabane\",\n\t\"Africa/Mogadishu\",\n\t\"Africa/Monrovia\",\n\t\"Africa/Nairobi\",\n\t\"Africa/Ndjamena\",\n\t\"Africa/Niamey\",\n\t\"Africa/Nouakchott\",\n\t\"Africa/Ouagadougou\",\n\t\"Africa/Porto-Novo\",\n\t\"Africa/Sao_Tome\",\n\t\"Africa/Tripoli\",\n\t\"Africa/Tunis\",\n\t\"Africa/Windhoek\"\n];\nconst IANA_TIMEZONES__AMERICA = [\n\t\"America/Adak\",\n\t\"America/Anchorage\",\n\t\"America/Anguilla\",\n\t\"America/Antigua\",\n\t\"America/Araguaina\",\n\t\"America/Argentina/Buenos_Aires\",\n\t\"America/Argentina/Catamarca\",\n\t\"America/Argentina/Cordoba\",\n\t\"America/Argentina/Jujuy\",\n\t\"America/Argentina/La_Rioja\",\n\t\"America/Argentina/Mendoza\",\n\t\"America/Argentina/Rio_Gallegos\",\n\t\"America/Argentina/Salta\",\n\t\"America/Argentina/San_Juan\",\n\t\"America/Argentina/San_Luis\",\n\t\"America/Argentina/Tucuman\",\n\t\"America/Argentina/Ushuaia\",\n\t\"America/Aruba\",\n\t\"America/Asuncion\",\n\t\"America/Atikokan\",\n\t\"America/Atka\",\n\t\"America/Bahia\",\n\t\"America/Bahia_Banderas\",\n\t\"America/Barbados\",\n\t\"America/Belem\",\n\t\"America/Belize\",\n\t\"America/Blanc-Sablon\",\n\t\"America/Boa_Vista\",\n\t\"America/Bogota\",\n\t\"America/Boise\",\n\t\"America/Cambridge_Bay\",\n\t\"America/Campo_Grande\",\n\t\"America/Cancun\",\n\t\"America/Caracas\",\n\t\"America/Cayenne\",\n\t\"America/Cayman\",\n\t\"America/Chicago\",\n\t\"America/Chihuahua\",\n\t\"America/Creston\",\n\t\"America/Cuiaba\",\n\t\"America/Curacao\",\n\t\"America/Danmarkshavn\",\n\t\"America/Dawson\",\n\t\"America/Dawson_Creek\",\n\t\"America/Denver\",\n\t\"America/Detroit\",\n\t\"America/Dominica\",\n\t\"America/Edmonton\",\n\t\"America/Eirunepe\",\n\t\"America/El_Salvador\",\n\t\"America/Fort_Nelson\",\n\t\"America/Fortaleza\",\n\t\"America/Glace_Bay\",\n\t\"America/Godthab\",\n\t\"America/Goose_Bay\",\n\t\"America/Grand_Turk\",\n\t\"America/Grenada\",\n\t\"America/Guadeloupe\",\n\t\"America/Guatemala\",\n\t\"America/Guayaquil\",\n\t\"America/Guyana\",\n\t\"America/Halifax\",\n\t\"America/Havana\",\n\t\"America/Hermosillo\",\n\t\"America/Indiana/Indianapolis\",\n\t\"America/Indiana/Knox\",\n\t\"America/Indiana/Marengo\",\n\t\"America/Indiana/Petersburg\",\n\t\"America/Indiana/Tell_City\",\n\t\"America/Indiana/Vevay\",\n\t\"America/Indiana/Vincennes\",\n\t\"America/Indiana/Winamac\",\n\t\"America/Inuvik\",\n\t\"America/Iqaluit\",\n\t\"America/Jamaica\",\n\t\"America/Juneau\",\n\t\"America/Kentucky/Louisville\",\n\t\"America/Kentucky/Monticello\",\n\t\"America/Kralendijk\",\n\t\"America/La_Paz\",\n\t\"America/Lima\",\n\t\"America/Los_Angeles\",\n\t\"America/Lower_Princes\",\n\t\"America/Maceio\",\n\t\"America/Managua\",\n\t\"America/Manaus\",\n\t\"America/Marigot\",\n\t\"America/Martinique\",\n\t\"America/Matamoros\",\n\t\"America/Mazatlan\",\n\t\"America/Menominee\",\n\t\"America/Merida\",\n\t\"America/Metlakatla\",\n\t\"America/Mexico_City\",\n\t\"America/Miquelon\",\n\t\"America/Moncton\",\n\t\"America/Monterrey\",\n\t\"America/Montevideo\",\n\t\"America/Montserrat\",\n\t\"America/Nassau\",\n\t\"America/New_York\",\n\t\"America/Nipigon\",\n\t\"America/Nome\",\n\t\"America/Noronha\",\n\t\"America/North_Dakota/Beulah\",\n\t\"America/North_Dakota/Center\",\n\t\"America/North_Dakota/New_Salem\",\n\t\"America/Ojinaga\",\n\t\"America/Panama\",\n\t\"America/Pangnirtung\",\n\t\"America/Paramaribo\",\n\t\"America/Phoenix\",\n\t\"America/Port-au-Prince\",\n\t\"America/Port_of_Spain\",\n\t\"America/Porto_Velho\",\n\t\"America/Puerto_Rico\",\n\t\"America/Punta_Arenas\",\n\t\"America/Rainy_River\",\n\t\"America/Rankin_Inlet\",\n\t\"America/Recife\",\n\t\"America/Regina\",\n\t\"America/Resolute\",\n\t\"America/Rio_Branco\",\n\t\"America/Santarem\",\n\t\"America/Santiago\",\n\t\"America/Santo_Domingo\",\n\t\"America/Sao_Paulo\",\n\t\"America/Scoresbysund\",\n\t\"America/Sitka\",\n\t\"America/St_Barthelemy\",\n\t\"America/St_Johns\",\n\t\"America/St_Kitts\",\n\t\"America/St_Lucia\",\n\t\"America/St_Thomas\",\n\t\"America/St_Vincent\",\n\t\"America/Swift_Current\",\n\t\"America/Tegucigalpa\",\n\t\"America/Thule\",\n\t\"America/Thunder_Bay\",\n\t\"America/Tijuana\",\n\t\"America/Toronto\",\n\t\"America/Tortola\",\n\t\"America/Vancouver\",\n\t\"America/Whitehorse\",\n\t\"America/Winnipeg\",\n\t\"America/Yakutat\",\n\t\"America/Yellowknife\"\n];\nconst IANA_TIMEZONES__ANTARCTICA = [\n\t\"Antarctica/Casey\",\n\t\"Antarctica/Davis\",\n\t\"Antarctica/DumontDUrville\",\n\t\"Antarctica/Macquarie\",\n\t\"Antarctica/Mawson\",\n\t\"Antarctica/McMurdo\",\n\t\"Antarctica/Palmer\",\n\t\"Antarctica/Rothera\",\n\t\"Antarctica/South_Pole\",\n\t\"Antarctica/Syowa\",\n\t\"Antarctica/Troll\",\n\t\"Antarctica/Vostok\",\n\t\"Arctic/Longyearbyen\"\n];\nconst IANA_TIMEZONES__ASIA = [\n\t\"Asia/Almaty\",\n\t\"Asia/Amman\",\n\t\"Asia/Anadyr\",\n\t\"Asia/Aqtau\",\n\t\"Asia/Aqtobe\",\n\t\"Asia/Ashgabat\",\n\t\"Asia/Atyrau\",\n\t\"Asia/Baghdad\",\n\t\"Asia/Baku\",\n\t\"Asia/Bangkok\",\n\t\"Asia/Barnaul\",\n\t\"Asia/Beirut\",\n\t\"Asia/Bishkek\",\n\t\"Asia/Brunei\",\n\t\"Asia/Chita\",\n\t\"Asia/Choibalsan\",\n\t\"Asia/Colombo\",\n\t\"Asia/Damascus\",\n\t\"Asia/Dhaka\",\n\t\"Asia/Dili\",\n\t\"Asia/Dubai\",\n\t\"Asia/Dushanbe\",\n\t\"Asia/Famagusta\",\n\t\"Asia/Gaza\",\n\t\"Asia/Hebron\",\n\t\"Asia/Ho_Chi_Minh\",\n\t\"Asia/Hong_Kong\",\n\t\"Asia/Hovd\",\n\t\"Asia/Irkutsk\",\n\t\"Asia/Jakarta\",\n\t\"Asia/Jayapura\",\n\t\"Asia/Jerusalem\",\n\t\"Asia/Kabul\",\n\t\"Asia/Kamchatka\",\n\t\"Asia/Karachi\",\n\t\"Asia/Kathmandu\",\n\t\"Asia/Khandyga\",\n\t\"Asia/Kolkata\",\n\t\"Asia/Krasnoyarsk\",\n\t\"Asia/Kuala_Lumpur\",\n\t\"Asia/Kuching\",\n\t\"Asia/Kuwait\",\n\t\"Asia/Macau\",\n\t\"Asia/Magadan\",\n\t\"Asia/Makassar\",\n\t\"Asia/Manila\",\n\t\"Asia/Muscat\",\n\t\"Asia/Nicosia\",\n\t\"Asia/Novokuznetsk\",\n\t\"Asia/Novosibirsk\",\n\t\"Asia/Omsk\",\n\t\"Asia/Oral\",\n\t\"Asia/Phnom_Penh\",\n\t\"Asia/Pontianak\",\n\t\"Asia/Pyongyang\",\n\t\"Asia/Qatar\",\n\t\"Asia/Qostanay\",\n\t\"Asia/Qyzylorda\",\n\t\"Asia/Riyadh\",\n\t\"Asia/Sakhalin\",\n\t\"Asia/Samarkand\",\n\t\"Asia/Seoul\",\n\t\"Asia/Shanghai\",\n\t\"Asia/Singapore\",\n\t\"Asia/Srednekolymsk\",\n\t\"Asia/Taipei\",\n\t\"Asia/Tashkent\",\n\t\"Asia/Tbilisi\",\n\t\"Asia/Tehran\",\n\t\"Asia/Thimphu\",\n\t\"Asia/Tokyo\",\n\t\"Asia/Tomsk\",\n\t\"Asia/Ulaanbaatar\",\n\t\"Asia/Urumqi\",\n\t\"Asia/Ust-Nera\",\n\t\"Asia/Vientiane\",\n\t\"Asia/Vladivostok\",\n\t\"Asia/Yakutsk\",\n\t\"Asia/Yangon\",\n\t\"Asia/Yekaterinburg\",\n\t\"Asia/Yerevan\"\n];\nconst IANA_TIMEZONES__ATLANTIC = [\n\t\"Atlantic/Azores\",\n\t\"Atlantic/Bermuda\",\n\t\"Atlantic/Canary\",\n\t\"Atlantic/Cape_Verde\",\n\t\"Atlantic/Faroe\",\n\t\"Atlantic/Madeira\",\n\t\"Atlantic/Reykjavik\",\n\t\"Atlantic/South_Georgia\",\n\t\"Atlantic/St_Helena\",\n\t\"Atlantic/Stanley\"\n];\nconst IANA_TIMEZONES__AUSTRALIA = [\n\t\"Australia/Adelaide\",\n\t\"Australia/Brisbane\",\n\t\"Australia/Broken_Hill\",\n\t\"Australia/Currie\",\n\t\"Australia/Darwin\",\n\t\"Australia/Eucla\",\n\t\"Australia/Hobart\",\n\t\"Australia/Lindeman\",\n\t\"Australia/Lord_Howe\",\n\t\"Australia/Melbourne\",\n\t\"Australia/Perth\",\n\t\"Australia/Sydney\"\n];\nconst IANA_TIMEZONES__EUROPE = [\n\t\"Europe/Amsterdam\",\n\t\"Europe/Andorra\",\n\t\"Europe/Astrakhan\",\n\t\"Europe/Athens\",\n\t\"Europe/Belgrade\",\n\t\"Europe/Berlin\",\n\t\"Europe/Brussels\",\n\t\"Europe/Bucharest\",\n\t\"Europe/Budapest\",\n\t\"Europe/Chisinau\",\n\t\"Europe/Copenhagen\",\n\t\"Europe/Dublin\",\n\t\"Europe/Gibraltar\",\n\t\"Europe/Guernsey\",\n\t\"Europe/Helsinki\",\n\t\"Europe/Isle_of_Man\",\n\t\"Europe/Istanbul\",\n\t\"Europe/Jersey\",\n\t\"Europe/Kaliningrad\",\n\t\"Europe/Kiev\",\n\t\"Europe/Kirov\",\n\t\"Europe/Lisbon\",\n\t\"Europe/Ljubljana\",\n\t\"Europe/London\",\n\t\"Europe/Luxembourg\",\n\t\"Europe/Madrid\",\n\t\"Europe/Malta\",\n\t\"Europe/Mariehamn\",\n\t\"Europe/Minsk\",\n\t\"Europe/Monaco\",\n\t\"Europe/Moscow\",\n\t\"Europe/Oslo\",\n\t\"Europe/Paris\",\n\t\"Europe/Podgorica\",\n\t\"Europe/Prague\",\n\t\"Europe/Riga\",\n\t\"Europe/Rome\",\n\t\"Europe/Samara\",\n\t\"Europe/San_Marino\",\n\t\"Europe/Sarajevo\",\n\t\"Europe/Simferopol\",\n\t\"Europe/Skopje\",\n\t\"Europe/Sofia\",\n\t\"Europe/Stockholm\",\n\t\"Europe/Tallinn\",\n\t\"Europe/Tirane\",\n\t\"Europe/Ulyanovsk\",\n\t\"Europe/Uzhgorod\",\n\t\"Europe/Vaduz\",\n\t\"Europe/Vatican\",\n\t\"Europe/Vienna\",\n\t\"Europe/Vilnius\",\n\t\"Europe/Volgograd\",\n\t\"Europe/Warsaw\",\n\t\"Europe/Zagreb\",\n\t\"Europe/Zaporozhye\",\n\t\"Europe/Zurich\"\n];\nconst IANA_TIMEZONES__INDIAN = [\n\t\"Indian/Antananarivo\",\n\t\"Indian/Chagos\",\n\t\"Indian/Christmas\",\n\t\"Indian/Cocos\",\n\t\"Indian/Comoro\",\n\t\"Indian/Kerguelen\",\n\t\"Indian/Mahe\",\n\t\"Indian/Maldives\",\n\t\"Indian/Mauritius\",\n\t\"Indian/Mayotte\",\n\t\"Indian/Reunion\"\n];\nconst IANA_TIMEZONES__PACIFIC = [\n\t\"Pacific/Apia\",\n\t\"Pacific/Auckland\",\n\t\"Pacific/Bougainville\",\n\t\"Pacific/Chatham\",\n\t\"Pacific/Chuuk\",\n\t\"Pacific/Easter\",\n\t\"Pacific/Efate\",\n\t\"Pacific/Enderbury\",\n\t\"Pacific/Fakaofo\",\n\t\"Pacific/Fiji\",\n\t\"Pacific/Funafuti\",\n\t\"Pacific/Galapagos\",\n\t\"Pacific/Gambier\",\n\t\"Pacific/Guadalcanal\",\n\t\"Pacific/Guam\",\n\t\"Pacific/Honolulu\",\n\t\"Pacific/Kiritimati\",\n\t\"Pacific/Kosrae\",\n\t\"Pacific/Kwajalein\",\n\t\"Pacific/Majuro\",\n\t\"Pacific/Marquesas\",\n\t\"Pacific/Midway\",\n\t\"Pacific/Nauru\",\n\t\"Pacific/Niue\",\n\t\"Pacific/Norfolk\",\n\t\"Pacific/Noumea\",\n\t\"Pacific/Pago_Pago\",\n\t\"Pacific/Palau\",\n\t\"Pacific/Pitcairn\",\n\t\"Pacific/Pohnpei\",\n\t\"Pacific/Port_Moresby\",\n\t\"Pacific/Rarotonga\",\n\t\"Pacific/Saipan\",\n\t\"Pacific/Tahiti\",\n\t\"Pacific/Tarawa\",\n\t\"Pacific/Tongatapu\",\n\t\"Pacific/Wake\",\n\t\"Pacific/Wallis\"\n];\nconst IANA_TIMEZONES__OTHER = [\"UTC\", \"Zulu\"];\nconst IANA_TIMEZONES = [\n\t...IANA_TIMEZONES__AFRICA,\n\t...IANA_TIMEZONES__AMERICA,\n\t...IANA_TIMEZONES__ANTARCTICA,\n\t...IANA_TIMEZONES__ASIA,\n\t...IANA_TIMEZONES__ATLANTIC,\n\t...IANA_TIMEZONES__AUSTRALIA,\n\t...IANA_TIMEZONES__EUROPE,\n\t...IANA_TIMEZONES__INDIAN,\n\t...IANA_TIMEZONES__OTHER,\n\t...IANA_TIMEZONES__PACIFIC\n];\n\n//#endregion\n//#region src/TypeComparisons.ts\n/**\n* **wide**\n*\n* Provides a dictionary of _wide_ types; in most cases you should\n* prefer the **kind** API.\n*/\nconst WideAssignment = {\n\tboolean: () => \"<<boolean>>\",\n\tstring: () => \"<<string>>\",\n\tnumber: () => \"<<number>>\",\n\tsymbol: () => \"<<symbol>>\",\n\tnull: () => \"<<null>>\",\n\tfunction: () => \"<<function>>\",\n\ttuple: () => \"<<tuple>>\",\n\tsingularTuple: () => [\"<<tuple>>\"],\n\tobject: () => \"<<object>>\",\n\temptyObject: () => \"<<empty-object>>\",\n\tundefined: () => \"<<undefined>>\",\n\tunknown: () => \"<<unknown>>\",\n\tnothing: () => \"<<nothing>>\",\n\tsomething: () => \"<<something>>\"\n};\nconst wide = WideAssignment;\nfunction entry(refType, desc, ...params) {\n\treturn [\n\t\trefType(wide),\n\t\tdesc,\n\t\tparams.map((i) => typeof i === \"function\" ? i(wide) : i)\n\t];\n}\n/**\n* **TYPE_COMPARISONS**\n*\n* A dictionary of all _comparison_ operations along with their `RefType`, description,\n* and `Params`.\n*/\nconst TYPE_COMPARISONS = {\n\tExtends: entry((t) => t.unknown(), \"extends the type\", (t) => t.unknown()),\n\tNotExtends: entry((t) => t.unknown(), \"does not extent the type\", (t) => t.unknown()),\n\tEquals: entry((t) => t.unknown(), \"equals the type\", (t) => t.unknown()),\n\tNotEqual: entry((t) => t.unknown(), \"does not equal the type\", (t) => t.unknown()),\n\tTruthy: entry((t) => t.unknown(), \"must be a truthy value\"),\n\tFalsy: entry((t) => t.unknown(), \"must be a falsy value\"),\n\tIsSomething: entry((t) => t.unknown(), \"must be 'something' (aka, not null or undefined)\"),\n\tIsNothing: entry((t) => t.unknown(), \"must be 'nothing' (aka, null or undefined)\"),\n\tIsString: entry((t) => t.string(), \"must extend a string type\"),\n\tIsNumber: entry((t) => t.number(), \"must extend a number type\"),\n\tIsBoolean: entry((t) => t.boolean(), \"must extend a boolean type\"),\n\tGreaterThan: entry((t) => t.number(), \"must be a numeric literal greater than [[0]]\", (t) => t.number()),\n\tLessThan: entry((t) => t.number(), \"must be a numeric literal less than [[0]]\", (t) => t.number()),\n\tStartsWith: entry((t) => t.string(), \"must be a string literal that starts with '[[0]]'\", (t) => t.string()),\n\tEndsWith: entry((t) => t.string(), \"must be a string literal that ends with '[[0]]'\", (t) => t.string()),\n\tIncludes: entry((t) => t.string(), \"must be a string literal that includes the substring '[[0]]'\", (t) => t.string()),\n\tReturnsSomething: entry((t) => t.function(), \"must be a function which returns 'something' (aka, not null or undefined)\"),\n\tReturnsNothing: entry((t) => t.function(), \"must be a function which returns 'nothing' (aka, null or undefined)\"),\n\tReturnsTrue: entry((t) => t.function(), \"must be a function which returns 'true'\"),\n\tReturnsFalse: entry((t) => t.function(), \"must be a function which returns 'false'\"),\n\tReturnsTruthy: entry((t) => t.function(), \"must be a function which returns a 'truthy' value\"),\n\tReturnsFalsy: entry((t) => t.function(), \"must be a function which returns a 'falsy' value\"),\n\tReturnsExtends: entry((t) => t.unknown(), \"must be a function which returns a value which extends [[0]]\", (t) => t.unknown()),\n\tReturnsEquals: entry((t) => t.unknown(), \"must be a function which returns a value which equals [[0]]\", (t) => t.unknown()),\n\tContains: entry((t) => t.tuple(), \"must be a tuple and have elements that extends the value [[0]]\", (t) => t.unknown()),\n\tContainsSome: entry((t) => t.tuple(), \"must be a tuple and have elements that extends the value [[0]]\", (t) => t.singularTuple())\n};\n\n//#endregion\n//#region src/TypeOf.ts\n/**\n* **TYPE_OF**\n*\n* The set of values which are possible results of the `typeof` command in Javascript.\n*/\nconst TYPE_OF = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"undefined\",\n\t\"symbol\",\n\t\"bigint\",\n\t\"function\",\n\t\"object\"\n];\n\n//#endregion\n//#region src/Types.ts\nconst FALSY_TYPE_KINDS = [\"undefined\", \"null\"];\nconst LITERAL_TYPE_KINDS = [\n\t\"true\",\n\t\"false\",\n\t\"stringLiteral\",\n\t\"numericLiteral\"\n];\nconst WIDE_TYPE_KINDS = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\"\n];\nconst NARROW_CONTAINER_TYPE_KINDS = [\n\t\"object\",\n\t\"explicitFunctions\",\n\t\"fnType\",\n\t\"fnWithDict\",\n\t\"tuple\",\n\t\"union\",\n\t\"intersection\",\n\t\"arrayOf\"\n];\nconst WIDE_CONTAINER_TYPE_KINDS = [\n\t\"anyArray\",\n\t\"anyObject\",\n\t\"unknownObject\",\n\t\"anyFunction\",\n\t\"emptyObject\"\n];\n/**\n* A full list of the _types_ of types we have within the `Type` namespace.\n*/\nconst TYPE_KINDS = [\n\t...FALSY_TYPE_KINDS,\n\t...WIDE_TYPE_KINDS,\n\t...LITERAL_TYPE_KINDS,\n\t...NARROW_CONTAINER_TYPE_KINDS,\n\t...WIDE_CONTAINER_TYPE_KINDS\n];\n\n//#endregion\n//#region src/TypeTokens.ts\n/**\n* **Type Tokens** which have zero configuration elements.\n*/\nconst TT_ATOMICS = [\n\t\"undefined\",\n\t\"null\",\n\t\"boolean\",\n\t\"true\",\n\t\"false\"\n];\n/**\n* **Type Tokens** which have a literal variant which represents\n* the _single_ configuration of this type which is available.\n*/\nconst TT_SINGLETONS = [\"string\", \"number\"];\nconst TT_SETS = [\n\t\"string-set\",\n\t\"numeric-set\",\n\t\"fn-set\",\n\t\"union-set\"\n];\n/**\n* **Type Tokens** which represent _functions_ (either the typical\n* variety or Generator functions).\n*/\nconst TT_FUNCTIONS = [\"fn\", \"gen\"];\n/**\n* **Type Tokens** which _contain_ other **Type Tokens** to make up their\n* identity.\n*/\nconst TT_CONTAINERS = [\n\t\"rec\",\n\t\"arr\",\n\t\"set\",\n\t\"map\",\n\t\"union\",\n\t\"obj\",\n\t\"tuple\"\n];\nconst TT_KIND_VARIANTS = [\n\t...TT_ATOMICS,\n\t...TT_CONTAINERS,\n\t...TT_FUNCTIONS,\n\t...TT_SETS,\n\t...TT_SINGLETONS\n];\nconst TT_START = \"<<\";\nconst TT_STOP = \">>\";\nconst TT_DELIMITER = \"::\";\n\n//#endregion\n//#region src/TypeTokenVariants.ts\nconst TYPE_TOKEN_REC_VARIANTS = [\"object-key\", \"string-key\"];\nconst TYPE_TOKEN_REC_KEY_VARIANTS = [\n\t\"unknown\",\n\t\"any\",\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"truthy\",\n\t\"numberlike\",\n\t\"scalar\",\n\t\"object\",\n\t\"string|undefined\",\n\t\"number|undefined\",\n\t\"boolean|undefined\",\n\t\"object|undefined\",\n\t\"unknown[]\",\n\t\"any[]\",\n\t\"string[]\",\n\t\"number[]\",\n\t\"boolean[]\"\n];\nconst TYPE_TOKEN_STRING_SET_VARIANTS = [\n\t\"endsWith::${string}\",\n\t\"startsWith::${string}\",\n\t\"contains::${string}\",\n\t\"civilianTime\",\n\t\"militaryTime\",\n\t\"ipv4Address\",\n\t\"ipv4Address::tight\",\n\t\"ipv4Address::loose\",\n\t\"ipv6Address\",\n\t\"ipv6Address::${string}\",\n\t\"numericString\",\n\t\"zipCode5\",\n\t\"zipCode5+4\",\n\t\"countryCode2\",\n\t\"countryCode3\",\n\t\"countryName\",\n\t\"capitalized\",\n\t\"url\",\n\t\"url::${string}\",\n\t\"isoDate\",\n\t\"isoDateTime\",\n\t\"usStateAbbrev\",\n\t\"usCitySuggestions\",\n\t\"metricCategory\",\n\t\"metric\",\n\t\"metric::${Metric}\"\n];\nconst TYPE_TOKEN_UNION_SET_VARIANTS = [\"numberLike\", \"scalar\"];\n\n//#endregion\n//#region src/TypeTransforms.ts\nconst t_unknown = \"<<unknown>>\";\nconst t_string = \"<<string>>\";\nconst t_number = \"<<number>>\";\nconst t_union_string_tuple = \"<<union:string,tuple>>\";\n/**\n* **TYPE_TRANSFORMS**\n*\n* A lookup table keyed with the available conversions `ConversionOp` and where\n* each row provides:\n*\n* 1. Reference Type\n* 2. Parameters\n* 3. Description\n*/\nconst TYPE_TRANSFORMS = {\n\tIdentity: [\n\t\tt_unknown,\n\t\t[],\n\t\t\"a transform which returns the same value passed in\"\n\t],\n\tToNever: [\n\t\tt_unknown,\n\t\t[],\n\t\t\"converts all incoming types to the Never type\"\n\t],\n\tToString: [\n\t\tt_unknown,\n\t\t[],\n\t\t\"ensures that any incoming type is converted to a string variant of that value\"\n\t],\n\tToBoolean: [\n\t\tt_unknown,\n\t\t[],\n\t\t\"uses Javascript's \\\"truthiness\\\" to convert inputs to a boolean value; with functions it will use the return type\"\n\t],\n\tTrim: [\n\t\tt_string,\n\t\t[],\n\t\t\"Trims whitespace from start and end of string\"\n\t],\n\tTrimStart: [\n\t\tt_string,\n\t\t[],\n\t\t\"Trims whitespace from start of string\"\n\t],\n\tTrimEnd: [\n\t\tt_string,\n\t\t[],\n\t\t\"Trims whitespace from end of string\"\n\t],\n\tCapitalize: [\n\t\tt_string,\n\t\t[],\n\t\t\"Converts a string input to a capitalized variant\"\n\t],\n\tUnCapitalize: [\n\t\tt_string,\n\t\t[],\n\t\t\"Converts a string input to a un-capitalized variant\"\n\t],\n\tAllCaps: [\n\t\tt_string,\n\t\t[],\n\t\t\"Converts a string input to all uppercase characters\"\n\t],\n\tLowercase: [\n\t\tt_string,\n\t\t[],\n\t\t\"Converts a string input to all lowercase characters\"\n\t],\n\tToCamelCase: [\n\t\tt_string,\n\t\t[],\n\t\t\"Converts a string to use the camelCase naming convention\"\n\t],\n\tToKebabCase: [\n\t\tt_string,\n\t\t[],\n\t\t\"Converts a string to use the kebab-case naming convention\"\n\t],\n\tToPascalCase: [\n\t\tt_string,\n\t\t[],\n\t\t\"Converts a string to use the PascalCase naming convention\"\n\t],\n\tToSnakeCase: [\n\t\tt_string,\n\t\t[],\n\t\t\"Converts a string to use the snake_case naming convention\"\n\t],\n\tStripLeading: [\n\t\tt_string,\n\t\t[t_string],\n\t\t\"Strips a string literal from the beginning of a string (if it exists)\"\n\t],\n\tStripTrailing: [\n\t\tt_string,\n\t\t[t_string],\n\t\t\"Strips a string literal from the end of a string (if it exists)\"\n\t],\n\tEnsureLeading: [\n\t\tt_string,\n\t\t[t_string],\n\t\t\"Ensures a string literal is at the beginning of a string (with no change if it already was)\"\n\t],\n\tEnsureTrailing: [\n\t\tt_string,\n\t\t[t_string],\n\t\t\"Ensures a string literal is at the end of a string (with no change if it already was)\"\n\t],\n\tToPlural: [\n\t\tt_string,\n\t\t[],\n\t\t\"Pluralizes a word\"\n\t],\n\tSurround: [\n\t\tt_string,\n\t\t[t_string, t_string],\n\t\t\"Surrounds a string literal with a pre and post character or set of characters\"\n\t],\n\tPrepend: [\n\t\tt_union_string_tuple,\n\t\t[t_unknown],\n\t\t\"Takes a string or tuple and prepends a value to the start.\"\n\t],\n\tAppend: [\n\t\tt_union_string_tuple,\n\t\t[t_unknown],\n\t\t\"Takes a string or tuple and appends a value to the end.\"\n\t],\n\tIncrement: [\n\t\tt_number,\n\t\t[],\n\t\t\"Increments a numeric value by one\"\n\t],\n\tDecrement: [\n\t\tt_number,\n\t\t[],\n\t\t\"Decrements a numeric value by one\"\n\t]\n};\n\n//#endregion\nexport { ACCELERATION_METRICS_LOOKUP, ALPHA_CHARS, AMAZON_BOOKS, AMAZON_DNS, APPLE_DNS, AREA_METRICS_LOOKUP, AUSTRALIAN_NEWS, BELGIUM_NEWS, BEST_BUY_DNS, BLOOD_MARKERS_LOOKUP, BRACKET_AND_QUOTE_NESTING, BRACKET_NESTING, BRANDED, CANADIAN_NEWS, CHEWY_DNS, CHINESE_NEWS, COMMA, COMMON_OBJ_PROPS, COMPARISON_OPERATIONS, CONSONANTS, CONTINENTS, COSTCO_DNS, CSS_NAMED_COLORS, CURRENT_METRICS_LOOKUP, CVS_DNS, DANISH_NEWS, DATE_TYPE, DAYS_OF_WEEK__Mon, DAYS_OF_WEEK__Sun, DELL_DNS, DISTANCE_METRICS_LOOKUP, DOUBLE_LEAP_M1, DOUBLE_LEAP_M2, DOUBLE_LEAP_M3, DOUBLE_LEAP_M4, DOUBLE_LEAP_M5, DOUBLE_LEAP_MODERN, DUTCH_NEWS, EBAY_DNS, EDITORS, ENERGY_METRICS_LOOKUP, ETSY_DNS, FALSY_TYPE_KINDS, FALSY_VALUES, FRENCH_NEWS, FREQUENCY_METRICS_LOOKUP, GERMAN_NEWS, GITHUB_INSIGHT_CATEGORY_LOOKUP, HASH_TABLE_ALPHA_LOWER, HASH_TABLE_ALPHA_UPPER, HASH_TABLE_CHAR, HASH_TABLE_DIGIT, HASH_TABLE_OTHER, HASH_TABLE_SPECIAL, HASH_TABLE_WIDE, HEMISPHERE, HM_DNS, HOME_DEPOT_DNS, HTML_ATOMIC_TAGS, HTML_BLOCK_TAGS, IANA_TIMEZONES, IANA_TIMEZONES__AFRICA, IANA_TIMEZONES__AMERICA, IANA_TIMEZONES__ANTARCTICA, IANA_TIMEZONES__ASIA, IANA_TIMEZONES__ATLANTIC, IANA_TIMEZONES__AUSTRALIA, IANA_TIMEZONES__EUROPE, IANA_TIMEZONES__INDIAN, IANA_TIMEZONES__OTHER, IANA_TIMEZONES__PACIFIC, IKEA_DNS, IMAGE_FORMAT_LOOKUP, INDIAN_NEWS, INTERPOLATION_BLOCKS, IPv4, IPv6, ISO3166_1, ISO_DATE_30, ISO_DATE_31, ITALIAN_NEWS, IT_ATOMIC_TOKENS, IT_CONTAINER_TOKENS, IT_LITERAL_TOKENS, JAPANESE_NEWS, KROGER_DNS, LITERAL_TYPE_KINDS, LOWER_ALPHA_CHARS, LOWES_DNS, LUMINOSITY_METRICS_LOOKUP, MACYS_DNS, MARKED, MASS_METRICS_LOOKUP, MEXICAN_NEWS, MIME_TYPES, MONTH_ABBR, MONTH_ABBREV_LOOKUP, MONTH_NAME, MONTH_NAME_LOOKUP, MONTH_TO_SEASON_LOOKUP, NARROW_CONTAINER_TYPE_KINDS, NETWORK_PROTOCOL, NETWORK_PROTOCOL_INSECURE, NETWORK_PROTOCOL_LOOKUP, NETWORK_PROTOCOL_SECURE, NIKE_DNS, NON_BREAKING_SPACE, NON_ZERO_NUMERIC_CHAR, NORWEGIAN_NEWS, NOT_APPLICABLE, NOT_DEFINED, NO_DEFAULT_VALUE, NUMERIC_CHAR, NUMERIC_DIGIT, Never, OPTION, PHONE_COUNTRY_CODES, PHONE_FORMAT, PLURAL_EXCEPTIONS, PLURAL_EXCEPTIONS_OLD, POWER_METRICS_LOOKUP, PRESSURE_METRICS_LOOKUP, PROTOCOL_DEFAULT_PORTS, PROXMOX_CT_STATE, QUOTE_NESTING, REPO_PAGE_TYPES, REPO_SOURCES, REPO_SOURCE_LOOKUP, RESISTANCE_METRICS_LOOKUP, RESULT, SAFE_ENCODING_KEYS, SAFE_ENCODING__BRACKETS, SAFE_ENCODING__QUOTES, SAFE_ENCODING__WHITESPACE, SAFE_STRING, SEASONS, SEASON_TO_MONTH_LOOKUP, SHAPE_DELIMITER, SHAPE_PREFIXES, SIMPLE_ARRAY_TOKENS, SIMPLE_CONTAINER_TOKENS, SIMPLE_DICT_TOKENS, SIMPLE_DICT_VALUES, SIMPLE_FN_TOKENS, SIMPLE_MAP_KEYS, SIMPLE_MAP_TOKENS, SIMPLE_MAP_VALUES, SIMPLE_OPT_SCALAR_TOKENS, SIMPLE_SCALAR_TOKENS, SIMPLE_SET_TOKENS, SIMPLE_SET_TYPES, SIMPLE_TOKENS, SIMPLE_UNION_TOKENS, SINGULAR_NOUN_ENDINGS, SOCIAL_MEDIA, SOUTH_KOREAN_NEWS, SPANISH_NEWS, SPEED_METRICS_LOOKUP, SWISS_NEWS, TARGET_DNS, TEMPERATURE_METRICS_LOOKUP, TIME_METRICS_LOOKUP, TOP_LEVEL_DOMAINS, TT_ATOMICS, TT_CONTAINERS, TT_DELIMITER, TT_FUNCTIONS, TT_KIND_VARIANTS, TT_SETS, TT_SINGLETONS, TT_START, TT_STOP, TURKISH_NEWS, TW_CHROMA, TW_CHROMA_100, TW_CHROMA_200, TW_CHROMA_300, TW_CHROMA_400, TW_CHROMA_50, TW_CHROMA_500, TW_CHROMA_600, TW_CHROMA_700, TW_CHROMA_800, TW_CHROMA_900, TW_CHROMA_950, TW_COLOR_TARGETS, TW_HUE, TW_HUE_NEUTRAL, TW_HUE_STATIC, TW_HUE_VIBRANT, TW_LUMINOSITY, TW_LUMIN_100, TW_LUMIN_200, TW_LUMIN_300, TW_LUMIN_400, TW_LUMIN_50, TW_LUMIN_500, TW_LUMIN_600, TW_LUMIN_700, TW_LUMIN_800, TW_LUMIN_900, TW_LUMIN_950, TW_MODIFIERS, TW_MODIFIERS_CORE, TW_MODIFIERS_ORDER, TW_MODIFIERS_RELN, TW_MODIFIERS_SIZING, TYPE_COMPARISONS, TYPE_KINDS, TYPE_OF, TYPE_TOKEN_REC_KEY_VARIANTS, TYPE_TOKEN_REC_VARIANTS, TYPE_TOKEN_STRING_SET_VARIANTS, TYPE_TOKEN_UNION_SET_VARIANTS, TYPE_TRANSFORMS, UK_NEWS, UPPER_ALPHA_CHARS, US_NEWS, US_STATE_LOOKUP, US_STATE_LOOKUP_PROVINCES, US_STATE_LOOKUP_STRICT, VOLTAGE_METRICS_LOOKUP, VOLUME_METRICS_LOOKUP, WALGREENS_DNS, WALMART_DNS, WAYFAIR_DNS, WEEKEND_DAY, WEEKEND_DAY_ABBREV, WEEK_DAY, WEEK_DAY_ABBREV, WHITESPACE_CHARS, WHOLE_FOODS_DNS, WIDE_CONTAINER_TYPE_KINDS, WIDE_TYPE_KINDS, WideAssignment, ZARA_DNS, ZIP_TO_STATE };\n//# sourceMappingURL=index.js.map","//#region src/api/handleDoneFn.ts\n/**\n* **handleDoneFn**(val, [bare_fn])\n*\n* Looks at the value passed in and if it's an object with\n* a property `done` which is a function it will call it;\n* otherwise it will proxy the value through.\n*\n* If you wish to also detect a bare function and have it\n* call that too, you can set the `call_bare_fn` to **true**.\n*/\nfunction handleDoneFn(val, call_bare_fn = false) {\n\treturn isDictionary(val) || isFunction(val) ? isDoneFn(val) ? val.done() : isFunction(val) ? call_bare_fn ? val() : val : val : isFunction(val) ? call_bare_fn ? val() : val : val;\n}\n\n//#endregion\n//#region src/boolean-logic/equalsSome.ts\n/**\n* **equalsSome**`(...some) -> (val) -> boolean`\n*\n* A higher order function which:\n*\n* 1. _takes_ a set of \"possible values/types\" and then\n* 2. _takes_ a value/type and returns a boolean value indicating whether\n* the value is **equal** to _any_ of the possible values this was configured\n* with.\n*\n*\n* ```ts\n* //\n* const test = equalsSome(\"foo\",\"bar\",\"baz\");\n* ```\n*/\nfunction equalsSome(...some) {\n\treturn (val) => {\n\t\treturn some.includes(val);\n\t};\n}\n\n//#endregion\n//#region src/boolean-logic/ifArray.ts\n/**\n* **ifArray**(T, IF, ELSE)\n*\n* A utility which evaluates a type `T` for whether it is an array and then\n*/\nfunction ifArray(val, isAnArray, isNotAnArray) {\n\treturn Array.isArray(val) ? isAnArray(val) : isNotAnArray(val);\n}\n\n//#endregion\n//#region src/boolean-logic/ifArrayPartial.ts\nfunction ifArrayPartial() {\n\treturn (isAnArray, isNotAnArray) => {\n\t\treturn (val) => ifArray(val, isAnArray, isNotAnArray);\n\t};\n}\n\n//#endregion\n//#region src/boolean-logic/ifBoolean.ts\n/**\n* **ifBoolean**\n*\n* Strongly type-aware conditional statement which checks whether a value is\n* a _boolean_ and returns one of two values (strongly typed) based on the evaluation\n* of this criteria.\n*\n* @param val the value being tested\n* @param ifBoolean the value (strongly typed) returned if val is _boolean_\n* @param notBoolean the value (strongly typed) returned if val is NOT a _boolean\n*/\nfunction ifBoolean(val, ifBoolean$1, notBoolean) {\n\treturn isBoolean(val) ? ifBoolean$1(val) : notBoolean(val);\n}\n\n//#endregion\n//#region ../constants/src/Alpha.ts\n/**\n* An array of all the lower-cased alphabetic characters\n*/\nconst LOWER_ALPHA_CHARS = [\n\t\"a\",\n\t\"b\",\n\t\"c\",\n\t\"d\",\n\t\"e\",\n\t\"f\",\n\t\"g\",\n\t\"h\",\n\t\"i\",\n\t\"j\",\n\t\"k\",\n\t\"l\",\n\t\"m\",\n\t\"n\",\n\t\"o\",\n\t\"p\",\n\t\"q\",\n\t\"r\",\n\t\"s\",\n\t\"t\",\n\t\"u\",\n\t\"v\",\n\t\"w\",\n\t\"x\",\n\t\"y\",\n\t\"z\"\n];\n/**\n* An array of all the upper-cased alphabetic characters\n*/\nconst UPPER_ALPHA_CHARS = [\n\t\"A\",\n\t\"B\",\n\t\"C\",\n\t\"D\",\n\t\"E\",\n\t\"F\",\n\t\"G\",\n\t\"H\",\n\t\"I\",\n\t\"J\",\n\t\"K\",\n\t\"L\",\n\t\"M\",\n\t\"N\",\n\t\"O\",\n\t\"P\",\n\t\"Q\",\n\t\"R\",\n\t\"S\",\n\t\"T\",\n\t\"U\",\n\t\"V\",\n\t\"W\",\n\t\"X\",\n\t\"Y\",\n\t\"Z\"\n];\n/**\n* An array of all alphabetic characters (upper and lower)\n*/\nconst ALPHA_CHARS = [...LOWER_ALPHA_CHARS, ...UPPER_ALPHA_CHARS];\n\n//#endregion\n//#region ../constants/src/Books.ts\nconst string = `{{ string }}`;\nconst AMAZON_BOOKS = [\n\t`https://www.amazon.com/${string}storeType=ebooks${string}`,\n\t`https://www.amazon.com/${string}ref=tmm_hrd_swatch${string}`,\n\t`https://www.amazon.com/${string}ref=tmm_pap_swatch${string}`,\n\t`https://www.amazon.com/${string}ref=tmm_aud_swatch${string}`,\n\t`https://www.amazon.com/books-used-books-textbooks/${string}`\n];\n\n//#endregion\n//#region ../constants/src/Brands.ts\nconst SAFE_STRING = Symbol(\"SafeString\");\nconst NON_BREAKING_SPACE = Symbol(\"Non-Breaking Space\");\nconst BRANDED = Symbol(\"Branded\");\n\n//#endregion\n//#region ../constants/src/Characters.ts\nconst WHITESPACE_CHARS = [\n\t\" \",\n\t\"\\n\",\n\t\"\t\",\n\t\"\\b\"\n];\n\n//#endregion\n//#region ../constants/src/Comma.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant$5(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n/**\n* **COMMA**\n*\n* A constant used for serializing a comma in cases\n* where a comma has special meaning (for instance\n* CSV data where a raw comma is considered a\n* separator)\n*/\nconst COMMA = createConstant$5(\"comma\");\n\n//#endregion\n//#region ../constants/src/Comparisons.ts\nconst COMPARISON_OPERATIONS = [\n\t\"extends\",\n\t\"startsWith\",\n\t\"endsWith\",\n\t\"endsWithNumber\",\n\t\"startsWithNumber\",\n\t\"onlyNumbers\",\n\t\"alphaNumeric\",\n\t\"onlyLetters\",\n\t\"contains\",\n\t\"containsSome\",\n\t\"containsAll\",\n\t\"greaterThan\",\n\t\"greaterThanOrEqual\",\n\t\"lessThan\",\n\t\"lessThanOrEqual\",\n\t\"objectKeyGreaterThan\",\n\t\"objectKeyGreaterThanOrEqual\",\n\t\"objectKeyLessThan\",\n\t\"objectKeyLessThanOrEqual\",\n\t\"objectKeyEquals\",\n\t\"objectKeyExtends\",\n\t\"betweenInclusively\",\n\t\"betweenExclusively\",\n\t\"equals\",\n\t\"equalsSome\",\n\t\"errors\",\n\t\"errorsOfType\",\n\t\"before\",\n\t\"after\",\n\t\"sameDay\",\n\t\"sameMonth\",\n\t\"sameMonthYear\",\n\t\"sameYear\",\n\t\"truthy\",\n\t\"falsy\",\n\t\"true\",\n\t\"false\",\n\t\"returnEquals\",\n\t\"returnExtends\",\n\t\"isTemplateLiteral\",\n\t\"hasLength\"\n];\n\n//#endregion\n//#region ../constants/src/DateTime.ts\n/**\n* **MONTH_NAME**\n*\n* Full month names.\n*/\nconst MONTH_NAME = [\n\t\"January\",\n\t\"February\",\n\t\"March\",\n\t\"April\",\n\t\"May\",\n\t\"June\",\n\t\"July\",\n\t\"August\",\n\t\"September\",\n\t\"October\",\n\t\"November\",\n\t\"December\"\n];\n/**\n* **MONTH_ABBR**\n*\n* Abbreviated month names.\n*/\nconst MONTH_ABBR = [\n\t\"Jan\",\n\t\"Feb\",\n\t\"Mar\",\n\t\"Apr\",\n\t\"May\",\n\t\"Jun\",\n\t\"Jul\",\n\t\"Aug\",\n\t\"Sep\",\n\t\"Oct\",\n\t\"Nov\",\n\t\"Dec\"\n];\nconst MONTH_NAME_LOOKUP = {\n\t\"January\": {\n\t\tabbrev: \"Jan\",\n\t\tnum: 1,\n\t\ttwoDigitStr: \"01\"\n\t},\n\t\"February\": {\n\t\tabbrev: \"Feb\",\n\t\tnum: 2,\n\t\ttwoDigitStr: \"02\"\n\t},\n\t\"March\": {\n\t\tabbrev: \"Mar\",\n\t\tnum: 3,\n\t\ttwoDigitStr: \"03\"\n\t},\n\t\"April\": {\n\t\tabbrev: \"Apr\",\n\t\tnum: 4,\n\t\ttwoDigitStr: \"04\"\n\t},\n\t\"May\": {\n\t\tabbrev: \"May\",\n\t\tnum: 5,\n\t\ttwoDigitStr: \"05\"\n\t},\n\t\"June\": {\n\t\tabbrev: \"Jun\",\n\t\tnum: 6,\n\t\ttwoDigitStr: \"06\"\n\t},\n\t\"July\": {\n\t\tabbrev: \"Jul\",\n\t\tnum: 7,\n\t\ttwoDigitStr: \"07\"\n\t},\n\t\"August\": {\n\t\tabbrev: \"Aug\",\n\t\tnum: 8,\n\t\ttwoDigitStr: \"08\"\n\t},\n\t\"September\": {\n\t\tabbrev: \"Sep\",\n\t\tnum: 9,\n\t\ttwoDigitStr: \"09\"\n\t},\n\t\"October\": {\n\t\tabbrev: \"Oct\",\n\t\tnum: 10,\n\t\ttwoDigitStr: \"10\"\n\t},\n\t\"November\": {\n\t\tabbrev: \"Nov\",\n\t\tnum: 11,\n\t\ttwoDigitStr: \"11\"\n\t},\n\t\"December\": {\n\t\tabbrev: \"Dec\",\n\t\tnum: 12,\n\t\ttwoDigitStr: \"12\"\n\t}\n};\nconst MONTH_ABBREV_LOOKUP = {\n\t\"Jan\": {\n\t\tname: \"January\",\n\t\tnum: 1,\n\t\ttwoDigitStr: \"01\"\n\t},\n\t\"Feb\": {\n\t\tname: \"February\",\n\t\tnum: 2,\n\t\ttwoDigitStr: \"02\"\n\t},\n\t\"Mar\": {\n\t\tname: \"March\",\n\t\tnum: 3,\n\t\ttwoDigitStr: \"03\"\n\t},\n\t\"Apr\": {\n\t\tname: \"April\",\n\t\tnum: 4,\n\t\ttwoDigitStr: \"04\"\n\t},\n\t\"May\": {\n\t\tname: \"May\",\n\t\tnum: 5,\n\t\ttwoDigitStr: \"05\"\n\t},\n\t\"Jun\": {\n\t\tname: \"June\",\n\t\tnum: 6,\n\t\ttwoDigitStr: \"06\"\n\t},\n\t\"Jul\": {\n\t\tname: \"July\",\n\t\tnum: 7,\n\t\ttwoDigitStr: \"07\"\n\t},\n\t\"Aug\": {\n\t\tname: \"August\",\n\t\tnum: 8,\n\t\ttwoDigitStr: \"08\"\n\t},\n\t\"Sep\": {\n\t\tname: \"September\",\n\t\tnum: 9,\n\t\ttwoDigitStr: \"09\"\n\t},\n\t\"Oct\": {\n\t\tname: \"October\",\n\t\tnum: 10,\n\t\ttwoDigitStr: \"10\"\n\t},\n\t\"Nov\": {\n\t\tname: \"November\",\n\t\tnum: 11,\n\t\ttwoDigitStr: \"11\"\n\t},\n\t\"Dec\": {\n\t\tname: \"December\",\n\t\tnum: 12,\n\t\ttwoDigitStr: \"12\"\n\t}\n};\nconst MONTH_TO_SEASON_LOOKUP = {\n\tnorthern: {\n\t\t\"Jan\": \"Winter\",\n\t\t\"Feb\": \"Winter\",\n\t\t\"Mar\": \"Spring\",\n\t\t\"Apr\": \"Spring\",\n\t\t\"May\": \"Spring\",\n\t\t\"Jun\": \"Summer\",\n\t\t\"Jul\": \"Summer\",\n\t\t\"Aug\": \"Summer\",\n\t\t\"Sep\": \"Fall\",\n\t\t\"Oct\": \"Fall\",\n\t\t\"Nov\": \"Fall\",\n\t\t\"Dec\": \"Winter\"\n\t},\n\tsouthern: {\n\t\t\"Jan\": \"Summer\",\n\t\t\"Feb\": \"Summer\",\n\t\t\"Mar\": \"Fall\",\n\t\t\"Apr\": \"Fall\",\n\t\t\"May\": \"Fall\",\n\t\t\"Jun\": \"Summer\",\n\t\t\"Jul\": \"Summer\",\n\t\t\"Aug\": \"Summer\",\n\t\t\"Sep\": \"Spring\",\n\t\t\"Oct\": \"Spring\",\n\t\t\"Nov\": \"Spring\",\n\t\t\"Dec\": \"Summer\"\n\t}\n};\nconst DATE_TYPE = [\n\t\"datetime\",\n\t\"date\",\n\t\"year-independent\",\n\t\"year-month\",\n\t\"year\"\n];\n/**\n* months with 30 days\n*/\nconst ISO_DATE_30 = [\n\t\"04\",\n\t\"06\",\n\t\"09\",\n\t\"11\"\n];\n/**\n* months with 31 days\n*/\nconst ISO_DATE_31 = [\n\t\"01\",\n\t\"03\",\n\t\"05\",\n\t\"07\",\n\t\"08\",\n\t\"10\",\n\t\"12\"\n];\n\n//#endregion\n//#region ../constants/src/DoubleLeap_Typical.ts\n/**\n* Double Leap Years for modern times (1400-2300)\n*/\nconst DOUBLE_LEAP_MODERN = [\n\t1408,\n\t1416,\n\t1444,\n\t1452,\n\t1460,\n\t1468,\n\t1476,\n\t1484,\n\t1492,\n\t1520,\n\t1528,\n\t1536,\n\t1544,\n\t1552,\n\t1560,\n\t1568,\n\t1596,\n\t1604,\n\t1612,\n\t1620,\n\t1628,\n\t1636,\n\t1644,\n\t1672,\n\t1680,\n\t1688,\n\t1696,\n\t1704,\n\t1712,\n\t1720,\n\t1748,\n\t1756,\n\t1764,\n\t1772,\n\t1780,\n\t1788,\n\t1796,\n\t1824,\n\t1832,\n\t1840,\n\t1848,\n\t1856,\n\t1864,\n\t1872,\n\t1908,\n\t1916,\n\t1924,\n\t1932,\n\t1940,\n\t1948,\n\t1976,\n\t1984,\n\t1992,\n\t2e3,\n\t2008,\n\t2016,\n\t2024,\n\t2052,\n\t2060,\n\t2068,\n\t2076,\n\t2084,\n\t2092,\n\t2128,\n\t2136,\n\t2144,\n\t2152,\n\t2160,\n\t2168,\n\t2176,\n\t2204,\n\t2212,\n\t2220,\n\t2228,\n\t2236,\n\t2244,\n\t2252,\n\t2280,\n\t2288,\n\t2296\n];\n\n//#endregion\n//#region ../constants/src/FalsyValues.ts\n/**\n* **FALSY_VALUES**\n*\n* A tuple which contains all values which are considered _falsy_ in\n* Javascript.\n*/\nconst FALSY_VALUES = [\n\tfalse,\n\t0,\n\t-0,\n\t\"\",\n\tnull,\n\tvoid 0,\n\tNaN\n];\n\n//#endregion\n//#region ../constants/src/Geo.ts\n/**\n* The 50 US states: `[name, abbrev, true]`\n*/\nconst US_STATE_LOOKUP_STRICT = [\n\t{\n\t\tname: \"Alabama\",\n\t\tabbrev: \"AL\"\n\t},\n\t{\n\t\tname: \"Alaska\",\n\t\tabbrev: \"AK\"\n\t},\n\t{\n\t\tname: \"Arizona\",\n\t\tabbrev: \"AZ\"\n\t},\n\t{\n\t\tname: \"Arkansas\",\n\t\tabbrev: \"AR\"\n\t},\n\t{\n\t\tname: \"California\",\n\t\tabbrev: \"CA\"\n\t},\n\t{\n\t\tname: \"Colorado\",\n\t\tabbrev: \"CO\"\n\t},\n\t{\n\t\tname: \"Connecticut\",\n\t\tabbrev: \"CT\"\n\t},\n\t{\n\t\tname: \"Delaware\",\n\t\tabbrev: \"DE\"\n\t},\n\t{\n\t\tname: \"Florida\",\n\t\tabbrev: \"FL\"\n\t},\n\t{\n\t\tname: \"Georgia\",\n\t\tabbrev: \"GA\"\n\t},\n\t{\n\t\tname: \"Hawaii\",\n\t\tabbrev: \"HI\"\n\t},\n\t{\n\t\tname: \"Idaho\",\n\t\tabbrev: \"ID\"\n\t},\n\t{\n\t\tname: \"Illinois\",\n\t\tabbrev: \"IL\"\n\t},\n\t{\n\t\tname: \"Indiana\",\n\t\tabbrev: \"IN\"\n\t},\n\t{\n\t\tname: \"Iowa\",\n\t\tabbrev: \"IA\"\n\t},\n\t{\n\t\tname: \"Kansas\",\n\t\tabbrev: \"KS\"\n\t},\n\t{\n\t\tname: \"Kentucky\",\n\t\tabbrev: \"KY\"\n\t},\n\t{\n\t\tname: \"Louisiana\",\n\t\tabbrev: \"LA\"\n\t},\n\t{\n\t\tname: \"Maine\",\n\t\tabbrev: \"ME\"\n\t},\n\t{\n\t\tname: \"Maryland\",\n\t\tabbrev: \"MD\"\n\t},\n\t{\n\t\tname: \"Massachusetts\",\n\t\tabbrev: \"MA\"\n\t},\n\t{\n\t\tname: \"Michigan\",\n\t\tabbrev: \"MI\"\n\t},\n\t{\n\t\tname: \"Minnesota\",\n\t\tabbrev: \"MN\"\n\t},\n\t{\n\t\tname: \"Mississippi\",\n\t\tabbrev: \"MS\"\n\t},\n\t{\n\t\tname: \"Missouri\",\n\t\tabbrev: \"MO\"\n\t},\n\t{\n\t\tname: \"Montana\",\n\t\tabbrev: \"MT\"\n\t},\n\t{\n\t\tname: \"Nebraska\",\n\t\tabbrev: \"NE\"\n\t},\n\t{\n\t\tname: \"Nevada\",\n\t\tabbrev: \"NV\"\n\t},\n\t{\n\t\tname: \"New Hampshire\",\n\t\tabbrev: \"NH\"\n\t},\n\t{\n\t\tname: \"New Jersey\",\n\t\tabbrev: \"NJ\"\n\t},\n\t{\n\t\tname: \"New Mexico\",\n\t\tabbrev: \"NM\"\n\t},\n\t{\n\t\tname: \"New York\",\n\t\tabbrev: \"NY\"\n\t},\n\t{\n\t\tname: \"North Carolina\",\n\t\tabbrev: \"NC\"\n\t},\n\t{\n\t\tname: \"North Dakota\",\n\t\tabbrev: \"ND\"\n\t},\n\t{\n\t\tname: \"Ohio\",\n\t\tabbrev: \"OH\"\n\t},\n\t{\n\t\tname: \"Oklahoma\",\n\t\tabbrev: \"OK\"\n\t},\n\t{\n\t\tname: \"Oregon\",\n\t\tabbrev: \"OR\"\n\t},\n\t{\n\t\tname: \"Pennsylvania\",\n\t\tabbrev: \"PA\"\n\t},\n\t{\n\t\tname: \"Rhode Island\",\n\t\tabbrev: \"RI\"\n\t},\n\t{\n\t\tname: \"South Carolina\",\n\t\tabbrev: \"SC\"\n\t},\n\t{\n\t\tname: \"South Dakota\",\n\t\tabbrev: \"SD\"\n\t},\n\t{\n\t\tname: \"Tennessee\",\n\t\tabbrev: \"TN\"\n\t},\n\t{\n\t\tname: \"Texas\",\n\t\tabbrev: \"TX\"\n\t},\n\t{\n\t\tname: \"Utah\",\n\t\tabbrev: \"UT\"\n\t},\n\t{\n\t\tname: \"Vermont\",\n\t\tabbrev: \"VT\"\n\t},\n\t{\n\t\tname: \"Virginia\",\n\t\tabbrev: \"VA\"\n\t},\n\t{\n\t\tname: \"Washington\",\n\t\tabbrev: \"WA\"\n\t},\n\t{\n\t\tname: \"West Virginia\",\n\t\tabbrev: \"WV\"\n\t},\n\t{\n\t\tname: \"Wisconsin\",\n\t\tabbrev: \"WI\"\n\t},\n\t{\n\t\tname: \"Wyoming\",\n\t\tabbrev: \"WY\"\n\t}\n];\n/**\n* The 9 provinces to the US which are granted State codes.\n*/\nconst US_STATE_LOOKUP_PROVINCES = [\n\t{\n\t\tname: \"Puerto Rico\",\n\t\tabbrev: \"PR\"\n\t},\n\t{\n\t\tname: \"Virgin Islands\",\n\t\tabbrev: \"VI\"\n\t},\n\t{\n\t\tname: \"Palau\",\n\t\tabbrev: \"PW\"\n\t},\n\t{\n\t\tname: \"Federated States of Micronesia\",\n\t\tabbrev: \"FM\"\n\t},\n\t{\n\t\tname: \"Northern Mariana Islands\",\n\t\tabbrev: \"MP\"\n\t},\n\t{\n\t\tname: \"District of Columbia\",\n\t\tabbrev: \"DC\"\n\t},\n\t{\n\t\tname: \"Marshall Islands\",\n\t\tabbrev: \"MH\"\n\t},\n\t{\n\t\tname: \"American Samoa\",\n\t\tabbrev: \"AS\"\n\t},\n\t{\n\t\tname: \"Guam\",\n\t\tabbrev: \"GU\"\n\t}\n];\n/**\n* All 50 states and 9 provinces which have State abbreviations.\n*\n* Data format is: `[name, abbrev, flag]` where the boolean flag\n* indicates whether the line item is one of the 50 true states.\n*/\nconst US_STATE_LOOKUP = [...US_STATE_LOOKUP_STRICT, ...US_STATE_LOOKUP_PROVINCES];\n\n//#endregion\n//#region ../constants/src/HashTable.ts\nconst HASH_TABLE_ALPHA_LOWER = {\n\ta: \"8\",\n\tb: \"~\",\n\tc: \"^\",\n\td: \".\",\n\te: \"82\",\n\tf: \"89\",\n\tg: \",\",\n\th: \"!\",\n\ti: \"-7\",\n\tj: \"-8\",\n\tk: \"88\",\n\tl: \"8f\",\n\tm: \"8e\",\n\tn: \"6e\",\n\to: \"44\",\n\tp: \"60\",\n\tq: \"61\",\n\tr: \"71\",\n\ts: \":\",\n\tt: \"-45\",\n\tu: \"-5\",\n\tv: \"-9\",\n\tw: \"-f\",\n\tx: \"+1\",\n\ty: \";\",\n\tz: \"*1\"\n};\nconst HASH_TABLE_SPECIAL = {\n\t\"!\": \"1\",\n\t\"@\": \"8\",\n\t\"#\": \"5\",\n\t\"$\": \"4\",\n\t\"%\": \"3\",\n\t\"^\": \"2\",\n\t\"&\": \"9\",\n\t\"*\": \"7\",\n\t\"(\": \"6\",\n\t\")\": \"12\",\n\t\"{\": \"33\",\n\t\"}\": \"54\",\n\t\"[\": \"x8\",\n\t\"]\": \"y4\",\n\t\":\": \"z2\",\n\t\";\": \"e88\",\n\t\"\\\"\": \"c11\",\n\t\"'\": \"c12\",\n\t\"<\": \"p3\",\n\t\",\": \"45\",\n\t\">\": \"e9\",\n\t\".\": \"f2\",\n\t\"?\": \"ee\",\n\t\"/\": \"u9\",\n\t\"\\\\\": \"f9\",\n\t\"|\": \"q1\",\n\t\"~\": \"fe\",\n\t\"`\": \"8e\"\n};\nconst HASH_TABLE_ALPHA_UPPER = {\n\tA: \"b8\",\n\tB: \"~9\",\n\tC: \"6^\",\n\tD: \".8\",\n\tE: \"5<\",\n\tF: \">7\",\n\tG: \"1,\",\n\tH: \"!7\",\n\tI: \"8#\",\n\tJ: \"@9\",\n\tK: \"1*\",\n\tL: \"4&\",\n\tM: \"+5\",\n\tN: \"j|\",\n\tO: \"-l\",\n\tP: \"q{\",\n\tQ: \"]9\",\n\tR: \"f%\",\n\tS: \":3\",\n\tT: \"?+\",\n\tU: \"}5\",\n\tV: \"'4\",\n\tW: \"1@g\",\n\tX: \"0+1\",\n\tY: \"4;\",\n\tZ: \"a*1\"\n};\nconst HASH_TABLE_CHAR = {\n\t...HASH_TABLE_ALPHA_LOWER,\n\t...HASH_TABLE_ALPHA_UPPER,\n\t...HASH_TABLE_SPECIAL\n};\n\n//#endregion\n//#region ../constants/src/HTML.ts\n/**\n* An array of all valid HTML tags that have both opening and closing tags.\n*/\nconst HTML_BLOCK_TAGS = [\n\t\"a\",\n\t\"abbr\",\n\t\"address\",\n\t\"article\",\n\t\"aside\",\n\t\"b\",\n\t\"bdi\",\n\t\"bdo\",\n\t\"blockquote\",\n\t\"body\",\n\t\"button\",\n\t\"canvas\",\n\t\"caption\",\n\t\"cite\",\n\t\"code\",\n\t\"colgroup\",\n\t\"data\",\n\t\"datalist\",\n\t\"dd\",\n\t\"del\",\n\t\"details\",\n\t\"dfn\",\n\t\"dialog\",\n\t\"div\",\n\t\"dl\",\n\t\"dt\",\n\t\"em\",\n\t\"fieldset\",\n\t\"figcaption\",\n\t\"figure\",\n\t\"footer\",\n\t\"form\",\n\t\"h1\",\n\t\"h2\",\n\t\"h3\",\n\t\"h4\",\n\t\"h5\",\n\t\"h6\",\n\t\"head\",\n\t\"header\",\n\t\"html\",\n\t\"i\",\n\t\"iframe\",\n\t\"ins\",\n\t\"kbd\",\n\t\"label\",\n\t\"legend\",\n\t\"li\",\n\t\"main\",\n\t\"map\",\n\t\"mark\",\n\t\"menu\",\n\t\"meter\",\n\t\"nav\",\n\t\"noscript\",\n\t\"object\",\n\t\"ol\",\n\t\"optgroup\",\n\t\"option\",\n\t\"output\",\n\t\"p\",\n\t\"picture\",\n\t\"pre\",\n\t\"progress\",\n\t\"q\",\n\t\"rp\",\n\t\"rt\",\n\t\"ruby\",\n\t\"s\",\n\t\"samp\",\n\t\"script\",\n\t\"section\",\n\t\"select\",\n\t\"small\",\n\t\"span\",\n\t\"strong\",\n\t\"style\",\n\t\"sub\",\n\t\"summary\",\n\t\"sup\",\n\t\"svg\",\n\t\"table\",\n\t\"tbody\",\n\t\"td\",\n\t\"template\",\n\t\"textarea\",\n\t\"tfoot\",\n\t\"th\",\n\t\"thead\",\n\t\"time\",\n\t\"title\",\n\t\"tr\",\n\t\"u\",\n\t\"ul\",\n\t\"var\",\n\t\"video\"\n];\n/**\n* An array of all valid HTML tags that are self-closing (do not have closing tags).\n*/\nconst HTML_ATOMIC_TAGS = [\n\t\"area\",\n\t\"base\",\n\t\"br\",\n\t\"col\",\n\t\"embed\",\n\t\"hr\",\n\t\"img\",\n\t\"input\",\n\t\"link\",\n\t\"meta\",\n\t\"param\",\n\t\"source\",\n\t\"track\",\n\t\"wbr\"\n];\n\n//#endregion\n//#region ../constants/src/ISO3166.ts\n/**\n* All country codes (name, alpha-2, country-code)\n*/\nconst ISO3166_1 = [\n\t{\n\t\tname: \"Afghanistan\",\n\t\talpha2: \"AF\",\n\t\tcountryCode: \"004\",\n\t\talpha3: \"AFG\"\n\t},\n\t{\n\t\tname: \"Albania\",\n\t\talpha2: \"AL\",\n\t\tcountryCode: \"008\",\n\t\talpha3: \"ALB\"\n\t},\n\t{\n\t\tname: \"Algeria\",\n\t\talpha2: \"DZ\",\n\t\tcountryCode: \"012\",\n\t\talpha3: \"DZA\"\n\t},\n\t{\n\t\tname: \"Andorra\",\n\t\talpha2: \"AD\",\n\t\tcountryCode: \"020\",\n\t\talpha3: \"AND\"\n\t},\n\t{\n\t\tname: \"Angola\",\n\t\talpha2: \"AO\",\n\t\tcountryCode: \"024\",\n\t\talpha3: \"AGO\"\n\t},\n\t{\n\t\tname: \"Argentina\",\n\t\talpha2: \"AR\",\n\t\tcountryCode: \"032\",\n\t\talpha3: \"ARG\"\n\t},\n\t{\n\t\tname: \"Australia\",\n\t\talpha2: \"AU\",\n\t\tcountryCode: \"036\",\n\t\talpha3: \"AUS\"\n\t},\n\t{\n\t\tname: \"Austria\",\n\t\talpha2: \"AT\",\n\t\tcountryCode: \"040\",\n\t\talpha3: \"AUT\"\n\t},\n\t{\n\t\tname: \"Azerbaijan\",\n\t\talpha2: \"AZ\",\n\t\tcountryCode: \"031\",\n\t\talpha3: \"AZE\"\n\t},\n\t{\n\t\tname: \"Bahamas\",\n\t\talpha2: \"BS\",\n\t\tcountryCode: \"044\",\n\t\talpha3: \"BHS\"\n\t},\n\t{\n\t\tname: \"Bangladesh\",\n\t\talpha2: \"BD\",\n\t\tcountryCode: \"050\",\n\t\talpha3: \"BGD\"\n\t},\n\t{\n\t\tname: \"Belgium\",\n\t\talpha2: \"BE\",\n\t\tcountryCode: \"056\",\n\t\talpha3: \"BEL\"\n\t},\n\t{\n\t\tname: \"Belize\",\n\t\talpha2: \"BZ\",\n\t\tcountryCode: \"084\",\n\t\talpha3: \"BLZ\"\n\t},\n\t{\n\t\tname: \"Benin\",\n\t\talpha2: \"BJ\",\n\t\tcountryCode: \"204\",\n\t\talpha3: \"BEN\"\n\t},\n\t{\n\t\tname: \"Bhutan\",\n\t\talpha2: \"BT\",\n\t\tcountryCode: \"064\",\n\t\talpha3: \"BTN\"\n\t},\n\t{\n\t\tname: \"Bolivia\",\n\t\talpha2: \"BO\",\n\t\tcountryCode: \"068\",\n\t\talpha3: \"BOL\"\n\t},\n\t{\n\t\tname: \"Bosnia and Herzegovina\",\n\t\talpha2: \"BA\",\n\t\tcountryCode: \"070\",\n\t\talpha3: \"BIH\"\n\t},\n\t{\n\t\tname: \"Botswana\",\n\t\talpha2: \"BW\",\n\t\tcountryCode: \"072\",\n\t\talpha3: \"BWA\"\n\t},\n\t{\n\t\tname: \"Brazil\",\n\t\talpha2: \"BR\",\n\t\tcountryCode: \"076\",\n\t\talpha3: \"BRA\"\n\t},\n\t{\n\t\tname: \"Brunei Darussalam\",\n\t\talpha2: \"BN\",\n\t\tcountryCode: \"096\",\n\t\talpha3: \"BRN\"\n\t},\n\t{\n\t\tname: \"Bulgaria\",\n\t\talpha2: \"BG\",\n\t\tcountryCode: \"100\",\n\t\talpha3: \"BGR\"\n\t},\n\t{\n\t\tname: \"Burkina Faso\",\n\t\talpha2: \"BF\",\n\t\tcountryCode: \"854\",\n\t\talpha3: \"BFA\"\n\t},\n\t{\n\t\tname: \"Burundi\",\n\t\talpha2: \"BI\",\n\t\tcountryCode: \"108\",\n\t\talpha3: \"BDI\"\n\t},\n\t{\n\t\tname: \"Cambodia\",\n\t\talpha2: \"KH\",\n\t\tcountryCode: \"116\",\n\t\talpha3: \"KHM\"\n\t},\n\t{\n\t\tname: \"Cameroon\",\n\t\talpha2: \"CM\",\n\t\tcountryCode: \"120\",\n\t\talpha3: \"CMR\"\n\t},\n\t{\n\t\tname: \"Canada\",\n\t\talpha2: \"CA\",\n\t\tcountryCode: \"124\",\n\t\talpha3: \"CAN\"\n\t},\n\t{\n\t\tname: \"Afghanistan\",\n\t\talpha2: \"AF\",\n\t\tcountryCode: \"004\",\n\t\talpha3: \"AFG\"\n\t},\n\t{\n\t\tname: \"Albania\",\n\t\talpha2: \"AL\",\n\t\tcountryCode: \"008\",\n\t\talpha3: \"ALB\"\n\t},\n\t{\n\t\tname: \"Algeria\",\n\t\talpha2: \"DZ\",\n\t\tcountryCode: \"012\",\n\t\talpha3: \"DZA\"\n\t},\n\t{\n\t\tname: \"Andorra\",\n\t\talpha2: \"AD\",\n\t\tcountryCode: \"020\",\n\t\talpha3: \"AND\"\n\t},\n\t{\n\t\tname: \"Angola\",\n\t\talpha2: \"AO\",\n\t\tcountryCode: \"024\",\n\t\talpha3: \"AGO\"\n\t},\n\t{\n\t\tname: \"Argentina\",\n\t\talpha2: \"AR\",\n\t\tcountryCode: \"032\",\n\t\talpha3: \"ARG\"\n\t},\n\t{\n\t\tname: \"Australia\",\n\t\talpha2: \"AU\",\n\t\tcountryCode: \"036\",\n\t\talpha3: \"AUS\"\n\t},\n\t{\n\t\tname: \"Austria\",\n\t\talpha2: \"AT\",\n\t\tcountryCode: \"040\",\n\t\talpha3: \"AUT\"\n\t},\n\t{\n\t\tname: \"Azerbaijan\",\n\t\talpha2: \"AZ\",\n\t\tcountryCode: \"031\",\n\t\talpha3: \"AZE\"\n\t},\n\t{\n\t\tname: \"Bahamas\",\n\t\talpha2: \"BS\",\n\t\tcountryCode: \"044\",\n\t\talpha3: \"BHS\"\n\t},\n\t{\n\t\tname: \"Bangladesh\",\n\t\talpha2: \"BD\",\n\t\tcountryCode: \"050\",\n\t\talpha3: \"BGD\"\n\t},\n\t{\n\t\tname: \"Belgium\",\n\t\talpha2: \"BE\",\n\t\tcountryCode: \"056\",\n\t\talpha3: \"BEL\"\n\t},\n\t{\n\t\tname: \"Belize\",\n\t\talpha2: \"BZ\",\n\t\tcountryCode: \"084\",\n\t\talpha3: \"BLZ\"\n\t},\n\t{\n\t\tname: \"Benin\",\n\t\talpha2: \"BJ\",\n\t\tcountryCode: \"204\",\n\t\talpha3: \"BEN\"\n\t},\n\t{\n\t\tname: \"Bhutan\",\n\t\talpha2: \"BT\",\n\t\tcountryCode: \"064\",\n\t\talpha3: \"BTN\"\n\t},\n\t{\n\t\tname: \"Bolivia\",\n\t\talpha2: \"BO\",\n\t\tcountryCode: \"068\",\n\t\talpha3: \"BOL\"\n\t},\n\t{\n\t\tname: \"Bosnia and Herzegovina\",\n\t\talpha2: \"BA\",\n\t\tcountryCode: \"070\",\n\t\talpha3: \"BIH\"\n\t},\n\t{\n\t\tname: \"Botswana\",\n\t\talpha2: \"BW\",\n\t\tcountryCode: \"072\",\n\t\talpha3: \"BWA\"\n\t},\n\t{\n\t\tname: \"Brazil\",\n\t\talpha2: \"BR\",\n\t\tcountryCode: \"076\",\n\t\talpha3: \"BRA\"\n\t},\n\t{\n\t\tname: \"Brunei Darussalam\",\n\t\talpha2: \"BN\",\n\t\tcountryCode: \"096\",\n\t\talpha3: \"BRN\"\n\t},\n\t{\n\t\tname: \"Bulgaria\",\n\t\talpha2: \"BG\",\n\t\tcountryCode: \"100\",\n\t\talpha3: \"BGR\"\n\t},\n\t{\n\t\tname: \"Burkina Faso\",\n\t\talpha2: \"BF\",\n\t\tcountryCode: \"854\",\n\t\talpha3: \"BFA\"\n\t},\n\t{\n\t\tname: \"Burundi\",\n\t\talpha2: \"BI\",\n\t\tcountryCode: \"108\",\n\t\talpha3: \"BDI\"\n\t},\n\t{\n\t\tname: \"Cambodia\",\n\t\talpha2: \"KH\",\n\t\tcountryCode: \"116\",\n\t\talpha3: \"KHM\"\n\t},\n\t{\n\t\tname: \"Cameroon\",\n\t\talpha2: \"CM\",\n\t\tcountryCode: \"120\",\n\t\talpha3: \"CMR\"\n\t},\n\t{\n\t\tname: \"Canada\",\n\t\talpha2: \"CA\",\n\t\tcountryCode: \"124\",\n\t\talpha3: \"CAN\"\n\t},\n\t{\n\t\tname: \"Maldives\",\n\t\talpha2: \"MV\",\n\t\tcountryCode: \"462\",\n\t\talpha3: \"MDV\"\n\t},\n\t{\n\t\tname: \"Mali\",\n\t\talpha2: \"ML\",\n\t\tcountryCode: \"466\",\n\t\talpha3: \"MLI\"\n\t},\n\t{\n\t\tname: \"Malta\",\n\t\talpha2: \"MT\",\n\t\tcountryCode: \"470\",\n\t\talpha3: \"MLT\"\n\t},\n\t{\n\t\tname: \"Marshall Islands\",\n\t\talpha2: \"MH\",\n\t\tcountryCode: \"584\",\n\t\talpha3: \"MHL\"\n\t},\n\t{\n\t\tname: \"Mauritania\",\n\t\talpha2: \"MR\",\n\t\tcountryCode: \"478\",\n\t\talpha3: \"MRT\"\n\t},\n\t{\n\t\tname: \"Mauritius\",\n\t\talpha2: \"MU\",\n\t\tcountryCode: \"480\",\n\t\talpha3: \"MUS\"\n\t},\n\t{\n\t\tname: \"Mexico\",\n\t\talpha2: \"MX\",\n\t\tcountryCode: \"484\",\n\t\talpha3: \"MEX\"\n\t},\n\t{\n\t\tname: \"Micronesia (Federated States of)\",\n\t\talpha2: \"FM\",\n\t\tcountryCode: \"583\",\n\t\talpha3: \"FSM\"\n\t},\n\t{\n\t\tname: \"Moldova (Republic of)\",\n\t\talpha2: \"MD\",\n\t\tcountryCode: \"498\",\n\t\talpha3: \"MDA\"\n\t},\n\t{\n\t\tname: \"Monaco\",\n\t\talpha2: \"MC\",\n\t\tcountryCode: \"492\",\n\t\talpha3: \"MCO\"\n\t},\n\t{\n\t\tname: \"Mongolia\",\n\t\talpha2: \"MN\",\n\t\tcountryCode: \"496\",\n\t\talpha3: \"MNG\"\n\t},\n\t{\n\t\tname: \"Montenegro\",\n\t\talpha2: \"ME\",\n\t\tcountryCode: \"499\",\n\t\talpha3: \"MNE\"\n\t},\n\t{\n\t\tname: \"Morocco\",\n\t\talpha2: \"MA\",\n\t\tcountryCode: \"504\",\n\t\talpha3: \"MAR\"\n\t},\n\t{\n\t\tname: \"Mozambique\",\n\t\talpha2: \"MZ\",\n\t\tcountryCode: \"508\",\n\t\talpha3: \"MOZ\"\n\t},\n\t{\n\t\tname: \"Myanmar\",\n\t\talpha2: \"MM\",\n\t\tcountryCode: \"104\",\n\t\talpha3: \"MMR\"\n\t},\n\t{\n\t\tname: \"Namibia\",\n\t\talpha2: \"NA\",\n\t\tcountryCode: \"516\",\n\t\talpha3: \"NAM\"\n\t},\n\t{\n\t\tname: \"Nauru\",\n\t\talpha2: \"NR\",\n\t\tcountryCode: \"520\",\n\t\talpha3: \"NRU\"\n\t},\n\t{\n\t\tname: \"Nepal\",\n\t\talpha2: \"NP\",\n\t\tcountryCode: \"524\",\n\t\talpha3: \"NPL\"\n\t},\n\t{\n\t\tname: \"Netherlands\",\n\t\talpha2: \"NL\",\n\t\tcountryCode: \"528\",\n\t\talpha3: \"NLD\"\n\t},\n\t{\n\t\tname: \"New Zealand\",\n\t\talpha2: \"NZ\",\n\t\tcountryCode: \"554\",\n\t\talpha3: \"NZL\"\n\t},\n\t{\n\t\tname: \"Nicaragua\",\n\t\talpha2: \"NI\",\n\t\tcountryCode: \"558\",\n\t\talpha3: \"NIC\"\n\t},\n\t{\n\t\tname: \"Niger\",\n\t\talpha2: \"NE\",\n\t\tcountryCode: \"562\",\n\t\talpha3: \"NER\"\n\t},\n\t{\n\t\tname: \"Nigeria\",\n\t\talpha2: \"NG\",\n\t\tcountryCode: \"566\",\n\t\talpha3: \"NGA\"\n\t},\n\t{\n\t\tname: \"North Macedonia\",\n\t\talpha2: \"MK\",\n\t\tcountryCode: \"807\",\n\t\talpha3: \"MKD\"\n\t},\n\t{\n\t\tname: \"Norway\",\n\t\talpha2: \"NO\",\n\t\tcountryCode: \"578\",\n\t\talpha3: \"NOR\"\n\t},\n\t{\n\t\tname: \"Oman\",\n\t\talpha2: \"OM\",\n\t\tcountryCode: \"512\",\n\t\talpha3: \"OMN\"\n\t},\n\t{\n\t\tname: \"Pakistan\",\n\t\talpha2: \"PK\",\n\t\tcountryCode: \"586\",\n\t\talpha3: \"PAK\"\n\t},\n\t{\n\t\tname: \"Palau\",\n\t\talpha2: \"PW\",\n\t\tcountryCode: \"585\",\n\t\talpha3: \"PLW\"\n\t},\n\t{\n\t\tname: \"Panama\",\n\t\talpha2: \"PA\",\n\t\tcountryCode: \"591\",\n\t\talpha3: \"PAN\"\n\t},\n\t{\n\t\tname: \"Papua New Guinea\",\n\t\talpha2: \"PG\",\n\t\tcountryCode: \"598\",\n\t\talpha3: \"PNG\"\n\t},\n\t{\n\t\tname: \"Paraguay\",\n\t\talpha2: \"PY\",\n\t\tcountryCode: \"600\",\n\t\talpha3: \"PRY\"\n\t},\n\t{\n\t\tname: \"Peru\",\n\t\talpha2: \"PE\",\n\t\tcountryCode: \"604\",\n\t\talpha3: \"PER\"\n\t},\n\t{\n\t\tname: \"Philippines\",\n\t\talpha2: \"PH\",\n\t\tcountryCode: \"608\",\n\t\talpha3: \"PHL\"\n\t},\n\t{\n\t\tname: \"Poland\",\n\t\talpha2: \"PL\",\n\t\tcountryCode: \"616\",\n\t\talpha3: \"POL\"\n\t},\n\t{\n\t\tname: \"Portugal\",\n\t\talpha2: \"PT\",\n\t\tcountryCode: \"620\",\n\t\talpha3: \"PRT\"\n\t},\n\t{\n\t\tname: \"Qatar\",\n\t\talpha2: \"QA\",\n\t\tcountryCode: \"634\",\n\t\talpha3: \"QAT\"\n\t},\n\t{\n\t\tname: \"Romania\",\n\t\talpha2: \"RO\",\n\t\tcountryCode: \"642\",\n\t\talpha3: \"ROU\"\n\t},\n\t{\n\t\tname: \"Russian Federation\",\n\t\talpha2: \"RU\",\n\t\tcountryCode: \"643\",\n\t\talpha3: \"RUS\"\n\t},\n\t{\n\t\tname: \"Rwanda\",\n\t\talpha2: \"RW\",\n\t\tcountryCode: \"646\",\n\t\talpha3: \"RWA\"\n\t},\n\t{\n\t\tname: \"Saint Kitts and Nevis\",\n\t\talpha2: \"KN\",\n\t\tcountryCode: \"659\",\n\t\talpha3: \"KNA\"\n\t},\n\t{\n\t\tname: \"Saint Lucia\",\n\t\talpha2: \"LC\",\n\t\tcountryCode: \"662\",\n\t\talpha3: \"LCA\"\n\t},\n\t{\n\t\tname: \"Saint Vincent and the Grenadines\",\n\t\talpha2: \"VC\",\n\t\tcountryCode: \"670\",\n\t\talpha3: \"VCT\"\n\t},\n\t{\n\t\tname: \"Samoa\",\n\t\talpha2: \"WS\",\n\t\tcountryCode: \"882\",\n\t\talpha3: \"WSM\"\n\t},\n\t{\n\t\tname: \"San Marino\",\n\t\talpha2: \"SM\",\n\t\tcountryCode: \"674\",\n\t\talpha3: \"SMR\"\n\t},\n\t{\n\t\tname: \"Sao Tome and Principe\",\n\t\talpha2: \"ST\",\n\t\tcountryCode: \"678\",\n\t\talpha3: \"STP\"\n\t},\n\t{\n\t\tname: \"Saudi Arabia\",\n\t\talpha2: \"SA\",\n\t\tcountryCode: \"682\",\n\t\talpha3: \"SAU\"\n\t},\n\t{\n\t\tname: \"Senegal\",\n\t\talpha2: \"SN\",\n\t\tcountryCode: \"686\",\n\t\talpha3: \"SEN\"\n\t},\n\t{\n\t\tname: \"Serbia\",\n\t\talpha2: \"RS\",\n\t\tcountryCode: \"688\",\n\t\talpha3: \"SRB\"\n\t},\n\t{\n\t\tname: \"Seychelles\",\n\t\talpha2: \"SC\",\n\t\tcountryCode: \"690\",\n\t\talpha3: \"SYC\"\n\t},\n\t{\n\t\tname: \"Sierra Leone\",\n\t\talpha2: \"SL\",\n\t\tcountryCode: \"694\",\n\t\talpha3: \"SLE\"\n\t},\n\t{\n\t\tname: \"Singapore\",\n\t\talpha2: \"SG\",\n\t\tcountryCode: \"702\",\n\t\talpha3: \"SGP\"\n\t},\n\t{\n\t\tname: \"Slovakia\",\n\t\talpha2: \"SK\",\n\t\tcountryCode: \"703\",\n\t\talpha3: \"SVK\"\n\t},\n\t{\n\t\tname: \"Slovenia\",\n\t\talpha2: \"SI\",\n\t\tcountryCode: \"705\",\n\t\talpha3: \"SVN\"\n\t},\n\t{\n\t\tname: \"Solomon Islands\",\n\t\talpha2: \"SB\",\n\t\tcountryCode: \"090\",\n\t\talpha3: \"SLB\"\n\t},\n\t{\n\t\tname: \"Somalia\",\n\t\talpha2: \"SO\",\n\t\tcountryCode: \"706\",\n\t\talpha3: \"SOM\"\n\t},\n\t{\n\t\tname: \"South Africa\",\n\t\talpha2: \"ZA\",\n\t\tcountryCode: \"710\",\n\t\talpha3: \"ZAF\"\n\t},\n\t{\n\t\tname: \"South Sudan\",\n\t\talpha2: \"SS\",\n\t\tcountryCode: \"728\",\n\t\talpha3: \"SSD\"\n\t},\n\t{\n\t\tname: \"Spain\",\n\t\talpha2: \"ES\",\n\t\tcountryCode: \"724\",\n\t\talpha3: \"ESP\"\n\t},\n\t{\n\t\tname: \"Sri Lanka\",\n\t\talpha2: \"LK\",\n\t\tcountryCode: \"144\",\n\t\talpha3: \"LKA\"\n\t},\n\t{\n\t\tname: \"Sudan\",\n\t\talpha2: \"SD\",\n\t\tcountryCode: \"729\",\n\t\talpha3: \"SDN\"\n\t},\n\t{\n\t\tname: \"Suriname\",\n\t\talpha2: \"SR\",\n\t\tcountryCode: \"740\",\n\t\talpha3: \"SUR\"\n\t},\n\t{\n\t\tname: \"Sweden\",\n\t\talpha2: \"SE\",\n\t\tcountryCode: \"752\",\n\t\talpha3: \"SWE\"\n\t},\n\t{\n\t\tname: \"Switzerland\",\n\t\talpha2: \"CH\",\n\t\tcountryCode: \"756\",\n\t\talpha3: \"CHE\"\n\t},\n\t{\n\t\tname: \"Syrian Arab Republic\",\n\t\talpha2: \"SY\",\n\t\tcountryCode: \"760\",\n\t\talpha3: \"SYR\"\n\t},\n\t{\n\t\tname: \"Taiwan\",\n\t\talpha2: \"TW\",\n\t\tcountryCode: \"158\",\n\t\talpha3: \"TWN\"\n\t},\n\t{\n\t\tname: \"Tajikistan\",\n\t\talpha2: \"TJ\",\n\t\tcountryCode: \"762\",\n\t\talpha3: \"TJK\"\n\t},\n\t{\n\t\tname: \"Tanzania\",\n\t\talpha2: \"TZ\",\n\t\tcountryCode: \"834\",\n\t\talpha3: \"TZA\"\n\t},\n\t{\n\t\tname: \"Thailand\",\n\t\talpha2: \"TH\",\n\t\tcountryCode: \"764\",\n\t\talpha3: \"THA\"\n\t},\n\t{\n\t\tname: \"Timor-Leste\",\n\t\talpha2: \"TL\",\n\t\tcountryCode: \"626\",\n\t\talpha3: \"TLS\"\n\t},\n\t{\n\t\tname: \"Togo\",\n\t\talpha2: \"TG\",\n\t\tcountryCode: \"768\",\n\t\talpha3: \"TGO\"\n\t},\n\t{\n\t\tname: \"Tonga\",\n\t\talpha2: \"TO\",\n\t\tcountryCode: \"776\",\n\t\talpha3: \"TON\"\n\t},\n\t{\n\t\tname: \"Tonga\",\n\t\talpha2: \"TO\",\n\t\tcountryCode: \"776\",\n\t\talpha3: \"TON\"\n\t},\n\t{\n\t\tname: \"Trinidad and Tobago\",\n\t\talpha2: \"TT\",\n\t\tcountryCode: \"780\",\n\t\talpha3: \"TTO\"\n\t},\n\t{\n\t\tname: \"Tunisia\",\n\t\talpha2: \"TN\",\n\t\tcountryCode: \"788\",\n\t\talpha3: \"TUN\"\n\t},\n\t{\n\t\tname: \"Turkey\",\n\t\talpha2: \"TR\",\n\t\tcountryCode: \"792\",\n\t\talpha3: \"TUR\"\n\t},\n\t{\n\t\tname: \"Turkmenistan\",\n\t\talpha2: \"TM\",\n\t\tcountryCode: \"795\",\n\t\talpha3: \"TKM\"\n\t},\n\t{\n\t\tname: \"Tuvalu\",\n\t\talpha2: \"TV\",\n\t\tcountryCode: \"798\",\n\t\talpha3: \"TUV\"\n\t},\n\t{\n\t\tname: \"Uganda\",\n\t\talpha2: \"UG\",\n\t\tcountryCode: \"800\",\n\t\talpha3: \"UGA\"\n\t},\n\t{\n\t\tname: \"Ukraine\",\n\t\talpha2: \"UA\",\n\t\tcountryCode: \"804\",\n\t\talpha3: \"UKR\"\n\t},\n\t{\n\t\tname: \"United Arab Emirates\",\n\t\talpha2: \"AE\",\n\t\tcountryCode: \"784\",\n\t\talpha3: \"ARE\"\n\t},\n\t{\n\t\tname: \"United Kingdom\",\n\t\talpha2: \"GB\",\n\t\tcountryCode: \"826\",\n\t\talpha3: \"GBR\"\n\t},\n\t{\n\t\tname: \"United States of America\",\n\t\talpha2: \"US\",\n\t\tcountryCode: \"840\",\n\t\talpha3: \"USA\"\n\t},\n\t{\n\t\tname: \"Uruguay\",\n\t\talpha2: \"UY\",\n\t\tcountryCode: \"858\",\n\t\talpha3: \"URY\"\n\t},\n\t{\n\t\tname: \"Uzbekistan\",\n\t\talpha2: \"UZ\",\n\t\tcountryCode: \"860\",\n\t\talpha3: \"UZB\"\n\t},\n\t{\n\t\tname: \"Vanuatu\",\n\t\talpha2: \"VU\",\n\t\tcountryCode: \"548\",\n\t\talpha3: \"VUT\"\n\t},\n\t{\n\t\tname: \"Venezuela\",\n\t\talpha2: \"VE\",\n\t\tcountryCode: \"862\",\n\t\talpha3: \"VEN\"\n\t},\n\t{\n\t\tname: \"Viet Nam\",\n\t\talpha2: \"VN\",\n\t\tcountryCode: \"704\",\n\t\talpha3: \"VNM\"\n\t},\n\t{\n\t\tname: \"Yemen\",\n\t\talpha2: \"YE\",\n\t\tcountryCode: \"887\",\n\t\talpha3: \"YEM\"\n\t},\n\t{\n\t\tname: \"Zambia\",\n\t\talpha2: \"ZM\",\n\t\tcountryCode: \"894\",\n\t\talpha3: \"ZMB\"\n\t},\n\t{\n\t\tname: \"Zimbabwe\",\n\t\talpha2: \"ZW\",\n\t\tcountryCode: \"716\",\n\t\talpha3: \"ZWE\"\n\t}\n];\n\n//#endregion\n//#region ../constants/src/Marked.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant$4(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\nconst MARKED = createConstant$4(\"Marked\");\n\n//#endregion\n//#region ../constants/src/Metrics.ts\nconst DISTANCE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"km\",\n\t\tname: \"kilometer\"\n\t},\n\t{\n\t\tabbrev: \"mi\",\n\t\tname: \"mile\"\n\t},\n\t{\n\t\tabbrev: \"mm\",\n\t\tname: \"millimeter\"\n\t},\n\t{\n\t\tabbrev: \"cm\",\n\t\tname: \"centimeter\"\n\t},\n\t{\n\t\tabbrev: \"yd\",\n\t\tname: \"yard\"\n\t},\n\t{\n\t\tabbrev: \"ft\",\n\t\tname: \"foot\"\n\t},\n\t{\n\t\tabbrev: \"in\",\n\t\tname: \"inch\"\n\t},\n\t{\n\t\tabbrev: \"m\",\n\t\tname: \"meter\"\n\t},\n\t{\n\t\tabbrev: \"nm\",\n\t\tname: \"nautical mile\"\n\t},\n\t{\n\t\tabbrev: \"nmi\",\n\t\tname: \"nanometer\"\n\t},\n\t{\n\t\tabbrev: \"µm\",\n\t\tname: \"micrometer\"\n\t},\n\t{\n\t\tabbrev: \"dm\",\n\t\tname: \"decimeter\"\n\t},\n\t{\n\t\tabbrev: \"AU\",\n\t\tname: \"astronomical unit\"\n\t},\n\t{\n\t\tabbrev: \"ly\",\n\t\tname: \"light year\"\n\t},\n\t{\n\t\tabbrev: \"pc\",\n\t\tname: \"parsec\"\n\t}\n];\nconst MASS_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"g\",\n\t\tname: \"gram\"\n\t},\n\t{\n\t\tabbrev: \"kg\",\n\t\tname: \"kilogram\"\n\t},\n\t{\n\t\tabbrev: \"mg\",\n\t\tname: \"milligram\"\n\t},\n\t{\n\t\tabbrev: \"µg\",\n\t\tname: \"microgram\"\n\t},\n\t{\n\t\tabbrev: \"t\",\n\t\tname: \"tonne\"\n\t},\n\t{\n\t\tabbrev: \"lb\",\n\t\tname: \"pound\"\n\t},\n\t{\n\t\tabbrev: \"oz\",\n\t\tname: \"ounce\"\n\t},\n\t{\n\t\tabbrev: \"st\",\n\t\tname: \"stone\"\n\t},\n\t{\n\t\tabbrev: \"ct\",\n\t\tname: \"carat\"\n\t},\n\t{\n\t\tabbrev: \"Mt\",\n\t\tname: \"megatonne\"\n\t},\n\t{\n\t\tabbrev: \"gt\",\n\t\tname: \"gigatonne\"\n\t},\n\t{\n\t\tabbrev: \"slug\",\n\t\tname: \"slug\"\n\t},\n\t{\n\t\tabbrev: \"dr\",\n\t\tname: \"dram\"\n\t},\n\t{\n\t\tabbrev: \"gr\",\n\t\tname: \"grain\"\n\t},\n\t{\n\t\tabbrev: \"q\",\n\t\tname: \"quintal\"\n\t}\n];\nconst SPEED_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"m/s\",\n\t\tname: \"meters per second\"\n\t},\n\t{\n\t\tabbrev: \"km/h\",\n\t\tname: \"kilometers per hour\"\n\t},\n\t{\n\t\tabbrev: \"mph\",\n\t\tname: \"miles per hour\"\n\t},\n\t{\n\t\tabbrev: \"kn\",\n\t\tname: \"knot\"\n\t},\n\t{\n\t\tabbrev: \"ft/s\",\n\t\tname: \"feet per second\"\n\t},\n\t{\n\t\tabbrev: \"c\",\n\t\tname: \"speed of light\"\n\t},\n\t{\n\t\tabbrev: \"mach\",\n\t\tname: \"mach\"\n\t},\n\t{\n\t\tabbrev: \"cm/s\",\n\t\tname: \"centimeters per second\"\n\t},\n\t{\n\t\tabbrev: \"in/s\",\n\t\tname: \"inches per second\"\n\t},\n\t{\n\t\tabbrev: \"ly/y\",\n\t\tname: \"light years per year\"\n\t}\n];\nconst ACCELERATION_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"m/s²\",\n\t\tname: \"meters per second squared\"\n\t},\n\t{\n\t\tabbrev: \"ft/s²\",\n\t\tname: \"feet per second squared\"\n\t},\n\t{\n\t\tabbrev: \"g\",\n\t\tname: \"g-force\"\n\t},\n\t{\n\t\tabbrev: \"Gal\",\n\t\tname: \"galileo\"\n\t},\n\t{\n\t\tabbrev: \"cm/s²\",\n\t\tname: \"centimeters per second squared\"\n\t},\n\t{\n\t\tabbrev: \"km/h²\",\n\t\tname: \"kilometers per hour squared\"\n\t},\n\t{\n\t\tabbrev: \"in/s²\",\n\t\tname: \"inches per second squared\"\n\t},\n\t{\n\t\tabbrev: \"mi/h²\",\n\t\tname: \"miles per hour squared\"\n\t},\n\t{\n\t\tabbrev: \"kn/s²\",\n\t\tname: \"knots per second squared\"\n\t}\n];\nconst VOLUME_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"L\",\n\t\tname: \"liter\"\n\t},\n\t{\n\t\tabbrev: \"dL\",\n\t\tname: \"deciliter\"\n\t},\n\t{\n\t\tabbrev: \"mL\",\n\t\tname: \"milliliter\"\n\t},\n\t{\n\t\tabbrev: \"µL\",\n\t\tname: \"microliter\"\n\t},\n\t{\n\t\tabbrev: \"cm³\",\n\t\tname: \"cubic centimeter\"\n\t},\n\t{\n\t\tabbrev: \"m³\",\n\t\tname: \"cubic meter\"\n\t},\n\t{\n\t\tabbrev: \"ft³\",\n\t\tname: \"cubic foot\"\n\t},\n\t{\n\t\tabbrev: \"in³\",\n\t\tname: \"cubic inch\"\n\t},\n\t{\n\t\tabbrev: \"gallon\",\n\t\tname: \"gallon\"\n\t},\n\t{\n\t\tabbrev: \"qt\",\n\t\tname: \"quart\"\n\t},\n\t{\n\t\tabbrev: \"pt\",\n\t\tname: \"pint\"\n\t},\n\t{\n\t\tabbrev: \"fl oz\",\n\t\tname: \"fluid ounce\"\n\t},\n\t{\n\t\tabbrev: \"barrel\",\n\t\tname: \"barrel\"\n\t},\n\t{\n\t\tabbrev: \"tbsp\",\n\t\tname: \"tablespoon\"\n\t},\n\t{\n\t\tabbrev: \"tsp\",\n\t\tname: \"teaspoon\"\n\t}\n];\nconst TEMPERATURE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"°C\",\n\t\tname: \"celsius\"\n\t},\n\t{\n\t\tabbrev: \"°F\",\n\t\tname: \"fahrenheit\"\n\t},\n\t{\n\t\tabbrev: \"K\",\n\t\tname: \"kelvin\"\n\t}\n];\nconst PRESSURE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"Pa\",\n\t\tname: \"pascal\"\n\t},\n\t{\n\t\tabbrev: \"bar\",\n\t\tname: \"bar\"\n\t},\n\t{\n\t\tabbrev: \"atm\",\n\t\tname: \"atmosphere\"\n\t},\n\t{\n\t\tabbrev: \"mmHg\",\n\t\tname: \"millimeters of mercury\"\n\t},\n\t{\n\t\tabbrev: \"psi\",\n\t\tname: \"pounds per square inch\"\n\t}\n];\nconst ENERGY_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"J\",\n\t\tname: \"joule\"\n\t},\n\t{\n\t\tabbrev: \"cal\",\n\t\tname: \"calorie\"\n\t},\n\t{\n\t\tabbrev: \"kcal\",\n\t\tname: \"kilocalorie\"\n\t},\n\t{\n\t\tabbrev: \"kWh\",\n\t\tname: \"kilowatt-hour\"\n\t},\n\t{\n\t\tabbrev: \"BTU\",\n\t\tname: \"british thermal unit\"\n\t},\n\t{\n\t\tabbrev: \"eV\",\n\t\tname: \"electronvolt\"\n\t}\n];\nconst TIME_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"s\",\n\t\tname: \"second\"\n\t},\n\t{\n\t\tabbrev: \"m\",\n\t\tname: \"minute\"\n\t},\n\t{\n\t\tabbrev: \"h\",\n\t\tname: \"hour\"\n\t},\n\t{\n\t\tabbrev: \"day\",\n\t\tname: \"day\"\n\t},\n\t{\n\t\tabbrev: \"week\",\n\t\tname: \"week\"\n\t},\n\t{\n\t\tabbrev: \"mo\",\n\t\tname: \"month\"\n\t},\n\t{\n\t\tabbrev: \"ms\",\n\t\tname: \"millisecond\"\n\t},\n\t{\n\t\tabbrev: \"µs\",\n\t\tname: \"microsecond\"\n\t},\n\t{\n\t\tabbrev: \"ns\",\n\t\tname: \"nanosecond\"\n\t}\n];\nconst POWER_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"W\",\n\t\tname: \"Watt\"\n\t},\n\t{\n\t\tabbrev: \"kW\",\n\t\tname: \"kilowatt\"\n\t},\n\t{\n\t\tabbrev: \"MW\",\n\t\tname: \"megawatt\"\n\t},\n\t{\n\t\tabbrev: \"hp\",\n\t\tname: \"horsepower\"\n\t},\n\t{\n\t\tabbrev: \"GW\",\n\t\tname: \"gigawatt\"\n\t}\n];\nconst FREQUENCY_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"Hz\",\n\t\tname: \"hertz\"\n\t},\n\t{\n\t\tabbrev: \"kHz\",\n\t\tname: \"kilohertz\"\n\t},\n\t{\n\t\tabbrev: \"MHz\",\n\t\tname: \"megahertz\"\n\t},\n\t{\n\t\tabbrev: \"GHz\",\n\t\tname: \"gigahertz\"\n\t},\n\t{\n\t\tabbrev: \"THz\",\n\t\tname: \"terahertz\"\n\t}\n];\nconst VOLTAGE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"V\",\n\t\tname: \"volt\"\n\t},\n\t{\n\t\tabbrev: \"kV\",\n\t\tname: \"kilovolt\"\n\t},\n\t{\n\t\tabbrev: \"mV\",\n\t\tname: \"millivolt\"\n\t},\n\t{\n\t\tabbrev: \"µV\",\n\t\tname: \"microvolt\"\n\t}\n];\nconst CURRENT_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"A\",\n\t\tname: \"ampere\"\n\t},\n\t{\n\t\tabbrev: \"mA\",\n\t\tname: \"milliampere\"\n\t},\n\t{\n\t\tabbrev: \"µA\",\n\t\tname: \"microampere\"\n\t},\n\t{\n\t\tabbrev: \"kA\",\n\t\tname: \"kiloampere\"\n\t}\n];\nconst RESISTANCE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"Ω\",\n\t\tname: \"ohm\"\n\t},\n\t{\n\t\tabbrev: \"kΩ\",\n\t\tname: \"kiloohm\"\n\t},\n\t{\n\t\tabbrev: \"MΩ\",\n\t\tname: \"megaohm\"\n\t}\n];\nconst LUMINOSITY_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"cd\",\n\t\tname: \"candela\"\n\t},\n\t{\n\t\tabbrev: \"lm\",\n\t\tname: \"lumen\"\n\t},\n\t{\n\t\tabbrev: \"lx\",\n\t\tname: \"lux\"\n\t}\n];\nconst AREA_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"m²\",\n\t\tname: \"square meter\"\n\t},\n\t{\n\t\tabbrev: \"cm²\",\n\t\tname: \"square centimeter\"\n\t},\n\t{\n\t\tabbrev: \"mm²\",\n\t\tname: \"square millimeter\"\n\t},\n\t{\n\t\tabbrev: \"km²\",\n\t\tname: \"square kilometer\"\n\t},\n\t{\n\t\tabbrev: \"ft²\",\n\t\tname: \"square foot\"\n\t},\n\t{\n\t\tabbrev: \"in²\",\n\t\tname: \"square inch\"\n\t},\n\t{\n\t\tabbrev: \"acre\",\n\t\tname: \"acre\"\n\t},\n\t{\n\t\tabbrev: \"ha\",\n\t\tname: \"hectare\"\n\t}\n];\n\n//#endregion\n//#region ../constants/src/Nesting.ts\n/**\n* A paired bracketing strategy which matches on\n* bracket characters:\n*\n* - parenthesis: `(` -> `)`\n* - square brackets: `[` -> `]`\n* - angle brackets: `<` -> `>`\n* - and curlies: `{` -> `}`\n*/\nconst BRACKET_NESTING = {\n\t\"{\": \"}\",\n\t\"[\": \"]\",\n\t\"<\": \">\",\n\t\"(\": \")\"\n};\n/**\n* A paired bracketing strategy which includes the three\n* main quotation symbols:\n*\n* - single quote (**'**),\n* - double quote (**\"**),\n* - and backtick (**`**)\n*/\nconst QUOTE_NESTING = {\n\t\"\\\"\": \"\\\"\",\n\t\"'\": \"'\",\n\t\"`\": \"`\"\n};\n\n//#endregion\n//#region ../constants/src/NetworkConstants.ts\nconst NETWORK_PROTOCOL_INSECURE = [\n\t\"http\",\n\t\"ftp\",\n\t\"ws\",\n\t\"dns\",\n\t\"telnet\",\n\t\"imap\",\n\t\"pop3\",\n\t\"smtp\"\n];\nconst NETWORK_PROTOCOL_SECURE = [\n\t\"https\",\n\t\"sftp\",\n\t\"wss\",\n\t\"sdns\",\n\t\"ssh\"\n];\nconst NETWORK_PROTOCOL = [...NETWORK_PROTOCOL_INSECURE, ...NETWORK_PROTOCOL_SECURE];\n/**\n* Lookup of protocols which provides a tuple of: `[insecure,secure]`\n*/\nconst NETWORK_PROTOCOL_LOOKUP = {\n\thttp: [\"http\", \"https\"],\n\tftp: [\"ftp\", \"sftp\"],\n\tfile: [\"\", \"file\"],\n\tws: [\"ws\", \"wss\"],\n\tssh: [\"\", \"ssh\"],\n\tscp: [\"\", \"scp\"],\n\ttelnet: [\"telnet\", \"\"],\n\tdns: [\"dns\", \"sdns\"]\n};\nconst PROTOCOL_DEFAULT_PORTS = {\n\thttp: 80,\n\thttps: 443,\n\tws: 80,\n\twss: 443,\n\tssh: 22,\n\ttelnet: 23,\n\tdns: 53,\n\tsdns: 853,\n\tsmtp: 25,\n\timap: 142,\n\tpop3: 110,\n\tftp: 21,\n\tsftp: 22\n};\n\n//#endregion\n//#region ../constants/src/Never.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant$3(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n/**\n* **Never**\n*\n* A runtime constant that is meant to represent the `never` type.\n*\n* **Related:** you can use the `never()` runtime utility to give a\n* runtime value but force it's type to `never`.\n*/\nconst Never = createConstant$3(\"never\");\n\n//#endregion\n//#region ../constants/src/News.ts\nconst US_NEWS = [\n\t{\n\t\tcompany: \"New York Times\",\n\t\tbaseUrls: [\"www.nytimes.com\"]\n\t},\n\t{\n\t\tcompany: \"CNN\",\n\t\tbaseUrls: [\"www.cnn.com\"]\n\t},\n\t{\n\t\tcompany: \"Fox News\",\n\t\tbaseUrls: [\"www.foxnews.com\"]\n\t},\n\t{\n\t\tcompany: \"NBC News\",\n\t\tbaseUrls: [\"www.nbcnews.com\", \"www.msnbc.com\"]\n\t},\n\t{\n\t\tcompany: \"ABC News\",\n\t\tbaseUrls: [\"abcnews.go.com\"]\n\t},\n\t{\n\t\tcompany: \"The Washington Post\",\n\t\tbaseUrls: [\"www.washingtonpost.com\"]\n\t},\n\t{\n\t\tcompany: \"USA Today\",\n\t\tbaseUrls: [\"www.usatoday.com\"]\n\t},\n\t{\n\t\tcompany: \"Bloomberg\",\n\t\tbaseUrls: [\"www.bloomberg.com\"]\n\t},\n\t{\n\t\tcompany: \"NPR\",\n\t\tbaseUrls: [\"www.npr.org\"]\n\t},\n\t{\n\t\tcompany: \"CBS News\",\n\t\tbaseUrls: [\"www.cbsnews.com\"]\n\t},\n\t{\n\t\tcompany: \"The Wall Street Journal\",\n\t\tbaseUrls: [\"www.wsj.com\"]\n\t},\n\t{\n\t\tcompany: \"Associated Press (AP)\",\n\t\tbaseUrls: [\"www.apnews.com\", \"www.ap.org\"]\n\t},\n\t{\n\t\tcompany: \"Reuters\",\n\t\tbaseUrls: [\"www.reuters.com\"]\n\t},\n\t{\n\t\tcompany: \"Newsweek\",\n\t\tbaseUrls: [\"www.newsweek.com\"]\n\t},\n\t{\n\t\tcompany: \"Politico\",\n\t\tbaseUrls: [\"www.politico.com\"]\n\t},\n\t{\n\t\tcompany: \"The Atlantic\",\n\t\tbaseUrls: [\"www.theatlantic.com\"]\n\t},\n\t{\n\t\tcompany: \"Nexstar Media Group\",\n\t\tbaseUrls: [\"www.nexstar.tv\"]\n\t},\n\t{\n\t\tcompany: \"PBS News\",\n\t\tbaseUrls: [\"www.pbs.org\"]\n\t},\n\t{\n\t\tcompany: \"HuffPost\",\n\t\tbaseUrls: [\"www.huffpost.com\"]\n\t},\n\t{\n\t\tcompany: \"The Boston Globe\",\n\t\tbaseUrls: [\"www.bostonglobe.com\"]\n\t}\n];\nconst UK_NEWS = [\n\t{\n\t\tcompany: \"BBC\",\n\t\tbaseUrls: [\"www.bbc.co.uk\", \"www.bbc.com\"]\n\t},\n\t{\n\t\tcompany: \"The Guardian\",\n\t\tbaseUrls: [\"www.theguardian.com/uk\"]\n\t},\n\t{\n\t\tcompany: \"The Daily Mail\",\n\t\tbaseUrls: [\"www.dailymail.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"The Sun\",\n\t\tbaseUrls: [\"www.thesun.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"The Times\",\n\t\tbaseUrls: [\"www.thetimes.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Sky News\",\n\t\tbaseUrls: [\"news.sky.com\"]\n\t},\n\t{\n\t\tcompany: \"The Telegraph\",\n\t\tbaseUrls: [\"www.telegraph.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"ITV News\",\n\t\tbaseUrls: [\"www.itv.com/news\"]\n\t},\n\t{\n\t\tcompany: \"Financial Times\",\n\t\tbaseUrls: [\"www.ft.com\"]\n\t},\n\t{\n\t\tcompany: \"Metro\",\n\t\tbaseUrls: [\"www.metro.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"The Independent\",\n\t\tbaseUrls: [\"www.independent.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Evening Standard\",\n\t\tbaseUrls: [\"www.standard.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Daily Mirror\",\n\t\tbaseUrls: [\"www.mirror.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Channel 4 News\",\n\t\tbaseUrls: [\"www.channel4.com/news\"]\n\t},\n\t{\n\t\tcompany: \"LBC\",\n\t\tbaseUrls: [\"www.lbc.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Daily Express\",\n\t\tbaseUrls: [\"www.express.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Birmingham Mail\",\n\t\tbaseUrls: [\"www.birminghammail.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Manchester Evening News\",\n\t\tbaseUrls: [\"www.manchestereveningnews.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"The Scotsman\",\n\t\tbaseUrls: [\"www.scotsman.com\"]\n\t},\n\t{\n\t\tcompany: \"Daily Record\",\n\t\tbaseUrls: [\"www.dailyrecord.co.uk\"]\n\t}\n];\nconst GERMAN_NEWS = [\n\t{\n\t\tcompany: \"BILD\",\n\t\tbaseUrls: [\"www.bild.de\"]\n\t},\n\t{\n\t\tcompany: \"Die Zeit\",\n\t\tbaseUrls: [\"www.zeit.de\"]\n\t},\n\t{\n\t\tcompany: \"Frankfurter Allgemeine Zeitung\",\n\t\tbaseUrls: [\"www.faz.net\"]\n\t},\n\t{\n\t\tcompany: \"Süddeutsche Zeitung\",\n\t\tbaseUrls: [\"www.sueddeutsche.de\"]\n\t},\n\t{\n\t\tcompany: \"Der Spiegel\",\n\t\tbaseUrls: [\"www.spiegel.de\"]\n\t},\n\t{\n\t\tcompany: \"Die Welt\",\n\t\tbaseUrls: [\"www.welt.de\"]\n\t},\n\t{\n\t\tcompany: \"Tagesschau\",\n\t\tbaseUrls: [\"www.tagesschau.de\"]\n\t},\n\t{\n\t\tcompany: \"t-online\",\n\t\tbaseUrls: [\"www.t-online.de\"]\n\t},\n\t{\n\t\tcompany: \"n-tv\",\n\t\tbaseUrls: [\"www.n-tv.de\"]\n\t},\n\t{\n\t\tcompany: \"Handelsblatt\",\n\t\tbaseUrls: [\"www.handelsblatt.com\"]\n\t},\n\t{\n\t\tcompany: \"Focus Online\",\n\t\tbaseUrls: [\"www.focus.de\"]\n\t},\n\t{\n\t\tcompany: \"Frankfurter Rundschau\",\n\t\tbaseUrls: [\"www.fr.de\", \"www.fr-online.de\"]\n\t},\n\t{\n\t\tcompany: \"taz - die tageszeitung\",\n\t\tbaseUrls: [\"www.taz.de\"]\n\t},\n\t{\n\t\tcompany: \"Der Tagesspiegel\",\n\t\tbaseUrls: [\"www.tagesspiegel.de\"]\n\t},\n\t{\n\t\tcompany: \"Rheinische Post\",\n\t\tbaseUrls: [\"www.rp-online.de\"]\n\t},\n\t{\n\t\tcompany: \"Express\",\n\t\tbaseUrls: [\"www.express.de\"]\n\t},\n\t{\n\t\tcompany: \"Münchner Merkur\",\n\t\tbaseUrls: [\"www.merkur.de\"]\n\t},\n\t{\n\t\tcompany: \"Stuttgarter Zeitung\",\n\t\tbaseUrls: [\"www.stuttgarter-zeitung.de\"]\n\t},\n\t{\n\t\tcompany: \"Hamburger Abendblatt\",\n\t\tbaseUrls: [\"www.abendblatt.de\"]\n\t},\n\t{\n\t\tcompany: \"Deutsche Welle\",\n\t\tbaseUrls: [\"www.dw.com\"]\n\t}\n];\nconst FRENCH_NEWS = [\n\t{\n\t\tcompany: \"Le Figaro\",\n\t\tbaseUrls: [\"www.lefigaro.fr\"]\n\t},\n\t{\n\t\tcompany: \"Le Monde\",\n\t\tbaseUrls: [\"www.lemonde.fr\"]\n\t},\n\t{\n\t\tcompany: \"France 24\",\n\t\tbaseUrls: [\"www.france24.com\"]\n\t},\n\t{\n\t\tcompany: \"Libération\",\n\t\tbaseUrls: [\"www.liberation.fr\"]\n\t},\n\t{\n\t\tcompany: \"Les Echos\",\n\t\tbaseUrls: [\"www.lesechos.fr\"]\n\t},\n\t{\n\t\tcompany: \"Ouest-France\",\n\t\tbaseUrls: [\"www.ouest-france.fr\"]\n\t},\n\t{\n\t\tcompany: \"Le Parisien\",\n\t\tbaseUrls: [\"www.leparisien.fr\"]\n\t},\n\t{\n\t\tcompany: \"Mediapart\",\n\t\tbaseUrls: [\"www.mediapart.fr\"]\n\t},\n\t{\n\t\tcompany: \"L'Express\",\n\t\tbaseUrls: [\"www.lexpress.fr\"]\n\t},\n\t{\n\t\tcompany: \"La Croix\",\n\t\tbaseUrls: [\"www.la-croix.com\"]\n\t},\n\t{\n\t\tcompany: \"20 Minutes\",\n\t\tbaseUrls: [\"www.20minutes.fr\"]\n\t},\n\t{\n\t\tcompany: \"Courrier International\",\n\t\tbaseUrls: [\"www.courrierinternational.com\"]\n\t},\n\t{\n\t\tcompany: \"Le Point\",\n\t\tbaseUrls: [\"www.lepoint.fr\"]\n\t},\n\t{\n\t\tcompany: \"Marianne\",\n\t\tbaseUrls: [\"www.marianne.net\"]\n\t},\n\t{\n\t\tcompany: \"BFM TV\",\n\t\tbaseUrls: [\"www.bfmtv.com\"]\n\t},\n\t{\n\t\tcompany: \"RTL France\",\n\t\tbaseUrls: [\"www.rtl.fr\"]\n\t},\n\t{\n\t\tcompany: \"Charlie Hebdo\",\n\t\tbaseUrls: [\"www.charliehebdo.fr\"]\n\t},\n\t{\n\t\tcompany: \"Challenges\",\n\t\tbaseUrls: [\"www.challenges.fr\"]\n\t},\n\t{\n\t\tcompany: \"Télérama\",\n\t\tbaseUrls: [\"www.telerama.fr\"]\n\t},\n\t{\n\t\tcompany: \"L'Obs\",\n\t\tbaseUrls: [\"www.nouvelobs.com\"]\n\t}\n];\nconst CANADIAN_NEWS = [\n\t{\n\t\tcompany: \"CBC News\",\n\t\tbaseUrls: [\"www.cbc.ca\"]\n\t},\n\t{\n\t\tcompany: \"CTV News\",\n\t\tbaseUrls: [\"www.ctvnews.ca\"]\n\t},\n\t{\n\t\tcompany: \"The Globe and Mail\",\n\t\tbaseUrls: [\"www.theglobeandmail.com\"]\n\t},\n\t{\n\t\tcompany: \"Global News\",\n\t\tbaseUrls: [\"www.globalnews.ca\"]\n\t},\n\t{\n\t\tcompany: \"Toronto Star\",\n\t\tbaseUrls: [\"www.thestar.com\"]\n\t},\n\t{\n\t\tcompany: \"National Post\",\n\t\tbaseUrls: [\"www.nationalpost.com\"]\n\t},\n\t{\n\t\tcompany: \"La Presse\",\n\t\tbaseUrls: [\"www.lapresse.ca\"]\n\t},\n\t{\n\t\tcompany: \"Radio-Canada\",\n\t\tbaseUrls: [\"ici.radio-canada.ca\"]\n\t},\n\t{\n\t\tcompany: \"The Canadian Press\",\n\t\tbaseUrls: [\"www.thecanadianpress.com\"]\n\t},\n\t{\n\t\tcompany: \"Financial Post\",\n\t\tbaseUrls: [\"financialpost.com\"]\n\t},\n\t{\n\t\tcompany: \"The Weather Network\",\n\t\tbaseUrls: [\"www.theweathernetwork.com\"]\n\t},\n\t{\n\t\tcompany: \"Le Devoir\",\n\t\tbaseUrls: [\"www.ledevoir.com\"]\n\t},\n\t{\n\t\tcompany: \"TVA Nouvelles\",\n\t\tbaseUrls: [\"www.tvanouvelles.ca\"]\n\t},\n\t{\n\t\tcompany: \"Journal de Montréal\",\n\t\tbaseUrls: [\"www.journaldemontreal.com\"]\n\t},\n\t{\n\t\tcompany: \"CityNews\",\n\t\tbaseUrls: [\"www.citynews.ca\"]\n\t},\n\t{\n\t\tcompany: \"BNN Bloomberg\",\n\t\tbaseUrls: [\"www.bnnbloomberg.ca\"]\n\t},\n\t{\n\t\tcompany: \"The Hamilton Spectator\",\n\t\tbaseUrls: [\"www.thespec.com\"]\n\t},\n\t{\n\t\tcompany: \"Ottawa Citizen\",\n\t\tbaseUrls: [\"ottawacitizen.com\"]\n\t},\n\t{\n\t\tcompany: \"Windsor Star\",\n\t\tbaseUrls: [\"windsorstar.com\"]\n\t},\n\t{\n\t\tcompany: \"Edmonton Journal\",\n\t\tbaseUrls: [\"edmontonjournal.com\"]\n\t}\n];\nconst DUTCH_NEWS = [\n\t{\n\t\tcompany: \"Algemeen Dagblad (AD)\",\n\t\tbaseUrls: [\"www.ad.nl\"]\n\t},\n\t{\n\t\tcompany: \"NOS\",\n\t\tbaseUrls: [\"www.nos.nl\"]\n\t},\n\t{\n\t\tcompany: \"De Telegraaf\",\n\t\tbaseUrls: [\"www.telegraaf.nl\"]\n\t},\n\t{\n\t\tcompany: \"NU.nl\",\n\t\tbaseUrls: [\"www.nu.nl\"]\n\t},\n\t{\n\t\tcompany: \"Volkskrant\",\n\t\tbaseUrls: [\"www.volkskrant.nl\"]\n\t},\n\t{\n\t\tcompany: \"NRC Handelsblad\",\n\t\tbaseUrls: [\"www.nrc.nl\"]\n\t},\n\t{\n\t\tcompany: \"Trouw\",\n\t\tbaseUrls: [\"www.trouw.nl\"]\n\t},\n\t{\n\t\tcompany: \"Het Parool\",\n\t\tbaseUrls: [\"www.parool.nl\"]\n\t},\n\t{\n\t\tcompany: \"RTL Nieuws\",\n\t\tbaseUrls: [\"www.rtlnieuws.nl\"]\n\t},\n\t{\n\t\tcompany: \"BNR Nieuwsradio\",\n\t\tbaseUrls: [\"www.bnr.nl\"]\n\t},\n\t{\n\t\tcompany: \"Emerce\",\n\t\tbaseUrls: [\"www.emerce.nl\"]\n\t},\n\t{\n\t\tcompany: \"VPRO\",\n\t\tbaseUrls: [\"www.vpro.nl\"]\n\t},\n\t{\n\t\tcompany: \"De Gelderlander\",\n\t\tbaseUrls: [\"www.gelderlander.nl\"]\n\t},\n\t{\n\t\tcompany: \"Friesch Dagblad\",\n\t\tbaseUrls: [\"www.frieschdagblad.nl\"]\n\t},\n\t{\n\t\tcompany: \"De Stentor\",\n\t\tbaseUrls: [\"www.destentor.nl\"]\n\t},\n\t{\n\t\tcompany: \"Metro Nieuws\",\n\t\tbaseUrls: [\"www.metronieuws.nl\"]\n\t},\n\t{\n\t\tcompany: \"ANP\",\n\t\tbaseUrls: [\"www.anp.nl\"]\n\t},\n\t{\n\t\tcompany: \"Dagblad van het Noorden\",\n\t\tbaseUrls: [\"www.dvhn.nl\"]\n\t},\n\t{\n\t\tcompany: \"Reformatorisch Dagblad\",\n\t\tbaseUrls: [\"www.rd.nl\"]\n\t},\n\t{\n\t\tcompany: \"Financieele Dagblad\",\n\t\tbaseUrls: [\"www.fd.nl\"]\n\t}\n];\nconst ITALIAN_NEWS = [\n\t{\n\t\tcompany: \"ANSA\",\n\t\tbaseUrls: [\"www.ansa.it\", \"www.ansamed.info\"]\n\t},\n\t{\n\t\tcompany: \"Corriere della Sera\",\n\t\tbaseUrls: [\"www.corriere.it\"]\n\t},\n\t{\n\t\tcompany: \"la Repubblica\",\n\t\tbaseUrls: [\"www.repubblica.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Sole 24 Ore\",\n\t\tbaseUrls: [\"www.ilsole24ore.com\"]\n\t},\n\t{\n\t\tcompany: \"La Stampa\",\n\t\tbaseUrls: [\"www.lastampa.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Messaggero\",\n\t\tbaseUrls: [\"www.ilmessaggero.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Giornale\",\n\t\tbaseUrls: [\"www.ilgiornale.it\"]\n\t},\n\t{\n\t\tcompany: \"Avvenire\",\n\t\tbaseUrls: [\"www.avvenire.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Fatto Quotidiano\",\n\t\tbaseUrls: [\"www.ilfattoquotidiano.it\"]\n\t},\n\t{\n\t\tcompany: \"La Nazione\",\n\t\tbaseUrls: [\"www.lanazione.it\"]\n\t},\n\t{\n\t\tcompany: \"TgCom24\",\n\t\tbaseUrls: [\"www.tgcom24.mediaset.it\"]\n\t},\n\t{\n\t\tcompany: \"Sky TG24\",\n\t\tbaseUrls: [\"tg24.sky.it\"]\n\t},\n\t{\n\t\tcompany: \"Rai News\",\n\t\tbaseUrls: [\"www.rainews.it\"]\n\t},\n\t{\n\t\tcompany: \"Gazzetta dello Sport\",\n\t\tbaseUrls: [\"www.gazzetta.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Resto del Carlino\",\n\t\tbaseUrls: [\"www.ilrestodelcarlino.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Mattino\",\n\t\tbaseUrls: [\"www.ilmattino.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Secolo XIX\",\n\t\tbaseUrls: [\"www.ilsecoloxix.it\"]\n\t},\n\t{\n\t\tcompany: \"Italia Oggi\",\n\t\tbaseUrls: [\"www.italiaoggi.it\"]\n\t},\n\t{\n\t\tcompany: \"Libero\",\n\t\tbaseUrls: [\"www.liberoquotidiano.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Tirreno\",\n\t\tbaseUrls: [\"www.iltirreno.it\"]\n\t}\n];\nconst BELGIUM_NEWS = [\n\t{\n\t\tcompany: \"Het Laatste Nieuws (HLN)\",\n\t\tbaseUrls: [\"www.hln.be\"]\n\t},\n\t{\n\t\tcompany: \"Nieuwsblad\",\n\t\tbaseUrls: [\"www.nieuwsblad.be\"]\n\t},\n\t{\n\t\tcompany: \"RTBF\",\n\t\tbaseUrls: [\"www.rtbf.be\"]\n\t},\n\t{\n\t\tcompany: \"Sudinfo\",\n\t\tbaseUrls: [\"www.sudinfo.be\"]\n\t},\n\t{\n\t\tcompany: \"7sur7\",\n\t\tbaseUrls: [\"www.7sur7.be\"]\n\t},\n\t{\n\t\tcompany: \"Le Soir\",\n\t\tbaseUrls: [\"www.lesoir.be\"]\n\t},\n\t{\n\t\tcompany: \"De Standaard\",\n\t\tbaseUrls: [\"www.standaard.be\"]\n\t},\n\t{\n\t\tcompany: \"VRT NWS\",\n\t\tbaseUrls: [\"www.vrt.be\"]\n\t},\n\t{\n\t\tcompany: \"La Libre\",\n\t\tbaseUrls: [\"www.lalibre.be\"]\n\t},\n\t{\n\t\tcompany: \"Gazet van Antwerpen\",\n\t\tbaseUrls: [\"www.gva.be\"]\n\t},\n\t{\n\t\tcompany: \"Het Belang van Limburg\",\n\t\tbaseUrls: [\"www.hbvl.be\"]\n\t},\n\t{\n\t\tcompany: \"De Morgen\",\n\t\tbaseUrls: [\"www.demorgen.be\"]\n\t},\n\t{\n\t\tcompany: \"L'Avenir\",\n\t\tbaseUrls: [\"www.lavenir.net\"]\n\t},\n\t{\n\t\tcompany: \"The Brussels Times\",\n\t\tbaseUrls: [\"www.brusselstimes.com\"]\n\t},\n\t{\n\t\tcompany: \"Metro Belgique\",\n\t\tbaseUrls: [\"nl.metrotime.be\"]\n\t},\n\t{\n\t\tcompany: \"Sudpresse\",\n\t\tbaseUrls: [\"www.sudpress.be\"]\n\t},\n\t{\n\t\tcompany: \"Flamish Radio and TV Broadcasting Organization (VRT)\",\n\t\tbaseUrls: [\"www.vrt.be\"]\n\t},\n\t{\n\t\tcompany: \"Knack\",\n\t\tbaseUrls: [\"www.knack.be\"]\n\t},\n\t{\n\t\tcompany: \"De Tijd\",\n\t\tbaseUrls: [\"www.tijd.be\"]\n\t},\n\t{\n\t\tcompany: \"BX1\",\n\t\tbaseUrls: [\"www.bx1.be\"]\n\t}\n];\nconst MEXICAN_NEWS = [\n\t{\n\t\tcompany: \"Televisa\",\n\t\tbaseUrls: [\"www.televisa.news\"]\n\t},\n\t{\n\t\tcompany: \"El Universal\",\n\t\tbaseUrls: [\"www.eluniversal.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Milenio\",\n\t\tbaseUrls: [\"www.milenio.com\"]\n\t},\n\t{\n\t\tcompany: \"Excélsior\",\n\t\tbaseUrls: [\"www.excelsior.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Reforma\",\n\t\tbaseUrls: [\"www.reforma.com\"]\n\t},\n\t{\n\t\tcompany: \"La Jornada\",\n\t\tbaseUrls: [\"www.jornada.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"El Financiero\",\n\t\tbaseUrls: [\"www.elfinanciero.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Proceso\",\n\t\tbaseUrls: [\"www.proceso.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"SDP Noticias\",\n\t\tbaseUrls: [\"www.sdpnoticias.com\"]\n\t},\n\t{\n\t\tcompany: \"Diario de Yucatán\",\n\t\tbaseUrls: [\"www.yucatan.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"El Economista\",\n\t\tbaseUrls: [\"www.eleconomista.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"El Heraldo de México\",\n\t\tbaseUrls: [\"www.heraldodemexico.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Noticieros Televisa\",\n\t\tbaseUrls: [\"noticieros.televisa.com\"]\n\t},\n\t{\n\t\tcompany: \"Expansión\",\n\t\tbaseUrls: [\"expansion.mx\"]\n\t},\n\t{\n\t\tcompany: \"La Razón\",\n\t\tbaseUrls: [\"www.razon.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Noroeste\",\n\t\tbaseUrls: [\"www.noroeste.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Uniradio Noticias\",\n\t\tbaseUrls: [\"www.uniradionoticias.com\"]\n\t},\n\t{\n\t\tcompany: \"El Imparcial\",\n\t\tbaseUrls: [\"www.elimparcial.com\"]\n\t},\n\t{\n\t\tcompany: \"Publimetro México\",\n\t\tbaseUrls: [\"www.publimetro.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Notimex\",\n\t\tbaseUrls: [\"www.notimex.gob.mx\"]\n\t}\n];\nconst SPANISH_NEWS = [\n\t{\n\t\tcompany: \"El País\",\n\t\tbaseUrls: [\"www.elpais.com\"]\n\t},\n\t{\n\t\tcompany: \"El Mundo\",\n\t\tbaseUrls: [\"www.elmundo.es\"]\n\t},\n\t{\n\t\tcompany: \"ABC\",\n\t\tbaseUrls: [\"www.abc.es\"]\n\t},\n\t{\n\t\tcompany: \"La Vanguardia\",\n\t\tbaseUrls: [\"www.lavanguardia.com\"]\n\t},\n\t{\n\t\tcompany: \"El Confidencial\",\n\t\tbaseUrls: [\"www.elconfidencial.com\"]\n\t},\n\t{\n\t\tcompany: \"La Razón\",\n\t\tbaseUrls: [\"www.larazon.es\"]\n\t},\n\t{\n\t\tcompany: \"20 Minutos\",\n\t\tbaseUrls: [\"www.20minutos.es\"]\n\t},\n\t{\n\t\tcompany: \"Agencia EFE\",\n\t\tbaseUrls: [\"www.efe.com\"]\n\t},\n\t{\n\t\tcompany: \"Europa Press\",\n\t\tbaseUrls: [\"www.europapress.es\"]\n\t},\n\t{\n\t\tcompany: \"Diario AS\",\n\t\tbaseUrls: [\"www.as.com\"]\n\t},\n\t{\n\t\tcompany: \"Mundo Deportivo\",\n\t\tbaseUrls: [\"www.mundodeportivo.com\"]\n\t},\n\t{\n\t\tcompany: \"El Periódico\",\n\t\tbaseUrls: [\"www.elperiodico.com\"]\n\t},\n\t{\n\t\tcompany: \"Cinco Días\",\n\t\tbaseUrls: [\"www.cincodias.com\"]\n\t},\n\t{\n\t\tcompany: \"Expansión\",\n\t\tbaseUrls: [\"www.expansion.com\"]\n\t},\n\t{\n\t\tcompany: \"La Información\",\n\t\tbaseUrls: [\"www.lainformacion.com\"]\n\t},\n\t{\n\t\tcompany: \"OK Diario\",\n\t\tbaseUrls: [\"www.okdiario.com\"]\n\t},\n\t{\n\t\tcompany: \"Heraldo de Aragón\",\n\t\tbaseUrls: [\"www.heraldo.es\"]\n\t},\n\t{\n\t\tcompany: \"Faro de Vigo\",\n\t\tbaseUrls: [\"www.farodevigo.es\"]\n\t},\n\t{\n\t\tcompany: \"El Correo\",\n\t\tbaseUrls: [\"www.elcorreo.com\"]\n\t},\n\t{\n\t\tcompany: \"Diario Sur\",\n\t\tbaseUrls: [\"www.diariosur.es\"]\n\t}\n];\nconst INDIAN_NEWS = [\n\t{\n\t\tcompany: \"The Times of India\",\n\t\tbaseUrls: [\"timesofindia.indiatimes.com\"]\n\t},\n\t{\n\t\tcompany: \"The Hindu\",\n\t\tbaseUrls: [\"www.thehindu.com\"]\n\t},\n\t{\n\t\tcompany: \"Hindustan Times\",\n\t\tbaseUrls: [\"www.hindustantimes.com\"]\n\t},\n\t{\n\t\tcompany: \"NDTV\",\n\t\tbaseUrls: [\"www.ndtv.com\"]\n\t},\n\t{\n\t\tcompany: \"India Today\",\n\t\tbaseUrls: [\"www.indiatoday.in\"]\n\t},\n\t{\n\t\tcompany: \"Zee News\",\n\t\tbaseUrls: [\"zeenews.india.com\"]\n\t},\n\t{\n\t\tcompany: \"Indian Express\",\n\t\tbaseUrls: [\"indianexpress.com\"]\n\t},\n\t{\n\t\tcompany: \"The Economic Times\",\n\t\tbaseUrls: [\"economictimes.indiatimes.com\"]\n\t},\n\t{\n\t\tcompany: \"Deccan Herald\",\n\t\tbaseUrls: [\"www.deccanherald.com\"]\n\t},\n\t{\n\t\tcompany: \"DNA India\",\n\t\tbaseUrls: [\"www.dnaindia.com\"]\n\t},\n\t{\n\t\tcompany: \"The Print\",\n\t\tbaseUrls: [\"theprint.in\"]\n\t},\n\t{\n\t\tcompany: \"News18\",\n\t\tbaseUrls: [\"www.news18.com\"]\n\t},\n\t{\n\t\tcompany: \"Scroll.in\",\n\t\tbaseUrls: [\"scroll.in\"]\n\t},\n\t{\n\t\tcompany: \"Asian News International (ANI)\",\n\t\tbaseUrls: [\"www.aninews.in\"]\n\t},\n\t{\n\t\tcompany: \"Outlook India\",\n\t\tbaseUrls: [\"www.outlookindia.com\"]\n\t},\n\t{\n\t\tcompany: \"Business Standard\",\n\t\tbaseUrls: [\"www.business-standard.com\"]\n\t},\n\t{\n\t\tcompany: \"Mint\",\n\t\tbaseUrls: [\"www.livemint.com\"]\n\t},\n\t{\n\t\tcompany: \"OneIndia\",\n\t\tbaseUrls: [\"www.oneindia.com\"]\n\t},\n\t{\n\t\tcompany: \"Quint\",\n\t\tbaseUrls: [\"www.thequint.com\"]\n\t},\n\t{\n\t\tcompany: \"Free Press Journal\",\n\t\tbaseUrls: [\"www.freepressjournal.in\"]\n\t}\n];\nconst CHINESE_NEWS = [\n\t{\n\t\tcompany: \"Xinhua News Agency\",\n\t\tbaseUrls: [\"www.xinhuanet.com\"]\n\t},\n\t{\n\t\tcompany: \"China Central Television (CCTV)\",\n\t\tbaseUrls: [\"www.cctv.com\"]\n\t},\n\t{\n\t\tcompany: \"China Daily\",\n\t\tbaseUrls: [\"www.chinadaily.com.cn\"]\n\t},\n\t{\n\t\tcompany: \"CGTN (China Global Television Network)\",\n\t\tbaseUrls: [\"www.cgtn.com\"]\n\t},\n\t{\n\t\tcompany: \"People's Daily\",\n\t\tbaseUrls: [\"www.people.cn\"]\n\t},\n\t{\n\t\tcompany: \"Global Times\",\n\t\tbaseUrls: [\"www.globaltimes.cn\"]\n\t},\n\t{\n\t\tcompany: \"South China Morning Post\",\n\t\tbaseUrls: [\"www.scmp.com\"]\n\t},\n\t{\n\t\tcompany: \"Shanghai Daily\",\n\t\tbaseUrls: [\"www.shanghaidaily.com\"]\n\t},\n\t{\n\t\tcompany: \"China News Service\",\n\t\tbaseUrls: [\"www.ecns.cn\"]\n\t},\n\t{\n\t\tcompany: \"Caixin\",\n\t\tbaseUrls: [\"www.caixinglobal.com\"]\n\t},\n\t{\n\t\tcompany: \"The Paper\",\n\t\tbaseUrls: [\"www.thepaper.cn\"]\n\t},\n\t{\n\t\tcompany: \"Yicai Global\",\n\t\tbaseUrls: [\"www.yicaiglobal.com\"]\n\t},\n\t{\n\t\tcompany: \"Economic Daily\",\n\t\tbaseUrls: [\"www.ce.cn\"]\n\t},\n\t{\n\t\tcompany: \"21st Century Business Herald\",\n\t\tbaseUrls: [\"www.21jingji.com\"]\n\t},\n\t{\n\t\tcompany: \"Beijing Review\",\n\t\tbaseUrls: [\"www.bjreview.com\"]\n\t},\n\t{\n\t\tcompany: \"China Economic Net\",\n\t\tbaseUrls: [\"www.ce.cn\"]\n\t},\n\t{\n\t\tcompany: \"Tencent News\",\n\t\tbaseUrls: [\"news.qq.com\"]\n\t},\n\t{\n\t\tcompany: \"Sina News\",\n\t\tbaseUrls: [\"news.sina.com.cn\"]\n\t},\n\t{\n\t\tcompany: \"NetEase News\",\n\t\tbaseUrls: [\"news.163.com\"]\n\t},\n\t{\n\t\tcompany: \"Phoenix TV\",\n\t\tbaseUrls: [\"www.ifeng.com\"]\n\t}\n];\n/** news sites in Denmark */\nconst DANISH_NEWS = [\n\t{\n\t\tcompany: \"Politiken\",\n\t\tbaseUrls: [\"www.politiken.dk\"]\n\t},\n\t{\n\t\tcompany: \"Berlingske\",\n\t\tbaseUrls: [\"www.berlingske.dk\"]\n\t},\n\t{\n\t\tcompany: \"Jyllands-Posten\",\n\t\tbaseUrls: [\"jyllands-posten.dk\"]\n\t},\n\t{\n\t\tcompany: \"Ekstra Bladet\",\n\t\tbaseUrls: [\"ekstrabladet.dk\"]\n\t},\n\t{\n\t\tcompany: \"Information\",\n\t\tbaseUrls: [\"www.information.dk\"]\n\t},\n\t{\n\t\tcompany: \"BT\",\n\t\tbaseUrls: [\"www.bt.dk\"]\n\t},\n\t{\n\t\tcompany: \"Weekendavisen\",\n\t\tbaseUrls: [\"www.weekendavisen.dk\"]\n\t},\n\t{\n\t\tcompany: \"Fyens Stiftstidende\",\n\t\tbaseUrls: [\"fyens.dk\"]\n\t},\n\t{\n\t\tcompany: \"Kristeligt Dagblad\",\n\t\tbaseUrls: [\"www.kristeligt-dagblad.dk\"]\n\t},\n\t{\n\t\tcompany: \"Copenhagen Post\",\n\t\tbaseUrls: [\"cphpost.dk\"]\n\t},\n\t{\n\t\tcompany: \"Nordjyske Stiftstidende\",\n\t\tbaseUrls: [\"nordjyske.dk\"]\n\t},\n\t{\n\t\tcompany: \"Århus Stiftstidende\",\n\t\tbaseUrls: [\"stiften.dk\"]\n\t},\n\t{\n\t\tcompany: \"Dagbladet Børsen\",\n\t\tbaseUrls: [\"borsen.dk\"]\n\t},\n\t{\n\t\tcompany: \"Lokalavisen\",\n\t\tbaseUrls: [\"lokalavisen.dk\"]\n\t},\n\t{\n\t\tcompany: \"TV2 Nyheder\",\n\t\tbaseUrls: [\"tv2.dk\"]\n\t},\n\t{\n\t\tcompany: \"DR Nyheder\",\n\t\tbaseUrls: [\"dr.dk\"]\n\t},\n\t{\n\t\tcompany: \"Avisen Danmark\",\n\t\tbaseUrls: [\"avisen.dk\"]\n\t},\n\t{\n\t\tcompany: \"Fagbladet 3F\",\n\t\tbaseUrls: [\"fagbladet3f.dk\"]\n\t},\n\t{\n\t\tcompany: \"Herning Folkeblad\",\n\t\tbaseUrls: [\"herningfolkeblad.dk\"]\n\t},\n\t{\n\t\tcompany: \"Midtjyllands Avis\",\n\t\tbaseUrls: [\"midtjyllandsavis.dk\"]\n\t}\n];\nconst SWISS_NEWS = [\n\t{\n\t\tcompany: \"Neue Zürcher Zeitung (NZZ)\",\n\t\tbaseUrls: [\"www.nzz.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Swissinfo\",\n\t\tbaseUrls: [\"www.swissinfo.ch\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"20 Minuten\",\n\t\tbaseUrls: [\"www.20min.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Blick\",\n\t\tbaseUrls: [\"www.blick.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Le Temps\",\n\t\tbaseUrls: [\"www.letemps.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Tages-Anzeiger\",\n\t\tbaseUrls: [\"www.tagesanzeiger.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"SRF News\",\n\t\tbaseUrls: [\"www.srf.ch\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Luzerner Zeitung\",\n\t\tbaseUrls: [\"www.luzernerzeitung.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"La Tribune de Genève\",\n\t\tbaseUrls: [\"www.tdg.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Aargauer Zeitung\",\n\t\tbaseUrls: [\"www.aargauerzeitung.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"24 Heures\",\n\t\tbaseUrls: [\"www.24heures.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Radio Télévision Suisse (RTS)\",\n\t\tbaseUrls: [\"www.rts.ch\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Der Bund\",\n\t\tbaseUrls: [\"www.derbund.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Schweizer Radio und Fernsehen (SRF)\",\n\t\tbaseUrls: [\"www.srf.ch\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Basler Zeitung\",\n\t\tbaseUrls: [\"www.bazonline.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Handelszeitung\",\n\t\tbaseUrls: [\"www.handelszeitung.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Watson\",\n\t\tbaseUrls: [\"www.watson.ch\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Le Matin\",\n\t\tbaseUrls: [\"www.lematin.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"La Liberté\",\n\t\tbaseUrls: [\"www.laliberte.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Swiss Times\",\n\t\tbaseUrls: [\"www.theswisstimes.ch\"],\n\t\ttype: [\"digital-first\"]\n\t}\n];\nconst AUSTRALIAN_NEWS = [\n\t{\n\t\tcompany: \"ABC News\",\n\t\tbaseUrls: [\"www.abc.net.au\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"The Sydney Morning Herald\",\n\t\tbaseUrls: [\"www.smh.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Australian\",\n\t\tbaseUrls: [\"www.theaustralian.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Herald Sun\",\n\t\tbaseUrls: [\"www.heraldsun.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"9News\",\n\t\tbaseUrls: [\"www.9news.com.au\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"SBS News\",\n\t\tbaseUrls: [\"www.sbs.com.au\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"digital\",\n\t\t\t\"multicultural\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"The Age\",\n\t\tbaseUrls: [\"www.theage.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sky News Australia\",\n\t\tbaseUrls: [\"www.skynews.com.au\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Australian Financial Review\",\n\t\tbaseUrls: [\"www.afr.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"news.com.au\",\n\t\tbaseUrls: [\"www.news.com.au\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"The Courier-Mail\",\n\t\tbaseUrls: [\"www.couriermail.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"7NEWS\",\n\t\tbaseUrls: [\"7news.com.au\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The West Australian\",\n\t\tbaseUrls: [\"www.thewest.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Daily Telegraph\",\n\t\tbaseUrls: [\"www.dailytelegraph.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Guardian Australia\",\n\t\tbaseUrls: [\"www.theguardian.com/au\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Crikey\",\n\t\tbaseUrls: [\"www.crikey.com.au\"],\n\t\ttype: [\"digital-first\", \"independent\"]\n\t},\n\t{\n\t\tcompany: \"AAP (Australian Associated Press)\",\n\t\tbaseUrls: [\"www.aap.com.au\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"NT News\",\n\t\tbaseUrls: [\"www.ntnews.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Canberra Times\",\n\t\tbaseUrls: [\"www.canberratimes.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Brisbane Times\",\n\t\tbaseUrls: [\"www.brisbanetimes.com.au\"],\n\t\ttype: [\"digital-first\"]\n\t}\n];\nconst JAPANESE_NEWS = [\n\t{\n\t\tcompany: \"The Asahi Shimbun\",\n\t\tbaseUrls: [\"www.asahi.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Yomiuri Shimbun\",\n\t\tbaseUrls: [\"www.yomiuri.co.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Nikkei\",\n\t\tbaseUrls: [\"www.nikkei.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Mainichi Shimbun\",\n\t\tbaseUrls: [\"mainichi.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Kyodo News\",\n\t\tbaseUrls: [\"www.kyodonews.jp\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Japan Times\",\n\t\tbaseUrls: [\"www.japantimes.co.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"NHK\",\n\t\tbaseUrls: [\"www.nhk.or.jp\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Fuji News Network (FNN)\",\n\t\tbaseUrls: [\"www.fnn.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sankei Shimbun\",\n\t\tbaseUrls: [\"www.sankei.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Toyo Keizai\",\n\t\tbaseUrls: [\"www.toyokeizai.net\"],\n\t\ttype: [\"digital\", \"business magazine\"]\n\t},\n\t{\n\t\tcompany: \"Hokkaido Shimbun\",\n\t\tbaseUrls: [\"www.hokkaido-np.co.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Shizuoka Shimbun\",\n\t\tbaseUrls: [\"www.at-s.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Tokyo Shimbun\",\n\t\tbaseUrls: [\"www.tokyo-np.co.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Yahoo Japan News\",\n\t\tbaseUrls: [\"news.yahoo.co.jp\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"TBS News\",\n\t\tbaseUrls: [\"news.tbs.co.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Nippon TV News 24 Japan\",\n\t\tbaseUrls: [\"www.news24.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Jiji Press\",\n\t\tbaseUrls: [\"www.jiji.com\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"TV Asahi News\",\n\t\tbaseUrls: [\"news.tv-asahi.co.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"WOWOW Prime News\",\n\t\tbaseUrls: [\"www.wowow.co.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Kansai Telecasting Corporation (KTV)\",\n\t\tbaseUrls: [\"www.ktv.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t}\n];\nconst SOUTH_KOREAN_NEWS = [\n\t{\n\t\tcompany: \"Yonhap News Agency\",\n\t\tbaseUrls: [\"www.yonhapnews.co.kr\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Korea Herald\",\n\t\tbaseUrls: [\"www.koreaherald.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Korea Times\",\n\t\tbaseUrls: [\"www.koreatimes.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Chosun Ilbo\",\n\t\tbaseUrls: [\"www.chosun.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"JoongAng Ilbo\",\n\t\tbaseUrls: [\"www.joongang.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Dong-A Ilbo\",\n\t\tbaseUrls: [\"www.donga.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"MBC News\",\n\t\tbaseUrls: [\"www.imnews.imbc.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"SBS News\",\n\t\tbaseUrls: [\"news.sbs.co.kr\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"KBS News\",\n\t\tbaseUrls: [\"news.kbs.co.kr\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Hankyoreh\",\n\t\tbaseUrls: [\"english.hani.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Maeil Business Newspaper\",\n\t\tbaseUrls: [\"www.mk.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"MoneyToday\",\n\t\tbaseUrls: [\"www.mt.co.kr\"],\n\t\ttype: [\"digital-first\", \"business\"]\n\t},\n\t{\n\t\tcompany: \"Seoul Shinmun\",\n\t\tbaseUrls: [\"www.seoul.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"OhmyNews\",\n\t\tbaseUrls: [\"www.ohmynews.com\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"News1 Korea\",\n\t\tbaseUrls: [\"www.news1.kr\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Asia Business Daily\",\n\t\tbaseUrls: [\"www.asiae.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Herald Business\",\n\t\tbaseUrls: [\"biz.heraldcorp.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"eDaily\",\n\t\tbaseUrls: [\"www.edaily.co.kr\"],\n\t\ttype: [\"digital-first\", \"business\"]\n\t},\n\t{\n\t\tcompany: \"Seoul Economic Daily\",\n\t\tbaseUrls: [\"www.sedaily.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"JTBC News\",\n\t\tbaseUrls: [\"news.jtbc.co.kr\"],\n\t\ttype: [\"television\", \"digital\"]\n\t}\n];\nconst TURKISH_NEWS = [\n\t{\n\t\tcompany: \"Anadolu Agency (AA)\",\n\t\tbaseUrls: [\"www.aa.com.tr\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Hürriyet\",\n\t\tbaseUrls: [\"www.hurriyet.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sabah\",\n\t\tbaseUrls: [\"www.sabah.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Milliyet\",\n\t\tbaseUrls: [\"www.milliyet.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"TRT World\",\n\t\tbaseUrls: [\"www.trtworld.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"CNN Türk\",\n\t\tbaseUrls: [\"www.cnnturk.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sozcu\",\n\t\tbaseUrls: [\"www.sozcu.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Daily Sabah\",\n\t\tbaseUrls: [\"www.dailysabah.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Yeni Şafak\",\n\t\tbaseUrls: [\"www.yenisafak.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Habertürk\",\n\t\tbaseUrls: [\"www.haberturk.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"BirGün\",\n\t\tbaseUrls: [\"www.birgun.net\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Türkiye Gazetesi\",\n\t\tbaseUrls: [\"www.turkiyegazetesi.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Cumhuriyet\",\n\t\tbaseUrls: [\"www.cumhuriyet.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Diken\",\n\t\tbaseUrls: [\"www.diken.com.tr\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"NTV\",\n\t\tbaseUrls: [\"www.ntv.com.tr\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Ensonhaber\",\n\t\tbaseUrls: [\"www.ensonhaber.com\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"T24\",\n\t\tbaseUrls: [\"www.t24.com.tr\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Karar\",\n\t\tbaseUrls: [\"www.karar.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Gazete Duvar\",\n\t\tbaseUrls: [\"www.gazeteduvar.com.tr\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Bloomberg HT\",\n\t\tbaseUrls: [\"www.bloomberght.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t}\n];\nconst NORWEGIAN_NEWS = [\n\t{\n\t\tcompany: \"Aftenposten\",\n\t\tbaseUrls: [\"www.aftenposten.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Verdens Gang (VG)\",\n\t\tbaseUrls: [\"www.vg.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Dagbladet\",\n\t\tbaseUrls: [\"www.dagbladet.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"NRK\",\n\t\tbaseUrls: [\"www.nrk.no\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Dagens Næringsliv\",\n\t\tbaseUrls: [\"www.dn.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Nettavisen\",\n\t\tbaseUrls: [\"www.nettavisen.no\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Klassekampen\",\n\t\tbaseUrls: [\"www.klassekampen.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Morgenbladet\",\n\t\tbaseUrls: [\"www.morgenbladet.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"E24\",\n\t\tbaseUrls: [\"www.e24.no\"],\n\t\ttype: [\"digital-first\", \"business\"]\n\t},\n\t{\n\t\tcompany: \"TV2\",\n\t\tbaseUrls: [\"www.tv2.no\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Bergens Tidende\",\n\t\tbaseUrls: [\"www.bt.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Adresseavisen\",\n\t\tbaseUrls: [\"www.adressa.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Stavanger Aftenblad\",\n\t\tbaseUrls: [\"www.aftenbladet.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Fædrelandsvennen\",\n\t\tbaseUrls: [\"www.fvn.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"ABC Nyheter\",\n\t\tbaseUrls: [\"www.abcnyheter.no\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Romerikes Blad\",\n\t\tbaseUrls: [\"www.rb.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sunnmørsposten\",\n\t\tbaseUrls: [\"www.smp.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Finansavisen\",\n\t\tbaseUrls: [\"www.finansavisen.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Nordlys\",\n\t\tbaseUrls: [\"www.nordlys.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Hamar Arbeiderblad\",\n\t\tbaseUrls: [\"www.h-a.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t}\n];\n\n//#endregion\n//#region ../constants/src/NoDefaultValue.ts\nfunction createConstant$2(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n/**\n* A constant which indicates that a particular\n* type/property was not given a _default value_.\n*/\nconst NO_DEFAULT_VALUE = createConstant$2(\"no-default-value\");\n\n//#endregion\n//#region ../constants/src/NotApplicable.ts\nconst NOT_APPLICABLE = Symbol(\"not applicable\");\n\n//#endregion\n//#region ../constants/src/NotDefined.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant$1(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n/**\n* **NOT_DEFINED**\n*\n* A runtime constant which indicates that some value has not been defined (yet).\n*/\nconst NOT_DEFINED = createConstant$1(\"not-defined\");\n\n//#endregion\n//#region ../constants/src/NumericChar.ts\n/**\n* **NUMERIC_CHAR**\n*\n* A tuple containing all numeric characters.\n*\n* **Related:** `NumericChar`\n*/\nconst NUMERIC_CHAR = [\n\t\"0\",\n\t\"1\",\n\t\"2\",\n\t\"3\",\n\t\"4\",\n\t\"5\",\n\t\"6\",\n\t\"7\",\n\t\"8\",\n\t\"9\"\n];\n\n//#endregion\n//#region ../constants/src/Phone.ts\n/**\n* **PHONE_COUNTRY_CODES**\n*\n* `[code, 3 letter country code, 2 letter country code]`\n*/\nconst PHONE_COUNTRY_CODES = [\n\t[\n\t\t\"886\",\n\t\t\"TWN\",\n\t\t\"TW\"\n\t],\n\t[\n\t\t\"93\",\n\t\t\"AFG\",\n\t\t\"AF\"\n\t],\n\t[\n\t\t\"355\",\n\t\t\"ALB\",\n\t\t\"AL\"\n\t],\n\t[\n\t\t\"213\",\n\t\t\"DZA\",\n\t\t\"DZ\"\n\t],\n\t[\n\t\t\"1-684\",\n\t\t\"ASM\",\n\t\t\"AS\"\n\t],\n\t[\n\t\t\"376\",\n\t\t\"AND\",\n\t\t\"AD\"\n\t],\n\t[\n\t\t\"244\",\n\t\t\"AGO\",\n\t\t\"AO\"\n\t],\n\t[\n\t\t\"1-264\",\n\t\t\"AIA\",\n\t\t\"AI\"\n\t],\n\t[\n\t\t\"672\",\n\t\t\"ATA\",\n\t\t\"AQ\"\n\t],\n\t[\n\t\t\"1-268\",\n\t\t\"ATG\",\n\t\t\"AG\"\n\t],\n\t[\n\t\t\"54\",\n\t\t\"ARG\",\n\t\t\"AR\"\n\t],\n\t[\n\t\t\"374\",\n\t\t\"ARM\",\n\t\t\"AM\"\n\t],\n\t[\n\t\t\"297\",\n\t\t\"ABW\",\n\t\t\"AW\"\n\t],\n\t[\n\t\t\"61\",\n\t\t\"AUS\",\n\t\t\"AU\"\n\t],\n\t[\n\t\t\"43\",\n\t\t\"AUT\",\n\t\t\"AT\"\n\t],\n\t[\n\t\t\"994\",\n\t\t\"AZE\",\n\t\t\"AZ\"\n\t],\n\t[\n\t\t\"1-242\",\n\t\t\"BHS\",\n\t\t\"BS\"\n\t],\n\t[\n\t\t\"973\",\n\t\t\"BHR\",\n\t\t\"BH\"\n\t],\n\t[\n\t\t\"880\",\n\t\t\"BGD\",\n\t\t\"BD\"\n\t],\n\t[\n\t\t\"1-246\",\n\t\t\"BRB\",\n\t\t\"BB\"\n\t],\n\t[\n\t\t\"375\",\n\t\t\"BLR\",\n\t\t\"BY\"\n\t],\n\t[\n\t\t\"32\",\n\t\t\"BEL\",\n\t\t\"BE\"\n\t],\n\t[\n\t\t\"501\",\n\t\t\"BLZ\",\n\t\t\"BZ\"\n\t],\n\t[\n\t\t\"229\",\n\t\t\"BEN\",\n\t\t\"BJ\"\n\t],\n\t[\n\t\t\"1-441\",\n\t\t\"BMU\",\n\t\t\"BM\"\n\t],\n\t[\n\t\t\"975\",\n\t\t\"BTN\",\n\t\t\"BT\"\n\t],\n\t[\n\t\t\"591\",\n\t\t\"BOL\",\n\t\t\"BO\"\n\t],\n\t[\n\t\t\"599\",\n\t\t\"BES\",\n\t\t\"BQ\"\n\t],\n\t[\n\t\t\"387\",\n\t\t\"BIH\",\n\t\t\"BA\"\n\t],\n\t[\n\t\t\"267\",\n\t\t\"BWA\",\n\t\t\"BW\"\n\t],\n\t[\n\t\t\"47\",\n\t\t\"BVT\",\n\t\t\"BV\"\n\t],\n\t[\n\t\t\"55\",\n\t\t\"BRA\",\n\t\t\"BR\"\n\t],\n\t[\n\t\t\"246\",\n\t\t\"IOT\",\n\t\t\"IO\"\n\t],\n\t[\n\t\t\"1-284\",\n\t\t\"VGB\",\n\t\t\"VG\"\n\t],\n\t[\n\t\t\"673\",\n\t\t\"BRN\",\n\t\t\"BN\"\n\t],\n\t[\n\t\t\"359\",\n\t\t\"BGR\",\n\t\t\"BG\"\n\t],\n\t[\n\t\t\"226\",\n\t\t\"BFA\",\n\t\t\"BF\"\n\t],\n\t[\n\t\t\"257\",\n\t\t\"BDI\",\n\t\t\"BI\"\n\t],\n\t[\n\t\t\"238\",\n\t\t\"CPV\",\n\t\t\"CV\"\n\t],\n\t[\n\t\t\"855\",\n\t\t\"KHM\",\n\t\t\"KH\"\n\t],\n\t[\n\t\t\"237\",\n\t\t\"CMR\",\n\t\t\"CM\"\n\t],\n\t[\n\t\t\"1\",\n\t\t\"CAN\",\n\t\t\"CA\"\n\t],\n\t[\n\t\t\"1-345\",\n\t\t\"CYM\",\n\t\t\"KY\"\n\t],\n\t[\n\t\t\"236\",\n\t\t\"CAF\",\n\t\t\"CF\"\n\t],\n\t[\n\t\t\"235\",\n\t\t\"TCD\",\n\t\t\"TD\"\n\t],\n\t[\n\t\t\"56\",\n\t\t\"CHL\",\n\t\t\"CL\"\n\t],\n\t[\n\t\t\"86\",\n\t\t\"CHN\",\n\t\t\"CN\"\n\t],\n\t[\n\t\t\"852\",\n\t\t\"HKG\",\n\t\t\"HK\"\n\t],\n\t[\n\t\t\"853\",\n\t\t\"MAC\",\n\t\t\"MO\"\n\t],\n\t[\n\t\t\"61\",\n\t\t\"CXR\",\n\t\t\"CX\"\n\t],\n\t[\n\t\t\"61\",\n\t\t\"CCK\",\n\t\t\"CC\"\n\t],\n\t[\n\t\t\"57\",\n\t\t\"COL\",\n\t\t\"CO\"\n\t],\n\t[\n\t\t\"269\",\n\t\t\"COM\",\n\t\t\"KM\"\n\t],\n\t[\n\t\t\"242\",\n\t\t\"COG\",\n\t\t\"CG\"\n\t],\n\t[\n\t\t\"682\",\n\t\t\"COK\",\n\t\t\"CK\"\n\t],\n\t[\n\t\t\"506\",\n\t\t\"CRI\",\n\t\t\"CR\"\n\t],\n\t[\n\t\t\"385\",\n\t\t\"HRV\",\n\t\t\"HR\"\n\t],\n\t[\n\t\t\"53\",\n\t\t\"CUB\",\n\t\t\"CU\"\n\t],\n\t[\n\t\t\"599\",\n\t\t\"CUW\",\n\t\t\"CW\"\n\t],\n\t[\n\t\t\"357\",\n\t\t\"CYP\",\n\t\t\"CY\"\n\t],\n\t[\n\t\t\"420\",\n\t\t\"CZE\",\n\t\t\"CZ\"\n\t],\n\t[\n\t\t\"225\",\n\t\t\"CIV\",\n\t\t\"CI\"\n\t],\n\t[\n\t\t\"850\",\n\t\t\"PRK\",\n\t\t\"KP\"\n\t],\n\t[\n\t\t\"243\",\n\t\t\"COD\",\n\t\t\"CD\"\n\t],\n\t[\n\t\t\"45\",\n\t\t\"DNK\",\n\t\t\"DK\"\n\t],\n\t[\n\t\t\"253\",\n\t\t\"DJI\",\n\t\t\"DJ\"\n\t],\n\t[\n\t\t\"1-767\",\n\t\t\"DMA\",\n\t\t\"DM\"\n\t],\n\t[\n\t\t\"1-809\",\n\t\t\"DOM\",\n\t\t\"DO\"\n\t],\n\t[\n\t\t\"1-829\",\n\t\t\"DOM\",\n\t\t\"DO\"\n\t],\n\t[\n\t\t\"1-849\",\n\t\t\"DOM\",\n\t\t\"DO\"\n\t],\n\t[\n\t\t\"593\",\n\t\t\"ECU\",\n\t\t\"EC\"\n\t],\n\t[\n\t\t\"20\",\n\t\t\"EGY\",\n\t\t\"EG\"\n\t],\n\t[\n\t\t\"503\",\n\t\t\"SLV\",\n\t\t\"SV\"\n\t],\n\t[\n\t\t\"240\",\n\t\t\"GNQ\",\n\t\t\"GQ\"\n\t],\n\t[\n\t\t\"291\",\n\t\t\"ERI\",\n\t\t\"ER\"\n\t],\n\t[\n\t\t\"372\",\n\t\t\"EST\",\n\t\t\"EE\"\n\t],\n\t[\n\t\t\"268\",\n\t\t\"SWZ\",\n\t\t\"SZ\"\n\t],\n\t[\n\t\t\"251\",\n\t\t\"ETH\",\n\t\t\"ET\"\n\t],\n\t[\n\t\t\"500\",\n\t\t\"FLK\",\n\t\t\"FK\"\n\t],\n\t[\n\t\t\"298\",\n\t\t\"FRO\",\n\t\t\"FO\"\n\t],\n\t[\n\t\t\"679\",\n\t\t\"FJI\",\n\t\t\"FJ\"\n\t],\n\t[\n\t\t\"358\",\n\t\t\"FIN\",\n\t\t\"FI\"\n\t],\n\t[\n\t\t\"33\",\n\t\t\"FRA\",\n\t\t\"FR\"\n\t],\n\t[\n\t\t\"594\",\n\t\t\"GUF\",\n\t\t\"GF\"\n\t],\n\t[\n\t\t\"689\",\n\t\t\"PYF\",\n\t\t\"PF\"\n\t],\n\t[\n\t\t\"262\",\n\t\t\"ATF\",\n\t\t\"TF\"\n\t],\n\t[\n\t\t\"241\",\n\t\t\"GAB\",\n\t\t\"GA\"\n\t],\n\t[\n\t\t\"220\",\n\t\t\"GMB\",\n\t\t\"GM\"\n\t],\n\t[\n\t\t\"995\",\n\t\t\"GEO\",\n\t\t\"GE\"\n\t],\n\t[\n\t\t\"49\",\n\t\t\"DEU\",\n\t\t\"DE\"\n\t],\n\t[\n\t\t\"233\",\n\t\t\"GHA\",\n\t\t\"GH\"\n\t],\n\t[\n\t\t\"350\",\n\t\t\"GIB\",\n\t\t\"GI\"\n\t],\n\t[\n\t\t\"30\",\n\t\t\"GRC\",\n\t\t\"GR\"\n\t],\n\t[\n\t\t\"299\",\n\t\t\"GRL\",\n\t\t\"GL\"\n\t],\n\t[\n\t\t\"1-473\",\n\t\t\"GRD\",\n\t\t\"GD\"\n\t],\n\t[\n\t\t\"590\",\n\t\t\"GLP\",\n\t\t\"GP\"\n\t],\n\t[\n\t\t\"1-671\",\n\t\t\"GUM\",\n\t\t\"GU\"\n\t],\n\t[\n\t\t\"502\",\n\t\t\"GTM\",\n\t\t\"GT\"\n\t],\n\t[\n\t\t\"44\",\n\t\t\"GGY\",\n\t\t\"GG\"\n\t],\n\t[\n\t\t\"224\",\n\t\t\"GIN\",\n\t\t\"GN\"\n\t],\n\t[\n\t\t\"245\",\n\t\t\"GNB\",\n\t\t\"GW\"\n\t],\n\t[\n\t\t\"592\",\n\t\t\"GUY\",\n\t\t\"GY\"\n\t],\n\t[\n\t\t\"509\",\n\t\t\"HTI\",\n\t\t\"HT\"\n\t],\n\t[\n\t\t\"672\",\n\t\t\"HMD\",\n\t\t\"HM\"\n\t],\n\t[\n\t\t\"39-06\",\n\t\t\"VAT\",\n\t\t\"VA\"\n\t],\n\t[\n\t\t\"504\",\n\t\t\"HND\",\n\t\t\"HN\"\n\t],\n\t[\n\t\t\"36\",\n\t\t\"HUN\",\n\t\t\"HU\"\n\t],\n\t[\n\t\t\"354\",\n\t\t\"ISL\",\n\t\t\"IS\"\n\t],\n\t[\n\t\t\"91\",\n\t\t\"IND\",\n\t\t\"IN\"\n\t],\n\t[\n\t\t\"62\",\n\t\t\"IDN\",\n\t\t\"ID\"\n\t],\n\t[\n\t\t\"98\",\n\t\t\"IRN\",\n\t\t\"IR\"\n\t],\n\t[\n\t\t\"964\",\n\t\t\"IRQ\",\n\t\t\"IQ\"\n\t],\n\t[\n\t\t\"353\",\n\t\t\"IRL\",\n\t\t\"IE\"\n\t],\n\t[\n\t\t\"44\",\n\t\t\"IMN\",\n\t\t\"IM\"\n\t],\n\t[\n\t\t\"972\",\n\t\t\"ISR\",\n\t\t\"IL\"\n\t],\n\t[\n\t\t\"39\",\n\t\t\"ITA\",\n\t\t\"IT\"\n\t],\n\t[\n\t\t\"1-876\",\n\t\t\"JAM\",\n\t\t\"JM\"\n\t],\n\t[\n\t\t\"81\",\n\t\t\"JPN\",\n\t\t\"JP\"\n\t],\n\t[\n\t\t\"44\",\n\t\t\"JEY\",\n\t\t\"JE\"\n\t],\n\t[\n\t\t\"962\",\n\t\t\"JOR\",\n\t\t\"JO\"\n\t],\n\t[\n\t\t\"7\",\n\t\t\"KAZ\",\n\t\t\"KZ\"\n\t],\n\t[\n\t\t\"254\",\n\t\t\"KEN\",\n\t\t\"KE\"\n\t],\n\t[\n\t\t\"686\",\n\t\t\"KIR\",\n\t\t\"KI\"\n\t],\n\t[\n\t\t\"965\",\n\t\t\"KWT\",\n\t\t\"KW\"\n\t],\n\t[\n\t\t\"996\",\n\t\t\"KGZ\",\n\t\t\"KG\"\n\t],\n\t[\n\t\t\"856\",\n\t\t\"LAO\",\n\t\t\"LA\"\n\t],\n\t[\n\t\t\"371\",\n\t\t\"LVA\",\n\t\t\"LV\"\n\t],\n\t[\n\t\t\"961\",\n\t\t\"LBN\",\n\t\t\"LB\"\n\t],\n\t[\n\t\t\"266\",\n\t\t\"LSO\",\n\t\t\"LS\"\n\t],\n\t[\n\t\t\"231\",\n\t\t\"LBR\",\n\t\t\"LR\"\n\t],\n\t[\n\t\t\"218\",\n\t\t\"LBY\",\n\t\t\"LY\"\n\t],\n\t[\n\t\t\"423\",\n\t\t\"LIE\",\n\t\t\"LI\"\n\t],\n\t[\n\t\t\"370\",\n\t\t\"LTU\",\n\t\t\"LT\"\n\t],\n\t[\n\t\t\"352\",\n\t\t\"LUX\",\n\t\t\"LU\"\n\t],\n\t[\n\t\t\"261\",\n\t\t\"MDG\",\n\t\t\"MG\"\n\t],\n\t[\n\t\t\"265\",\n\t\t\"MWI\",\n\t\t\"MW\"\n\t],\n\t[\n\t\t\"60\",\n\t\t\"MYS\",\n\t\t\"MY\"\n\t],\n\t[\n\t\t\"960\",\n\t\t\"MDV\",\n\t\t\"MV\"\n\t],\n\t[\n\t\t\"223\",\n\t\t\"MLI\",\n\t\t\"ML\"\n\t],\n\t[\n\t\t\"356\",\n\t\t\"MLT\",\n\t\t\"MT\"\n\t],\n\t[\n\t\t\"692\",\n\t\t\"MHL\",\n\t\t\"MH\"\n\t],\n\t[\n\t\t\"596\",\n\t\t\"MTQ\",\n\t\t\"MQ\"\n\t],\n\t[\n\t\t\"222\",\n\t\t\"MRT\",\n\t\t\"MR\"\n\t],\n\t[\n\t\t\"230\",\n\t\t\"MUS\",\n\t\t\"MU\"\n\t],\n\t[\n\t\t\"262\",\n\t\t\"MYT\",\n\t\t\"YT\"\n\t],\n\t[\n\t\t\"52\",\n\t\t\"MEX\",\n\t\t\"MX\"\n\t],\n\t[\n\t\t\"691\",\n\t\t\"FSM\",\n\t\t\"FM\"\n\t],\n\t[\n\t\t\"377\",\n\t\t\"MCO\",\n\t\t\"MC\"\n\t],\n\t[\n\t\t\"976\",\n\t\t\"MNG\",\n\t\t\"MN\"\n\t],\n\t[\n\t\t\"382\",\n\t\t\"MNE\",\n\t\t\"ME\"\n\t],\n\t[\n\t\t\"1-664\",\n\t\t\"MSR\",\n\t\t\"MS\"\n\t],\n\t[\n\t\t\"212\",\n\t\t\"MAR\",\n\t\t\"MA\"\n\t],\n\t[\n\t\t\"258\",\n\t\t\"MOZ\",\n\t\t\"MZ\"\n\t],\n\t[\n\t\t\"95\",\n\t\t\"MMR\",\n\t\t\"MM\"\n\t],\n\t[\n\t\t\"264\",\n\t\t\"NAM\",\n\t\t\"NA\"\n\t],\n\t[\n\t\t\"674\",\n\t\t\"NRU\",\n\t\t\"NR\"\n\t],\n\t[\n\t\t\"977\",\n\t\t\"NPL\",\n\t\t\"NP\"\n\t],\n\t[\n\t\t\"31\",\n\t\t\"NLD\",\n\t\t\"NL\"\n\t],\n\t[\n\t\t\"687\",\n\t\t\"NCL\",\n\t\t\"NC\"\n\t],\n\t[\n\t\t\"64\",\n\t\t\"NZL\",\n\t\t\"NZ\"\n\t],\n\t[\n\t\t\"505\",\n\t\t\"NIC\",\n\t\t\"NI\"\n\t],\n\t[\n\t\t\"227\",\n\t\t\"NER\",\n\t\t\"NE\"\n\t],\n\t[\n\t\t\"234\",\n\t\t\"NGA\",\n\t\t\"NG\"\n\t],\n\t[\n\t\t\"683\",\n\t\t\"NIU\",\n\t\t\"NU\"\n\t],\n\t[\n\t\t\"672\",\n\t\t\"NFK\",\n\t\t\"NF\"\n\t],\n\t[\n\t\t\"1-670\",\n\t\t\"MNP\",\n\t\t\"MP\"\n\t],\n\t[\n\t\t\"47\",\n\t\t\"NOR\",\n\t\t\"NO\"\n\t],\n\t[\n\t\t\"968\",\n\t\t\"OMN\",\n\t\t\"OM\"\n\t],\n\t[\n\t\t\"92\",\n\t\t\"PAK\",\n\t\t\"PK\"\n\t],\n\t[\n\t\t\"680\",\n\t\t\"PLW\",\n\t\t\"PW\"\n\t],\n\t[\n\t\t\"507\",\n\t\t\"PAN\",\n\t\t\"PA\"\n\t],\n\t[\n\t\t\"675\",\n\t\t\"PNG\",\n\t\t\"PG\"\n\t],\n\t[\n\t\t\"595\",\n\t\t\"PRY\",\n\t\t\"PY\"\n\t],\n\t[\n\t\t\"51\",\n\t\t\"PER\",\n\t\t\"PE\"\n\t],\n\t[\n\t\t\"63\",\n\t\t\"PHL\",\n\t\t\"PH\"\n\t],\n\t[\n\t\t\"870\",\n\t\t\"PCN\",\n\t\t\"PN\"\n\t],\n\t[\n\t\t\"48\",\n\t\t\"POL\",\n\t\t\"PL\"\n\t],\n\t[\n\t\t\"351\",\n\t\t\"PRT\",\n\t\t\"PT\"\n\t],\n\t[\n\t\t\"974\",\n\t\t\"QAT\",\n\t\t\"QA\"\n\t],\n\t[\n\t\t\"82\",\n\t\t\"KOR\",\n\t\t\"KR\"\n\t],\n\t[\n\t\t\"373\",\n\t\t\"MDA\",\n\t\t\"MD\"\n\t],\n\t[\n\t\t\"40\",\n\t\t\"ROU\",\n\t\t\"RO\"\n\t],\n\t[\n\t\t\"7\",\n\t\t\"RUS\",\n\t\t\"RU\"\n\t],\n\t[\n\t\t\"250\",\n\t\t\"RWA\",\n\t\t\"RW\"\n\t],\n\t[\n\t\t\"262\",\n\t\t\"REU\",\n\t\t\"RE\"\n\t],\n\t[\n\t\t\"590\",\n\t\t\"BLM\",\n\t\t\"BL\"\n\t],\n\t[\n\t\t\"290\",\n\t\t\"SHN\",\n\t\t\"SH\"\n\t],\n\t[\n\t\t\"1-869\",\n\t\t\"KNA\",\n\t\t\"KN\"\n\t],\n\t[\n\t\t\"1-758\",\n\t\t\"LCA\",\n\t\t\"LC\"\n\t],\n\t[\n\t\t\"590\",\n\t\t\"MAF\",\n\t\t\"MF\"\n\t],\n\t[\n\t\t\"508\",\n\t\t\"SPM\",\n\t\t\"PM\"\n\t],\n\t[\n\t\t\"1-784\",\n\t\t\"VCT\",\n\t\t\"VC\"\n\t],\n\t[\n\t\t\"685\",\n\t\t\"WSM\",\n\t\t\"WS\"\n\t],\n\t[\n\t\t\"378\",\n\t\t\"SMR\",\n\t\t\"SM\"\n\t],\n\t[\n\t\t\"239\",\n\t\t\"STP\",\n\t\t\"ST\"\n\t],\n\t[\n\t\t\"966\",\n\t\t\"SAU\",\n\t\t\"SA\"\n\t],\n\t[\n\t\t\"221\",\n\t\t\"SEN\",\n\t\t\"SN\"\n\t],\n\t[\n\t\t\"381\",\n\t\t\"SRB\",\n\t\t\"RS\"\n\t],\n\t[\n\t\t\"248\",\n\t\t\"SYC\",\n\t\t\"SC\"\n\t],\n\t[\n\t\t\"232\",\n\t\t\"SLE\",\n\t\t\"SL\"\n\t],\n\t[\n\t\t\"65\",\n\t\t\"SGP\",\n\t\t\"SG\"\n\t],\n\t[\n\t\t\"1-721\",\n\t\t\"SXM\",\n\t\t\"SX\"\n\t],\n\t[\n\t\t\"421\",\n\t\t\"SVK\",\n\t\t\"SK\"\n\t],\n\t[\n\t\t\"386\",\n\t\t\"SVN\",\n\t\t\"SI\"\n\t],\n\t[\n\t\t\"677\",\n\t\t\"SLB\",\n\t\t\"SB\"\n\t],\n\t[\n\t\t\"252\",\n\t\t\"SOM\",\n\t\t\"SO\"\n\t],\n\t[\n\t\t\"27\",\n\t\t\"ZAF\",\n\t\t\"ZA\"\n\t],\n\t[\n\t\t\"500\",\n\t\t\"SGS\",\n\t\t\"GS\"\n\t],\n\t[\n\t\t\"211\",\n\t\t\"SSD\",\n\t\t\"SS\"\n\t],\n\t[\n\t\t\"34\",\n\t\t\"ESP\",\n\t\t\"ES\"\n\t],\n\t[\n\t\t\"94\",\n\t\t\"LKA\",\n\t\t\"LK\"\n\t],\n\t[\n\t\t\"970\",\n\t\t\"PSE\",\n\t\t\"PS\"\n\t],\n\t[\n\t\t\"249\",\n\t\t\"SDN\",\n\t\t\"SD\"\n\t],\n\t[\n\t\t\"597\",\n\t\t\"SUR\",\n\t\t\"SR\"\n\t],\n\t[\n\t\t\"47\",\n\t\t\"SJM\",\n\t\t\"SJ\"\n\t],\n\t[\n\t\t\"46\",\n\t\t\"SWE\",\n\t\t\"SE\"\n\t],\n\t[\n\t\t\"41\",\n\t\t\"CHE\",\n\t\t\"CH\"\n\t],\n\t[\n\t\t\"963\",\n\t\t\"SYR\",\n\t\t\"SY\"\n\t],\n\t[\n\t\t\"992\",\n\t\t\"TJK\",\n\t\t\"TJ\"\n\t],\n\t[\n\t\t\"66\",\n\t\t\"THA\",\n\t\t\"TH\"\n\t],\n\t[\n\t\t\"389\",\n\t\t\"MKD\",\n\t\t\"MK\"\n\t],\n\t[\n\t\t\"670\",\n\t\t\"TLS\",\n\t\t\"TL\"\n\t],\n\t[\n\t\t\"228\",\n\t\t\"TGO\",\n\t\t\"TG\"\n\t],\n\t[\n\t\t\"690\",\n\t\t\"TKL\",\n\t\t\"TK\"\n\t],\n\t[\n\t\t\"676\",\n\t\t\"TON\",\n\t\t\"TO\"\n\t],\n\t[\n\t\t\"1-868\",\n\t\t\"TTO\",\n\t\t\"TT\"\n\t],\n\t[\n\t\t\"216\",\n\t\t\"TUN\",\n\t\t\"TN\"\n\t],\n\t[\n\t\t\"90\",\n\t\t\"TUR\",\n\t\t\"TR\"\n\t],\n\t[\n\t\t\"993\",\n\t\t\"TKM\",\n\t\t\"TM\"\n\t],\n\t[\n\t\t\"1-649\",\n\t\t\"TCA\",\n\t\t\"TC\"\n\t],\n\t[\n\t\t\"688\",\n\t\t\"TUV\",\n\t\t\"TV\"\n\t],\n\t[\n\t\t\"256\",\n\t\t\"UGA\",\n\t\t\"UG\"\n\t],\n\t[\n\t\t\"380\",\n\t\t\"UKR\",\n\t\t\"UA\"\n\t],\n\t[\n\t\t\"971\",\n\t\t\"ARE\",\n\t\t\"AE\"\n\t],\n\t[\n\t\t\"44\",\n\t\t\"GBR\",\n\t\t\"GB\"\n\t],\n\t[\n\t\t\"255\",\n\t\t\"TZA\",\n\t\t\"TZ\"\n\t],\n\t[\n\t\t\"1-340\",\n\t\t\"VIR\",\n\t\t\"VI\"\n\t],\n\t[\n\t\t\"1\",\n\t\t\"USA\",\n\t\t\"US\"\n\t],\n\t[\n\t\t\"598\",\n\t\t\"URY\",\n\t\t\"UY\"\n\t],\n\t[\n\t\t\"998\",\n\t\t\"UZB\",\n\t\t\"UZ\"\n\t],\n\t[\n\t\t\"678\",\n\t\t\"VUT\",\n\t\t\"VU\"\n\t],\n\t[\n\t\t\"58\",\n\t\t\"VEN\",\n\t\t\"VE\"\n\t],\n\t[\n\t\t\"84\",\n\t\t\"VNM\",\n\t\t\"VN\"\n\t],\n\t[\n\t\t\"681\",\n\t\t\"WLF\",\n\t\t\"WF\"\n\t],\n\t[\n\t\t\"212\",\n\t\t\"ESH\",\n\t\t\"EH\"\n\t],\n\t[\n\t\t\"967\",\n\t\t\"YEM\",\n\t\t\"YE\"\n\t],\n\t[\n\t\t\"260\",\n\t\t\"ZMB\",\n\t\t\"ZM\"\n\t],\n\t[\n\t\t\"263\",\n\t\t\"ZWE\",\n\t\t\"ZW\"\n\t],\n\t[\n\t\t\"358\",\n\t\t\"ALA\",\n\t\t\"AX\"\n\t]\n];\n\n//#endregion\n//#region ../constants/src/PluralExceptions.ts\n/**\n* **PLURAL_EXCEPTIONS**\n*\n* A lookup table that maps singular words to their _plural_ counterpart.\n*/\nconst PLURAL_EXCEPTIONS = {\n\tphoto: \"photos\",\n\tpiano: \"pianos\",\n\thalo: \"halos\",\n\tfoot: \"feet\",\n\tman: \"men\",\n\twoman: \"women\",\n\tperson: \"people\",\n\tmouse: \"mice\",\n\tseries: \"series\",\n\tsheep: \"sheep\",\n\tmoney: \"monies\",\n\tdeer: \"deer\",\n\tgoose: \"geese\",\n\tchild: \"children\",\n\ttooth: \"teeth\",\n\tox: \"oxen\",\n\tbasis: \"bases\",\n\tradius: \"radii\",\n\tsyllabus: \"syllabi\",\n\tice: \"ice\",\n\tfish: \"fish\",\n\tmeans: \"means\",\n\tphenomenon: \"phenomena\",\n\tcriterion: \"criteria\",\n\tdatum: \"data\",\n\tmemorandum: \"memoranda\",\n\tbacterium: \"bacteria\",\n\tstratum: \"strata\",\n\tcurriculum: \"curricula\",\n\tindex: \"indices\",\n\tappendix: \"appendices\",\n\tvortex: \"vortices\",\n\tbison: \"bison\",\n\taxis: \"axes\",\n\tantenna: \"antennas\",\n\tcactus: \"cacti\",\n\tcorpus: \"corpora\",\n\tbeau: \"beaux\",\n\tdie: \"dice\",\n\tellipsis: \"ellipses\",\n\terratum: \"errata\",\n\tfocus: \"foci\",\n\tformula: \"formulas\",\n\tfungus: \"fungi\",\n\tgenus: \"genera\",\n\tgraffito: \"graffiti\",\n\tgrouse: \"grouses\",\n\thalf: \"halves\",\n\thoof: \"hooves\",\n\thypothesis: \"hypothesis\",\n\tlarva: \"larvae\",\n\tlibretto: \"libretti\",\n\tloaf: \"loaves\",\n\tlocus: \"loci\",\n\tmedium: \"mediums\",\n\tminutia: \"minutiae\",\n\tnucleus: \"nuclei\",\n\toasis: \"oases\",\n\topus: \"opuses\",\n\tovum: \"ova\",\n\tparenthesis: \"parentheses\",\n\tphylum: \"phyla\",\n\tquiz: \"quizzes\",\n\treferendum: \"referendums\",\n\tself: \"selves\",\n\tspecies: \"species\",\n\tstimulus: \"stimuli\",\n\tswine: \"swine\",\n\tsynopsis: \"synopses\",\n\tthesis: \"theses\",\n\tthief: \"thieves\",\n\tvertex: \"vertexes\",\n\twife: \"wives\",\n\twolf: \"wolves\"\n};\n\n//#endregion\n//#region ../constants/src/RepoConstants.ts\n/**\n* common sources for source code repositories\n*/\nconst REPO_SOURCES = [\n\t\"github\",\n\t\"bitbucket\",\n\t\"gitlab\",\n\t\"codecommit\",\n\t\"local\"\n];\nconst REPO_SOURCE_LOOKUP = {\n\tgithub: [`https://github.com`, \"https://github.io\"],\n\tbitbucket: [\"https://bitbucket.org\"],\n\tgitlab: [\"https://gitlab.com\"],\n\tcodecommit: [\"https://aws.amazon.com/codecommit/\"],\n\tlocal: []\n};\n\n//#endregion\n//#region ../constants/src/Retail.ts\n/**\n* Amazon's DNS entries (for retail business)\n*/\nconst AMAZON_DNS = [\n\t\"www.amazon.com\",\n\t`www.amazon.co.uk`,\n\t`www.amazon.fr`,\n\t`www.amazon.de`,\n\t`www.amazon.it`,\n\t`www.amazon.es`\n];\nconst WALMART_DNS = [\n\t\"www.walmart.com\",\n\t\"www.walmart.ca\",\n\t\"www.walmart.com.mx\"\n];\nconst APPLE_DNS = [\"store.apple.com\", \"www.apple.com\"];\nconst HOME_DEPOT_DNS = [\"www.homedepot.com\", \"www.homedepot.ca\"];\nconst EBAY_DNS = [\n\t\"www.ebay.com\",\n\t\"www.ebay.co.uk\",\n\t\"www.ebay.fr\",\n\t\"www.ebay.de\",\n\t\"www.ebay.it\"\n];\nconst TARGET_DNS = [\"www.target.com\"];\nconst ETSY_DNS = [\"www.etsy.com\"];\nconst COSTCO_DNS = [\n\t\"www.costco.com\",\n\t\"www.costco.co.uk\",\n\t\"www.costco.ca\"\n];\nconst BEST_BUY_DNS = [\"www.bestbuy.com\", \"www.bestbuy.ca\"];\nconst WAYFAIR_DNS = [\n\t\"www.wayfair.com\",\n\t\"www.wayfair.ca\",\n\t\"www.wayfair.co.uk\"\n];\nconst NIKE_DNS = [\"www.nike.com\"];\nconst MACYS_DNS = [\"www.macys.com\"];\nconst DELL_DNS = [\"www.dell.com\"];\n/** DNS for H&M retailer */\nconst HM_DNS = [\"www2.hm.com\"];\nconst ZARA_DNS = [\"www.zara.com\"];\nconst KROGER_DNS = [\"www.kroger.com\"];\nconst WALGREENS_DNS = [\"www.walgreens.com\"];\nconst CVS_DNS = [\"www.cvs.com\"];\nconst WHOLE_FOODS_DNS = [\"www.wholefoodsmarket.com\", \"www.wholefoodsmarket.co.uk\"];\n\n//#endregion\n//#region ../constants/src/SafeEncoding.ts\nconst SAFE_ENCODING__QUOTES = {\n\t[`\"`]: \"^<dq>\",\n\t[`'`]: \"^<sq>\",\n\t[`\\``]: \"^<grave>\"\n};\nconst SAFE_ENCODING__WHITESPACE = {\n\t\" \": \"^<sp>\",\n\t\"\t\": \"^<tab>\",\n\t\"\\n\": \"^<n>\",\n\t\"\\r\": \"^<r>\"\n};\nconst SAFE_ENCODING__BRACKETS = {\n\t\"[\": \"^<osb>\",\n\t\"]\": \"^<csb>\",\n\t\"(\": \"^<op>\",\n\t\")\": \"^<cp>\",\n\t\"{\": \"^<oc>\",\n\t\"}\": \"^<cc>\"\n};\nconst SAFE_ENCODING_KEYS = {\n\t...SAFE_ENCODING__BRACKETS,\n\t...SAFE_ENCODING__QUOTES,\n\t...SAFE_ENCODING__WHITESPACE\n};\n\n//#endregion\n//#region ../constants/src/Shape.ts\nconst SHAPE_PREFIXES = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"null\",\n\t\"undefined\",\n\t\"unknown\",\n\t\"opt::\",\n\t\"union::\",\n\t\"tuple::\",\n\t\"array::\",\n\t\"object\",\n\t\"record::\"\n];\n\n//#endregion\n//#region ../constants/src/SimpleTokens.ts\nconst SIMPLE_SCALAR_TOKENS = [\n\t\"string\",\n\t\"number\",\n\t`string(TOKEN)`,\n\t`number(TOKEN)`,\n\t\"boolean\",\n\t\"true\",\n\t\"false\",\n\t\"null\",\n\t\"undefined\",\n\t\"unknown\",\n\t\"any\",\n\t\"never\"\n];\nconst SIMPLE_OPT_SCALAR_TOKENS = [\n\t\"Opt<string>\",\n\t\"Opt<number>\",\n\t\"Opt<boolean>\",\n\t\"Opt<true>\",\n\t\"Opt<false>\",\n\t\"Opt<null>\",\n\t\"Opt<undefined>\",\n\t\"Opt<unknown>\",\n\t\"Opt<any>\",\n\t\"Opt<string(TOKEN)>\",\n\t\"Opt<number(TOKEN)>\",\n\t\"Opt<undefined>\"\n];\nconst SIMPLE_UNION_TOKENS = [`Union(TOKEN)`];\nconst SIMPLE_MAP_KEYS = [\n\t\"string\",\n\t\"number\",\n\t\"Dict\",\n\t\"Dict<string, string>\",\n\t\"Dict<string, number>\",\n\t\"Dict<string, boolean>\",\n\t\"Dict<string, unknown>\",\n\t\"Dict<string, Opt<string>>\",\n\t\"Dict<string, Opt<number>>\",\n\t\"Dict<string, Opt<boolean>>\"\n];\nconst SIMPLE_MAP_VALUES = [\n\t...SIMPLE_MAP_KEYS,\n\t\"boolean\",\n\t\"unknown\",\n\t\"undefined\",\n\t\"Dict\",\n\t\"Array\",\n\t\"Dict<string, Opt<string>>\",\n\t\"Dict<string, Opt<number>>\",\n\t\"Dict<string, Opt<boolean>>\",\n\t\"Dict<string, Opt<unknown>>\"\n];\nconst SIMPLE_DICT_TOKENS = [\n\t\"Dict\",\n\t\"Dict<string, string>\",\n\t\"Dict<string, number>\",\n\t\"Dict<string, boolean>\",\n\t\"Dict<string, unknown>\",\n\t\"Dict<string, Opt<string>>\",\n\t\"Dict<string, Opt<number>>\",\n\t\"Dict<string, Opt<boolean>>\",\n\t\"Dict<string, Opt<unknown>>\",\n\t\"Dict<{TOKEN: TOKEN}>\",\n\t\"Dict<{TOKEN: TOKEN, TOKEN: TOKEN}>\"\n];\nconst SIMPLE_ARRAY_TOKENS = [\n\t\"Array\",\n\t\"Array<string>\",\n\t\"Array<string(TOKEN)>\",\n\t\"Array<number>\",\n\t\"Array<number(TOKEN)>\",\n\t\"Array<boolean>\",\n\t\"Array<unknown>\",\n\t`Array<Dict>`,\n\t`Array<Set>`,\n\t`Array<Map>`\n];\nconst SIMPLE_MAP_TOKENS = [\n\t\"Map\",\n\t\"Map<TOKEN, TOKEN>\",\n\t\"WeakMap\"\n];\nconst SIMPLE_SET_TOKENS = [\"Set\", \"Set<TOKEN>\"];\nconst SIMPLE_CONTAINER_TOKENS = [\n\t...SIMPLE_DICT_TOKENS,\n\t...SIMPLE_ARRAY_TOKENS,\n\t...SIMPLE_MAP_TOKENS,\n\t...SIMPLE_SET_TOKENS\n];\n/**\n* **SIMPLE_TOKENS**\n*\n* A list of strings literals which can be used\n* to express the type of a variable or token\n* in relatively course granularity\n*/\nconst SIMPLE_TOKENS = [\n\t...SIMPLE_SCALAR_TOKENS,\n\t...SIMPLE_OPT_SCALAR_TOKENS,\n\t...SIMPLE_CONTAINER_TOKENS,\n\t...SIMPLE_UNION_TOKENS\n];\n\n//#endregion\n//#region ../constants/src/SingularNounEnding.ts\n/**\n* Singular nouns typically end in the characters represented by this array.\n*\n* **Related:** `SingularNounEnding`\n*/\nconst SINGULAR_NOUN_ENDINGS = [\n\t\"s\",\n\t\"sh\",\n\t\"ch\",\n\t\"x\",\n\t\"z\",\n\t\"o\"\n];\n\n//#endregion\n//#region ../constants/src/Social.ts\nconst SOCIAL_MEDIA = [\n\t{\n\t\tname: \"Facebook\",\n\t\tdescription: \"Connect with friends, family, and communities worldwide on one of the largest social networks.\",\n\t\tbaseUrls: [\"https://www.facebook.com\"],\n\t\tprofileUrl: \"https://www.facebook.com/:user_id\",\n\t\tapproximateUserSize: 3e9,\n\t\ttickerSymbol: \"META\"\n\t},\n\t{\n\t\tname: \"YouTube\",\n\t\tdescription: \"A platform for sharing and watching videos, connecting creators with audiences globally.\",\n\t\tbaseUrls: [\"https://www.youtube.com\"],\n\t\tprofileUrl: \"https://www.youtube.com/user/:user_id\",\n\t\tapproximateUserSize: 25e8,\n\t\ttickerSymbol: \"GOOGL\"\n\t},\n\t{\n\t\tname: \"WhatsApp\",\n\t\tdescription: \"A secure messaging app for personal and business communication.\",\n\t\tbaseUrls: [\"https://www.whatsapp.com\", \"https://wa.me\"],\n\t\tprofileUrl: \"https://wa.me/:user_id\",\n\t\tapproximateUserSize: 2e9,\n\t\ttickerSymbol: \"META\"\n\t},\n\t{\n\t\tname: \"Instagram\",\n\t\tdescription: \"Share photos and videos with friends and followers through posts, stories, and reels.\",\n\t\tbaseUrls: [\"https://www.instagram.com\"],\n\t\tprofileUrl: \"https://www.instagram.com/:user_id\",\n\t\tapproximateUserSize: 2e9,\n\t\ttickerSymbol: \"META\"\n\t},\n\t{\n\t\tname: \"TikTok\",\n\t\tdescription: \"A short-form video platform known for its highly engaging content and viral trends.\",\n\t\tbaseUrls: [\"https://www.tiktok.com\"],\n\t\tprofileUrl: \"https://www.tiktok.com/@:user_id\",\n\t\tapproximateUserSize: 16e8\n\t},\n\t{\n\t\tname: \"WeChat\",\n\t\tdescription: \"China's popular messaging and lifestyle app, integrating social media and mobile payments.\",\n\t\tbaseUrls: [\"https://www.wechat.com\"],\n\t\tprofileUrl: \"https://www.wechat.com/:user_id\",\n\t\tapproximateUserSize: 13e8\n\t},\n\t{\n\t\tname: \"Facebook Messenger\",\n\t\tdescription: \"A messaging app used for personal and business interactions, seamlessly integrated with Facebook.\",\n\t\tbaseUrls: [\"https://www.messenger.com\"],\n\t\tprofileUrl: \"https://www.messenger.com/t/:user_id\",\n\t\tapproximateUserSize: 1e9,\n\t\ttickerSymbol: \"META\"\n\t},\n\t{\n\t\tname: \"Telegram\",\n\t\tdescription: \"A messaging platform focused on privacy, with channels and group capabilities.\",\n\t\tbaseUrls: [\"https://www.telegram.org\", \"https://t.me\"],\n\t\tprofileUrl: \"https://t.me/:user_id\",\n\t\tapproximateUserSize: 9e8\n\t},\n\t{\n\t\tname: \"Snapchat\",\n\t\tdescription: \"A multimedia app popular for its disappearing messages and creative filters.\",\n\t\tbaseUrls: [\"https://www.snapchat.com\"],\n\t\tprofileUrl: \"https://www.snapchat.com/add/:user_id\",\n\t\tapproximateUserSize: 8e8,\n\t\ttickerSymbol: \"SNAP\"\n\t},\n\t{\n\t\tname: \"Douyin\",\n\t\tdescription: \"The Chinese version of TikTok, with similar short-form video content tailored for China.\",\n\t\tbaseUrls: [\"https://www.douyin.com\"],\n\t\tprofileUrl: \"https://www.douyin.com/user/:user_id\",\n\t\tapproximateUserSize: 75e7\n\t},\n\t{\n\t\tname: \"LinkedIn\",\n\t\tdescription: \"The largest professional networking platform, where users connect for career opportunities, insights, and business networking.\",\n\t\tbaseUrls: [\"https://www.linkedin.com\"],\n\t\tprofileUrl: \"https://www.linkedin.com/in/:user_id\",\n\t\tapproximateUserSize: 93e7,\n\t\ttickerSymbol: \"MSFT\"\n\t},\n\t{\n\t\tname: \"X (formerly Twitter)\",\n\t\tdescription: \"A platform for real-time updates, news sharing, and public discourse with a focus on brief, impactful posts.\",\n\t\tbaseUrls: [\"https://www.twitter.com\", \"https://x.com\"],\n\t\tprofileUrl: \"https://twitter.com/:user_id\",\n\t\tapproximateUserSize: 54e7\n\t},\n\t{\n\t\tname: \"Pinterest\",\n\t\tdescription: \"A visually-driven platform for sharing ideas, DIY projects, fashion, and more.\",\n\t\tbaseUrls: [\"https://www.pinterest.com\"],\n\t\tprofileUrl: \"https://www.pinterest.com/:user_id\",\n\t\tapproximateUserSize: 46e7,\n\t\ttickerSymbol: \"PINS\"\n\t},\n\t{\n\t\tname: \"Reddit\",\n\t\tdescription: \"A community-driven platform organized into niche forums or 'subreddits' focused on various topics.\",\n\t\tbaseUrls: [\"https://www.reddit.com\"],\n\t\tprofileUrl: \"https://www.reddit.com/user/:user_id\",\n\t\tapproximateUserSize: 43e7\n\t},\n\t{\n\t\tname: \"Clubhouse\",\n\t\tdescription: \"A voice-based social network where users engage in live audio conversations on various topics.\",\n\t\tbaseUrls: [\"https://www.clubhouse.com\"],\n\t\tprofileUrl: \"https://www.clubhouse.com/:user_id\",\n\t\tapproximateUserSize: 1e7\n\t},\n\t{\n\t\tname: \"Discord\",\n\t\tdescription: \"Originally aimed at gamers, Discord is now widely used by various communities for group chat, video, and voice calls.\",\n\t\tbaseUrls: [\"https://www.discord.com\", \"https://discord.com\"],\n\t\tprofileUrl: \"https://discord.com/users/:user_id\",\n\t\tapproximateUserSize: 3e8\n\t}\n];\n\n//#endregion\n//#region ../constants/src/Tailwind.ts\nconst TW_HUE_NEUTRAL = {\n\tslate: 262,\n\tgray: 270,\n\tzinc: 269,\n\tneutral: 270,\n\tstone: 273\n};\nconst TW_HUE_VIBRANT = {\n\tred: 24,\n\torange: 44,\n\tamber: 79,\n\tyellow: 100,\n\tlime: 132,\n\tgreen: 144,\n\temerald: 159,\n\tteal: 182,\n\tcyan: 192,\n\tsky: 219,\n\tblue: 240,\n\tindigo: 268,\n\tviolet: 283,\n\tpurple: 294,\n\tfuchsia: 319,\n\tpink: 334,\n\trose: 15\n};\nconst TW_HUE_STATIC = {\n\tblack: 0,\n\twhite: 106.37411429114086\n};\n/**\n* **TW_COLOR_HUE**\n*\n* The _hue_ values for [TailwindCSS](https://tailwindcss.com/docs/customizing-colors)\n* when moved into the **oklch** color space.\n*/\nconst TW_HUE = {\n\t...TW_HUE_NEUTRAL,\n\t...TW_HUE_VIBRANT,\n\t...TW_HUE_STATIC\n};\nconst TW_LUMINOSITY = {\n\t\"50\": 97.78,\n\t\"100\": 93.56,\n\t\"200\": 88.11,\n\t\"300\": 82.67,\n\t\"400\": 74.22,\n\t\"500\": 64.78,\n\t\"600\": 57.33,\n\t\"700\": 46.89,\n\t\"800\": 39.44,\n\t\"900\": 32,\n\t\"950\": 23.78\n};\nconst TW_LUMIN_50 = TW_LUMINOSITY[\"50\"];\nconst TW_LUMIN_100 = TW_LUMINOSITY[\"100\"];\nconst TW_LUMIN_200 = TW_LUMINOSITY[\"200\"];\nconst TW_LUMIN_300 = TW_LUMINOSITY[\"300\"];\nconst TW_LUMIN_400 = TW_LUMINOSITY[\"400\"];\nconst TW_LUMIN_500 = TW_LUMINOSITY[\"500\"];\nconst TW_LUMIN_600 = TW_LUMINOSITY[\"600\"];\nconst TW_LUMIN_700 = TW_LUMINOSITY[\"700\"];\nconst TW_LUMIN_800 = TW_LUMINOSITY[\"800\"];\nconst TW_LUMIN_900 = TW_LUMINOSITY[\"900\"];\nconst TW_LUMIN_950 = TW_LUMINOSITY[\"950\"];\n/**\n* **TW_CHROMA**\n*\n* The possible chroma values from Tailwind CSS when using\n* the **okhsl** color model.\n*\n* **Related:** `TW_CHROMA_50`, `TW_CHROMA_100`, ...\n*/\nconst TW_CHROMA = {\n\t\"50\": .0108,\n\t\"100\": .0321,\n\t\"200\": .0609,\n\t\"300\": .0908,\n\t\"400\": .1398,\n\t\"500\": .1472,\n\t\"600\": .1299,\n\t\"700\": .1067,\n\t\"800\": .0898,\n\t\"900\": .0726,\n\t\"950\": .054\n};\nconst TW_CHROMA_50 = TW_CHROMA[\"50\"];\nconst TW_CHROMA_100 = TW_CHROMA[\"100\"];\nconst TW_CHROMA_200 = TW_CHROMA[\"200\"];\nconst TW_CHROMA_300 = TW_CHROMA[\"300\"];\nconst TW_CHROMA_400 = TW_CHROMA[\"400\"];\nconst TW_CHROMA_500 = TW_CHROMA[\"500\"];\nconst TW_CHROMA_600 = TW_CHROMA[\"600\"];\nconst TW_CHROMA_700 = TW_CHROMA[\"700\"];\nconst TW_CHROMA_800 = TW_CHROMA[\"800\"];\nconst TW_CHROMA_900 = TW_CHROMA[\"900\"];\nconst TW_CHROMA_950 = TW_CHROMA[\"950\"];\n/**\n* The list of \"targets\" where Tailwind color string references\n* can be applied to. These domains are prefixes to the color string\n* when used (e.g., `bg-green-500`)\n*/\nconst TW_COLOR_TARGETS = [\n\t\"bg\",\n\t\"text\",\n\t\"border\",\n\t\"ring\",\n\t\"shadow\",\n\t\"border\"\n];\nconst TW_MODIFIERS_CORE = [\n\t\"dark\",\n\t\"focus\",\n\t\"hover\",\n\t\"active\",\n\t\"visited\",\n\t\"disabled\"\n];\nconst TW_MODIFIERS_ORDER = [\n\t\"first\",\n\t\"last\",\n\t\"odd\",\n\t\"even\"\n];\nconst TW_MODIFIERS_RELN = [\n\t\"focus-within\",\n\t\"focus-visible\",\n\t\"checked\",\n\t\"peer-invalid\",\n\t`peer-checked/{{string}}`\n];\n/**\n* The list of page size prefixes which Tailwind provides for adjusting to\n* device size. These are the defaults and can be customized.\n*/\nconst TW_MODIFIERS_SIZING = [\n\t\"sm\",\n\t\"md\",\n\t\"lg\",\n\t\"xl\",\n\t\"2xl\"\n];\n/**\n* The list of _modifiers_ which you can target as a prefix to a Tailwind\n* class (e.g., `focus:...`, `hover:...`).\n*/\nconst TW_MODIFIERS = [\n\t...TW_MODIFIERS_CORE,\n\t...TW_MODIFIERS_ORDER,\n\t...TW_MODIFIERS_SIZING,\n\t...TW_MODIFIERS_RELN\n];\n\n//#endregion\n//#region ../constants/src/Timezones.ts\nconst IANA_TIMEZONES__AFRICA = [\n\t\"Africa/Abidjan\",\n\t\"Africa/Accra\",\n\t\"Africa/Addis_Ababa\",\n\t\"Africa/Algiers\",\n\t\"Africa/Asmara\",\n\t\"Africa/Bamako\",\n\t\"Africa/Bangui\",\n\t\"Africa/Banjul\",\n\t\"Africa/Bissau\",\n\t\"Africa/Blantyre\",\n\t\"Africa/Brazzaville\",\n\t\"Africa/Bujumbura\",\n\t\"Africa/Cairo\",\n\t\"Africa/Casablanca\",\n\t\"Africa/Ceuta\",\n\t\"Africa/Conakry\",\n\t\"Africa/Dakar\",\n\t\"Africa/Dar_es_Salaam\",\n\t\"Africa/Djibouti\",\n\t\"Africa/Douala\",\n\t\"Africa/El_Aaiun\",\n\t\"Africa/Freetown\",\n\t\"Africa/Gaborone\",\n\t\"Africa/Harare\",\n\t\"Africa/Johannesburg\",\n\t\"Africa/Juba\",\n\t\"Africa/Kampala\",\n\t\"Africa/Khartoum\",\n\t\"Africa/Kigali\",\n\t\"Africa/Kinshasa\",\n\t\"Africa/Lagos\",\n\t\"Africa/Libreville\",\n\t\"Africa/Lome\",\n\t\"Africa/Luanda\",\n\t\"Africa/Lubumbashi\",\n\t\"Africa/Lusaka\",\n\t\"Africa/Malabo\",\n\t\"Africa/Maputo\",\n\t\"Africa/Maseru\",\n\t\"Africa/Mbabane\",\n\t\"Africa/Mogadishu\",\n\t\"Africa/Monrovia\",\n\t\"Africa/Nairobi\",\n\t\"Africa/Ndjamena\",\n\t\"Africa/Niamey\",\n\t\"Africa/Nouakchott\",\n\t\"Africa/Ouagadougou\",\n\t\"Africa/Porto-Novo\",\n\t\"Africa/Sao_Tome\",\n\t\"Africa/Tripoli\",\n\t\"Africa/Tunis\",\n\t\"Africa/Windhoek\"\n];\nconst IANA_TIMEZONES__AMERICA = [\n\t\"America/Adak\",\n\t\"America/Anchorage\",\n\t\"America/Anguilla\",\n\t\"America/Antigua\",\n\t\"America/Araguaina\",\n\t\"America/Argentina/Buenos_Aires\",\n\t\"America/Argentina/Catamarca\",\n\t\"America/Argentina/Cordoba\",\n\t\"America/Argentina/Jujuy\",\n\t\"America/Argentina/La_Rioja\",\n\t\"America/Argentina/Mendoza\",\n\t\"America/Argentina/Rio_Gallegos\",\n\t\"America/Argentina/Salta\",\n\t\"America/Argentina/San_Juan\",\n\t\"America/Argentina/San_Luis\",\n\t\"America/Argentina/Tucuman\",\n\t\"America/Argentina/Ushuaia\",\n\t\"America/Aruba\",\n\t\"America/Asuncion\",\n\t\"America/Atikokan\",\n\t\"America/Atka\",\n\t\"America/Bahia\",\n\t\"America/Bahia_Banderas\",\n\t\"America/Barbados\",\n\t\"America/Belem\",\n\t\"America/Belize\",\n\t\"America/Blanc-Sablon\",\n\t\"America/Boa_Vista\",\n\t\"America/Bogota\",\n\t\"America/Boise\",\n\t\"America/Cambridge_Bay\",\n\t\"America/Campo_Grande\",\n\t\"America/Cancun\",\n\t\"America/Caracas\",\n\t\"America/Cayenne\",\n\t\"America/Cayman\",\n\t\"America/Chicago\",\n\t\"America/Chihuahua\",\n\t\"America/Creston\",\n\t\"America/Cuiaba\",\n\t\"America/Curacao\",\n\t\"America/Danmarkshavn\",\n\t\"America/Dawson\",\n\t\"America/Dawson_Creek\",\n\t\"America/Denver\",\n\t\"America/Detroit\",\n\t\"America/Dominica\",\n\t\"America/Edmonton\",\n\t\"America/Eirunepe\",\n\t\"America/El_Salvador\",\n\t\"America/Fort_Nelson\",\n\t\"America/Fortaleza\",\n\t\"America/Glace_Bay\",\n\t\"America/Godthab\",\n\t\"America/Goose_Bay\",\n\t\"America/Grand_Turk\",\n\t\"America/Grenada\",\n\t\"America/Guadeloupe\",\n\t\"America/Guatemala\",\n\t\"America/Guayaquil\",\n\t\"America/Guyana\",\n\t\"America/Halifax\",\n\t\"America/Havana\",\n\t\"America/Hermosillo\",\n\t\"America/Indiana/Indianapolis\",\n\t\"America/Indiana/Knox\",\n\t\"America/Indiana/Marengo\",\n\t\"America/Indiana/Petersburg\",\n\t\"America/Indiana/Tell_City\",\n\t\"America/Indiana/Vevay\",\n\t\"America/Indiana/Vincennes\",\n\t\"America/Indiana/Winamac\",\n\t\"America/Inuvik\",\n\t\"America/Iqaluit\",\n\t\"America/Jamaica\",\n\t\"America/Juneau\",\n\t\"America/Kentucky/Louisville\",\n\t\"America/Kentucky/Monticello\",\n\t\"America/Kralendijk\",\n\t\"America/La_Paz\",\n\t\"America/Lima\",\n\t\"America/Los_Angeles\",\n\t\"America/Lower_Princes\",\n\t\"America/Maceio\",\n\t\"America/Managua\",\n\t\"America/Manaus\",\n\t\"America/Marigot\",\n\t\"America/Martinique\",\n\t\"America/Matamoros\",\n\t\"America/Mazatlan\",\n\t\"America/Menominee\",\n\t\"America/Merida\",\n\t\"America/Metlakatla\",\n\t\"America/Mexico_City\",\n\t\"America/Miquelon\",\n\t\"America/Moncton\",\n\t\"America/Monterrey\",\n\t\"America/Montevideo\",\n\t\"America/Montserrat\",\n\t\"America/Nassau\",\n\t\"America/New_York\",\n\t\"America/Nipigon\",\n\t\"America/Nome\",\n\t\"America/Noronha\",\n\t\"America/North_Dakota/Beulah\",\n\t\"America/North_Dakota/Center\",\n\t\"America/North_Dakota/New_Salem\",\n\t\"America/Ojinaga\",\n\t\"America/Panama\",\n\t\"America/Pangnirtung\",\n\t\"America/Paramaribo\",\n\t\"America/Phoenix\",\n\t\"America/Port-au-Prince\",\n\t\"America/Port_of_Spain\",\n\t\"America/Porto_Velho\",\n\t\"America/Puerto_Rico\",\n\t\"America/Punta_Arenas\",\n\t\"America/Rainy_River\",\n\t\"America/Rankin_Inlet\",\n\t\"America/Recife\",\n\t\"America/Regina\",\n\t\"America/Resolute\",\n\t\"America/Rio_Branco\",\n\t\"America/Santarem\",\n\t\"America/Santiago\",\n\t\"America/Santo_Domingo\",\n\t\"America/Sao_Paulo\",\n\t\"America/Scoresbysund\",\n\t\"America/Sitka\",\n\t\"America/St_Barthelemy\",\n\t\"America/St_Johns\",\n\t\"America/St_Kitts\",\n\t\"America/St_Lucia\",\n\t\"America/St_Thomas\",\n\t\"America/St_Vincent\",\n\t\"America/Swift_Current\",\n\t\"America/Tegucigalpa\",\n\t\"America/Thule\",\n\t\"America/Thunder_Bay\",\n\t\"America/Tijuana\",\n\t\"America/Toronto\",\n\t\"America/Tortola\",\n\t\"America/Vancouver\",\n\t\"America/Whitehorse\",\n\t\"America/Winnipeg\",\n\t\"America/Yakutat\",\n\t\"America/Yellowknife\"\n];\nconst IANA_TIMEZONES__ANTARCTICA = [\n\t\"Antarctica/Casey\",\n\t\"Antarctica/Davis\",\n\t\"Antarctica/DumontDUrville\",\n\t\"Antarctica/Macquarie\",\n\t\"Antarctica/Mawson\",\n\t\"Antarctica/McMurdo\",\n\t\"Antarctica/Palmer\",\n\t\"Antarctica/Rothera\",\n\t\"Antarctica/South_Pole\",\n\t\"Antarctica/Syowa\",\n\t\"Antarctica/Troll\",\n\t\"Antarctica/Vostok\",\n\t\"Arctic/Longyearbyen\"\n];\nconst IANA_TIMEZONES__ASIA = [\n\t\"Asia/Almaty\",\n\t\"Asia/Amman\",\n\t\"Asia/Anadyr\",\n\t\"Asia/Aqtau\",\n\t\"Asia/Aqtobe\",\n\t\"Asia/Ashgabat\",\n\t\"Asia/Atyrau\",\n\t\"Asia/Baghdad\",\n\t\"Asia/Baku\",\n\t\"Asia/Bangkok\",\n\t\"Asia/Barnaul\",\n\t\"Asia/Beirut\",\n\t\"Asia/Bishkek\",\n\t\"Asia/Brunei\",\n\t\"Asia/Chita\",\n\t\"Asia/Choibalsan\",\n\t\"Asia/Colombo\",\n\t\"Asia/Damascus\",\n\t\"Asia/Dhaka\",\n\t\"Asia/Dili\",\n\t\"Asia/Dubai\",\n\t\"Asia/Dushanbe\",\n\t\"Asia/Famagusta\",\n\t\"Asia/Gaza\",\n\t\"Asia/Hebron\",\n\t\"Asia/Ho_Chi_Minh\",\n\t\"Asia/Hong_Kong\",\n\t\"Asia/Hovd\",\n\t\"Asia/Irkutsk\",\n\t\"Asia/Jakarta\",\n\t\"Asia/Jayapura\",\n\t\"Asia/Jerusalem\",\n\t\"Asia/Kabul\",\n\t\"Asia/Kamchatka\",\n\t\"Asia/Karachi\",\n\t\"Asia/Kathmandu\",\n\t\"Asia/Khandyga\",\n\t\"Asia/Kolkata\",\n\t\"Asia/Krasnoyarsk\",\n\t\"Asia/Kuala_Lumpur\",\n\t\"Asia/Kuching\",\n\t\"Asia/Kuwait\",\n\t\"Asia/Macau\",\n\t\"Asia/Magadan\",\n\t\"Asia/Makassar\",\n\t\"Asia/Manila\",\n\t\"Asia/Muscat\",\n\t\"Asia/Nicosia\",\n\t\"Asia/Novokuznetsk\",\n\t\"Asia/Novosibirsk\",\n\t\"Asia/Omsk\",\n\t\"Asia/Oral\",\n\t\"Asia/Phnom_Penh\",\n\t\"Asia/Pontianak\",\n\t\"Asia/Pyongyang\",\n\t\"Asia/Qatar\",\n\t\"Asia/Qostanay\",\n\t\"Asia/Qyzylorda\",\n\t\"Asia/Riyadh\",\n\t\"Asia/Sakhalin\",\n\t\"Asia/Samarkand\",\n\t\"Asia/Seoul\",\n\t\"Asia/Shanghai\",\n\t\"Asia/Singapore\",\n\t\"Asia/Srednekolymsk\",\n\t\"Asia/Taipei\",\n\t\"Asia/Tashkent\",\n\t\"Asia/Tbilisi\",\n\t\"Asia/Tehran\",\n\t\"Asia/Thimphu\",\n\t\"Asia/Tokyo\",\n\t\"Asia/Tomsk\",\n\t\"Asia/Ulaanbaatar\",\n\t\"Asia/Urumqi\",\n\t\"Asia/Ust-Nera\",\n\t\"Asia/Vientiane\",\n\t\"Asia/Vladivostok\",\n\t\"Asia/Yakutsk\",\n\t\"Asia/Yangon\",\n\t\"Asia/Yekaterinburg\",\n\t\"Asia/Yerevan\"\n];\nconst IANA_TIMEZONES__ATLANTIC = [\n\t\"Atlantic/Azores\",\n\t\"Atlantic/Bermuda\",\n\t\"Atlantic/Canary\",\n\t\"Atlantic/Cape_Verde\",\n\t\"Atlantic/Faroe\",\n\t\"Atlantic/Madeira\",\n\t\"Atlantic/Reykjavik\",\n\t\"Atlantic/South_Georgia\",\n\t\"Atlantic/St_Helena\",\n\t\"Atlantic/Stanley\"\n];\nconst IANA_TIMEZONES__AUSTRALIA = [\n\t\"Australia/Adelaide\",\n\t\"Australia/Brisbane\",\n\t\"Australia/Broken_Hill\",\n\t\"Australia/Currie\",\n\t\"Australia/Darwin\",\n\t\"Australia/Eucla\",\n\t\"Australia/Hobart\",\n\t\"Australia/Lindeman\",\n\t\"Australia/Lord_Howe\",\n\t\"Australia/Melbourne\",\n\t\"Australia/Perth\",\n\t\"Australia/Sydney\"\n];\nconst IANA_TIMEZONES__EUROPE = [\n\t\"Europe/Amsterdam\",\n\t\"Europe/Andorra\",\n\t\"Europe/Astrakhan\",\n\t\"Europe/Athens\",\n\t\"Europe/Belgrade\",\n\t\"Europe/Berlin\",\n\t\"Europe/Brussels\",\n\t\"Europe/Bucharest\",\n\t\"Europe/Budapest\",\n\t\"Europe/Chisinau\",\n\t\"Europe/Copenhagen\",\n\t\"Europe/Dublin\",\n\t\"Europe/Gibraltar\",\n\t\"Europe/Guernsey\",\n\t\"Europe/Helsinki\",\n\t\"Europe/Isle_of_Man\",\n\t\"Europe/Istanbul\",\n\t\"Europe/Jersey\",\n\t\"Europe/Kaliningrad\",\n\t\"Europe/Kiev\",\n\t\"Europe/Kirov\",\n\t\"Europe/Lisbon\",\n\t\"Europe/Ljubljana\",\n\t\"Europe/London\",\n\t\"Europe/Luxembourg\",\n\t\"Europe/Madrid\",\n\t\"Europe/Malta\",\n\t\"Europe/Mariehamn\",\n\t\"Europe/Minsk\",\n\t\"Europe/Monaco\",\n\t\"Europe/Moscow\",\n\t\"Europe/Oslo\",\n\t\"Europe/Paris\",\n\t\"Europe/Podgorica\",\n\t\"Europe/Prague\",\n\t\"Europe/Riga\",\n\t\"Europe/Rome\",\n\t\"Europe/Samara\",\n\t\"Europe/San_Marino\",\n\t\"Europe/Sarajevo\",\n\t\"Europe/Simferopol\",\n\t\"Europe/Skopje\",\n\t\"Europe/Sofia\",\n\t\"Europe/Stockholm\",\n\t\"Europe/Tallinn\",\n\t\"Europe/Tirane\",\n\t\"Europe/Ulyanovsk\",\n\t\"Europe/Uzhgorod\",\n\t\"Europe/Vaduz\",\n\t\"Europe/Vatican\",\n\t\"Europe/Vienna\",\n\t\"Europe/Vilnius\",\n\t\"Europe/Volgograd\",\n\t\"Europe/Warsaw\",\n\t\"Europe/Zagreb\",\n\t\"Europe/Zaporozhye\",\n\t\"Europe/Zurich\"\n];\nconst IANA_TIMEZONES__INDIAN = [\n\t\"Indian/Antananarivo\",\n\t\"Indian/Chagos\",\n\t\"Indian/Christmas\",\n\t\"Indian/Cocos\",\n\t\"Indian/Comoro\",\n\t\"Indian/Kerguelen\",\n\t\"Indian/Mahe\",\n\t\"Indian/Maldives\",\n\t\"Indian/Mauritius\",\n\t\"Indian/Mayotte\",\n\t\"Indian/Reunion\"\n];\nconst IANA_TIMEZONES__PACIFIC = [\n\t\"Pacific/Apia\",\n\t\"Pacific/Auckland\",\n\t\"Pacific/Bougainville\",\n\t\"Pacific/Chatham\",\n\t\"Pacific/Chuuk\",\n\t\"Pacific/Easter\",\n\t\"Pacific/Efate\",\n\t\"Pacific/Enderbury\",\n\t\"Pacific/Fakaofo\",\n\t\"Pacific/Fiji\",\n\t\"Pacific/Funafuti\",\n\t\"Pacific/Galapagos\",\n\t\"Pacific/Gambier\",\n\t\"Pacific/Guadalcanal\",\n\t\"Pacific/Guam\",\n\t\"Pacific/Honolulu\",\n\t\"Pacific/Kiritimati\",\n\t\"Pacific/Kosrae\",\n\t\"Pacific/Kwajalein\",\n\t\"Pacific/Majuro\",\n\t\"Pacific/Marquesas\",\n\t\"Pacific/Midway\",\n\t\"Pacific/Nauru\",\n\t\"Pacific/Niue\",\n\t\"Pacific/Norfolk\",\n\t\"Pacific/Noumea\",\n\t\"Pacific/Pago_Pago\",\n\t\"Pacific/Palau\",\n\t\"Pacific/Pitcairn\",\n\t\"Pacific/Pohnpei\",\n\t\"Pacific/Port_Moresby\",\n\t\"Pacific/Rarotonga\",\n\t\"Pacific/Saipan\",\n\t\"Pacific/Tahiti\",\n\t\"Pacific/Tarawa\",\n\t\"Pacific/Tongatapu\",\n\t\"Pacific/Wake\",\n\t\"Pacific/Wallis\"\n];\nconst IANA_TIMEZONES__OTHER = [\"UTC\", \"Zulu\"];\nconst IANA_TIMEZONES = [\n\t...IANA_TIMEZONES__AFRICA,\n\t...IANA_TIMEZONES__AMERICA,\n\t...IANA_TIMEZONES__ANTARCTICA,\n\t...IANA_TIMEZONES__ASIA,\n\t...IANA_TIMEZONES__ATLANTIC,\n\t...IANA_TIMEZONES__AUSTRALIA,\n\t...IANA_TIMEZONES__EUROPE,\n\t...IANA_TIMEZONES__INDIAN,\n\t...IANA_TIMEZONES__OTHER,\n\t...IANA_TIMEZONES__PACIFIC\n];\n\n//#endregion\n//#region ../constants/src/TypeComparisons.ts\n/**\n* **wide**\n*\n* Provides a dictionary of _wide_ types; in most cases you should\n* prefer the **kind** API.\n*/\nconst WideAssignment = {\n\tboolean: () => \"<<boolean>>\",\n\tstring: () => \"<<string>>\",\n\tnumber: () => \"<<number>>\",\n\tsymbol: () => \"<<symbol>>\",\n\tnull: () => \"<<null>>\",\n\tfunction: () => \"<<function>>\",\n\ttuple: () => \"<<tuple>>\",\n\tsingularTuple: () => [\"<<tuple>>\"],\n\tobject: () => \"<<object>>\",\n\temptyObject: () => \"<<empty-object>>\",\n\tundefined: () => \"<<undefined>>\",\n\tunknown: () => \"<<unknown>>\",\n\tnothing: () => \"<<nothing>>\",\n\tsomething: () => \"<<something>>\"\n};\nconst wide = WideAssignment;\nfunction entry(refType, desc, ...params) {\n\treturn [\n\t\trefType(wide),\n\t\tdesc,\n\t\tparams.map((i) => typeof i === \"function\" ? i(wide) : i)\n\t];\n}\n/**\n* **TYPE_COMPARISONS**\n*\n* A dictionary of all _comparison_ operations along with their `RefType`, description,\n* and `Params`.\n*/\nconst TYPE_COMPARISONS = {\n\tExtends: entry((t) => t.unknown(), \"extends the type\", (t) => t.unknown()),\n\tNotExtends: entry((t) => t.unknown(), \"does not extent the type\", (t) => t.unknown()),\n\tEquals: entry((t) => t.unknown(), \"equals the type\", (t) => t.unknown()),\n\tNotEqual: entry((t) => t.unknown(), \"does not equal the type\", (t) => t.unknown()),\n\tTruthy: entry((t) => t.unknown(), \"must be a truthy value\"),\n\tFalsy: entry((t) => t.unknown(), \"must be a falsy value\"),\n\tIsSomething: entry((t) => t.unknown(), \"must be 'something' (aka, not null or undefined)\"),\n\tIsNothing: entry((t) => t.unknown(), \"must be 'nothing' (aka, null or undefined)\"),\n\tIsString: entry((t) => t.string(), \"must extend a string type\"),\n\tIsNumber: entry((t) => t.number(), \"must extend a number type\"),\n\tIsBoolean: entry((t) => t.boolean(), \"must extend a boolean type\"),\n\tGreaterThan: entry((t) => t.number(), \"must be a numeric literal greater than [[0]]\", (t) => t.number()),\n\tLessThan: entry((t) => t.number(), \"must be a numeric literal less than [[0]]\", (t) => t.number()),\n\tStartsWith: entry((t) => t.string(), \"must be a string literal that starts with '[[0]]'\", (t) => t.string()),\n\tEndsWith: entry((t) => t.string(), \"must be a string literal that ends with '[[0]]'\", (t) => t.string()),\n\tIncludes: entry((t) => t.string(), \"must be a string literal that includes the substring '[[0]]'\", (t) => t.string()),\n\tReturnsSomething: entry((t) => t.function(), \"must be a function which returns 'something' (aka, not null or undefined)\"),\n\tReturnsNothing: entry((t) => t.function(), \"must be a function which returns 'nothing' (aka, null or undefined)\"),\n\tReturnsTrue: entry((t) => t.function(), \"must be a function which returns 'true'\"),\n\tReturnsFalse: entry((t) => t.function(), \"must be a function which returns 'false'\"),\n\tReturnsTruthy: entry((t) => t.function(), \"must be a function which returns a 'truthy' value\"),\n\tReturnsFalsy: entry((t) => t.function(), \"must be a function which returns a 'falsy' value\"),\n\tReturnsExtends: entry((t) => t.unknown(), \"must be a function which returns a value which extends [[0]]\", (t) => t.unknown()),\n\tReturnsEquals: entry((t) => t.unknown(), \"must be a function which returns a value which equals [[0]]\", (t) => t.unknown()),\n\tContains: entry((t) => t.tuple(), \"must be a tuple and have elements that extends the value [[0]]\", (t) => t.unknown()),\n\tContainsSome: entry((t) => t.tuple(), \"must be a tuple and have elements that extends the value [[0]]\", (t) => t.singularTuple())\n};\n\n//#endregion\n//#region ../constants/src/Types.ts\nconst FALSY_TYPE_KINDS = [\"undefined\", \"null\"];\nconst LITERAL_TYPE_KINDS = [\n\t\"true\",\n\t\"false\",\n\t\"stringLiteral\",\n\t\"numericLiteral\"\n];\nconst WIDE_TYPE_KINDS = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\"\n];\nconst NARROW_CONTAINER_TYPE_KINDS = [\n\t\"object\",\n\t\"explicitFunctions\",\n\t\"fnType\",\n\t\"fnWithDict\",\n\t\"tuple\",\n\t\"union\",\n\t\"intersection\",\n\t\"arrayOf\"\n];\nconst WIDE_CONTAINER_TYPE_KINDS = [\n\t\"anyArray\",\n\t\"anyObject\",\n\t\"unknownObject\",\n\t\"anyFunction\",\n\t\"emptyObject\"\n];\n/**\n* A full list of the _types_ of types we have within the `Type` namespace.\n*/\nconst TYPE_KINDS = [\n\t...FALSY_TYPE_KINDS,\n\t...WIDE_TYPE_KINDS,\n\t...LITERAL_TYPE_KINDS,\n\t...NARROW_CONTAINER_TYPE_KINDS,\n\t...WIDE_CONTAINER_TYPE_KINDS\n];\n\n//#endregion\n//#region ../constants/src/TypeTokens.ts\n/**\n* **Type Tokens** which have zero configuration elements.\n*/\nconst TT_ATOMICS = [\n\t\"undefined\",\n\t\"null\",\n\t\"boolean\",\n\t\"true\",\n\t\"false\"\n];\n/**\n* **Type Tokens** which have a literal variant which represents\n* the _single_ configuration of this type which is available.\n*/\nconst TT_SINGLETONS = [\"string\", \"number\"];\nconst TT_SETS = [\n\t\"string-set\",\n\t\"numeric-set\",\n\t\"fn-set\",\n\t\"union-set\"\n];\n/**\n* **Type Tokens** which represent _functions_ (either the typical\n* variety or Generator functions).\n*/\nconst TT_FUNCTIONS = [\"fn\", \"gen\"];\n/**\n* **Type Tokens** which _contain_ other **Type Tokens** to make up their\n* identity.\n*/\nconst TT_CONTAINERS = [\n\t\"rec\",\n\t\"arr\",\n\t\"set\",\n\t\"map\",\n\t\"union\",\n\t\"obj\",\n\t\"tuple\"\n];\nconst TT_KIND_VARIANTS = [\n\t...TT_ATOMICS,\n\t...TT_CONTAINERS,\n\t...TT_FUNCTIONS,\n\t...TT_SETS,\n\t...TT_SINGLETONS\n];\n\n//#endregion\n//#region src/boolean-logic/ifChar.ts\nconst def_if = (v) => v;\nconst def_else = () => Never;\nfunction ifChar(ch, callback_if_match = def_if, callback_not_match = def_else) {\n\treturn ch.length === 1 ? callback_if_match(ch) : callback_not_match(ch);\n}\n\n//#endregion\n//#region src/boolean-logic/ifContainer.ts\nfunction ifContainer(value, ifContainer$1, notContainer) {\n\treturn isDictionary(value) || isArray(value) ? ifContainer$1(value) : notContainer(value);\n}\n\n//#endregion\n//#region src/boolean-logic/ifEmpty.ts\n/**\n* **ifEmpty(val, empty, notEmpty)**\n*\n* A boolean branching operator\n*/\nfunction ifEmpty(val, empty, notEmpty) {\n\treturn isEmpty(val) ? empty : notEmpty;\n}\n\n//#endregion\n//#region src/boolean-logic/ifEqual.ts\nfunction ifEqual(comparator) {\n\treturn (val, ifTrue$1, ifFalse$1 = (v) => v) => {\n\t\tif (JSON.stringify(comparator) === JSON.stringify(val)) return ifTrue$1(val);\n\t\telse return ifFalse$1(val);\n\t};\n}\n\n//#endregion\n//#region src/boolean-logic/ifError.ts\n/**\n* **ifError(val, wasError, wasNotError)**\n*\n* A boolean branching operator\n*/\nfunction ifError(val, wasError, wasNotError) {\n\treturn isError(val) ? wasError : wasNotError;\n}\n\n//#endregion\n//#region src/boolean-logic/ifFalse.ts\n/**\n* **ifTrue**\n*\n* Strongly type-aware conditional statement which checks whether a value is\n* a _true_ and returns one of two values (strongly typed) based on the evaluation\n* of this criteria.\n*\n* @param val the value being tested\n* @param ifVal the value (strongly typed) returned if val is _true_ value\n* @param elseVal the value (strongly typed) returned if val is NOT a _true_ value\n*\n* Note: at runtime there's no way to distinguish if the value was widely or loosely\n* typed so unlike the type utility there is no \"MAYBE\" state but if a wide type if\n* encountered the _type_ will the union of `IF` and `ELSE`.\n*/\nfunction ifFalse(val, ifVal, elseVal) {\n\treturn isFalse(val) ? ifVal : elseVal;\n}\n\n//#endregion\n//#region src/boolean-logic/ifFunction.ts\n/**\n* **ifFunction**(value, isFn, notFn)\n*\n* Runtime utility which assesses whether `value` is a function and provides\n* two callback hooks for both outcome.\n*\n* **Related:** `isFunction`\n*/\nfunction ifFunction(value, isFnCallback, notFnCallback) {\n\treturn isFunction(value) ? isFnCallback(value) : notFnCallback(value);\n}\n\n//#endregion\n//#region src/boolean-logic/ifHasKey.ts\nfunction ifHasKey(container, key, hasKey, doesNotHaveKey) {\n\treturn hasIndexOf(container, key) ? hasKey(container) : doesNotHaveKey(container);\n}\n\n//#endregion\n//#region src/boolean-logic/ifLength.ts\n/**\n* **ifLength**(val,length, ifVal, elseVal)\n*\n* Runtime utility which tests whether the `value` passed in is both an array/tuple\n* and that it's length is equal to `length`. It then provides two callbacks with\n* narrowed types for these two conditions.\n*\n* @param value the value being tested\n* @param length\n* @param ifVal the value (strongly typed) returned if val is of appropriate length\n* @param elseVal the value (strongly typed) returned if val is NOT of given length\n*/\nfunction ifLength(value, length, ifVal, elseVal) {\n\treturn Array.isArray(value) && value.length === length ? ifVal(value) : elseVal(value);\n}\n\n//#endregion\n//#region src/boolean-logic/ifNotNull.ts\n/**\n* **ifNotNull**(val,IF,ELSE)\n*\n* Strongly type-aware conditional statement which checks whether a value is\n* Null and returns one of two values (strongly typed) based on the evaluation\n* of this criteria.\n*\n* @param val the value being tested\n* @param ifVal callback fn which responds when _val_ is **null**\n* @param elseVal callback fn which responds when _val_ is not **null**\n*/\nfunction ifNotNull(val, ifVal, elseVal) {\n\treturn isNull(val) ? elseVal() : ifVal(val);\n}\n\n//#endregion\n//#region src/boolean-logic/ifNull.ts\n/**\n* **ifNull**(val,IF,ELSE)\n*\n* Strongly type-aware conditional statement which checks whether a value is\n* Null and returns one of two values (strongly typed) based on the evaluation\n* of this criteria.\n*\n* @param val the value being tested\n* @param ifVal callback fn which responds when _val_ is **null**\n* @param elseVal callback fn which responds when _val_ is not **null**\n*/\nfunction ifNull(val, ifVal, elseVal) {\n\treturn isNull(val) ? ifVal() : elseVal(val);\n}\n\n//#endregion\n//#region src/boolean-logic/ifNumber.ts\n/**\n* **ifNumber**(val, ifVal, elseVal)\n*\n* Strongly type-aware conditional statement which checks whether a value is\n* a _number_ and returns one of two values (strongly typed) based on the evaluation\n* of this criteria.\n*\n* @param val the value being tested\n* @param ifVal the value (strongly typed) returned if val is number\n* @param elseVal the value (strongly typed) returned if val is NOT a number\n*/\nfunction ifNumber(val, ifVal, elseVal) {\n\treturn isNumber(val) ? ifVal(val) : elseVal(val);\n}\n\n//#endregion\n//#region src/boolean-logic/ifObject.ts\nfunction ifObject(val, ifObj, notObj) {\n\treturn isDictionary(val) ? ifObj : notObj;\n}\n\n//#endregion\n//#region src/boolean-logic/ifSameType.ts\n/**\n* **ifSameType**(value, comparator, same, notSame)\n*\n* Runtime utility function which compares the variable `value` to a comparison type\n* and based on whether they are the same type, it will call one of the two provided\n* callback functions: `same` or `notSame`.\n*/\nfunction ifSameType(value, comparator, same, notSame) {\n\treturn typeof value === typeof comparator ? same(value) : notSame(value);\n}\n\n//#endregion\n//#region src/boolean-logic/ifScalar.ts\n/**\n* **ifScalar**(value, ifCallback, notCallback)\n*\n* A runtime utility which branches based on whether\n* the type is a `T` is a _scalar_ value or not.\n*\n* - each branch is provided an _optional_ callback to further\n* refine the type.\n* ```ts\n* const val: number | string = 42;\n* const narrow = ifScalar(val);\n* ```\n*/\nfunction ifScalar(value, ifCallback, notCallback) {\n\tconst result$1 = isScalar(value) ? ifCallback(value) : notCallback(value);\n\treturn result$1;\n}\n\n//#endregion\n//#region src/boolean-logic/ifString.ts\n/**\n* **ifString**\n*\n* Strongly type-aware conditional statement which checks whether a value is\n* a _string_ and returns one of two values (strongly typed) based on the evaluation\n* of this criteria.\n*\n* @param val the value being tested for being a string\n* @param ifVal the value (strongly typed) returned if val is _string_\n* @param elseVal the value (strongly typed) returned if val is NOT a _string\n*/\nfunction ifString(val, ifVal, elseVal) {\n\treturn typeof val === \"string\" ? ifVal(val) : elseVal(val);\n}\n\n//#endregion\n//#region src/boolean-logic/ifTrue.ts\n/**\n* **ifTrue**\n*\n* Strongly type-aware conditional statement which checks whether a value is\n* _true_. Valid outcomes are:\n*\n* - **IF** - returned when T is narrowly typed as `true`\n* - **ELSE** - returned when T is narrowly typed as `false`\n* - **IF | ELSE** - returned when T is a `boolean` type\n*/\nfunction ifTrue(val, ifVal, elseVal) {\n\treturn isTrue(val) ? ifVal(val) : elseVal(val);\n}\n\n//#endregion\n//#region src/boolean-logic/ifUndefined.ts\n/**\n* **ifUndefined**\n*\n* Strongly type-aware conditional statement which checks whether a value is\n* _undefined_ and returns one of two values (strongly typed) based on the evaluation\n* of this criteria.\n*\n* @param val the value being tested\n* @param ifUndefined the value (strongly typed) returned if val is `undefined`\n* @param ifDefined the value (strongly typed) returned if val is NOT `undefined`\n*/\nfunction ifUndefined(val, ifUndefined$1, ifDefined$1) {\n\treturn isUndefined(val) ? ifUndefined$1() : ifDefined$1(val);\n}\nfunction ifDefined(val, ifVal, elseVal) {\n\treturn isDefined(val) ? ifVal : elseVal;\n}\n\n//#endregion\n//#region src/type-guards/api-tg.ts\nfunction isEscapeFunction(val) {\n\treturn isFunction(val) && \"escape\" in val && val.escape === true;\n}\n/**\n* **isOptionalParamFunction**`(val)`\n*\n* A type guard which ensures that the value passed in is not only a _function_\n* but also has the `optionalParam` value set to **true** indicating that it\n* is safe to be called _without_ parameters.\n*\n* **Note:** this is similar to an \"escape function\" but whereas an API can\n* only have one escape function, an API may have as many ze\n*/\nfunction isOptionalParamFunction(val) {\n\treturn isFunction(val) && \"optionalParams\" in val && val.optionalParams === true;\n}\n/**\n* **isApi**`(val)`\n*\n* Type guard which validates that the value passed in is an `Api` type\n* with \"surface\" and \"_kind\" property.\n*\n* **Related:** `isFluentApi()`\n*/\nfunction isApi(api$1) {\n\treturn isDictionary(api$1) && \"surface\" in api$1 && \"_kind\" in api$1 && api$1._kind === \"api\";\n}\n/**\n* **isApiSurface**`(val)`\n*\n* A type guard which tests whether the value passed in is the SurfaceArea\n* of an API (or could be).\n*/\nfunction isApiSurface(val) {\n\treturn isDictionary(val) && Object.keys(val).some((k) => isEscapeFunction(val[k]));\n}\n\n//#endregion\n//#region src/type-guards/arrays/isArray.ts\n/**\n* **isArray**(value)\n*\n* Type guard to detect if the type is an array (readonly or regular)\n*/\nfunction isArray(value) {\n\treturn Array.isArray(value) === true;\n}\n/**\n* **isBooleanArray**(value)\n*\n* Type guard to detect if the type is an array of strings (readonly or regular)\n*/\nfunction isBooleanArray(value) {\n\treturn isArray(value) && value.every((i) => isBoolean(i));\n}\n\n//#endregion\n//#region src/type-guards/arrays/isNarrowableArray.ts\nfunction isNarrowableArray(val) {\n\treturn isArray(val) && val.every((i) => isString(i) || isNumber(i) || isDictionary(i) || isNull(i) || isUndefined(i) || isBoolean(i) || typeof i === \"symbol\");\n}\n\n//#endregion\n//#region src/type-guards/arrays/isReadonlyArray.ts\n/**\n* **isReadonlyArray**(value)\n*\n* Type guard to detect if the type is an array (readonly).\n*\n* Note: at runtime we can't discern between a readonly array\n* and a normal one. If author is aware, however, that an array\n* indicates a readonly array then this type-guard will resolve\n* to a cleaner type.\n*/\nfunction isReadonlyArray(value) {\n\treturn Array.isArray(value) === true;\n}\n\n//#endregion\n//#region src/type-guards/arrays/isStringArray.ts\n/**\n* Type guard which validates that the passed in `val` is a string array.\n*/\nfunction isStringArray(val) {\n\treturn Array.isArray(val) && val.every((i) => isString(i));\n}\n\n//#endregion\n//#region src/type-guards/arrays/isStringOrNumericArray.ts\n/**\n* Type guard which validates that the passed in `val` is an array of\n* string or numeric values.\n*/\nfunction isStringOrNumericArray(val) {\n\treturn Array.isArray(val) && val.every((i) => isString(i) || isNumber(i));\n}\n\n//#endregion\n//#region src/type-guards/comparison/isComparisonOperation.ts\n/**\n* Type guard which checks whether `op` is a `ComparisonOperation`.\n*/\nfunction isComparisonOperation(op) {\n\treturn isString(op) && Object.values(COMPARISON_OPERATIONS).includes(op);\n}\n\n//#endregion\n//#region src/type-guards/comparison/isValidComparisionParams.ts\n/**\n* **isValidComparisonParams**`(op, params)`\n*\n* Type guard that validates the parameters passed in are valid for the given\n* operation.\n*/\nfunction isValidComparisonParams(op, params) {\n\treturn !!isComparisonOperation(op);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isDate.ts\n/**\n* A type guard which validates whether the passed in value is a JavaScript Date object.\n*/\nfunction isDate(val) {\n\treturn val instanceof Date;\n}\n\n//#endregion\n//#region src/type-guards/datetime/isDateLike.ts\n/**\n* A type guard which checks if `val` is _date like_:\n*\n* - a number (or `NumberLike`) and therefore assumed to be an Epoch timestamp\n* - a string in the shape of the ISO 8601 specification\n* - an object in the shape of:\n* - Javascript Date object\n* - DateFNS Date object\n* - MomentJS Date object\n* - Luxon Date object\n*/\nfunction isDateLike(val) {\n\treturn isNumber(val) && isInteger(val) && val > 0 || isString(val) && (isIsoDate(val) || isIsoDateTime(val)) || isDate(val) || isMoment(val) || isLuxonDate(val) || isTemporalDate(val);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isDateMeta.ts\n/**\n* type guard which validates that `val` is the type `DateMeta`.\n*/\nfunction isDateMeta(val) {\n\treturn isDictionary(val) && \"dateType\" in val && DATE_TYPE.includes(val.dateType);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isDateTime.ts\n/**\n* Type guard which validates that `val` is a valid ISO8601 DateTime string.\n*\n* Valid forms include:\n* - `2024-01-01T00:00:00Z` (UTC/Zulu time)\n* - `2024-01-01T00:00:00+00:00` (Explicit timezone offset)\n* - `2024-01-01T00:00:00-00:00` (Explicit timezone offset)\n* - `2024-01-01T00:00:00.000Z` (With milliseconds, UTC)\n* - `2024-01-01T00:00:00.000+00:00` (With milliseconds, offset)\n* - `2024-01-01T00:00` (Minutes precision)\n* - `2024-01-01T00:00:00` (Seconds precision)\n*/\nfunction isIsoDateTime(val) {\n\tif (!isString(val)) return false;\n\tconst ISO_DATETIME_REGEX = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{1,3}))?)?(Z|[+-]\\d{2}:\\d{2})?$/;\n\tif (!ISO_DATETIME_REGEX.test(val)) return false;\n\tconst [_, ...matches] = val.match(ISO_DATETIME_REGEX) || [];\n\tconst [year, month, day, hours, minutes, seconds] = matches.map(Number);\n\tif (hours >= 24 || minutes >= 60 || seconds != null && seconds >= 60) return false;\n\tif (month < 1 || month > 12) return false;\n\tconst daysInMonth$1 = new Date(year, month, 0).getDate();\n\tif (day < 1 || day > daysInMonth$1) return false;\n\tconst tzMatch = val.match(/([+-])(\\d{2}):(\\d{2})$/);\n\tif (tzMatch) {\n\t\tconst [_$1, _sign, tzHours, tzMinutes] = tzMatch;\n\t\tconst numHours = Number.parseInt(tzHours, 10);\n\t\tconst numMinutes = Number.parseInt(tzMinutes, 10);\n\t\tif (numHours > 14 || numMinutes > 59) return false;\n\t\tif (numHours === 14 && numMinutes > 0) return false;\n\t}\n\treturn true;\n}\n\n//#endregion\n//#region src/type-guards/datetime/isDayJs.ts\n/**\n* Type guard to detect whether the `val` passed in is a `Day.js` date\n* object.\n*/\nfunction isDayJs(val) {\n\tif (isDictionary(val) && \"toDate\" in val && typeof val.toDate === \"function\" && \"subtract\" in val && \"utc\" in val) try {\n\t\treturn val.toDate() instanceof Date;\n\t} catch {\n\t\treturn false;\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region src/numeric/abs.ts\n/**\n* **abs**`(num) -> number`\n*\n* Get's the absolute value of `num` providing a literal type if possible.\n*/\nfunction abs(num) {\n\treturn num < 0 ? num * -1 : num;\n}\n\n//#endregion\n//#region src/numeric/add.ts\nfunction add(a, b) {\n\treturn isString(a) || isString(b) ? String(asNumber(a) + asNumber(b)) : asNumber(a) + asNumber(b);\n}\n\n//#endregion\n//#region src/numeric/asNumber.ts\n/**\n* **asNumber**`(val)`\n*\n* Converts `NumberLike` values to a number.\n*\n* - also handles numeric strings which have leading zeros\n*/\nfunction asNumber(val) {\n\treturn isString(val) ? Number(val) : val;\n}\n\n//#endregion\n//#region src/numeric/between.ts\n/**\n* **between**`(from, to, [scope]) -> (val) -> boolean`\n*\n* A higher-order function which builds boolean logic for\n* whether a numeric value passed in is _between_ the two\n* constraints established on the first call.\n*/\nfunction between(min, max, scope = \"exclusively\") {\n\treturn (val) => {\n\t\treturn scope === \"inclusively\" ? val >= min && val <= max : val > min && val < max;\n\t};\n}\n\n//#endregion\n//#region src/numeric/decrement.ts\n/**\n* **decrement**`(val)`\n*\n* Decrements a `NumberLike` value.\n*/\nfunction decrement(val) {\n\treturn isString(val) ? String(asNumber(val) - 1) : asNumber(val) - 1;\n}\n\n//#endregion\n//#region src/numeric/increment.ts\n/**\n* **increment**`(val)`\n*\n* Increments a `NumberLike` value.\n*/\nfunction increment(val) {\n\treturn isString(val) ? String(asNumber(val) + 1) : asNumber(val) + 1;\n}\n\n//#endregion\n//#region src/numeric/isGreaterThan.ts\n/**\n* **isGreaterThan**`(comparator) -> (val) -> boolean`\n*\n* Creates a type strong comparison as to whether the value `TVal` is\n* greater than the _comparator_ value.\n*/\nfunction isGreaterThan(comparator) {\n\treturn (val) => {\n\t\treturn val > comparator;\n\t};\n}\n\n//#endregion\n//#region src/numeric/isGreaterThanOrEqual.ts\n/**\n* **isGreaterThanOrEqual**`(comparator) -> (val) -> boolean`\n*\n* Creates a type strong comparison as to whether the value `TVal` is\n* greater than _or equal_ to the _comparator_ value.\n*/\nfunction isGreaterThanOrEqual(comparator) {\n\treturn (val) => {\n\t\treturn val >= comparator;\n\t};\n}\n\n//#endregion\n//#region src/numeric/isNegativeNumber.ts\n/**\n* Boolean operator which indicates whether the number passed\n* in is negative.\n*/\nfunction isNegativeNumber(num) {\n\treturn Number(num) < 0;\n}\n\n//#endregion\n//#region src/numeric/lessThan.ts\n/**\n* **lessThan**`(comparator) -> (val) -> boolean`\n*\n* Creates a type strong comparison as to whether the value `TVal` is\n* less than the _comparator_ value.\n*/\nfunction lessThan(comparator) {\n\treturn (val) => {\n\t\treturn val < comparator;\n\t};\n}\n\n//#endregion\n//#region src/numeric/lessThanOrEqual.ts\n/**\n* **lessThanOrEqual**`(comparator) -> (val) -> boolean`\n*\n* Creates a type strong comparison as to whether the value `TVal` is\n* less than or equal to the _comparator_ value.\n*/\nfunction lessThanOrEqual(comparator) {\n\treturn (val) => {\n\t\treturn val <= comparator;\n\t};\n}\n\n//#endregion\n//#region src/numeric/toInteger.ts\n/**\n* Converts the number `n` to a `Integer` type if\n* `n` _is_ an Integer, otherwise throws a `InvalidNumber` error.\n*/\nfunction toInteger(n) {\n\tif (!Number.isInteger(n)) {\n\t\tconst err$1 = new Error(`Non-floating point number passed to toInteger(${n})`);\n\t\terr$1.name = \"InvalidNumber\";\n\t\tthrow err$1;\n\t}\n\treturn n;\n}\n\n//#endregion\n//#region src/type-guards/datetime/isEpoch.ts\n/** the epoch timestamp (in seconds) for the date 2500-01-01 */\nconst EPOCH_2500 = 16725225600;\n/** the epoch timestamp (in milliseconds) for July 14th */\nconst EPOCH_1970_07_14 = 167616e5;\n/**\n* **isEpochInSeconds**(timestamp)\n*\n* Epoch timestamps represent times after January 1st, 1970 but up to July 14th,\n* 1970 there is no completely valid what of distinguishing an **epoch** based\n* on _seconds_ versus _milliseconds. After July 14th, no additional context/data\n* is necessary as long as we're willing to \"cap\" the **epoch** timestamps in seconds\n* to the year 2500.\n*\n* This type-guard attempts to use the constraints above to test whether the value\n* passed in is an epoch timestamp measured in _seconds_.\n*\n* **Related:** `isEpochInSeconds`\n*/\nfunction isEpochInSeconds(timestamp) {\n\treturn Number(timestamp) >= 0 && Number(timestamp) <= EPOCH_2500;\n}\n/**\n* **isEpochInMilliseconds**(timestamp)\n*\n* Type guard which converts a numeric timestamp to the\n* type `EpochInMs` based on the fact that:\n*\n* - the NumberLike passed in is _past_ July 14th, 1970\n* - any dates past this point are clearly distinguishable\n* from _seconds_ based timestamps and _milliseconds_ based timestamps\n* if you're willing to assume all dates are _before_ the date\n* **Jan 1st, 2500**.\n* - this should be a practical constraint in most use cases\n*\n* **Related:** `isEpochInSeconds`\n*/\nfunction isEpochInMilliseconds(timestamp) {\n\treturn isNegativeNumber(timestamp) ? false : Number(timestamp) >= EPOCH_1970_07_14;\n}\n\n//#endregion\n//#region src/type-guards/datetime/isIanaTimezone.ts\n/**\n* a type-guard which validates that `val` is of the type\n* `IanaZone`.\n*/\nfunction isIanaTimezone(val) {\n\treturn isString(val) && IANA_TIMEZONES.includes(val);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isIsoDate.ts\n/**\n* Type guard which validates whether the passed in `val` is an ISO 8601 date\n* representation with an explicit `-` separator between units (YYYY-MM-DD).\n*\n* **Related:** `isIsoDate`, `isIsoImplicitDate`\n*/\nfunction isIsoExplicitDate(val) {\n\tif (isString(val)) {\n\t\tconst parts = val.split(\"-\").map((i) => Number(i));\n\t\treturn val.includes(\"-\") ? val.split(\"-\").every((i) => isNumberLike(i)) ? parts[0] >= 0 && parts[0] <= 9999 && parts[1] >= 1 && parts[1] <= 12 && parts[2] >= 1 && parts[2] <= 31 : false : false;\n\t} else return false;\n}\n/**\n* Type guard which validates whether the passed in `val` is an ISO 8601 date\n* representation without an explicit `-` separator between units (YYYYMMDD).\n*\n* **Related:** `isIsoDate`, `isIsoExplicitDate`\n*/\nfunction isIsoImplicitDate(val) {\n\tif (isString(val) && val.length === 8 && isNumberLike(val)) {\n\t\tconst year = Number(val.slice(0, 4));\n\t\tconst month = Number(val.slice(4, 6));\n\t\tconst date = Number(val.slice(6, 8));\n\t\treturn year >= 0 && year <= 9999 && month >= 1 && month <= 12 && date >= 1 && date <= 31;\n\t} else return false;\n}\n/**\n* Type guard which validates whether the passed in `val` is an ISO 8601 date\n* representation.\n*\n* - `YYYY-MM-DD` _or_ `YYYYMMDD`\n* - `-YYYY-MM` _or_ `-YYYYMM`\n* - `--MM-DD` _or_ `--MMDD`\n*\n* **Related:**\n* - `isIsoExplicitDate`, `isIsoImplicitDate`\n* - `isIsoYear()`, `isIsoYearMonth()`, `isIsoMonthDate()`\n*/\nfunction isIsoDate(val) {\n\tif (isString(val)) return isIsoImplicitDate(val) || isIsoExplicitDate(val) || isIsoYear(val);\n\telse return false;\n}\n\n//#endregion\n//#region src/string-literals/casing/capitalize.ts\n/**\n* **capitalize**()\n*\n* Run time utility which capitalizes a word/string and preserves\n* string literal types when available.\n*/\nfunction capitalize(str) {\n\treturn `${str?.slice(0, 1).toUpperCase()}${str?.slice(1)}`;\n}\n\n//#endregion\n//#region src/string-literals/casing/toAllCaps.ts\n/**\n* **toAllCaps**`(str)`\n*\n* Converts a string to the \"all caps\" equivalent.\n*\n* **Related:** `toLowercase`, `capitalize`, `uncapitalize`\n*/\nfunction toAllCaps(str) {\n\treturn str.split(\"\").map((i) => ifLowercaseChar(i, (v) => capitalize(v), (v) => v)).join(\"\");\n}\n\n//#endregion\n//#region src/string-literals/casing/toCamelCase.ts\n/**\n* **toCamelCase**(str)\n*\n* Converts a string into `camelCase` while preserving literal strings.\n*\n* **Note:** _by default it also removes surrounding white space (if it exists) but it\n* can be preserved if you change the `preserveWhitespace` flag._\n*\n* **Related:** `toKebabCase`, `toPascalCase`, `toSnakeCase`\n*/\nfunction toCamelCase(input) {\n\tconst pascal = toPascalCase(input);\n\tconst [_, _preWhite, focus, _postWhite] = /^(\\s*)(.*?)(\\s*)$/.exec(pascal);\n\tconst camel = focus.replace(/^.*?(\\d*[a-z|])/is, (_$1, p1) => p1.toLowerCase());\n\treturn camel;\n}\n\n//#endregion\n//#region src/string-literals/casing/toKebabCase.ts\n/**\n* **toKebabCase**(str)\n*\n* Converts a string into `kebab-case` while preserving literal strings.\n*\n* **Note:** _by default it also removes surrounding white space (if it exists) but it\n* can be preserved if you change the `preserveWhitespace` flag._\n*\n* **Related:** `toPascalCase`, `toCamelCase`, `toSnakeCase`\n*/\nfunction toKebabCase(input, _preserveWhitespace = false) {\n\tconst [_, preWhite, focus, postWhite] = /^(\\s*)([\\s\\S]*?)(\\s*)$/.exec(input || \"\");\n\tconst replaceWhitespace = (i) => i.replace(/\\s/g, \"-\");\n\tconst replaceUppercase = (i) => i.replace(/[A-Z]/g, (c) => `-${c[0].toLowerCase()}`);\n\tconst replaceLeadingDash = (i) => i.replace(/^-/, \"\");\n\tconst replaceTrailingDash = (i) => i.replace(/-$/, \"\");\n\tconst replaceUnderscore = (i) => i.replace(/_/g, \"-\");\n\tconst removeDupDashes = (i) => i.replace(/-+/g, \"-\");\n\treturn removeDupDashes(`${preWhite}${replaceUnderscore(replaceTrailingDash(replaceLeadingDash(removeDupDashes(replaceWhitespace(replaceUppercase(focus))))))}${postWhite}`);\n}\n\n//#endregion\n//#region src/string-literals/casing/toLowercase.ts\n/**\n* Converts a string to the \"all lowercase\" equivalent.\n*\n* **Related:** `toAllCaps`, `capitalize`, `uncapitalize`\n*/\nfunction toLowercase(str) {\n\treturn str.split(\"\").map((i) => ifLowercaseChar(i, (v) => lowercase(v), (v) => v)).join(\"\");\n}\n\n//#endregion\n//#region src/string-literals/casing/toPascalCase.ts\n/**\n* **toPascalCase**(str)\n*\n* Converts a string into `PascalCase` while preserving literal strings.\n*\n* **Note:** _by default it also removes surrounding white space (if it exists) but it\n* can be preserved if you change the `preserveWhitespace` flag._\n*\n* **Related:** `toKebabCase`, `toCamelCase`, `toSnakeCase`\n*/\nfunction toPascalCase(input, preserveWhitespace = void 0) {\n\tconst [_, preWhite, focus, postWhite] = /^(\\s*)([\\s\\S]*?)(\\s*)$/.exec(input);\n\tconst convertInteriorToCap = (i) => i.replace(/[ |_\\-]+(\\d*[a-z|])/gi, (_$1, p1) => p1.toUpperCase());\n\tconst startingToCap = (i) => i.replace(/^[_|-]*(\\d*[a-z])/g, (_$1, p1) => p1.toUpperCase());\n\tconst replaceLeadingTrash = (i) => i.replace(/^[-_]/, \"\");\n\tconst replaceTrailingTrash = (i) => i.replace(/[-_]$/, \"\");\n\tconst pascal = `${preserveWhitespace ? preWhite : \"\"}${capitalize(replaceTrailingTrash(replaceLeadingTrash(convertInteriorToCap(startingToCap(focus)))))}${preserveWhitespace ? postWhite : \"\"}`;\n\treturn pascal;\n}\n\n//#endregion\n//#region src/string-literals/casing/toSnakeCase.ts\n/**\n* **toSnakeCase**(str)\n*\n* Converts a string into `snake_case` while preserving literal strings.\n*\n* **Note:** _by default it also removes surrounding white space (if it exists) but it\n* can be preserved if you change the `preserveWhitespace` flag._\n*\n* **Related:** `toKebabCase`, `toCamelCase`, `toPascalCase`\n*/\nfunction toSnakeCase(input, preserveWhitespace = false) {\n\tconst [_, preWhite, focus, postWhite] = /^(\\s*)([\\s\\S]*?)(\\s*)$/.exec(input);\n\tconst convertInteriorSpace = (input$1) => input$1.replace(/\\s+/g, \"_\");\n\tconst convertDashes = (input$1) => input$1.replace(/-/g, \"_\");\n\tconst injectUnderscoreBeforeCaps = (input$1) => input$1.replace(/([A-Z])/g, \"_$1\");\n\tconst removeLeadingUnderscore = (input$1) => input$1.startsWith(\"_\") ? input$1.slice(1) : input$1;\n\treturn ((preserveWhitespace ? preWhite : \"\") + removeLeadingUnderscore(injectUnderscoreBeforeCaps(convertDashes(convertInteriorSpace(focus)))).toLowerCase() + (preserveWhitespace ? postWhite : \"\")).replace(/__/g, \"_\");\n}\n\n//#endregion\n//#region src/string-literals/casing/uncapitalize.ts\n/**\n* **uncapitalize**()\n*\n* Run time utility which _un_-capitalizes a word/string and preserves\n* string literal types.\n*/\nfunction uncapitalize(str) {\n\treturn `${str?.slice(0, 1).toLowerCase()}${str?.slice(1)}`;\n}\n\n//#endregion\n//#region src/string-literals/color/cssColor.ts\n/**\n* **cssColor**`(colorspace, v1, v2, v3, [opacity]) -> CssColorFn`\n*\n* Produces a string literal for a CSS v4 `color()` function.\n*/\nfunction cssColor(color, v1, v2, v3, opacity) {\n\treturn `color(${color} ${v1} ${v2} ${v3}${opacity ? ` / ${opacity}` : \"\"}`;\n}\n\n//#endregion\n//#region src/string-literals/color/twColor.ts\n/**\n* **twColor**`(color, luminosity)` => `oklch(...)`\n*\n* Provides a Tailwind Color using the `oklch` color\n* specification. The output is intended to put into\n* a CSS property.\n*\n* **Related:** `twColorRgb()`\n*/\nfunction twColor(color, luminosity) {\n\tconst lum = luminosity in TW_LUMINOSITY ? TW_LUMINOSITY[luminosity] : 0;\n\tconst chroma = luminosity in TW_CHROMA ? TW_CHROMA[luminosity] : 0;\n\tconst hue = TW_HUE[color];\n\treturn `oklch(${lum} ${chroma} ${hue})`;\n}\n\n//#endregion\n//#region src/string-literals/ensure/ensureLeading.ts\n/**\n* **ensureLeading**(content, strip)\n*\n* Runtime utility which ensures that last part of a string -- `content` -- has the\n* substring `ensure` at the end and adds it if not present.\n*/\nfunction ensureLeading(content, ensure) {\n\tconst output = String(content);\n\treturn output.startsWith(String(ensure)) ? content : isString(content) ? `${ensure}${content}` : Number(`${ensure}${content}`);\n}\n\n//#endregion\n//#region src/string-literals/ensure/ensureSurround.ts\n/**\n* **ensureSurround**(prefix, postfix) -> (input) -> `${prefix}${input}${postfix}`\n*\n* A higher order runtime utility which receives a prefix and postfix string\n* on it's first call. This returns a secondary function which will _ensure_\n* the given prefix/postfix's surround the input (without duplicating the\n* prefix/postfix characters if they were already there).\n*\n* **Related:** `surround()`\n*/\nfunction ensureSurround(prefix, postfix) {\n\tconst fn$1 = (input) => {\n\t\tlet result$1 = input;\n\t\tresult$1 = ensureLeading(result$1, prefix);\n\t\tresult$1 = ensureTrailing(result$1, postfix);\n\t\treturn result$1;\n\t};\n\treturn fn$1;\n}\n\n//#endregion\n//#region src/string-literals/ensure/ensureTrailing.ts\n/**\n* **ensureTrailing**(content, strip)\n*\n* Runtime utility which ensures that last part of a string -- `content` -- has the\n* substring `ensure` at the end and adds it if not present.\n*/\nfunction ensureTrailing(content, ensure) {\n\treturn content.endsWith(ensure) ? content : `${content}${ensure}`;\n}\n\n//#endregion\n//#region src/string-literals/getTypeSubtype.ts\n/**\n* **getTypeSubTyp**`(str)`\n*\n* Returns a two element tuple representing the `Type` and `SubType`\n* independantly.\n*\n* - can take either a \"blessed\" `TypeSubtype` as input or any string\n* literal of `${string}/${string}` but in the latter case if the\n* string does not pass the isTypeSubtype() test then it will throw\n* an error (InvalidTypeSubtype).\n*\n* **Related:** `TypeSubtype`, `isTypeSubtype`\n*/\nfunction getTypeSubtype(str) {\n\tif (isTypeSubtype(str)) {\n\t\tconst [t, st] = str.split(\"/\");\n\t\treturn [t, st];\n\t} else {\n\t\tconst err$1 = new Error(`An invalid Type/Subtype was passed into getTypeSubtype(${str})`);\n\t\terr$1.name = \"InvalidTypeSubtype\";\n\t\tthrow err$1;\n\t}\n}\n\n//#endregion\n//#region src/string-literals/ifLowercase.ts\n/**\n* **ifLowercaseChar**(ch)\n*\n* Tests whether a passed in character is lowercase and then uses the appropriate callback to\n* mutate the value.\n*/\nfunction ifLowercaseChar(ch, callbackForMatch, callbackForNoMatch) {\n\tif (ch.length !== 1) throw new Error(`call to ifUppercaseChar received ${ch.length} characters but is only valid when one character is passed in!`);\n\treturn LOWER_ALPHA_CHARS.includes(ch) ? callbackForMatch(ch) : callbackForNoMatch(ch);\n}\n\n//#endregion\n//#region src/string-literals/ifUppercase.ts\n/**\n* **ifUppercaseChar**(ch, callbackForMatch, callbackForNoMatch)\n*\n* Tests whether a passed in _character_ is an uppercase character and uses appropriate callback\n* to mutate the value.\n*\n* **Related:** `ifUppercase()`\n*/\nfunction ifUppercaseChar(ch, callbackForMatch, callbackForNoMatch) {\n\tif (ch.length !== 1) throw new Error(`Invalid string length passed to ifUppercaseChar(ch); this function requires a single character but ${ch.length} were received`);\n\treturn LOWER_ALPHA_CHARS.includes(ch) ? callbackForMatch(ch) : callbackForNoMatch(ch);\n}\n\n//#endregion\n//#region src/string-literals/infer.ts\n/**\n* Parse a given inference pattern like:\n*\n* `foo{{infer Foo}} and bar{{infer Bar as number}}`\n*\n* Return an array of alternating static segments and inferred segments:\n* E.g.:\n* [\n* { static: \"foo\", dynamic: false },\n* { varName: \"Foo\", type: \"string\", dynamic: true },\n* { static: \" and bar\", dynamic: false },\n* { varName: \"Bar\", type: \"number\", dynamic: true },\n* { static: \"\", dynamic: false }\n* ]\n*/\nfunction parseTemplate(template) {\n\tconst pattern = /\\{\\{\\s*infer\\s+([A-Za-z_]\\w*)\\s*(?:(?:extends|as)\\s+(string|number|boolean)\\s*)?\\}\\}/g;\n\tlet lastIndex = 0;\n\tlet match;\n\tconst segments = [];\n\twhile (match = pattern.exec(template)) {\n\t\tconst [fullMatch, varName, asType$1] = match;\n\t\tconst staticPart = template.slice(lastIndex, match.index);\n\t\tif (staticPart) segments.push({\n\t\t\tdynamic: false,\n\t\t\ttext: staticPart\n\t\t});\n\t\tsegments.push({\n\t\t\tdynamic: true,\n\t\t\tvarName,\n\t\t\ttype: asType$1 ? asType$1 : \"string\"\n\t\t});\n\t\tlastIndex = match.index + fullMatch.length;\n\t}\n\tconst remainder = template.slice(lastIndex);\n\tif (remainder) segments.push({\n\t\tdynamic: false,\n\t\ttext: remainder\n\t});\n\treturn segments;\n}\nfunction escapeRegex(str) {\n\treturn str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n/**\n* Convert segments to a regex pattern with named captures.\n*/\nfunction buildRegexPattern(segments) {\n\tlet regexStr = \"^\";\n\tfor (const seg of segments) if (!seg.dynamic) regexStr += escapeRegex(seg.text);\n\telse switch (seg.type) {\n\t\tcase \"string\":\n\t\t\tregexStr += \"(.*?)\";\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tregexStr += \"(\\\\d+)\";\n\t\t\tbreak;\n\t\tcase \"boolean\":\n\t\t\tregexStr += \"(true|false)\";\n\t\t\tbreak;\n\t}\n\tregexStr += \"$\";\n\treturn new RegExp(regexStr);\n}\nfunction convertValue(type, value) {\n\tswitch (type) {\n\t\tcase \"string\": return value;\n\t\tcase \"number\": return Number(value);\n\t\tcase \"boolean\": return value === \"true\";\n\t}\n}\n/**\n* Perform the matching operation given the template and the test string.\n*/\nfunction matchTemplate(template, test) {\n\tconst segments = parseTemplate(template);\n\tconst regex = buildRegexPattern(segments);\n\tconst match = regex.exec(test);\n\tif (!match) return false;\n\tlet captureIndex = 1;\n\tconst result$1 = {};\n\tfor (const seg of segments) if (seg.dynamic) {\n\t\tconst rawVal = match[captureIndex++];\n\t\tif (rawVal === void 0) return false;\n\t\tresult$1[seg.varName] = convertValue(seg.type, rawVal);\n\t}\n\treturn result$1;\n}\n/**\n* **infer**`(pattern)`\n*\n* Builds a interference function from a Typescript _string literal template_\n* where:\n*\n* - the template string accepts `{{ string }}` instead of `${string}`, etc.\n* for matching blocks of string characters\n* - you can also extract parts of the string with syntax of `{{ infer Foo }}`\n* - you can also look for _numeric_ or _boolean_ string literals:\n* - `{{ boolean }}`\n* - `{{ infer Bar as number }}`\n*\n* ```ts\n* const matcher = infer(\"{{ infer foo }}-bar\");\n* // \"foo\"\n* const {foo} = matcher(\"foo-bar\");\n* ```\n*/\nfunction infer(inference) {\n\treturn (test) => {\n\t\treturn matchTemplate(inference, test);\n\t};\n}\n\n//#endregion\n//#region src/string-literals/literal.ts\n/**\n* Takes an object as input --which has an `id` property and returns it as the same\n* run-time content but with the _type_ of the `id` property being forced to a literal type\n*/\nfunction idLiteral(o) {\n\treturn {\n\t\t...o,\n\t\tid: o.id\n\t};\n}\n/**\n* Takes an object as input --which has an `name` property and returns it as the same\n* run-time content but with the _type_ of the `name` property being forced to a literal type\n*/\nfunction nameLiteral(o) {\n\treturn o;\n}\n/**\n* Takes an object as input --which has an `kind` property and returns it as the same\n* run-time content but with the _type_ of the `kind` property being forced to a literal type\n*/\nfunction kindLiteral(o) {\n\treturn o;\n}\nfunction idTypeGuard(_o) {\n\treturn true;\n}\n/**\n* Takes an object as input and infers the narrow literal types of the property\n* values on the object.\n*\n* > Note: this addresses this [a known TS gap](https://github.com/microsoft/TypeScript/issues/30680).\n* > Hopefully at some point this will be addressed in the language.\n*/\nfunction literal(obj) {\n\treturn obj;\n}\n\n//#endregion\n//#region src/string-literals/lowercase.ts\n/**\n* **lowercase**()\n*\n* Run time utility which ensures all letters are lowercase while preserving\n* string literal types.\n*/\nfunction lowercase(str) {\n\treturn str.toLowerCase();\n}\n\n//#endregion\n//#region src/string-literals/narrow.ts\n/**\n* **narrow**(value)\n*\n* An identity function which provides the input in as narrow a form\n* as possible.\n*\n* - if only a single item is provided we will isolate it and treat\n* as it's own entity.\n* - so a scalar value such as `narrow(42)` results in the numeric literal `42`\n* not `[42]`\n*\n* ```ts\n* const s = narrow(\"foo\"); // \"foo\"\n* const n = narrow(42); // 42\n* // [\"foo\", \"bar\"]\n* const t1 = narrow([\"foo\", \"bar\"] as const);\n* const t2 = narrow([\"foo\",\"bar\"]);\n* const t3 = narrow(\"foo\", \"bar\");\n* // { foo: 1 }\n* const o1 = narrow({foo: 1});\n* // [ { foo: 1 } ]\n* const o2 = narrow([foo:1]);\n* ```\n*\n* **Related:** `defineObj`\n*/\nfunction narrow(...values) {\n\tif (values.length === 1) return values[0];\n\treturn values;\n}\n\n//#endregion\n//#region src/string-literals/nbsp.ts\n/** A Unicode non-breaking space */\nconst nbsp = \"\\xA0\";\n\n//#endregion\n//#region src/string-literals/pathJoin.ts\n/**\n* **pathJoin**`<T,U>(begin, ...rest)`\n*\n* Run time utility which joins two strings together with\n* the intent to have them be divided by a Posix `/` character\n* appropriate for Unix file paths and URLs.\n*\n* **note:** to support more than two paths being joined there\n* is now the ability to add a tuple of paths into the _rest_\n* parameter\n*/\nfunction pathJoin(...segments) {\n\tconst clean_path = segments.map((i) => stripTrailing(stripLeading(i, \"/\"), \"/\")).join(\"/\");\n\tconst original_path = segments.join(\"/\");\n\tconst pre = original_path.startsWith(\"/\") ? \"/\" : \"\";\n\tconst post = original_path.endsWith(\"/\") ? \"/\" : \"\";\n\treturn `${pre}${clean_path}${post}`;\n}\n\n//#endregion\n//#region src/string-literals/phone/asPhoneNumber.ts\nconst asPhoneFormat = () => `NOT IMPLEMENTED`;\n\n//#endregion\n//#region src/string-literals/phone/getPhoneCountryCode.ts\nfunction getPhoneCountryCode(phone) {\n\treturn phone.trim().startsWith(\"+\") || phone.trim().startsWith(\"00\") ? retainWhile(stripLeading(stripLeading(phone.trim(), \"+\"), \"00\"), ...NUMERIC_CHAR) : \"\";\n}\n\n//#endregion\n//#region src/string-literals/phone/removePhoneCountryCode.ts\nfunction removePhoneCountryCode(phone) {\n\tconst countryCode = getPhoneCountryCode(phone);\n\treturn countryCode !== \"\" ? stripLeading(stripLeading(phone.trim(), \"+\", \"00\"), countryCode).trim() : phone.trim();\n}\n\n//#endregion\n//#region src/string-literals/pluralize.ts\nconst isException = (word) => Object.keys(PLURAL_EXCEPTIONS).includes(word);\n/**\n* pluralize based on how word ends\n*/\nfunction endingIn(word, postfix) {\n\tswitch (postfix) {\n\t\tcase \"is\": return word.endsWith(postfix) ? `${word}es` : void 0;\n\t\tcase \"singular-noun\": return SINGULAR_NOUN_ENDINGS.some((i) => word.endsWith(i)) ? asChars(word).every((i) => [...ALPHA_CHARS].includes(i)) ? `${word}es` : void 0 : void 0;\n\t\tcase \"f\": return word.endsWith(\"f\") ? `${stripTrailing(word, \"f\")}ves` : word.endsWith(\"fe\") ? `${stripTrailing(word, \"fe\")}ves` : void 0;\n\t\tcase \"y\": return word.endsWith(\"y\") ? `${stripTrailing(word, \"y\")}ies` : void 0;\n\t\tdefault: throw new Error(`endingIn received \"${postfix}\" as a postfix but this ending is not known!`);\n\t}\n}\n/**\n* **pluralize(** word **)**\n*\n* Pluralizes the word using _language rules_ on pluralization for English as well as\n* leveraging many known exceptions to the linguistic rules.\n*\n* **Note:** _if the string passed into this function is a literal string then the **type**\n* will be pluralized along with the runtime value._\n*/\nfunction pluralize(word) {\n\tconst right = rightWhitespace(word);\n\tconst w = word.trimEnd();\n\tconst result$1 = isException(w) ? PLURAL_EXCEPTIONS[w] : endingIn(w, \"is\") || endingIn(w, \"singular-noun\") || endingIn(w, \"f\") || endingIn(w, \"y\") || `${w}s`;\n\treturn `${result$1}${right}`;\n}\n\n//#endregion\n//#region src/string-literals/replace.ts\n/**\n* **replace**`(content, find, replace)`\n*\n* A runtime utility which will replace _the first_ instance of `find` found in `content` with `replace`\n* while preserving string literal content where possible.\n*\n* **Related:** `replaceAll()`, `replaceAllFromTo()`\n*/\nfunction replace(content, find$1, replace$1) {\n\treturn content.replace(find$1, replace$1);\n}\n/**\n* **replaceAll**`(content, find, replace)`\n*\n* A runtime utility which will replace all instances of `find` found in `content` with `replace`\n* while preserving string literal content where possible.\n*\n* **Related:** `replace()`, `replaceAllFromTo()`\n*/\nfunction replaceAll(content, find$1, replace$1) {\n\treturn content.replaceAll(find$1, replace$1);\n}\n/**\n* **replaceAllFromTo**`(content, defn)`\n*\n* Provided some textual content and a key/value transformation definition:\n*\n* - will convert all instances of the _keys_ in the definition to the _values_\n*\n* **Related:** `replace()`, `replaceAll()`\n*/\nfunction replaceAllFromTo(content, fromTo) {\n\tlet output = content;\n\tfor (const key of Object.keys(fromTo)) output = replaceAll(output, key, fromTo[key]);\n\treturn output;\n}\n\n//#endregion\n//#region src/string-literals/rightWhitespace.ts\n/**\n* **rightWhitespace**`(content)`\n*\n* Extracts and returns the whitespace on the _right_ part of the string.\n*/\nfunction rightWhitespace(content) {\n\tconst trimmed = content.trimStart();\n\treturn retainAfterInclusive(trimmed, ...WHITESPACE_CHARS);\n}\n\n//#endregion\n//#region src/string-literals/split-and-join/nestedSplit.ts\nfunction splitProcessorMultiChar(content, split$1, nesting$1, policy, stack = [], waiting = \"\", result$1 = [], lastWasSplit = false) {\n\tif (content === \"\") {\n\t\tif (stack.length > 0) return err(`unbalanced/nested-split`, `The nesting stack was unbalanced, so the nested split can not be completed!`, { stack: toStringLiteral(stack) });\n\t\tif (lastWasSplit) return waiting === \"\" ? [...result$1, \"\"] : [\n\t\t\t...result$1,\n\t\t\twaiting,\n\t\t\t\"\"\n\t\t];\n\t\treturn waiting === \"\" ? result$1 : [...result$1, waiting];\n\t}\n\tconst currentChar = content[0];\n\tconst remainingContent = content.slice(1);\n\tif (stack.length === 0) {\n\t\tif (content.startsWith(split$1)) {\n\t\t\tconst afterSplit = content.slice(split$1.length);\n\t\t\tlet newWaiting = \"\";\n\t\t\tlet newResult = [...result$1];\n\t\t\tswitch (policy) {\n\t\t\t\tcase \"omit\":\n\t\t\t\t\tnewResult.push(waiting);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"inline\":\n\t\t\t\t\tnewResult.push(waiting, split$1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"before\":\n\t\t\t\t\tnewWaiting = split$1;\n\t\t\t\t\tif (waiting === \"\" && result$1.length === 0) newResult = [];\n\t\t\t\t\telse newResult.push(waiting);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"after\":\n\t\t\t\t\tnewResult.push(`${waiting}${split$1}`);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\treturn splitProcessorMultiChar(afterSplit, split$1, nesting$1, policy, stack, newWaiting, newResult, true);\n\t\t}\n\t\tif (isNestingStart(currentChar, nesting$1)) return splitProcessorMultiChar(remainingContent, split$1, nesting$1, policy, [...stack, currentChar], `${waiting}${currentChar}`, result$1, false);\n\t\treturn splitProcessorMultiChar(remainingContent, split$1, nesting$1, policy, stack, `${waiting}${currentChar}`, result$1, false);\n\t}\n\tif (isNestingEndMatch(currentChar, stack, nesting$1)) {\n\t\tconst newStack = [...stack].slice(0, -1);\n\t\treturn splitProcessorMultiChar(remainingContent, split$1, nesting$1, policy, newStack, `${waiting}${currentChar}`, result$1, false);\n\t}\n\tif (isNestingStart(currentChar, nesting$1)) return splitProcessorMultiChar(remainingContent, split$1, nesting$1, policy, [...stack, currentChar], `${waiting}${currentChar}`, result$1, false);\n\treturn splitProcessorMultiChar(remainingContent, split$1, nesting$1, policy, stack, `${waiting}${currentChar}`, result$1, false);\n}\nfunction splitProcessorMultiple(chars, split$1, nesting$1, policy, stack = [], waiting = \"\", result$1 = []) {\n\tif (chars.length === 0) {\n\t\tif (stack.length > 0) return err(`unbalanced/nested-split`, `The nesting stack was unbalanced, so the nested split can not be completed!`, { stack: toStringLiteral(stack) });\n\t\treturn [...result$1, waiting];\n\t}\n\tconst currentChar = chars[0];\n\tconst remainingChars = afterFirst(chars);\n\tif (split$1.includes(currentChar) && stack.length === 0) {\n\t\tlet newWaiting = \"\";\n\t\tlet newResult = [...result$1];\n\t\tswitch (policy) {\n\t\t\tcase \"omit\":\n\t\t\t\tnewResult.push(waiting);\n\t\t\t\tbreak;\n\t\t\tcase \"inline\":\n\t\t\t\tnewResult.push(waiting, currentChar);\n\t\t\t\tbreak;\n\t\t\tcase \"before\":\n\t\t\t\tnewWaiting = currentChar;\n\t\t\t\tif (waiting === \"\" && result$1.length === 0) newResult = [];\n\t\t\t\telse newResult.push(waiting);\n\t\t\t\tbreak;\n\t\t\tcase \"after\":\n\t\t\t\tnewResult.push(`${waiting}${currentChar}`);\n\t\t\t\tbreak;\n\t\t}\n\t\treturn splitProcessorMultiple(remainingChars, split$1, nesting$1, policy, stack, newWaiting, newResult);\n\t}\n\tif (isNestingEndMatch(currentChar, stack, nesting$1)) {\n\t\tconst newStack = [...stack].slice(0, -1);\n\t\treturn splitProcessorMultiple(remainingChars, split$1, nesting$1, policy, newStack, `${waiting}${currentChar}`, result$1);\n\t}\n\tif (isNestingStart(currentChar, nesting$1)) {\n\t\tconst newStack = [...stack, currentChar];\n\t\treturn splitProcessorMultiple(remainingChars, split$1, nesting$1, policy, newStack, `${waiting}${currentChar}`, result$1);\n\t}\n\treturn splitProcessorMultiple(remainingChars, split$1, nesting$1, policy, stack, `${waiting}${currentChar}`, result$1);\n}\nfunction splitProcessor(chars, split$1, nesting$1, policy, stack = [], waiting = \"\", result$1 = []) {\n\tif (chars.length === 0) {\n\t\tif (stack.length > 0) return err(`unbalanced/nested-split`, `The nesting stack was unbalanced, so the nested split can not be completed!`, { stack: toStringLiteral(stack) });\n\t\treturn [...result$1, waiting];\n\t}\n\tconst currentChar = chars[0];\n\tconst remainingChars = afterFirst(chars);\n\tif (currentChar === split$1 && stack.length === 0) {\n\t\tlet newWaiting = \"\";\n\t\tlet newResult = [...result$1];\n\t\tswitch (policy) {\n\t\t\tcase \"omit\":\n\t\t\t\tnewResult.push(waiting);\n\t\t\t\tbreak;\n\t\t\tcase \"inline\":\n\t\t\t\tnewResult.push(waiting, currentChar);\n\t\t\t\tbreak;\n\t\t\tcase \"before\":\n\t\t\t\tnewWaiting = currentChar;\n\t\t\t\tif (waiting === \"\" && result$1.length === 0) newResult = [];\n\t\t\t\telse newResult.push(waiting);\n\t\t\t\tbreak;\n\t\t\tcase \"after\":\n\t\t\t\tnewResult.push(`${waiting}${currentChar}`);\n\t\t\t\tbreak;\n\t\t}\n\t\treturn splitProcessor(remainingChars, split$1, nesting$1, policy, stack, newWaiting, newResult);\n\t}\n\tif (isNestingEndMatch(currentChar, stack, nesting$1)) {\n\t\tconst newStack = [...stack].slice(0, -1);\n\t\treturn splitProcessor(remainingChars, split$1, nesting$1, policy, newStack, `${waiting}${currentChar}`, result$1);\n\t}\n\tif (isNestingStart(currentChar, nesting$1)) {\n\t\tconst newStack = [...stack, currentChar];\n\t\treturn splitProcessor(remainingChars, split$1, nesting$1, policy, newStack, `${waiting}${currentChar}`, result$1);\n\t}\n\treturn splitProcessor(remainingChars, split$1, nesting$1, policy, stack, `${waiting}${currentChar}`, result$1);\n}\n/**\n* **nestedSplit**`(content, split, [nesting], [policy])`\n*\n* A run-time utility to split string's in a nested-aware manner.\n*\n* **Related:** `NestedSplit<..>`, `split()`, `nested()`\n*/\nfunction nestedSplit(content, split$1, nesting$1 = mutable(BRACKET_NESTING), policy = \"omit\") {\n\tconst config = isString(nesting$1) ? nesting$1 === \"default\" || nesting$1 === \"brackets\" ? BRACKET_NESTING : nesting$1 === \"quotes\" ? QUOTE_NESTING : Never : nesting$1;\n\tif (isNestingKeyValue(config) !== true && isNestingTuple(config)) return err(`invalid-nesting/nested-split`);\n\tif (isArray(split$1)) {\n\t\tconst result$2 = splitProcessorMultiple(asChars(content), asArray(split$1), config, policy);\n\t\treturn result$2;\n\t}\n\tif (typeof split$1 !== \"string\") return err(`invalid-nesting/nested-split`, `The split parameter must be a string when not provided as an array!`, {\n\t\tsplit: split$1,\n\t\tcontent\n\t});\n\tconst result$1 = split$1.length === 1 ? splitProcessor(asChars(content), split$1, config, policy) : splitProcessorMultiChar(content, split$1, config, policy);\n\treturn result$1;\n}\n\n//#endregion\n//#region src/initializers/addFnToProps.ts\n/**\n* **addPropsToFn**(fn, [clone]) => (props) => FnWithProps\n*\n* A higher order function which takes a dictionary object and\n* then a function and combines them into a single type.\n*/\nfunction addPropsToFn(fn$1, clone_fn) {\n\tconst localFn = clone_fn ? (...args) => fn$1(args) : fn$1;\n\treturn (obj) => {\n\t\tfor (const k in obj) localFn[k] = obj[k];\n\t\treturn localFn;\n\t};\n}\n\n//#endregion\n//#region src/initializers/addPropsToFn.ts\n/**\n* **addFnToProps**(props, [clone]) => (fn) => FnWithProps\n*\n* A higher order function which takes\n*\n* - `props` - key/value pairs to add to the a _future_ function\n* - `clone` - optionally state whether you want to use the future function's\n* type \"as is\" or you want to purify it's props with a clone (default is `true`)\n*\n* This is partially applied to reveal a function which takes a\n* function as input.\n*/\nfunction addFnToProps(props, _clone_fn) {\n\treturn (fn$1) => {\n\t\tconst localFn = (...args) => fn$1(args);\n\t\tfor (const k in props) localFn[k] = props[k];\n\t\treturn localFn;\n\t};\n}\n\n//#endregion\n//#region src/initializers/createConstant.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n\n//#endregion\n//#region src/initializers/createCssSelector.ts\n/**\n* **createCssSelector**`(opt) => (...select) => string`\n*\n* A higher order utility which:\n*\n* - on first call allows you to _narrow_ the types of selectors which are\n* available\n* - afterward it allows 1..M selectors to be chained (including pseudo\n* classes)\n*\n* Ensures correct syntax and aids in auto-completion of CSS props.\n*/\nfunction createCssSelector(_opt) {\n\treturn (...selectors) => {\n\t\treturn selectors.join(\" \");\n\t};\n}\n\n//#endregion\n//#region src/functions/fnProps.ts\n/**\n* **fnProps**`(fn)`\n*\n* Extracts any key/value pairs found along with the function.\n*/\nfunction fnProps(fn$1) {\n\tconst names = Object.getOwnPropertyNames(fn$1);\n\tconst props = {};\n\tfor (const key of names) if (![\"name\", \"length\"].includes(key)) props[key] = fn$1[key];\n\telse if (key === \"name\" && fn$1[key] !== \"\") props[key] = fn$1[key];\n\treturn props;\n}\n\n//#endregion\n//#region src/functions/identity.ts\nfunction identity(...values) {\n\treturn values.length === 1 ? values[0] : values.length === 0 ? void 0 : values;\n}\n\n//#endregion\n//#region src/initializers/createFnWithProps.ts\nfunction createFnWithProps(fn$1, props, _narrowing = false) {\n\tlet fnWithProps = fn$1;\n\tconst p = {\n\t\t...fnProps(fn$1),\n\t\t...props\n\t};\n\tfor (const prop of Object.keys(p)) if (prop !== \"name\") fnWithProps[prop] = p[prop];\n\tif (\"name\" in props) fnWithProps = Object.defineProperties(fnWithProps, { name: {\n\t\tvalue: p.name,\n\t\twritable: false\n\t} });\n\treturn fnWithProps;\n}\n\n//#endregion\n//#region src/initializers/defineObj.ts\n/**\n* **defineObj**(literal) -> (wide) -> object\n*\n* A runtime utility designed to create an object **value** who's\n* **type** is defined by the values in the object.\n*\n* The first call to this utility defines _narrow_ type literals, the\n* second call defines _wide_ types of the values passed in.\n*\n* ### Example\n* ```ts\n* // { foo: 1; bar: number; baz: number }\n* const fooBarBaz = defineObj({foo: 1})({bar: 2, baz: 3});\n* ```\n*\n* **Related:** `defineObject`\n*/\nfunction defineObj(literal$1 = {}) {\n\t/**\n\t* Add any key/value pairs which you want to have _wide_ types associated;\n\t* literal types are defined already and stated above.\n\t*/\n\treturn (wide$1 = {}) => {\n\t\tconst obj = literal$1 ? {\n\t\t\t...literal$1,\n\t\t\t...wide$1\n\t\t} : wide$1;\n\t\treturn obj;\n\t};\n}\n\n//#endregion\n//#region src/initializers/defineTuple.ts\n/**\n* **createTuple**(...values) -> (...values) -> Tuple\n*\n* Runtime utility to define a strongly typed tuple.\n*\n* - if you want to _widen_ certain elements in the Tuple you can use\n* the `widen()` type utility for those elements.\n*\n* ### Example\n* ```ts\n* // [ \"foo\", \"bar\", 42 ]\n* const foobar = defineTuple(\"foo\", \"bar\", 42)\n* // [ string, \"bar\", 42]\n* const foey = defineTuple(s => s.string(), \"bar\", 42)\n* ```\n*/\nfunction defineTuple(...values) {\n\treturn values;\n}\n\n//#endregion\n//#region src/lists/afterFirst.ts\nfunction afterFirst(list) {\n\treturn list.slice(1);\n}\n\n//#endregion\n//#region src/lists/asArray.ts\n/**\n* Ensures that any input passed in is passed back as an array:\n*\n* - if it was already an array than this just serves as an _identity_ function\n* - if it was not then it wraps the element into a one element array of the\n* given type\n*\n* Note: by default the _type_ of values will be intentionally widened so that the value \"abc\"\n* is of type `string` not the literal `abc`. If you want to keep literal types then\n* change the optional _widen_ parameter to _false_.\n*/\nfunction asArray(thing) {\n\treturn Array.isArray(thing) === true ? thing : typeof thing === \"undefined\" ? [] : [thing];\n}\n\n//#endregion\n//#region src/lists/createConverter.ts\n/**\n* **createConverter**(mapper)\n*\n* A runtime utility which allows for the creation of a function which\n* receives multiple wide types (string, number, boolean, object) and then transform it\n* based on the \"wide type\" but while retaining the potentially narrow values passed in.\n*\n* The number of wide types which the converter will accept is based on how it configured\n* as there are discrete functions which must be passed in for handling: strings, numbers,\n* booleans, and \"objects\" (aka, Record<string,any>).\n*\n* ```ts\n* // handles strings and numbers\n* const convert = createConverter({\n* string: s => `the string was ${s}`,\n* number: n => `the number was ${n}`,\n* });\n* ```\n*/\nfunction createConverter(mapper) {\n\treturn (input) => {\n\t\tlet result$1;\n\t\tif (isNothing(input)) result$1 = mapper.nothing ? mapper.nothing(input) : Never;\n\t\telse if (isDictionary(input)) result$1 = mapper.object ? mapper.object(input) : Never;\n\t\telse switch (typeof input) {\n\t\t\tcase \"string\":\n\t\t\t\tresult$1 = mapper.string ? mapper.string(input) : Never;\n\t\t\t\tbreak;\n\t\t\tcase \"number\":\n\t\t\tcase \"bigint\":\n\t\t\t\tresult$1 = mapper.number ? mapper.number(input) : Never;\n\t\t\t\tbreak;\n\t\t\tcase \"boolean\":\n\t\t\t\tresult$1 = mapper.boolean ? mapper.boolean(input) : Never;\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error(`Unhandled type: ${typeof input}`);\n\t\t}\n\t\treturn result$1;\n\t};\n}\n\n//#endregion\n//#region src/lists/createFixedLengthArray.ts\n/**\n* **createFixedLengthArray**`(content, quantity)`\n*\n* Provides a type strong array of duplicates of what was\n* passed in as `content`\n*/\nfunction createFixedLengthArray(content, quantity) {\n\treturn Array.from({ length: quantity }, () => content);\n}\n\n//#endregion\n//#region src/lists/every.ts\nfunction every(op, comparator) {\n\treturn (value) => {\n\t\tconst list = valuesOf(value);\n\t\treturn list.every((i) => filter(i, op, comparator));\n\t};\n}\n\n//#endregion\n//#region src/lists/filter.ts\nfunction filterFn(op, params) {\n\treturn (list) => {\n\t\treturn list.filter((item) => {\n\t\t\tconst comparator = compare(op, ...params);\n\t\t\tconst result$1 = comparator(item);\n\t\t\treturn result$1;\n\t\t});\n\t};\n}\n/**\n* **filter**`(op, ...[params])` => (comparator) => boolean\n*\n* A set of filter functions which provide strong (and narrow)\n* typing support.\n*\n* - The first call sets up the filter operation and returns a\n* function which can be used as a filter\n* - the second call (aka, the actual filter function) will accept\n* either a singular element or an array of elements.\n* - when passed a singular value it will return a boolean value\n* which is determined at design time where possible\n* - when passed a tuple then the filtered tuple is passed back\n* and is typed at designed time where possible\n*\n* **Related:** `retain()`\n*/\nfunction filter(op, ...params) {\n\treturn filterFn(op, params);\n}\n\n//#endregion\n//#region src/lists/filterEmpty.ts\n/**\n* Filters an array/tuple down to elements which are _not empty_ and\n* preserves as much of the type as possible.\n*/\nfunction filterEmpty(...val) {\n\treturn val.filter((i) => isNotEmpty(i));\n}\n\n//#endregion\n//#region src/lists/filterUndefined.ts\n/**\n* Filters an array/tuple down to elements which are _not undefined_ and\n* preserves as much of the type as possible.\n*/\nfunction filterUndefined(...val) {\n\treturn val.filter((i) => isDefined(i));\n}\n\n//#endregion\n//#region src/combinators/and.ts\n/**\n* Groups a number of \"logic functions\" together by combining their results using\n* the logical **AND** operator\n*/\nfunction and(...values) {\n\treturn values.every((i) => i === true);\n}\n\n//#endregion\n//#region src/combinators/compare.ts\nfunction handle_string(val, op, params) {\n\tswitch (op) {\n\t\tcase \"startsWith\": return (isString(val) || isNumber(val)) && isStringOrNumericArray(params) ? startsWith(...params)(val) : false;\n\t\tcase \"endsWith\": return (isString(val) || isNumber(val)) && isStringOrNumericArray(params) ? endsWith(...params)(val) : false;\n\t\tcase \"endsWithNumber\": return isString(val) ? val === \"\" ? false : asChars(val).length > 0 ? NUMERIC_CHAR.includes(last(asChars(val))) : false : false;\n\t\tcase \"startsWithNumber\": return isString(val) ? NUMERIC_CHAR.includes(firstChar(String(val))) : false;\n\t\tcase \"onlyNumbers\": return isString(val) ? val === \"\" ? false : asChars(val).every((c) => isNumberLike(c)) : false;\n\t\tcase \"onlyLetters\": return isString(val) ? isAlpha(val) : false;\n\t\tcase \"alphaNumeric\": return isString(val) ? asChars(val).every((c) => isNumberLike(c) || isAlpha(c)) : false;\n\t\tcase \"isTemplateLiteral\": return isStaticTemplate(val);\n\t}\n\treturn unset;\n}\nfunction handle_general(val, op, params) {\n\tswitch (op) {\n\t\tcase \"extends\": {\n\t\t\tif (!isInputToken(params[0])) return err(`compare/extends`, `A filter operation based on the 'extends' operation passed in a parameter which was not an InputToken so we are not able to convert this into a type!`);\n\t\t\treturn isNarrowable(val) && doesExtend(params[0])(val);\n\t\t}\n\t\tcase \"equals\": return val === params[0];\n\t\tcase \"false\": return isFalse(val);\n\t\tcase \"true\": return isTrue(val);\n\t\tcase \"truthy\": return not(isFalsy(val));\n\t\tcase \"falsy\": return isFalsy(val);\n\t\tcase \"equalsSome\": return isNarrowable(val) && isArray(params) && equalsSome(...params)(val);\n\t\tcase \"contains\": return isString(val) || isNumber(val) || isStringOrNumericArray(val) ? contains(val, params) : false;\n\t\tcase \"containsSome\": return (isString(val) || isNumber(val) || isNarrowableArray(val)) && isArray(params) ? params.some((i) => contains(val, i)) : false;\n\t\tcase \"containsAll\": return (isString(val) || isNumber(val) || isNarrowableArray(val)) && isArray(params) ? params.every((i) => contains(val, i)) : false;\n\t}\n\treturn unset;\n}\nfunction handle_numeric(val, op, params) {\n\tswitch (op) {\n\t\tcase \"greaterThan\": {\n\t\t\tif (!isNumberLike(params[0])) return err(`invalid-params/greaterThan`, `The 'greaterThan' operation requires a numeric parameter`, { params });\n\t\t\treturn Number(val) > Number(params[0]);\n\t\t}\n\t\tcase \"greaterThanOrEqual\": {\n\t\t\tif (!isNumberLike(params[0])) return err(`invalid-params/greaterThanOrEqual`, `The 'greaterThanOrEqual' operation requires a numeric parameter`, { params });\n\t\t\treturn Number(val) >= Number(params[0]);\n\t\t}\n\t\tcase \"lessThan\": {\n\t\t\tif (!isNumberLike(params[0])) return err(`invalid-params/lessThan`, `The 'lessThan' operation requires a numeric parameter`, { params });\n\t\t\treturn Number(val) < Number(params[0]);\n\t\t}\n\t\tcase \"lessThanOrEqual\": {\n\t\t\tif (!isNumberLike(params[0])) return err(`invalid-params/lessThanOrEqual`, `The 'lessThanOrEqual' operation requires a numeric parameter`, { params });\n\t\t\treturn Number(val) <= Number(params[0]);\n\t\t}\n\t\tcase \"betweenExclusively\": return isNumberLike(val) && isNumberLike(params[0]) && isNumberLike(params[1]) ? asNumber(val) > asNumber(params[0]) && asNumber(val) < asNumber(params[1]) : false;\n\t\tcase \"betweenInclusively\": {\n\t\t\tif (!isNumberLike(val)) return false;\n\t\t\tif (!isNumberLike(params[0]) || !isNumberLike(params[1])) return err(`invalid-params/betweenInclusively`, `The 'betweenInclusively' operation requires two numeric parameters`, { params });\n\t\t\tconst valNumIncl = Number(val);\n\t\t\tconst minIncl = Number(params[0]);\n\t\t\tconst maxIncl = Number(params[1]);\n\t\t\treturn valNumIncl >= minIncl && valNumIncl <= maxIncl;\n\t\t}\n\t}\n\treturn unset;\n}\nfunction handle_object(val, op, params) {\n\tswitch (op) {\n\t\tcase \"objectKeyGreaterThan\": {\n\t\t\tconst [key, compare$2] = params;\n\t\t\tif (!isObjectKey(key)) return err(\"invalid-key/objectKeyGreaterThan\", `The compare() function failed while processing the 'objectKeyGreaterThan' operation. The problem was that the 'key' parameter was not a valid Object key!`, {\n\t\t\t\tkey,\n\t\t\t\tcompare: compare$2\n\t\t\t});\n\t\t\tif (!isNumber(compare$2)) return err(\"invalid-param/objectKeyGreaterThan\", `The compare(${String(key)},PARAM) function expects a numeric value as the second parameter when using the objectKeyGreaterThan operation but got '${typeof compare$2}'`, {\n\t\t\t\tkey,\n\t\t\t\tcompare: compare$2\n\t\t\t});\n\t\t\treturn isDictionary(val) ? hasIndexOf(val, key) ? isNumberLike(val[key]) ? Number(val[key]) > compare$2 : false : false : err(`invalid-type/objectKeyGreaterThan`, `The comparison using the 'objectKeyGreaterThan' operation was unable to be performed because the value passed in was not an object!`, {\n\t\t\t\top,\n\t\t\t\tparams\n\t\t\t});\n\t\t}\n\t\tcase \"objectKeyGreaterThanOrEqual\": {\n\t\t\tconst [key, compare$2] = params;\n\t\t\treturn isDictionary(val) ? hasIndexOf(val, key) ? isNumberLike(val[key]) ? Number(val[key]) >= compare$2 : false : false : err(`invalid-type/objectKeyGreaterThanOrEqual`, `The comparison using the 'objectKeyGreaterThanOrEqual' operation was unable to be performed because the value passed in was not an object!`, {\n\t\t\t\top,\n\t\t\t\tparams\n\t\t\t});\n\t\t}\n\t\tcase \"objectKeyLessThan\": {\n\t\t\tconst [key, compare$2] = params;\n\t\t\treturn isDictionary(val) ? hasIndexOf(val, key) ? isNumberLike(val[key]) ? Number(val[key]) < compare$2 : false : false : err(`invalid-type/objectKeyLessThan`, `The comparison using the 'objectKeyLessThan' operation was unable to be performed because the value passed in was not an object!`, {\n\t\t\t\top,\n\t\t\t\tparams\n\t\t\t});\n\t\t}\n\t\tcase \"objectKeyLessThanOrEqual\": {\n\t\t\tconst [key, compare$2] = params;\n\t\t\treturn isDictionary(val) ? hasIndexOf(val, key) ? isNumberLike(val[key]) ? Number(val[key]) <= compare$2 : false : false : err(`invalid-type/objectKeyLessThanOrEqual`, `The comparison using the 'objectKeyLessThanOrEqual' operation was unable to be performed because the value passed in was not an object!`, {\n\t\t\t\top,\n\t\t\t\tparams\n\t\t\t});\n\t\t}\n\t\tcase \"objectKeyEquals\": {\n\t\t\tconst key = indexOf(params, 0);\n\t\t\tconst compare$2 = indexOf(params, 1);\n\t\t\treturn isDictionary(val) ? hasIndexOf(val, key) ? val[key] === compare$2 : false : err(`invalid-type/objectKeyEquals`, `The comparison using the 'objectKeyEquals' operation was unable to be performed because the value passed in was not an object!`, {\n\t\t\t\top,\n\t\t\t\tparams\n\t\t\t});\n\t\t}\n\t\tcase \"objectKeyExtends\": return err(`not-done`, `the 'objectKeyExtends' operation is not yet implemented in the runtime`);\n\t}\n\treturn unset;\n}\nfunction handle_datetime(val, op, params) {\n\tlet outcome = null;\n\tif ([\n\t\t\"sameDay\",\n\t\t\"sameMonth\",\n\t\t\"sameMonthYear\",\n\t\t\"sameYear\",\n\t\t\"after\",\n\t\t\"before\"\n\t].includes(op)) {\n\t\tif (!isDateLike(params[0])) return err(\"invalid-params/not-date-like\", `The '${op}' operation expects the first parameter to be a DateLike value but it was not!`);\n\t\tif (!isDateLike(val)) return err(\"invalid-value/not-date-like\", `The '${op}' operation expects the value to be a DateLike value but it was not!`);\n\t\tswitch (op) {\n\t\t\tcase \"sameDay\": {\n\t\t\t\tconst value = parseDate(val);\n\t\t\t\tconst comparator = parseDate(params[0]);\n\t\t\t\tif (isParsedDate(comparator) && isParsedDate(value)) {\n\t\t\t\t\toutcome = value.year === comparator.year && value.month === comparator.month && value.date === comparator.date;\n\t\t\t\t\treturn outcome;\n\t\t\t\t} else if (isError(value)) return err(\"invalid-value/compare\", `The sameDay operation got a value which was unable to be parsed into a date!`, {\n\t\t\t\t\top,\n\t\t\t\t\tparams,\n\t\t\t\t\tval\n\t\t\t\t});\n\t\t\t\telse if (isError(comparator)) return err(\"invalid-params/compare\", `The sameDay operation was configured with a parameter which was unable to be parsed into a date!`, {\n\t\t\t\t\top,\n\t\t\t\t\tparams,\n\t\t\t\t\tval\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"sameMonth\": {\n\t\t\t\tconst value = asDate(val);\n\t\t\t\tconst comparator = asDate(params[0]);\n\t\t\t\toutcome = value.getMonth() === comparator.getMonth();\n\t\t\t\treturn outcome;\n\t\t\t}\n\t\t\tcase \"sameMonthYear\": {\n\t\t\t\tconst value = asDate(val);\n\t\t\t\tconst comparator = asDate(params[0]);\n\t\t\t\toutcome = value.getMonth() === comparator.getMonth() && value.getFullYear() === comparator.getFullYear();\n\t\t\t\treturn outcome;\n\t\t\t}\n\t\t\tcase \"sameYear\": {\n\t\t\t\tconst value = asDate(val);\n\t\t\t\tconst comparator = asDate(params[0]);\n\t\t\t\toutcome = value.getFullYear() === comparator.getFullYear();\n\t\t\t\treturn outcome;\n\t\t\t}\n\t\t\tcase \"after\": return isDateLike(params[0]) ? isAfter(params[0])(val) : err(\"invalid-params/not-date-like\");\n\t\t\tcase \"before\": {\n\t\t\t\tconst value = asDateTime(val);\n\t\t\t\tconst comparator = asDateTime(params[0]);\n\t\t\t\toutcome = value.getTime() < comparator.getTime();\n\t\t\t\treturn outcome;\n\t\t\t}\n\t\t}\n\t}\n\treturn unset;\n}\nfunction handle_other(val, op, params) {\n\tswitch (op) {\n\t\tcase \"errors\": return val === null ? false : val === void 0 ? false : val instanceof Error;\n\t\tcase \"errorsOfType\":\n\t\t\tif (!(val instanceof Error)) return false;\n\t\t\tif (!params[0]) return err(`invalid-params/errorsOfType`, `The 'errorsOfType' operation requires a type parameter`, { params });\n\t\t\treturn \"type\" in val && val.type === params[0];\n\t\tcase \"hasLength\": if (isString(val)) return isNarrowableArray(params) && contains(params, val.length);\n\t\telse if (isNumber(val)) return isNarrowableArray(params) && contains(params, `${val}`.length);\n\t\telse if (isArray(val)) return isNarrowableArray(params) && contains(params, val.length);\n\t\telse return false;\n\t\tcase \"returnEquals\":\n\t\t\tif (!isFunction(val)) return false;\n\t\t\treturn err(`compare/runtime`, `The comparison type \"returnEquals\" can not be evaluated in the runtime system!`);\n\t\tcase \"returnExtends\":\n\t\t\tif (!isFunction(val)) return false;\n\t\t\treturn err(`compare/runtime`, `The comparison type \"returnExtends\" can not be evaluated in the runtime system!`);\n\t}\n\treturn unset;\n}\nfunction compareFn(op, params) {\n\tconst fn$1 = (val) => {\n\t\tif (isComparisonOperation(op)) {\n\t\t\tlet result$1 = unset;\n\t\t\tresult$1 = handle_string(val, op, params);\n\t\t\tif (isBoolean(result$1) || isError(result$1)) return result$1;\n\t\t\tresult$1 = handle_object(val, op, params);\n\t\t\tif (isBoolean(result$1) || isError(result$1)) return result$1;\n\t\t\tresult$1 = handle_numeric(val, op, params);\n\t\t\tif (isBoolean(result$1) || isError(result$1)) return result$1;\n\t\t\tresult$1 = handle_datetime(val, op, params);\n\t\t\tif (isBoolean(result$1) || isError(result$1)) return result$1;\n\t\t\tresult$1 = handle_other(val, op, params);\n\t\t\tif (isBoolean(result$1) || isError(result$1)) return result$1;\n\t\t\tresult$1 = handle_general(val, op, params);\n\t\t\tif (isBoolean(result$1) || isError(result$1)) return result$1;\n\t\t\treturn false;\n\t\t} else return err(`invalid-operation`, `The operation '${String(op)}' is not a valid operation for the compare utility!`, {\n\t\t\top,\n\t\t\tparams\n\t\t});\n\t};\n\tconst comparator = Object.assign(fn$1, {\n\t\tkind: \"comparator\",\n\t\top,\n\t\tparams,\n\t\tfn: fn$1\n\t});\n\treturn comparator;\n}\n/**\n* **compare**`(op, ...params) -> (val) -> boolean`\n*\n* A higher order function which can perform type-strong comparison\n* operations.\n*/\nfunction compare(op, ...params) {\n\tlet response;\n\tif (isComparisonOperation(op)) if (isValidComparisonParams(op, params)) response = compareFn(op, params);\n\telse response = err(\"invalid-params\", `The parameters for the operation '${isString(op) ? op : \"undefined\"}' are invalid!`, {\n\t\top,\n\t\tparams\n\t});\n\telse response = err(\"invalid-operation\", `The operation is not a recognized or valid comparison operation!`, {\n\t\top,\n\t\tparams\n\t});\n\treturn response;\n}\n\n//#endregion\n//#region src/combinators/contains.ts\nfunction contains(content, comparator) {\n\tconst valueMatches = (value, comp) => {\n\t\tif (value === comp) return true;\n\t\tif (comp === String) return typeof value === \"string\";\n\t\tif (comp === Number) return typeof value === \"number\";\n\t\tif (comp === Boolean) return typeof value === \"boolean\";\n\t\tif (comp === null) return value === null;\n\t\tif (comp === void 0) return value === void 0;\n\t\treturn false;\n\t};\n\tif (typeof content === \"string\" || typeof content === \"number\") {\n\t\tconst contentStr = String(content);\n\t\tif (Array.isArray(comparator)) return comparator.some((comp) => contentStr.includes(String(comp)));\n\t\treturn contentStr.includes(String(comparator));\n\t} else if (Array.isArray(content)) {\n\t\tif (Array.isArray(comparator)) return content.some((item) => comparator.some((comp) => valueMatches(item, comp)));\n\t\treturn content.some((item) => valueMatches(item, comparator));\n\t} else return false;\n}\n\n//#endregion\n//#region src/combinators/or.ts\n/**\n* **or**(conditions) -> boolean\n*\n* If you have a discrete list of boolean values then you can use this\n* function to perform a logical OR operation on them.\n*/\nfunction or(...conditions) {\n\tconst values = conditions.includes(true);\n\treturn values;\n}\n\n//#endregion\n//#region src/lists/find.ts\n/**\n* **find**(op, ...params) => (value) => el | undefined\n*\n* A higher order function that allows _finding_ an element in a list\n* while preserving any available type information.\n*/\nfunction find(op, ...params) {\n\treturn (list) => {\n\t\treturn list.find((i) => {\n\t\t\tconst comparator = compare(op, ...params);\n\t\t\treturn comparator(i);\n\t\t});\n\t};\n}\n\n//#endregion\n//#region src/lists/getEach.ts\n/**\n* **getEach**(list, dotPath, [options])\n*\n* Returns a specific _property_ (from an object) or _index_ (from an array) from a list\n* of items.\n*\n* - the options allow for a \"default value\" to be substituted for any _undefined_ or _never_ values\n* - errors in looking up dot path's will -- by default -- be removed as this is typically the desired\n* behavior but you can also choose from:\n* - `to-never`: converts _type_ to `never` but runtime maintains error message\n*/\nfunction getEach(list, dotPath) {\n\tconst result$1 = list.map((i) => dotPath === null ? i : typeof i === \"object\" ? get(i, dotPath) : Array.isArray(i) ? get(i, dotPath) : null).filter((i) => !isError(i));\n\treturn result$1;\n}\n\n//#endregion\n//#region src/lists/indexOf.ts\n/**\n* **indexOf**(val, index)\n*\n* A dereferencing utility which receives a **value** and an **index** and then\n* returns `value[idx]`.\n*\n* - If the _index_ is passed in as a `null` value then no dereferencing will be done\n* and it will simply pass back the _value_.\n* - If an array is passed in, you are allowed to use negative values to dereference\n* off the back of the array.\n*/\nfunction indexOf(val, index) {\n\tconst isNegative = isNumber(index) && index < 0;\n\tif (isNegative && !Array.isArray(val)) throw new Error(`The indexOf(val,idx) utility received a negative index value [${index}] but the value being de-references is not an array [${typeof val}]!`);\n\tif (isNegative && Array.isArray(val) && val.length < Math.abs(index)) throw new Error(`The indexOf(val,idx) utility received a negative index of ${index} but the length of the array passed in is only ${val.length}! This is not allowed.`);\n\t/** real index after considering negative indexing */\n\tconst idx = isNegative && Array.isArray(val) ? val.length + 1 - Math.abs(index) : index;\n\treturn index === null ? val : idx === null ? val : Array.isArray(val) ? Number(idx) in val ? val[Number(idx)] : err(\"invalid-index\", `attempt to index a numeric array with an invalid index: ${Number(idx)}`) : typeof val === \"object\" ? String(idx) in val ? val[String(idx)] : err(\"invalid-index\", `attempt to index a dictionary object with an invalid index: ${String(idx)}`) : err(\"invalid-container-type\", `Attempt to use indexOf() on an invalid container type: ${typeof val}`);\n}\n\n//#endregion\n//#region src/lists/intersection.ts\nfunction intersectWithOffset(a, b, deref) {\n\tconst aIndexable = a.every((i) => isIndexable(i));\n\tconst bIndexable = b.every((i) => isIndexable(i));\n\tif (!aIndexable || !bIndexable) if (!aIndexable) throw new Error(`The \"a\" array passed into intersect(a,b) was not fully composed of indexable properties: ${a.map((i) => typeof i).join(\", \")}`);\n\telse throw new Error(`The \"b\" array passed into intersect(a,b) was not fully composed of indexable properties: ${b.map((i) => typeof i).join(\", \")}`);\n\tconst aMatches = getEach(a, deref);\n\tconst bMatches = getEach(b, deref);\n\tconst sharedKeys$1 = ifNotNull(deref, (v) => [a.filter((i) => Array.from(bMatches).includes(get(i, v))), b.filter((i) => Array.from(aMatches).includes(get(i, v)))], () => a.filter((k) => b.includes(k)));\n\treturn sharedKeys$1;\n}\nfunction intersectNoOffset(a, b) {\n\treturn a.length < b.length ? a.filter((val) => b.includes(val)) : b.filter((val) => a.includes(val));\n}\n/**\n* **intersection**(a,b,[deref])\n*\n* A set operation which provides the _intersection_ between\n* between two array's `a` and `b`.\n*\n* - when passing in arrays, you may also pass in a _dereferencing_ property\n* which will be used for arrays of objects (or sub-arrays) so that the comparison\n* is done on the dereferenced value versus the value as a whole.\n*/\nfunction intersection(a, b, deref = null) {\n\treturn deref === null ? intersectNoOffset(a, b) : intersectWithOffset(a, b, deref);\n}\n\n//#endregion\n//#region src/lists/joinWith.ts\n/**\n* **join**(joinWith)(tuple) -> joined\n*\n* A higher order runtime utility which provides the ability to create\n* type-strong join's with an array of string and a joining string.\n*\n* ```ts\n* // \"hello world\"\n* const helloWorld = join(\"\")(\"hello\", \" \", \"world\");\n* // \"foo, bar, baz\"\n* const list = join(\", \")(\"foo\", \"bar\", \"baz\");\n* ```\n*/\nfunction joinWith(joinWith$1) {\n\t/**\n\t* add elements of the tuple you want to join\n\t*/\n\tconst fn$1 = (...tuple$1) => {\n\t\tconst tup = tuple$1;\n\t\treturn tup.join(joinWith$1);\n\t};\n\treturn fn$1;\n}\n\n//#endregion\n//#region src/lists/last.ts\nfunction last(list) {\n\treturn [...list].pop();\n}\n\n//#endregion\n//#region src/lists/logicalReturns.ts\nfunction logicalReturns(conditions) {\n\treturn conditions.map((c) => isBoolean(c) ? c : isFunction(c) ? c() : Never);\n}\n\n//#endregion\n//#region src/lists/pop.ts\n/**\n* **pop**`(list) -> [ remaining, popped ]`\n*\n* A utility which takes a list of items and returns a tuple of:\n*\n* - the remaining items after the pop operation\n* - the last item in the list\n*\n* All attempts are made to keep the types literals.\n*/\nfunction pop(list) {\n\tconst before$1 = [...list];\n\tconst last$1 = before$1.pop();\n\treturn [before$1, last$1];\n}\n\n//#endregion\n//#region src/lists/reverse.ts\n/**\n* **reverse**(list)\n*\n* Allows reversing the order of a readonly array and preserving the types.\n*/\nfunction reverse(list) {\n\treturn [...list].reverse();\n}\n\n//#endregion\n//#region src/lists/shift.ts\n/**\n* **shift**(list)\n*\n* Takes a list of elements and:\n*\n* - if the list is empty returns _undefined_\n* - otherwise returns the first element in the list\n*\n* **Note:** unlike using the builtin `ARR.shift()` method:\n*\n* - the source array is _never_ mutated\n* - you can shift off the first element of the readonly array as well a mutable one\n* (because the underlying array is _not_ mutated)\n* - in **many** cases, you should be using a queue of some sort with utils like\n* `createLifoQueue()` or `createFifoQueue()`\n*\n*/\nfunction shift(list) {\n\tlet rtn;\n\tif (isDefined(list)) {\n\t\trtn = list.length === 0 ? void 0 : list[0];\n\t\ttry {\n\t\t\tlist = list.slice(1);\n\t\t} catch {}\n\t} else rtn = void 0;\n\treturn rtn;\n}\n\n//#endregion\n//#region src/lists/slice.ts\n/**\n* **slice**`(list, start, [length])`\n*\n* Runtime utility to slice an array while maintaining strong\n* types.\n*\n* - There are mild variations from the Javascript slice syntax:\n* - the second (optional) parameter is \"length\" instead of index position\n* - this makes using it much easier in most cases\n* - you can use a _negative index_ for **start**\n*/\nfunction slice(list, start$1, length = void 0) {\n\tconst sliced = isNumber(length) ? list.slice(start$1, start$1 + length) : list.slice(start$1);\n\treturn sliced;\n}\n\n//#endregion\n//#region src/lists/sortByKey.ts\n/**\n* **sortByKey**`(items, key, config)`\n*\n* Sorts a tuple of Dictionary-based objects by the\n* specified key of these items.\n*\n* - you can pin to `start` or `end` of the tuple.\n*/\nfunction sortByKey(items, key, config) {\n\tconst o = {\n\t\tstart: config.start ? asArray(config.start) : [],\n\t\tend: config.end ? asArray(config.end) : []\n\t};\n\tconst start$1 = o.start.map((k) => {\n\t\treturn items.find((i) => i[key] === k);\n\t});\n\tconst end = o.end.map((k) => {\n\t\treturn items.find((i) => i[key] === k);\n\t});\n\tconst taken = [...start$1, ...end].map((i) => i[key]);\n\tconst remaining = items.filter((i) => !taken.includes(i[key]));\n\treturn [\n\t\t...start$1,\n\t\t...remaining,\n\t\t...end\n\t];\n}\n\n//#endregion\n//#region src/lists/unique.ts\n/**\n* **unique**\n*\n* Runtime utility which removes intersecting values from two sets and\n* provides a unique values contained in each set.\n*/\nfunction unique(...values) {\n\tconst u = [];\n\tfor (const i of values.flat()) if (!u.includes(i)) u.push(i);\n\treturn u;\n}\n\n//#endregion\n//#region src/string-literals/split-and-join/split.ts\nconst SEP = `sep:\\u00A0`;\nfunction splitUp(content, sep, policy = \"omit\") {\n\tlet inline$1 = content;\n\tfor (const s of sep) {\n\t\tconst pass = [];\n\t\tfor (const c of inline$1) if (c.includes(s) && !c.startsWith(SEP)) {\n\t\t\tconst splits = c.split(s);\n\t\t\tconst all = [];\n\t\t\tfor (const [idx, split$1] of splits.entries()) if (idx < splits.length - 1) all.push(split$1, `${SEP}${s}`);\n\t\t\telse all.push(split$1);\n\t\t\tpass.push(...all);\n\t\t} else pass.push(c);\n\t\tinline$1 = pass;\n\t}\n\tif (policy === \"omit\") inline$1 = inline$1.filter((i) => !i.startsWith(SEP));\n\telse if (policy === \"before\") {\n\t\tlet before$1 = [];\n\t\tfor (const el of inline$1) if (el.startsWith(SEP)) {\n\t\t\tconst val = el.replace(SEP, \"\");\n\t\t\tconst priorVal = last(before$1);\n\t\t\tbefore$1 = [...before$1.slice(0, -1), `${priorVal}${val}`];\n\t\t} else before$1.push(el);\n\t\tinline$1 = before$1;\n\t} else if (policy === \"inline\") inline$1 = inline$1.map((i) => i.startsWith(SEP) ? i.replace(SEP, \"\") : i);\n\treturn inline$1;\n}\nfunction omit(str, ...sep) {\n\treturn splitUp([str], sep, \"omit\");\n}\nfunction before(str, ...sep) {\n\treturn splitUp([str], sep, \"before\");\n}\nfunction inline(str, ...sep) {\n\treturn splitUp([str], sep, \"inline\");\n}\n/**\n* **split**`(str, sep)`\n*\n* Splits a string on a given separator while preserving string literal typing\n* when possible.\n*\n* - The default \"policy\" is to _omit_ the separator from the return tuple\n* - If you want to use the `before`, `after`, or `inline` policy types\n* they are available as properties of this function.\n*/\nconst split = createFnWithProps(omit, {\n\tomit,\n\tbefore,\n\tinline\n});\n\n//#endregion\n//#region src/string-literals/sub-string/retain/retainAfter.ts\n/**\n* **retainAfter**`(content, ...find)`\n*\n* Runtime utility which removes all characters in a given string _until_\n* it finds the first instance of a substring defined in **find** variable.\n*\n* ### Example\n* ```ts\n* // \"world\"\n* const world = retainAfter(\"hello world\", \" \");\n* ```\n*\n* **Related:** `retainAfterInclusive()`\n*/\nfunction retainAfter(content, ...find$1) {\n\tconst idx = Math.min(...find$1.map((i) => content.indexOf(i)).filter((i) => i > -1));\n\tconst min = Math.min(...find$1.map((i) => i.length));\n\tlet len = Math.max(...find$1.map((i) => i.length));\n\tif (min !== len) {\n\t\tif (!find$1.includes(content.slice(idx, len))) len = min;\n\t}\n\treturn idx && idx > 0 ? content.slice(idx + len) : \"\";\n}\n/**\n* **retainAfterInclusive**`(content, ...find)`\n*\n* Runtime utility which removes all characters in a given string _until_\n* it finds the first instance of a substring defined in **find** variable.\n*\n* ### Example\n* ```ts\n* // \" world\"\n* const world = retainAfter(\"hello world\", \" \");\n* ```\n*\n* **Related:** `retainAfter()`\n*/\nfunction retainAfterInclusive(content, ...find$1) {\n\tconst minFound = Math.min(...find$1.map((i) => content.indexOf(i)).filter((i) => i > -1));\n\treturn minFound > 0 ? content.slice(minFound) : \"\";\n}\n\n//#endregion\n//#region src/string-literals/sub-string/retain/retainChars.ts\n/**\n* **retainChars**`(content, ...retain)`\n*\n* Retains the characters from `retain[]` which are\n* found in `content` while discarding the rest.\n*\n* ```ts\n* // \"42\"\n* const num = retainChars(\"4foobar2\", ...NUMERIC_CHAR);\n* ```\n*\n* **Related:** `stripChars()`, `retainWhile()`, `retainUntil()`\n*/\nfunction retainChars(content, ...retain) {\n\tconst chars = asChars(content);\n\treturn chars.filter((c) => retain.includes(c)).join(\"\");\n}\n\n//#endregion\n//#region src/string-literals/sub-string/retain/retainUntil.ts\n/**\n* **retainUntil**`(content, ...find)`\n*\n* Runtime utility which retains all characters in a given string _until_\n* it finds the first instance of a substring defined in **find** variable.\n*\n* ### Example\n* ```ts\n* // \"hello\"\n* const world = retainUntil(\"hello world\", \" \");\n* ```\n*\n* **Related:** `retainUntilInclusive()`\n*/\nfunction retainUntil(content, ...find$1) {\n\tconst chars = asChars(content);\n\tlet idx = 0;\n\twhile (!find$1.includes(chars[idx]) && idx <= chars.length) idx = idx + 1;\n\treturn idx === 0 ? \"\" : content.slice(0, idx);\n}\n/**\n* **retainUntil**`(content, ...find)`\n*\n* Runtime utility which retains all characters in a given string _until_\n* it finds the first instance of a substring defined in **find** variable.\n*\n* ### Example\n* ```ts\n* // \"hello \"\n* const world = retainUntilInclusive(\"hello world\", \" \");\n* ```\n*\n* **Related:** `retainUntil()`\n*/\nfunction retainUntilInclusive(content, ...find$1) {\n\tconst chars = asChars(content);\n\tlet idx = 0;\n\twhile (!find$1.includes(chars[idx]) && idx <= chars.length) idx = idx + 1;\n\treturn idx === 0 ? content.slice(0, 1) : content.slice(0, idx + 1);\n}\n\n//#endregion\n//#region src/string-literals/sub-string/retain/retainUntil__Nested.ts\nfunction findIdx(chars, find$1, nesting$1, stack = [], result$1 = \"\", idx = 0) {\n\tconst f = asArray(find$1);\n\tif (chars.length === 0) if (stack.length > 0) return err(`unbalanced/retainUntil__Nested`, `The characters passed into retainUntil_Nested were unbalanced in the nesting!`, {\n\t\tfind: find$1,\n\t\tstack: toStringLiteral(stack),\n\t\tcontent: result$1\n\t});\n\telse return err(`not-found/retainUntil__Nested`, `The characters passed into retainUntil_Nested had a balanced nesting but the character '${find$1}' was never found at the root of the nesting stack!`, {\n\t\tfind: find$1,\n\t\tcontent: result$1\n\t});\n\tif (f.includes(chars[0]) && stack.length === 0) return idx;\n\tif (isNestingEndMatch(chars[0], stack, nesting$1) === true) {\n\t\tconst newStack = [...stack].slice(0, -1);\n\t\tif (chars[0] === find$1 && newStack.length === 0) return idx;\n\t\treturn findIdx(afterFirst(chars), find$1, nesting$1, newStack, `${result$1}${chars[0]}`, idx + 1);\n\t} else if (isNestingStart(chars[0], nesting$1) === true) {\n\t\tconst shouldLimitStack = isNestingTuple(nesting$1) && stack.length > 0;\n\t\treturn findIdx(afterFirst(chars), find$1, nesting$1, shouldLimitStack ? stack : [...stack, chars[0]], `${result$1}${chars[0]}`, idx + 1);\n\t} else return findIdx(afterFirst(chars), find$1, nesting$1, stack, `${result$1}${chars[0]}`, idx + 1);\n}\n/**\n* **retainUntil__Nested**(str, find, [incl], [nesting])\n*\n* Returns a sub-string of `str`, terminating with `find` character\n* which exists at the base of the nesting stack.\n*\n* - if the find character is _not found_ at the base of the nesting\n* stack an error will be returned.\n*/\nfunction retainUntil__Nested(str, find$1, incl = true, nesting$1 = mutable(BRACKET_NESTING)) {\n\tconst config = isString(nesting$1) ? nesting$1 === \"default\" || nesting$1 === \"brackets\" ? BRACKET_NESTING : nesting$1 === \"quotes\" ? QUOTE_NESTING : Never : nesting$1;\n\tconst idx = findIdx(asChars(str), find$1, config);\n\tif (isNumber(idx)) {\n\t\tconst endIdx = incl ? idx + 1 : idx;\n\t\treturn str.slice(0, endIdx);\n\t} else return idx;\n}\n\n//#endregion\n//#region src/string-literals/sub-string/retain/retainWhile.ts\n/**\n* **retainWhile**`(content, ...retain)`\n*\n* Retains the characters at the start of the string\n* so long as they are part of the character values\n* passed in for `retain[]`\n*/\nfunction retainWhile(content, ...retain) {\n\tconst stopIdx = asChars(content).findIndex((c) => !retain.includes(c));\n\treturn content.slice(0, stopIdx);\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripAfter.ts\n/**\n* **stripAfter**(content, find)\n*\n* Runtime utility which strips out all characters after (and including)\n* the \"find\" string while returning a strong type.\n*\n* ### Example\n* ```ts\n* // \"hello\"\n* const hello = stripAfter(\"hello world\", \" \");\n* ```\n*/\nfunction stripAfter(content, find$1) {\n\treturn content.split(find$1).shift();\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripAfterLast.ts\n/**\n* **stripAfterLast**(content, find)\n*\n* Runtime utility which strips out all characters after (and including)\n* the _last_ instance of the \"find\" string while returning a strong type.\n*\n* ### Example\n* ```ts\n* // \"hello world\"\n* const hello = stripAfterLast(\"hello world Joey\", \" \");\n* ```\n*/\nfunction stripAfterLast(content, find$1) {\n\tconst parts = split.inline(content, find$1);\n\treturn isArray(parts) ? parts.slice(0, -2).join(\"\") : Never;\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripBefore.ts\n/**\n* **stripBefore**(content, find)\n*\n* Runtime utility which strips out all characters Before (and including)\n* the \"find\" string while returning a strong type.\n*\n* ### Example\n* ```ts\n* // \"hello\"\n* const hello = stripBefore(\"hello world\", \" \");\n* ```\n*/\nfunction stripBefore(content, find$1) {\n\treturn content.split(find$1).slice(1).join(find$1);\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripChars.ts\n/**\n* **stripChars**`(content, ...strip)`\n*\n* Strips out characters found in `content`.\n*\n* **Related:** `retainChars()`\n*/\nfunction stripChars(content, ...strip) {\n\tconst chars = asChars(content);\n\treturn chars.filter((c) => !strip.includes(c)).join(\"\");\n}\n\n//#endregion\n//#region src/errors/createErrorCondition.ts\n/**\n* **createErrorConditionTemplate**`(kind,[msg],[utility]) => ErrorCondition`\n*\n* A higher order runtime utility for generating reusable `ErrorCondition`'s at\n* runtime.\n*/\nfunction createErrorCondition(kind, msg = \"\", utility = \"\") {\n\treturn {\n\t\t__kind: \"Error\",\n\t\tkind,\n\t\tmsg,\n\t\tutility\n\t};\n}\nfunction errCondition(kind, msg) {\n\treturn {\n\t\t__kind: \"Error\",\n\t\tkind,\n\t\tmsg\n\t};\n}\n\n//#endregion\n//#region src/errors/dropFirstStackFrame.ts\n/**\n* Drops the first stack frame line from `err.stack` in-place (if possible).\n* Returns the same error for chaining.\n*\n* Definition of “first frame”: the first line that *starts* with whitespace\n* then 'at ' (V8 / Node / most Chromium) OR matches Firefox style like\n* `functionName@file:line:col`.\n*/\nfunction dropFirstStackFrame(err$1) {\n\tif (!err$1 || typeof err$1.stack !== \"string\") return err$1;\n\tconst lines = err$1.stack.split(/\\r?\\n/);\n\tif (lines.length <= 1) return err$1;\n\tconst frameIdx = lines.findIndex((l, i) => {\n\t\tif (i === 0) return false;\n\t\tif (/^\\s*at\\s+/.test(l)) return true;\n\t\tif (/^[^\\s@]*@.+:\\d+:\\d+$/.test(l)) return true;\n\t\treturn false;\n\t});\n\tif (frameIdx > 0) {\n\t\tlines.splice(frameIdx, 1);\n\t\terr$1.stack = lines.join(\"\\n\");\n\t}\n\treturn err$1;\n}\n\n//#endregion\n//#region src/errors/err.ts\n/**\n* **typedError**(type, message, [ctx])\n*\n* @deprecated prefer using the provided `err(type,message,[ctx])`\n* function\n*/\nfunction typedError(type, message = \"\") {\n\tconst err$1 = new Error(message);\n\tconst [t, subType] = type.split(\"/\");\n\terr$1.__kind = \"Error\";\n\terr$1.type = toKebabCase(t);\n\terr$1.subType = toKebabCase(subType);\n\tif (message) err$1.message = message;\n\treturn err$1;\n}\nfunction err(type, message, ctx) {\n\tconst err$1 = new Error(message);\n\tconst [t, subType] = type.split(\"/\");\n\terr$1.type = toKebabCase(t);\n\terr$1.subType = toKebabCase(subType);\n\tif (message) err$1.message = message;\n\tif (ctx) for (const k of Object.keys(ctx)) err$1[k] = ctx[k];\n\treturn dropFirstStackFrame(err$1);\n}\n\n//#endregion\n//#region src/errors/keysWithError.ts\n/**\n* **keysWithError**`(obj)`\n*\n* Returns a list of _keys_ where the passed in object is\n*/\nfunction keysWithError(obj) {\n\tconst keys = Object.keys(obj).filter((k) => {\n\t\treturn isError(indexOf(obj, k));\n\t});\n\treturn keys;\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripLeading.ts\n/**\n* **stripLeading**(content, ...strip)\n*\n* Runtime utility which strips of a leading substring from the\n* primary content if it exists and leaves content unchanged otherwise.\n*/\nfunction stripLeading(content, ...strip) {\n\tif (!isString(content) && !isNumber(content)) return err(\"invalid-type/strip-leading\");\n\tlet output = String(content);\n\tfor (const s of strip) if (output.startsWith(String(s))) output = output.slice(String(s).length);\n\treturn isNumber(content) ? Number(output) : output;\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripSurround.ts\n/**\n* **stripSurround**`(chars) => (input) => _stripped_`\n*\n* A higher order function which allows you to define a string literal\n* stripping function for both the beginning and end of a string literal.\n*\n* ```ts\n* // utility which will strip all starting and ending brackets\n* const stripBrackets = stripSurround(\"(\", \")\", \"[\", \"]\", \"{\", \"}\");\n* // \" hello, world \"\n* const without = stripBrackets(\"[ hello, world ]\")\n* ```\n*\n* **Related**: `stripSurroundAndTrim`\n*/\nfunction stripSurround(...chars) {\n\treturn (input) => {\n\t\tlet output = String(input);\n\t\tfor (const s of chars) {\n\t\t\tif (output.startsWith(String(s))) output = output.slice(String(s).length);\n\t\t\tif (output.endsWith(String(s))) output = output.slice(0, -1 * String(s).length);\n\t\t}\n\t\treturn isNumber(input) ? Number(output) : output;\n\t};\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripTrailing.ts\n/**\n* **stripTrailing**(content, strip)\n*\n* Runtime utility which ensures that last part of a string has substring\n* removed if it exists and that strong typing is preserved.\n*/\nfunction stripTrailing(content, ...strip) {\n\tif (isUndefined(content)) return void 0;\n\tlet output = String(content);\n\tfor (const s of strip) if (output.endsWith(String(s))) output = output.slice(0, -1 * String(s).length);\n\treturn isNumber(content) ? Number(output) : output;\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripUntil.ts\n/**\n* **stripUntil**`(content, ...until)`\n*\n* Strips the characters at the start of the string\n* until a character specified in `until` is found.\n*/\nfunction stripUntil(content, ...until) {\n\tconst stopIdx = asChars(content).findIndex((c) => until.includes(c));\n\treturn content.slice(stopIdx);\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripWhile.ts\n/**\n* **stripWhile**`(content, ...until)`\n*\n* Strips the characters at the start of the string\n* while they match the characters found in `match`\n* parameter.\n*/\nfunction stripWhile(content, ...match) {\n\tconst stopIdx = asChars(content).findIndex((c) => !match.includes(c));\n\treturn content.slice(stopIdx);\n}\n\n//#endregion\n//#region src/string-literals/sub-string/trim/trim.ts\n/**\n* **trim**(input)\n*\n* A runtime utility which trims whitespace on both sides of a string\n* and returns a type-strong string literal where possible.\n*/\nfunction trim(input) {\n\treturn input.trim();\n}\n\n//#endregion\n//#region src/string-literals/sub-string/trim/trimEnd.ts\n/**\n* **trimEnd**(input)\n*\n* A runtime utility which trims whitespace on the tailing/right side of a string\n* and returns a type-strong string literal where possible.\n*/\nfunction trimEnd(input) {\n\treturn input.trimEnd();\n}\n\n//#endregion\n//#region src/string-literals/sub-string/trim/trimStart.ts\n/**\n* **trimStart**`(input)`\n*\n* A runtime utility which trims whitespace on the leading/left side\n* of a string and returns a type-strong string literal where possible.\n*/\nfunction trimStart(input) {\n\treturn input.trimStart();\n}\n\n//#endregion\n//#region src/string-literals/surround.ts\n/**\n* **surround**(prefix, postfix) -> (input) -> `${prefix}${input}${postfix}`\n*\n* A higher order runtime utility which receives a prefix and postfix string\n* on it's first call. This returns a secondary function which will _surround_\n* the given input with the prefix and postfix strings.\n*\n* **Related:** `ensureSurround()`\n*/\nfunction surround(prefix, postfix) {\n\treturn (input) => `${prefix}${input}${postfix}`;\n}\n\n//#endregion\n//#region src/string-literals/takeNumericCharacters.ts\n/**\n* **takeNumericCharacters**`(content)`\n*\n* Starts at the passed in content and extracts all numeric characters\n* in the string until a non-numeric value arrives.\n*/\nfunction takeNumericCharacters(content) {\n\tconst nonNumericIdx = asChars(content).findIndex((i) => !NUMERIC_CHAR.includes(i));\n\treturn content.slice(0, nonNumericIdx);\n}\n\n//#endregion\n//#region src/string-literals/toNumericArray.ts\nfunction toNumericArray(arr) {\n\treturn arr.map((i) => Number(i));\n}\n\n//#endregion\n//#region src/string-literals/toString.ts\n/**\n* **toString**()\n*\n* Runtime utility which converts any given type to a string while\n* preserving literal types.\n*/\nfunction toString(val) {\n\treturn String(val);\n}\n\n//#endregion\n//#region src/string-literals/truncate.ts\nfunction truncate(content, maxLength, ellipsis = false) {\n\tconst overLimit = content.length > maxLength;\n\treturn overLimit ? ellipsis ? `${content.slice(0, maxLength)}${typeof ellipsis === \"string\" ? ellipsis : \"...\"}` : content.slice(0, maxLength) : content;\n}\n\n//#endregion\n//#region src/string-literals/tuple.ts\n/**\n* **tuple**(value)\n*\n* Creates a discrete tuple.\n* ```ts\n* // [1,2,3]\n* const t1 = tuple(1,2,3);\n* const t2 = tuple([1,2,3]);\n* ```\n*/\nfunction tuple(...values) {\n\tconst arr = values.length === 1 ? values[0] : values;\n\treturn asArray(arr);\n}\n\n//#endregion\n//#region src/string-literals/unset.ts\n/**\n* the runtime token of the type `Unset` which is meant to delineate\n* a value which is in it's default state (aka, has not been set).\n*/\nconst unset = { kind: \"Unset\" };\n\n//#endregion\n//#region src/string-literals/widen.ts\n/**\n* **widen**(value)\n*\n* Runtime utility which takes any _type_ and ensures it's widened to a wide\n* type of passed in value is a literal.\n*/\nfunction widen(value) {\n\treturn value;\n}\n\n//#endregion\n//#region src/type-guards/datetime/isIsoMonthDate.ts\nfunction validate(d) {\n\tconst stripped = stripLeading(d, \"--\");\n\tconst [month, date] = [stripped.slice(0, 2), stripLeading(stripped.slice(3), \":\")];\n\tif (month === \"02\" || ISO_DATE_30.includes(date)) return ISO_DATE_30.includes(date);\n\treturn ISO_DATE_31.includes(date);\n}\n/**\n* **isIsoMonthDate**`(date) -> boolean`\n*\n* type-guard which validates whether this `date` is a valid ISO\n* Month/Date date (aka, a date that is year independent).\n*/\nfunction isIsoMonthDate(date) {\n\treturn isString(date) && date.startsWith(\"--\") && date.replace(/--\\d{2}-?[0-3]\\d/, \"\") === \"\" && validate(date);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isIsoTime.ts\nfunction isIsoExplicitTime(val) {\n\tif (isString(val)) {\n\t\tconst parts = stripLeading(stripAfter(val, \"Z\"), \"T\").split(/[:.]/).map((i) => Number(i));\n\t\treturn val.startsWith(\"T\") && val.includes(\":\") && val.split(\":\").length === 3 && parts[0] >= 0 && parts[0] <= 23 && parts[1] >= 0 && parts[1] <= 59;\n\t} else return false;\n}\nfunction isIsoImplicitTime(val) {\n\tif (isString(val)) {\n\t\tconst parts = stripAfter(val, \"Z\").split(/[:.]/).map((i) => Number(i));\n\t\treturn val.includes(\":\") && val.split(\":\").length === 3 && parts[0] >= 0 && parts[0] <= 23 && parts[1] >= 0 && parts[1] <= 59;\n\t} else return false;\n}\n/**\n* Type guard which validates that the passed in `val` is a valid ISO-8601 time.\n*/\nfunction isIsoTime(val) {\n\treturn isIsoExplicitTime(val) || isIsoImplicitTime(val);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isIsoYear.ts\n/**\n* A type guard which matches a valid ISO 8601 year (e.g., `YYYY`).\n*/\nfunction isIsoYear(val) {\n\treturn !!(isString(val) && val.length === 4 && isNumber(Number(val)) && Number(val) >= 0 && Number(val) <= 9999);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isIsoYearMonth.ts\n/**\n* type-guard which validates whether this\n*/\nfunction isIsoYearMonth(date) {\n\treturn isString(date) && date.startsWith(\"-\") && date.replace(/-\\d{4}-?[01]\\d/, \"\") === \"\";\n}\n\n//#endregion\n//#region src/type-guards/datetime/isLuxonDateTime.ts\n/**\n* Type guard which validates that the passed in `val` is a\n* [LuxonJS](https://moment.github.io/luxon/#/?id=luxon) DateTime object.\n*/\nfunction isLuxonDate(val) {\n\treturn isDictionary(val) && typeof val === \"object\" && val !== null && \"isValid\" in val && \"invalidReason\" in val && \"invalidExplanation\" in val && \"toISO\" in val && \"toFormat\" in val && \"toMillis\" in val && \"year\" in val && \"month\" in val && \"day\" in val && \"hour\" in val && \"minute\" in val && \"second\" in val && \"millisecond\" in val && \"zoneName\" in val && typeof val.isValid === \"boolean\" && typeof val.toISO === \"function\" && typeof val.zoneName === \"string\";\n}\n\n//#endregion\n//#region src/type-guards/datetime/isMoment.ts\n/**\n* **isMoment**`(val)`\n*\n* Type guard which validates that the passed in `val` is a\n* [MomentJS](https://momentjs.com/docs/) object.\n*/\nfunction isMoment(val) {\n\tif (val instanceof Date) return false;\n\treturn isDictionary(val) && typeof val.format === \"function\" && typeof val.year === \"function\" && typeof val.month === \"function\" && typeof val.date === \"function\" && \"_isAMomentObject\" in val && \"_isValid\" in val && typeof val.add === \"function\" && typeof val.subtract === \"function\" && typeof val.toISOString === \"function\" && typeof val.isValid === \"function\";\n}\n\n//#endregion\n//#region src/type-guards/datetime/isMonthAbbrev.ts\n/**\n* type guard which validates that `val` is the name of\n* a month.\n*\n* **Related:** `isMonthName()`\n*/\nfunction isMonthAbbrev(val) {\n\treturn isString(val) && MONTH_ABBR.includes(val);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isMonthName.ts\n/**\n* type guard which validates that `val` is the name of\n* a month.\n*\n* **Related:** `isMonthAbbrev()`\n*/\nfunction isMonthName(val) {\n\treturn isString(val) && MONTH_NAME.includes(val);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isParsedDate.ts\nfunction isParsedDate(val) {\n\treturn isDictionary(val) && \"dateType\" in val;\n}\n\n//#endregion\n//#region src/type-guards/datetime/isTemporalDate.ts\nfunction isTemporalDate(val) {\n\treturn typeof isDictionary(val) && !!Object.prototype.toString.call(val).startsWith(\"[object Temporal.\");\n}\n\n//#endregion\n//#region src/type-guards/datetime/parsing-typeguards.ts\n/**\n* type-guard based on whether `str` is a `FourDigitYear`\n*/\nfunction isFourDigitYear(str) {\n\tconst re = /^(-?\\d{4})$/;\n\treturn isString(str) && re.test(str);\n}\n/**\n* Type-guard for TwoDigitHour\n* Matches \"00\"–\"09\", \"10\"–\"19\", or \"20\"–\"23\"\n*/\nfunction isTwoDigitHour(s) {\n\treturn isString(s) && /^(?:0\\d|1\\d|2[0-3])$/.test(s);\n}\n/**\n* Type-guard for TwoDigitMinute\n*/\nfunction isTwoDigitMinute(s) {\n\treturn isString(s) && /^(?:0\\d|1\\d|2\\d|3\\d|4\\d|5\\d)$/.test(s);\n}\n/**\n* Type-guard for isTwoDigitSecond\n*/\nfunction isTwoDigitSecond(s) {\n\treturn isString(s) && /^(?:0\\d|1\\d|2\\d|3\\d|4\\d|5\\d)$/.test(s);\n}\nfunction isThreeDigitMillisecond(s) {\n\treturn isString(s) && /^\\d\\d\\d$/.test(s);\n}\n/**\n* **isTwoDigitMonth**`(val)`\n*\n* Typeguard that validates that `val` is a valid `TwoDigitMonth`.\n*\n* - the returned type will be a _branded_ variant of the string literal\n* - if you want to just validate but keep the _type_ as a normal string\n* you can pass in `false` to the `branded` variable.\n*/\nfunction isTwoDigitMonth(val, _branded = true) {\n\treturn isString(val) && /^(?:0[1-9]|1[0-2])$/.test(val);\n}\n/**\n* TwoDigitDate = \"01\"–\"09\", \"10\"–\"29\", or \"30\"–\"31\"\n*/\nfunction isTwoDigitDate(s) {\n\treturn isString(s) && /^(?:0[1-9]|[12]\\d|3[01])$/.test(s);\n}\n/**\n* MinimalDigitDate = \"1\"–\"9\", or \"10\"–\"29\", or \"30\"–\"31\"\n*/\nfunction isMinimalDigitDate(s) {\n\treturn isString(s) && /^(?:[1-9]|[12]\\d|3[01])$/.test(s);\n}\n/**\n*\n* Valid formats include:\n* - \"Z\"\n* - (\"+\"|\"-\") + TwoDigitHour\n* - (\"+\"|\"-\") + TwoDigitHour + TwoDigitMinute\n* - (\"+\"|\"-\") + TwoDigitHour + \":\" + TwoDigitMinute\n*\n* Where:\n* - `TwoDigitHour`: 00–23\n* - `TwoDigitMinute`: 00–59\n*/\nfunction isTimezoneOffset(s) {\n\treturn isString(s) && /^(?:Z|[+\\-](?:0?\\d|1\\d|2[0-3])(?::?[0-5]\\d)?)$/.test(s);\n}\n\n//#endregion\n//#region src/type-guards/dictionary/hasOnlyStringKeys.ts\n/**\n* type-guard which validates that `val` is an object with **only** strings\n* as a key.\n*\n* **Related:** `hasOnlySymbolKeys()`\n*/\nfunction hasOnlyStringKeys(val) {\n\treturn isDictionary(val) && Object.getOwnPropertySymbols(val).length === 0;\n}\n\n//#endregion\n//#region src/type-guards/dictionary/hasOnlyStringValues.ts\n/**\n* type-guard which validates that `val` is an object with **only** string\n* values.\n*\n* **Related:** `hasOnlyStringKeys()`\n*/\nfunction hasOnlyStringValues(val) {\n\treturn isDictionary(val) && Object.keys(val).every((i) => isString(i));\n}\n\n//#endregion\n//#region src/type-guards/dictionary/hasOnlySymbolKeys.ts\n/**\n* type-guard which validates that `val` is an object with **only** symbol\n* as a key.\n*\n* **Related:** `hasOnlySymbolKeys()`, `hasOnlyStringKeys()`\n*/\nfunction hasOnlySymbolKeys(val) {\n\treturn isDictionary(val) && Object.getOwnPropertySymbols(val).length > 0 && Object.keys(val).length === 0;\n}\n\n//#endregion\n//#region src/type-guards/dictionary/hasSymbolKeys.ts\n/**\n* type-guard which validates that `val` is an object with at least one symbol\n* as a key.\n*\n* **Related:** `hasOnlySymbolKeys()`, `hasOnlyStringKeys()`\n*/\nfunction hasSymbolKeys(val) {\n\treturn isDictionary(val) && Object.getOwnPropertySymbols(val).length > 0;\n}\n\n//#endregion\n//#region src/type-guards/finance/CreditCards.ts\nfunction isVisa(val) {\n\tif (isString(val) && val.startsWith(\"4\")) {\n\t\tconst parts = val.split(\" \");\n\t\treturn parts.length === 4 && parts.every((i) => isNumberLike(i) && i.length === 4);\n\t}\n\treturn false;\n}\nfunction isMastercard(val) {\n\tif (isString(val) && val.startsWith(\"4\")) {\n\t\tconst parts = val.split(\" \");\n\t\treturn parts.length === 4 && parts.every((i) => isNumberLike(i) && i.length === 4) && [\n\t\t\t\"51\",\n\t\t\t\"55\",\n\t\t\t\"22\",\n\t\t\t\"23\",\n\t\t\t\"24\",\n\t\t\t\"25\",\n\t\t\t\"26\",\n\t\t\t\"27\"\n\t\t].some((i) => val.startsWith(i));\n\t}\n\treturn false;\n}\nfunction isVisaMastercard(val) {\n\treturn isVisa(val) || isMastercard(val);\n}\nfunction isAmericanExpress(val) {\n\tif (isString(val)) {\n\t\tconst parts = val.split(\" \");\n\t\treturn parts.length === 3 && parts.every((i) => isNumberLike(i) && parts[0].length === 4 && parts[1].length === 6);\n\t}\n\treturn false;\n}\nfunction isCreditCard(val) {\n\treturn isVisaMastercard(val) || isAmericanExpress(val);\n}\n/**\n* Given a card's long number, attempt to match this to a card type from:\n*\n* - Visa, Mastercard\n* - American Express\n* - Discover\n* - JCB\n* - Diners Club\n* - China UnionPay\n* - Maestro\n* - Solo\n*/\nfunction cardType(cardNumber) {\n\tconst cleanedNumber = String(cardNumber).replace(/\\D/g, \"\");\n\tconst length = cleanedNumber.length;\n\tif (!isValidLength(length)) return \"invalid\";\n\tif (!luhnCheck(cleanedNumber)) return \"invalid\";\n\tconst cardTypes = [\n\t\t{\n\t\t\tname: \"Visa\",\n\t\t\tlengths: [16],\n\t\t\tprefixes: [/^4/]\n\t\t},\n\t\t{\n\t\t\tname: \"Mastercard\",\n\t\t\tlengths: [16],\n\t\t\tprefixes: [/^(51|52|53|54|55|222[1-9]|22[3-9]\\d|2[3-6]\\d{2}|27[01]\\d|2720)/]\n\t\t},\n\t\t{\n\t\t\tname: \"American Express\",\n\t\t\tlengths: [15],\n\t\t\tprefixes: [/^3[47]/]\n\t\t},\n\t\t{\n\t\t\tname: \"Discover\",\n\t\t\tlengths: [16],\n\t\t\tprefixes: [/^(6011|622(12[6-9]|1[3-9]\\d|2[0-4]\\d|25\\d|6[4-9]|7[0-4]|8[0-4]|9\\d)|64[4-9]|65)/]\n\t\t},\n\t\t{\n\t\t\tname: \"JCB\",\n\t\t\tlengths: [16],\n\t\t\tprefixes: [/^(35|2131|1800)/]\n\t\t},\n\t\t{\n\t\t\tname: \"Diners Club\",\n\t\t\tlengths: [14, 16],\n\t\t\tprefixes: [/^(30[0-5]|36|38)/]\n\t\t},\n\t\t{\n\t\t\tname: \"China UnionPay\",\n\t\t\tlengths: [\n\t\t\t\t16,\n\t\t\t\t17,\n\t\t\t\t18,\n\t\t\t\t19\n\t\t\t],\n\t\t\tprefixes: [/^(62|88)/]\n\t\t},\n\t\t{\n\t\t\tname: \"Maestro\",\n\t\t\tlengths: [\n\t\t\t\t12,\n\t\t\t\t13,\n\t\t\t\t14,\n\t\t\t\t15,\n\t\t\t\t16,\n\t\t\t\t17,\n\t\t\t\t18,\n\t\t\t\t19\n\t\t\t],\n\t\t\tprefixes: [/^(5018|5020|5038|6304)/]\n\t\t},\n\t\t{\n\t\t\tname: \"Solo\",\n\t\t\tlengths: [\n\t\t\t\t16,\n\t\t\t\t18,\n\t\t\t\t19\n\t\t\t],\n\t\t\tprefixes: [/^(6334|6767)/]\n\t\t}\n\t];\n\tfor (const type of cardTypes) if (type.lengths.includes(length)) {\n\t\tfor (const prefix of type.prefixes) if (prefix.test(cleanedNumber)) return type.name;\n\t}\n\treturn \"invalid\";\n}\nfunction isValidLength(length) {\n\tconst validLengths = [\n\t\t13,\n\t\t14,\n\t\t15,\n\t\t16,\n\t\t17,\n\t\t18,\n\t\t19\n\t];\n\treturn validLengths.includes(length);\n}\nfunction luhnCheck(num) {\n\tlet sum = 0;\n\tlet double = false;\n\tfor (let i = num.length - 1; i >= 0; i--) {\n\t\tlet n = Number.parseInt(num.charAt(i), 10);\n\t\tif (double) {\n\t\t\tn *= 2;\n\t\t\tif (n > 9) n -= 9;\n\t\t}\n\t\tsum += n;\n\t\tdouble = !double;\n\t}\n\treturn sum % 10 === 0;\n}\n\n//#endregion\n//#region src/type-guards/geo/isIso3166Alpha2.ts\n/**\n* Type guard which checks whether `val` is a 2 character country\n* representation found in the ISO3166-1 standard.\n*/\nfunction isIso3166Alpha2(val) {\n\tconst codes = ISO3166_1.map((i) => i.alpha2);\n\treturn isString(val) && codes.includes(val);\n}\n/**\n* Type guard which checks whether `val` is a 2 character country\n* representation found in the ISO3166-1 standard.\n*\n* **Alias:** `isIso3166Alpha2`\n*/\nfunction isCountryCode2(val) {\n\tconst codes = ISO3166_1.map((i) => i.alpha2);\n\treturn isString(val) && codes.includes(val);\n}\n/**\n* Type guard which checks whether `val` is a 3 character country\n* representation found in the ISO3166-1 standard.\n*/\nfunction isIso3166Alpha3(val) {\n\tconst codes = ISO3166_1.map((i) => i.alpha3);\n\treturn isString(val) && codes.includes(val);\n}\n/**\n* Type guard which checks whether `val` is a 3 character country\n* representation found in the ISO3166-1 standard.\n*\n* **Alias:** `isIso3166Alpha3`\n*/\nfunction isCountryCode3(val) {\n\tconst codes = ISO3166_1.map((i) => i.alpha3);\n\treturn isString(val) && codes.includes(val);\n}\n/**\n* Type guard which checks whether `val` is a 3 character country\n* representation found in the ISO3166-1 standard.\n*/\nfunction isIso3166CountryCode(val) {\n\tconst codes = ISO3166_1.map((i) => i.countryCode);\n\treturn isString(val) && codes.includes(val);\n}\n/**\n* Type guard which checks whether `val` is a 2 or 3 character country\n* abbreviation found in the ISO3166-1 standard.\n*/\nfunction isCountryAbbrev(val) {\n\treturn isCountryCode2(val) || isCountryCode3(val);\n}\n/**\n* Type guard which checks whether `val` is a valid ISO3166-1 country name.\n*/\nfunction isIso3166CountryName(val) {\n\tconst codes = ISO3166_1.map((i) => i.name);\n\treturn isString(val) && codes.includes(val);\n}\n/**\n* Type guard which checks whether `val` is a valid ISO3166-1 country name.\n*\n* **Alias:** `isIso3166CountryName`\n*/\nfunction isCountryName(val) {\n\tconst codes = ISO3166_1.map((i) => i.name);\n\treturn isString(val) && codes.includes(val);\n}\n\n//#endregion\n//#region src/type-guards/geo/isUsState.ts\nconst ABBREV = US_STATE_LOOKUP.map((i) => i.abbrev);\nconst NAME = US_STATE_LOOKUP.map((i) => i.name);\nfunction isUsStateAbbreviation(val) {\n\treturn isString(val) && ABBREV.includes(val);\n}\nfunction isUsStateName(val) {\n\treturn isString(val) && NAME.includes(val);\n}\n\n//#endregion\n//#region src/type-guards/geo/isZipCode.ts\n/**\n* Type guard which validates that passed in value is a US ZipCode\n* in the `Zip5` format.\n*\n* **Related:** `isZipCode()`, `isZipPlus4()`\n*/\nfunction isZipCode5(val) {\n\tif (isNumber(val)) return isZipCode5(`${val}`);\n\treturn isString(val) && val.trim().length === 5 && isNumberLike(val.trim());\n}\n/**\n* Type guard which validates that passed in value is a US ZipCode\n* in the `ZipPlus4` format.\n*\n* **Related:** `isZipCode()`, `isZipCode5()`\n*/\nfunction isZipPlus4(val) {\n\tif (isString(val)) {\n\t\tconst first = retainWhile(val.trim(), ...NUMERIC_CHAR);\n\t\tconst next = stripChars(val.trim().replace(first, \"\").trim(), \"-\");\n\t\treturn first.length === 5 && next.length === 4 && isNumberLike(next);\n\t}\n\treturn false;\n}\n/**\n* Type guard which validates that passed in value is a US ZipCode\n* in either the `Zip5` or `ZipPlus4` format.\n*\n* **Related:** `isZipCode5()`, `isZipPlus4()`\n*/\nfunction isZipCode(val) {\n\treturn isZipCode5(val) || isZipPlus4(val);\n}\n\n//#endregion\n//#region src/type-guards/hasDefaultValue.ts\n/**\n* **hasDefaultValue**(value)\n*\n* Type guard which helps to eliminate the use case where a value which _might_ be a\n* `DefaultValue` is _not_ in this initial state and therefore indicating that the value\n* **is** in fact a default value.\n*\n* Probably a better way to phrase this. :)\n*/\nfunction hasDefaultValue(value) {\n\tconst noDefault = isSpecificConstant(\"no-default-value\");\n\treturn !noDefault(value);\n}\n\n//#endregion\n//#region src/type-guards/hasIndexOf.ts\n/**\n* **hasIndexOf**(value, idx) => boolean\n*\n* A type guard which determines whether container passed in has\n* an explicit index.\n*/\nfunction hasIndexOf(value, idx) {\n\tconst result$1 = isDictionary(value) ? String(idx) in value : Array.isArray(value) ? Number(idx) in value : false;\n\treturn isError(result$1) ? false : result$1;\n}\n\n//#endregion\n//#region src/type-guards/hasKeys.ts\nfunction hasKeys(...keys) {\n\tif (keys.length === 0) return Never;\n\treturn (val) => {\n\t\tconst iterable = isDictionary(keys[0]) && keys.length === 1 ? keysOf(keys[0]) : keys;\n\t\treturn !!(isDictionary(val) && iterable.every((k) => {\n\t\t\tif (!indexOf(val, k)) return false;\n\t\t\tif (isDictionary(keys[0]) && keys.length === 1) {\n\t\t\t\tconst v = val[k];\n\t\t\t\tconst comparable = keys[0][k];\n\t\t\t\tif (isSameTypeOf(v)(comparable)) return true;\n\t\t\t\telse return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}));\n\t};\n}\n\n//#endregion\n//#region src/type-guards/hasNonStringKeys.ts\n/**\n* Type guard which checks if the value passed in is an object which _has_ non-string\n* keys.\n*/\nfunction hasNonStringKeys(val) {\n\treturn isDictionary(val) && Object.getOwnPropertySymbols(val).length > 0;\n}\n\n//#endregion\n//#region src/type-guards/hasWhitespace.ts\n/**\n* **hasWhiteSpace**`(val)`\n*\n* Type guard which checks whether a string has a any whitespace characters in it\n*/\nfunction hasWhiteSpace(val) {\n\treturn isString(val) && asChars(val).some((c) => WHITESPACE_CHARS.includes(c));\n}\n\n//#endregion\n//#region src/type-guards/higher-order/endsWith.ts\n/**\n* **endsWith**(endingWith) => (val) -> true | false\n*\n* A higher-level builder pattern which is used to create a boolean\n* operator which indicates whether the given function ends with any\n* of the provided `endingWith` string literal values.\n*/\nfunction endsWithTypeguard(...endingWith) {\n\treturn (val) => {\n\t\treturn isString(val) || isNumber(val) ? endingWith.some((i) => String(i) !== \"\" && String(val).endsWith(String(i))) : false;\n\t};\n}\nfunction endsWith(...endingWith) {\n\treturn (val) => {\n\t\treturn isString(val) || isNumber(val) ? endingWith.some((i) => String(i) !== \"\" && String(val).endsWith(String(i))) : false;\n\t};\n}\n\n//#endregion\n//#region src/type-guards/higher-order/isEqual.ts\nfunction compare$1(base) {\n\treturn (value) => {\n\t\treturn base.includes(value);\n\t};\n}\n/**\n* **isEqual**(compareTo)(value)\n*\n* Higher order type guard to detect whether two values are equal\n*/\nfunction isEqual(...base) {\n\treturn compare$1(base);\n}\n\n//#endregion\n//#region src/type-guards/higher-order/isInUnion.ts\nconst TOKENS = [\n\t\"undefined\",\n\t\"null\",\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"Array\",\n\t\"Array<Dict>\",\n\t\"Array<number>\",\n\t\"Array<string>\",\n\t\"Array<boolean>\",\n\t\"Dict\",\n\t\"Dict<string, unknown>\"\n];\n/**\n* **isInUnion**(literals) => { typeGuard, meta props }\n*\n* A higher order type guard which:\n*\n* - first call establishes the entities in the union,\n* - you can use tokens like `\"string\"` or `\"number\"` to indicate\n* a wide type or any literal value to add a literal to the union.\n*\n* Wide tokens which can be used are:\n*\n* - \"undefined\", \"null\"\n* - \"string\", \"number\", \"boolean\", \"Dict\",\n* - \"Array\", \"Array<string>\", \"Array<number>\"\n* - and more\n*\n* **Related:** `unionize`, `asUnion`\n*/\nfunction isInUnion(...elements) {\n\treturn (value) => {\n\t\tconst literals = elements.filter((i) => !isString(i) || isString(i) && !TOKENS.includes(i));\n\t\tconst wide$1 = elements.filter((i) => TOKENS.includes(i));\n\t\tconst isWideType = wide$1.reduce((acc, i) => {\n\t\t\tswitch (i) {\n\t\t\t\tcase \"Array\": if (Array.isArray(value)) return true;\n\t\t\t\tcase \"Array<Dict>\": if (Array.isArray(value) && value.every((i$1) => isDictionary(i$1))) return true;\n\t\t\t\tcase \"Array<boolean>\": if (Array.isArray(value) && value.every((i$1) => isBoolean(i$1))) return true;\n\t\t\t\tcase \"Array<number>\": if (Array.isArray(value) && value.every((i$1) => isNumber(i$1))) return true;\n\t\t\t\tcase \"Array<string>\": if (Array.isArray(value) && value.every((i$1) => isString(i$1))) return true;\n\t\t\t\tcase \"Dict\": if (isDictionary(value)) return true;\n\t\t\t\tcase \"Dict<string, unknown>\": if (!hasNonStringKeys(value)) return true;\n\t\t\t\tcase \"boolean\": if (isBoolean(value)) return true;\n\t\t\t\tcase \"null\": if (isNull(value)) return true;\n\t\t\t\tcase \"number\": if (isNumber(value)) return true;\n\t\t\t\tcase \"string\": if (isString(value)) return true;\n\t\t\t\tcase \"undefined\": if (isUndefined(value)) return true;\n\t\t\t\tdefault: return acc;\n\t\t\t}\n\t\t}, false);\n\t\treturn literals.includes(value) || isWideType;\n\t};\n}\n\n//#endregion\n//#region src/type-guards/higher-order/isLength.ts\n/**\n* **ifLength**(len) => (value) => boolean\n*\n* Higher order type guard which provides a type-aware check on the\n* \"length\" of some unit:\n*\n* - **arrays** - the number of elements in the array\n* - **objects** - the number of keys in the object\n* - **string** - the length of the string\n*\n* All other types return `false`\n*/\nfunction isLength(value, len) {\n\treturn isArray(value) ? !!isEqual(value.length)(len) : isString(value) ? !!isEqual(value.length)(len) : isDictionary(value) ? !!isEqual(keysOf(value))(len) : false;\n}\n\n//#endregion\n//#region src/type-guards/higher-order/isSameTypeOf.ts\n/**\n* **isSameTypeOf**(base, compare)\n*\n* A type guard which validates that `base` and `compare` are the same \"type\"\n* defined by the runtime `typeof` operator.\n*\n* **Note:** if either `TBase` or `TCompare` are\n*\n* **Related:** `IsSameType`\n*/\nfunction isSameTypeOf(base) {\n\treturn (compare$2) => {\n\t\treturn typeof base === typeof compare$2;\n\t};\n}\n\n//#endregion\n//#region src/type-guards/higher-order/isStringLiteral.ts\n/**\n* Higher order type guard which:\n*\n* - takes a set of string literals on first call\n* - second call is the type which validates that the value passed in\n* is the defined set of values of the first call\n*/\nfunction isStringLiteral(...literals) {\n\treturn (val) => {\n\t\treturn isString(val) && literals.includes(val);\n\t};\n}\n\n//#endregion\n//#region src/type-guards/higher-order/isTuple.ts\nfunction isTuple(...tuple$1) {\n\tconst results = tuple$1.map((i) => i(ShapeApiImplementation)).map((i) => isDoneFn(i) ? i.done() : i);\n\treturn (v) => {\n\t\treturn isArray(v) && v.length === results.length && results.every(isShape) && v.every((item, idx) => isSameTypeOf(results[idx])(item));\n\t};\n}\n\n//#endregion\n//#region src/type-guards/higher-order/isTypeOf.ts\n/**\n* **isTypeOf**(type)(value)\n*\n* Higher order type guard which matches against the runtime operator's `typeof` command.\n*\n* - You first partially apply by specifying the `typeof`\n* - The type guard is then returned based on the type.\n*/\nfunction isTypeOf(type) {\n\treturn (value) => {\n\t\treturn typeof value === type;\n\t};\n}\n\n//#endregion\n//#region src/type-guards/higher-order/startsWith.ts\n/**\n* **startsWithTypeguard**(startingWith) => (val)\n*\n* A higher-level builder pattern which is used to create a TypeGuard\n* which checks whether a string _starts with_ another substring.\n*\n* **Related:** `startsWith()`\n*/\nfunction startsWithTypeguard(...startingWith) {\n\treturn (val) => {\n\t\treturn isString(val) || isNumber(val) ? startingWith.some((i) => String(i) !== \"\" && String(val).startsWith(String(i))) : false;\n\t};\n}\n/**\n* **startsWith**`(startingWith) -> (val) -> true | false`\n*\n* A higher-level builder pattern which is used to create a boolean\n* operator which indicates whether the given function starts with any\n* of the provided `startingWith` string literal values.\n*\n* **Related:** `startsWithTypeguard()`\n*/\nfunction startsWith(...startingWith) {\n\treturn (val) => {\n\t\treturn isString(val) || isNumber(val) ? startingWith.some((i) => String(i) !== \"\" && String(val).startsWith(String(i))) : false;\n\t};\n}\n\n//#endregion\n//#region src/type-guards/html/component-tags.ts\n/**\n* **isHtmlComponentTag**`(...names)`\n*\n* A type guard that validates if a value matches a valid HTML component tag.\n* Supports both `kebab-case` and `PascalCase` component names.\n*\n* Attributes are validated using `areAttributesValid()`.\n*/\nfunction isHtmlComponentTag(...names) {\n\treturn (val) => {\n\t\tif (typeof val !== \"string\") return false;\n\t\tconst trimmedVal = val.trim();\n\t\tconst tagRegex = /^<\\/?([\\w-]+)(.*?)>$/;\n\t\tconst match = tagRegex.exec(trimmedVal);\n\t\tif (!match) return false;\n\t\tconst [, tagName, attributes] = match;\n\t\tconst isClosingTag = trimmedVal.startsWith(\"</\");\n\t\tconst isKebabCase = /^[a-z][a-z0-9-]*$/.test(tagName);\n\t\tconst isPascalCase = /^[A-Z][a-zA-Z0-9]*$/.test(tagName);\n\t\tconst normalizedKebabCase = toKebabCase(tagName);\n\t\tconst normalizedPascalCase = toPascalCase(tagName);\n\t\tconst isValidName = names.some((name) => isKebabCase && normalizedKebabCase === toKebabCase(name) || isPascalCase && normalizedPascalCase === toPascalCase(name));\n\t\tif (!isValidName) return false;\n\t\tif (isClosingTag) return attributes.trim() === \"\";\n\t\treturn validHtmlAttributes(attributes);\n\t};\n}\n\n//#endregion\n//#region src/type-guards/html/hasHtml.ts\n/**\n* Tests whether the passed in `val` contains some HTML-like tags in it.\n*\n* **Related:** `hasValidHtml()`, `isHtml()`, `hasValidHtml()`\n*/\nfunction hasHtml(val) {\n\tif (typeof val !== \"string\") return false;\n\tconst htmlTagRegex = /.*<(\\w+)>.*/;\n\treturn !!htmlTagRegex.test(val);\n}\n/**\n* Tests that the passed in string _does_ have HTML tags in it and that\n* those tags are valid HTML tags.\n*\n* **Related:** `hasHtml()`, `isHtml()`, `isValidHtml()`\n*/\nfunction hasValidHtml(val) {\n\tif (typeof val !== \"string\") return false;\n\tconst trimmedVal = val.trim();\n\tconst tagRegex = /<\\/?(\\w+)([^>]*)>/g;\n\tconst stack = [];\n\tlet match;\n\tmatch = tagRegex.exec(trimmedVal);\n\twhile (match !== null) {\n\t\tconst [, tagName] = match;\n\t\tconst isClosingTag = match[0].startsWith(\"</\");\n\t\tconst isAtomicTag = HTML_ATOMIC_TAGS.includes(tagName);\n\t\tif (isAtomicTag) {\n\t\t\tmatch = tagRegex.exec(trimmedVal);\n\t\t\tcontinue;\n\t\t}\n\t\tif (isClosingTag) {\n\t\t\tconst lastTag = stack.pop();\n\t\t\tif (lastTag !== tagName) return false;\n\t\t} else {\n\t\t\tif (!HTML_BLOCK_TAGS.includes(tagName)) return false;\n\t\t\tstack.push(tagName);\n\t\t}\n\t\tmatch = tagRegex.exec(trimmedVal);\n\t}\n\treturn stack.length === 0 && tagRegex.test(trimmedVal);\n}\n\n//#endregion\n//#region src/type-guards/html/html-tags.ts\n/**\n* tests whether the `val` passed in is the **name** of a valid\n* HTML block tag (e.g., \"div\", \"span\", etc.)\n*\n* **Note:** this will _not_ match with leading or trailing whitespace\n*/\nfunction isValidBlockTag(val) {\n\treturn isString(val) && HTML_BLOCK_TAGS.includes(val.toLowerCase());\n}\n/**\n* test whetehr the `val` pass in is a the **name** of a valid HTML\n* atomic tag (e.g., \"br\", \"meta\", etc.)\n*\n* **Note:** this will _not_ match with leading or trailing whitespace\n*/\nfunction isValidAtomicTag(val) {\n\treturn isString(val) && HTML_ATOMIC_TAGS.includes(val.toLowerCase());\n}\n/**\n* **isValidHtmlTag**`(...tags)(val)`\n*\n* A higher order type guard which tests that the `val` passed in\n* is a valid HTML tag (block or atomic) or the types specified.\n*\n* - if it's an openning or atomic tag then the tag name is validated\n* but so are the characters between the tag name and the close.\n* - if it's a closing tag then NO characters are allowed beyond\n* that of the tag and the brackets.\n*/\nfunction isValidHtmlTag(...tags) {\n\treturn (val) => {\n\t\tif (typeof val !== \"string\") return false;\n\t\tconst trimmedVal = val.trim();\n\t\tconst tagRegex = /^<\\/?(\\w+)(.*?)>$/;\n\t\tconst match = tagRegex.exec(trimmedVal);\n\t\tif (!match) return false;\n\t\tconst [, tagName, attributes] = match;\n\t\tconst normalizedTagName = tagName.toLowerCase();\n\t\tconst isClosingTag = trimmedVal.startsWith(\"</\");\n\t\tconst isAtomicTag = HTML_ATOMIC_TAGS.includes(normalizedTagName);\n\t\tconst isBlockTag = HTML_BLOCK_TAGS.includes(normalizedTagName);\n\t\tif (!tags.map((t) => t.toLowerCase()).includes(normalizedTagName)) return false;\n\t\tif (isClosingTag) return attributes.trim() === \"\" && !isAtomicTag;\n\t\tif (isAtomicTag) return attributes.trim() === \"\" || validHtmlAttributes(attributes);\n\t\tif (isBlockTag) return validHtmlAttributes(attributes);\n\t\treturn false;\n\t};\n}\n\n//#endregion\n//#region src/type-guards/html/isHtml.ts\n/**\n* **isHtml**`(val)`\n*\n* Tests whether the passed in `val` is an HTML string which:\n*\n* - starts and ends with an HTML-like tag\n* - leading and trailing whitespace is ignored\n*/\nfunction isHtml(val) {\n\tif (typeof val !== \"string\") return false;\n\tconst trimmedVal = val.trim();\n\tconst fullHtmlRegex = /^<(\\w+).*<\\/\\1>$/;\n\treturn fullHtmlRegex.test(trimmedVal);\n}\n/**\n* **isValidHtml**`(val)`\n*\n* Tests whether the passed in `val` is an HTML string which:\n*\n* - starts and ends with a valid HTML tag\n* - all block tags are _balanced_ between open and close variants\n* - leading and trailing whitespace is ignored in the match\n*/\nfunction isValidHtml(val) {\n\tif (typeof val !== \"string\") return false;\n\tconst trimmedVal = val.trim();\n\tconst tagRegex = /<\\/?(\\w+)([^>]*)>/g;\n\tconst stack = [];\n\tlet match = tagRegex.exec(trimmedVal);\n\twhile (match !== null) {\n\t\tconst [, tagName] = match;\n\t\tconst isClosingTag = match[0].startsWith(\"</\");\n\t\tconst isAtomicTag = HTML_ATOMIC_TAGS.includes(tagName);\n\t\tif (isAtomicTag) {\n\t\t\tmatch = tagRegex.exec(trimmedVal);\n\t\t\tcontinue;\n\t\t}\n\t\tif (isClosingTag) {\n\t\t\tconst lastTag = stack.pop();\n\t\t\tif (lastTag !== tagName) return false;\n\t\t} else {\n\t\t\tif (!HTML_BLOCK_TAGS.includes(tagName)) return false;\n\t\t\tstack.push(tagName);\n\t\t}\n\t\tmatch = tagRegex.exec(trimmedVal);\n\t}\n\tconst isBalanced = stack.length === 0;\n\tconst validStructureRegex = /^<(\\w+)[^>]*>[\\s\\S]*<\\/\\1>$/;\n\treturn isBalanced && validStructureRegex.test(trimmedVal);\n}\n\n//#endregion\n//#region src/type-guards/html/isHtmlElement.ts\n/**\n* **isHtmlElement**`(val)`\n*\n* Type guard which checks whether `val` is an `HtmlElement`.\n*/\nfunction isHtmlElement(val) {\n\treturn isDictionary(val) && \"attributes\" in val && \"firstElementChild\" in val && \"innerHTML\" in val;\n}\n\n//#endregion\n//#region src/type-guards/html/validHtmlAttributes.ts\n/**\n* type guard which validates that `val` is a string which could represent\n* the attributes in an HTML tag.\n*/\nfunction validHtmlAttributes(val) {\n\tif (typeof val !== \"string\") return false;\n\tconst quoteRegex = /[\"']/g;\n\tconst unmatchedQuotes = (val.match(quoteRegex)?.length || 0) % 2 !== 0;\n\tconst invalidAssignment = /(\\w+=)(?=\\s|>|$)/.test(val);\n\treturn !val.includes(\">\") && !unmatchedQuotes && !invalidAssignment;\n}\n\n//#endregion\n//#region src/type-guards/isAlpha.ts\n/**\n* **isAlpha**(value)\n*\n* Type guard which ensures that the given value is a string literal with only\n* alphabetic characters.\n*/\nfunction isAlpha(value) {\n\treturn isString(value) && asChars(value).every((v) => ALPHA_CHARS.includes(v));\n}\n\n//#endregion\n//#region src/type-guards/isBoolean.ts\n/**\n* **isBoolean**(value)\n*\n* Type guard which validates that type is a boolean value.\n*\n* **Related:** `isBooleanLike()`\n*/\nfunction isBoolean(value) {\n\treturn typeof value === \"boolean\";\n}\n\n//#endregion\n//#region src/type-guards/isBooleanLike.ts\n/**\n* **isBooleanLike**`(val)`\n*\n* A type guard which checks whether `val` is \"boolean like; meaning either\n* a boolean value or a string representation of a boolean value.\n*/\nfunction isBooleanLike(val) {\n\treturn isBoolean(val) || isString(val) && [\n\t\t\"true\",\n\t\t\"false\",\n\t\t\"boolean\"\n\t].includes(val);\n}\n\n//#endregion\n//#region src/type-guards/isConstant.ts\n/**\n* **isConstant**`(val)`\n*\n* Type guard which checks to see if it is of type\n* `Constant<T>`.\n*/\nfunction isConstant(value) {\n\treturn !!(isDictionary(value) && \"_type\" in value && \"kind\" in value && value._type === \"Constant\");\n}\n\n//#endregion\n//#region src/type-guards/isContainer.ts\nfunction isContainer(value) {\n\treturn !!(Array.isArray(value) || isDictionary(value));\n}\n\n//#endregion\n//#region src/type-guards/isCssAspectRatio.ts\nconst tokens = [\n\t\"1\",\n\t\"inherit\",\n\t\"initial\",\n\t\"revert\",\n\t\"revert-layer\",\n\t\"unset\",\n\t\"auto\"\n];\nconst isRatio = (val) => /\\d{1,4}\\s*\\/\\s*\\d{1,4}/.test(val);\n/**\n* Type guard which tests whether the passed in value is a valid CSS Aspect\n* Ratio value.\n*/\nfunction isCssAspectRatio(val) {\n\treturn isString(val) && val.split(/\\s+/).every((i) => tokens.includes(i) || isRatio(i));\n}\n\n//#endregion\n//#region src/type-guards/isCsv.ts\n/**\n* **isCsv**`(val)`\n*\n* type guard which validates that `val` is a CSV based\n* string.\n*/\nfunction isCsv(val) {\n\treturn isString(val) && val.includes(\",\") && !val.startsWith(\",\");\n}\n\n//#endregion\n//#region src/type-guards/isDefined.ts\n/**\n* **isDefined**(value)\n*\n* Type guard which determines whether a type is _defined_ or not\n* (aka, whether the value is **not** _undefined_).\n*/\nfunction isDefined(value) {\n\treturn value !== void 0;\n}\n\n//#endregion\n//#region src/type-guards/isDictionary.ts\n/**\n* **isDictionary**(value)\n*\n* Type guard used to detect whether the passed in value is an Object.\n*\n* Note: an _array_ will **not** pass this test (although the _typeof_ operator\n* would have said it was an object)\n*\n* **Related:**\n* - `isNarrowableDictionary()`,\n* - `isObject()`, `isMap()`, `isSet()`, `isWeakMap()`\n*/\nfunction isDictionary(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value) && !isMap(value) && !isSet(value) && !isWeakMap(value);\n}\n/**\n* **isNarrowableDictionary**(value)\n*\n* Type guard used to detect whether the passed in value is an Object and all of it's\n* values fit into the `Narrowable` type.\n*\n* **Related:**\n* - `isDictionary()`\n* - `isObject()`, `isMap()`, `isSet()`, `isWeakMap()`\n*/\nfunction isNarrowableDictionary(value) {\n\treturn isDictionary(value) && Object.keys(value).every((key) => [\n\t\t\"string\",\n\t\t\"number\",\n\t\t\"boolean\",\n\t\t\"symbol\",\n\t\t\"object\",\n\t\t\"undefined\",\n\t\t\"void\",\n\t\t\"null\"\n\t].includes(typeof value[key]));\n}\n\n//#endregion\n//#region src/type-guards/isDoneFn.ts\n/**\n* **isDoneFn**(val)\n*\n* A type guard which checks whether the value passed in has a `done`\n* property which is a function.\n*/\nfunction isDoneFn(val) {\n\treturn isDictionary(val) && \"done\" in val && typeof val.done === \"function\";\n}\n\n//#endregion\n//#region src/type-guards/isEmail.ts\n/**\n* **isEmail**`(val)`\n*\n* type guard which validates that the value passed in\n* in the correct shape to be an email address. It checks:\n*\n* 1. that leads with alphabetic char\n* 2. has a `@` character\n* 3. has at least one `.` char after the `@`\n* 4. top-level domain has at least 2 characters\n*/\nfunction isEmail(val) {\n\tif (!isString(val)) return false;\n\tconst parts = val?.split(\"@\");\n\tconst domain = parts[1]?.split(\".\");\n\tconst tld = domain ? domain.pop() : \"\";\n\tconst firstChar$1 = val[0].toLowerCase();\n\treturn isString(val) && LOWER_ALPHA_CHARS.includes(firstChar$1) && parts.length === 2 && domain.length >= 1 && tld.length >= 2;\n}\n\n//#endregion\n//#region src/type-guards/isEmpty.ts\n/**\n* **isEmpty**(val)\n*\n* type guard which validates that `val` is an `Empty` value:\n*\n* - `null` or `undefined`\n* - empty string\n* - empty array\n* - empty object\n*/\nfunction isEmpty(val) {\n\treturn isUndefined(val) || isNull(val) || isString(val) && val.length === 0 || isDictionary(val) && Object.keys(val).length === 0 || isArray(val) && val.length === 0;\n}\n/**\n* **isNotEmpty**(val)\n*\n* type guard which validates that `val` is **not** an `Empty` value:\n*\n* - `null` or `undefined`\n* - empty string\n* - empty array\n* - empty object\n*/\nfunction isNotEmpty(val) {\n\treturn !(isUndefined(val) || isNull(val) || isString(val) && val.length === 0 || isDictionary(val) && Object.keys(val).length === 0 || isArray(val) && (val?.length === 0 || val?.length === void 0));\n}\n\n//#endregion\n//#region src/type-guards/isErr.ts\n/**\n* **IsErr**`<T,[U]>`\n*\n* Type guard which validates whether `T` is an Error extended from the `Err<..>` utility.\n*\n* - if the type is specified then the type (and optionally the subType) properties will be explicitly checked too\n* - all Err<...> types _extend_ the Javascript Error class\n*\n* **Related:** `isError()`\n*/\nfunction isErr(val, type) {\n\treturn type ? isError(val) && \"type\" in val && retainUntil(type, \"/\") === val.type && (type.includes(\"/\") ? \"subType\" in val && val.subType === stripUntil(type, \"/\") : true) : isError(val);\n}\n\n//#endregion\n//#region src/type-guards/isError.ts\n/**\n* **isError**`(val)`\n*\n* Type guard which checks whether the value passed in is an\n* instance of `Error`.\n*\n* **Related:** `isErr()`\n*/\nfunction isError(val) {\n\treturn val instanceof Error;\n}\n\n//#endregion\n//#region src/type-guards/isEven.ts\nfunction isEven(val) {\n\treturn isNumber(val) && isInteger(val) && val % 2 === 0;\n}\n\n//#endregion\n//#region src/type-guards/isFalse.ts\nfunction isFalse(i) {\n\treturn typeof i === \"boolean\" && !i;\n}\n\n//#endregion\n//#region src/type-guards/isFalsy.ts\n/**\n* **isFalsy**()\n*\n* a TypeGuard which checks whether a value is considered _falsy_ in\n* Javascript.\n*/\nfunction isFalsy(val) {\n\treturn FALSY_VALUES.includes(val) || isNumber(val) && Number.isNaN(val);\n}\n\n//#endregion\n//#region src/type-guards/isFnWithParams.ts\n/**\n* **isFnWithParams**(input, [...params | count])\n*\n* Type guard which checks whether a give variable is a function\n* which contains at least one parameter.\n*\n* - the optional second parameter may be used to express the **types** of\n* the expected parameters or just the expected **count** of parameters\n* - if you set the parameter types, it will check that the\n* correct amount of parameters are set but can only _assume_ the types of\n* the parameters are as you have expressed\n*/\nfunction isFnWithParams(input, ...params) {\n\treturn params.length === 0 ? typeof input === \"function\" && input?.length > 0 : typeof input === \"function\" && input?.length === params.length;\n}\n\n//#endregion\n//#region src/type-guards/isFunction.ts\n/**\n* **isFunction**(value)\n*\n* Type guard which checks whether the passed in value is a function.\n*\n* **Related:** `isFnWithParams`, `ifFunction`\n*/\nfunction isFunction(value) {\n\treturn typeof value === \"function\";\n}\n\n//#endregion\n//#region src/type-guards/isHexadecimal.ts\n/**\n* **isHexadecimal**`(val)`\n*\n* Type guard which checks whether all of the characters in the given string\n* are hexadecimal characters.\n*/\nfunction isHexadecimal(val) {\n\treturn isString(val) && asChars(val).every((i) => isNumericString(i) || [\n\t\t\"a\",\n\t\t\"b\",\n\t\t\"c\",\n\t\t\"d\",\n\t\t\"e\",\n\t\t\"f\"\n\t].includes(i.toLowerCase()));\n}\n\n//#endregion\n//#region src/type-guards/isIndexable.ts\n/**\n* **isIndexable**(value)\n*\n* Type guard which validates that the value passed in can be _indexed_\n*/\nfunction isIndexable(value) {\n\treturn !!(Array.isArray(value) || typeof value === \"object\" && keysOf(value).length > 0);\n}\n\n//#endregion\n//#region src/type-guards/isInlineSvg.ts\n/**\n* **isInlineSvg**`(val)`\n*\n* Type guard which tests whether the passed in value is both a string\n* and also appears to be an inline SVG image.\n*/\nfunction isInlineSvg(v) {\n\treturn isString(v) && v.trim().startsWith(`<svg`) && v.trim().endsWith(`</svg>`);\n}\n\n//#endregion\n//#region src/type-guards/isMap.ts\n/**\n* type guard which tests `val` to see if it's a valid `Set<any>`\n*/\nfunction isMap(val) {\n\treturn val instanceof Map;\n}\n\n//#endregion\n//#region src/type-guards/isNarrowable.ts\n/**\n* type guard which validates that `val` is `Narrowable`\n*/\nfunction isNarrowable(val) {\n\treturn isString(val) || isNumber(val) || isBoolean(val) || isSymbol(val) || isDictionary(val) || isNull(val) || isUndefined(val);\n}\n\n//#endregion\n//#region src/type-guards/isNever.ts\n/**\n* **isNever**(val)\n*\n* Type guard which checks for the runtime constant `Never`\n* (which also has a _type_ of **never**).\n*/\nfunction isNever(val) {\n\treturn isConstant(val) && val.kind === \"never\";\n}\n\n//#endregion\n//#region src/type-guards/isNotError.ts\n/**\n* type guard which validates that `val` is _not_ an `Error` type.\n*/\nfunction isNotError(val) {\n\treturn !isError(val);\n}\n\n//#endregion\n//#region src/type-guards/isNothing.ts\nfunction isNothing(val) {\n\treturn !!(val === null || val === void 0);\n}\n\n//#endregion\n//#region src/type-guards/isNotNull.ts\n/**\n* **isNotNull**(value)\n*\n* Type guard which validates the passed in value is **not** the `null` value.\n*/\nfunction isNotNull(value) {\n\treturn value === null;\n}\n\n//#endregion\n//#region src/type-guards/isNotUnset.ts\n/**\n* **isSet**`(val)`\n*\n* Type guard which validates that the value passed in is **not** `Unset`.\n*\n* **Related:** `isUnset()`\n*/\nfunction isNotUnset(val) {\n\treturn isDictionary(val) ? val.kind !== \"Unset\" : true;\n}\n\n//#endregion\n//#region src/type-guards/isNull.ts\n/**\n* **isNull**(value)\n*\n* Type guard which checks whether a value is null or not.\n*\n* **Related:** `ifNull`\n*/\nfunction isNull(value) {\n\treturn value === null;\n}\n\n//#endregion\n//#region src/type-guards/isNumericString.ts\n/**\n* **isNumericString**(value)\n*\n* Type guard to validate that a value is string which can be converted to a number.\n*\n* **Related:** `isNumberLike`\n*/\nfunction isNumericString(value) {\n\tconst numericChars = [...NUMERIC_CHAR];\n\treturn typeof value === \"string\" && asChars(value).every((i) => numericChars.includes(i));\n}\n/**\n* **isNumberLike**(value)\n*\n* Type guard to validate that a value is either:\n*\n* - a numeric string literal which can be converted to a number\n* - an actual number\n*\n* **Related:** `isNumericString`\n*/\nfunction isNumberLike(value) {\n\tconst numericChars = [...NUMERIC_CHAR];\n\treturn typeof value === \"string\" && asChars(value).every((i) => numericChars.includes(i)) ? true : typeof value === \"number\";\n}\n\n//#endregion\n//#region src/type-guards/isObject.ts\n/**\n* **isObject**(value)\n*\n* Type guard used to detect whether the passed in value is an `object`.\n*\n* - this includes matching on array's, Set's, Map's, and WeakMap's\n*\n* **Related:**\n* - `isNarrowableDictionary()`,\n* - `isObject()`, `isMap()`, `isSet()`, `isWeakMap()`\n*/\nfunction isObject(value) {\n\treturn typeof value === \"object\" && value !== null;\n}\n\n//#endregion\n//#region src/type-guards/isObjectKey.ts\n/**\n* Type guard which validates that `val` is a valid `ObjectKey`\n*/\nfunction isObjectKey(val) {\n\treturn isString(val) || isSymbol(val);\n}\n\n//#endregion\n//#region src/type-guards/isOdd.ts\nfunction isOdd(val) {\n\treturn isNumber(val) && isInteger(val) && val % 2 !== 0;\n}\n\n//#endregion\n//#region src/type-guards/isOk.ts\nfunction isOk(val) {\n\treturn val instanceof Error === false;\n}\n\n//#endregion\n//#region src/type-guards/isPhoneNumber.ts\n/**\n* **maybePhoneNumber**`(val)`\n*\n* Type guard which validates that a string is in the shape of a phone\n* number.\n*\n* - Only valid characters (numeric, whitespace, `+`, `-`, `.`, and parenthesis)\n* - at least 7 numeric characters, 8 if `+` character used\n* - leading character (after whitespace) must be numeric, `(` or `+`\n*\n* **Related:** `asPhoneNumber()`, `PhoneNumber`, `isPhoneNumber`\n*/\nfunction maybePhoneNumber(val) {\n\tconst svelte = String(val).trim();\n\tconst chars = svelte.split(\"\");\n\tconst numeric = retainChars(svelte, ...NUMERIC_CHAR);\n\tconst valid$1 = [\n\t\t\"+\",\n\t\t\"(\",\n\t\t...NUMERIC_CHAR\n\t];\n\tconst nothing = stripChars(svelte, ...[\n\t\t...NUMERIC_CHAR,\n\t\t...WHITESPACE_CHARS,\n\t\t\"(\",\n\t\t\")\",\n\t\t\"+\",\n\t\t\".\",\n\t\t\"-\"\n\t]);\n\treturn chars.every((i) => valid$1.includes(i)) && svelte.startsWith(`+`) ? numeric.length >= 8 : svelte.startsWith(`00`) ? numeric.length >= 10 : numeric.length >= 7 && nothing === \"\";\n}\nconst start = PHONE_COUNTRY_CODES.map((i) => `+${i[0]} `);\n/**\n* Type guard which validates that `val` starts with a valid\n* country code (although starting whitespace is also allowed).\n*/\nfunction hasCountryCode(val) {\n\tif (isString(val)) return start.some((i) => val.trimStart().startsWith(i));\n\treturn false;\n}\nfunction isUsPhoneNumber(val) {\n\tif (isString(val)) return maybePhoneNumber(val) && val.trimStart().startsWith(`+1 `);\n\treturn false;\n}\n/**\n* **isPhoneNumber**`(val)`\n*\n* Type guard which validates that a string is in the shape of a phone\n* number. This is a MORE strict check than `maybePhoneNumber()` which\n* you may want to use if you're pretty sure numeric looking values\n* are meant to be phone numbers.\n*\n* **Related:** `asPhoneNumber()`, `PhoneNumber`, `maybePhoneNumber`\n*/\nfunction isPhoneNumber(val) {\n\tif (isString(val) && maybePhoneNumber(val) && [\n\t\t\" \",\n\t\t\"-\",\n\t\t\".\"\n\t].some((i) => val.includes(i))) {\n\t\tconst cc = getPhoneCountryCode(val);\n\t\tconst without = cc === \"\" ? retainChars(val, ...NUMERIC_CHAR) : retainChars(val.trimStart().replace(`+${cc} `, \"\"), ...NUMERIC_CHAR);\n\t\tswitch (cc) {\n\t\t\tcase \"1\": return without.length === 10;\n\t\t\tcase \"44\": return !![10, 11].includes(without.length);\n\t\t\tcase \"\": return without.length <= 10;\n\t\t\tdefault: return without.length <= 11;\n\t\t}\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region src/type-guards/isRef.ts\n/**\n* **isRef**(value)\n*\n* Type guard which check whether the passed in value is a VueJS `Ref<T>` value.\n*/\nfunction isRef(value) {\n\treturn isDictionary(value) && \"value\" in value && Array.from(Object.keys(value)).includes(\"_value\");\n}\n\n//#endregion\n//#region src/type-guards/isRegExp.ts\n/**\n* Type guard that validates the the value passed in is\n* a regular expression.\n*\n* **Related:** `isLikeRegExp`\n*/\nfunction isRegExp(val) {\n\treturn val instanceof RegExp;\n}\n/**\n* Type guard that validates the the value passed in is\n* a regular expression or a string that _can_ be turned\n* into a regular expression.\n*\n* **Related:** `isRegExp`\n*/\nfunction isLikeRegExp(val) {\n\tif (isRegExp(val)) return true;\n\tif (isString(val)) try {\n\t\tconst _re = new RegExp(val);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region src/type-guards/isScalar.ts\n/**\n* **isScalar**(value)\n*\n* Type guard to check whether the value passed in is a _scalar_ value.\n*/\nfunction isScalar(value) {\n\treturn isString(value) || isNumber(value) || isSymbol(value) || isNull(value) || isTrue(value) || isFalse(value);\n}\n\n//#endregion\n//#region src/type-guards/isSet.ts\n/**\n* type guard which tests `val` to see if it's a valid `Set<any>`\n*/\nfunction isSet(val) {\n\treturn val instanceof Set;\n}\n\n//#endregion\n//#region src/type-guards/isSetContainer.ts\n/**\n* type guard which tests `val` to see if it's a valid `Set<any>`\n*/\nfunction isSetContainer(val) {\n\treturn val instanceof Set;\n}\n\n//#endregion\n//#region src/type-guards/isSpecificConstant.ts\n/**\n* **isSpecificConstant**(kind)\n*\n* A higher order type guard which tests for a specific `Constant` type.\n*/\nfunction isSpecificConstant(kind) {\n\treturn (value) => {\n\t\treturn !!(isConstant(value) && value.kind === kind);\n\t};\n}\n\n//#endregion\n//#region src/type-guards/isString.ts\n/**\n* **isString**\n*\n* Returns true or false on whether the passed in parameter is a\n* string (either a wide string or a string literal).\n*\n* The boolean return is traceable by the type system as well as the\n* runtime system.\n*/\nfunction isString(value) {\n\treturn typeof value === \"string\";\n}\n\n//#endregion\n//#region src/type-guards/isSymbol.ts\n/**\n* **isSymbol**(value)\n*\n* Runtime type guard which narrows the passed in type\n* to being a **symbol** when condition is met.\n*/\nfunction isSymbol(value) {\n\treturn typeof value === \"symbol\";\n}\n\n//#endregion\n//#region src/type-guards/isThenable.ts\n/**\n* type guard which checks whether passed in `val` is a `Thenable` object\n*/\nfunction isThenable(val) {\n\treturn isDictionary(val) && \"then\" in val && \"catch\" in val && typeof val.then === \"function\";\n}\n\n//#endregion\n//#region src/type-guards/isTrimmable.ts\n/**\n* **isTrimable**`(val)`\n*\n* tests whether a string has whitespace on either left or right edges.\n*/\nfunction isTrimable(val) {\n\treturn isString(val) && val !== val.trim();\n}\n\n//#endregion\n//#region src/type-guards/isTrue.ts\n/**\n* **isTrue**(value)\n*\n* Type guard which detects whether the given value is `true`.\n*/\nfunction isTrue(value) {\n\treturn value === true;\n}\n\n//#endregion\n//#region src/type-guards/isTruthy.ts\n/**\n* **isTruthy**\n*\n* Creates a TypeGuard which checks whether a value is considered _truthy_\n* in Javascript.\n*/\nfunction isTruthy(val) {\n\treturn !FALSY_VALUES.includes(val);\n}\n\n//#endregion\n//#region src/type-guards/isTypedError.ts\nfunction isTypedError(_type) {\n\t/**\n\t* Type guard which validates that the `val` passsed in\n\t* extends the configured variant of `TypedError`\n\t*/\n\treturn (val) => {\n\t\treturn isError(val) && \"type\" in val && typeof val.type === \"string\";\n\t};\n}\n\n//#endregion\n//#region src/type-guards/isTypeSubtype.ts\n/**\n* type guard which validates whether the `val` passed in is a valid `TypeSubtype`\n*\n* **Related:** `TypeSubtype`, `getTypeSubtype()`\n*/\nfunction isTypeSubtype(val) {\n\treturn isString(val) && val.split(\"/\").length === 2;\n}\n\n//#endregion\n//#region src/type-guards/isTypeTuple.ts\n/**\n* **isTypeTuple**(value)\n*\n* A type-guard which detects if passed in value is a `TypeTuple`.\n*/\nfunction isTypeTuple(value) {\n\treturn Array.isArray(value) && value.length === 3 && typeof value[1] === \"function\";\n}\n\n//#endregion\n//#region src/type-guards/isUndefined.ts\n/**\n* **isUndefined**(value)\n*\n* Type guard which determines whether a type is undefined or not.\n*/\nfunction isUndefined(value) {\n\treturn typeof value === \"undefined\";\n}\n\n//#endregion\n//#region src/type-guards/isUnset.ts\n/**\n* **isUnset**`(val)`\n*\n* Type guard which validates that the value passed in `Unset`.\n*\n* **Related:** `isSet()`\n*/\nfunction isUnset(val) {\n\treturn isDictionary(val) && val.kind === \"Unset\";\n}\n\n//#endregion\n//#region src/type-guards/isUrl.ts\n/**\n* **isUri**`(val, ...protocols)`\n*\n* Type guard to test with the passed in value is a valid URI.\n*\n* **Note:** by default all protocols in `NetworkProtocol` are\n* considered valid but you can scope this down by setting which\n* protocols you explicitly interested in.\n*\n* **Related:** `isUrl`\n*/\nfunction isUri(val, ...protocols) {\n\tconst p = protocols.length === 0 ? mutable(NETWORK_PROTOCOL) : mutable(protocols);\n\treturn isString(val) && p.some((i) => val.startsWith(`${i}://`));\n}\n/**\n* **isUrl**`(val,[...protocols])`\n*\n* Type guard to test whether the passed in value is a http/https URL.\n*\n* **Note:** you _can_ specify precisely which network protocols you\n* are wanting to test for but by default it is \"http\" and \"https\"\n*\n* **Related:** `isUri`\n*/\nfunction isUrl(val, ...protocols) {\n\tconst p = protocols.length === 0 ? [\"http\", \"https\"] : protocols;\n\treturn isString(val) && p.some((i) => val.startsWith(`${i}://`));\n}\n\n//#endregion\n//#region src/type-guards/isVariable.ts\nconst VALID = [\n\t...ALPHA_CHARS,\n\t...NUMERIC_CHAR,\n\t\"_\",\n\t\".\"\n];\nconst alpha = null;\nfunction valid(chars) {\n\treturn chars.every((i) => VALID.includes(i));\n}\nfunction isVariable(val) {\n\treturn isString(val) && startsWithTypeguard(alpha)(val) && valid(asChars(val));\n}\n\n//#endregion\n//#region src/type-guards/isWeakMap.ts\n/**\n* type guard which tests `val` to see if it's a valid `WeakMap<any,any>`\n*/\nfunction isWeakMap(val) {\n\treturn val instanceof WeakMap;\n}\n\n//#endregion\n//#region src/type-guards/metrics/isMetric.ts\nfunction separate(s) {\n\treturn stripWhile(s.toLowerCase(), ...NUMERIC_CHAR).trim();\n}\nfunction startsWithNumber(val) {\n\treturn isString(val) && isNumberLike(val.slice(0, 1));\n}\nfunction isAreaMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && AREA_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isLuminosityMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && LUMINOSITY_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isResistanceMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && RESISTANCE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isCurrentMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && CURRENT_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isVoltageMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && VOLTAGE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isFrequencyMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && FREQUENCY_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isPowerMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && POWER_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isTimeMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && TIME_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isEnergyMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && ENERGY_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isPressureMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && PRESSURE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isTemperatureMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && TEMPERATURE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isVolumeMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && VOLUME_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isAccelerationMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && ACCELERATION_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isSpeedMetric(val) {\n\tconst speed = SPEED_METRICS_LOOKUP.map((i) => i.abbrev);\n\treturn isString(val) && startsWithNumber(val) && speed.includes(separate(val));\n}\nfunction isMassMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && MASS_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isDistanceMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && DISTANCE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\n/**\n* Type guard which validates the passed in `val` is a `Metric` (unit\n* of measure).\n*/\nfunction isMetric(val) {\n\treturn isDistanceMetric(val) || isMassMetric(val) || isSpeedMetric(val) || isAccelerationMetric(val) || isVoltageMetric(val) || isTemperatureMetric(val) || isPressureMetric(val) || isEnergyMetric(val) || isTimeMetric(val) || isPowerMetric(val) || isFrequencyMetric(val) || isVoltageMetric(val) || isCurrentMetric(val) || isLuminosityMetric(val) || isAreaMetric(val);\n}\nfunction getCategories$1(c) {\n\treturn c.map((i) => {\n\t\tswitch (i) {\n\t\t\tcase \"Acceleration\": return isAccelerationMetric;\n\t\t\tcase \"Area\": return isAreaMetric;\n\t\t\tcase \"Current\": return isCurrentMetric;\n\t\t\tcase \"Distance\": return isDistanceMetric;\n\t\t\tcase \"Frequency\": return isFrequencyMetric;\n\t\t\tcase \"Luminosity\": return isLuminosityMetric;\n\t\t\tcase \"Mass\": return isMassMetric;\n\t\t\tcase \"Power\": return isPowerMetric;\n\t\t\tcase \"Pressure\": return isPressureMetric;\n\t\t\tcase \"Resistance\": return isResistanceMetric;\n\t\t\tcase \"Speed\": return isSpeedMetric;\n\t\t\tcase \"Temperature\": return isTemperatureMetric;\n\t\t\tcase \"Time\": return isTimeMetric;\n\t\t\tcase \"Voltage\": return isVoltageMetric;\n\t\t\tcase \"Volume\": return isVoltageMetric;\n\t\t\tdefault: throw new Error(`Unknown metric category: ${i}`);\n\t\t}\n\t});\n}\n/**\n* **isMetricCategory**`(...categories) => (val) => val is Uom<T>`\n*\n* A higher order type guard which validates that a value is a metric\n* with the specified category(s) UOM's.\n*\n* **Related:** `isMetric()`, `isAreaMetric()`, `isSpeedMetric()`, ...\n*/\nfunction isMetricCategory(...categories) {\n\tconst fn$1 = (val) => {\n\t\tconst tests = getCategories$1(categories);\n\t\treturn tests.some((i) => i(val));\n\t};\n\tconst props = {\n\t\tcategories,\n\t\tkind: \"MetricTypeGuard\"\n\t};\n\treturn createFnWithProps(fn$1, props);\n}\n\n//#endregion\n//#region src/type-guards/metrics/isUom.ts\nfunction isAreaUom(val) {\n\treturn isString(val) && AREA_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isLuminosityUom(val) {\n\treturn isString(val) && LUMINOSITY_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isResistanceUom(val) {\n\treturn isString(val) && RESISTANCE_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isCurrentUom(val) {\n\treturn isString(val) && CURRENT_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isVoltageUom(val) {\n\treturn isString(val) && VOLTAGE_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isFrequencyUom(val) {\n\treturn isString(val) && FREQUENCY_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isPowerUom(val) {\n\treturn isString(val) && POWER_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isTimeUom(val) {\n\treturn isString(val) && TIME_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isEnergyUom(val) {\n\treturn isString(val) && ENERGY_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isPressureUom(val) {\n\treturn isString(val) && PRESSURE_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isTemperatureUom(val) {\n\treturn isString(val) && TEMPERATURE_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isVolumeUom(val) {\n\treturn isString(val) && VOLUME_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isAccelerationUom(val) {\n\treturn isString(val) && ACCELERATION_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isSpeedUom(val) {\n\treturn isString(val) && SPEED_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isMassUom(val) {\n\treturn isString(val) && MASS_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isDistanceUom(val) {\n\treturn isString(val) && ENERGY_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\n/**\n* Type guard which validates the passed in `val` is a `Uom` (unit\n* of measure).\n*\n* **Related:**\n* - `isUomCategory(c)(v)`\n* - `isSpeedUom(v)`, `isMassUom(v)`, ...\n*/\nfunction isUom(val) {\n\treturn isDistanceUom(val) || isMassUom(val) || isSpeedUom(val) || isAccelerationUom(val) || isVoltageUom(val) || isTemperatureUom(val) || isPressureUom(val) || isEnergyUom(val) || isTimeUom(val) || isPowerUom(val) || isFrequencyUom(val) || isVoltageUom(val) || isCurrentUom(val) || isLuminosityUom(val) || isAreaUom(val);\n}\nfunction getCategories(c) {\n\treturn c.map((i) => {\n\t\tswitch (i) {\n\t\t\tcase \"Acceleration\": return isAccelerationUom;\n\t\t\tcase \"Area\": return isAreaUom;\n\t\t\tcase \"Current\": return isCurrentUom;\n\t\t\tcase \"Distance\": return isDistanceUom;\n\t\t\tcase \"Frequency\": return isFrequencyUom;\n\t\t\tcase \"Luminosity\": return isLuminosityUom;\n\t\t\tcase \"Mass\": return isMassUom;\n\t\t\tcase \"Power\": return isPowerUom;\n\t\t\tcase \"Pressure\": return isPressureUom;\n\t\t\tcase \"Resistance\": return isResistanceUom;\n\t\t\tcase \"Speed\": return isSpeedUom;\n\t\t\tcase \"Temperature\": return isTemperatureUom;\n\t\t\tcase \"Time\": return isTimeUom;\n\t\t\tcase \"Voltage\": return isVoltageUom;\n\t\t\tcase \"Volume\": return isVoltageUom;\n\t\t\tdefault: throw new Error(\"Unknown UOM Category\");\n\t\t}\n\t});\n}\n/**\n* **isUomCategory**`(...categories) => (val) => val is Uom<T>`\n*\n* A higher order type guard which validates that a value is of\n* the specified metric category or categories.\n*\n* **Related:** `isUom()`, `isAreaUom()`, `isSpeedUom()`, ...\n*/\nfunction isUomCategory(...categories) {\n\tconst fn$1 = (val) => {\n\t\tconst tests = getCategories(categories);\n\t\treturn tests.some((i) => i(val));\n\t};\n\tconst prop = {\n\t\tcategories,\n\t\tkind: \"UomTypeGuard\"\n\t};\n\treturn createFnWithProps(fn$1, prop);\n}\n\n//#endregion\n//#region src/type-guards/network-tg.ts\n/**\n* **isIp4Address**`(val)`\n*\n* Type guard which checks whether the value is a valid IPv4 address.\n*/\nfunction isIp4Address(val) {\n\tconst octets = isString(val) ? val.split(\".\") : [];\n\treturn isString(val) && octets.length === 4 && octets.every((i) => isNumberLike(i)) && octets.every((i) => Number(i) >= 0 && Number(i) <= 255) && octets.every((i) => `${Number(i)}` === i);\n}\n/**\n* **isIp6Subnet**`(val,[mask])`\n*\n* Type guard which validates that `val` is a valid IPv6 subnet.\n*\n* - optionally allows for isolating a particular subnet mask\n*/\nfunction isIp6Subnet(val, mask) {\n\tconst trimmed = val.trim();\n\tconst parts = trimmed.split(\"/\");\n\tif (parts.length !== 2) return false;\n\tconst [address, maskPart] = parts;\n\tif (!/^\\d+$/.test(maskPart)) return false;\n\tconst numericMask = Number.parseInt(maskPart, 10);\n\tif (numericMask < 0 || numericMask > 128) return false;\n\tif (!isIp6Address(address)) return false;\n\treturn mask === void 0 || numericMask === mask;\n}\n/**\n* **isIp6Address**`(val)`\n*\n* Comprehensive type guard for IPv6 addresses with:\n* - Full [RFC 4291](https://www.rfc-editor.org/rfc/rfc4291.html) validation\n* - Compression handling\n* - Zone index exclusion\n*/\nfunction isIp6Address(val) {\n\tif (typeof val !== \"string\") return false;\n\tconst str = val.trim();\n\tif (str.length < 2 || str.length > 45) return false;\n\tif (str.includes(\"/\")) return false;\n\tif ((str.match(/::/g) || []).length > 1) return false;\n\tif (/^::.+::/.test(str)) return false;\n\tif (/^:[^:]/.test(str) || /[^:]:$/.test(str)) return false;\n\tif (/:{3,}/.test(str)) return false;\n\tconst [before$1 = \"\", after = \"\"] = str.split(\"::\");\n\tconst beforeParts = before$1.split(\":\").filter(Boolean);\n\tconst afterParts = after.split(\":\").filter(Boolean);\n\tconst totalParts = beforeParts.length + afterParts.length;\n\tif (str.includes(\"::\")) {\n\t\tif (totalParts > 7) return false;\n\t\tif (str === \"::\") return true;\n\t} else if (beforeParts.length !== 8) return false;\n\tconst allParts = [...beforeParts, ...afterParts];\n\treturn allParts.every((part) => /^[0-9a-f]{1,4}$/i.test(part));\n}\n/**\n* **isIpAddress**`(val)`\n*\n* Type guard which checks whether the value is a valid IP address (v4 or v6).\n*/\nfunction isIpAddress(val) {\n\treturn isIp4Address(val) || isIp6Address(val);\n}\n/**\n* **hasUrlPort**`(val)`\n*\n* Type guard which tests whether there is an explicit _port_ reference\n* in the passed in URL (versus implicitly using the default port of the\n* protocol)\n*/\nfunction hasUrlPort(val) {\n\treturn isString(val) && removeUrlProtocol(val).includes(\":\");\n}\n/**\n* **isUrlPath**`(val)`\n*\n* Type guard which checks whether the value is a valid `UrlPath`\n*/\nfunction isUrlPath(val) {\n\treturn isString(val) && (val === \"\" || val.startsWith(\"/\")) && asChars(val).every((c) => isAlpha(c) || isNumberLike(c) || c === \"_\" || c === \"@\" || c === \".\" || c === \"-\");\n}\n/**\n* **isDomainName**`(val)`\n*\n* Type guard which checks whether the value is a valid DNS domain name\n*/\nfunction isDomainName(val) {\n\treturn isString(val) && val.split(\".\").filter((i) => i).length > 1 && isString(val.split(\".\").filter((i) => i).pop()) && asChars(val.split(\".\").filter((i) => i).pop()).length > 1 && val.split(\".\").filter((i) => i).every((i) => isAlpha(i) || isNumberLike(i) || i === \"-\" || i === \"_\");\n}\n/**\n* **isUrlSource**`(val)`\n*\n* Type guard which checks whether the value is a valid URL source\n* (aka, an IP address or a Domain Name)\n*/\nfunction isUrlSource(val) {\n\treturn isDomainName(val) || isIpAddress(val);\n}\n/**\n* **hasUrlQueryParameter**`(val,prop)`\n*\n* Tests whether the valued in has a query parameter specified by `prop`.\n*/\nfunction hasUrlQueryParameter(val, prop) {\n\treturn isString(getUrlQueryParams(val, prop));\n}\n\n//#endregion\n//#region src/type-guards/numeric/isInteger.ts\n/**\n* type guard which validates that `val` is a `number` type which is\n* also a valid Integer number.\n*/\nfunction isInteger(val) {\n\treturn isNumber(val) && Number.isInteger(val);\n}\n\n//#endregion\n//#region src/type-guards/numeric/isNumber.ts\n/**\n* **isNumber**(value)\n*\n* Type guard to test whether passed in value is a numeric type.\n*/\nfunction isNumber(value) {\n\treturn typeof value === \"number\";\n}\n\n//#endregion\n//#region src/type-guards/numeric/isNumericArray.ts\n/**\n* Type guard which validates that the passed in `val` is a string array.\n*/\nfunction isNumericArray(val) {\n\treturn Array.isArray(val) && val.every((i) => isNumber(i));\n}\n\n//#endregion\n//#region src/type-guards/protocol.ts\n/**\n* **hasProtocol**`(val)`\n*\n* Type guard which validates that `val` _starts with_ a known\n* protocol name (e.g., \"https\", \"ftp\", etc.).\n*/\nfunction hasProtocol(val, ...protocols) {\n\treturn isString(val) && protocols.length === 0 ? NETWORK_PROTOCOL.some((i) => val.startsWith(i)) : protocols.some((i) => val.startsWith(i));\n}\n/**\n* **isProtocol**`(val)`\n*\n* Type guard which validates that `val` is a known\n* protocol name (e.g., \"https\", \"ftp\", etc.).\n*/\nfunction isProtocol(val, ...protocols) {\n\treturn isString(val) && protocols.length === 0 ? NETWORK_PROTOCOL.includes(val) : protocols.includes(val);\n}\n/**\n* **hasProtocolPrefix**`(val, [...protocols])`\n*\n* Type guard which validates that `val` _starts with_ a known\n* protocol name (e.g., \"https\", \"ftp\", etc.) followed by `://`.\n*/\nfunction hasProtocolPrefix(val, ...protocols) {\n\treturn isString(val) && protocols.length === 0 ? NETWORK_PROTOCOL.map((i) => `${i}://`).some((i) => val.startsWith(i)) : protocols.map((i) => `${i}://`).some((i) => val.startsWith(i));\n}\n/**\n* **isProtocolPrefix**`(val, [...protocols])`\n*\n* Type guard which validates that `val` is a known\n* protocol name (e.g., \"https\", \"ftp\", etc.) followed by `://`.\n*/\nfunction isProtocolPrefix(val, ...protocols) {\n\treturn isString(val) && protocols.length === 0 ? NETWORK_PROTOCOL.map((i) => `${i}://`).includes(val) : protocols.map((i) => `${i}://`).includes(val);\n}\n\n//#endregion\n//#region src/type-guards/tokens/isDefineObject.ts\n/**\n* **isDefineObject**`(val)`\n*\n* a type-guard which validates that `val` is a `DefineObject` type. This requires that:\n*\n* - `val` be a dictionary object\n* - all _values_ of `val`'s keys must be an `InputToken` (string or otherwise)\n*/\nfunction isDefineObject(val) {\n\treturn isDictionary(val) ? Object.values(val).every((i) => isInputToken(i) || isDefineObject(i) || isDefineTuple(i)) : false;\n}\n\n//#endregion\n//#region src/type-guards/tokens/isDefineTuple.ts\n/**\n* **isDefineTuple**`(val)`\n*\n* A type guard which validates that `val` is a _tuple_ of `DefineTuple`.\n*\n* - `DefineTuple` is just a tuple of `InputToken` elements\n*/\nfunction isDefineTuple(val) {\n\treturn isArray(val) && val.every((i) => isInputToken(i));\n}\n\n//#endregion\n//#region src/type-guards/tokens/isDeltaReturn.ts\n/**\n* A Take function being used with a Lexer returns a `DeltaReturn` and this type\n* guard validates whether `val` is one.\n*/\nfunction isDeltaReturn(val) {\n\treturn isArray(val) && val.length === 2 && isString(val[0]);\n}\n\n//#endregion\n//#region src/type-guards/tokens/isInputToken.ts\n/**\n* **isInputToken**`(val)`\n*\n* A type guard which validates that `val` is a valid `InputToken`. This token\n* can be:\n*\n* - a string definition of an `InputToken` (e.g., `\"string\"`, `\"string | number\"`, etc.)\n* - a tuple definition (e.g., `DefineTuple`)\n* - an object definition (e.g., `DefineObject`)\n*/\nfunction isInputToken(val) {\n\treturn isInputToken__String(val) || isDefineObject(val) || isDefineTuple(val);\n}\n\n//#endregion\n//#region src/type-guards/tokens/isInputToken__String.ts\n/**\n* **isInputToken__String**`(val)`\n*\n* Type guard which validates that `val` is a _string-based_\n* `InputToken`.\n*\n* TODO: this is not ready to be used!\n*/\nfunction isInputToken__String(val) {\n\treturn isString(val);\n}\n\n//#endregion\n//#region src/type-guards/tokens/isShapeCallback.ts\n/**\n* type guard which validates that the `val` passed in is a `ShapeCallback`\n*/\nfunction isShapeCallback(val) {\n\treturn isFunction(val) && val.kind === \"shape\";\n}\n\n//#endregion\n//#region src/type-guards/tokens/isSimpleToken.ts\nconst split_tokens = SIMPLE_TOKENS.map((i) => i.split(\"TOKEN\"));\nconst scalar_split_tokens = SIMPLE_SCALAR_TOKENS.map((i) => i.split(\"TOKEN\"));\n/**\n* **isSimpleToken**`(val)`\n*\n* Type guard which validates that what was passed in is a `SimpleToken`\n*\n* **Related:** `isSimpleTokenTuple`\n*/\nfunction isSimpleToken(val) {\n\treturn isString(val) && split_tokens.some((i) => i.length === 1 && val === i[0] || val.startsWith(i[0]) && val.endsWith(i.slice(-1)[0]) && i.every((p) => val.includes(p)));\n}\n/**\n* **isSimpleScalarToken**`(val)`\n*\n* Type guard which validates that what was passed in is a `SimpleScalarToken`\n*\n* **Related:** `isSimpleToken()`, `isSimpleContainerToken()`\n*/\nfunction isSimpleScalarToken(val) {\n\treturn isString(val) && scalar_split_tokens.some((i) => i.length === 1 && val === i[0] || val.startsWith(i[0]) && val.endsWith(i.slice(-1)[0]) && i.every((p) => val.includes(p)));\n}\n/**\n* **isSimpleContainerToken**`(val)`\n*\n* Type guard which validates that what was passed in is a\n* `SimpleContainerToken`.\n*\n* **Related:** `isSimpleToken()`, `isSimpleScalarToken()`\n*/\nfunction isSimpleContainerToken(val) {\n\treturn isString(val) && scalar_split_tokens.some((i) => i.length === 1 && val === i[0] || val.startsWith(i[0]) && val.endsWith(i.slice(-1)[0]) && i.every((p) => val.includes(p)));\n}\n/**\n* **isSimpleTokenTuple**`(val)`\n*\n* Type guard which validates that what was passed in a tuple of `SimpleToken`'s\n*\n* **Related:** `isSimpleToken()`, `isSimpleTokenTuple()`\n*/\nfunction isSimpleTokenTuple(val) {\n\treturn isArray(val) && val.length !== 0 && val.every(isSimpleToken);\n}\n/**\n* **isSimpleScalarTokenTuple**`(val)`\n*\n* Type guard which validates that what was passed in a tuple of\n* `SimpleScalarToken`'s\n*\n* **Related:** `isSimpleToken()`, `isSimpleTokenTuple()`\n*/\nfunction isSimpleScalarTokenTuple(val) {\n\treturn isArray(val) && val.length !== 0 && val.every(isSimpleScalarToken);\n}\n/**\n* **isSimpleContainerTokenTuple**`(val)`\n*\n* Type guard which validates that what was passed in a tuple of\n* `SimpleContainerToken`'s\n*\n* **Related:** `isSimpleToken()`, `isSimpleTokenTuple()`\n*/\nfunction isSimpleContainerTokenTuple(val) {\n\treturn isArray(val) && val.length !== 0 && val.every(isSimpleContainerToken);\n}\n\n//#endregion\n//#region src/type-guards/tw/tw-color.ts\n/**\n* **isTailwindColor**`(val)`\n*\n* A type guard which validates whether the `val` passed in is a\n* [Tailwind](https://tailwindcss.com/docs/customizing-colors)\n* color (e.g., `blue`, `sky`, `slate`, etc.).\n*\n* **Related:** `isTailwindColor`, `isTailwindColorWithLuminosityAndOpacity`\n*/\nfunction isTailwindColorName(val) {\n\treturn isString(val) && Object.keys(TW_HUE).includes(val);\n}\n/**\n* **isTailwindColorWithLuminosity**`(val)`\n*\n* A type guard which validates whether the `val` passed in is a [Tailwind](https://tailwindcss.com/docs/customizing-colors)\n* color with luminosity string (e.g., `blue-300`, `purple-900`).\n*\n* - this also allows the colors `white` and `black` which are mapped to a luminosity level\n* but do not have variant luminosities\n*\n* **Related:** `isTailwindColor`, `isTailwindColorWithLuminosityAndOpacity`\n*/\nfunction isTailwindColorWithLuminosity(val) {\n\treturn isString(val) && isTailwindColorName(val.split(\"-\")[0]) && (![\"white\", \"black\"].includes(val.split(\"-\")[0]) || val.split(\"-\").length === 1) && (!val.includes(\"-\") || Object.keys(TW_LUMINOSITY).includes(retainAfter(val, \"-\")));\n}\n/**\n* **isTailwindColorWithLuminosityAndOpacity**`(val)`\n*\n* A type guard which validates whether the `val` passed in is a [Tailwind](https://tailwindcss.com/docs/customizing-colors)\n* color string with both **luminosity** and **opacity** expressed (e.g., `blue-300/40`, `purple-900/75`).\n*\n* - this also allows the colors `white` and `black` which are mapped to a luminosity level\n* but do not have variant luminosities\n*\n* **Related:** `isTailwindColor`, `isTailwindColorWithLuminosity`, `isTailwindColorName`\n*/\nfunction isTailwindColorWithLuminosityAndOpacity(val) {\n\treturn isString(val) && val.includes(\"/\") && isTailwindColorWithLuminosity(val.split(\"/\")[0]) && isNumberLike(val.split(\"/\")[1]) && ([1, 2].includes(val.split(\"/\")[1].length) || val.split(\"/\")[1] === \"100\");\n}\n/**\n* **isTailwindColor**`(val)`\n*\n* A type guard which validates whether the `val` passed in is a\n* \"fully qualified\" [Tailwind](https://tailwindcss.com/docs/customizing-colors)\n* color string.\n*\n* - All color string must include a luminosity value except `white` and `black`\n* - You may _optionally_ add an opacity value.\n* - Examples:\n* - `blue-500`\n* - `white`\n* - `black/50`\n* - `red-700/25`\n*\n* **Related:** `isTailwindColorWithLuminosityAndOpacity`, `isTailwindColorWithLuminosity`, `isTargetedTailwindColor`\n*/\nfunction isTailwindColor(val) {\n\treturn isTailwindColorWithLuminosity(val) || isTailwindColorWithLuminosityAndOpacity(val);\n}\n/**\n* Type guard which validates that `val` is a `TwModifier` (e.g., \"dark\", \"focus\", etc.).\n*/\nfunction isTailwindModifier(val) {\n\treturn isString(val) && TW_MODIFIERS.includes(val);\n}\n/**\n* A type guard which validates that `val` is a viable \"target\" for a Tailwind\n* color string (e.g., \"bg\", \"text\", \"border\", etc.).\n*/\nfunction isTailwindColorTarget(val) {\n\treturn isString(val) && TW_COLOR_TARGETS.includes(val);\n}\n/**\n* A type guard which validates that `val` is a fully qualified Tailwind class which:\n*\n* - targets a valid source (e.g., \"bg\", \"text\", etc.)\n* - has a valid color and luminosity (and optionally an opacity)\n* - and if any _modifiers_ were at start of string they are part of the\n* those authorized by the the `allowedModifiers` string\n*\n* **Note:** if `allowedModifiers` is set with a single value of `true` then all known modifiers\n* are allowed.\n*\n* **Related:** `isTailwindColor`, `isTailwindColorTarget`, `isTailwindModifier`\n*/\nfunction isTailwindColorClass(val, ...allowedModifiers) {\n\tif (isString(val)) {\n\t\tconst mods = getTailwindModifiers(val);\n\t\tconst targetted = removeTailwindModifiers(val);\n\t\tconst target = targetted.split(\"-\")[0];\n\t\tconst color = targetted.split(\"-\").slice(1).join(\"-\");\n\t\treturn isTailwindColorTarget(target) && isTailwindColor(color) && (allowedModifiers[0] === true || mods.every((i) => allowedModifiers.includes(i)));\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region src/type-guards/urls/news/australian.ts\nconst URL$19 = AUSTRALIAN_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Australian news URL\n*/\nfunction isAustralianNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$19.includes(val) || URL$19.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/belgium.ts\nconst URL$18 = BELGIUM_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Belgium news URL\n*/\nfunction isBelgiumNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$18.includes(val) || URL$18.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/canadian.ts\nconst URL$17 = CANADIAN_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Canadian news URL\n*/\nfunction isCanadianNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$17.includes(val) || URL$17.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/chinese.ts\nconst URL$16 = CHINESE_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Chinese news URL\n*/\nfunction isChineseNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$16.includes(val) || URL$16.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/danish.ts\nconst URL$15 = DANISH_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Danish news URL\n*/\nfunction isDanishNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$15.includes(val) || URL$15.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/dutch.ts\nconst URL$14 = DUTCH_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Dutch news URL\n*/\nfunction isDutchNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$14.includes(val) || URL$14.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/french.ts\nconst URL$13 = FRENCH_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a French news URL\n*/\nfunction isFrenchNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$13.includes(val) || URL$13.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/german.ts\nconst URL$12 = GERMAN_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a German news URL\n*/\nfunction isGermanNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$12.includes(val) || URL$12.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/indian.ts\nconst URL$11 = INDIAN_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Indian news URL\n*/\nfunction isIndianNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$11.includes(val) || URL$11.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/isNewsUrl.ts\n/**\n* Type guard which identifies whether the `val` passed in is a URL pointing to a leading\n* worldwide news organization.\n*\n* **Note:** _there is no way to make this all inclusive so we've simply added the most popular\n* new organizations for most countries in western EU, North America, and have added notables such\n* as China, India, Japan, South Korea, and Australia as well._\n*/\nfunction isNewsUrl(val) {\n\treturn isAustralianNewsUrl(val) || isBelgiumNewsUrl(val) || isCanadianNewsUrl(val) || isDanishNewsUrl(val) || isDutchNewsUrl(val) || isFrenchNewsUrl(val) || isGermanNewsUrl(val) || isIndianNewsUrl(val) || isItalianNewsUrl(val) || isJapaneseNewsUrl(val) || isMexicanNewsUrl(val) || isNorwegianNewsUrl(val) || isSouthKoreanNewsUrl(val) || isSpanishNewsUrl(val) || isSwissNewsUrl(val) || isTurkishNewsUrl(val) || isUkNewsUrl(val) || isUsNewsUrl(val);\n}\n\n//#endregion\n//#region src/type-guards/urls/news/italian.ts\nconst URL$10 = ITALIAN_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Italian news URL\n*/\nfunction isItalianNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$10.includes(val) || URL$10.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/japanese.ts\nconst URL$9 = JAPANESE_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Japanese news URL\n*/\nfunction isJapaneseNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$9.includes(val) || URL$9.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/mexican.ts\nconst URL$8 = MEXICAN_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Mexican news URL\n*/\nfunction isMexicanNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$8.includes(val) || URL$8.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/norwegian.ts\nconst URL$7 = NORWEGIAN_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Norwegian news URL\n*/\nfunction isNorwegianNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$7.includes(val) || URL$7.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/south-korean.ts\nconst URL$6 = SOUTH_KOREAN_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a South Korean news URL\n*/\nfunction isSouthKoreanNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$6.includes(val) || URL$6.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/spanish.ts\nconst URL$5 = SPANISH_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Spanish news URL\n*/\nfunction isSpanishNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$5.includes(val) || URL$5.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/swiss.ts\nconst URL$4 = SWISS_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Swiss news URL\n*/\nfunction isSwissNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$4.includes(val) || URL$4.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/turkish.ts\nconst URL$3 = TURKISH_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Turkish news URL\n*/\nfunction isTurkishNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$3.includes(val) || URL$3.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/uk.ts\nconst URL$2 = UK_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a UK news URL\n*/\nfunction isUkNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$2.includes(val) || URL$2.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/us.ts\nconst URL$1 = US_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a US news URL\n*/\nfunction isUsNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$1.includes(val) || URL$1.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/repos/bitbucket.ts\n/**\n* **isBitbucketUrl**`(val)`\n*\n* Type guard which validates that the value passed in is a valid BitBucket URL\n*/\nfunction isBitbucketUrl(val) {\n\tconst valid$1 = REPO_SOURCE_LOOKUP.bitbucket;\n\treturn isString(val) && valid$1.some((i) => val === i || val.startsWith(`${i}/`) || val.startsWith(`${i}?`));\n}\n\n//#endregion\n//#region src/type-guards/urls/repos/codeCommit.ts\n/**\n* **isCodeCommitUrl**`(val)`\n*\n* Type guard which validates that the value passed in is a valid AWS Code Commit URL\n*/\nfunction isCodeCommitUrl(val) {\n\tconst valid$1 = REPO_SOURCE_LOOKUP.codecommit;\n\treturn isString(val) && valid$1.some((i) => val === i || val.startsWith(`${i}/`) || val.startsWith(`${i}?`));\n}\n\n//#endregion\n//#region src/type-guards/urls/repos/github.ts\n/**\n* **isGithubUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* **Github** URL.\n*/\nfunction isGithubUrl(val) {\n\tconst valid$1 = [\n\t\t\"https://github.com\",\n\t\t\"https://www.github.com\",\n\t\t\"https://github.io\"\n\t];\n\treturn isString(val) && valid$1.some((i) => val === i || val.startsWith(`${i}/`) || val.startsWith(`${i}?`));\n}\n/**\n* **isGithubOrgUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* **Github** _organization_ URL.\n*/\nfunction isGithubOrgUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && stripper(val).length === 2;\n}\nfunction stripper(s) {\n\treturn stripTrailing(stripLeading(s, \"https://github.com/\"), \"/\");\n}\n/**\n* **isGithubRepoUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* **Github** _repo_ URL.\n*/\nfunction isGithubRepoUrl(val) {\n\treturn !!(isString(val) && val.startsWith(\"https://github.com/\") && stripper(val).split(\"/\").length === 2);\n}\n/**\n* **isGithubRepoReleasesUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* URL for the _releases_ of a given _repo_.\n*\n* **Related:** `isGithubRepoReleaseTagUrl`\n*/\nfunction isGithubRepoReleasesUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && val.includes(\"/releases\") && stripper(val).split(\"/\").length === 3;\n}\n/**\n* **isGithubRepoReleaseTagUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* URL for the _releases_ of a given _repo_.\n*\n* **Related:** `isGithubRepoReleasesUrl`\n*/\nfunction isGithubRepoReleaseTagUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && val.includes(\"/releases/tag/\") && stripper(val).length === 4;\n}\n/**\n* **isGithubIssuesListUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* URL for the _issues_ of a given _repo_.\n*\n* **Related:** `isGithubIssueUrl`\n*/\nfunction isGithubIssuesListUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && val.includes(\"/issues\");\n}\n/**\n* **isGithubIssueUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* URL for the _issues_ of a given _repo_.\n*\n* **Related:** `isGithubIssuesListUrl`\n*/\nfunction isGithubIssueUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && val.includes(\"/issues/\");\n}\n/**\n* **isGithubProjectsListUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* URL for the _projects_ of a given _repo_.\n*\n* **Related:** `isGithubProjectUrl`\n*/\nfunction isGithubProjectsListUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && (val.includes(\"/projects?\") || val.trim().endsWith(\"/projects\")) && stripper(val).split(\"/\").length === 3;\n}\n/**\n* **isGithubProjectUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* URL for a _specific project_ of a given _repo_.\n*\n* **Related:** `isGithubProjectsListUrl`\n*/\nfunction isGithubProjectUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && val.includes(\"/projects/\") && stripper(val).split(\"/\").length === 4;\n}\n/**\n* **isGithubReleasesListUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* URL for the _Releases_ of a given _repo_.\n*\n* **Related:** `isGithubReleaseTagUrl`\n*/\nfunction isGithubReleasesListUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && (val.includes(\"/releases?\") || val.trim().endsWith(\"/releases\")) && stripper(val).split(\"/\").length === 3;\n}\n/**\n* **isGithubReleaseTagUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* URL for a _specific release_ of a given _repo_.\n*\n* **Related:** `isGithubReleasesListUrl`\n*/\nfunction isGithubReleaseTagUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && val.includes(\"/releases/tag/\") && stripper(val).split(\"/\").length === 5;\n}\n\n//#endregion\n//#region src/type-guards/urls/repos/isRepoUrl.ts\n/**\n* **isRepoUrl**`(val)`\n*\n* Type guard which validates that the value passed in is a valid Repo URL\n*/\nfunction isRepoUrl(val) {\n\treturn isGithubUrl(val) || isBitbucketUrl(val) || isCodeCommitUrl(val);\n}\n\n//#endregion\n//#region src/type-guards/urls/repos/isSemanticVersion.ts\n/**\n* **isRepoSource**`(val)`\n*\n* Type guard which validates whether the value passed in is a\n* `RepoSource`.\n*/\nfunction isRepoSource(v) {\n\treturn isString(v) && REPO_SOURCES.includes(v);\n}\n/**\n* **isSemanticVersion**`(val,[allowPrefix]=false)`\n*\n* Type guard which validates whether the value passed in is a\n* semantic version number.\n*\n* - the optional `allowPrefix` parameter allows for a lowercase \"v\"\n* to be prefixed to the version so that values like `v1.0.12` and\n* `v 1.0.12` are allowed.\n* - by default the `allowPrefix` option is set to false\n*/\nfunction isSemanticVersion(v, allowPrefix = false) {\n\treturn isString(v) && v.split(\".\").length === 3 && !Number.isNaN(Number(v.split(\".\")[1])) && !Number.isNaN(Number(v.split(\".\")[2])) && (!Number.isNaN(Number(v.split(\".\")[0])) || allowPrefix && !Number.isNaN(Number(stripLeading(v.split(\".\")[0], \"v\").trim())));\n}\n\n//#endregion\n//#region src/type-guards/urls/retail.ts\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Whole Food Markets**.\n*/\nfunction isWholeFoodsUrl(val) {\n\treturn isString(val) && WHOLE_FOODS_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **CVS** pharmacy.\n*/\nfunction isCvsUrl(val) {\n\treturn isString(val) && CVS_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Walgreens** pharmacy.\n*/\nfunction isWalgreensUrl(val) {\n\treturn isString(val) && WALGREENS_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **CVS** pharmacy.\n*/\nfunction isKrogersUrl(val) {\n\treturn isString(val) && KROGER_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **CVS** pharmacy.\n*/\nfunction isZaraUrl(val) {\n\treturn isString(val) && ZARA_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **H&M** retailer.\n*/\nfunction isHmUrl(val) {\n\treturn isString(val) && HM_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Dell** retailer.\n*/\nfunction isDellUrl(val) {\n\treturn isString(val) && DELL_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Ikea** retailer.\n*/\nfunction isIkeaUrl(val) {\n\treturn isString(val) && KROGER_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Lowes** retailer.\n*/\nfunction isLowesUrl(val) {\n\treturn isString(val) && KROGER_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Macy's** retailer.\n*/\nfunction isNikeUrl(val) {\n\treturn isString(val) && NIKE_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Macy's** retailer.\n*/\nfunction isWayfairUrl(val) {\n\treturn isString(val) && WAYFAIR_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Macy's** retailer.\n*/\nfunction isBestBuyUrl(val) {\n\treturn isString(val) && BEST_BUY_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Macy's** retailer.\n*/\nfunction isCostCoUrl(val) {\n\treturn isString(val) && COSTCO_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Macy's** retailer.\n*/\nfunction isEtsyUrl(val) {\n\treturn isString(val) && ETSY_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Macy's** retailer.\n*/\nfunction isTargetUrl(val) {\n\treturn isString(val) && TARGET_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Macy's** retailer.\n*/\nfunction isEbayUrl(val) {\n\treturn isString(val) && EBAY_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for the **Home Depot** retailer.\n*/\nfunction isHomeDepotUrl(val) {\n\treturn isString(val) && HOME_DEPOT_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for the **Macy's** retailer.\n*/\nfunction isMacysUrl(val) {\n\treturn isString(val) && MACYS_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Apple**.\n*/\nfunction isAppleUrl(val) {\n\treturn isString(val) && APPLE_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Walmart**.\n*/\nfunction isWalmartUrl(val) {\n\treturn isString(val) && WALMART_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Walmart**.\n*/\nfunction isAmazonUrl(val) {\n\treturn isString(val) && AMAZON_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which check if the passed in value is a Url for one\n* of the top retailers in the world\n*/\nfunction isRetailUrl(val) {\n\treturn isAmazonUrl(val) || isWalgreensUrl(val) || isAppleUrl(val) || isMacysUrl(val) || isEbayUrl(val) || isHomeDepotUrl(val) || isTargetUrl(val) || isEtsyUrl(val) || isCostCoUrl(val) || isBestBuyUrl(val) || isWayfairUrl(val) || isNikeUrl(val) || isLowesUrl(val) || isIkeaUrl(val) || isDellUrl(val) || isHmUrl(val) || isZaraUrl(val) || isKrogersUrl(val) || isWalgreensUrl(val) || isCvsUrl(val) || isWholeFoodsUrl(val);\n}\n\n//#endregion\n//#region src/type-guards/urls/Social.ts\nconst URL = SOCIAL_MEDIA.flatMap((i) => i.baseUrls);\nconst PROFILE = SOCIAL_MEDIA.map((i) => i.profileUrl);\n/**\n* type guard which validates that `val` is a social media URL.\n*\n* **Related:** `isSocialMediaProfileUrl`\n*/\nfunction isSocialMediaUrl(val) {\n\treturn isString(val) && URL.some((i) => val.startsWith(i));\n}\n/**\n* type guard which validates that `val` is a user profile URL on a social\n* media platform.\n*\n* **Related:** `isSocialMediaUrl`\n*/\nfunction isSocialMediaProfileUrl(val) {\n\treturn isString(val) && PROFILE.some((i) => i.startsWith(`${i}`));\n}\n\n//#endregion\n//#region src/type-guards/urls/youtube.ts\n/**\n* **isYouTubeUrl**`(val)`\n*\n* Type guard which checks whether the passed in value is a valid\n* YouTube URL.\n*/\nfunction isYouTubeUrl(val) {\n\treturn isString(val) && (val.startsWith(\"https://www.youtube.com\") || val.startsWith(\"https://youtube.com\") || val.startsWith(\"https://youtu.be\"));\n}\n/**\n* **isYouTubeShareUrl**`(val)`\n*\n* Type guard which checks whether the passed in value is a URL\n* from YouTube's _URL shortening_ site `https://youtu.be`.\n*/\nfunction isYouTubeShareUrl(val) {\n\treturn isString(val) && val.startsWith(`https://youtu.be`);\n}\n/**\n* **isYouTubeVideoUrl**`(val)`\n*\n* Type guard which checks whether the passed in value is a valid\n* YouTube URL _which plays video_.\n*/\nfunction isYouTubeVideoUrl(val) {\n\treturn isString(val) && (val.startsWith(\"https://www.youtube.com\") || val.startsWith(\"https://youtube.com\") || val.startsWith(\"https://youtu.be\"));\n}\n/**\n* **isYouTubePlaylistUrl**`(val)`\n*\n* Type guard which checks whether the passed in value is a valid\n* YouTube URL which points to a \"playlist\" on the platform.\n*/\nfunction isYouTubePlaylistUrl(val) {\n\treturn isString(val) && (val === `https://www.youtube.com/feed/playlists` || val === `https://youtube.com/feed/playlists` || val === `https://www.youtube.com/channel/playlists` || val === `https://youtube.com/channel/playlists` || val.startsWith(`https://www.youtube.com/@`) && val.endsWith(`/playlists`) || val.startsWith(`https://youtube.com/@`) && val.endsWith(`/playlists`));\n}\n/**\n* maps the \"feed type\" to a URL path\n*/\nfunction feed_map(type) {\n\treturn isUndefined(type) ? `/feed` : type === \"liked\" ? `/playlist?list=LL` : [\n\t\t\"history\",\n\t\t\"playlists\",\n\t\t\"trending\",\n\t\t\"subscriptions\"\n\t].includes(type) ? `/feed/${type}` : `/feed/`;\n}\n/**\n* **isYouTubeFeedUrl**`(val,[kind])**\n*\n* Type guard which checks whether the passed in value is a valid\n* YouTube URL which responds with \"feed\" content. This is content\n* which is available to a logged in user and helps them see lists\n* of videos related to their settings.\n*\n* By default any \"feed\" URL is matched but you can narrow that down\n* to a specific feed type by specifying the `kind` variable.\n*/\nfunction isYouTubeFeedUrl(val, type) {\n\treturn isString(val) && (val.startsWith(`https://www.youtube.com${feed_map(type)}`) || val.startsWith(`https://youtube.com${feed_map(type)}`));\n}\n/**\n* **isYouTubeHistoryUrl**`(val,[kind])**\n*\n* Type guard which checks whether the passed in value is a valid\n* YouTube URL which responds with a user's history feed.\n*/\nfunction isYouTubeFeedHistoryUrl(val) {\n\treturn isString(val) && (val.startsWith(`https://www.youtube.com/feed/history`) || val.startsWith(`https://youtube.com/feed/history`));\n}\n/**\n* **isYouTubePlaylistsUrl**`(val,[kind])**\n*\n* Type guard which checks whether the passed in value is a valid\n* YouTube URL which responds with a user's own playlists page.\n*/\nfunction isYouTubePlaylistsUrl(val) {\n\treturn isString(val) && (val.startsWith(`https://www.youtube.com/feed/playlists`) || val.startsWith(`https://youtube.com/feed/playlists`));\n}\n/**\n* **isYouTubeTrendingUrl**`(val,[kind])**\n*\n* Type guard which checks whether the passed in value is a valid\n* YouTube URL which responds with a user's own history feed.\n*/\nfunction isYouTubeTrendingUrl(val) {\n\treturn isString(val) && (val.startsWith(`https://www.youtube.com/feed/trending`) || val.startsWith(`https://youtube.com/feed/trending`));\n}\n/**\n* **isYouTubeSubscriptionsUrl**`(val,[kind])**\n*\n* Type guard which checks whether the passed in value is a valid\n* YouTube URL which responds with a user's own subscriptions feed.\n*/\nfunction isYouTubeSubscriptionsUrl(val) {\n\treturn isString(val) && (val.startsWith(`https://www.youtube.com/feed/subscriptions`) || val.startsWith(`https://youtube.com/feed/subscriptions`));\n}\nfunction isYouTubeCreatorUrl(url) {\n\treturn isString(url) && (url.startsWith(`https://www.youtube.com/@`) || url.startsWith(`https://youtube.com/@`) || url.startsWith(`https://www.youtube.com/channel/`));\n}\nfunction isYouTubeVideosInPlaylist(val) {\n\treturn isString(val) && (val.startsWith(`https://www.youtube.com/playlist?`) || val.startsWith(`https://youtube.com/playlist?`)) && hasUrlQueryParameter(val, \"list\");\n}\n\n//#endregion\n//#region src/boolean-logic/not.ts\n/**\n* **not**`(val)`\n*\n* Returns the inverse of the value's truthy/falsy value.\n*/\nfunction not(val) {\n\treturn !!isFalsy(val);\n}\n\n//#endregion\n//#region src/branding/brand.ts\nfunction brand(val, _name) {\n\treturn val;\n}\n\n//#endregion\n//#region src/branding/fourDigitYear.ts\nfunction fourDigitYear(year) {\n\treturn year;\n}\n\n//#endregion\n//#region src/branding/integer.ts\nfunction integer(num) {\n\treturn num;\n}\n\n//#endregion\n//#region src/branding/threeDigitMillisecond.ts\nfunction threeDigitMillisecond(Millisecond) {\n\treturn Millisecond;\n}\n\n//#endregion\n//#region src/branding/twoDigitHour.ts\nfunction twoDigitHour(hour) {\n\treturn hour;\n}\n\n//#endregion\n//#region src/branding/twoDigitMinute.ts\nfunction twoDigitMinute(Minute) {\n\treturn Minute;\n}\n\n//#endregion\n//#region src/branding/twoDigitSecond.ts\nfunction twoDigitSecond(Second) {\n\treturn Second;\n}\n\n//#endregion\n//#region src/branding/unbrand.ts\n/**\n* **unbrand**`(val)`\n*\n* This runtime utility _does not_ modify the runtime value at all but it\n* will strip off a \"branded type\" which was added with the `brand()` or\n* `Brand<T,U>` utilities\n*/\nfunction unbrand(val) {\n\treturn val;\n}\n\n//#endregion\n//#region src/constants/NO_MATCH.ts\n/**\n* Used to indicate that a **take** function was not able to match\n* what it's configured to _take_ at the HEAD of the string being parsed\n* by the Lexer.\n*/\nconst NO_MATCH = \"NO MATCH\";\n\n//#endregion\n//#region src/containers/freeze.ts\n/**\n* **freeze**`(container)`\n*\n* Deeply freezes a container (runtime) while using the `Immutable` utility to\n* deeply disallow mutable operations in the type system.\n*/\nfunction freeze(obj) {\n\tconst output = isArray(obj) ? [] : {};\n\tfor (const key of keysOf(obj)) {\n\t\tconst value = obj[key];\n\t\toutput[key] = typeof value === \"object\" ? freeze(value) : output[key];\n\t}\n\tObject.freeze(output);\n\treturn output;\n}\n\n//#endregion\n//#region src/css/createCssKeyframe.ts\nfunction api(state = []) {\n\treturn {\n\t\tstate,\n\t\tadd: (stage, defn) => {\n\t\t\treturn api([...state, [stage, defn]]);\n\t\t},\n\t\tdone() {\n\t\t\treturn state;\n\t\t}\n\t};\n}\nfunction hasDone(val) {\n\treturn isDictionary(val) && \"done\" in val && typeof val.done === \"function\";\n}\nfunction frameToCss(frames) {\n\tconst tuples = frames.map(([ts, defn]) => [ts, Object.keys(defn).reduce((acc, i) => [...acc, `${i}: ${String(defn[i])}`], []).join(\"; \")]);\n\treturn tuples.map(([ts, defn]) => ` ${ts} { ${defn} }`).join(\"\\n\");\n}\nfunction createCssKeyframe(name, keyframes) {\n\t/** api surface */\n\tconst surface = api([]);\n\t/** return from user callback */\n\tconst rtn = keyframes(surface);\n\tconst frames = hasDone(rtn) ? rtn.done() : rtn;\n\treturn {\n\t\tname,\n\t\tkeyframes: frames,\n\t\tcss: `@keyframes ${name} {\\n${frameToCss(frames)}\\n}`\n\t};\n}\n\n//#endregion\n//#region src/css/cssFromDefinition.ts\n/**\n* **cssFromDefinition**`(defn, [opt])`\n*\n* converts a `CssDefinition` into a CSS string\n*/\nfunction cssFromDefinition(defn, opt) {\n\tif (isUndefined(defn)) return \"\";\n\tconst inline$1 = isDefined(opt?.inline) ? opt.inline : true;\n\tconst indent = isString(opt?.indent) ? opt.indent : \"\";\n\tconst nextDefn = inline$1 ? \" \" : \"\\n\";\n\treturn Object.keys(defn).map((key) => {\n\t\tconst val = ensureTrailing(defn[key], \";\");\n\t\treturn `${indent}${key}: ${val}`;\n\t}).join(nextDefn);\n}\nfunction defineCss(defn) {\n\tconst fn$1 = (selector) => {\n\t\treturn selector ? `${selector} {\\n${cssFromDefinition(defn, { indent: \" \" })}}\\n` : cssFromDefinition(defn);\n\t};\n\treturn createFnWithProps(fn$1, { defn });\n}\n\n//#endregion\n//#region src/datetime/asDate.ts\n/**\n* **asDate**`(input)`\n*\n* Converts common date representations to a Javascript Date object.\n*\n* - the goal is to have **Date** information but not **Time** information\n* - use `asDateTime()` if you wish to preserve time info\n* - all time information -- if present when passed in -- should be set to\n* the stroke of midnight and be in UTC timezone\n*/\nfunction asDate(input) {\n\tif (input === void 0) throw err(\"invalid-date\", `The asDate() function was passed an undefined value!`);\n\ttry {\n\t\tconst toUtcMidnight = (d) => {\n\t\t\tconst utc = new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), 0, 0, 0, 0));\n\t\t\treturn utc;\n\t\t};\n\t\tif (isDate(input)) return toUtcMidnight(new Date(input.getTime()));\n\t\tif (isMoment(input)) return toUtcMidnight(input.toDate());\n\t\tif (isLuxonDate(input)) return toUtcMidnight(input.toJSDate());\n\t\tif (isDate(input)) return toUtcMidnight(input);\n\t\tif (isTemporalDate(input)) return toUtcMidnight(new Date(input.toString()));\n\t\tif (isIsoDateTime(input)) {\n\t\t\tconst parsed = parseIsoDate(input);\n\t\t\tif (isError(parsed)) throw parsed;\n\t\t\tconst year = Number(parsed.year);\n\t\t\tconst month = Number(parsed.month);\n\t\t\tconst day = Number(parsed.date);\n\t\t\treturn new Date(Date.UTC(year, month - 1, day, 0, 0, 0, 0));\n\t\t}\n\t\tif (isFourDigitYear(input)) {\n\t\t\tconst year = Number(input);\n\t\t\treturn new Date(Date.UTC(year, 0, 1, 0, 0, 0, 0));\n\t\t}\n\t\tif (isNumber(input) && input >= 1e3 && input <= 9999 && Math.floor(input) === input) return new Date(Date.UTC(input, 0, 1, 0, 0, 0, 0));\n\t\tif (isNumber(input) && isEpochInMilliseconds(input)) return toUtcMidnight(new Date(input));\n\t\tif (isNumber(input) && isEpochInSeconds(input)) return toUtcMidnight(new Date(input * 1e3));\n\t\tif (isIsoYear(input)) {\n\t\t\tconst parsed = parseIsoDate(input);\n\t\t\tif (isError(parsed)) throw parsed;\n\t\t\tconst year = Number(parsed.year);\n\t\t\treturn new Date(Date.UTC(year, 0, 1, 0, 0, 0, 0));\n\t\t}\n\t\tif (isIsoExplicitDate(input)) {\n\t\t\tconst parsed = parseIsoDate(input);\n\t\t\tif (isError(parsed)) throw parsed;\n\t\t\tconst year = Number(parsed.year);\n\t\t\tconst month = Number(parsed.month);\n\t\t\tconst day = Number(parsed.date);\n\t\t\treturn new Date(Date.UTC(year, month - 1, day, 0, 0, 0, 0));\n\t\t}\n\t\tif (isIsoImplicitDate(input)) {\n\t\t\tconst parsed = parseIsoDate(input);\n\t\t\tif (isError(parsed)) throw parsed;\n\t\t\tconst year = Number(parsed.year);\n\t\t\tconst month = Number(parsed.month);\n\t\t\tconst day = Number(parsed.date);\n\t\t\treturn new Date(Date.UTC(year, month - 1, day, 0, 0, 0, 0));\n\t\t}\n\t\tif (isIsoDate(input)) {\n\t\t\tconst parsed = parseIsoDate(input);\n\t\t\tif (isError(parsed)) throw parsed;\n\t\t\tconst year = Number(parsed.year);\n\t\t\tconst month = Number(parsed.month);\n\t\t\tconst day = Number(parsed.date);\n\t\t\treturn new Date(Date.UTC(year, month - 1, day, 0, 0, 0, 0));\n\t\t}\n\t} catch (e) {\n\t\tif (isError(e)) throw err(`parse-date/as-date`, `The input passed to asDate(${asString(input)}) function ran into an error while trying to convert this input into a Javascript date object. Underlying error message was: ${e.message}`);\n\t\telse throw err(`parse-date/as-date`, `The input passed to asDate(${asString(input)}) function ran into an error while trying to convert this input into a Javascript date object. Underlying error message was: ${asString(e)}`);\n\t}\n\tthrow err(`invalid/date`, `The date-like value you passed to 'asDate(${asString(input)})' function was unable to be converted to a Javascript Date object!`, { date: input });\n}\n\n//#endregion\n//#region src/datetime/asDateTime.ts\nconst getLocalIanaZone = (() => {\n\tconst tz = (process.env.TZ && isIanaTimezone(process.env.TZ) ? process.env.TZ : Intl.DateTimeFormat().resolvedOptions().timeZone) ?? \"UTC\";\n\treturn () => tz;\n})();\nfunction offsetMinutesToString(mins) {\n\tconst sign = mins >= 0 ? \"+\" : \"-\";\n\tconst abs$1 = Math.abs(mins);\n\tconst hh = String(Math.floor(abs$1 / 60)).padStart(2, \"0\");\n\tconst mm = String(abs$1 % 60).padStart(2, \"0\");\n\treturn `${sign}${hh}:${mm}`;\n}\n/**\n* **asDateTime**`(input)`\n*\n* Converts common date representations to a Javascript Date object.\n*\n* - the goal is to have both **Date** and **Time** information preserved\n* - use `asDate()` if you wish to only preserve date information\n* - this will return the `DatePlus` interface which is just the `Date`\n* interface with a few extra properties to try and preserve the source\n* timezone where that's feasible\n*/\nfunction asDateTime(input) {\n\tif (isMoment(input)) {\n\t\tconst parsed = input.parseZone();\n\t\tconst d = new Date(parsed.toISOString());\n\t\tconst offsetMins = parsed.utcOffset();\n\t\tconst tz = isTimezoneOffset(offsetMinutesToString(offsetMins)) ? offsetMinutesToString(offsetMins) : null;\n\t\td.offset = tz;\n\t\td.tz = isIanaTimezone(input._z?.name) ? input._z.name : null;\n\t\td.source = \"moment\";\n\t\tconst sourceIso = parsed.toISOString(true);\n\t\td.sourceIso = sourceIso.endsWith(\"+00:00\") ? sourceIso.replace(\"+00:00\", \"Z\") : sourceIso;\n\t\treturn d;\n\t}\n\tif (isLuxonDate(input)) {\n\t\tconst d = input.toJSDate();\n\t\td.offset = offsetMinutesToString(input.offset);\n\t\td.tz = isIanaTimezone(input.zoneName) ? input.zoneName : null;\n\t\td.source = \"luxon\";\n\t\td.sourceIso = input.toISO();\n\t\treturn d;\n\t}\n\tif (isTemporalDate(input)) {\n\t\tlet d;\n\t\tif (\"epochNanoseconds\" in input) {\n\t\t\tconst zdt = input.toZonedDateTimeISO(getLocalIanaZone());\n\t\t\td = new Date(zdt.epochMilliseconds);\n\t\t\td.offset = isTimezoneOffset(zdt.offset) ? zdt.offset : null;\n\t\t\td.tz = zdt.timeZone && isIanaTimezone(zdt.timeZone.id) ? zdt.timeZone.id : null;\n\t\t\td.sourceIso = zdt.toString();\n\t\t} else if (\"timeZone\" in input) {\n\t\t\tconst zdt = input;\n\t\t\td = new Date(zdt.epochMilliseconds);\n\t\t\td.offset = isTimezoneOffset(zdt.offset) ? zdt.offset : null;\n\t\t\td.tz = zdt.timeZone && isIanaTimezone(zdt.timeZone.id) ? zdt.timeZone.id : null;\n\t\t\td.sourceIso = zdt.toString();\n\t\t} else {\n\t\t\tconst instant = input.toZonedDateTime(\"UTC\").toInstant();\n\t\t\td = new Date(instant.epochMilliseconds);\n\t\t\td.offset = null;\n\t\t\td.tz = null;\n\t\t\td.sourceIso = null;\n\t\t}\n\t\td.source = \"temporal\";\n\t\treturn d;\n\t}\n\tif (isDayJs(input)) {\n\t\tconst d = input.toDate();\n\t\td.offset = null;\n\t\td.tz = null;\n\t\td.source = \"day.js\";\n\t\td.sourceIso = input.toISOString();\n\t\treturn d;\n\t}\n\tif (isIsoDateTime(input)) {\n\t\tconst meta = parseIsoDate(input);\n\t\tconst d = new Date(input);\n\t\td.offset = meta.timezone;\n\t\td.tz = null;\n\t\td.source = \"iso-datetime\";\n\t\td.sourceIso = input;\n\t\treturn d;\n\t}\n\tif (isIsoYearMonth(input)) {\n\t\tconst meta = parseIsoDate(input);\n\t\tconst d = new Date(`${meta.year}-${meta.month}-01T00:00:00.000Z`);\n\t\td.offset = \"Z\";\n\t\td.tz = null;\n\t\td.source = \"iso-year-month\";\n\t\td.sourceIso = `${meta.year}-${meta.month}-01T00:00:00.000Z`;\n\t\treturn d;\n\t}\n\tif (isIsoYear(input)) {\n\t\tconst d = new Date(`${input}-01-01T00:00:00.000Z`);\n\t\td.offset = \"Z\";\n\t\td.tz = null;\n\t\td.source = \"iso-year\";\n\t\td.sourceIso = `${input}-01-01T00:00:00.000Z`;\n\t\treturn d;\n\t}\n\tif (isIsoDate(input)) {\n\t\tconst meta = parseIsoDate(input);\n\t\tconst d = new Date(`${meta.year}-${meta.month}-${meta.date}T00:00:00.000Z`);\n\t\td.offset = \"Z\";\n\t\td.tz = null;\n\t\td.source = `iso-${meta.dateType}`;\n\t\td.sourceIso = `${input}T00:00:00.000Z`;\n\t\treturn d;\n\t}\n\tif (isNumber(input)) {\n\t\tif (isEpochInMilliseconds(input)) {\n\t\t\tconst d = new Date(input);\n\t\t\td.offset = null;\n\t\t\td.tz = null;\n\t\t\td.source = \"epoch-milliseconds\";\n\t\t\td.sourceIso = d.toISOString();\n\t\t\treturn d;\n\t\t}\n\t\tif (isEpochInSeconds(input)) {\n\t\t\tconst d = new Date(input * 1e3);\n\t\t\td.offset = null;\n\t\t\td.tz = null;\n\t\t\td.source = \"epoch\";\n\t\t\td.sourceIso = d.toISOString();\n\t\t\treturn d;\n\t\t}\n\t}\n\tif (isDate(input)) {\n\t\tconst d = new Date(input.getTime());\n\t\td.offset = null;\n\t\td.tz = null;\n\t\td.source = \"date\";\n\t\td.sourceIso = d.toISOString();\n\t\treturn d;\n\t}\n\treturn null;\n}\n\n//#endregion\n//#region src/datetime/asEpochTimestamp.ts\nfunction asEpochTimestamp(dt) {\n\tconst d = asDate(dt);\n\treturn Math.floor(d.getTime() / 1e3);\n}\n\n//#endregion\n//#region src/datetime/asFourDigitYear.ts\n/**\n* **asFourDigitYear**`(year, [branding])`\n*\n* A type conversion utility which tries to convert `year` into a valid `FourDigitYear` type.\n*\n* - by default the conversion is done but the type returned is _not_ a branded type\n* - to switch this behavior then pass in `true` to the generic `B`\n*\n* If there is no way to convert `year` to a `FourDigitYear` then an Error will be returned.\n*/\nfunction asFourDigitYear(year, _branded = false) {\n\treturn isNumber(year) ? isInteger(year) ? year > 9999 ? err(`year-invalid/too-large`) : isNegativeNumber(year) ? err(`year-invalid/negative-number`) : `${year}`.padStart(4, \"0\") : err(`year-invalid/not-integer`) : isNumberLike(year) ? asFourDigitYear(asNumber(year)) : err(`year-invalid/wrong-type`);\n}\n\n//#endregion\n//#region src/datetime/asIsoDate.ts\n/**\n* **asIsoDate**`(input)`\n*\n* Converts common date representations to an ISO 8601 Date string (e.g., \"2024-01-15\").\n*\n* - If the underlying date has a timezone offset then that will be ignored and the year-month-date\n* of the date for the _local time_ will be used.\n*/\nfunction asIsoDate(input) {\n\ttry {\n\t\tconst parsed = isString(input) ? parseIsoDate(input) : isObject(input) ? parseDateObject(input) : isNumber(input) ? parseNumericDate(input) : err(`parse/as-iso-date`, `An invalid type was passed to asIsoDate(input)!`, {\n\t\t\ttype: typeof input,\n\t\t\tinput\n\t\t});\n\t\tif (isError(parsed)) return parsed;\n\t\treturn parsed.dateType === \"date\" || parsed.dateType === \"datetime\" ? `${parsed.year}-${parsed.month}-${parsed.date}` : parsed.dateType === \"year\" ? parsed.year : parsed.dateType === \"year-independent\" ? `-${parsed.month}-${parsed.date}` : parsed.dateType === \"year-month\" ? `--${parsed.year}-${parsed.month}` : Never;\n\t} catch (e) {\n\t\treturn err(`parse/as-iso-date`, `An unexpected problem was encountered running asIsoDate: ${e instanceof Error ? e.message : String(e)}`, {\n\t\t\tinput,\n\t\t\tunderlying: e\n\t\t});\n\t}\n}\n\n//#endregion\n//#region src/datetime/asIsoDateTime.ts\nfunction asIsoDateTime(dt) {\n\tconst d = asDateTime(dt);\n\treturn d.toISOString();\n}\n\n//#endregion\n//#region src/datetime/asTwoDigitMonth.ts\n/**\n* **asTwoDigitMonth**`(dateLike)`\n*\n* given any DateLike input, this function returns the **month** in a\n* two digit format appropriate for ISO Date/DateTime strings.\n*\n* **Note:**\n* - if an integer number between 1 and 12 is passed in this\n* will be treated as a numeric month rather than as an epoch\n* timestamp\n*/\nfunction asTwoDigitMonth(date) {\n\treturn isInteger(date) ? date > 0 && date < 13 ? `${date}`.padStart(2, \"0\") : isError(asDate(date)) ? asDate(date) : isError(parseDateObject(date)) ? parseDateObject(date) : parseDateObject(date).month : isError(asDate(date)) ? asDate(date) : isError(parseDateObject(date)) ? parseDateObject(date) : parseDateObject(date).month;\n}\n\n//#endregion\n//#region src/datetime/dateObjectToIso.ts\nfunction dateObjectToIso(d) {\n\tconst date = d instanceof Date ? d : asDate(d);\n\tconst iso = date.toISOString();\n\tconst parsed = parseIsoDate(iso);\n\tif (isError(parsed)) return parsed;\n\tconst result$1 = toIsoDateString(parsed);\n\treturn result$1;\n}\n\n//#endregion\n//#region src/datetime/daysInMonth.ts\n/**\n* **daysInMonth**`(month, [year])`\n*\n* Provides the number of days in a given month.\n*\n* - the **month** can be passed in as a fully spelled out month (e.g., \"January\"),\n* an abbreviated month name (e.g., \"Jan\") or a two digit month (e.g., \"01\", \"02\", etc.)\n* - Note: these correspond to the `MonthName`, `MonthAbbrev`, and `TwoDigitMonth`\n* types defined in this library\n* - if a **year** is provided then both leap years and _double_ leap\n* years will be built into the calculation for February\n* - if no year information is available, February will report as having\n* 28 days.\n*/\nfunction daysInMonth(month, year = void 0) {\n\tconst monthNum = isTwoDigitMonth(month) ? Number(month) : getMonthNumber(month);\n\tif (isError(monthNum)) return err(\"unknown-month/days-in-month\", `The daysInMonth() function was unable to determine the month from the value passed in: ${month}. Remember that if you're using month names or abbreviations they must map to the MonthName and MonthAbbrev types which capitalize the names.`, {\n\t\tmonth,\n\t\tyear\n\t});\n\tconst twoDigitMonth = asTwoDigitMonth(monthNum);\n\treturn monthNum === 2 ? isDefined(year) ? isLeapYear(year) ? isDoubleLeap(year) ? 30 : 29 : 28 : 28 : ISO_DATE_30.includes(twoDigitMonth) ? 30 : 31;\n}\n\n//#endregion\n//#region src/datetime/getDaysBetween.ts\n/**\n* Provides the number of days between two dates.\n*\n* - if the second date is left out, the current date is used\n*/\nfunction getDaysBetween(a, b = /* @__PURE__ */ new Date()) {\n\tconst aDate = asDate(a);\n\tconst bDate = asDate(b);\n\tif (!aDate || !bDate) throw new Error(`Invalid date passed into getDaysBetween()`);\n\tconst aStr = aDate.toISOString().split(\"T\")[0];\n\tconst bStr = bDate.toISOString().split(\"T\")[0];\n\tconst dateA = new Date(`${aStr}T00:00:00Z`);\n\tconst dateB = new Date(`${bStr}T00:00:00Z`);\n\tconst msInDay = 24 * 60 * 60 * 1e3;\n\treturn Math.round(Math.abs((dateB.getTime() - dateA.getTime()) / msInDay));\n}\n\n//#endregion\n//#region src/datetime/getMonthAbbrev.ts\n/**\n* **getMonthAbbrev**`(date)`\n*\n* Converts any date-like value into a month abbreviation.\n*\n* **Related:** `getMonthName()`, `getMonthNumber()`\n*/\nfunction getMonthAbbrev(date) {\n\tconst d = asDate(date);\n\treturn MONTH_ABBR[d.getMonth()];\n}\n\n//#endregion\n//#region src/datetime/getMonthName.ts\n/**\n* **getMonthName**`(date)`\n*\n* Converts any date-like value into a month abbreviation.\n*\n* **Related:** `getMonthAbbrev()`\n*/\nfunction getMonthName(date) {\n\tconst d = asDate(date);\n\treturn MONTH_NAME[d.getMonth()];\n}\n\n//#endregion\n//#region src/datetime/getMonthNumber.ts\n/**\n* **getMonthNumber**`(date | MonthName | MonthAbbrev)`\n*\n* Get's the a date's numeric index for the **month** being represented\n* (aka., January is 1, etc.).\n*\n* - you can pass in a `DateLike` value _or_ a month name\n* or month abbreviation\n*/\nfunction getMonthNumber(date) {\n\tif (isMonthName(date)) return MONTH_NAME_LOOKUP[date].num;\n\telse if (isMonthAbbrev(date)) return MONTH_ABBREV_LOOKUP[date].num;\n\telse {\n\t\tconst d = parseDate(date);\n\t\tif (isParsedDate(d)) {\n\t\t\tif (!d.month) return err(`month-number/missing`, `The type passed into GetMonthNumber<T> was successfully parsed but there is no month information. This typically means that an IsoYear was passed in.`);\n\t\t\treturn asNumber(d.month);\n\t\t}\n\t\treturn err(`invalid-date`, `Unable to parse the date when calling getMonthNumber()`);\n\t}\n}\n\n//#endregion\n//#region src/datetime/getSeason.ts\n/**\n* **getSeason**`(date, [hemisphere])`\n*\n* Gets the season of the passed in `date`.\n*/\nfunction getSeason(date, hemisphere = \"northern\") {\n\tconst month = getMonthAbbrev(date);\n\treturn MONTH_TO_SEASON_LOOKUP[hemisphere][month];\n}\n\n//#endregion\n//#region src/datetime/getToday.ts\n/**\n* Returns the current date as an\n* [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date string.\n*/\nfunction getToday(now = /* @__PURE__ */ new Date()) {\n\treturn now.toISOString().split(\"T\")[0];\n}\n\n//#endregion\n//#region src/datetime/getTomorrow.ts\n/**\n* **getTomorrow**`(now?)`\n*\n* Returns an ISO 8601 date string for tomorrow.\n* - Optional `now` parameter for testing purposes\n*/\nfunction getTomorrow(now = /* @__PURE__ */ new Date()) {\n\tconst tomorrow = new Date(now);\n\ttomorrow.setDate(tomorrow.getDate() + 1);\n\treturn tomorrow.toISOString().split(\"T\")[0];\n}\n\n//#endregion\n//#region src/datetime/getWeekNumber.ts\n/**\n* Provides the ISO week number of a given date.\n*\n* - if no date is provided, the current date is used\n* - an ISO week always starts on Monday\n* - numerically an ISO week will be between 1 and 53\n* - 52 is max for most years\n* - those years which start on a Thursday or\n* years with a leap day and start on a Wednesday get 53\n*/\nfunction getWeekNumber(date = /* @__PURE__ */ new Date()) {\n\tconst d = asDate(date);\n\tif (!d) throw new Error(`invalid date passed into getWeekNumber${String(date)}`);\n\tconst dateCopy = new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate()));\n\tconst dayNum = dateCopy.getUTCDay() || 7;\n\tdateCopy.setUTCDate(dateCopy.getUTCDate() + 4 - dayNum);\n\tconst yearOfThursday = dateCopy.getUTCFullYear();\n\tconst jan1 = new Date(Date.UTC(yearOfThursday, 0, 1));\n\tconst jan1DayNum = jan1.getUTCDay() || 7;\n\tconst firstThursday = new Date(jan1);\n\tfirstThursday.setUTCDate(jan1.getUTCDate() + (4 - jan1DayNum + 7) % 7);\n\tconst weekNo = Math.floor((dateCopy.getTime() - firstThursday.getTime()) / (7 * 24 * 60 * 60 * 1e3)) + 1;\n\treturn weekNo;\n}\n\n//#endregion\n//#region src/datetime/getYear.ts\nfunction getYear(date) {\n\tconst d = asDate(date);\n\treturn d.getFullYear();\n}\n\n//#endregion\n//#region src/datetime/getYesterday.ts\n/**\n* **getYesterday**`(now?)`\n*\n* Returns an ISO 8601 date string for yesterday.\n* - Optional `now` parameter for testing purposes\n*/\nfunction getYesterday(now = /* @__PURE__ */ new Date()) {\n\tconst yesterday = new Date(now);\n\tyesterday.setDate(yesterday.getDate() - 1);\n\treturn yesterday.toISOString().split(\"T\")[0];\n}\n\n//#endregion\n//#region src/datetime/isAfter.ts\n/**\n* Checks if a value is a year-only number (e.g., 2023).\n*/\nfunction isYearOnly(input) {\n\treturn typeof input === \"number\" && Number.isInteger(input) && input >= 1e3 && input <= 9999;\n}\n/**\n* **isAfter**`(comparator) -> (date) -> boolean\n*\n* Higher order utility to configure a date checking function which\n* checks whether an incoming `date` is _after_ the configured date.\n*\n* **Related:** `isBefore`, `isLeapYear`, `isSameYear`, `isSameDay`\n*/\nfunction isAfter(comparator) {\n\treturn (val) => {\n\t\tif (isYearOnly(comparator) && isYearOnly(val)) return val > comparator;\n\t\tconst comp = asDate(comparator);\n\t\tconst v = asDate(val);\n\t\treturn v.getTime() > comp.getTime();\n\t};\n}\n\n//#endregion\n//#region src/datetime/isBefore.ts\n/**\n* **isBefore**`(comparator) -> (date) -> boolean\n*\n* Higher order utility to configure a date checking function which\n* checks whether an incoming `date` is _before_ the configured date.\n*\n* **Related:** `isBefore`, `isLeapYear`, `isSameYear`, `isSameDay`\n*/\nfunction isBefore(comparator) {\n\tconst comp = asDate(comparator);\n\treturn (val) => {\n\t\tconst v = asDate(val);\n\t\treturn v.getTime() < comp.getTime();\n\t};\n}\n\n//#endregion\n//#region src/datetime/isDoubleLeap.ts\n/**\n* **isDoubleLeap**`(val)`\n*\n* Determines if the passed in date/year is a \"Double Leap\" year.\n*\n* - a double leap year is a leap year that also appears in the DOUBLE_LEAP_MODERN constant\n* - attempts to resolve this to `true`/`false` at design time when literal values are passed in\n* - for runtime values, it will check against the DOUBLE_LEAP_MODERN array\n*\n* **Related:** `IsDoubleLeap` type utility\n*/\nfunction isDoubleLeap(val) {\n\tconst year = asDate(val)?.getUTCFullYear();\n\tif (!year) throw new Error(`Invalid date passed into isDoubleLeap(${String(val)})`);\n\treturn DOUBLE_LEAP_MODERN.includes(year);\n}\n\n//#endregion\n//#region src/datetime/isLeapYear.ts\n/**\n* Determines in the passed in date/year is a _leap year_.\n*\n* - a leap year is a year divisible by 4 but not by 100\n* (unless also divisible by 400)\n*/\nfunction isLeapYear(val) {\n\tconst year = asDate(val)?.getUTCFullYear();\n\tif (!year) throw new Error(`Invalid date passed into isLeapYear(${String(val)})`);\n\treturn year % 100 === 0 ? year % 400 === 0 : year % 4 === 0;\n}\n\n//#endregion\n//#region src/datetime/isSameDay.ts\n/**\n* **isSameDay**`(comparator) -> (date) -> boolean\n*\n* Higher order utility to configure a date checking function which\n* checks whether an incoming `date` is on the same day as the _comparator_\n* date..\n*\n* **Related:** `isBefore`, , `isAfter`, `isLeapYear`, `isSameYear`\n*/\nfunction isSameDay(comparator) {\n\tconst comp = asDate(comparator);\n\treturn (val) => {\n\t\tconst v = asDate(val);\n\t\treturn v.getDate() === comp.getDate() && v.getMonth() === comp.getMonth() && v.getFullYear() === comp.getFullYear();\n\t};\n}\n\n//#endregion\n//#region src/datetime/isSameMonth.ts\n/**\n* **isSameMonth**`(comparator) -> (date) -> boolean\n*\n* Higher order utility to configure a date checking function which\n* checks whether an incoming `date` is in the same **month** _and_\n* **year** as the _comparator_ date.\n*\n* **Related:**\n* - `isBefore`, `isAfter`, `isSameDay`, `isSameMonthYear`, `isSameYear`\n* - `isLeapYear`, `isSummer`, `isWinter`, `isFall`, `isSpring`\n*/\nfunction isSameMonth(comparator) {\n\tconst comp = asDate(comparator);\n\treturn (val) => {\n\t\tconst v = asDate(val);\n\t\treturn v.getUTCFullYear() === comp.getUTCFullYear() && v.getUTCMonth() === comp.getUTCMonth();\n\t};\n}\n\n//#endregion\n//#region src/datetime/isSameMonthYear.ts\n/**\n* **isSameMonthYear**`(comparator) -> (date) -> boolean\n*\n* Higher order utility to configure a date checking function which\n* checks whether an incoming `date` is in the same **month** _and_\n* **year** as the _comparator_ date.\n*\n* **Related:** `isBefore`, , `isAfter`, `isLeapYear`, `isSameDay`\n*/\nfunction isSameMonthYear(comparator) {\n\tconst comp = asDate(comparator);\n\treturn (val) => {\n\t\tconst v = asDate(val);\n\t\treturn v.getUTCFullYear() === comp.getUTCFullYear() && v.getUTCMonth() === comp.getUTCMonth();\n\t};\n}\n\n//#endregion\n//#region src/datetime/isSameYear.ts\n/**\n* **isSameYear**`(comparator) -> (date) -> boolean\n*\n* Higher order utility to configure a date checking function which\n* checks whether an incoming `date` is in the same year as the\n* _comparator_ date.\n*\n* **Related:** `isBefore`, , `isAfter`, `isLeapYear`, `isSameDay`\n*/\nfunction isSameYear(comparator) {\n\tconst comp = asDate(comparator);\n\treturn (val) => {\n\t\tconst v = asDate(val);\n\t\treturn v.getUTCFullYear() === comp.getUTCFullYear();\n\t};\n}\n\n//#endregion\n//#region src/datetime/isThisMonth.ts\n/**\n* **isThisMonth**`(input, now?)`\n*\n* Returns `true` if the given date-like input falls within the current month, `false` otherwise.\n* - Accepts the same input types as other datetime functions.\n* - Compares both year and month for accurate results.\n* - Throws an error for invalid inputs.\n* - Optional `now` parameter for testing purposes\n*/\nfunction isThisMonth(input, now = /* @__PURE__ */ new Date()) {\n\tif (isDateLike(input)) {\n\t\tconst date = asDate(input);\n\t\tconst inputYear = date.getUTCFullYear();\n\t\tconst inputMonth = date.getUTCMonth();\n\t\tconst nowUtc = new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()));\n\t\tconst nowYear = nowUtc.getUTCFullYear();\n\t\tconst nowMonth = nowUtc.getUTCMonth();\n\t\treturn inputYear === nowYear && inputMonth === nowMonth;\n\t} else throw err(\"invalid-date\", `The isThisMonth(input) function received a value which could not be converted to a date!`, {\n\t\tinput,\n\t\tnow\n\t});\n}\n\n//#endregion\n//#region src/datetime/isThisWeek.ts\n/**\n* **isThisWeek**`(input, now?)`\n*\n* Returns `true` if the given date-like input falls within the current ISO week (Monday start), `false` otherwise.\n* - Accepts the same input types as other datetime functions.\n* - Uses ISO 8601 week definition (Monday as the first day of the week).\n* - Throws an error for invalid inputs.\n* - Optional `now` parameter for testing purposes\n*/\nfunction isThisWeek(input, now = /* @__PURE__ */ new Date()) {\n\tconst date = asDate(input);\n\tconst inputWeek = getWeekNumber(date);\n\tconst nowWeek = getWeekNumber(now);\n\tconst getIsoWeekYear = (d) => {\n\t\tconst thursday = new Date(d);\n\t\tthursday.setDate(d.getDate() + 4 - (d.getDay() || 7));\n\t\treturn thursday.getFullYear();\n\t};\n\treturn inputWeek === nowWeek && getIsoWeekYear(date) === getIsoWeekYear(now);\n}\n\n//#endregion\n//#region src/datetime/isThisYear.ts\n/**\n* A validation -- not type guard -- on whether the passed in `val` is a\n* date or date-time representation and that it's year is the same as the\n* current year.\n*\n* Types correctly handled are:\n*\n* - **JS Date** object\n* - **ISO Date** or **ISO Datetime**\n* - a number representing a **epoch** timestamp (in seconds, not milliseconds)\n* - **MomentJS** and **Luxon** datetime objects\n*\n* **Note:** an invalidate date/datetime passed in will always resolve to `false`\n*/\nfunction isThisYear(val, now = /* @__PURE__ */ new Date()) {\n\tconst currentYear = now.getFullYear();\n\ttry {\n\t\tconst d = asDate(val);\n\t\treturn d.getUTCFullYear() === currentYear;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\n//#endregion\n//#region src/datetime/isToday.ts\n/**\n* **isToday`(val)`**\n*\n* A type guard which validates whether the passed in value _represents_ today's date\n* as either a:\n*\n* - [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date string, or\n* - [Moment.js](https://momentjs.com/docs/#/displaying/) DateTime object, or\n* - [Luxon](https://moment.github.io/luxon/#/?id=luxon) DateTime object\n*/\nfunction isToday(test, now = /* @__PURE__ */ new Date()) {\n\tif (isString(test)) {\n\t\tconst justDate = stripAfter(test, \"T\");\n\t\treturn isIsoExplicitDate(justDate) && justDate === getToday(now);\n\t} else if (isMoment(test) || isDate(test)) return stripAfter(test.toISOString(), \"T\") === getToday(now);\n\telse if (isLuxonDate(test)) return stripAfter(test.toISO(), \"T\") === getToday(now);\n\treturn false;\n}\n\n//#endregion\n//#region src/datetime/isTomorrow.ts\n/**\n* **isTomorrow**`(input, now?)`\n*\n* Returns `true` if the given date-like input represents tomorrow's\n* date, `false` otherwise.\n* - Accepts the same input types as other datetime functions.\n* - Compares only the date part, ignoring time.\n* - Throws an error for invalid inputs.\n* - Optional `now` parameter for testing purposes\n*/\nfunction isTomorrow(input, now = /* @__PURE__ */ new Date()) {\n\tconst date = asDate(input);\n\tconst tomorrowDate = getTomorrow(now);\n\tconst inputDateStr = date.toISOString().split(\"T\")[0];\n\treturn inputDateStr === tomorrowDate;\n}\n\n//#endregion\n//#region src/datetime/isYesterday.ts\n/**\n* **isYesterday**`(input, now?)`\n*\n* Returns `true` if the given date-like input represents yesterday's date, `false` otherwise.\n* - Accepts the same input types as other datetime functions.\n* - Compares only the date part, ignoring time.\n* - Throws an error for invalid inputs.\n* - Optional `now` parameter for testing purposes\n*/\nfunction isYesterday(input, now = /* @__PURE__ */ new Date()) {\n\tconst date = asDate(input);\n\tconst yesterdayDate = getYesterday(now);\n\tconst inputDateStr = date.toISOString().split(\"T\")[0];\n\treturn inputDateStr === yesterdayDate;\n}\n\n//#endregion\n//#region src/datetime/parseDate.ts\nfunction parseDate(d) {\n\tlet iso;\n\tif (isString(d)) return parseIsoDate(d);\n\telse {\n\t\ttry {\n\t\t\tiso = asDateTime(d).toISOString();\n\t\t} catch (error) {\n\t\t\treturn error instanceof Error ? error : err(`parse/invalid`, `Unable to parse date-like value`);\n\t\t}\n\t\treturn parseIsoDate(iso);\n\t}\n}\n\n//#endregion\n//#region src/datetime/parseDateObject.ts\n/**\n* Parses an object-based Date container into a `ParsedDate` tuple.\n* Always uses the original ISO string (with offset/timezone) if available.\n*/\nfunction parseDateObject(d) {\n\tconst date = d instanceof Date ? d : asDateTime(d);\n\tif (isError(date)) return date;\n\tconst utcIso = date.toISOString();\n\tconst utcParsed = parseIsoDate(utcIso);\n\tif (isError(utcParsed)) return utcParsed;\n\tconst datePlus = date;\n\tconst sourceIso = datePlus.sourceIso;\n\tif (sourceIso) {\n\t\tconst sourceParsed = parseIsoDate(sourceIso);\n\t\tif (isDateMeta(sourceParsed) && sourceParsed.timezone) {\n\t\t\tconst timezone = sourceParsed.timezone === \"+00:00\" ? \"Z\" : sourceParsed.timezone;\n\t\t\treturn {\n\t\t\t\t...utcParsed,\n\t\t\t\ttimezone\n\t\t\t};\n\t\t}\n\t}\n\tif (datePlus.offset === null && datePlus.source) return {\n\t\t...utcParsed,\n\t\ttimezone: null\n\t};\n\treturn utcParsed;\n}\n\n//#endregion\n//#region src/datetime/parseIsoDate.ts\n/**\n* Parses an ISO date or datetime string into its components.\n*\n* Returns an object: { year, month, date, time }\n* - year, month, date: numbers or null\n* - time: { hour, minute, second, ms, offset } or null\n* Throws if the string is not a valid ISO date/datetime.\n*/\nfunction parseIsoDate(input) {\n\tif (!isString(input)) return err(\"parse-date/wrong-type\", `The type passed into parseIsoDate() was a '${typeof input}' but must be a string!`);\n\tconst isoDateTime = /^(-?\\d{4})-?(\\d{2})-?(\\d{2})T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{3}))?)?(Z|[+-]\\d{2}:?\\d{2})?$/;\n\tconst isoDate = /^(-?\\d{4})-?(\\d{2})-?(\\d{2})$/;\n\tconst isoYear = /^(-?\\d{4})$/;\n\tconst isoYearMonth = /^-?(\\d{4})-?(\\d{2})$/;\n\tconst isoMonthDay = /^--(\\d{2})-?(\\d{2})$/;\n\tif (isoDateTime.test(input)) {\n\t\tconst match = input.match(isoDateTime);\n\t\tif (match) {\n\t\t\tconst [_, yyyy, mm, dd, hh, min, sec, milli, tz] = match;\n\t\t\tconst year = isFourDigitYear(yyyy) ? yyyy : isEmpty(yyyy) ? null : err(\"year\");\n\t\t\tconst month = isTwoDigitMonth(mm) ? mm : isEmpty(mm) ? null : err(\"month\");\n\t\t\tconst date = isTwoDigitDate(dd) ? dd : isEmpty(dd) ? null : err(\"date\");\n\t\t\tconst hour = isTwoDigitHour(hh) ? hh : isEmpty(hh) ? null : err(\"hour\");\n\t\t\tconst minute = isTwoDigitMinute(min) ? min : isEmpty(min) ? null : err(\"minute\");\n\t\t\tconst second = isTwoDigitSecond(sec) ? sec : isEmpty(sec) ? null : err(\"second\");\n\t\t\tconst ms = isThreeDigitMillisecond(milli) ? milli : isEmpty(milli) ? null : err(\"milli\");\n\t\t\tconst timezone = isTimezoneOffset(tz) ? tz : isEmpty(tz) ? null : err(\"timezone\");\n\t\t\tconst errors = [\n\t\t\t\tyear,\n\t\t\t\tmonth,\n\t\t\t\tdate,\n\t\t\t\thour,\n\t\t\t\tminute,\n\t\t\t\tsecond,\n\t\t\t\tms,\n\t\t\t\ttimezone\n\t\t\t].filter((i) => isTypedError(\"\")(i)).map((i) => i.type);\n\t\t\tif (errors.length > 0) return err(\"parse-date\", `The string passed in resembled a ISO DateTime but the following components failed: ${errors}`);\n\t\t\tconst val = {\n\t\t\t\tdateType: \"datetime\",\n\t\t\t\thasTime: !(isTimezoneOffset(timezone) && timezone === \"Z\" && hour === twoDigitHour(\"00\") && minute === twoDigitMinute(\"00\") && (second === twoDigitSecond(\"00\") || second === null) && (ms === threeDigitMillisecond(\"000\") || ms === null)),\n\t\t\t\tyear,\n\t\t\t\tmonth,\n\t\t\t\tdate,\n\t\t\t\thour,\n\t\t\t\tminute,\n\t\t\t\tsecond,\n\t\t\t\tms,\n\t\t\t\ttimezone\n\t\t\t};\n\t\t\treturn { ...val };\n\t\t}\n\t} else if (isoYear.test(input)) {\n\t\tconst match = input.match(isoYear);\n\t\tif (match) {\n\t\t\tconst [_, year] = match;\n\t\t\tif (isFourDigitYear(year)) {\n\t\t\t\tconst val = {\n\t\t\t\t\tdateType: \"year\",\n\t\t\t\t\thasTime: false,\n\t\t\t\t\tyear,\n\t\t\t\t\tmonth: null,\n\t\t\t\t\tdate: null,\n\t\t\t\t\thour: null,\n\t\t\t\t\tminute: null,\n\t\t\t\t\tsecond: null,\n\t\t\t\t\tms: null,\n\t\t\t\t\ttimezone: null\n\t\t\t\t};\n\t\t\t\treturn { ...val };\n\t\t\t} else return err(`parse/iso-date`, `A string which matched the regex for IsoYear was invalid upon inspection`);\n\t\t} else return err(`parse/iso-date`, `A string which matched the regex for IsoYear was invalid upon inspection`);\n\t} else if (isoYearMonth.test(input)) {\n\t\tconst match = input.match(isoYearMonth);\n\t\tif (match) {\n\t\t\tconst [_, year, month] = match;\n\t\t\tif (isFourDigitYear(year) && isTwoDigitMonth(month)) {\n\t\t\t\tconst val = {\n\t\t\t\t\tdateType: \"year-month\",\n\t\t\t\t\thasTime: false,\n\t\t\t\t\tyear,\n\t\t\t\t\tmonth,\n\t\t\t\t\tdate: null,\n\t\t\t\t\thour: null,\n\t\t\t\t\tminute: null,\n\t\t\t\t\tsecond: null,\n\t\t\t\t\tms: null,\n\t\t\t\t\ttimezone: null\n\t\t\t\t};\n\t\t\t\treturn { ...val };\n\t\t\t} else return err(`parse/iso-date`, `A string which matched the regex for IsoYearMonth was invalid upon inspection`);\n\t\t} else return err(`parse/iso-date`, `A string which matched the regex for IsoYearMonth was invalid upon inspection`);\n\t} else if (isoMonthDay.test(input)) {\n\t\tconst match = input.match(isoMonthDay);\n\t\tif (match) {\n\t\t\tconst [_, month, date] = match;\n\t\t\tif (isTwoDigitMonth(month) && isTwoDigitDate(date)) {\n\t\t\t\tconst val = {\n\t\t\t\t\tdateType: \"year-independent\",\n\t\t\t\t\thasTime: false,\n\t\t\t\t\tyear: null,\n\t\t\t\t\tmonth,\n\t\t\t\t\tdate,\n\t\t\t\t\thour: null,\n\t\t\t\t\tminute: null,\n\t\t\t\t\tsecond: null,\n\t\t\t\t\tms: null,\n\t\t\t\t\ttimezone: null\n\t\t\t\t};\n\t\t\t\treturn { ...val };\n\t\t\t} else return err(`parse/iso-date`, `A string which matched the regex for IsoMonthDay (aka, year-independent) was invalid upon inspection`);\n\t\t}\n\t\treturn err(`parse/iso-date`, `A string which matched the regex for IsoMonthDay (aka, year-independent) was invalid upon inspection`);\n\t} else if (isoDate.test(input)) {\n\t\tconst match = input.match(isoDate);\n\t\tif (match) {\n\t\t\tconst [_, year, month, date] = match;\n\t\t\tif (isFourDigitYear(year) && isTwoDigitMonth(month) && isTwoDigitDate(date)) {\n\t\t\t\tconst val = {\n\t\t\t\t\tdateType: \"year-independent\",\n\t\t\t\t\thasTime: false,\n\t\t\t\t\tyear,\n\t\t\t\t\tmonth,\n\t\t\t\t\tdate,\n\t\t\t\t\thour: null,\n\t\t\t\t\tminute: null,\n\t\t\t\t\tsecond: null,\n\t\t\t\t\tms: null,\n\t\t\t\t\ttimezone: null\n\t\t\t\t};\n\t\t\t\treturn { ...val };\n\t\t\t}\n\t\t\treturn err(`parse/iso-date`, `A string which matched the regex for ISO Date was invalid upon inspection.`);\n\t\t}\n\t\treturn err(`parse/iso-date`, `A string which matched the regex for ISO Date was unable to then pull the expected match groups. This should not happen.`);\n\t}\n\treturn err(\"parse/iso-date\", \"The string passed to parseIsoDate() was invalid!\");\n}\n\n//#endregion\n//#region src/datetime/parseNumericDate.ts\n/**\n* Parses a number as a `epoch` timestamp (detects whether in\n* seconds or milliseconds) into a `IsoMeta` tuple.\n*/\nfunction parseNumericDate(d) {\n\ttry {\n\t\tconst date = isEpochInSeconds(d) ? new Date(d * 1e3) : new Date(d);\n\t\treturn parseIsoDate(date.toISOString());\n\t} catch {\n\t\treturn err(`parse-date/numeric`, `The numeric value trying to be parsed as a epoch timestamp -- ${d} -- is invalid!`);\n\t}\n}\n\n//#endregion\n//#region src/datetime/toIsoDateString.ts\n/**\n* **toIsoDateString**`(meta) -> IsoDate | IsoDateTime`\n*\n* Converts a parsed date into an ISO Date or DateTime string.\n*/\nfunction toIsoDateString(parsed) {\n\tlet resolved;\n\tif (parsed.hasTime === false) {\n\t\tswitch (parsed.dateType) {\n\t\t\tcase \"date\":\n\t\t\tcase \"datetime\":\n\t\t\t\tresolved = `${parsed.year}-${parsed.month}-${parsed.date}`;\n\t\t\t\tbreak;\n\t\t\tcase \"year\":\n\t\t\t\tresolved = parsed.year;\n\t\t\t\tbreak;\n\t\t\tcase \"year-independent\":\n\t\t\t\tresolved = `--${parsed.month}-${parsed.date}`;\n\t\t\t\tbreak;\n\t\t\tcase \"year-month\": resolved = `-${parsed.year}-${parsed.month}`;\n\t\t}\n\t\tif (isIsoDate(resolved)) return resolved;\n\t\telse err(`parse/runtime`);\n\t}\n\tswitch (parsed.dateType) {\n\t\tcase \"date\": return err(\"invalid-date\", `The parsed 'type' of the date was 'date' but the 'hasTime' variable was set to true! This should not happen.`);\n\t\tcase \"datetime\": return `${parsed.year}-${parsed.month}-${parsed.date}T${parsed.hour}:${parsed.minute}${parsed.second ? `:${parsed.second}${parsed.ms ? `.${parsed.ms}` : \"\"}` : \"\"}`;\n\t}\n\treturn err(\"invalid-date\", `the parsed 'dateType' was '${parsed.dateType}' but the 'hasTime' property was set to 'false'!`);\n}\n\n//#endregion\n//#region src/dictionary/defineObject.ts\n/**\n* **defineObject**`(defn, ...[optional]) -> (object type)`\n*\n* Defines an object **type** while preserving a runtime-token\n* which _identifies_ the type.\n*\n* ### Example\n*\n* ```ts\n* const person = defineObject(\n* {\n* firstName: \"string\",\n* lastName: \"string\",\n* address: \"string | object\"\n* },\n* \"lastName\", \"address\"\n* )\n* ```\n*\n* - the _type_ of `person` will be:\n*\n* ```ts\n* type person = {\n* firstName: string,\n* lastName?: string,\n* address?: object | string\n* }\n* ```\n*\n* - but the runtime value will be a string literal token _representing_\n* that type.\n*/\nfunction defineObject(defn, ..._optProps) {\n\tconst errProps = Object.keys(defn).reduce((acc, i) => isError(defn[i]) ? {\n\t\t...acc,\n\t\t[i]: defn[i]\n\t} : acc, {});\n\treturn keysOf(errProps).length > 0 ? err(`invalid-token/object`, `At least one key in the defined object have errors!`, {\n\t\tkeys: errProps,\n\t\tobj: defn\n\t}) : fromDefineObject(defn);\n}\n\n//#endregion\n//#region src/dictionary/entries.ts\n/**\n* **entries**\n*\n* Provides an _iterable_ over the passed in dictionary object where each iteration\n* provides a tuple of `[ key, value ]` which preserve type literals.\n*\n* For example:\n* ```ts\n* const obj = { foo: 1, bar: \"hi\" };\n* // k type is \"foo\" then \"bar\"; v type is 1 then \"hi\"\n* for (const [k, v] of entries(obj)) { ... }\n* ```\n*/\nfunction entries(obj) {\n\tconst iterable = { *[Symbol.iterator]() {\n\t\tfor (const k of keysOf(obj)) yield {\n\t\t\tkey: k,\n\t\t\tvalue: obj[k]\n\t\t};\n\t} };\n\treturn iterable;\n}\n\n//#endregion\n//#region src/dictionary/get.ts\n/** updates based on whether segment is a Ref or not */\nfunction updatedDotPath(value, dotpath, segment) {\n\treturn isRef(value) ? dotpath.replace(segment, `Ref(${segment})`) : dotpath;\n}\n/**\n* **getValue**(value, dotpath, defaultValue, handler, fullDotPath)\n*/\nfunction getValue(value, dotPath, defaultValue, handleInvalid, fullDotPath) {\n\t/** the remaining segments that need processing */\n\tconst pathSegments = isTruthy(dotPath) ? dotPath.split(\".\") : [];\n\t/** current index property */\n\tconst idx = pathSegments[0];\n\t/**\n\t* dotpath _will_ need to recurse further to\n\t* reach destination\n\t*/\n\tconst hasMoreSegments = pathSegments.length > 1;\n\t/** whether or not the value is indexable or not */\n\tconst valueIsIndexable = isContainer(value) && hasIndexOf(value, idx);\n\t/** has handler for invalid dotpath */\n\tconst hasHandler = !isSpecificConstant(\"not-defined\")(handleInvalid);\n\tconst invalidDotPath = err(\"invalid-dot-path\", `The segment \"${idx}\" in the dotpath \"${fullDotPath}\" was not indexable and no default value existed on: ${JSON.stringify(value)}`);\n\tconst current = hasMoreSegments ? isContainer(value) && idx in value ? getValue(indexOf(value, idx), pathSegments.join(\".\").replace(`${idx}.`, \"\"), defaultValue, handleInvalid, updatedDotPath(value, fullDotPath, idx)) : hasHandler ? handleInvalid : invalidDotPath : valueIsIndexable ? hasDefaultValue(hasDefaultValue) ? indexOf(value, idx) || defaultValue : indexOf(value, idx) : hasHandler ? handleInvalid : invalidDotPath;\n\treturn current;\n}\n/**\n* **get**(obj, dotPath, [defVal])\n*\n* Gets a value in a deeply nested object while attempting to preserve type information\n* (a default value is allowed as optional param).\n*\n* - if the dot-path is invalid then an `ErrorCondition` will be returned, unless\n* a defaultValue is provided in which case this will be returned instead\n* - this function is also VueJS _aware_ in the sense that it can also traverse\n* VueJS `ref` properties when encountered\n*\n* ```ts\n* const prop = get(obj, \"foo.bar.baz\", \"nothing there chief!\");\n* ```\n*/\nfunction get(value, dotPath, options = {\n\tdefaultValue: NO_DEFAULT_VALUE,\n\thandleInvalidDotpath: NOT_DEFINED\n}) {\n\tconst outcome = dotPath === null || dotPath === \"\" ? value : getValue(value, dotPath, options?.defaultValue || NO_DEFAULT_VALUE, options?.handleInvalidDotpath || NOT_DEFINED, String(dotPath));\n\treturn outcome;\n}\n\n//#endregion\n//#region src/dictionary/keysOf.ts\n/**\n* **keysOf**(container)\n*\n* Provides a read-only array of the _keys_ that a Dictionary contains.\n*\n* **Note:** this function is aware of Ref<T> types from VueJS and will return\n* `readonly [\"value\"]` as the keys array when detected rather than reporting\n* on props like `__v_isRef`, etc.\n*/\nfunction keysOf(container) {\n\tconst keys = isArray(container) ? Object.keys(container).map((i) => Number(i)) : Object.keys(container);\n\treturn keys;\n}\n\n//#endregion\n//#region src/dictionary/objectValues.ts\n/**\n* **objectValues**`(obj) -> [val, val, val]`\n*\n* Converts an object into a strongly typed tuple of the _values_ of\n*/\nfunction objectValues(obj) {\n\tconst tuple$1 = Object.keys(obj).reduce((acc, key) => [...acc, obj[key]], []);\n\treturn tuple$1;\n}\n\n//#endregion\n//#region src/dictionary/omitKeys.ts\n/**\n* **omitKeys**(obj, excluding)\n*\n* Runtime utility which _excludes_ certain **keys** from an object.\n*\n* - this utility is meant to mimic the type utility `Omit<T,U>` provided\n* by Typescript in runtime\n* - attempts will be made to extract the narrowest possible type from\n* the passed in object.\n*\n* ```ts\n* // { baz: 3 }\n* const obj = omit({ foo: 1, bar: 2: baz: 3 }, \"foo\", \"bar\");\n* ```\n*\n* **Related:** `createOmission`, `withoutKeys`, `retainKeys`\n*/\nfunction omitKeys(obj, ...removeKeys) {\n\tconst keys = Object.keys(obj);\n\treturn keys.reduce((acc, key) => removeKeys.includes(key) ? acc : {\n\t\t...acc,\n\t\t[key]: obj[key]\n\t}, {});\n}\n\n//#endregion\n//#region src/dictionary/retainKeys.ts\n/**\n* **retainKeys**(obj,...keys)\n*\n* Reduces the key/value pairs in an object to those keys\n* explicitly stated.\n*\n* **Related:** `createRetainer`, `omitKeys`\n*/\nfunction retainKeys(dict, ...keys) {\n\tlet output = {};\n\tfor (const k of keys) output = {\n\t\t...output,\n\t\t[k]: dict[k]\n\t};\n\treturn output;\n}\n\n//#endregion\n//#region src/dictionary/reverseLookup.ts\n/**\n* **reverseLookup**`(lookup)`\n*\n* Takes a lookup table as an input and reverses it while maintaining narrow\n* types.\n*/\nfunction reverseLookup(lookup$2) {\n\tconst result$1 = {};\n\tfor (const key of Object.keys(lookup$2).reverse()) result$1[lookup$2[key]] = key;\n\treturn result$1;\n}\n\n//#endregion\n//#region src/dictionary/sharedKeys.ts\n/**\n* **sharedKeys**\n*\n* Runtime utility which provides the _shared_ keys between two objects.\n*/\nfunction sharedKeys(a, b) {\n\tconst ka = Object.keys(a);\n\tconst kb = Object.keys(b);\n\treturn ka.filter((k) => kb.includes(k));\n}\n\n//#endregion\n//#region src/dictionary/usingLookup.ts\nfunction usingLookup(lookup$2, missing = unset) {\n\treturn (key) => {\n\t\treturn key in lookup$2 ? lookup$2[key] : missing;\n\t};\n}\n\n//#endregion\n//#region src/dictionary/valuesOf.ts\n/**\n* **valuesOf**(container) -> values[]\n*\n* Runtime utility to convert an object or an array into a tuple of\n* values while preserving as much type information as\n* possible.\n*\n* **Note:** an _array_ is simply proxied through \"as is\"\n*/\nfunction valuesOf(val) {\n\tlet values = [];\n\tif (isArray(val)) values = val;\n\telse if (isDictionary(val)) for (const k of Object.keys(val)) values.push(val[k]);\n\treturn values;\n}\n\n//#endregion\n//#region src/dictionary/withDefaults.ts\n/**\n* **withDefaults**(defaults) → (obj) → _merged_\n*\n* Merges in default values to an existing object and maintains\n* narrow typing.\n*/\nfunction withDefaults(with_defaults) {\n\treturn (obj) => {\n\t\tconst merged = {\n\t\t\t...with_defaults,\n\t\t\t...obj\n\t\t};\n\t\treturn merged;\n\t};\n}\n\n//#endregion\n//#region src/dictionary/withKeys.ts\n/**\n* **withKeys**(obj,keys)\n*\n* Reduces the key/value pairs in an object to those keys\n* explicitly stated.\n*\n* - note: this function is an alias for `retain()`\n*/\nfunction withKeys(dict, ...keys) {\n\treturn retainKeys(dict, ...keys);\n}\n\n//#endregion\n//#region src/dictionary/withoutKeys.ts\n/**\n* **withoutKeys**(obj,...keys)\n*\n* Reduces the key/value pairs in an object with the expressed\n* keys excluded.\n*\n* - this is an alias to the `omit()` utility\n*\n* **Related**: `omit`, `createOmission`\n*/\nfunction withoutKeys(dict, ...exclude) {\n\tconst obj = {};\n\tfor (const [_, key] of Object.keys(dict).entries()) if (!exclude.includes(key)) obj[key] = dict[key];\n\treturn obj;\n}\n\n//#endregion\n//#region src/dictionary/withoutValue.ts\nconst lookup$1 = {\n\tstring: \"string\",\n\t\"string|undefined\": \"string|undefined\",\n\tnumber: \"number\",\n\t\"number|undefined\": \"number|undefined\",\n\t\"string|number\": \"string|number\",\n\tboolean: \"boolean\",\n\ttrue: \"true\",\n\tfalse: \"false\",\n\tobject: \"object\",\n\tObject: \"object\",\n\t\"Record<ObjectKey,unknown>\": \"Record<ObjectKey,unknown>\",\n\t\"Record<ObjectKey,string>\": \"Record<ObjectKey,string>\",\n\t\"Record<ObjectKey,string|number>\": \"Record<ObjectKey,string|number>\",\n\t\"string[]\": \"string[]\",\n\t\"number[]\": \"number[]\",\n\t\"boolean[]\": \"boolean[]\"\n};\n/**\n* validates whether the value _extends_ the baseType\n*/\nfunction testExtends$1(value, baseType) {\n\tif (isString(baseType) && keysOf(lookup$1).includes(baseType)) switch (baseType) {\n\t\tcase \"string\": return !isString(value);\n\t\tcase \"string|undefined\": return !isString(value) && !isUndefined(value);\n\t\tcase \"number\": return !isNumber(value);\n\t\tcase \"number|undefined\": return !isNumber(value) && !isUndefined(value);\n\t\tcase \"string|number\": return !isNumber(value) && !isString(value);\n\t\tcase \"boolean\": return !isBoolean(value);\n\t\tcase \"true\": return !isTrue(value);\n\t\tcase \"false\": return !isFalse(value);\n\t\tcase \"object\":\n\t\tcase \"Object\": return !isObject(value);\n\t\tcase \"Record<ObjectKey,unknown>\": return !isDictionary(value);\n\t\tcase \"Record<ObjectKey,string>\": return !isDictionary(value) || !Object.values(value).every((i) => isString(i));\n\t\tcase \"Record<ObjectKey,string|number>\": return !isDictionary(value) || !Object.values(value).every((i) => isString(i) || isNumber(i));\n\t\tcase \"string[]\": return !isArray(value) || isArray(value) && !value.every((i) => isString(i));\n\t\tcase \"number[]\": return !isArray(value) || isArray(value) && !value.every((i) => isNumber(i));\n\t\tcase \"boolean[]\": return !isArray(value) || isArray(value) && !value.every((i) => isBoolean(i));\n\t}\n\tif (isArray(baseType)) {\n\t\tif (!isNarrowableArray(value)) return true;\n\t\treturn !value.every((_, i) => testExtends$1(value[i], baseType[i]));\n\t}\n\tif (isDictionary(baseType)) {\n\t\tif (!isDictionary(value)) return false;\n\t\tconst baseKeys = Object.keys(baseType);\n\t\tconst valueKeys = Object.keys(value);\n\t\tfor (const key of baseKeys) {\n\t\t\tif (!isUndefined(baseType[key]) && !hasIndexOf(valueKeys, key)) return false;\n\t\t\tif (!testExtends$1(value[key], baseType[key])) return false;\n\t\t}\n\t\treturn true;\n\t}\n\tif (isScalar(baseType) && isScalar(value)) return value !== baseType;\n\treturn false;\n}\n/**\n* **withoutValue**\n*\n* A _higher-order_ runtime utility which allow you to first specify a **type**\n* which you will want to look for in future objects/dictionaries.\n*\n* ### Example\n*\n* ```ts\n* const withoutStrings = withoutValue(\"string\");\n* const withoutFooBar = withoutValue(\"string(foo,bar)\");\n* ```\n*\n* The returned utility will now receive dictionary objects and -- in a type strong\n* manner -- removed the key/values where the value extends `string` or `\"foo\" | \"bar\"`\n* respectively.\n*/\nfunction withoutValue(withValue$1) {\n\treturn (obj) => {\n\t\tconst result$1 = {};\n\t\tfor (const key of Object.keys(obj)) if (testExtends$1(obj[key], withValue$1)) result$1[key] = obj[key];\n\t\treturn result$1;\n\t};\n}\n\n//#endregion\n//#region src/dictionary/withValue.ts\nconst lookup = {\n\tstring: \"string\",\n\t\"string|undefined\": \"string|undefined\",\n\tnumber: \"number\",\n\t\"number|undefined\": \"number|undefined\",\n\t\"string|number\": \"string|number\",\n\tboolean: \"boolean\",\n\ttrue: \"true\",\n\tfalse: \"false\",\n\tobject: \"object\",\n\tObject: \"object\",\n\t\"Record<ObjectKey,unknown>\": \"Record<ObjectKey,unknown>\",\n\t\"Record<ObjectKey,string>\": \"Record<ObjectKey,string>\",\n\t\"Record<ObjectKey,string|number>\": \"Record<ObjectKey,string|number>\",\n\t\"string[]\": \"string[]\",\n\t\"number[]\": \"number[]\",\n\t\"boolean[]\": \"boolean[]\"\n};\n/**\n* validates whether the value _extends_ the baseType\n*/\nfunction testExtends(value, baseType) {\n\tif (isString(baseType) && keysOf(lookup).includes(baseType)) switch (baseType) {\n\t\tcase \"string\": return isString(value);\n\t\tcase \"string|undefined\": return isString(value) || isUndefined(value);\n\t\tcase \"number\": return isNumber(value);\n\t\tcase \"number|undefined\": return isNumber(value) || isUndefined(value);\n\t\tcase \"string|number\": return isNumber(value) || isString(value);\n\t\tcase \"boolean\": return isBoolean(value);\n\t\tcase \"true\": return isTrue(value);\n\t\tcase \"false\": return isFalse(value);\n\t\tcase \"object\":\n\t\tcase \"Object\": return isObject(value);\n\t\tcase \"Record<ObjectKey,unknown>\": return isDictionary(value);\n\t\tcase \"Record<ObjectKey,string>\": return isDictionary(value) && Object.values(value).every((i) => isString(i));\n\t\tcase \"Record<ObjectKey,string|number>\": return isDictionary(value) && Object.values(value).every((i) => isString(i) || isNumber(i));\n\t\tcase \"string[]\": return isArray(value) && value.every((i) => isString(i));\n\t\tcase \"number[]\": return isArray(value) && value.every((i) => isNumber(i));\n\t\tcase \"boolean[]\": return isArray(value) && value.every((i) => isBoolean(i));\n\t}\n\tif (isArray(baseType) && isNarrowableArray(baseType)) {\n\t\tif (!isNarrowableArray(value)) return false;\n\t\tif (baseType.length !== value.length) return false;\n\t\treturn value.every((_, i) => testExtends(value[i], baseType[i]));\n\t}\n\tif (isDictionary(baseType)) {\n\t\tif (!isDictionary(value)) return false;\n\t\tconst baseKeys = Object.keys(baseType);\n\t\tconst valueKeys = Object.keys(value);\n\t\tfor (const key of baseKeys) {\n\t\t\tif (!isUndefined(baseType[key]) && !hasIndexOf(valueKeys, key)) return false;\n\t\t\tif (!testExtends(value[key], baseType[key])) return false;\n\t\t}\n\t\treturn true;\n\t}\n\tif (isScalar(baseType) && isScalar(value)) return value === baseType;\n\treturn false;\n}\n/**\n* **withValue**`(withValue) -> (obj) -> (filtered obj)\n*\n* A _higher-order_ runtime utility which allow you to:\n*\n* - the first call specifies a **type** which you will use for filtering\n* - the second call receives an object and those key/values whose values\n* _extend_ the type defined are kept, the rest are removed.\n*\n* **Note:** for now you can only specify simple types. Soon a full parser will be made available.\n*\n* ```ts\n* // { bar: \"hi\" }\n* const obj = withValue(\"string\")({ foo: 1, bar: \"hi\", baz: 2 });\n* ```\n*/\nfunction withValue(withValue$1) {\n\treturn (obj) => {\n\t\tconst result$1 = {};\n\t\tfor (const key of Object.keys(obj)) if (testExtends(obj[key], withValue$1)) result$1[key] = obj[key];\n\t\treturn result$1;\n\t};\n}\n\n//#endregion\n//#region src/domain/nesting/createNestingConfig.ts\nfunction createNestingConfig(config) {\n\tif (isString(config)) if (config === \"default\" || config === \"brackets\") return {\n\t\t\"{\": \"}\",\n\t\t\"[\": \"]\",\n\t\t\"<\": \">\",\n\t\t\"(\": \")\"\n\t};\n\telse if (config === \"quotes\") return {\n\t\t\"\\\"\": \"\\\"\",\n\t\t\"'\": \"'\",\n\t\t\"`\": \"`\"\n\t};\n\telse throw err(\"invalid/named-nesting\", `An unknown named nesting type of \"${config}\" was passed into createNestingConfig()!`);\n\telse return config;\n}\n\n//#endregion\n//#region src/domain/nesting/isNestingEnd.ts\nfunction isNestingEnd(char, nesting$1) {\n\tif (isNestingTuple(nesting$1)) {\n\t\tconst [start$1, end] = nesting$1;\n\t\tif (end) return end.includes(char);\n\t\telse return !start$1.includes(char);\n\t} else if (isNestingKeyValue(nesting$1)) return Object.values(nesting$1).includes(char);\n\telse return err(`invalid-type/nesting`, `The isNestingStart('${char}', nesting) function received an invalid nesting type. Remember that start and end characters MUST be single length characters`, {\n\t\tnesting: nesting$1,\n\t\tchar\n\t});\n}\n\n//#endregion\n//#region src/domain/nesting/isNestingEndMatch.ts\nfunction isNestingEndMatch(char, stack, nesting$1) {\n\tif (isNestingEnd(char, nesting$1) !== true) return false;\n\telse if (isNestingKeyValue(nesting$1)) {\n\t\tconst lookup$2 = reverseLookup(nesting$1);\n\t\tif (last(stack) === lookup$2[char]) return true;\n\t\telse return false;\n\t} else if (isNestingTuple(nesting$1)) {\n\t\tconst [start$1, end] = nesting$1;\n\t\tif (isUndefined(end)) return !start$1.includes(char);\n\t\telse return !!end.includes(char);\n\t}\n}\n\n//#endregion\n//#region src/domain/nesting/isNestingKeyValue.ts\n/**\n* type-guard which validates that `val` is a `NestingKeyValue`\n*/\nfunction isNestingKeyValue(val) {\n\treturn isDictionary(val) && hasOnlyStringKeys(val) && hasOnlyStringValues(val) && Object.keys(val).every((i) => isString(i) && i.length === 1);\n}\n\n//#endregion\n//#region src/domain/nesting/isNestingStart.ts\nfunction isNestingStart(char, nesting$1) {\n\tif (isNestingTuple(nesting$1)) {\n\t\tconst [start$1, _] = nesting$1;\n\t\treturn start$1.includes(char);\n\t} else if (isNestingKeyValue(nesting$1)) return Object.keys(nesting$1).includes(char);\n\telse return err(`invalid-type/nesting`, `The isNestingStart('${char}', nesting) function received an invalid nesting type. Remember that start and end characters MUST be single length characters`, {\n\t\tnesting: nesting$1,\n\t\tchar\n\t});\n}\n\n//#endregion\n//#region src/domain/nesting/isNestingTuple.ts\n/**\n* type-guard which validates that `val` is a `NestingTuple`\n*\n* **Related:** `IsNestingTuple<T>`\n*/\nfunction isNestingTuple(val) {\n\treturn isArray(val) && val.length === 2 && isArray(val[0]) && val[0].every(isString) && (isArray(val[1]) && val[1].every(isString) || isUndefined(val[1]));\n}\n\n//#endregion\n//#region src/domain/nesting/nesting.ts\nfunction apiSurface(nesting$1) {\n\treturn {\n\t\tretainUntil(str, find$1, incl = true) {\n\t\t\treturn retainUntil__Nested(str, find$1, incl, nesting$1);\n\t\t},\n\t\tsplit(content, split$1, policy = \"omit\") {\n\t\t\treturn nestedSplit(content, split$1, nesting$1, policy);\n\t\t}\n\t};\n}\nfunction nesting(config) {\n\tlet nesting$1;\n\tif (isString(config)) if (config === \"default\" || config === \"brackets\") nesting$1 = {\n\t\t\"{\": \"}\",\n\t\t\"[\": \"]\",\n\t\t\"<\": \">\",\n\t\t\"(\": \")\"\n\t};\n\telse if (config === \"quotes\") nesting$1 = {\n\t\t\"\\\"\": \"\\\"\",\n\t\t\"'\": \"'\",\n\t\t\"`\": \"`\"\n\t};\n\telse throw err(\"invalid/named-nesting\", `An unknown named nesting type of \"${config}\" was passed into createNestingConfig()!`);\n\telse if (isNestingTuple(config) || isNestingKeyValue(config)) nesting$1 = config;\n\telse if (isError(config)) return config;\n\telse return err(\"invalid-nesting\", `The configuration provided to the 'nesting()' function was not a valid nesting configuration`);\n\treturn apiSurface(nesting$1);\n}\n\n//#endregion\n//#region src/functional/result.ts\nconst result = \"NOT READY\";\n\n//#endregion\n//#region src/interpolation/isTemplateLiteral.ts\n/**\n* **isStaticTemplate(val)** -> boolean\n*\n* Tests whether the passed in `val` has static template tags (e.g., `{{string}}`,\n* `{{number}}`, etc.). If the string passed in is a literal string the resolution\n* to a discrete `true`/`false` value should be able to be done at design time.\n*/\nfunction isStaticTemplate(val) {\n\treturn isString(val) ? val.includes(\"{{string}}\") || val.includes(\"{{number}}\") || val.includes(\"{{boolean}}\") ? true : \"maybe\" : false;\n}\n\n//#endregion\n//#region src/meta/urlMeta.ts\nconst PROTOCOLS = Object.values(NETWORK_PROTOCOL_LOOKUP).flat().filter((i) => i !== \"\");\nfunction getUrlProtocol(url) {\n\tconst proto = PROTOCOLS.find((p) => url.startsWith(`${p}://`));\n\treturn proto;\n}\nfunction removeUrlProtocol(url) {\n\treturn stripBefore(url, \"://\");\n}\nfunction ensurePath(val) {\n\tconst val2 = ensureLeading(val, \"/\");\n\treturn val === \"\" ? \"\" : stripTrailing(val2, \"/\");\n}\nfunction getUrlPath(url) {\n\treturn isUrl(url) ? ensurePath(stripAfter(stripBefore(removeUrlProtocol(url), \"/\"), \"?\")) : Never;\n}\n/**\n* **getUrlQueryParams**`(url, [specific])`\n*\n* Get's the query parameter's part of a URL and optionally allows\n* you to focus in on a specific key in the query parameters.\n*\n* If you do specify a particular query parameter it will decode\n* the value with URIDecode.\n*/\nfunction getUrlQueryParams(url, specific = void 0) {\n\tconst qp = stripBefore(url, \"?\");\n\tif (specific) return qp.includes(`${specific}=`) ? decodeURIComponent(stripAfter(stripBefore(qp, `${specific}=`), \"&\").replace(/\\+/g, \"%20\")) : void 0;\n\treturn qp === \"\" ? qp : `?${qp}`;\n}\n/**\n* **getUrlDefaultPort**`(url)`\n*\n* Returns the default port which the given URL string would use\n* based on the protocol detected in this string.\n*/\nfunction getUrlDefaultPort(url) {\n\tconst proto = getUrlProtocol(url);\n\treturn proto in PROTOCOL_DEFAULT_PORTS ? PROTOCOL_DEFAULT_PORTS[proto] : null;\n}\n/**\n* **getUrlPort**`(url, [resolve])`\n*\n* Find the URL port specified in the passed in URL.\n*\n* - return \"default\" if no explicit url was expressed\n* - if you set `resolve` to **true** it will resolve URL's which\n* don't explicitly state their port to\n*/\nfunction getUrlPort(url, resolve = false) {\n\tconst re = /.*:(\\d{2,3})/;\n\tconst match = url.match(re);\n\treturn re.test(url) && match && isNumberLike(Array.from(match)[1]) ? Number(Array.from(match)[1]) : resolve ? getUrlDefaultPort(url) : hasProtocol(url) ? `default` : null;\n}\n/**\n* **getUrlSource**`(url)`\n*\n* Extracts the `source` part of the url.\n*\n* - this is the DNS name if DNS is used\n* - or an IP address\n*/\nfunction getUrlSource(url) {\n\tconst candidate = stripAfter(stripAfter(stripAfter(removeUrlProtocol(url), \"/\"), \"?\"), \":\");\n\treturn isIpAddress(candidate) || isDomainName(candidate) ? candidate : Never;\n}\nfunction getUrlBase(url) {\n\tconst path = getUrlPath(url);\n\tconst remaining = stripAfter(url, path);\n\treturn remaining;\n}\nfunction getUrlDynamics(url) {\n\tconst path = getUrlPath(url);\n\tconst qp = getUrlQueryParams(url);\n\tconst pathParts = path.startsWith(\"<\") ? path.split(\"<\").map((i) => ensureLeading(i, \"<\")) : path.split(\"<\").map((i) => ensureLeading(i, \"<\")).slice(1);\n\tconst segmentTypes = [\n\t\t\"string\",\n\t\t\"number\",\n\t\t\"boolean\",\n\t\t\"Opt<string>\",\n\t\t\"Opt<number>\",\n\t\t\"Opt<boolean>\"\n\t];\n\tconst pathVars = {};\n\tconst findPathTyped = infer(`<{{infer name}} as {{infer type}}>`);\n\tconst findPathUnion = infer(`<{{infer name}} as string({{infer union}})>`);\n\tconst findPathNamed = infer(`<{{infer name}}>`);\n\tfor (const part of pathParts) {\n\t\tconst union = findPathUnion(part);\n\t\tconst typed = findPathTyped(part);\n\t\tconst named = findPathNamed(part);\n\t\tif (union) {\n\t\t\tif (isVariable(union.name) && isCsv(union.union)) pathVars[union.name] = `string(${union.union})`;\n\t\t} else if (typed && segmentTypes.includes(typed.type) && isVariable(typed.name)) pathVars[typed.name] = typed.type;\n\t\telse if (named && isVariable(named.name)) pathVars[named.name] = \"string\";\n\t}\n\tconst qpVars = {};\n\tconst qpParts = stripLeading(qp, \"?\").split(\"&\");\n\tfor (const p of qpParts) {\n\t\tconst union = infer(`{{infer var}}=<string({{infer params}})>`)(p);\n\t\tconst dynamic = infer(`{{infer var}}=<{{infer val}}>`)(p);\n\t\tconst fixed = infer(`{{infer var}}={{infer val}}`)(p);\n\t\tif (union && isVariable(union.var) && isCsv(union.params)) qpVars[union.var] = `string(${union.params})`;\n\t\telse if (dynamic && isVariable(dynamic.var) && segmentTypes.includes(dynamic.val)) qpVars[dynamic.var] = dynamic.val;\n\t\telse if (fixed && isVariable(fixed.var)) qpVars[fixed.var] = fixed.val;\n\t}\n\treturn {\n\t\tpathVars,\n\t\tqpVars,\n\t\tallVars: hasOverlappingKeys(pathVars, qpVars) ? null : {\n\t\t\t...pathVars,\n\t\t\t...qpVars\n\t\t}\n\t};\n}\n/**\n* **urlMeta**`(url)`\n*\n* Analyzes the string passed in and provides a small dictionary of\n* metadata properties about the URL.\n*/\nfunction urlMeta(url) {\n\treturn {\n\t\turl,\n\t\tisUrl: isUrl(url),\n\t\tprotocol: getUrlProtocol(url),\n\t\tpath: getUrlPath(url),\n\t\tqueryParameters: getUrlQueryParams(url),\n\t\tparams: getUrlDynamics,\n\t\tport: getUrlPort(url),\n\t\tsource: getUrlSource(url),\n\t\tisIpAddress: isIpAddress(getUrlSource(url)),\n\t\tisIp4Address: isIp4Address(getUrlSource(url)),\n\t\tisIp6Address: isIp6Address(getUrlSource(url))\n\t};\n}\n\n//#endregion\n//#region src/meta/youtube-meta.ts\n/**\n* **getYouTubePageType**`(url)`\n*\n* Returns a `YouTubePageType` description based on the url passed in (assuming\n* that URL is for YouTube). Returns _never_ if not a YouTube URL.\n*/\nfunction getYouTubePageType(url) {\n\treturn isYouTubeUrl(url) ? isYouTubeVideoUrl(url) && (hasUrlQueryParameter(url, \"v\") || isYouTubeShareUrl(url)) ? hasUrlQueryParameter(url, \"list\") ? isYouTubeShareUrl(url) ? hasUrlQueryParameter(url, \"t\") ? `play::video::in-list::share-link::with-timestamp` : `play::video::in-list::share-link` : `play::video::in-list` : isYouTubeShareUrl(url) ? hasUrlQueryParameter(url, \"t\") ? `play::video::solo::share-link::with-timestamp` : `play::video::solo::share-link` : `play::video::solo` : isYouTubeCreatorUrl(url) ? getUrlPath(url).includes(\"/videos\") ? \"creator::videos\" : getUrlPath(url).includes(\"/playlists\") ? \"creator::playlists\" : last(getUrlPath(url).split(\"/\")).startsWith(\"@\") || getUrlPath(url).includes(\"/featured\") ? \"creator::featured\" : \"creator::other\" : isYouTubeFeedUrl(url) ? isYouTubeFeedUrl(url, \"history\") ? \"feed::history\" : isYouTubeFeedUrl(url, \"playlists\") ? \"feed::playlists\" : isYouTubeFeedUrl(url, \"liked\") ? \"feed::liked\" : isYouTubeFeedUrl(url, \"subscriptions\") ? \"feed::subscriptions\" : isYouTubeFeedUrl(url, \"trending\") ? \"feed::trending\" : \"feed::other\" : isYouTubeVideosInPlaylist(url) ? \"playlist::show\" : \"other\" : Never;\n}\n/**\n* **youtubeEmbed**`(url)`\n*\n* Takes a Video URL from YouTube and converts it to a \"embed\" URL\n* that can be put into an iframe.\n*/\nfunction youtubeEmbed(url) {\n\tif (hasUrlQueryParameter(url, \"v\")) {\n\t\tconst id = getUrlQueryParams(url, \"v\");\n\t\treturn `https://www.youtube.com/embed/${id}`;\n\t} else if (isYouTubeShareUrl(url)) {\n\t\tconst id = url.split(\"/\").pop();\n\t\tif (id) return `https://www.youtube.com/embed/${id}`;\n\t\telse throw new Error(`Unexpected problem parsing share URL -- \"${url}\" -- into a YouTube embed URL`);\n\t} else throw new Error(`Unexpected URL structure; unable to convert \"${url}\" to a YouTube embed URL`);\n}\n/**\n* **youtube**`(url)`\n*\n* Takes a YouTube URL and converts it to a meta-data object\n* that helps describe the intent of the URL.\n*/\nfunction youtubeMeta(url) {\n\treturn isYouTubeUrl(url) ? {\n\t\turl,\n\t\tisYouTubeUrl: true,\n\t\tisShareUrl: isYouTubeShareUrl(url),\n\t\tpageType: getYouTubePageType(url)\n\t} : {\n\t\turl,\n\t\tisYouTubeUrl: false\n\t};\n}\n\n//#endregion\n//#region src/queues/fifo.ts\nfunction queue$1(state) {\n\treturn {\n\t\tqueue: state,\n\t\tsize: state.length,\n\t\tisEmpty() {\n\t\t\treturn state.length === 0;\n\t\t},\n\t\tclear() {\n\t\t\tstate.slice(0, 0);\n\t\t},\n\t\tdrain() {\n\t\t\tconst old_state = [...state];\n\t\t\tstate.slice(0, 0);\n\t\t\treturn old_state;\n\t\t},\n\t\tpush(...add$1) {\n\t\t\tstate.push(...add$1);\n\t\t},\n\t\tdrop(quantity) {\n\t\t\tif (quantity && quantity > state.length) throw new Error(\"Cannot drop more elements than present in the queue\");\n\t\t\tstate.splice(0, quantity || 1);\n\t\t},\n\t\ttake(quantity) {\n\t\t\tif (quantity && quantity > state.length) throw new Error(\"Cannot take more elements than present in the queue\");\n\t\t\tconst result$1 = state.slice(0, quantity || 1);\n\t\t\tstate.splice(0, quantity || 1);\n\t\t\treturn result$1;\n\t\t},\n\t\t*[Symbol.iterator]() {\n\t\t\tfor (let i = 0; i < state.length; i++) yield state[i];\n\t\t}\n\t};\n}\nfunction createFifoQueue(...list) {\n\treturn queue$1([...list]);\n}\n\n//#endregion\n//#region src/queues/lifo.ts\nfunction queue(state) {\n\treturn {\n\t\tqueue: state,\n\t\tsize: state.length,\n\t\tisEmpty() {\n\t\t\treturn state.length === 0;\n\t\t},\n\t\tpush(...add$1) {\n\t\t\tstate.push(...add$1);\n\t\t},\n\t\tdrop(quantity) {\n\t\t\tstate.splice(-quantity);\n\t\t},\n\t\tclear() {\n\t\t\tstate.slice(0, 0);\n\t\t},\n\t\tdrain() {\n\t\t\tconst old_state = [...state];\n\t\t\tstate.slice(0, 0);\n\t\t\treturn old_state;\n\t\t},\n\t\ttake(quantity) {\n\t\t\tconst result$1 = state.slice(-quantity);\n\t\t\tstate.splice(-quantity);\n\t\t\treturn result$1;\n\t\t},\n\t\t*[Symbol.iterator]() {\n\t\t\tfor (let i = state.length - 1; i >= 0; i--) yield state[i];\n\t\t}\n\t};\n}\nfunction createLifoQueue(...list) {\n\treturn queue([...list]);\n}\n\n//#endregion\n//#region src/regex/createTemplateRegExp.ts\nfunction escapeRegExp(str) {\n\treturn str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\nfunction replaceAllFromTo$1(content, fromTo) {\n\tlet output = content;\n\tfor (const key of Object.keys(fromTo)) output = output.replace(new RegExp(escapeRegExp(key), \"g\"), fromTo[key]);\n\treturn output;\n}\n/**\n* **createTemplateRegExp**`(template, [handling]) -> (api)`\n*\n* A higher order function which:\n*\n* - on the first call you provide a static template which can leverage _dynamic\n* segments_ with the `{{string}}`, `{{number}}`, `{{boolean}}` tags.\n* - you can also specify a \"strategy\":\n* - **exact** _(default strategy)_ - look for an exact match of the template provided\n* - **subset** - look for the template as a _subset_/_sub-string_ of a larger string;\n* this allows text both before and after the template and will also add another grouping\n* level.\n*\n* What's returned from the first call is an API surface which mimics a regular expression API surface.\n*\n* - the `test()` utility returns a boolean value and _tries_ to resolve whether it is\n* true or false at _design time_ where possible.\n*\n* - the `exec()` function tests for matches of not only an overall pattern but sub-patterns\n* which would be defined by parenthesis in regular RegExp but in our case the _dynamic segments_\n* defined by string like `{{string}}`, etc.\n* - if there is a match then an array will be returned:\n* - the 0 index is always the full text which produced the match\n* - if you used the **subset** strategy then index 1 will be the text\n* which matched the whole static template (but excluding any _preamble_ or _prolog_)\n* - all remaining indexes reference the various _dynamic regions_ (e.g., `{{string}}`, etc.)\n* specified in your template.\n* - the \"type\" of the dynamic segment will be used in the search and the\n* type will set appropriately (e.g., a `{{number}}` dynamic segment will\n* result in a numeric type)\n* - if a match is NOT found then an error of the type \"no-match\" will be returned.\n*/\nfunction createTemplateRegExp(template, handling = \"exact\") {\n\t/** safe characters used instead of curlies */\n\tconst safe = replaceAllFromTo$1(template, {\n\t\t\"{{string}}\": \"__STRING__\",\n\t\t\"{{number}}\": \"__NUMBER__\",\n\t\t\"{{boolean}}\": \"__BOOLEAN__\"\n\t});\n\tconst escaped = escapeRegExp(safe);\n\tconst finalPattern = replaceAllFromTo$1(escaped, {\n\t\t\"__STRING__\": \"(.+?)\",\n\t\t\"__NUMBER__\": \"(\\\\d+)\",\n\t\t\"__BOOLEAN__\": \"(true|false)\"\n\t});\n\tconst innerPattern = finalPattern;\n\tconst fullPattern = handling === \"exact\" ? `^${innerPattern}$` : `.*(${innerPattern}).*`;\n\tconst regex = new RegExp(fullPattern);\n\tconst segmentTypes = Array.from(template.matchAll(/\\{\\{(string|number|boolean)\\}\\}/g)).map((i) => i[1]);\n\tconst api$1 = {\n\t\tkind: \"RegexpArray\",\n\t\tpattern: fullPattern,\n\t\ttest(test) {\n\t\t\treturn regex.test(test);\n\t\t},\n\t\texec(test) {\n\t\t\tconst m = regex.exec(test);\n\t\t\tif (!m) return err(\"no-match\");\n\t\t\tconst offset = handling === \"exact\" ? 1 : 2;\n\t\t\tconst out = [];\n\t\t\tout.push(m[0]);\n\t\t\tif (handling === \"subset\") out.push(m[1]);\n\t\t\tfor (let i = 0; i < segmentTypes.length; i++) {\n\t\t\t\tconst segType = segmentTypes[i];\n\t\t\t\tconst raw = m[i + offset];\n\t\t\t\tconst val = segType === \"number\" ? Number(raw) : segType === \"boolean\" ? raw === \"true\" : raw;\n\t\t\t\tout.push(val);\n\t\t\t}\n\t\t\tconst result$1 = Object.assign([], out);\n\t\t\tfor (let i = 0; i < out.length; i++) result$1[i] = out[i];\n\t\t\tresult$1.index = m.index;\n\t\t\tresult$1.input = m.input;\n\t\t\tresult$1.groups = m.groups;\n\t\t\tresult$1.kind = \"RegexArray\";\n\t\t\tresult$1.template = template;\n\t\t\tresult$1.matchStrategy = handling;\n\t\t\treturn result$1;\n\t\t},\n\t\ttoString() {\n\t\t\treturn regex.toString();\n\t\t}\n\t};\n\treturn api$1;\n}\n\n//#endregion\n//#region src/runtime-types/asTypedErr.ts\nfunction asTypedError(classification, msg) {\n\tconst [type, subType] = asTypeSubtype(classification);\n\tconst err$1 = new Error(msg);\n\terr$1.name = toPascalCase(type);\n\terr$1.type = toKebabCase(type);\n\terr$1.subType = toKebabCase(subType);\n\treturn err$1;\n}\n\n//#endregion\n//#region src/runtime-types/asUnion.ts\nconst defaultOptions = {\n\tprefix: \"\",\n\tpostfix: \"\",\n\tencoder: null\n};\n/**\n* Allows you to create a runtime \"token\" while specifying what it's union type is.\n*/\nfunction asUnion(elements, sep = \" | \", options = {}) {\n\tconst opts = {\n\t\t...defaultOptions,\n\t\t...options\n\t};\n\tconst encoder = opts.encoder;\n\treturn isFunction(encoder) ? `${opts.prefix}${elements.map((i) => encoder(`${i}`)).join(sep)}${opts.postfix}` : `${opts.prefix}${elements.join(sep)}${opts.postfix}`;\n}\n\n//#endregion\n//#region src/runtime-types/choices.ts\nconst choices = \"NOT READY\";\n\n//#endregion\n//#region src/runtime-types/defineObjectWith.ts\nfunction defineObjectWith(_mapper) {\n\treturn (defn) => {\n\t\treturn {\n\t\t\tkind: \"define-object-with\",\n\t\t\tdefn,\n\t\t\ttype: null\n\t\t};\n\t};\n}\n\n//#endregion\n//#region src/runtime-types/doesExtend.ts\n/**\n* **doesExtend**`(type) => (value) => boolean`\n*\n* A higher order utility where the first call provides a type definition\n* and the subsequent call tests whether the value passed in _extends_\n* the type.\n*/\nfunction doesExtend(type) {\n\treturn (val) => {\n\t\tif (isInputToken(type)) if (isString(type)) {\n\t\t\tif (type === \"string\") return isString(val);\n\t\t\telse if (type.startsWith(\"string(\") && type.endsWith(\")\")) {\n\t\t\t\tconst values = type.slice(7, -1).split(\",\").map((v) => v.trim());\n\t\t\t\treturn isString(val) && values.includes(val);\n\t\t\t} else if (type === \"number\") return isNumber(val);\n\t\t\telse if (type.startsWith(\"number(\") && type.endsWith(\")\")) {\n\t\t\t\tconst values = type.slice(7, -1).split(\",\").map((v) => Number(v.trim()));\n\t\t\t\treturn isNumber(val) && values.includes(val);\n\t\t\t} else if (type === \"boolean\") return isBoolean(val);\n\t\t\telse if (type === \"true\") return isTrue(val);\n\t\t\telse if (type === \"false\") return isFalse(val);\n\t\t\telse if (type === \"null\") return isNull(val);\n\t\t\telse if (type === \"undefined\") return isUndefined(val);\n\t\t\telse if (type === \"object\") return isDictionary(val);\n\t\t} else if (isDefineObject(type)) if (isDictionary(val)) return Object.keys(type).every((k) => isInputToken(type[k]) && isNarrowable(val[k]) && doesExtend(type[k])(val[k]));\n\t\telse return false;\n\t\telse if (isDefineTuple(type)) if (isArray(val)) return val.length === type.length ? type.every((t, i) => isInputToken(t) && isNarrowable(val[i]) && doesExtend(t)(val[i])) : false;\n\t\telse return false;\n\t\telse return false;\n\t\treturn false;\n\t};\n}\n\n//#endregion\n//#region src/runtime-types/shape-helpers/addToken.ts\n/**\n* Adds any `TypeToken` by receiving the `TypeTokenKind` and then whatever\n* parameters that type requires.\n*/\nfunction addToken(token, ...params) {\n\treturn `<<${token}${params.length > 0 ? `::${params.join(\"::\")}` : \"\"}>>`;\n}\n\n//#endregion\n//#region src/runtime-types/shape-helpers/atomics.ts\nfunction boolean(literal$1) {\n\treturn isDefined(literal$1) ? isTrue(literal$1) ? addToken(\"true\") : isFalse(literal$1) ? addToken(\"false\") : addToken(\"boolean\") : addToken(\"boolean\");\n}\nconst unknown = () => \"<<unknown>>\";\nconst undefinedType = () => \"<<undefined>>\";\nconst nullType = () => \"<<null>>\";\n\n//#endregion\n//#region src/runtime-types/shape-helpers/functions.ts\n/**\n* **fn**\n*\n* provides an API surface for function definition\n*/\nfunction fn(..._args) {\n\treturn {\n\t\treturns: (_rtn) => ({\n\t\t\taddProperties: (_kv) => {\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\tdone: () => {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}),\n\t\tdone: () => {\n\t\t\tconst result$1 = null;\n\t\t\treturn result$1;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/runtime-types/shape-helpers/wide-containers.ts\nfunction record(_key, _value) {\n\treturn null;\n}\nfunction array(_type) {\n\treturn null;\n}\nfunction set(_type) {\n\treturn null;\n}\nfunction map(_key, _value) {\n\treturn null;\n}\nfunction weakMap(_key, _value) {\n\treturn null;\n}\n\n//#endregion\n//#region src/runtime-types/shape.ts\nfunction isAddOrDone(val) {\n\treturn isDictionary(val) && hasKeys(\"add\", \"done\") && typeof val.done === \"function\" && typeof val.add === \"function\";\n}\nconst ShapeApiImplementation = {\n\tboolean,\n\tunknown,\n\tundefined: undefinedType,\n\tnull: nullType,\n\tfn,\n\trecord,\n\tarray,\n\tset,\n\tmap,\n\tweakMap\n};\n/**\n* **shape**(s => s.[API])\n*\n* Provides a callback API to allow for defining a type (_which\n* retains a runtime value which will map back to the type_)\n*\n* **Related:** `isShape(val)`\n*/\nfunction shape(cb) {\n\tconst rtn = cb(ShapeApiImplementation);\n\treturn handleDoneFn(isAddOrDone(rtn) ? rtn.done() : rtn);\n}\n/**\n* **isShape**(val)\n*\n* Type guard which tests whether a value is a _type_ defined by a `Shape`.\n*/\nfunction isShape(v) {\n\treturn !!(isString(v) && v.startsWith(\"<<\") && v.endsWith(\">>\") && SHAPE_PREFIXES.some((i) => v.startsWith(`<<${i}`)));\n}\n\n//#endregion\n//#region src/runtime-types/shape-helpers/getTokenData.ts\n/**\n* **getTokenData**`(token)`\n*\n* Given a `Shape` token, this function will extract the\n* data parameters from the token.\n*/\nfunction getTokenData(token) {\n\tconst [_name, ...rest] = stripTrailing(token, \">>\").split(\"::\");\n\treturn rest;\n}\n\n//#endregion\n//#region src/runtime-types/shape-helpers/regexToken.ts\n/**\n* **regexToken**`(re, ...rep)`\n*\n* Creates a `TypeToken` that is a form of string literal and\n* represented in the type system via the use of the `SimpleToken`\n* elements defined in \"rep\" but then with the RegExp encoded into\n* the token too so that it can be used for validation during\n* runtime.\n*/\nfunction regexToken(re, ...rep) {\n\tlet exp = \"\";\n\tif (isString(re)) try {\n\t\tconst test = new RegExp(re);\n\t\tif (!isRegExp(test)) {\n\t\t\tconst err$1 = new Error(`Invalid RegEx passed into regexToken(${re}, ${JSON.stringify(rep)})!`);\n\t\t\terr$1.name = \"InvalidRegEx\";\n\t\t\tthrow err$1;\n\t\t} else exp = re;\n\t} catch {\n\t\tconst err$1 = new Error(`Invalid RegEx passed into regexToken(${re}, ${JSON.stringify(rep)})!`);\n\t\terr$1.name = \"InvalidRegEx\";\n\t\tthrow err$1;\n\t}\n\telse if (isRegExp(re)) exp = re.toString();\n\tconst token = `<<string-set::regexp::${encodeURIComponent(exp)}>>`;\n\treturn token;\n}\n\n//#endregion\n//#region src/runtime-types/tokens/asOutputToken.ts\nfunction asOutputFunction(_val) {}\n\n//#endregion\n//#region src/runtime-types/tokens/asType.ts\n/**\n* Receives an `InputTokenLike` token and converts it to the\n* _type_ this token represents while ensuring that the runtime type\n* is the string representation of the token.\n*\n* **Related:** `fromInputToken()`\n*/\nfunction asType(...token) {\n\tif (token.length === 0) return err(`invalid-token/structure`, `you passed in zero parameters to asType()!`);\n\tconst first = token[0];\n\tconst defn = defineObject(first);\n\treturn token.length === 1 ? isDefineObject(defn) ? isError(defn) ? defn : keysWithError(defn).length > 0 ? err(`invalid-token/object`, `Some of the keys in a DefineObject structure were invalid and caused an error`, { keys: keysWithError(defn) }) : defn : isString(first) ? first.trim() : isArray(first) ? err(`invalid-token/tuple`, `You passed in a single token to asType() but it was an array/tuple. If you're trying to define a tuple type then be sure to use a spread notation instead.`, { tokens: toStringLiteral__Tuple(token) }) : token.length > 1 ? token.map((i) => isString(i) ? i : fromInputToken(i)) : Never : Never;\n}\n\n//#endregion\n//#region src/runtime-types/tokens/createGrammar.ts\nfunction createGrammar(tokenSyntax, ...tokens$1) {\n\treturn {\n\t\tkind: \"Grammar\",\n\t\tsyntax: tokenSyntax,\n\t\ttokens: tokens$1\n\t};\n}\n\n//#endregion\n//#region src/runtime-types/tokens/createToken.ts\nfunction staticToken(name) {\n\treturn (type, typeGuard) => {\n\t\treturn {\n\t\t\tkind: \"StaticToken\",\n\t\t\tisStatic: true,\n\t\t\tname,\n\t\t\ttype: simpleType(type),\n\t\t\ttypeGuard\n\t\t};\n\t};\n}\nfunction dynamicToken(name) {\n\treturn (resolver, tokenizer) => {\n\t\treturn {\n\t\t\tkind: \"DynamicToken\",\n\t\t\tisStatic: false,\n\t\t\tname,\n\t\t\tresolver,\n\t\t\ttokenizer\n\t\t};\n\t};\n}\n/**\n* **createToken**`(name,baseType,params,parser)`\n*\n* Creates a token to be used in a `Grammar`.\n*/\nfunction createToken(token, kind) {\n\treturn kind === \"static\" ? staticToken(token) : dynamicToken(token);\n}\n\n//#endregion\n//#region src/runtime-types/tokens/createTokenSyntax.ts\nfunction defaultEncoder(start$1, end, sep) {\n\tconst config = {\n\t\t[start$1]: \"^start!\",\n\t\t[end]: \"^end!\",\n\t\t[sep]: \"^sep!\",\n\t\t\"\\\"\": \"^dq!\",\n\t\t\"'\": \"^sq!\",\n\t\t\"`\": \"^grave!\"\n\t};\n\treturn config;\n}\nfunction createTokenSyntax(name, start$1, end, sep, encoding = defaultEncoder(start$1, end, sep)) {\n\tconst tg = {\n\t\tkind: \"TokenSyntax\",\n\t\tname,\n\t\tstart: start$1,\n\t\tend,\n\t\tsep,\n\t\tencodingDefinition: encoding,\n\t\tencode: \"not-implemented\",\n\t\tdecode: \"not-implemented\"\n\t};\n\treturn tg;\n}\n\n//#endregion\n//#region src/runtime-types/tokens/getTokenKind.ts\n/**\n* **getTokenKind**`(token)`\n*\n* Given a `TypeToken`, this function will extract the\n* `kind` variant name.\n*/\nfunction getTokenKind(token) {\n\tconst bare = stripSurround(\"<<\", \">>\")(token);\n\tconst parts = bare.split(\"::\");\n\tconst kind = parts.pop();\n\treturn kind;\n}\n\n//#endregion\n//#region src/runtime-types/tokens/input-tokens/asInputToken.ts\n/**\n* **asInputToken**`(token) -> string`\n*\n* Takes an input token(string or otherwise) and returns it as a string token.\n*\n* **Note:** until the runtime type parser is finished this will not produce\n* a runtime errors when an invalid token is passed in but the _type_ will\n* be set because it benefits from type utilities which are already in place.\n*/\nfunction asInputToken(token) {\n\treturn isString(token) ? token : isDictionary(token) ? toStringLiteral__Object(token) : isArray(token) ? fromInputToken(token) : Never;\n}\n\n//#endregion\n//#region src/runtime-types/tokens/input-tokens/asStringInputToken.ts\n/**\n* **toStringToken**`(token)`\n*\n* Proxies through any existing string tokens while making sure\n* that `InputToken__Object` and `InputToken__Tuple` are converted\n* to string representations.\n*/\nfunction toStringToken(token) {\n\tif (isDefineObject(token)) return toStringLiteral(token, { tokensAllowed: true });\n}\n\n//#endregion\n//#region src/runtime-types/tokens/input-tokens/fromDefineObject.ts\n/**\n* Takes an `DefineObject` definition and:\n*\n* - converts it's runtime value to a string-based `InputToken` representation at runtime\n* - converts the _type_ to be the type this token is representing.\n*/\nfunction fromDefineObject(defn) {\n\treturn toStringLiteral(defn, { tokensAllowed: true });\n}\n\n//#endregion\n//#region src/runtime-types/tokens/input-tokens/fromDefineTuple.ts\n/**\n* **fromDefineTuple**`(defn)`\n*\n* Takes in a `DefineTuple` type and converts it to the _type_\n* it represents.\n*\n* **Note:**\n* - the runtime **value** will be converted to a **string**\n* definition of the tuple token (if it wasn't already a string variant)\n* - the _type_ will be whatever type the provided `DefineTuple` _defined_\n*/\nfunction fromDefineTuple(defn) {\n\treturn toStringLiteral(defn);\n}\n\n//#endregion\n//#region src/runtime-types/tokens/input-tokens/fromInputToken.ts\n/**\n* **asInputToken**`(token)`\n*\n* takes both string and _non-string_ representations of an input token\n* and ensures that they are converted to their _string-literal_ form\n* while the _type_ is converted to the _type_ which the token\n* represents.\n*/\nfunction fromInputToken(token) {\n\treturn isInputToken__String(token) ? token : isDefineObject(token) ? toStringToken(token) : isDefineTuple(token) ? toStringToken(token) : err(\"invalid-token\", `The input token provided was invalid!`, { token });\n}\n\n//#endregion\n//#region src/runtime-types/tokens/simpleToken.ts\n/**\n* **simpleToken**`(token)`\n*\n* Creates a `SimpleToken` which assured to be a valid token type.\n*\n* **Related:** `simpleType()`, `simpleScalarToken()`, `simpleContainerToken()`\n*/\nconst simpleToken = (token) => token;\n/**\n* **simpleScalarToken**`(token)`\n*\n* Creates a `SimpleScalarToken` which is assured to be a valid token type.\n*\n* **Related:** `simpleType()`, `simpleToken()`, `simpleContainerToken()`\n*/\nconst simpleScalarToken = (token) => token;\n/**\n* **simpleContainerToken**`(token)`\n*\n* Creates a `SimpleContainerToken` which assured to be a valid token type.\n*\n* **Related:** `simpleType()`, `simpleToken()`, `simpleScalarToken()`\n*/\nconst simpleContainerToken = (token) => token;\n/**\n* **simpleScalarType**`(token)`\n*\n* Creates a valid runtime token _and_ converts it's type to the type that\n* the token represents.\n*\n* **Related:** `simpleScalarToken`\n*/\nfunction simpleScalarType(token) {\n\tconst value = simpleScalarToken(token);\n\treturn value;\n}\n/**\n* **simpleContainerType**`(token)`\n*\n* Creates a valid runtime token _and_ converts it's type to the type that\n* the token represents.\n*\n* **Related:** `simpleContainerToken`\n*/\nfunction simpleContainerType(token) {\n\tconst value = simpleContainerToken(token);\n\treturn value;\n}\n/**\n* **simpleType**`(token)`\n*\n* Creates a valid runtime token of the `SimpleToken` convention and converts\n* the _type_ to the type that the token represents.\n*/\nfunction simpleType(token) {\n\tconst value = isSimpleScalarToken(token) ? simpleScalarType(token) : isSimpleContainerToken(token) ? simpleContainerToken(token) : Never;\n\treturn value;\n}\n\n//#endregion\n//#region src/sets/hasOverlappingKeys.ts\n/**\n* checks whether objects `A`, and `B` have overlapping\n* keys.\n*/\nfunction hasOverlappingKeys(a, b) {\n\tconst keys = Object.keys(a);\n\tfor (const k of keys) if (k in b) return true;\n\treturn false;\n}\n\n//#endregion\n//#region src/sets/uniqueKeys.ts\n/**\n* **uniqueKeys**(left, right)\n*\n* Returns a strongly typed `LeftRight` tuple which identifies the\n* unique keys for each participant list passed in.\n*/\nfunction uniqueKeys(left, right) {\n\tconst isNumeric = !!(isArray(left) && isArray(right));\n\tif (isArray(left) && !isArray(right) || isArray(right) && !isArray(left)) throw new Error(\"uniqueKeys(l,r) given invalid comparison; both left and right values should be an object or an array but not one of each!\");\n\tconst l = isNumeric ? Object.keys(left).map((i) => Number(i)) : Object.keys(left);\n\tconst r = isNumeric ? Object.keys(right).map((i) => Number(i)) : Object.keys(right);\n\tif (isNumeric) throw new Error(\"uniqueKeys does not yet work with tuples\");\n\tconst leftKeys = l.filter((i) => !r.includes(i));\n\tconst rightKeys = r.filter((i) => !l.includes(i));\n\treturn [\n\t\t\"LeftRight\",\n\t\tleftKeys,\n\t\trightKeys\n\t];\n}\n\n//#endregion\n//#region src/take/asTakeState.ts\n/**\n* **asTakeState**`(take)`\n*\n*\n*/\nfunction asTakeState(take$1) {\n\treturn isTakeState(take$1) ? take$1 : isString(take$1) ? {\n\t\tkind: \"TakeState\",\n\t\tparsed: [],\n\t\tparseString: take$1,\n\t\ttokens: []\n\t} : Never;\n}\n\n//#endregion\n//#region src/take/create/createTakeFunction.ts\nfunction staticBuilder(_opt) {\n\tconst builder = { enum(...items) {\n\t\treturn { callback(cb) {\n\t\t\treturn (lexer) => {\n\t\t\t\tconst result$1 = createStaticTakeFunction(items, cb)(lexer);\n\t\t\t\treturn result$1;\n\t\t\t};\n\t\t} };\n\t} };\n\treturn builder;\n}\n/**\n* **createTakeFunction**`(kind,[ opt ]) -> kind specific api`\n*\n* A higher order builder function which allows you to choose a _kind_\n* of take function from the following:\n*\n* - Static Block\n*\n* - configure a static set of variants to match on\n* - provide a callback to map a match to a Lexer token\n* - wrapper will automatically return `Unset` if no match\n* is found\n* - callback fn for mapping a match to a Lexer token (or return\n* an Error as an outlet)\n*\n* - Start/End Block\n*\n* - provide `start` and `end` characters which will be used\n* for matching\n*\n* - While Block\n*/\nfunction createTakeFunction(kind, opt = {}) {\n\tswitch (kind) {\n\t\tcase \"static\": return staticBuilder(opt);\n\t\tcase \"start-end\": return null;\n\t\tcase \"while\": return createTakeWhileFunction;\n\t\tdefault: throw err;\n\t}\n}\n\n//#endregion\n//#region src/take/create/createTakeStartEndFunction.ts\n/**\n* **createTakeStartEndFunction**`(startEnd, opts) -> take fn`\n*\n* creates a `take` function which is based on a\n* **start** and **end** token(s).\n*/\nfunction createTakeStartEndFunction(_startEnd, _opts) {\n\treturn (_str) => {};\n}\n\n//#endregion\n//#region src/take/create/createTakeStaticBlockFunction.ts\n/**\n* **createStaticTakeFunction**`(items[], cb) -> take(lex) -> Error | LexerState`\n*\n* a \"builder\" which _takes_:\n*\n* 1. a static set of variants to match on\n* 2. a _callback_ called when a match is found;\n* - the callback is responsible for mapping the matched static token\n* into a Lexer token or an Error\n*\n* ```ts\n* const fooBar = createStaticTakeFunction(\n* [ \"foo\", \"bar\" ],\n* (match, tokens) => {\n* // ...\n* }\n* ) -> (\n* state: LexerState\n* ) -> LexerState | Error\n* ```\n*/\nfunction createStaticTakeFunction(items, cb) {\n\treturn (state) => {\n\t\tconst found = find(\"startsWith\", state.parse)(items);\n\t\tif (found) {\n\t\t\tconst rtn = cb({\n\t\t\t\tfound,\n\t\t\t\tstate\n\t\t\t});\n\t\t\treturn isError(rtn) ? rtn : isDeltaReturn(rtn) ? {\n\t\t\t\tparse: rtn[0],\n\t\t\t\ttokens: [...state.tokens, rtn[1]]\n\t\t\t} : Never;\n\t\t}\n\t\treturn NO_MATCH;\n\t};\n}\n\n//#endregion\n//#region src/take/create/createTakeWhileFunction.ts\nfunction takeWhile(chars, match, _opts) {\n\tlet head = \"\";\n\tfor (const char of chars) if (match.includes(char)) head = `${head}${char}`;\n\treturn head === \"\" ? [unset, chars.join()] : [head, stripLeading(chars.join(), head).trim()];\n}\n/**\n* creates a \"take function\" which resolves the end of it's string\n* by looking at a `while` condition.\n*/\nfunction createTakeWhileFunction(match, opts) {\n\treturn (str) => {\n\t\tconst [head, rest] = takeWhile(asChars(str), asArray(match), opts);\n\t\tif (isUnset(head)) return unset;\n\t\treturn [head, rest];\n\t};\n}\n\n//#endregion\n//#region src/take/isTakeState.ts\n/**\n* **isTakeState**(val)\n*\n* Type guard which determines if the passed in `val` is a `TakeState`\n* object.\n*/\nfunction isTakeState(val) {\n\treturn isObject(val) && \"kind\" in val && val.kind === \"TakeState\" && \"tokens\" in val && isArray(val.tokens);\n}\n\n//#endregion\n//#region src/take/take.ts\nfunction append(list, add$1) {\n\treturn [...list, add$1];\n}\n/**\n* **takeStart**`(...start) -> (parser) -> (val) -> result`\n*\n* A higher order **take** function which starts by defining the string literals\n* which would make a match.\n*\n* - once defined, the second call to this HOF provides the **value** to test test against.\n* It will return:\n* - Err<\"unmatched\"> - if none of the provided string literals were found at the\n* head of the string\n* - `TakeSuccess` - if there was a match\n*\n* If you wish to override the error which is returned you can add a callback as a second\n* parameter. The callback will receive the `Err<\"unmatched\">` and your callback can convert\n* this to whatever type you like (however, some sort of Error is typically a good idea).\n*/\nfunction take(parser) {\n\treturn (val) => {\n\t\tconst state = asTakeState(val);\n\t\tif (isError(state)) return state;\n\t\tconst [taken, token] = parser(state);\n\t\treturn isNull(taken) ? token : {\n\t\t\t...state,\n\t\t\tparsed: [...state.parsed, taken],\n\t\t\tparseString: stripLeading(state.parseString, taken),\n\t\t\ttokens: append(state.tokens, token)\n\t\t};\n\t};\n}\n\n//#endregion\n//#region src/take/takeNumericLiteral.ts\nconst takeStringToken = \"not ready\";\n\n//#endregion\n//#region src/take/takeStart.ts\nfunction findMatch(state, matches) {\n\treturn matches.find((i) => state.parseString.startsWith(i));\n}\nfunction isCallback(val) {\n\treturn isArray(val) && val.length > 2 && typeof val[0] === \"function\" && typeof val[1] === \"string\";\n}\nfunction isMapper(val) {\n\treturn isArray(val) && val.length === 1 && isNarrowableDictionary(val[0]) && isStringArray(keysOf(val[0]));\n}\nfunction getVariant(matches) {\n\tif (isCallback(matches)) return {\n\t\tvariant: \"callback\",\n\t\tcallback: matches[0],\n\t\tmatches: slice(matches, 1),\n\t\tlookup: void 0\n\t};\n\telse if (isMapper(matches)) return {\n\t\tvariant: \"mapper\",\n\t\tcallback: void 0,\n\t\tmatches: keysOf(matches[0]),\n\t\tlookup: matches[0]\n\t};\n\telse return {\n\t\tvariant: \"default\",\n\t\tcallback: void 0,\n\t\tmatches,\n\t\tlookup: void 0\n\t};\n}\nfunction handleCallback(result$1) {\n\treturn result$1;\n}\n/**\n* **takeStart**`(...matches) -> (value) -> TakeState | Err<\"invalid-token\">`\n*\n* A higher order function which:\n*\n* 1. first takes a list of \"matches\" (aka., string literal which it will look to\n* match to the the value passed in)\n* 2. the second call takes a string value (or alternatively a `TakeState` object)\n* and tries to match the parse string with the list of matches provided in the first\n* call.\n*\n* ### Tokenization\n*\n* By default this utility will populate the `tokens` property of the `TakeState`\n* with the matched string it finds. In the default state, the `tokens` it produces are\n* the same as the `parsed` strings it produces.\n*\n* If you wish to produce a _variant_ of the string found you can use either of the two\n* approaches:\n*\n* 1. **Mapper Object:**\n*\n* A _mapper_ object is a dictionary where the _keys_ are the substrings you're trying to\n* match on and the _values_ are the runtime value that you will map to when this substring is found.\n* If this approach is used then the dictionary object _replaces_ the tuple of strings you\n* would typically put into the `matches` variable. If you want to set not only the \"value\" but also\n* the \"type\" you can set the _values_ of the object to a tuple of: `[ value: any, type: InputToken ]`.\n*\n* Here is an example:\n* ```ts\n* const take = takeStart({\n* foo: \"fooy\",\n* bar: [\"bar\", \"string\"]\n* });\n* ```\n*\n* In this example:\n* - when the \"foo\" substring is parsed from the parse string the value _and_ type of the token will be \"fooy\"\n* - when the \"bar\" substring is parsed from the parse string the value will be \"bar\" but the type will be `string`\n*\n*\n* 2. **Callback Function:**\n*\n* You can also provide a callback function to handle mapping to `tokens`. Unlike the mapper object,\n* using a callback function which will be _in addition to_ the tuple of match substrings. This callback\n* will take the form of:\n*\n* ```ts\n*\n* function callback(\n* value: string,\n* state: TakeState\n* ): TakeState | Err<\"invalid-token\"> | Err<\"skip\"> | Err<\"no-token\">\n* ```\n*\n* where:\n* - `TakeState` allows the callback to mutate the state\n* - `Err<\"skip\">` will keep the state exactly as it was\n* - `Err<\"no-token\">` will keep the tokens as they were but remove the substring from\n* the parse string and add it to the `parsed` property.\n* - `Err<\"invalid-token\">` will immediately exit with this error\n*\n* **Note:** all variants of this function work on an enumerated set of \"matches\"\n* and because of this this function is able to handle non-matches by itself. If you want an\n* unconstrained set of start tokens then use the `take()` utility to create this yourself.\n*/\nfunction takeStart(...config) {\n\tconst { variant, matches, callback, lookup: lookup$2 } = getVariant(config);\n\tconst fn$1 = (value) => {\n\t\tconst state = asTakeState(value);\n\t\tconst match = findMatch(state, matches);\n\t\tif (!match) return state;\n\t\tif (variant === \"default\") {\n\t\t\tconst token = match;\n\t\t\treturn {\n\t\t\t\tkind: \"TakeState\",\n\t\t\t\tparsed: [...state.parsed, match],\n\t\t\t\tparseString: stripLeading(state.parseString, match),\n\t\t\t\ttokens: [...state.tokens, token]\n\t\t\t};\n\t\t}\n\t\tif (variant === \"mapper\") {\n\t\t\tconst mapped = lookup$2[match];\n\t\t\tconst token = Array.isArray(mapped) ? mapped[0] : mapped;\n\t\t\treturn {\n\t\t\t\tkind: \"TakeState\",\n\t\t\t\tparsed: [...state.parsed, match],\n\t\t\t\tparseString: stripLeading(state.parseString, match),\n\t\t\t\ttokens: [...state.tokens, token]\n\t\t\t};\n\t\t}\n\t\tconst cbResult = handleCallback(callback(match, state));\n\t\tif (isErr(cbResult, \"invalid-token\")) return cbResult;\n\t\tif (isErr(cbResult, \"skip\")) return state;\n\t\tif (isErr(cbResult, \"no-token\")) return {\n\t\t\tkind: \"TakeState\",\n\t\t\tparsed: [...state.parsed, match],\n\t\t\tparseString: stripLeading(state.parseString, match),\n\t\t\ttokens: [...state.tokens]\n\t\t};\n\t\treturn cbResult;\n\t};\n\tconst result$1 = createFnWithProps(fn$1, {\n\t\tvariant,\n\t\tmatches\n\t});\n\treturn result$1;\n}\n\n//#endregion\n//#region src/type-conversion/asChars.ts\n/**\n* **asChars**`(str)`\n*\n* Converts a string into an array of characters and preserves literal type\n* where possible.\n*\n*\n* ```ts\n* // [ \"h\", \"e\", \"l\", \"l\", \"o\" ]\n* const chars = asChars(\"hello\");\n* ```\n*/\nfunction asChars(str) {\n\treturn str.split(\"\");\n}\n\n//#endregion\n//#region src/type-conversion/asFromTo.ts\nfunction asFromTo(defn) {\n\tconst fromTo = Object.keys(defn).reduce((acc, from) => {\n\t\treturn [...acc, {\n\t\t\tfrom,\n\t\t\tto: defn[from]\n\t\t}];\n\t}, []);\n\treturn fromTo;\n}\n\n//#endregion\n//#region src/type-conversion/asRecord.ts\n/**\n* **asRecord**`<T>`(obj: T) → AsRecord`<T>`\n*\n* An \"identity function\" with regards to runtime information but\n* helps convert a `object` to a `Record<ObjectKey,unknown>` which\n* is indexable.\n*/\nfunction asRecord(obj) {\n\treturn obj;\n}\n\n//#endregion\n//#region src/type-conversion/asString.ts\n/**\n* **asString**`(value)\n*\n* Attempts to convert the value passed in into a string\n* using the same methods available to the type utility\n* `AsString<T>`.\n*\n* If unable to convert to a string then it will provide\n* the runtime value of `String(value)` but the type system\n* will be set to `never`.\n*\n* - if an array is passed in then it will be joined\n* together -- no delimiter characters -- into a string\n* - if a tuple of `SimpleToken[]` is discovered it will\n* set the runtime type to a token of `<<string::...>>` while the\n* type of the string will be\n*/\nfunction asString(value) {\n\treturn isString(value) ? value : isNumber(value) ? `${value}` : isBoolean(value) ? `${value}` : isDictionary(value) ? `{ ... ${keysOf(value)} ... }` : isArray(value) ? `any[]` : String(value);\n}\n\n//#endregion\n//#region src/type-conversion/asTemplate.ts\n/**\n* **asTemplate**`(template)`\n*\n* Converts a string with template tags `{{type}}` into string literals.\n*\n* ```ts\n* // `age: ${Integer}`\n* const template = asTemplate(\"age: {{integer}}\")\n* ```\n*\n* **Related:** `asTemplateProvidingTags`\n*/\nfunction asTemplate(template) {\n\treturn template;\n}\n\n//#endregion\n//#region src/type-conversion/asTypeSubtype.ts\nfunction asTypeSubtype(input) {\n\tconst [type, subtype] = input.split(\"/\");\n\treturn [type, subtype];\n}\n\n//#endregion\n//#region src/type-conversion/csv.ts\n/**\n* **csv**`(csv, [format])`\n*\n* Converts a CSV string literal into a tuple of values\n* (based on format).\n*\n* **Note:** either _no space_ or _a single space_ between values\n* will provide a trimmed value but any additional whitespace\n* after the comma will result in some leading whitespace in\n* some values.\n*\n* @default\n*/\nfunction csv(csv$1, format = `string-numeric-tuple`) {\n\tconst tuple$1 = [];\n\tcsv$1.split(/,\\s?/).forEach((v) => {\n\t\ttuple$1.push(format === \"string-numeric-tuple\" ? isNumberLike(v) ? Number(v) : v : format === \"json-tuple\" ? isNumberLike(v) ? Number(v) : v === \"true\" ? true : v === \"false\" ? false : `\"${v}\"` : format === \"string-tuple\" ? `${v}` : Never);\n\t});\n\treturn tuple$1;\n}\n\n//#endregion\n//#region src/type-conversion/eachAsString.ts\n/**\n* **eachAsString**`(...tuple) -> readonly string[]`\n*\n* Converts every element of a tuple into a _string_ representation.\n*/\nfunction eachAsString(...tuple$1) {\n\treturn tuple$1.map((i) => asString(i));\n}\n\n//#endregion\n//#region src/type-conversion/fromKeyValue.ts\n/**\n* **fromKeyValue**`(keyValueTuple)`\n*\n* Converts a `KeyValue` tuple into an object.\n*\n* - **Related:** `toKeyValue()`\n*/\nfunction fromKeyValue(kvs) {\n\tconst obj = {};\n\tfor (const kv of kvs) obj[kv.key] = kv.value;\n\treturn obj;\n}\n\n//#endregion\n//#region src/type-conversion/intersect.ts\n/**\n* **intersect**(value, intersectedWith)\n*\n* Runtime utility which receives `value` property and returns it with an\n* unchanged _runtime_ value but with the type now intersected with the\n* value provided by `intersectedWith`.\n*/\nfunction intersect(value, _intersectedWith) {\n\treturn value;\n}\n\n//#endregion\n//#region src/type-conversion/ip6GroupExpansion.ts\n/**\n* **ip6GroupExpansion**`(ip)`\n*\n* Looks at the IPv6 address and expands all instances of `::` to add\n* a block of `0000` where it was.\n*\n* ```ts\n* // fe89:0000:1256\n* const ip6 = ip6GroupExpansion(\"fe89::1256\");\n* ```\n*/\nfunction ip6GroupExpansion(ip) {\n\treturn stripTrailing(ip.replaceAll(\"::\", \":0000:\"), \":\");\n}\n\n//#endregion\n//#region src/type-conversion/lastChar.ts\nfunction lastChar(str) {\n\tconst char = asChars(str).at(-1);\n\treturn char;\n}\nfunction firstChar(str) {\n\tconst char = asChars(str).at(0);\n\treturn char;\n}\n\n//#endregion\n//#region src/type-conversion/lookupCountry.ts\nfunction lookupAlpha2Code(code, prop) {\n\tconst found = ISO3166_1.find((i) => i.alpha2 === code);\n\treturn found ? found[prop] : void 0;\n}\nfunction lookupAlpha3Code(code, prop) {\n\tconst found = ISO3166_1.find((i) => i.alpha3 === code);\n\treturn found ? found[prop] : void 0;\n}\nfunction lookupName(name, prop) {\n\tconst found = ISO3166_1.find((i) => i.name === name);\n\treturn found ? found[prop] : void 0;\n}\nfunction lookupNumericCode(code, prop) {\n\tlet num = isNumber(code) ? `${code}` : code;\n\tif (num.length === 1) num = `00${num}`;\n\telse if (num.length === 2) num = `0${num}`;\n\tconst found = ISO3166_1.find((i) => i.countryCode === num);\n\treturn found ? found[prop] : void 0;\n}\n/**\n* **lookupCountryName**`(code)`\n*\n* Looks up a country name by either the alpha-2, alpha-3, or country code\n* as defined by the [ISO3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) standard.\n*\n* - the ISO standard uses uppercase characters for Alpha2 and Alpha3 codes but\n* this utility will handle upper or lowercase\n* - it will correctly type the country name if the code passed in is a literal\n* string (and a valid code)\n*\n* **Related:** `lookupCountryAlpha2()`, `lookupCountryAlpha3()`\n*/\nfunction lookupCountryName(code) {\n\tconst uc = toAllCaps(code);\n\treturn isNumberLike(code) ? lookupNumericCode(code, \"name\") : isIso3166Alpha2(uc) ? lookupAlpha2Code(uc, \"name\") : isIso3166Alpha3(uc) ? lookupAlpha3Code(uc, \"name\") : void 0;\n}\n/**\n* Looks up the Alpha2 component of a [ISO3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)\n* standard.\n*/\nfunction lookupCountryAlpha2(code) {\n\tconst uc = toAllCaps(code);\n\treturn isNumberLike(code) ? lookupNumericCode(code, \"alpha2\") : isIso3166Alpha2(uc) ? lookupAlpha2Code(uc, \"alpha2\") : isIso3166Alpha3(uc) ? lookupAlpha3Code(uc, \"alpha2\") : isIso3166CountryName(code) ? lookupName(code, \"alpha2\") : void 0;\n}\n/**\n* Looks up the Alpha3 component of a [ISO3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)\n* standard.\n*/\nfunction lookupCountryAlpha3(token) {\n\tconst uc = toAllCaps(token);\n\treturn isNumberLike(token) ? lookupNumericCode(token, \"alpha3\") : isIso3166Alpha2(uc) ? lookupAlpha2Code(uc, \"alpha3\") : isIso3166Alpha3(uc) ? lookupAlpha3Code(uc, \"alpha3\") : isIso3166CountryName(token) ? lookupName(token, \"alpha3\") : void 0;\n}\n/**\n* Looks up the Alpha3 component of a [ISO3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)\n* standard.\n*/\nfunction lookupCountryCode(token) {\n\tconst uc = toAllCaps(token);\n\treturn isNumberLike(token) ? lookupNumericCode(token, \"countryCode\") : isIso3166Alpha2(uc) ? lookupAlpha2Code(uc, \"countryCode\") : isIso3166Alpha3(uc) ? lookupAlpha3Code(uc, \"countryCode\") : isIso3166CountryName(token) ? lookupName(token, \"countryCode\") : void 0;\n}\n\n//#endregion\n//#region src/type-conversion/mergeObjects.ts\n/**\n* merge two objects while preserving narrow types\n*/\nfunction mergeObjects(defVal, override) {\n\treturn {\n\t\t...defVal,\n\t\t...override\n\t};\n}\n\n//#endregion\n//#region src/type-conversion/mergeScalars.ts\n/**\n* **mergeScalars**(a,b)\n*\n* The value of scalar `b` _overrides_ that of `a` unless `b` is\n* undefined.\n*/\nfunction mergeScalars(a, b) {\n\treturn isUndefined(b) ? a : b;\n}\n\n//#endregion\n//#region src/type-conversion/mergeTuples.ts\n/**\n* **mergeTuples**(a,b)\n*\n* Replaces values in `a` with `b` unless `b` is _undefined_. Also, if\n* `a` has more elements than `b` then these extra elements will be\n* appended to the end.\n*/\nfunction mergeTuples(a, b) {\n\treturn b.length > a.length ? b.map((v, idx) => v !== void 0 ? v : a[idx]) : [...b, ...a.slice(b.length)].map((v, idx) => v !== void 0 ? v : a[idx]);\n}\n\n//#endregion\n//#region src/type-conversion/mutable.ts\n/**\n* converts a readonly value into a mutable one without giving up narrow types.\n*/\nfunction mutable(value) {\n\treturn value;\n}\n\n//#endregion\n//#region src/type-conversion/optional.ts\n/**\n* **optional**(value)\n*\n* A function which takes the value `T` and widens it to include\n* a union with _undefined_.\n*/\nfunction optional(value) {\n\treturn value;\n}\n/**\n* **orNull**`(value)`\n*\n* widens the type for the value passed in to be whatever type it\n* currently is _in union with_ `null`.\n*/\nfunction orNull(value) {\n\treturn value;\n}\n/**\n* **optionalOrNull**`(value)`\n*\n* widens the type for the value passed in to be whatever type it\n* currently is _in union with_ `null and `undefined`.\n*\n* **Related:** `optional()`, `orNull()`\n*/\nfunction optionalOrNull(value) {\n\treturn value;\n}\n\n//#endregion\n//#region src/type-conversion/safe-string-encoding.ts\n/**\n* **createSafeStringEncoder**`(...groups) -> [encoder, decoder]`\n*\n* specify the groups of characters you want to encode\n* and both an _encoder_ and _decoder_ will be returned.\n*/\nfunction setupSafeStringEncoding(...groups) {\n\tconst g = groups.length === 0 ? [\n\t\t\"quotes\",\n\t\t\"brackets\",\n\t\t\"whitespace\"\n\t] : groups;\n\t/** SafeString encoder */\n\tconst encode = (text) => {\n\t\tlet results = text;\n\t\tconst lookup$2 = mutable(SAFE_ENCODING_KEYS);\n\t\tconst keys = g.flatMap((i) => i === \"whitespace\" ? Object.keys(mutable(SAFE_ENCODING__WHITESPACE)) : i === \"brackets\" ? Object.keys(mutable(SAFE_ENCODING__BRACKETS)) : i === \"quotes\" ? Object.keys(mutable(SAFE_ENCODING__QUOTES)) : []);\n\t\tfor (const key of keys) {\n\t\t\tconst find$1 = key;\n\t\t\tconst replace$1 = lookup$2[find$1];\n\t\t\tresults = results.replaceAll(find$1, replace$1);\n\t\t}\n\t\treturn results;\n\t};\n\t/** SafeString decoder */\n\tconst decode = (encoded) => {\n\t\tlet results = encoded;\n\t\tconst lookup$2 = reverseLookup(SAFE_ENCODING_KEYS);\n\t\tconst keys = g.flatMap((i) => i === \"whitespace\" ? Object.keys(reverseLookup(SAFE_ENCODING__WHITESPACE)) : i === \"brackets\" ? Object.keys(reverseLookup(SAFE_ENCODING__BRACKETS)) : i === \"quotes\" ? Object.keys(reverseLookup(SAFE_ENCODING__QUOTES)) : []);\n\t\tfor (const key of keys) {\n\t\t\tconst find$1 = key;\n\t\t\tconst replace$1 = lookup$2[find$1];\n\t\t\tresults = results.replaceAll(find$1, replace$1);\n\t\t}\n\t\treturn results;\n\t};\n\treturn [encode, decode];\n}\n\n//#endregion\n//#region src/type-conversion/stripParenthesis.ts\n/**\n* **stripParenthesis**`(val)`\n*\n* A runtime utility which strips leading and trailing whitespace as well\n* as any leading or trailing parenthesis characters.\n*/\nfunction stripParenthesis(val) {\n\treturn stripTrailing(stripLeading(val.trim(), \"(\"), \")\").trim();\n}\n\n//#endregion\n//#region src/type-conversion/toJSON.ts\n/**\n* **toJSON**`(val)`\n*\n* Converts the passed in value to a strongly typed string\n* literal representation of the JSON type for `val`.\n*\n* **Related:** `toStringLiteral()`, `toJson()`\n*\n* @deprecated use `toJson()` instead\n*/\nfunction toJSON(val, _options = {\n\tquote: \"\\\"\",\n\tencode: false\n}) {\n\treturn JSON.stringify(val);\n}\n/**\n* **toJson**`(val)`\n*\n* Converts the passed in value to a strongly typed string\n* literal representation of the JSON type for `val`.\n*\n* **Related:** `toStringLiteral()`\n*/\nfunction toJson(val, _options = {\n\tquote: \"\\\"\",\n\tencode: false\n}) {\n\treturn JSON.stringify(val);\n}\n\n//#endregion\n//#region src/type-conversion/toKeyValue.ts\n/**\n* **toKeyValue**`(obj)` -> tuple\n*\n* Converts an object into a tuple of `KeyValue` objects.\n*\n* - a Tuple representation benefits from two main things:\n* - ensured **order**\n* - it is an **iterable** structure\n* - narrow types are preserved wherever possible\n* - you may optionally position certain key's at the \"top\"\n* or \"bottom\" of the stack by using the sort callback.\n*\n* ```ts\n* // [\n* // { key: \"id\", value: 123},\n* // { key: \"foo\", value: 1 },\n* // { key: \"bar\", value: 2 },\n* // ]\n* const rec = toKeyValue({foo: 1, bar: 2, id: 123 }, { start: \"id\" });\n* ```\n*/\nfunction toKeyValue(obj, sort) {\n\t/**\n\t* an unsorted tuple of `KeyValue`'s\n\t*/\n\tconst kv = keysOf(obj).map((k) => ({\n\t\tkey: k,\n\t\tvalue: obj[k],\n\t\trequired: true\n\t}));\n\treturn sortByKey(kv, \"key\", sort || {});\n}\n\n//#endregion\n//#region src/type-conversion/toNumber.ts\nfunction convertScalar(val) {\n\tswitch (typeof val) {\n\t\tcase \"number\": return val;\n\t\tcase \"string\": return Number(val);\n\t\tcase \"boolean\": return val ? 1 : 0;\n\t\tdefault: throw new Error(`${typeof val} is an invalid scalar type to convert to a number!`);\n\t}\n}\nconst convertList = (val) => val.map((i) => convertScalar(i));\n/**\n* **toNumber**(value)\n*\n* Runtime utility which converts a value into a _numeric_ variant:\n*\n* - for scalars (and objects) it will try to convert to number but otherwise returns `NaN` to runtime and `never` to type system\n* - for arrays it will iterate over each element and try to convert to a number like above\n*/\nfunction toNumber(value) {\n\treturn Array.isArray(value) ? convertList(value) : convertScalar(value);\n}\n\n//#endregion\n//#region src/type-conversion/toStringLiteral.ts\n/**\n* Object keys typically do not need be surrounded by quotations\n* marks at least if they are of the `PascalCase` or `camelCase`\n* variety but if they contain spaces, dashes, or really any character\n* other than alphanumeric characters then they must be quoted.\n*/\nfunction isObjectKeyRequiringQuotes(val) {\n\treturn isString(val) ? stripChars(val, ...ALPHA_CHARS) !== \"\" : false;\n}\nfunction property(prop) {\n\tif (isString(prop)) {\n\t\tif (isObjectKeyRequiringQuotes(prop)) return `\"${prop}\"`;\n\t\treturn prop;\n\t}\n\treturn String(prop);\n}\n/**\n* **toStringLiteral__Object**`(obj) -> token`\n*\n* Converts a `DefineObject` shaped type definition into a string based\n* `InputToken` while converting the _type_ to the type which the token\n* represents.\n*/\nfunction toStringLiteral__Object(obj) {\n\tconst inner = [];\n\tfor (const k of keysOf(obj)) inner.push(`${property(k)}: ${obj[k]}`);\n\treturn `{ ${inner.join(\", \")} }`;\n}\nfunction mutateObjectKeys(obj, opt) {\n\tconst result$1 = {};\n\tfor (const k of Object.keys(obj)) result$1[k] = toStringLiteral(indexOf(obj, k), opt);\n\treturn result$1;\n}\nfunction scalarValue(val, opt) {\n\treturn isString(val) ? isTrue(opt.tokensAllowed) ? isInputToken__String(val) ? val : `\"${val}\"` : `\"${val}\"` : isNumber(val) ? `${val}` : isUndefined(val) ? \"undefined\" : isNull(val) ? \"null\" : isFalse(val) ? \"false\" : isTrue(val) ? \"true\" : isSymbol(val) ? String(val) : Never;\n}\nfunction toStringLiteral__Tuple(tup, opt) {\n\treturn `[ ${tup.map((i) => toStringLiteral(i, opt)).join(\", \")} ]`;\n}\n/**\n* **toStringLiteral**`(value, [options]) -> string literal representation`\n*\n* Converts any value into a string literal which _represents_ the\n* value.\n*\n* ```ts\n* // '{ foo: 1; bar: \"bar\" }'\n* const fooBar = toStringLiteral({foo: 1, bar: \"bar\"});\n* ```\n*\n* - you can adjust what type of quote marks to use by adjusting the _optional_\n* **options** hash\n*\n* **Related:** `toJSON()`\n*/\nfunction toStringLiteral(val, options = {}) {\n\tconst o = {\n\t\ttokensAllowed: false,\n\t\tquote: \"\\\"\",\n\t\t...options || {}\n\t};\n\treturn isArray(val) ? toStringLiteral__Tuple(val, o) : isDictionary(val) ? toStringLiteral__Object(mutateObjectKeys(val, o)) : isTrue(val) ? \"true\" : isFalse(val) ? \"false\" : isScalar(val) ? scalarValue(val, o) : Never;\n}\n\n//#endregion\n//#region src/type-conversion/tw-conversion.ts\nconst MODS = TW_MODIFIERS.map((i) => `${i}:`);\n/**\n* Extracts all the modifiers found on the passed in string and\n* removes them.\n*\n* **Related:** `getTailwindModifiers`\n*/\nfunction removeTailwindModifiers(val) {\n\treturn MODS.some((i) => val.startsWith(i)) ? removeTailwindModifiers(val.replace(MODS.find((i) => val.startsWith(i)), \"\")) : val;\n}\n/**\n* Extracts an array of Tailwind Modifiers found at the start of a Tailwind string.\n*/\nfunction getTailwindModifiers(val) {\n\treturn val.split(\":\").filter((i) => isTailwindModifier(i));\n}\n\n//#endregion\n//#region src/type-conversion/unionize.ts\n/**\n* **unionize**(value,inUnionWith)\n*\n* Takes a runtime **value** and modifies it's type to be a union with\n* the type of `inUnionWith` parameter (but does not change the actual\n* runtime value).\n*/\nfunction unionize(value, _inUnionWith) {\n\treturn value;\n}\n\n//#endregion\n//#region src/vuejs/asVueRef.ts\n/**\n* **asVueRef**(value)\n*\n* Receives a _value_ and makes it look like a `VueRef<T>` which will make\n* it pass the `IsRef<T>` type check. It also provides a hidden `_value` property\n* to the runtime which makes it pass the `isRef()` runtime check.\n*\n* Note:\n*\n* - this is a convenience function for building test cases in a library where you're\n* not actually exporting VueJS symbols (like inferred-types).\n*/\nfunction asVueRef(value) {\n\treturn {\n\t\tvalue,\n\t\t_value: null\n\t};\n}\n\n//#endregion\nexport { NO_MATCH, ShapeApiImplementation, abs, add, addFnToProps, addPropsToFn, addToken, afterFirst, and, append, array, asArray, asChars, asDate, asDateTime, asEpochTimestamp, asFourDigitYear, asFromTo, asInputToken, asIsoDate, asIsoDateTime, asNumber, asOutputFunction, asPhoneFormat, asRecord, asString, asTakeState, asTemplate, asTwoDigitMonth, asType, asTypeSubtype, asTypedError, asUnion, asVueRef, between, boolean, brand, capitalize, cardType, choices, compare, contains, createConstant, createConverter, createCssKeyframe, createCssSelector, createErrorCondition, createFifoQueue, createFixedLengthArray, createFnWithProps, createGrammar, createLifoQueue, createNestingConfig, createStaticTakeFunction, createTakeFunction, createTakeStartEndFunction, createTakeWhileFunction, createTemplateRegExp, createToken, createTokenSyntax, cssColor, cssFromDefinition, csv, dateObjectToIso, daysInMonth, decrement, defineCss, defineObj, defineObject, defineObjectWith, defineTuple, doesExtend, dropFirstStackFrame, eachAsString, endsWith, endsWithTypeguard, ensureLeading, ensureSurround, ensureTrailing, entries, equalsSome, err, errCondition, every, filter, filterEmpty, filterUndefined, find, firstChar, fn, fnProps, fourDigitYear, freeze, fromDefineObject, fromDefineTuple, fromInputToken, fromKeyValue, get, getDaysBetween, getEach, getMonthAbbrev, getMonthName, getMonthNumber, getPhoneCountryCode, getSeason, getTailwindModifiers, getToday, getTokenData, getTokenKind, getTomorrow, getTypeSubtype, getUrlBase, getUrlDefaultPort, getUrlDynamics, getUrlPath, getUrlPort, getUrlProtocol, getUrlQueryParams, getUrlSource, getWeekNumber, getYear, getYesterday, getYouTubePageType, handleDoneFn, hasCountryCode, hasDefaultValue, hasHtml, hasIndexOf, hasKeys, hasNonStringKeys, hasOnlyStringKeys, hasOnlyStringValues, hasOnlySymbolKeys, hasOverlappingKeys, hasProtocol, hasProtocolPrefix, hasSymbolKeys, hasUrlPort, hasUrlQueryParameter, hasValidHtml, hasWhiteSpace, idLiteral, idTypeGuard, identity, ifArray, ifArrayPartial, ifBoolean, ifChar, ifContainer, ifDefined, ifEmpty, ifEqual, ifError, ifFalse, ifFunction, ifHasKey, ifLength, ifLowercaseChar, ifNotNull, ifNull, ifNumber, ifObject, ifSameType, ifScalar, ifString, ifTrue, ifUndefined, ifUppercaseChar, increment, indexOf, infer, integer, intersect, intersection, ip6GroupExpansion, isAccelerationMetric, isAccelerationUom, isAfter, isAlpha, isAmazonUrl, isAmericanExpress, isApi, isApiSurface, isAppleUrl, isAreaMetric, isAreaUom, isArray, isAustralianNewsUrl, isBefore, isBelgiumNewsUrl, isBestBuyUrl, isBitbucketUrl, isBoolean, isBooleanArray, isBooleanLike, isCanadianNewsUrl, isChineseNewsUrl, isCodeCommitUrl, isComparisonOperation, isConstant, isContainer, isCostCoUrl, isCountryAbbrev, isCountryCode2, isCountryCode3, isCountryName, isCreditCard, isCssAspectRatio, isCsv, isCurrentMetric, isCurrentUom, isCvsUrl, isDanishNewsUrl, isDate, isDateLike, isDateMeta, isDayJs, isDefineObject, isDefineTuple, isDefined, isDellUrl, isDeltaReturn, isDictionary, isDistanceMetric, isDistanceUom, isDomainName, isDoneFn, isDoubleLeap, isDutchNewsUrl, isEbayUrl, isEmail, isEmpty, isEnergyMetric, isEnergyUom, isEpochInMilliseconds, isEpochInSeconds, isEqual, isErr, isError, isEscapeFunction, isEtsyUrl, isEven, isFalse, isFalsy, isFnWithParams, isFourDigitYear, isFrenchNewsUrl, isFrequencyMetric, isFrequencyUom, isFunction, isGermanNewsUrl, isGithubIssueUrl, isGithubIssuesListUrl, isGithubOrgUrl, isGithubProjectUrl, isGithubProjectsListUrl, isGithubReleaseTagUrl, isGithubReleasesListUrl, isGithubRepoReleaseTagUrl, isGithubRepoReleasesUrl, isGithubRepoUrl, isGithubUrl, isGreaterThan, isGreaterThanOrEqual, isHexadecimal, isHmUrl, isHomeDepotUrl, isHtml, isHtmlComponentTag, isHtmlElement, isIanaTimezone, isIkeaUrl, isInUnion, isIndexable, isIndianNewsUrl, isInlineSvg, isInputToken, isInputToken__String, isInteger, isIp4Address, isIp6Address, isIp6Subnet, isIpAddress, isIso3166Alpha2, isIso3166Alpha3, isIso3166CountryCode, isIso3166CountryName, isIsoDate, isIsoDateTime, isIsoExplicitDate, isIsoExplicitTime, isIsoImplicitDate, isIsoImplicitTime, isIsoMonthDate, isIsoTime, isIsoYear, isIsoYearMonth, isItalianNewsUrl, isJapaneseNewsUrl, isKrogersUrl, isLeapYear, isLength, isLikeRegExp, isLowesUrl, isLuminosityMetric, isLuminosityUom, isLuxonDate, isMacysUrl, isMap, isMassMetric, isMassUom, isMastercard, isMetric, isMetricCategory, isMexicanNewsUrl, isMinimalDigitDate, isMoment, isMonthAbbrev, isMonthName, isNarrowable, isNarrowableArray, isNarrowableDictionary, isNegativeNumber, isNestingEnd, isNestingEndMatch, isNestingKeyValue, isNestingStart, isNestingTuple, isNever, isNewsUrl, isNikeUrl, isNorwegianNewsUrl, isNotEmpty, isNotError, isNotNull, isNotUnset, isNothing, isNull, isNumber, isNumberLike, isNumericArray, isNumericString, isObject, isObjectKey, isObjectKeyRequiringQuotes, isOdd, isOk, isOptionalParamFunction, isParsedDate, isPhoneNumber, isPowerMetric, isPowerUom, isPressureMetric, isPressureUom, isProtocol, isProtocolPrefix, isReadonlyArray, isRef, isRegExp, isRepoSource, isRepoUrl, isResistanceMetric, isResistanceUom, isRetailUrl, isSameDay, isSameMonth, isSameMonthYear, isSameTypeOf, isSameYear, isScalar, isSemanticVersion, isSet, isSetContainer, isShape, isShapeCallback, isSimpleContainerToken, isSimpleContainerTokenTuple, isSimpleScalarToken, isSimpleScalarTokenTuple, isSimpleToken, isSimpleTokenTuple, isSocialMediaProfileUrl, isSocialMediaUrl, isSouthKoreanNewsUrl, isSpanishNewsUrl, isSpecificConstant, isSpeedMetric, isSpeedUom, isStaticTemplate, isString, isStringArray, isStringLiteral, isStringOrNumericArray, isSwissNewsUrl, isSymbol, isTailwindColor, isTailwindColorClass, isTailwindColorName, isTailwindColorTarget, isTailwindColorWithLuminosity, isTailwindColorWithLuminosityAndOpacity, isTailwindModifier, isTakeState, isTargetUrl, isTemperatureMetric, isTemperatureUom, isTemporalDate, isThenable, isThisMonth, isThisWeek, isThisYear, isThreeDigitMillisecond, isTimeMetric, isTimeUom, isTimezoneOffset, isToday, isTomorrow, isTrimable, isTrue, isTruthy, isTuple, isTurkishNewsUrl, isTwoDigitDate, isTwoDigitHour, isTwoDigitMinute, isTwoDigitMonth, isTwoDigitSecond, isTypeOf, isTypeSubtype, isTypeTuple, isTypedError, isUkNewsUrl, isUndefined, isUnset, isUom, isUomCategory, isUri, isUrl, isUrlPath, isUrlSource, isUsNewsUrl, isUsPhoneNumber, isUsStateAbbreviation, isUsStateName, isValidAtomicTag, isValidBlockTag, isValidComparisonParams, isValidHtml, isValidHtmlTag, isVariable, isVisa, isVisaMastercard, isVoltageMetric, isVoltageUom, isVolumeMetric, isVolumeUom, isWalgreensUrl, isWalmartUrl, isWayfairUrl, isWeakMap, isWholeFoodsUrl, isYesterday, isYouTubeCreatorUrl, isYouTubeFeedHistoryUrl, isYouTubeFeedUrl, isYouTubePlaylistUrl, isYouTubePlaylistsUrl, isYouTubeShareUrl, isYouTubeSubscriptionsUrl, isYouTubeTrendingUrl, isYouTubeUrl, isYouTubeVideoUrl, isYouTubeVideosInPlaylist, isZaraUrl, isZipCode, isZipCode5, isZipPlus4, joinWith, keysOf, keysWithError, kindLiteral, last, lastChar, lessThan, lessThanOrEqual, literal, logicalReturns, lookupCountryAlpha2, lookupCountryAlpha3, lookupCountryCode, lookupCountryName, lowercase, map, maybePhoneNumber, mergeObjects, mergeScalars, mergeTuples, mutable, nameLiteral, narrow, nbsp, nestedSplit, nesting, not, nullType, objectValues, omitKeys, optional, optionalOrNull, or, orNull, parseDate, parseDateObject, parseIsoDate, parseNumericDate, pathJoin, pluralize, pop, record, regexToken, removePhoneCountryCode, removeTailwindModifiers, removeUrlProtocol, replace, replaceAll, replaceAllFromTo, result, retainAfter, retainAfterInclusive, retainChars, retainKeys, retainUntil, retainUntilInclusive, retainUntil__Nested, retainWhile, reverse, reverseLookup, rightWhitespace, setupSafeStringEncoding, shape, sharedKeys, shift, simpleContainerToken, simpleContainerType, simpleScalarToken, simpleScalarType, simpleToken, simpleType, slice, sortByKey, split, startsWith, startsWithTypeguard, stripAfter, stripAfterLast, stripBefore, stripChars, stripLeading, stripParenthesis, stripSurround, stripTrailing, stripUntil, stripWhile, surround, take, takeNumericCharacters, takeStart, takeStringToken, threeDigitMillisecond, toAllCaps, toCamelCase, toInteger, toIsoDateString, toJSON, toJson, toKebabCase, toKeyValue, toLowercase, toNumber, toNumericArray, toPascalCase, toSnakeCase, toString, toStringLiteral, toStringLiteral__Object, toStringLiteral__Tuple, toStringToken, trim, trimEnd, trimStart, truncate, tuple, twColor, twoDigitHour, twoDigitMinute, twoDigitSecond, typedError, unbrand, uncapitalize, undefinedType, unionize, unique, uniqueKeys, unknown, unset, urlMeta, usingLookup, validHtmlAttributes, valuesOf, weakMap, widen, withDefaults, withKeys, withValue, withoutKeys, withoutValue, youtubeEmbed, youtubeMeta };\n//# sourceMappingURL=index.js.map","//#region src/dictionary/MapTo.ts\n/**\n* utility function to take a fully-qualified _user_ config\n* and make it into a FinalizedMapConfig\n*/\nfunction toFinalizedConfig(config) {\n\treturn {\n\t\t...config,\n\t\tfinalized: true\n\t};\n}\nconst DEFAULT_ONE_TO_MANY_MAPPING = toFinalizedConfig({\n\tinput: \"req\",\n\toutput: \"opt\",\n\tcardinality: \"I -> O[]\"\n});\nconst DEFAULT_ONE_TO_ONE_MAPPING = toFinalizedConfig({\n\tinput: \"req\",\n\toutput: \"req\",\n\tcardinality: \"I -> O\"\n});\nconst DEFAULT_MANY_TO_ONE_MAPPING = toFinalizedConfig({\n\tinput: \"req\",\n\toutput: \"req\",\n\tcardinality: \"I[] -> O\"\n});\n/**\n* Expresses relationship between inputs/outputs:\n*/\nlet MapCardinality = /* @__PURE__ */ function(MapCardinality$1) {\n\t/** every input results in 0:M outputs */\n\tMapCardinality$1[\"OneToMany\"] = \"I -> O[]\";\n\t/** every input results in 0:1 outputs */\n\tMapCardinality$1[\"OneToOne\"] = \"I -> O\";\n\t/** every input is an array of type I and reduced to a single O */\n\tMapCardinality$1[\"ManyToOne\"] = \"I[] -> O\";\n\treturn MapCardinality$1;\n}({});\n\n//#endregion\n//#region src/literals/VueRef.ts\nconst Ref = Symbol(\"VueRef\");\n\n//#endregion\n//#region src/runtime-types/Dict.ts\nconst s = Symbol(\"Dict\");\n\n//#endregion\n//#region src/string-literals/character-sets/images/Exif.ts\nlet ExifCompression = /* @__PURE__ */ function(ExifCompression$1) {\n\tExifCompression$1[ExifCompression$1[\"Uncompressed\"] = 1] = \"Uncompressed\";\n\tExifCompression$1[ExifCompression$1[\"CCITT\"] = 2] = \"CCITT\";\n\tExifCompression$1[ExifCompression$1[\"T4Group3Fax\"] = 3] = \"T4Group3Fax\";\n\tExifCompression$1[ExifCompression$1[\"T6Group3Fax\"] = 4] = \"T6Group3Fax\";\n\tExifCompression$1[ExifCompression$1[\"LZW\"] = 5] = \"LZW\";\n\tExifCompression$1[ExifCompression$1[\"JpgOldStyle\"] = 6] = \"JpgOldStyle\";\n\tExifCompression$1[ExifCompression$1[\"Jpg\"] = 7] = \"Jpg\";\n\tExifCompression$1[ExifCompression$1[\"AdobeDeflate\"] = 8] = \"AdobeDeflate\";\n\tExifCompression$1[ExifCompression$1[\"JBigBw\"] = 9] = \"JBigBw\";\n\tExifCompression$1[ExifCompression$1[\"JBigColor\"] = 10] = \"JBigColor\";\n\tExifCompression$1[ExifCompression$1[\"JpegAlt\"] = 99] = \"JpegAlt\";\n\tExifCompression$1[ExifCompression$1[\"Kodak262\"] = 262] = \"Kodak262\";\n\tExifCompression$1[ExifCompression$1[\"Next\"] = 32766] = \"Next\";\n\tExifCompression$1[ExifCompression$1[\"SonyRawCompressed\"] = 32767] = \"SonyRawCompressed\";\n\tExifCompression$1[ExifCompression$1[\"PackedRaw\"] = 32769] = \"PackedRaw\";\n\tExifCompression$1[ExifCompression$1[\"SamsungSrwCompressed\"] = 32770] = \"SamsungSrwCompressed\";\n\tExifCompression$1[ExifCompression$1[\"CCIRLEW\"] = 32771] = \"CCIRLEW\";\n\tExifCompression$1[ExifCompression$1[\"SamsungSrwCompressed2\"] = 32772] = \"SamsungSrwCompressed2\";\n\tExifCompression$1[ExifCompression$1[\"Packbits\"] = 32773] = \"Packbits\";\n\tExifCompression$1[ExifCompression$1[\"Thunderscan\"] = 32809] = \"Thunderscan\";\n\tExifCompression$1[ExifCompression$1[\"KodakKdcCompressed\"] = 32867] = \"KodakKdcCompressed\";\n\tExifCompression$1[ExifCompression$1[\"IT8CTPAD\"] = 32895] = \"IT8CTPAD\";\n\tExifCompression$1[ExifCompression$1[\"IT8LW\"] = 32896] = \"IT8LW\";\n\tExifCompression$1[ExifCompression$1[\"IT8MP\"] = 32897] = \"IT8MP\";\n\tExifCompression$1[ExifCompression$1[\"IT8BL\"] = 32898] = \"IT8BL\";\n\tExifCompression$1[ExifCompression$1[\"PixarFilm\"] = 32908] = \"PixarFilm\";\n\tExifCompression$1[ExifCompression$1[\"PixarLog\"] = 32909] = \"PixarLog\";\n\tExifCompression$1[ExifCompression$1[\"Deflate\"] = 32946] = \"Deflate\";\n\tExifCompression$1[ExifCompression$1[\"DCS\"] = 32947] = \"DCS\";\n\tExifCompression$1[ExifCompression$1[\"AperioJpeg2000YCbCr\"] = 33003] = \"AperioJpeg2000YCbCr\";\n\tExifCompression$1[ExifCompression$1[\"AperioJpeg2000RGB\"] = 33005] = \"AperioJpeg2000RGB\";\n\tExifCompression$1[ExifCompression$1[\"JBig\"] = 34661] = \"JBig\";\n\tExifCompression$1[ExifCompression$1[\"SGILog\"] = 34676] = \"SGILog\";\n\tExifCompression$1[ExifCompression$1[\"SGILog24\"] = 34677] = \"SGILog24\";\n\tExifCompression$1[ExifCompression$1[\"Jpeg2000\"] = 34712] = \"Jpeg2000\";\n\tExifCompression$1[ExifCompression$1[\"NikonNEFCompressed\"] = 34713] = \"NikonNEFCompressed\";\n\tExifCompression$1[ExifCompression$1[\"JBig2TiffFx\"] = 34715] = \"JBig2TiffFx\";\n\tExifCompression$1[ExifCompression$1[\"MicrosoftBinaryLevelCodec\"] = 34718] = \"MicrosoftBinaryLevelCodec\";\n\tExifCompression$1[ExifCompression$1[\"MicrosoftProgressiveTransformCodec\"] = 34719] = \"MicrosoftProgressiveTransformCodec\";\n\tExifCompression$1[ExifCompression$1[\"MicrosoftVector\"] = 34720] = \"MicrosoftVector\";\n\tExifCompression$1[ExifCompression$1[\"ESRCLerc\"] = 34887] = \"ESRCLerc\";\n\tExifCompression$1[ExifCompression$1[\"LossyJpeg\"] = 34892] = \"LossyJpeg\";\n\tExifCompression$1[ExifCompression$1[\"LZMA2\"] = 34925] = \"LZMA2\";\n\tExifCompression$1[ExifCompression$1[\"Zstd\"] = 34926] = \"Zstd\";\n\tExifCompression$1[ExifCompression$1[\"WepP\"] = 34927] = \"WepP\";\n\tExifCompression$1[ExifCompression$1[\"PNG\"] = 34933] = \"PNG\";\n\tExifCompression$1[ExifCompression$1[\"JpegXR\"] = 34934] = \"JpegXR\";\n\tExifCompression$1[ExifCompression$1[\"KodakDCRCompressed\"] = 65e3] = \"KodakDCRCompressed\";\n\tExifCompression$1[ExifCompression$1[\"PentaxPEFCompressed\"] = 65535] = \"PentaxPEFCompressed\";\n\treturn ExifCompression$1;\n}({});\nlet ExifLightSource = /* @__PURE__ */ function(ExifLightSource$1) {\n\tExifLightSource$1[ExifLightSource$1[\"Unknown\"] = 0] = \"Unknown\";\n\tExifLightSource$1[ExifLightSource$1[\"Daylight\"] = 1] = \"Daylight\";\n\tExifLightSource$1[ExifLightSource$1[\"Fluorescent\"] = 2] = \"Fluorescent\";\n\tExifLightSource$1[ExifLightSource$1[\"Tungsten\"] = 3] = \"Tungsten\";\n\tExifLightSource$1[ExifLightSource$1[\"Flash\"] = 4] = \"Flash\";\n\tExifLightSource$1[ExifLightSource$1[\"FineWeather\"] = 5] = \"FineWeather\";\n\tExifLightSource$1[ExifLightSource$1[\"Cloudy\"] = 6] = \"Cloudy\";\n\tExifLightSource$1[ExifLightSource$1[\"Shade\"] = 7] = \"Shade\";\n\tExifLightSource$1[ExifLightSource$1[\"DaylightFluorescent\"] = 8] = \"DaylightFluorescent\";\n\tExifLightSource$1[ExifLightSource$1[\"DayWhiteFluorescent\"] = 9] = \"DayWhiteFluorescent\";\n\tExifLightSource$1[ExifLightSource$1[\"CoolWhiteFluorescent\"] = 10] = \"CoolWhiteFluorescent\";\n\tExifLightSource$1[ExifLightSource$1[\"WhiteFluorescent\"] = 11] = \"WhiteFluorescent\";\n\tExifLightSource$1[ExifLightSource$1[\"WarmWhiteFluorescent\"] = 12] = \"WarmWhiteFluorescent\";\n\tExifLightSource$1[ExifLightSource$1[\"StandardLightA\"] = 13] = \"StandardLightA\";\n\tExifLightSource$1[ExifLightSource$1[\"StandardLightB\"] = 14] = \"StandardLightB\";\n\tExifLightSource$1[ExifLightSource$1[\"StandardLightC\"] = 15] = \"StandardLightC\";\n\tExifLightSource$1[ExifLightSource$1[\"D55\"] = 16] = \"D55\";\n\tExifLightSource$1[ExifLightSource$1[\"D65\"] = 17] = \"D65\";\n\tExifLightSource$1[ExifLightSource$1[\"D75\"] = 18] = \"D75\";\n\tExifLightSource$1[ExifLightSource$1[\"D50\"] = 19] = \"D50\";\n\tExifLightSource$1[ExifLightSource$1[\"ISOStudioTungsten\"] = 20] = \"ISOStudioTungsten\";\n\tExifLightSource$1[ExifLightSource$1[\"Other\"] = 255] = \"Other\";\n\treturn ExifLightSource$1;\n}({});\nlet ExifFlashValues = /* @__PURE__ */ function(ExifFlashValues$1) {\n\tExifFlashValues$1[ExifFlashValues$1[\"NoFlash\"] = 0] = \"NoFlash\";\n\tExifFlashValues$1[ExifFlashValues$1[\"Fired\"] = 1] = \"Fired\";\n\tExifFlashValues$1[ExifFlashValues$1[\"FiredReturnNotDetected\"] = 5] = \"FiredReturnNotDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"FiredReturnDetected\"] = 7] = \"FiredReturnDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OnDidNotFire\"] = 8] = \"OnDidNotFire\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OnFired\"] = 9] = \"OnFired\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OnReturnNotDetected\"] = 13] = \"OnReturnNotDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OnReturnDetected\"] = 15] = \"OnReturnDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OffDidNotFire\"] = 16] = \"OffDidNotFire\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OffDidNotFireReturnNotDetected\"] = 20] = \"OffDidNotFireReturnNotDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"AutoDidNotFire\"] = 24] = \"AutoDidNotFire\";\n\tExifFlashValues$1[ExifFlashValues$1[\"AutoFired\"] = 25] = \"AutoFired\";\n\tExifFlashValues$1[ExifFlashValues$1[\"AutoFiredReturnNotDetected\"] = 29] = \"AutoFiredReturnNotDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"AutoFiredReturnDetected\"] = 31] = \"AutoFiredReturnDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"NoFlashFunction\"] = 32] = \"NoFlashFunction\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OffNoFlashFunction\"] = 48] = \"OffNoFlashFunction\";\n\tExifFlashValues$1[ExifFlashValues$1[\"FiredRedEyeReduction\"] = 65] = \"FiredRedEyeReduction\";\n\tExifFlashValues$1[ExifFlashValues$1[\"FiredRedEyeReductionReturnNotDetected\"] = 69] = \"FiredRedEyeReductionReturnNotDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"FiredRedEyeReductionReturnDetected\"] = 71] = \"FiredRedEyeReductionReturnDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OnRedEyeReduction\"] = 73] = \"OnRedEyeReduction\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OnRedEyeReductionReturnNotDetected\"] = 77] = \"OnRedEyeReductionReturnNotDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OnRedEyeReductionReturnDetected\"] = 79] = \"OnRedEyeReductionReturnDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OffRedEyeReduction\"] = 80] = \"OffRedEyeReduction\";\n\tExifFlashValues$1[ExifFlashValues$1[\"AutoDidNotFireRedEyeReduction\"] = 88] = \"AutoDidNotFireRedEyeReduction\";\n\tExifFlashValues$1[ExifFlashValues$1[\"AutoFiredRedEyeReduction\"] = 89] = \"AutoFiredRedEyeReduction\";\n\tExifFlashValues$1[ExifFlashValues$1[\"AutoFiredRedEyeReductionNotDetected\"] = 96] = \"AutoFiredRedEyeReductionNotDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"AutoFiredRedEyeReductionDetected\"] = 93] = \"AutoFiredRedEyeReductionDetected\";\n\treturn ExifFlashValues$1;\n}({});\nlet ExifPreviewColorSpace = /* @__PURE__ */ function(ExifPreviewColorSpace$1) {\n\tExifPreviewColorSpace$1[ExifPreviewColorSpace$1[\"Unknown\"] = 0] = \"Unknown\";\n\tExifPreviewColorSpace$1[ExifPreviewColorSpace$1[\"GrayGamma22\"] = 1] = \"GrayGamma22\";\n\tExifPreviewColorSpace$1[ExifPreviewColorSpace$1[\"sRGB\"] = 2] = \"sRGB\";\n\tExifPreviewColorSpace$1[ExifPreviewColorSpace$1[\"AdobeRGB\"] = 3] = \"AdobeRGB\";\n\tExifPreviewColorSpace$1[ExifPreviewColorSpace$1[\"ProPhotoRGB\"] = 4] = \"ProPhotoRGB\";\n\treturn ExifPreviewColorSpace$1;\n}({});\nlet ExifEmbedPolicy = /* @__PURE__ */ function(ExifEmbedPolicy$1) {\n\tExifEmbedPolicy$1[ExifEmbedPolicy$1[\"AllowCopying\"] = 0] = \"AllowCopying\";\n\tExifEmbedPolicy$1[ExifEmbedPolicy$1[\"EmbedIfUsed\"] = 1] = \"EmbedIfUsed\";\n\tExifEmbedPolicy$1[ExifEmbedPolicy$1[\"NeverEmbed\"] = 2] = \"NeverEmbed\";\n\tExifEmbedPolicy$1[ExifEmbedPolicy$1[\"NoRestrictions\"] = 3] = \"NoRestrictions\";\n\treturn ExifEmbedPolicy$1;\n}({});\nlet ExifSubjectDistance = /* @__PURE__ */ function(ExifSubjectDistance$1) {\n\tExifSubjectDistance$1[ExifSubjectDistance$1[\"Unknown\"] = 0] = \"Unknown\";\n\tExifSubjectDistance$1[ExifSubjectDistance$1[\"Macro\"] = 1] = \"Macro\";\n\tExifSubjectDistance$1[ExifSubjectDistance$1[\"Close\"] = 2] = \"Close\";\n\tExifSubjectDistance$1[ExifSubjectDistance$1[\"Distant\"] = 3] = \"Distant\";\n\treturn ExifSubjectDistance$1;\n}({});\nlet ExifSharpness = /* @__PURE__ */ function(ExifSharpness$1) {\n\tExifSharpness$1[ExifSharpness$1[\"Normal\"] = 0] = \"Normal\";\n\tExifSharpness$1[ExifSharpness$1[\"Soft\"] = 1] = \"Soft\";\n\tExifSharpness$1[ExifSharpness$1[\"Hard\"] = 2] = \"Hard\";\n\treturn ExifSharpness$1;\n}({});\nlet ExifSceneCaptureType = /* @__PURE__ */ function(ExifSceneCaptureType$1) {\n\tExifSceneCaptureType$1[ExifSceneCaptureType$1[\"Standard\"] = 0] = \"Standard\";\n\tExifSceneCaptureType$1[ExifSceneCaptureType$1[\"Landscape\"] = 1] = \"Landscape\";\n\tExifSceneCaptureType$1[ExifSceneCaptureType$1[\"Portrait\"] = 2] = \"Portrait\";\n\tExifSceneCaptureType$1[ExifSceneCaptureType$1[\"Night\"] = 3] = \"Night\";\n\tExifSceneCaptureType$1[ExifSceneCaptureType$1[\"Other\"] = 4] = \"Other\";\n\treturn ExifSceneCaptureType$1;\n}({});\nlet ExifGainControl = /* @__PURE__ */ function(ExifGainControl$1) {\n\tExifGainControl$1[ExifGainControl$1[\"None\"] = 0] = \"None\";\n\tExifGainControl$1[ExifGainControl$1[\"LowGainUp\"] = 1] = \"LowGainUp\";\n\tExifGainControl$1[ExifGainControl$1[\"HighGainUp\"] = 2] = \"HighGainUp\";\n\tExifGainControl$1[ExifGainControl$1[\"LowGainDown\"] = 3] = \"LowGainDown\";\n\tExifGainControl$1[ExifGainControl$1[\"HighGainDown\"] = 4] = \"HighGainDown\";\n\treturn ExifGainControl$1;\n}({});\nlet ExifContrast = /* @__PURE__ */ function(ExifContrast$1) {\n\tExifContrast$1[ExifContrast$1[\"Normal\"] = 0] = \"Normal\";\n\tExifContrast$1[ExifContrast$1[\"Low\"] = 1] = \"Low\";\n\tExifContrast$1[ExifContrast$1[\"High\"] = 2] = \"High\";\n\treturn ExifContrast$1;\n}({});\nlet ExifSaturation = /* @__PURE__ */ function(ExifSaturation$1) {\n\tExifSaturation$1[ExifSaturation$1[\"Normal\"] = 0] = \"Normal\";\n\tExifSaturation$1[ExifSaturation$1[\"Low\"] = 1] = \"Low\";\n\tExifSaturation$1[ExifSaturation$1[\"High\"] = 2] = \"High\";\n\treturn ExifSaturation$1;\n}({});\n\n//#endregion\nexport { DEFAULT_MANY_TO_ONE_MAPPING, DEFAULT_ONE_TO_MANY_MAPPING, DEFAULT_ONE_TO_ONE_MAPPING, ExifCompression, ExifContrast, ExifEmbedPolicy, ExifFlashValues, ExifGainControl, ExifLightSource, ExifPreviewColorSpace, ExifSaturation, ExifSceneCaptureType, ExifSharpness, ExifSubjectDistance, MapCardinality };\n//# sourceMappingURL=index.js.map"],"mappings":";;;;;AAIA,MAAM,oBAAoB;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,oBAAoB;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,cAAc,CAAC,GAAG,mBAAmB,GAAG,iBAAkB;AAIhE,MAAMA,YAAU;AAChB,MAAM,eAAe;EACnB,yBAAyBA,SAAO,kBAAkBA,SAAO;EACzD,yBAAyBA,SAAO,oBAAoBA,SAAO;EAC3D,yBAAyBA,SAAO,oBAAoBA,SAAO;EAC3D,yBAAyBA,SAAO,oBAAoBA,SAAO;EAC3D,oDAAoDA,SAAO;AAC5D;AAID,MAAM,cAAc,OAAO,aAAa;AACxC,MAAM,qBAAqB,OAAO,qBAAqB;AACvD,MAAM,UAAU,OAAO,UAAU;AAIjC,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;AACA;AAID,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;AASD,SAASC,mBAAiB,MAAM;AAC/B,QAAO;EACN,OAAO;EACP;CACA;AACD;;;;;;;;;AASD,MAAM,QAAQ,mBAAiB,QAAQ;AAIvC,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AAID,MAAM,wBAAwB;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AAID,MAAM,aAAa;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;AASD,MAAM,aAAa;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;AAMD,MAAM,aAAa;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,oBAAoB;CACzB,WAAW;EACV,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,YAAY;EACX,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,SAAS;EACR,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,SAAS;EACR,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,QAAQ;EACP,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,QAAQ;EACP,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,UAAU;EACT,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,aAAa;EACZ,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,WAAW;EACV,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,YAAY;EACX,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,YAAY;EACX,QAAQ;EACR,KAAK;EACL,aAAa;CACb;AACD;AACD,MAAM,sBAAsB;CAC3B,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;AACD;;AAED,MAAM,UAAU;CACf;CACA;CACA;CACA;AACA;;;;;AAKD,MAAM,yBAAyB;CAC9B,QAAQ;EACP,UAAU;GACT;GACA;GACA;EACA;EACD,UAAU;GACT;GACA;GACA;EACA;CACD;CACD,QAAQ;EACP,UAAU;GACT;GACA;GACA;EACA;EACD,UAAU;GACT;GACA;GACA;EACA;CACD;CACD,QAAQ;EACP,UAAU;GACT;GACA;GACA;EACA;EACD,UAAU;GACT;GACA;GACA;EACA;CACD;CACD,MAAM;EACL,UAAU;GACT;GACA;GACA;EACA;EACD,UAAU;GACT;GACA;GACA;EACA;CACD;AACD;AACD,MAAM,yBAAyB;CAC9B,UAAU;EACT,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACP;CACD,UAAU;EACT,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACP;AACD;AACD,MAAM,kBAAkB;CACvB;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,WAAW;CAChB;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,qBAAqB,CAAC,OAAO,KAAM;AACzC,MAAM,cAAc,CAAC,YAAY,QAAS;AAC1C,MAAM,oBAAoB;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,oBAAoB;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,YAAY;CACjB;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,cAAc;CACnB;CACA;CACA;CACA;AACA;;;;AAID,MAAM,cAAc;CACnB;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAOD,MAAM,iBAAiB;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,iBAAiB;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,iBAAiB;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAOD,MAAM,iBAAiB;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,iBAAiB;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,qBAAqB;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AAID,MAAM,UAAU;CACf;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI,CAAC,OAAQ;CACb;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI,CAAC,KAAM;CACX;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI,CAAC,KAAM;CACX;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI,CAAC,KAAM;CACX;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;AACD;;;;;;;AAUD,MAAM,eAAe;CACpB;CACA;CACA;CACA;CACA;MACK;CACL;AACA;;;;;;AASD,MAAM,SAAS;CACd,IAAI;CACJ,KAAK;AACL;;;;;;AAMD,MAAM,SAAS;CACd,MAAM;CACN,MAAM;AACN;AAID,MAAM,aAAa,CAAC,YAAY,UAAW;;;;AAI3C,MAAM,aAAa;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,yBAAyB;CAC9B;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;AACD;;;;AAID,MAAM,4BAA4B;CACjC;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;AACD;;;;;;;AAOD,MAAM,kBAAkB,CAAC,GAAG,wBAAwB,GAAG,yBAA0B;;;;;AAKjF,MAAM,eAAe;CACpB,GAAG;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;EACA;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;EACA;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;EACA;EACA;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACA;AACD;AAID,MAAM,kBAAkB;CACvB,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,OAAO;CACP,SAAS;CACT,WAAW;CACX,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,OAAO;CACP,QAAQ;CACR,KAAK;CACL,SAAS;CACT,KAAK;CACL,OAAO;AACP;AACD,MAAM,yBAAyB;CAC9B,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;AACD,MAAM,qBAAqB;CAC1B,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACL,KAAK;CACL,KAAK;AACL;AACD,MAAM,mBAAmB;CACxB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;AACD,MAAM,yBAAyB;CAC9B,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;AACD,MAAM,kBAAkB;CACvB,GAAG;CACH,GAAG;CACH,GAAG;AACH;AACD,MAAM,mBAAmB;;;;AAOzB,MAAM,kBAAkB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;;AAUD,MAAM,aAAa;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AAID,MAAM,sBAAsB;CAC3B;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAC,MAAO;CACnB;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAE;CACb;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAE;CACb;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAE;CACb;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAE;CACb;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAE;CACb;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAE;CACb;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAE;CACb;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAE;CACb;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAC,KAAM;CAClB;AACD;AAID,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,oBAAoB;EACxB;EACA;EACA;AACD;AACD,MAAM,sBAAsB;EAC1B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACD;;;;;AAQD,MAAM,uBAAuB;CAC5B;CACA;CACA;AACA;;;;AAOD,MAAM,YAAY;CACjB;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;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QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,uBAAuB;CAC5B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,8BAA8B;CACnC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,wBAAwB;CAC7B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,6BAA6B;CAClC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,0BAA0B;CAC/B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,wBAAwB;CAC7B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,sBAAsB;CAC3B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,uBAAuB;CAC5B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,2BAA2B;CAChC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,yBAAyB;CAC9B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,yBAAyB;CAC9B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,4BAA4B;CACjC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,4BAA4B;CACjC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,sBAAsB;CAC3B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;;;;;;;;;;AAaD,MAAM,kBAAkB;CACvB,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;AACL;;;;;;;;;AASD,MAAM,gBAAgB;CACrB,MAAM;CACN,KAAK;CACL,KAAK;AACL;;;;;;;AAOD,MAAM,4BAA4B;CACjC,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACL,KAAK;AACL;AAID,MAAM,OAAO;CACZ,UAAU;CACV,WAAW;CACX,qBAAqB;CACrB,SAAS;CACT,wBAAwB;AACxB;AACD,MAAM,OAAO,EAAE,UAAU,YAAa;AACtC,MAAM,4BAA4B;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,0BAA0B;CAC/B;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,mBAAmB,CAAC,GAAG,2BAA2B,GAAG,uBAAwB;;;;AAInF,MAAM,0BAA0B;CAC/B,MAAM,CAAC,QAAQ,OAAQ;CACvB,KAAK,CAAC,OAAO,MAAO;CACpB,MAAM,CAAC,IAAI,MAAO;CAClB,IAAI,CAAC,MAAM,KAAM;CACjB,KAAK,CAAC,IAAI,KAAM;CAChB,KAAK,CAAC,IAAI,KAAM;CAChB,QAAQ,CAAC,UAAU,EAAG;CACtB,KAAK,CAAC,OAAO,MAAO;AACpB;AACD,MAAM,yBAAyB;CAC9B,MAAM;CACN,OAAO;CACP,IAAI;CACJ,KAAK;CACL,KAAK;CACL,QAAQ;CACR,KAAK;CACL,MAAM;CACN,MAAM;CACN,MAAM;CACN,MAAM;CACN,KAAK;CACL,MAAM;AACN;;;;;;;AAOD,MAAM,oBAAoB;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;AASD,SAASC,mBAAiB,MAAM;AAC/B,QAAO;EACN,OAAO;EACP;CACA;AACD;;;;;;;;;AASD,MAAM,QAAQ,mBAAiB,QAAQ;AAIvC,MAAM,UAAU;CACf;EACC,SAAS;EACT,UAAU,CAAC,iBAAkB;CAC7B;CACD;EACC,SAAS;EACT,UAAU,CAAC,aAAc;CACzB;CACD;EACC,SAAS;EACT,UAAU,CAAC,iBAAkB;CAC7B;CACD;EACC,SAAS;EACT,UAAU,CAA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AC,WAAY;EACvB,MAAM,CAAC,aAAa,SAAU;CAC9B;CACD;EACC,SAAS;EACT,UAAU,CAAC,YAAa;EACxB,MAAM,CAAC,aAAa,SAAU;CAC9B;CACD;EACC,SAAS;EACT,UAAU,CAAC,qBAAsB;EACjC,MAAM,CAAC,aAAa,SAAU;CAC9B;CACD;EACC,SAAS;EACT,UAAU,CAAC,gBAAiB;EAC5B,MAAM,CAAC,aAAa,SAAU;CAC9B;CACD;EACC,SAAS;EACT,UAAU,CAAC,YAAa;EACxB,MAAM,CAAC,aAAa,SAAU;CAC9B;AACD;AAID,SAASC,mBAAiB,MAAM;AAC/B,QAAO;EACN,OAAO;EACP;CACA;AACD;;;;;AAKD,MAAM,mBAAmB,mBAAiB,mBAAmB;AAI7D,MAAM,iBAAiB,OAAO,iBAAiB;;;;;;AAS/C,SAASC,iBAAe,MAAM;AAC7B,QAAO;EACN,OAAO;EACP;CACA;AACD;;;;;;AAMD,MAAM,cAAc,iBAAe,cAAc;;;;;;;;AAWjD,MAAM,eAAe;CACpB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,wBAAwB;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;;;AAWD,MAAM,gBAAgB;CACrB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AAID,MAAM,eAAe;CACpB;CACA;CACA;CACA;AACA;;;;;;AAMD,MAAM,sBAAsB;CAC3B;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;AACD;;;;;;AASD,MAAM,wBAAwB;CAC7B,CAAC,SAAS,QAAS;CACnB,CAAC,SAAS,QAAS;CACnB,CAAC,QAAQ,OAAQ;CACjB,CAAC,QAAQ,MAAO;CAChB,CAAC,OAAO,KAAM;CACd,CAAC,SAAS,O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;CACA;AACA;AACD,MAAM,kBAAkB;AAIxB,MAAM,qBAAqB;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,uBAAuB;CAC5B;CACA;EACC;EACA;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,2BAA2B;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;AACA;AACD,MAAM,sBAAsB,EAAE,aAAc;AAC5C,MAAM,kBAAkB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,oBAAoB;CACzB,GAAG;CACH;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,qBAAqB;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,sBAAsB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;EACC;EACA;EACA;AACD;AACD,MAAM,oBAAoB;CACzB;CACA;CACA;AACA;AACD,MAAM,oBAAoB,CAAC,OAAO,YAAa;AAC/C,MAAM,0BAA0B;CAC/B,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;;;;;;;;AAQD,MAAM,gBAAgB;CACrB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;;;;;;AASD,MAAM,wBAAwB;CAC7B;CACA;CACA;CACA;CACA;CACA;AACA;AAID,MAAM,eAAe;CACpB;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,0BAA2B;EACtC,YAAY;EACZ,qBAAqB;EACrB,cAAc;CACd;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,yBAA0B;EACrC,YAAY;EACZ,qBAAqB;EACrB,cAAc;CACd;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,4BAA4B,eAAgB;EACvD,YAAY;EACZ,qBAAqB;EACrB,cAAc;CACd;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,2BAA4B;EACvC,YAAY;EACZ,qBAAqB;EACrB,cAAc;CACd;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,wBAAyB;EACpC,YAAY;EACZ,qBAAqB;CACrB;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,wBAAyB;EACpC,YAAY;EACZ,qBAAqB;CACrB;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,2BAA4B;EACvC,YAAY;EACZ,qBAAqB;EACrB,cAAc;CACd;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,4BAA4B,cAAe;EACtD,YAAY;EACZ,qBAAqB;CACrB;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,0BAA2B;EACtC,YAAY;EACZ,qBAAqB;EACrB,cAAc;CACd;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,wBAAyB;EACpC,YAAY;EACZ,qBAAqB;CACrB;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,0BAA2B;EACtC,YAAY;EACZ,qBAAqB;EACrB,cAAc;CACd;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,2BAA2B,eAAgB;EACtD,YAAY;EACZ,qBAAqB;CACrB;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,2BAA4B;EACvC,YAAY;EACZ,qBAAqB;EACrB,cAAc;CACd;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,wBAAyB;EACpC,YAAY;EACZ,qBAAqB;CACrB;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,2BAA4B;EACvC,YAAY;EACZ,qBAAqB;CACrB;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,2BAA2B,qBAAsB;EAC5D,YAAY;EACZ,qBAAqB;CACrB;AACD;AAID,MAAM,iBAAiB;CACtB,OAAO;CACP,MAAM;CACN,MAAM;CACN,SAAS;CACT,OAAO;AACP;AACD,MAAM,iBAAiB;CACtB,KAAK;CACL,QAAQ;CACR,OAAO;CACP,QAAQ;CACR,MAAM;CACN,OAAO;CACP,SAAS;CACT,MAAM;CACN,MAAM;CACN,KAAK;CACL,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,MAAM;CACN,MAAM;AACN;AACD,MAAM,gBAAgB;CACrB,OAAO;CACP,OAAO;AACP;;;;;;;AAOD,MAAM,SAAS;CACd,GAAG;CACH,GAAG;CACH,GAAG;AACH;AACD,MAAM,gBAAgB;CACrB,MAAM;CACN,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;AACP;AACD,MAAM,cAAc,cAAc;AAClC,MAAM,eAAe,cAAc;AACnC,MAAM,eAAe,cAAc;AACnC,MAAM,eAAe,cAAc;AACnC,MAAM,eAAe,cAAc;AACnC,MAAM,eAAe,cAAc;AACnC,MAAM,eAAe,cAAc;AACnC,MAAM,eAAe,cAAc;AACnC,MAAM,eAAe,cAAc;AACnC,MAAM,eAAe,cAAc;AACnC,MAAM,eAAe,cAAc;;;;;;;;;AASnC,MAAM,YAAY;CACjB,MAAM;CACN,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;AACP;AACD,MAAM,eAAe,UAAU;AAC/B,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;;;;;;AAMhC,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,oBAAoB;CACzB;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,qBAAqB;CAC1B;CACA;CACA;CACA;AACA;AACD,MAAM,oBAAoB;CACzB;CACA;CACA;CACA;EACC;AACD;;;;;AAKD,MAAM,sBAAsB;CAC3B;CACA;CACA;CACA;CACA;AACA;;;;;AAKD,MAAM,eAAe;CACpB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;AAID,MAAM,yBAAyB;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,0BAA0B;CAC/B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,6BAA6B;CAClC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,uBAAuB;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,2BAA2B;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,4BAA4B;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,yBAAyB;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,yBAAyB;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,0BAA0B;CAC/B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAC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MAAM,8BAA8B;CACnC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,4BAA4B;CACjC;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,aAAa;CAClB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;;;;AAOD,MAAM,aAAa;CAClB;CACA;CACA;CACA;CACA;AACA;;;;;AAKD,MAAM,gBAAgB,CAAC,UAAU,QAAS;AAC1C,MAAM,UAAU;CACf;CACA;CACA;CACA;AACA;;;;;AAKD,MAAM,eAAe,CAAC,MAAM,KAAM;;;;;AAKlC,MAAM,gBAAgB;CACrB;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,mBAAmB;CACxB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;AACD,MAAM,WAAW;AACjB,MAAM,UAAU;AAChB,MAAM,eAAe;AAIrB,MAAM,0BAA0B,CAAC,cAAc,YAAa;AAC5D,MAAM,8BAA8B;CACnC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,iCAAiC;CACtC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,gCAAgC,CAAC,cAAc,QAAS;AAI9D,MAAM,YAAY;AAClB,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,uBAAuB;;;;;;;;;;;AAW7B,MAAM,kBAAkB;CACvB,UAAU;EACT;EACA,CAAE;EACF;CACA;CACD,SAAS;EACR;EACA,CAAE;EACF;CACA;CACD,UAAU;EACT;EACA,CAAE;EACF;CACA;CACD,WAAW;EACV;EACA,CAAE;EACF;CACA;CACD,MAAM;EACL;EACA,CAAE;EACF;CACA;CACD,WAAW;EACV;EACA,CAAE;EACF;CACA;CACD,SAAS;EACR;EACA,CAAE;EACF;CACA;CACD,YAAY;EACX;EACA,CAAE;EACF;CACA;CACD,cAAc;EACb;EACA,CAAE;EACF;CACA;CACD,SAAS;EACR;EACA,CAAE;EACF;CACA;CACD,WAAW;EACV;EACA,CAAE;EACF;CACA;CACD,aAAa;EACZ;EACA,CAAE;EACF;CACA;CACD,aAAa;EACZ;EACA,CAAE;EACF;CACA;CACD,cAAc;EACb;EACA,CAAE;EACF;CACA;CACD,aAAa;EACZ;EACA,CAAE;EACF;CACA;CACD,cAAc;EACb;EACA,CAAC,QAAS;EACV;CACA;CACD,eAAe;EACd;EACA,CAAC,QAAS;EACV;CACA;CACD,eAAe;EACd;EACA,CAAC,QAAS;EACV;CACA;CACD,gBAAgB;EACf;EACA,CAAC,QAAS;EACV;CACA;CACD,UAAU;EACT;EACA,CAAE;EACF;CACA;CACD,UAAU;EACT;EACA,CAAC,UAAU,QAAS;EACpB;CACA;CACD,SAAS;EACR;EACA,CAAC,SAAU;EACX;CACA;CACD,QAAQ;EACP;EACA,CAAC,SAAU;EACX;CACA;CACD,WAAW;EACV;EACA,CAAE;EACF;CACA;CACD,WAAW;EACV;EACA,CAAE;EACF;CACA;AACD;;;;;;;;;;;;;;ACvyQD,SAAS,aAAa,KAAK,eAAe,OAAO;AAChD,QAAO,aAAa,IAAI,IAAI,WAAW,IAAI,GAAG,SAAS,IAAI,GAAG,IAAI,MAAM,GAAG,WAAW,IAAI,GAAG,eAAe,KAAK,GAAG,MAAM,MAAM,WAAW,IAAI,GAAG,eAAe,KAAK,GAAG,MAAM;AAC/K;;;;;;;;;;;;;;;;;AAoBD,SAAS,WAAW,GAAG,MAAM;AAC5B,QAAO,CAAC,QAAQ;AACf,SAAO,KAAK,SAAS,IAAI;CACzB;AACD;;;;;;AASD,SAAS,QAAQ,KAAK,WAAW,cAAc;AAC9C,QAAO,MAAM,QAAQ,IAAI,GAAG,UAAU,IAAI,GAAG,aAAa,IAAI;AAC9D;AAID,SAAS,iBAAiB;AACzB,QAAO,CAAC,WAAW,iBAAiB;AACnC,SAAO,CAAC,QAAQ,QAAQ,KAAK,WAAW,aAAa;CACrD;AACD;;;;;;;;;;;;AAeD,SAAS,UAAU,KAAK,aAAa,YAAY;AAChD,QAAO,UAAU,IAAI,GAAG,YAAY,IAAI,GAAG,WAAW,IAAI;AAC1D;;;;AAOD,MAAME,sBAAoB;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAMC,sBAAoB;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAMC,gBAAc,CAAC,GAAGF,qBAAmB,GAAGC,mBAAkB;AAIhE,MAAM,UAAU;AAChB,MAAME,iBAAe;EACnB,yBAAyB,OAAO,kBAAkB,OAAO;EACzD,yBAAyB,OAAO,oBAAoB,OAAO;EAC3D,yBAAyB,OAAO,oBAAoB,OAAO;EAC3D,yBAAyB,OAAO,oBAAoB,OAAO;EAC3D,oDAAoD,OAAO;AAC5D;AAID,MAAMC,gBAAc,OAAO,aAAa;AACxC,MAAMC,uBAAqB,OAAO,qBAAqB;AACvD,MAAMC,YAAU,OAAO,UAAU;AAIjC,MAAMC,qBAAmB;CACxB;CACA;CACA;CACA;AACA;;;;;;AASD,SAAS,iBAAiB,MAAM;AAC/B,QAAO;EACN,OAAO;EACP;CACA;AACD;;;;;;;;;AASD,MAAMC,UAAQ,iBAAiB,QAAQ;AAIvC,MAAMC,0BAAwB;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;AASD,MAAMC,eAAa;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;AAMD,MAAMC,eAAa;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,sBAAoB;CACzB,WAAW;EACV,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,YAAY;EACX,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,SAAS;EACR,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,SAAS;EACR,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,QAAQ;EACP,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,QAAQ;EACP,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,UAAU;EACT,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,aAAa;EACZ,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,WAAW;EACV,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,YAAY;EACX,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,YAAY;EACX,QAAQ;EACR,KAAK;EACL,aAAa;CACb;AACD;AACD,MAAMC,wBAAsB;CAC3B,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;AACD;AACD,MAAMC,2BAAyB;CAC9B,UAAU;EACT,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACP;CACD,UAAU;EACT,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACP;AACD;AACD,MAAMC,cAAY;CACjB;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAMC,gBAAc;CACnB;CACA;CACA;CACA;AACA;;;;AAID,MAAMC,gBAAc;CACnB;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAOD,MAAMC,uBAAqB;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;;AAUD,MAAMC,iBAAe;CACpB;CACA;CACA;CACA;CACA;MACK;CACL;AACA;;;;AAOD,MAAMC,2BAAyB;CAC9B;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;AACD;;;;AAID,MAAMC,8BAA4B;CACjC;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;AACD;;;;;;;AAOD,MAAMC,oBAAkB,CAAC,GAAGF,0BAAwB,GAAGC,2BAA0B;AAIjF,MAAME,2BAAyB;CAC9B,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;AACD,MAAMC,uBAAqB;CAC1B,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACL,KAAK;CACL,KAAK;AACL;AACD,MAAMC,2BAAyB;CAC9B,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;AACD,MAAMC,oBAAkB;CACvB,GAAGH;CACH,GAAGE;CACH,GAAGD;AACH;;;;AAOD,MAAMG,oBAAkB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAMC,qBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAOD,MAAMC,cAAY;CACjB;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;AACD;;;;;;AASD,SAAS,iBAAiB,MAAM;AAC/B,QAAO;EACN,OAAO;EACP;CACA;AACD;AACD,MAAMC,WAAS,iBAAiB,SAAS;AAIzC,MAAMC,4BAA0B;CAC/B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,wBAAsB;CAC3B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,yBAAuB;CAC5B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,gCAA8B;CACnC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,0BAAwB;CAC7B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,+BAA6B;CAClC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,4BAA0B;CAC/B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,0BAAwB;CAC7B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,wBAAsB;CAC3B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,yBAAuB;CAC5B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,6BAA2B;CAChC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,2BAAyB;CAC9B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,2BAAyB;CAC9B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,8BAA4B;CACjC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,8BAA4B;CACjC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,wBAAsB;CAC3B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;;;;;;;;;;AAaD,MAAMC,oBAAkB;CACvB,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;AACL;;;;;;;;;AASD,MAAMC,kBAAgB;CACrB,MAAM;CA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,iBAAiB,MAAM;AAC/B,QAAO;EACN,OAAO;EACP;CACA;AACD;;;;;AAKD,MAAMC,qBAAmB,iBAAiB,mBAAmB;AAI7D,MAAMC,mBAAiB,OAAO,iBAAiB;;;;;;AAS/C,SAAS,iBAAiB,MAAM;AAC/B,QAAO;EACN,OAAO;EACP;CACA;AACD;;;;;;AAMD,MAAMC,gBAAc,iBAAiB,cAAc;;;;;;;;AAWnD,MAAMC,iBAAe;CACpB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;AASD,MAAMC,wBAAsB;CAC3B;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;AACD;;;;;;AASD,MAAMC,sBAAoB;CACzB,OAAO;CACP,OAAO;CACP,MAAM;CACN,MAAM;CACN,KAAK;CACL,OAAO;CACP,QAAQ;CACR,OAAO;CACP,QAAQ;CACR,OAAO;CACP,OAAO;CACP,MAAM;CACN,OAAO;CACP,OAAO;CACP,OAAO;CACP,IAAI;CACJ,OAAO;CACP,QAAQ;CACR,UAAU;CACV,KAAK;CACL,MAAM;CACN,OAAO;CACP,YAAY;CACZ,WAAW;CACX,OAAO;CACP,YAAY;CACZ,WAAW;CACX,SAAS;CACT,YAAY;CACZ,OAAO;CACP,UAAU;CACV,QAAQ;CACR,OAAO;CACP,MAAM;CACN,SAAS;CACT,QAAQ;CACR,QAAQ;CACR,MAAM;CACN,KAAK;CACL,UAAU;CACV,SAAS;CACT,OAAO;CACP,SAAS;CACT,QAAQ;CACR,OAAO;CACP,UAAU;CACV,QAAQ;CACR,MAAM;CACN,MAAM;CACN,YAAY;CACZ,OAAO;CACP,UAAU;CACV,MAAM;CACN,OAAO;CACP,QAAQ;CACR,SAAS;CACT,SAAS;CACT,OAAO;CACP,MAAM;CACN,MAAM;CACN,aAAa;CACb,QAAQ;CACR,MAAM;CACN,YAAY;CACZ,MAAM;CACN,SAAS;CACT,UAAU;CACV,OAAO;CACP,UAAU;CACV,QAAQ;CACR,OAAO;CACP,QAAQ;CACR,MAAM;CACN,MAAM;AACN;;;;AAOD,MAAMC,iBAAe;CACpB;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,uBAAqB;CAC1B,QAAQ,EAAE,qBAAqB,mBAAoB;CACnD,WAAW,CAAC,uBAAwB;CACpC,QAAQ,CAAC,oBAAqB;CAC9B,YAAY,CAAC,oCAAqC;CAClD,OAAO,CAAE;AACT;;;;AAOD,MAAMC,eAAa;CAClB;EACC;EACA;EACA;EACA;EACA;AACD;AACD,MAAMC,gBAAc;CACnB;CACA;CACA;AACA;AACD,MAAMC,cAAY,CAAC,mBAAmB,eAAgB;AACtD,MAAMC,mBAAiB,CAAC,qBAAqB,kBAAmB;AAChE,MAAMC,aAAW;CAChB;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,eAAa,CAAC,gBAAiB;AACrC,MAAMC,aAAW,CAAC,cAAe;AACjC,MAAMC,eAAa;CAClB;CACA;CACA;AACA;AACD,MAAMC,iBAAe,CAAC,mBAAmB,gBAAiB;AAC1D,MAAMC,gBAAc;CACnB;CACA;CACA;AACA;AACD,MAAMC,aAAW,CAAC,cAAe;AACjC,MAAMC,cAAY,CAAC,eAAgB;AACnC,MAAMC,aAAW,CAAC,cAAe;;AAEjC,MAAMC,WAAS,CAAC,aAAc;AAC9B,MAAMC,aAAW,CAAC,cAAe;AACjC,MAAMC,eAAa,CAAC,gBAAiB;AACrC,MAAMC,kBAAgB,CAAC,mBAAoB;AAC3C,MAAMC,YAAU,CAAC,aAAc;AAC/B,MAAMC,oBAAkB,CAAC,4BAA4B,4BAA6B;AAIlF,MAAMC,0BAAwB;GAC3B,KAAK;GACL,KAAK;GACL,MAAM;AACR;AACD,MAAMC,8BAA4B;CACjC,KAAK;CACL,KAAK;CACL,MAAM;CACN,MAAM;AACN;AACD,MAAMC,4BAA0B;CAC/B,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;AACL;AACD,MAAMC,uBAAqB;CAC1B,GAAGD;CACH,GAAGF;CACH,GAAGC;AACH;AAID,MAAMG,mBAAiB;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AAID,MAAMC,yBAAuB;CAC5B;CACA;EACC;EACA;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,6BAA2B;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,wBAAsB,EAAE,aAAc;AAC5C,MAAMC,oBAAkB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,sBAAoB;CACzB,GAAGD;CACH;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAME,uBAAqB;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,wBAAsB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;EACC;EACA;EACA;AACD;AACD,MAAMC,sBAAoB;CACzB;CACA;CACA;AACA;AACD,MAAMC,sBAAoB,CAAC,OAAO,YAAa;AAC/C,MAAMC,4BAA0B;CAC/B,GAAGJ;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;AACH;;;;;;;;AAQD,MAAME,kBAAgB;CACrB,GAAGV;CACH,GAAGC;CACH,GAAGQ;CACH,GAAGP;AACH;;;;;;AASD,MAAMS,0BAAwB;CAC7B;CACA;CACA;CACA;CACA;CACA;AACA;AAID,MAAMC,iBAAe;CACpB;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,0BAA2B;EACtC,YAAY;EACZ,qBAAqB;EACrB,cAAc;CACd;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,yBAA0B;EACrC,YAAY;EACZ,qBAAqB;EACrB,cAAc;CACd;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,4BAA4B,eAAgB;EACvD,YAAY;EACZ,qBAAqB;EACrB,cAAc;CACd;CACD;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,2BAA4B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;CACA;EACC;AACD;;;;;AAKD,MAAMC,wBAAsB;CAC3B;CACA;CACA;CACA;CACA;AACA;;;;;AAKD,MAAMC,iBAAe;CACpB,GAAGJ;CACH,GAAGC;CACH,GAAGE;CACH,GAAGD;AACH;AAID,MAAMG,2BAAyB;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,4BAA0B;CAC/B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,+BAA6B;CAClC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,yBAAuB;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,6BAA2B;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,8BAA4B;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,2BAAyB;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,2BAAyB;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,4BAA0B;CAC/B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA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"}
1
+ {"version":3,"file":"index.cjs","names":["string","createConstant$4","createConstant$3","createConstant$2","createConstant$1","createConstant","wide","entry","LOWER_ALPHA_CHARS","UPPER_ALPHA_CHARS","ALPHA_CHARS","AMAZON_BOOKS","SAFE_STRING","NON_BREAKING_SPACE","BRANDED","WHITESPACE_CHARS","CSS_NAMED_COLORS","CSS_COLOR_LOOKUP","COMMA","COMPARISON_OPERATIONS","MONTH_NAME","MONTH_ABBR","MONTH_NAME_LOOKUP","MONTH_ABBREV_LOOKUP","MONTH_TO_SEASON_LOOKUP","DATE_TYPE","ISO_DATE_30","ISO_DATE_31","DOUBLE_LEAP_MODERN","FALSY_VALUES","US_STATE_LOOKUP_STRICT","US_STATE_LOOKUP_PROVINCES","US_STATE_LOOKUP","HASH_TABLE_ALPHA_LOWER","HASH_TABLE_SPECIAL","HASH_TABLE_ALPHA_UPPER","HASH_TABLE_CHAR","HTML_BLOCK_TAGS","HTML_ATOMIC_TAGS","ISO3166_1","MARKED","DISTANCE_METRICS_LOOKUP","MASS_METRICS_LOOKUP","SPEED_METRICS_LOOKUP","ACCELERATION_METRICS_LOOKUP","VOLUME_METRICS_LOOKUP","TEMPERATURE_METRICS_LOOKUP","PRESSURE_METRICS_LOOKUP","ENERGY_METRICS_LOOKUP","TIME_METRICS_LOOKUP","POWER_METRICS_LOOKUP","FREQUENCY_METRICS_LOOKUP","VOLTAGE_METRICS_LOOKUP","CURRENT_METRICS_LOOKUP","RESISTANCE_METRICS_LOOKUP","LUMINOSITY_METRICS_LOOKUP","AREA_METRICS_LOOKUP","BRACKET_NESTING","QUOTE_NESTING","NETWORK_PROTOCOL_INSECURE","NETWORK_PROTOCOL_SECURE","NETWORK_PROTOCOL","NETWORK_PROTOCOL_LOOKUP","PROTOCOL_DEFAULT_PORTS","Never","US_NEWS","UK_NEWS","GERMAN_NEWS","FRENCH_NEWS","CANADIAN_NEWS","DUTCH_NEWS","ITALIAN_NEWS","BELGIUM_NEWS","MEXICAN_NEWS","SPANISH_NEWS","INDIAN_NEWS","CHINESE_NEWS","DANISH_NEWS","SWISS_NEWS","AUSTRALIAN_NEWS","JAPANESE_NEWS","SOUTH_KOREAN_NEWS","TURKISH_NEWS","NORWEGIAN_NEWS","NO_DEFAULT_VALUE","NOT_APPLICABLE","NOT_DEFINED","NUMERIC_CHAR","PHONE_COUNTRY_CODES","PLURAL_EXCEPTIONS","REPO_SOURCES","REPO_SOURCE_LOOKUP","AMAZON_DNS","WALMART_DNS","APPLE_DNS","HOME_DEPOT_DNS","EBAY_DNS","TARGET_DNS","ETSY_DNS","COSTCO_DNS","BEST_BUY_DNS","WAYFAIR_DNS","NIKE_DNS","MACYS_DNS","DELL_DNS","HM_DNS","ZARA_DNS","KROGER_DNS","WALGREENS_DNS","CVS_DNS","WHOLE_FOODS_DNS","SAFE_ENCODING__QUOTES","SAFE_ENCODING__WHITESPACE","SAFE_ENCODING__BRACKETS","SAFE_ENCODING_KEYS","SHAPE_PREFIXES","SIMPLE_SCALAR_TOKENS","SIMPLE_OPT_SCALAR_TOKENS","SIMPLE_UNION_TOKENS","SIMPLE_MAP_KEYS","SIMPLE_MAP_VALUES","SIMPLE_DICT_TOKENS","SIMPLE_ARRAY_TOKENS","SIMPLE_MAP_TOKENS","SIMPLE_SET_TOKENS","SIMPLE_CONTAINER_TOKENS","SIMPLE_TOKENS","SINGULAR_NOUN_ENDINGS","SOCIAL_MEDIA","TW_HUE_NEUTRAL","TW_HUE_VIBRANT","TW_HUE_STATIC","TW_HUE","TW_LUMINOSITY","TW_LUMIN_50","TW_LUMIN_100","TW_LUMIN_200","TW_LUMIN_300","TW_LUMIN_400","TW_LUMIN_500","TW_LUMIN_600","TW_LUMIN_700","TW_LUMIN_800","TW_LUMIN_900","TW_LUMIN_950","TW_CHROMA","TW_CHROMA_50","TW_CHROMA_100","TW_CHROMA_200","TW_CHROMA_300","TW_CHROMA_400","TW_CHROMA_500","TW_CHROMA_600","TW_CHROMA_700","TW_CHROMA_800","TW_CHROMA_900","TW_CHROMA_950","TW_COLOR_TARGETS","TW_MODIFIERS_CORE","TW_MODIFIERS_ORDER","TW_MODIFIERS_RELN","TW_MODIFIERS_SIZING","TW_MODIFIERS","IANA_TIMEZONES__AFRICA","IANA_TIMEZONES__AMERICA","IANA_TIMEZONES__ANTARCTICA","IANA_TIMEZONES__ASIA","IANA_TIMEZONES__ATLANTIC","IANA_TIMEZONES__AUSTRALIA","IANA_TIMEZONES__EUROPE","IANA_TIMEZONES__INDIAN","IANA_TIMEZONES__PACIFIC","IANA_TIMEZONES__OTHER","IANA_TIMEZONES","WideAssignment","TYPE_COMPARISONS","FALSY_TYPE_KINDS","LITERAL_TYPE_KINDS","WIDE_TYPE_KINDS","NARROW_CONTAINER_TYPE_KINDS","WIDE_CONTAINER_TYPE_KINDS","TYPE_KINDS","TT_ATOMICS","TT_SINGLETONS","TT_SETS","TT_FUNCTIONS","TT_CONTAINERS","TT_KIND_VARIANTS","wide$1","s"],"sources":["../../constants/dist/index.js","../../runtime/dist/index.js","../../types/dist/index.js"],"sourcesContent":["//#region src/Alpha.ts\n/**\n* An array of all the lower-cased alphabetic characters\n*/\nconst LOWER_ALPHA_CHARS = [\n\t\"a\",\n\t\"b\",\n\t\"c\",\n\t\"d\",\n\t\"e\",\n\t\"f\",\n\t\"g\",\n\t\"h\",\n\t\"i\",\n\t\"j\",\n\t\"k\",\n\t\"l\",\n\t\"m\",\n\t\"n\",\n\t\"o\",\n\t\"p\",\n\t\"q\",\n\t\"r\",\n\t\"s\",\n\t\"t\",\n\t\"u\",\n\t\"v\",\n\t\"w\",\n\t\"x\",\n\t\"y\",\n\t\"z\"\n];\n/**\n* An array of all the upper-cased alphabetic characters\n*/\nconst UPPER_ALPHA_CHARS = [\n\t\"A\",\n\t\"B\",\n\t\"C\",\n\t\"D\",\n\t\"E\",\n\t\"F\",\n\t\"G\",\n\t\"H\",\n\t\"I\",\n\t\"J\",\n\t\"K\",\n\t\"L\",\n\t\"M\",\n\t\"N\",\n\t\"O\",\n\t\"P\",\n\t\"Q\",\n\t\"R\",\n\t\"S\",\n\t\"T\",\n\t\"U\",\n\t\"V\",\n\t\"W\",\n\t\"X\",\n\t\"Y\",\n\t\"Z\"\n];\n/**\n* An array of all alphabetic characters (upper and lower)\n*/\nconst ALPHA_CHARS = [...LOWER_ALPHA_CHARS, ...UPPER_ALPHA_CHARS];\n\n//#endregion\n//#region src/Books.ts\nconst string = `{{ string }}`;\nconst AMAZON_BOOKS = [\n\t`https://www.amazon.com/${string}storeType=ebooks${string}`,\n\t`https://www.amazon.com/${string}ref=tmm_hrd_swatch${string}`,\n\t`https://www.amazon.com/${string}ref=tmm_pap_swatch${string}`,\n\t`https://www.amazon.com/${string}ref=tmm_aud_swatch${string}`,\n\t`https://www.amazon.com/books-used-books-textbooks/${string}`\n];\n\n//#endregion\n//#region src/Brands.ts\nconst SAFE_STRING = Symbol(\"SafeString\");\nconst NON_BREAKING_SPACE = Symbol(\"Non-Breaking Space\");\nconst BRANDED = Symbol(\"Branded\");\n\n//#endregion\n//#region src/Characters.ts\nconst WHITESPACE_CHARS = [\n\t\" \",\n\t\"\\n\",\n\t\"\t\",\n\t\"\\b\"\n];\n\n//#endregion\n//#region src/colors.ts\nconst CSS_NAMED_COLORS = [\n\t\"aliceblue\",\n\t\"antiquewhite\",\n\t\"aqua\",\n\t\"aquamarine\",\n\t\"azure\",\n\t\"beige\",\n\t\"bisque\",\n\t\"black\",\n\t\"blanchedalmond\",\n\t\"blue\",\n\t\"blueviolet\",\n\t\"brown\",\n\t\"burlywood\",\n\t\"cadetblue\",\n\t\"chartreuse\",\n\t\"chocolate\",\n\t\"coral\",\n\t\"cornflowerblue\",\n\t\"cornsilk\",\n\t\"crimson\",\n\t\"cyan\",\n\t\"darkblue\",\n\t\"darkcyan\",\n\t\"darkgoldenrod\",\n\t\"darkgray\",\n\t\"darkgreen\",\n\t\"darkgrey\",\n\t\"darkkhaki\",\n\t\"darkmagenta\",\n\t\"darkolivegreen\",\n\t\"darkorange\",\n\t\"darkorchid\",\n\t\"darkred\",\n\t\"darksalmon\",\n\t\"darkseagreen\",\n\t\"darkslateblue\",\n\t\"darkslategray\",\n\t\"darkslategrey\",\n\t\"darkturquoise\",\n\t\"darkviolet\",\n\t\"deeppink\",\n\t\"deepskyblue\",\n\t\"dimgray\",\n\t\"dimgrey\",\n\t\"dodgerblue\",\n\t\"firebrick\",\n\t\"floralwhite\",\n\t\"forestgreen\",\n\t\"fuchsia\",\n\t\"gainsboro\",\n\t\"ghostwhite\",\n\t\"gold\",\n\t\"goldenrod\",\n\t\"gray\",\n\t\"green\",\n\t\"greenyellow\",\n\t\"grey\",\n\t\"honeydew\",\n\t\"hotpink\",\n\t\"indianred\",\n\t\"indigo\",\n\t\"ivory\",\n\t\"khaki\",\n\t\"lavender\",\n\t\"lavenderblush\",\n\t\"lawngreen\",\n\t\"lemonchiffon\",\n\t\"lightblue\",\n\t\"lightcoral\",\n\t\"lightcyan\",\n\t\"lightgoldenrodyellow\",\n\t\"lightgray\",\n\t\"lightgreen\",\n\t\"lightgrey\",\n\t\"lightpink\",\n\t\"lightsalmon\",\n\t\"lightseagreen\",\n\t\"lightskyblue\",\n\t\"lightslategray\",\n\t\"lightslategrey\",\n\t\"lightsteelblue\",\n\t\"lightyellow\",\n\t\"lime\",\n\t\"limegreen\",\n\t\"linen\",\n\t\"magenta\",\n\t\"maroon\",\n\t\"mediumaquamarine\",\n\t\"mediumblue\",\n\t\"mediumorchid\",\n\t\"mediumpurple\",\n\t\"mediumseagreen\",\n\t\"mediumslateblue\",\n\t\"mediumspringgreen\",\n\t\"mediumturquoise\",\n\t\"mediumvioletred\",\n\t\"midnightblue\",\n\t\"mintcream\",\n\t\"mistyrose\",\n\t\"moccasin\",\n\t\"navajowhite\",\n\t\"navy\",\n\t\"oldlace\",\n\t\"olive\",\n\t\"olivedrab\",\n\t\"orange\",\n\t\"orangered\",\n\t\"orchid\",\n\t\"palegoldenrod\",\n\t\"palegreen\",\n\t\"paleturquoise\",\n\t\"palevioletred\",\n\t\"papayawhip\",\n\t\"peachpuff\",\n\t\"peru\",\n\t\"pink\",\n\t\"plum\",\n\t\"powderblue\",\n\t\"purple\",\n\t\"rebeccapurple\",\n\t\"red\",\n\t\"rosybrown\",\n\t\"royalblue\",\n\t\"saddlebrown\",\n\t\"salmon\",\n\t\"sandybrown\",\n\t\"seagreen\",\n\t\"seashell\",\n\t\"sienna\",\n\t\"silver\",\n\t\"skyblue\",\n\t\"slateblue\",\n\t\"slategray\",\n\t\"slategrey\",\n\t\"snow\",\n\t\"springgreen\",\n\t\"steelblue\",\n\t\"tan\",\n\t\"teal\",\n\t\"thistle\",\n\t\"tomato\",\n\t\"turquoise\",\n\t\"violet\",\n\t\"wheat\",\n\t\"white\",\n\t\"whitesmoke\",\n\t\"yellow\",\n\t\"yellowgreen\"\n];\nconst CSS_COLOR_LOOKUP = {\n\taliceblue: \"rgb(240,248,255)\",\n\tantiquewhite: \"rgb(250,235,215)\",\n\taqua: \"rgb(0,255,255)\",\n\taquamarine: \"rgb(127,255,212)\",\n\tazure: \"rgb(240,255,255)\",\n\tbeige: \"rgb(245,245,220)\",\n\tbisque: \"rgb(255,228,196)\",\n\tblack: \"rgb(0,0,0)\",\n\tblanchedalmond: \"rgb(255,235,205)\",\n\tblue: \"rgb(0,0,255)\",\n\tblueviolet: \"rgb(138,43,226)\",\n\tbrown: \"rgb(165,42,42)\",\n\tburlywood: \"rgb(222,184,135)\",\n\tcadetblue: \"rgb(95,158,160)\",\n\tchartreuse: \"rgb(127,255,0)\",\n\tchocolate: \"rgb(210,105,30)\",\n\tcoral: \"rgb(255,127,80)\",\n\tcornflowerblue: \"rgb(100,149,237)\",\n\tcornsilk: \"rgb(255,248,220)\",\n\tcrimson: \"rgb(220,20,60)\",\n\tcyan: \"rgb(0,255,255)\",\n\tdarkblue: \"rgb(0,0,139)\",\n\tdarkcyan: \"rgb(0,139,139)\",\n\tdarkgoldenrod: \"rgb(184,134,11)\",\n\tdarkgray: \"rgb(169,169,169)\",\n\tdarkgreen: \"rgb(0,100,0)\",\n\tdarkgrey: \"rgb(169,169,169)\",\n\tdarkkhaki: \"rgb(189,183,107)\",\n\tdarkmagenta: \"rgb(139,0,139)\",\n\tdarkolivegreen: \"rgb(85,107,47)\",\n\tdarkorange: \"rgb(255,140,0)\",\n\tdarkorchid: \"rgb(153,50,204)\",\n\tdarkred: \"rgb(139,0,0)\",\n\tdarksalmon: \"rgb(233,150,122)\",\n\tdarkseagreen: \"rgb(143,188,143)\",\n\tdarkslateblue: \"rgb(72,61,139)\",\n\tdarkslategray: \"rgb(47,79,79)\",\n\tdarkslategrey: \"rgb(47,79,79)\",\n\tdarkturquoise: \"rgb(0,206,209)\",\n\tdarkviolet: \"rgb(148,0,211)\",\n\tdeeppink: \"rgb(255,20,147)\",\n\tdeepskyblue: \"rgb(0,191,255)\",\n\tdimgray: \"rgb(105,105,105)\",\n\tdimgrey: \"rgb(105,105,105)\",\n\tdodgerblue: \"rgb(30,144,255)\",\n\tfirebrick: \"rgb(178,34,34)\",\n\tfloralwhite: \"rgb(255,250,240)\",\n\tforestgreen: \"rgb(34,139,34)\",\n\tfuchsia: \"rgb(255,0,255)\",\n\tgainsboro: \"rgb(220,220,220)\",\n\tghostwhite: \"rgb(248,248,255)\",\n\tgold: \"rgb(255,215,0)\",\n\tgoldenrod: \"rgb(218,165,32)\",\n\tgray: \"rgb(128,128,128)\",\n\tgreen: \"rgb(0,128,0)\",\n\tgreenyellow: \"rgb(173,255,47)\",\n\tgrey: \"rgb(128,128,128)\",\n\thoneydew: \"rgb(240,255,240)\",\n\thotpink: \"rgb(255,105,180)\",\n\tindianred: \"rgb(205,92,92)\",\n\tindigo: \"rgb(75,0,130)\",\n\tivory: \"rgb(255,255,240)\",\n\tkhaki: \"rgb(240,230,140)\",\n\tlavender: \"rgb(230,230,250)\",\n\tlavenderblush: \"rgb(255,240,245)\",\n\tlawngreen: \"rgb(124,252,0)\",\n\tlemonchiffon: \"rgb(255,250,205)\",\n\tlightblue: \"rgb(173,216,230)\",\n\tlightcoral: \"rgb(240,128,128)\",\n\tlightcyan: \"rgb(224,255,255)\",\n\tlightgoldenrodyellow: \"rgb(250,250,210)\",\n\tlightgray: \"rgb(211,211,211)\",\n\tlightgreen: \"rgb(144,238,144)\",\n\tlightgrey: \"rgb(211,211,211)\",\n\tlightpink: \"rgb(255,182,193)\",\n\tlightsalmon: \"rgb(255,160,122)\",\n\tlightseagreen: \"rgb(32,178,170)\",\n\tlightskyblue: \"rgb(135,206,250)\",\n\tlightslategray: \"rgb(119,136,153)\",\n\tlightslategrey: \"rgb(119,136,153)\",\n\tlightsteelblue: \"rgb(176,196,222)\",\n\tlightyellow: \"rgb(255,255,224)\",\n\tlime: \"rgb(0,255,0)\",\n\tlimegreen: \"rgb(50,205,50)\",\n\tlinen: \"rgb(250,240,230)\",\n\tmagenta: \"rgb(255,0,255)\",\n\tmaroon: \"rgb(128,0,0)\",\n\tmediumaquamarine: \"rgb(102,205,170)\",\n\tmediumblue: \"rgb(0,0,205)\",\n\tmediumorchid: \"rgb(186,85,211)\",\n\tmediumpurple: \"rgb(147,112,219)\",\n\tmediumseagreen: \"rgb(60,179,113)\",\n\tmediumslateblue: \"rgb(123,104,238)\",\n\tmediumspringgreen: \"rgb(0,250,154)\",\n\tmediumturquoise: \"rgb(72,209,204)\",\n\tmediumvioletred: \"rgb(199,21,133)\",\n\tmidnightblue: \"rgb(25,25,112)\",\n\tmintcream: \"rgb(245,255,250)\",\n\tmistyrose: \"rgb(255,228,225)\",\n\tmoccasin: \"rgb(255,228,181)\",\n\tnavajowhite: \"rgb(255,222,173)\",\n\tnavy: \"rgb(0,0,128)\",\n\toldlace: \"rgb(253,245,230)\",\n\tolive: \"rgb(128,128,0)\",\n\tolivedrab: \"rgb(107,142,35)\",\n\torange: \"rgb(255,165,0)\",\n\torangered: \"rgb(255,69,0)\",\n\torchid: \"rgb(218,112,214)\",\n\tpalegoldenrod: \"rgb(238,232,170)\",\n\tpalegreen: \"rgb(152,251,152)\",\n\tpaleturquoise: \"rgb(175,238,238)\",\n\tpalevioletred: \"rgb(219,112,147)\",\n\tpapayawhip: \"rgb(255,239,213)\",\n\tpeachpuff: \"rgb(255,218,185)\",\n\tperu: \"rgb(205,133,63)\",\n\tpink: \"rgb(255,192,203)\",\n\tplum: \"rgb(221,160,221)\",\n\tpowderblue: \"rgb(176,224,230)\",\n\tpurple: \"rgb(128,0,128)\",\n\trebeccapurple: \"rgb(102,51,153)\",\n\tred: \"rgb(255,0,0)\",\n\trosybrown: \"rgb(188,143,143)\",\n\troyalblue: \"rgb(65,105,225)\",\n\tsaddlebrown: \"rgb(139,69,19)\",\n\tsalmon: \"rgb(250,128,114)\",\n\tsandybrown: \"rgb(244,164,96)\",\n\tseagreen: \"rgb(46,139,87)\",\n\tseashell: \"rgb(255,245,238)\",\n\tsienna: \"rgb(160,82,45)\",\n\tsilver: \"rgb(192,192,192)\",\n\tskyblue: \"rgb(135,206,235)\",\n\tslateblue: \"rgb(106,90,205)\",\n\tslategray: \"rgb(112,128,144)\",\n\tslategrey: \"rgb(112,128,144)\",\n\tsnow: \"rgb(255,250,250)\",\n\tspringgreen: \"rgb(0,255,127)\",\n\tsteelblue: \"rgb(70,130,180)\",\n\ttan: \"rgb(210,180,140)\",\n\tteal: \"rgb(0,128,128)\",\n\tthistle: \"rgb(216,191,216)\",\n\ttomato: \"rgb(255,99,71)\",\n\tturquoise: \"rgb(64,224,208)\",\n\tviolet: \"rgb(238,130,238)\",\n\twheat: \"rgb(245,222,179)\",\n\twhite: \"rgb(255,255,255)\",\n\twhitesmoke: \"rgb(245,245,245)\",\n\tyellow: \"rgb(255,255,0)\",\n\tyellowgreen: \"rgb(154,205,50)\"\n};\n\n//#endregion\n//#region src/Comma.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant$4(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n/**\n* **COMMA**\n*\n* A constant used for serializing a comma in cases\n* where a comma has special meaning (for instance\n* CSV data where a raw comma is considered a\n* separator)\n*/\nconst COMMA = createConstant$4(\"comma\");\n\n//#endregion\n//#region src/CommonObjProps.ts\nconst COMMON_OBJ_PROPS = [\n\t\"id\",\n\t\"type\",\n\t\"kind\",\n\t\"_type\",\n\t\"_kind\",\n\t\"key\",\n\t\"value\",\n\t\"name\"\n];\n\n//#endregion\n//#region src/Comparisons.ts\nconst COMPARISON_OPERATIONS = [\n\t\"extends\",\n\t\"startsWith\",\n\t\"endsWith\",\n\t\"endsWithNumber\",\n\t\"startsWithNumber\",\n\t\"onlyNumbers\",\n\t\"alphaNumeric\",\n\t\"onlyLetters\",\n\t\"contains\",\n\t\"containsSome\",\n\t\"containsAll\",\n\t\"greaterThan\",\n\t\"greaterThanOrEqual\",\n\t\"lessThan\",\n\t\"lessThanOrEqual\",\n\t\"objectKeyGreaterThan\",\n\t\"objectKeyGreaterThanOrEqual\",\n\t\"objectKeyLessThan\",\n\t\"objectKeyLessThanOrEqual\",\n\t\"objectKeyEquals\",\n\t\"objectKeyExtends\",\n\t\"betweenInclusively\",\n\t\"betweenExclusively\",\n\t\"equals\",\n\t\"equalsSome\",\n\t\"errors\",\n\t\"errorsOfType\",\n\t\"before\",\n\t\"after\",\n\t\"sameDay\",\n\t\"sameMonth\",\n\t\"sameMonthYear\",\n\t\"sameYear\",\n\t\"truthy\",\n\t\"falsy\",\n\t\"true\",\n\t\"false\",\n\t\"returnEquals\",\n\t\"returnExtends\",\n\t\"isTemplateLiteral\",\n\t\"hasLength\"\n];\n\n//#endregion\n//#region src/Consonants.ts\nconst CONSONANTS = [\n\t\"b\",\n\t\"c\",\n\t\"d\",\n\t\"f\",\n\t\"g\",\n\t\"h\",\n\t\"j\",\n\t\"k\",\n\t\"l\",\n\t\"m\",\n\t\"n\",\n\t\"p\",\n\t\"q\",\n\t\"r\",\n\t\"s\",\n\t\"t\",\n\t\"v\",\n\t\"w\",\n\t\"x\",\n\t\"z\",\n\t\"y\"\n];\n\n//#endregion\n//#region src/DateTime.ts\n/**\n* **MONTH_NAME**\n*\n* Full month names.\n*/\nconst MONTH_NAME = [\n\t\"January\",\n\t\"February\",\n\t\"March\",\n\t\"April\",\n\t\"May\",\n\t\"June\",\n\t\"July\",\n\t\"August\",\n\t\"September\",\n\t\"October\",\n\t\"November\",\n\t\"December\"\n];\n/**\n* **MONTH_ABBR**\n*\n* Abbreviated month names.\n*/\nconst MONTH_ABBR = [\n\t\"Jan\",\n\t\"Feb\",\n\t\"Mar\",\n\t\"Apr\",\n\t\"May\",\n\t\"Jun\",\n\t\"Jul\",\n\t\"Aug\",\n\t\"Sep\",\n\t\"Oct\",\n\t\"Nov\",\n\t\"Dec\"\n];\nconst MONTH_NAME_LOOKUP = {\n\t\"January\": {\n\t\tabbrev: \"Jan\",\n\t\tnum: 1,\n\t\ttwoDigitStr: \"01\"\n\t},\n\t\"February\": {\n\t\tabbrev: \"Feb\",\n\t\tnum: 2,\n\t\ttwoDigitStr: \"02\"\n\t},\n\t\"March\": {\n\t\tabbrev: \"Mar\",\n\t\tnum: 3,\n\t\ttwoDigitStr: \"03\"\n\t},\n\t\"April\": {\n\t\tabbrev: \"Apr\",\n\t\tnum: 4,\n\t\ttwoDigitStr: \"04\"\n\t},\n\t\"May\": {\n\t\tabbrev: \"May\",\n\t\tnum: 5,\n\t\ttwoDigitStr: \"05\"\n\t},\n\t\"June\": {\n\t\tabbrev: \"Jun\",\n\t\tnum: 6,\n\t\ttwoDigitStr: \"06\"\n\t},\n\t\"July\": {\n\t\tabbrev: \"Jul\",\n\t\tnum: 7,\n\t\ttwoDigitStr: \"07\"\n\t},\n\t\"August\": {\n\t\tabbrev: \"Aug\",\n\t\tnum: 8,\n\t\ttwoDigitStr: \"08\"\n\t},\n\t\"September\": {\n\t\tabbrev: \"Sep\",\n\t\tnum: 9,\n\t\ttwoDigitStr: \"09\"\n\t},\n\t\"October\": {\n\t\tabbrev: \"Oct\",\n\t\tnum: 10,\n\t\ttwoDigitStr: \"10\"\n\t},\n\t\"November\": {\n\t\tabbrev: \"Nov\",\n\t\tnum: 11,\n\t\ttwoDigitStr: \"11\"\n\t},\n\t\"December\": {\n\t\tabbrev: \"Dec\",\n\t\tnum: 12,\n\t\ttwoDigitStr: \"12\"\n\t}\n};\nconst MONTH_ABBREV_LOOKUP = {\n\t\"Jan\": {\n\t\tname: \"January\",\n\t\tnum: 1,\n\t\ttwoDigitStr: \"01\"\n\t},\n\t\"Feb\": {\n\t\tname: \"February\",\n\t\tnum: 2,\n\t\ttwoDigitStr: \"02\"\n\t},\n\t\"Mar\": {\n\t\tname: \"March\",\n\t\tnum: 3,\n\t\ttwoDigitStr: \"03\"\n\t},\n\t\"Apr\": {\n\t\tname: \"April\",\n\t\tnum: 4,\n\t\ttwoDigitStr: \"04\"\n\t},\n\t\"May\": {\n\t\tname: \"May\",\n\t\tnum: 5,\n\t\ttwoDigitStr: \"05\"\n\t},\n\t\"Jun\": {\n\t\tname: \"June\",\n\t\tnum: 6,\n\t\ttwoDigitStr: \"06\"\n\t},\n\t\"Jul\": {\n\t\tname: \"July\",\n\t\tnum: 7,\n\t\ttwoDigitStr: \"07\"\n\t},\n\t\"Aug\": {\n\t\tname: \"August\",\n\t\tnum: 8,\n\t\ttwoDigitStr: \"08\"\n\t},\n\t\"Sep\": {\n\t\tname: \"September\",\n\t\tnum: 9,\n\t\ttwoDigitStr: \"09\"\n\t},\n\t\"Oct\": {\n\t\tname: \"October\",\n\t\tnum: 10,\n\t\ttwoDigitStr: \"10\"\n\t},\n\t\"Nov\": {\n\t\tname: \"November\",\n\t\tnum: 11,\n\t\ttwoDigitStr: \"11\"\n\t},\n\t\"Dec\": {\n\t\tname: \"December\",\n\t\tnum: 12,\n\t\ttwoDigitStr: \"12\"\n\t}\n};\n/** the seasons in a year */\nconst SEASONS = [\n\t\"Summer\",\n\t\"Spring\",\n\t\"Fall\",\n\t\"Winter\"\n];\n/**\n* Maps each season to the months which represent that season (by\n* hemisphere).\n*/\nconst SEASON_TO_MONTH_LOOKUP = {\n\tWinter: {\n\t\tnorthern: [\n\t\t\t\"Dec\",\n\t\t\t\"Jan\",\n\t\t\t\"Feb\"\n\t\t],\n\t\tsouthern: [\n\t\t\t\"Jun\",\n\t\t\t\"Jul\",\n\t\t\t\"Aug\"\n\t\t]\n\t},\n\tSpring: {\n\t\tnorthern: [\n\t\t\t\"Mar\",\n\t\t\t\"Apr\",\n\t\t\t\"May\"\n\t\t],\n\t\tsouthern: [\n\t\t\t\"Sep\",\n\t\t\t\"Oct\",\n\t\t\t\"Nom\"\n\t\t]\n\t},\n\tSummer: {\n\t\tnorthern: [\n\t\t\t\"Jun\",\n\t\t\t\"Jul\",\n\t\t\t\"Aug\"\n\t\t],\n\t\tsouthern: [\n\t\t\t\"Dec\",\n\t\t\t\"Jan\",\n\t\t\t\"Feb\"\n\t\t]\n\t},\n\tFall: {\n\t\tnorthern: [\n\t\t\t\"Sep\",\n\t\t\t\"Oct\",\n\t\t\t\"Nov\"\n\t\t],\n\t\tsouthern: [\n\t\t\t\"Mar\",\n\t\t\t\"Apr\",\n\t\t\t\"May\"\n\t\t]\n\t}\n};\nconst MONTH_TO_SEASON_LOOKUP = {\n\tnorthern: {\n\t\t\"Jan\": \"Winter\",\n\t\t\"Feb\": \"Winter\",\n\t\t\"Mar\": \"Spring\",\n\t\t\"Apr\": \"Spring\",\n\t\t\"May\": \"Spring\",\n\t\t\"Jun\": \"Summer\",\n\t\t\"Jul\": \"Summer\",\n\t\t\"Aug\": \"Summer\",\n\t\t\"Sep\": \"Fall\",\n\t\t\"Oct\": \"Fall\",\n\t\t\"Nov\": \"Fall\",\n\t\t\"Dec\": \"Winter\"\n\t},\n\tsouthern: {\n\t\t\"Jan\": \"Summer\",\n\t\t\"Feb\": \"Summer\",\n\t\t\"Mar\": \"Fall\",\n\t\t\"Apr\": \"Fall\",\n\t\t\"May\": \"Fall\",\n\t\t\"Jun\": \"Summer\",\n\t\t\"Jul\": \"Summer\",\n\t\t\"Aug\": \"Summer\",\n\t\t\"Sep\": \"Spring\",\n\t\t\"Oct\": \"Spring\",\n\t\t\"Nov\": \"Spring\",\n\t\t\"Dec\": \"Summer\"\n\t}\n};\nconst WEEK_DAY_ABBREV = [\n\t\"Mon\",\n\t\"Tue\",\n\t\"Wed\",\n\t\"Thu\",\n\t\"Fri\"\n];\nconst WEEK_DAY = [\n\t\"Monday\",\n\t\"Tuesday\",\n\t\"Wednesday\",\n\t\"Thursday\",\n\t\"Friday\"\n];\nconst WEEKEND_DAY_ABBREV = [\"Sat\", \"Sun\"];\nconst WEEKEND_DAY = [\"Saturday\", \"Sunday\"];\nconst DAYS_OF_WEEK__Sun = [\n\t\"Sun\",\n\t\"Mon\",\n\t\"Tue\",\n\t\"Wed\",\n\t\"Thu\",\n\t\"Fri\",\n\t\"Sat\"\n];\nconst DAYS_OF_WEEK__Mon = [\n\t\"Mon\",\n\t\"Tue\",\n\t\"Wed\",\n\t\"Thu\",\n\t\"Fri\",\n\t\"Sat\",\n\t\"Sun\"\n];\nconst DATE_TYPE = [\n\t\"datetime\",\n\t\"date\",\n\t\"year-independent\",\n\t\"year-month\",\n\t\"year\"\n];\n/**\n* months with 30 days\n*/\nconst ISO_DATE_30 = [\n\t\"04\",\n\t\"06\",\n\t\"09\",\n\t\"11\"\n];\n/**\n* months with 31 days\n*/\nconst ISO_DATE_31 = [\n\t\"01\",\n\t\"03\",\n\t\"05\",\n\t\"07\",\n\t\"08\",\n\t\"10\",\n\t\"12\"\n];\n\n//#endregion\n//#region src/DoubleLeap_Exotic.ts\n/**\n* Double Leap Years for 1st Millennium\n*/\nconst DOUBLE_LEAP_M1 = [\n\t8,\n\t16,\n\t24,\n\t32,\n\t40,\n\t48,\n\t76,\n\t84,\n\t92,\n\t108,\n\t116,\n\t124,\n\t152,\n\t160,\n\t168,\n\t176,\n\t184,\n\t192,\n\t228,\n\t236,\n\t244,\n\t252,\n\t260,\n\t268,\n\t276,\n\t304,\n\t312,\n\t320,\n\t328,\n\t336,\n\t344,\n\t352,\n\t380,\n\t388,\n\t396,\n\t404,\n\t412,\n\t420,\n\t428,\n\t456,\n\t464,\n\t472,\n\t480,\n\t488,\n\t496,\n\t504,\n\t532,\n\t540,\n\t548,\n\t556,\n\t564,\n\t572,\n\t580,\n\t608,\n\t616,\n\t624,\n\t632,\n\t640,\n\t648,\n\t656,\n\t684,\n\t692,\n\t708,\n\t716,\n\t724,\n\t732,\n\t760,\n\t768,\n\t776,\n\t784,\n\t792,\n\t800,\n\t808,\n\t836,\n\t844,\n\t852,\n\t860,\n\t868,\n\t876,\n\t884,\n\t912,\n\t920,\n\t928,\n\t936,\n\t944,\n\t952,\n\t960,\n\t988,\n\t996\n];\n/**\n* Double Leap Years for 4th Millennium\n*/\nconst DOUBLE_LEAP_M4 = [\n\t3004,\n\t3012,\n\t3020,\n\t3028,\n\t3036,\n\t3044,\n\t3052,\n\t3080,\n\t3088,\n\t3096,\n\t3104,\n\t3112,\n\t3120,\n\t3128,\n\t3156,\n\t3164,\n\t3172,\n\t3180,\n\t3188,\n\t3196,\n\t3204,\n\t3232,\n\t3240,\n\t3248,\n\t3256,\n\t3264,\n\t3272,\n\t3280,\n\t3308,\n\t3316,\n\t3324,\n\t3332,\n\t3340,\n\t3348,\n\t3356,\n\t3384,\n\t3392,\n\t3400,\n\t3408,\n\t3416,\n\t3424,\n\t3432,\n\t3460,\n\t3468,\n\t3476,\n\t3484,\n\t3492,\n\t3500,\n\t3508,\n\t3516,\n\t3524,\n\t3532,\n\t3560,\n\t3568,\n\t3576,\n\t3584,\n\t3592,\n\t3600,\n\t3608,\n\t3616,\n\t3624,\n\t3632,\n\t3640,\n\t3648,\n\t3676,\n\t3684,\n\t3692,\n\t3700,\n\t3728,\n\t3736,\n\t3744,\n\t3752,\n\t3760,\n\t3768,\n\t3796,\n\t3804,\n\t3812,\n\t3820,\n\t3828,\n\t3836,\n\t3864,\n\t3872,\n\t3880,\n\t3888,\n\t3896,\n\t3904,\n\t3912,\n\t3920,\n\t3928,\n\t3936,\n\t3964,\n\t3972,\n\t3980,\n\t3988\n];\n/**\n* Double Leap Years for 1st Millennium\n*/\nconst DOUBLE_LEAP_M5 = [\n\t4004,\n\t4012,\n\t4020,\n\t4028,\n\t4036,\n\t4044,\n\t4052,\n\t4060,\n\t4068,\n\t4076,\n\t4104,\n\t4112,\n\t4120,\n\t4128,\n\t4136,\n\t4144,\n\t4152,\n\t4180,\n\t4188,\n\t4196,\n\t4204,\n\t4212,\n\t4220,\n\t4228,\n\t4256,\n\t4264,\n\t4272,\n\t4280,\n\t4288,\n\t4296,\n\t4304,\n\t4332,\n\t4340,\n\t4348,\n\t4356,\n\t4364,\n\t4372,\n\t4380,\n\t4408,\n\t4416,\n\t4424,\n\t4432,\n\t4440,\n\t4448,\n\t4456,\n\t4484,\n\t4492,\n\t4500,\n\t4508,\n\t4516,\n\t4524,\n\t4532,\n\t4560,\n\t4568,\n\t4576,\n\t4584,\n\t4592,\n\t4600,\n\t4608,\n\t4636,\n\t4644,\n\t4652,\n\t4660,\n\t4668,\n\t4676,\n\t4684,\n\t4712,\n\t4720,\n\t4728,\n\t4736,\n\t4744,\n\t4752,\n\t4760,\n\t4788,\n\t4796,\n\t4804,\n\t4812,\n\t4820,\n\t4828,\n\t4836,\n\t4864,\n\t4872,\n\t4880,\n\t4888,\n\t4896,\n\t4904,\n\t4912,\n\t4940,\n\t4948,\n\t4956,\n\t4964,\n\t4972,\n\t4980,\n\t4988\n];\n\n//#endregion\n//#region src/DoubleLeap_Typical.ts\n/**\n* Double Leap Years for 2nd Millennium (1000-1999)\n*/\nconst DOUBLE_LEAP_M2 = [\n\t1004,\n\t1012,\n\t1020,\n\t1028,\n\t1036,\n\t1064,\n\t1072,\n\t1080,\n\t1088,\n\t1096,\n\t1104,\n\t1112,\n\t1140,\n\t1148,\n\t1156,\n\t1164,\n\t1172,\n\t1180,\n\t1188,\n\t1216,\n\t1224,\n\t1232,\n\t1240,\n\t1248,\n\t1256,\n\t1264,\n\t1292,\n\t1308,\n\t1316,\n\t1324,\n\t1332,\n\t1340,\n\t1368,\n\t1376,\n\t1384,\n\t1392,\n\t1408,\n\t1416,\n\t1444,\n\t1452,\n\t1460,\n\t1468,\n\t1476,\n\t1484,\n\t1492,\n\t1520,\n\t1528,\n\t1536,\n\t1544,\n\t1552,\n\t1560,\n\t1568,\n\t1596,\n\t1604,\n\t1612,\n\t1620,\n\t1628,\n\t1636,\n\t1644,\n\t1672,\n\t1680,\n\t1688,\n\t1696,\n\t1704,\n\t1712,\n\t1720,\n\t1748,\n\t1756,\n\t1764,\n\t1772,\n\t1780,\n\t1788,\n\t1796,\n\t1824,\n\t1832,\n\t1840,\n\t1848,\n\t1856,\n\t1864,\n\t1872,\n\t1908,\n\t1916,\n\t1924,\n\t1932,\n\t1940,\n\t1948,\n\t1976,\n\t1984,\n\t1992,\n\t2e3\n];\n/**\n* Double Leap Years for 3rd Millennium (2000-2999)\n*/\nconst DOUBLE_LEAP_M3 = [\n\t2008,\n\t2016,\n\t2024,\n\t2052,\n\t2060,\n\t2068,\n\t2076,\n\t2084,\n\t2092,\n\t2128,\n\t2136,\n\t2144,\n\t2152,\n\t2160,\n\t2168,\n\t2176,\n\t2204,\n\t2212,\n\t2220,\n\t2228,\n\t2236,\n\t2244,\n\t2252,\n\t2280,\n\t2288,\n\t2296,\n\t2304,\n\t2312,\n\t2320,\n\t2328,\n\t2356,\n\t2364,\n\t2372,\n\t2380,\n\t2388,\n\t2396,\n\t2404,\n\t2432,\n\t2440,\n\t2448,\n\t2456,\n\t2464,\n\t2472,\n\t2480,\n\t2508,\n\t2516,\n\t2524,\n\t2532,\n\t2540,\n\t2548,\n\t2556,\n\t2564,\n\t2592,\n\t2600,\n\t2608,\n\t2616,\n\t2624,\n\t2632,\n\t2640,\n\t2668,\n\t2676,\n\t2684,\n\t2692,\n\t2700,\n\t2708,\n\t2716,\n\t2744,\n\t2752,\n\t2760,\n\t2768,\n\t2776,\n\t2784,\n\t2792,\n\t2820,\n\t2828,\n\t2836,\n\t2844,\n\t2852,\n\t2860,\n\t2888,\n\t2896,\n\t2904,\n\t2912,\n\t2920,\n\t2928,\n\t2936,\n\t2964,\n\t2972,\n\t2980,\n\t2988,\n\t2996\n];\n/**\n* Double Leap Years for modern times (1400-2300)\n*/\nconst DOUBLE_LEAP_MODERN = [\n\t1408,\n\t1416,\n\t1444,\n\t1452,\n\t1460,\n\t1468,\n\t1476,\n\t1484,\n\t1492,\n\t1520,\n\t1528,\n\t1536,\n\t1544,\n\t1552,\n\t1560,\n\t1568,\n\t1596,\n\t1604,\n\t1612,\n\t1620,\n\t1628,\n\t1636,\n\t1644,\n\t1672,\n\t1680,\n\t1688,\n\t1696,\n\t1704,\n\t1712,\n\t1720,\n\t1748,\n\t1756,\n\t1764,\n\t1772,\n\t1780,\n\t1788,\n\t1796,\n\t1824,\n\t1832,\n\t1840,\n\t1848,\n\t1856,\n\t1864,\n\t1872,\n\t1908,\n\t1916,\n\t1924,\n\t1932,\n\t1940,\n\t1948,\n\t1976,\n\t1984,\n\t1992,\n\t2e3,\n\t2008,\n\t2016,\n\t2024,\n\t2052,\n\t2060,\n\t2068,\n\t2076,\n\t2084,\n\t2092,\n\t2128,\n\t2136,\n\t2144,\n\t2152,\n\t2160,\n\t2168,\n\t2176,\n\t2204,\n\t2212,\n\t2220,\n\t2228,\n\t2236,\n\t2244,\n\t2252,\n\t2280,\n\t2288,\n\t2296\n];\n\n//#endregion\n//#region src/Editor.ts\nconst EDITORS = [\n\t{\n\t\tname: \"Atom\",\n\t\texec: \"atom\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Brackets\",\n\t\texec: \"brackets\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Eclipse\",\n\t\texec: \"eclipse\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Emacs\",\n\t\texec: \"emacs\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"gedit\",\n\t\texec: \"gedit\",\n\t\tconsole: false,\n\t\tos: [\"linux\"]\n\t},\n\t{\n\t\tname: \"IntelliJ IDEA\",\n\t\texec: \"indea\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Kate\",\n\t\texec: \"kate\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Nano\",\n\t\texec: \"nano\",\n\t\tconsole: true,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Neovim\",\n\t\texec: \"neovim\",\n\t\tconsole: true,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Vim\",\n\t\texec: \"vim\",\n\t\tconsole: true,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Vi\",\n\t\texec: \"vi\",\n\t\tconsole: true,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Notepad\",\n\t\texec: \"notepad\",\n\t\tconsole: false,\n\t\tos: [\"win\"]\n\t},\n\t{\n\t\tname: \"Notepad++\",\n\t\texec: \"notepad++\",\n\t\tconsole: false,\n\t\tos: [\"win\"]\n\t},\n\t{\n\t\tname: \"PyCharm\",\n\t\texec: \"pycharm\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"TextEdit\",\n\t\texec: \"open -e\",\n\t\tconsole: false,\n\t\tos: [\"mac\"]\n\t},\n\t{\n\t\tname: \"Sublime Text\",\n\t\texec: \"subl\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Textmate\",\n\t\texec: \"mate\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t},\n\t{\n\t\tname: \"Zed\",\n\t\texec: \"zed\",\n\t\tconsole: false,\n\t\tos: [\n\t\t\t\"win\",\n\t\t\t\"mac\",\n\t\t\t\"linux\"\n\t\t]\n\t}\n];\n\n//#endregion\n//#region src/FalsyValues.ts\n/**\n* **FALSY_VALUES**\n*\n* A tuple which contains all values which are considered _falsy_ in\n* Javascript.\n*/\nconst FALSY_VALUES = [\n\tfalse,\n\t0,\n\t-0,\n\t\"\",\n\tnull,\n\tvoid 0,\n\tNaN\n];\n\n//#endregion\n//#region src/Functional.ts\n/**\n* **RESULT**\n*\n* Concrete values for `Ok` and `Err` states.\n*/\nconst RESULT = {\n\tOk: \"ok\",\n\tErr: \"err\"\n};\n/**\n* **OPTION**\n*\n* Concrete values for `Some` and `None` states.\n*/\nconst OPTION = {\n\tSome: 1,\n\tNone: 0\n};\n\n//#endregion\n//#region src/Geo.ts\nconst HEMISPHERE = [\"northern\", \"southern\"];\n/**\n* The continents on planet earth\n*/\nconst CONTINENTS = [\n\t\"Africa\",\n\t\"Australia\",\n\t\"Antarctica\",\n\t\"Asia\",\n\t\"Europe\",\n\t\"North America\",\n\t\"South America\"\n];\n/**\n* The 50 US states: `[name, abbrev, true]`\n*/\nconst US_STATE_LOOKUP_STRICT = [\n\t{\n\t\tname: \"Alabama\",\n\t\tabbrev: \"AL\"\n\t},\n\t{\n\t\tname: \"Alaska\",\n\t\tabbrev: \"AK\"\n\t},\n\t{\n\t\tname: \"Arizona\",\n\t\tabbrev: \"AZ\"\n\t},\n\t{\n\t\tname: \"Arkansas\",\n\t\tabbrev: \"AR\"\n\t},\n\t{\n\t\tname: \"California\",\n\t\tabbrev: \"CA\"\n\t},\n\t{\n\t\tname: \"Colorado\",\n\t\tabbrev: \"CO\"\n\t},\n\t{\n\t\tname: \"Connecticut\",\n\t\tabbrev: \"CT\"\n\t},\n\t{\n\t\tname: \"Delaware\",\n\t\tabbrev: \"DE\"\n\t},\n\t{\n\t\tname: \"Florida\",\n\t\tabbrev: \"FL\"\n\t},\n\t{\n\t\tname: \"Georgia\",\n\t\tabbrev: \"GA\"\n\t},\n\t{\n\t\tname: \"Hawaii\",\n\t\tabbrev: \"HI\"\n\t},\n\t{\n\t\tname: \"Idaho\",\n\t\tabbrev: \"ID\"\n\t},\n\t{\n\t\tname: \"Illinois\",\n\t\tabbrev: \"IL\"\n\t},\n\t{\n\t\tname: \"Indiana\",\n\t\tabbrev: \"IN\"\n\t},\n\t{\n\t\tname: \"Iowa\",\n\t\tabbrev: \"IA\"\n\t},\n\t{\n\t\tname: \"Kansas\",\n\t\tabbrev: \"KS\"\n\t},\n\t{\n\t\tname: \"Kentucky\",\n\t\tabbrev: \"KY\"\n\t},\n\t{\n\t\tname: \"Louisiana\",\n\t\tabbrev: \"LA\"\n\t},\n\t{\n\t\tname: \"Maine\",\n\t\tabbrev: \"ME\"\n\t},\n\t{\n\t\tname: \"Maryland\",\n\t\tabbrev: \"MD\"\n\t},\n\t{\n\t\tname: \"Massachusetts\",\n\t\tabbrev: \"MA\"\n\t},\n\t{\n\t\tname: \"Michigan\",\n\t\tabbrev: \"MI\"\n\t},\n\t{\n\t\tname: \"Minnesota\",\n\t\tabbrev: \"MN\"\n\t},\n\t{\n\t\tname: \"Mississippi\",\n\t\tabbrev: \"MS\"\n\t},\n\t{\n\t\tname: \"Missouri\",\n\t\tabbrev: \"MO\"\n\t},\n\t{\n\t\tname: \"Montana\",\n\t\tabbrev: \"MT\"\n\t},\n\t{\n\t\tname: \"Nebraska\",\n\t\tabbrev: \"NE\"\n\t},\n\t{\n\t\tname: \"Nevada\",\n\t\tabbrev: \"NV\"\n\t},\n\t{\n\t\tname: \"New Hampshire\",\n\t\tabbrev: \"NH\"\n\t},\n\t{\n\t\tname: \"New Jersey\",\n\t\tabbrev: \"NJ\"\n\t},\n\t{\n\t\tname: \"New Mexico\",\n\t\tabbrev: \"NM\"\n\t},\n\t{\n\t\tname: \"New York\",\n\t\tabbrev: \"NY\"\n\t},\n\t{\n\t\tname: \"North Carolina\",\n\t\tabbrev: \"NC\"\n\t},\n\t{\n\t\tname: \"North Dakota\",\n\t\tabbrev: \"ND\"\n\t},\n\t{\n\t\tname: \"Ohio\",\n\t\tabbrev: \"OH\"\n\t},\n\t{\n\t\tname: \"Oklahoma\",\n\t\tabbrev: \"OK\"\n\t},\n\t{\n\t\tname: \"Oregon\",\n\t\tabbrev: \"OR\"\n\t},\n\t{\n\t\tname: \"Pennsylvania\",\n\t\tabbrev: \"PA\"\n\t},\n\t{\n\t\tname: \"Rhode Island\",\n\t\tabbrev: \"RI\"\n\t},\n\t{\n\t\tname: \"South Carolina\",\n\t\tabbrev: \"SC\"\n\t},\n\t{\n\t\tname: \"South Dakota\",\n\t\tabbrev: \"SD\"\n\t},\n\t{\n\t\tname: \"Tennessee\",\n\t\tabbrev: \"TN\"\n\t},\n\t{\n\t\tname: \"Texas\",\n\t\tabbrev: \"TX\"\n\t},\n\t{\n\t\tname: \"Utah\",\n\t\tabbrev: \"UT\"\n\t},\n\t{\n\t\tname: \"Vermont\",\n\t\tabbrev: \"VT\"\n\t},\n\t{\n\t\tname: \"Virginia\",\n\t\tabbrev: \"VA\"\n\t},\n\t{\n\t\tname: \"Washington\",\n\t\tabbrev: \"WA\"\n\t},\n\t{\n\t\tname: \"West Virginia\",\n\t\tabbrev: \"WV\"\n\t},\n\t{\n\t\tname: \"Wisconsin\",\n\t\tabbrev: \"WI\"\n\t},\n\t{\n\t\tname: \"Wyoming\",\n\t\tabbrev: \"WY\"\n\t}\n];\n/**\n* The 9 provinces to the US which are granted State codes.\n*/\nconst US_STATE_LOOKUP_PROVINCES = [\n\t{\n\t\tname: \"Puerto Rico\",\n\t\tabbrev: \"PR\"\n\t},\n\t{\n\t\tname: \"Virgin Islands\",\n\t\tabbrev: \"VI\"\n\t},\n\t{\n\t\tname: \"Palau\",\n\t\tabbrev: \"PW\"\n\t},\n\t{\n\t\tname: \"Federated States of Micronesia\",\n\t\tabbrev: \"FM\"\n\t},\n\t{\n\t\tname: \"Northern Mariana Islands\",\n\t\tabbrev: \"MP\"\n\t},\n\t{\n\t\tname: \"District of Columbia\",\n\t\tabbrev: \"DC\"\n\t},\n\t{\n\t\tname: \"Marshall Islands\",\n\t\tabbrev: \"MH\"\n\t},\n\t{\n\t\tname: \"American Samoa\",\n\t\tabbrev: \"AS\"\n\t},\n\t{\n\t\tname: \"Guam\",\n\t\tabbrev: \"GU\"\n\t}\n];\n/**\n* All 50 states and 9 provinces which have State abbreviations.\n*\n* Data format is: `[name, abbrev, flag]` where the boolean flag\n* indicates whether the line item is one of the 50 true states.\n*/\nconst US_STATE_LOOKUP = [...US_STATE_LOOKUP_STRICT, ...US_STATE_LOOKUP_PROVINCES];\n/**\n* A lookup which provides a list of state abbreviations associated\n* with the first digit of the zip code.\n*/\nconst ZIP_TO_STATE = {\n\t0: [\n\t\t\"CT\",\n\t\t\"MA\",\n\t\t\"ME\",\n\t\t\"NH\",\n\t\t\"NJ\",\n\t\t\"NY\",\n\t\t\"PR\",\n\t\t\"RI\",\n\t\t\"VT\",\n\t\t\"VI\"\n\t],\n\t1: [\n\t\t\"DE\",\n\t\t\"NY\",\n\t\t\"PA\"\n\t],\n\t2: [\n\t\t\"DC\",\n\t\t\"MD\",\n\t\t\"NC\",\n\t\t\"SC\",\n\t\t\"VA\",\n\t\t\"WV\"\n\t],\n\t3: [\n\t\t\"AL\",\n\t\t\"FL\",\n\t\t\"GA\",\n\t\t\"MS\",\n\t\t\"TN\"\n\t],\n\t4: [\n\t\t\"IN\",\n\t\t\"KY\",\n\t\t\"MI\",\n\t\t\"OH\"\n\t],\n\t5: [\n\t\t\"IA\",\n\t\t\"MN\",\n\t\t\"MT\",\n\t\t\"ND\",\n\t\t\"SD\",\n\t\t\"WI\"\n\t],\n\t6: [\n\t\t\"IL\",\n\t\t\"KS\",\n\t\t\"MO\",\n\t\t\"NE\"\n\t],\n\t7: [\n\t\t\"AR\",\n\t\t\"LA\",\n\t\t\"OK\",\n\t\t\"TX\"\n\t],\n\t8: [\n\t\t\"AZ\",\n\t\t\"CO\",\n\t\t\"ID\",\n\t\t\"NM\",\n\t\t\"NV\",\n\t\t\"UT\",\n\t\t\"WY\"\n\t],\n\t9: [\n\t\t\"AK\",\n\t\t\"AS\",\n\t\t\"CA\",\n\t\t\"GU\",\n\t\t\"HI\",\n\t\t\"MH\",\n\t\t\"FM\",\n\t\t\"MP\",\n\t\t\"OR\",\n\t\t\"PW\",\n\t\t\"WA\"\n\t]\n};\n\n//#endregion\n//#region src/HashTable.ts\nconst HASH_TABLE_WIDE = {\n\tstring: \"318\",\n\tnumber: \"523\",\n\tboolean: \"21\",\n\tnever: \"!!!\",\n\tunknown: \"ed\",\n\tundefined: \"ce\",\n\tnull: \"cc\",\n\tsymbol: \"78\",\n\tobject: \"fe8\",\n\tarray: \"17\",\n\trecord: \"ee\",\n\tmap: \"e65\",\n\tweakMap: \"e64\",\n\tset: \"f62\",\n\tunion: \"f61\"\n};\nconst HASH_TABLE_ALPHA_LOWER = {\n\ta: \"8\",\n\tb: \"~\",\n\tc: \"^\",\n\td: \".\",\n\te: \"82\",\n\tf: \"89\",\n\tg: \",\",\n\th: \"!\",\n\ti: \"-7\",\n\tj: \"-8\",\n\tk: \"88\",\n\tl: \"8f\",\n\tm: \"8e\",\n\tn: \"6e\",\n\to: \"44\",\n\tp: \"60\",\n\tq: \"61\",\n\tr: \"71\",\n\ts: \":\",\n\tt: \"-45\",\n\tu: \"-5\",\n\tv: \"-9\",\n\tw: \"-f\",\n\tx: \"+1\",\n\ty: \";\",\n\tz: \"*1\"\n};\nconst HASH_TABLE_SPECIAL = {\n\t\"!\": \"1\",\n\t\"@\": \"8\",\n\t\"#\": \"5\",\n\t\"$\": \"4\",\n\t\"%\": \"3\",\n\t\"^\": \"2\",\n\t\"&\": \"9\",\n\t\"*\": \"7\",\n\t\"(\": \"6\",\n\t\")\": \"12\",\n\t\"{\": \"33\",\n\t\"}\": \"54\",\n\t\"[\": \"x8\",\n\t\"]\": \"y4\",\n\t\":\": \"z2\",\n\t\";\": \"e88\",\n\t\"\\\"\": \"c11\",\n\t\"'\": \"c12\",\n\t\"<\": \"p3\",\n\t\",\": \"45\",\n\t\">\": \"e9\",\n\t\".\": \"f2\",\n\t\"?\": \"ee\",\n\t\"/\": \"u9\",\n\t\"\\\\\": \"f9\",\n\t\"|\": \"q1\",\n\t\"~\": \"fe\",\n\t\"`\": \"8e\"\n};\nconst HASH_TABLE_DIGIT = {\n\t0: \"-2\",\n\t1: \"-9\",\n\t2: \"ff\",\n\t3: \"fe\",\n\t4: \"2e\",\n\t5: \"cd\",\n\t6: \"54\",\n\t7: \"27\",\n\t8: \"49\",\n\t9: \"51\"\n};\nconst HASH_TABLE_ALPHA_UPPER = {\n\tA: \"b8\",\n\tB: \"~9\",\n\tC: \"6^\",\n\tD: \".8\",\n\tE: \"5<\",\n\tF: \">7\",\n\tG: \"1,\",\n\tH: \"!7\",\n\tI: \"8#\",\n\tJ: \"@9\",\n\tK: \"1*\",\n\tL: \"4&\",\n\tM: \"+5\",\n\tN: \"j|\",\n\tO: \"-l\",\n\tP: \"q{\",\n\tQ: \"]9\",\n\tR: \"f%\",\n\tS: \":3\",\n\tT: \"?+\",\n\tU: \"}5\",\n\tV: \"'4\",\n\tW: \"1@g\",\n\tX: \"0+1\",\n\tY: \"4;\",\n\tZ: \"a*1\"\n};\nconst HASH_TABLE_CHAR = {\n\t...HASH_TABLE_ALPHA_LOWER,\n\t...HASH_TABLE_ALPHA_UPPER,\n\t...HASH_TABLE_SPECIAL\n};\nconst HASH_TABLE_OTHER = \"999\";\n\n//#endregion\n//#region src/HTML.ts\n/**\n* An array of all valid HTML tags that have both opening and closing tags.\n*/\nconst HTML_BLOCK_TAGS = [\n\t\"a\",\n\t\"abbr\",\n\t\"address\",\n\t\"article\",\n\t\"aside\",\n\t\"b\",\n\t\"bdi\",\n\t\"bdo\",\n\t\"blockquote\",\n\t\"body\",\n\t\"button\",\n\t\"canvas\",\n\t\"caption\",\n\t\"cite\",\n\t\"code\",\n\t\"colgroup\",\n\t\"data\",\n\t\"datalist\",\n\t\"dd\",\n\t\"del\",\n\t\"details\",\n\t\"dfn\",\n\t\"dialog\",\n\t\"div\",\n\t\"dl\",\n\t\"dt\",\n\t\"em\",\n\t\"fieldset\",\n\t\"figcaption\",\n\t\"figure\",\n\t\"footer\",\n\t\"form\",\n\t\"h1\",\n\t\"h2\",\n\t\"h3\",\n\t\"h4\",\n\t\"h5\",\n\t\"h6\",\n\t\"head\",\n\t\"header\",\n\t\"html\",\n\t\"i\",\n\t\"iframe\",\n\t\"ins\",\n\t\"kbd\",\n\t\"label\",\n\t\"legend\",\n\t\"li\",\n\t\"main\",\n\t\"map\",\n\t\"mark\",\n\t\"menu\",\n\t\"meter\",\n\t\"nav\",\n\t\"noscript\",\n\t\"object\",\n\t\"ol\",\n\t\"optgroup\",\n\t\"option\",\n\t\"output\",\n\t\"p\",\n\t\"picture\",\n\t\"pre\",\n\t\"progress\",\n\t\"q\",\n\t\"rp\",\n\t\"rt\",\n\t\"ruby\",\n\t\"s\",\n\t\"samp\",\n\t\"script\",\n\t\"section\",\n\t\"select\",\n\t\"small\",\n\t\"span\",\n\t\"strong\",\n\t\"style\",\n\t\"sub\",\n\t\"summary\",\n\t\"sup\",\n\t\"svg\",\n\t\"table\",\n\t\"tbody\",\n\t\"td\",\n\t\"template\",\n\t\"textarea\",\n\t\"tfoot\",\n\t\"th\",\n\t\"thead\",\n\t\"time\",\n\t\"title\",\n\t\"tr\",\n\t\"u\",\n\t\"ul\",\n\t\"var\",\n\t\"video\"\n];\n/**\n* An array of all valid HTML tags that are self-closing (do not have closing tags).\n*/\nconst HTML_ATOMIC_TAGS = [\n\t\"area\",\n\t\"base\",\n\t\"br\",\n\t\"col\",\n\t\"embed\",\n\t\"hr\",\n\t\"img\",\n\t\"input\",\n\t\"link\",\n\t\"meta\",\n\t\"param\",\n\t\"source\",\n\t\"track\",\n\t\"wbr\"\n];\n\n//#endregion\n//#region src/Http.ts\n/**\n* A constant array containing a comprehensive list of common MIME (Multipurpose Internet Mail Extensions) types.\n* This array is marked as `const` to enable TypeScript to infer literal types for each element.\n*\n* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types\n*/\nconst MIME_TYPES = [\n\t\"application/json\",\n\t\"application/xml\",\n\t\"application/javascript\",\n\t\"application/pdf\",\n\t\"application/ld+json\",\n\t\"application/octet-stream\",\n\t\"application/x-www-form-urlencoded\",\n\t\"application/vnd.api+json\",\n\t\"application/msword\",\n\t\"application/grpc\",\n\t\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n\t\"application/vnd.ms-excel\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n\t\"application/vnd.ms-powerpoint\",\n\t\"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\n\t\"text/plain\",\n\t\"text/html\",\n\t\"text/css\",\n\t\"text/csv\",\n\t\"text/javascript\",\n\t\"text/markdown\",\n\t\"image/jpeg\",\n\t\"image/png\",\n\t\"image/gif\",\n\t\"image/bmp\",\n\t\"image/webp\",\n\t\"image/svg+xml\",\n\t\"image/tiff\",\n\t\"audio/mpeg\",\n\t\"audio/ogg\",\n\t\"audio/wav\",\n\t\"audio/webm\",\n\t\"audio/flac\",\n\t\"video/mp4\",\n\t\"video/mpeg\",\n\t\"video/ogg\",\n\t\"video/webm\",\n\t\"video/quicktime\",\n\t\"multipart/form-data\",\n\t\"multipart/mixed\",\n\t\"multipart/alternative\",\n\t\"multipart/related\",\n\t\"font/woff\",\n\t\"font/woff2\",\n\t\"font/ttf\",\n\t\"font/otf\",\n\t\"application/rss+xml\",\n\t\"application/atom+xml\",\n\t\"application/x-pkcs12\",\n\t\"application/x-shockwave-flash\",\n\t\"application/x-www-form-urlencoded\",\n\t\"application/x-font-ttf\",\n\t\"application/x-font-opentype\",\n\t\"application/x-font-woff\",\n\t\"application/x-font-woff2\",\n\t\"application/vnd.rar\",\n\t\"application/zip\",\n\t\"application/x-7z-compressed\"\n];\n\n//#endregion\n//#region src/Images.ts\nconst IMAGE_FORMAT_LOOKUP = [\n\t{\n\t\text: \"jpg\",\n\t\twebFormat: true,\n\t\tother_ext: [\"jpeg\"]\n\t},\n\t{\n\t\text: \"png\",\n\t\twebFormat: true,\n\t\tother_ext: []\n\t},\n\t{\n\t\text: \"gif\",\n\t\twebFormat: true,\n\t\tother_ext: []\n\t},\n\t{\n\t\text: \"heif\",\n\t\twebFormat: true,\n\t\tother_ext: []\n\t},\n\t{\n\t\text: \"svg\",\n\t\twebFormat: true,\n\t\tother_ext: []\n\t},\n\t{\n\t\text: \"raw\",\n\t\twebFormat: false,\n\t\tother_ext: []\n\t},\n\t{\n\t\text: \"dng\",\n\t\twebFormat: false,\n\t\tother_ext: []\n\t},\n\t{\n\t\text: \"avif\",\n\t\twebFormat: true,\n\t\tother_ext: []\n\t},\n\t{\n\t\text: \"webp\",\n\t\twebFormat: true,\n\t\tother_ext: []\n\t},\n\t{\n\t\text: \"tiff\",\n\t\twebFormat: false,\n\t\tother_ext: [\"tif\"]\n\t}\n];\n\n//#endregion\n//#region src/InputTokenConstants.ts\nconst IT_ATOMIC_TOKENS = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"true\",\n\t\"false\",\n\t\"undefined\",\n\t\"unknown\",\n\t\"any\",\n\t\"null\",\n\t\"void\",\n\t\"bigint\",\n\t\"object\",\n\t\"Object\",\n\t\"function\"\n];\n/**\n* All literal token declarations from a base type\n*/\nconst IT_LITERAL_TOKENS = [\n\t`String({{string}})`,\n\t`Number({{number}})`,\n\t`Boolean({{boolean}})`\n];\nconst IT_CONTAINER_TOKENS = [\n\t`Map<{{string}},{{string}}>`,\n\t`WeakMap<{{string}},{{string}}>`,\n\t`Set<{{string}}>`,\n\t`Record<{{string}},{{string}}`,\n\t`Array<{{string}}>`,\n\t`Fn({{string}})=>{{string}}`,\n\t`Fn({{string}})=>{{string}} & {{{string}}}`,\n\t`[{{string}}]`,\n\t`{{{string}}}`\n];\n\n//#endregion\n//#region src/Interpolation.ts\n/**\n* Static text blocks which can be used to interpolate into dynamic\n* string literal sections.\n*/\nconst INTERPOLATION_BLOCKS = [\n\t\"{{string}}\",\n\t\"{{number}}\",\n\t\"{{boolean}}\"\n];\n\n//#endregion\n//#region src/ISO3166.ts\n/**\n* All country codes (name, alpha-2, country-code)\n*/\nconst ISO3166_1 = [\n\t{\n\t\tname: \"Afghanistan\",\n\t\talpha2: \"AF\",\n\t\tcountryCode: \"004\",\n\t\talpha3: \"AFG\"\n\t},\n\t{\n\t\tname: \"Albania\",\n\t\talpha2: \"AL\",\n\t\tcountryCode: \"008\",\n\t\talpha3: \"ALB\"\n\t},\n\t{\n\t\tname: \"Algeria\",\n\t\talpha2: \"DZ\",\n\t\tcountryCode: \"012\",\n\t\talpha3: \"DZA\"\n\t},\n\t{\n\t\tname: \"Andorra\",\n\t\talpha2: \"AD\",\n\t\tcountryCode: \"020\",\n\t\talpha3: \"AND\"\n\t},\n\t{\n\t\tname: \"Angola\",\n\t\talpha2: \"AO\",\n\t\tcountryCode: \"024\",\n\t\talpha3: \"AGO\"\n\t},\n\t{\n\t\tname: \"Argentina\",\n\t\talpha2: \"AR\",\n\t\tcountryCode: \"032\",\n\t\talpha3: \"ARG\"\n\t},\n\t{\n\t\tname: \"Australia\",\n\t\talpha2: \"AU\",\n\t\tcountryCode: \"036\",\n\t\talpha3: \"AUS\"\n\t},\n\t{\n\t\tname: \"Austria\",\n\t\talpha2: \"AT\",\n\t\tcountryCode: \"040\",\n\t\talpha3: \"AUT\"\n\t},\n\t{\n\t\tname: \"Azerbaijan\",\n\t\talpha2: \"AZ\",\n\t\tcountryCode: \"031\",\n\t\talpha3: \"AZE\"\n\t},\n\t{\n\t\tname: \"Bahamas\",\n\t\talpha2: \"BS\",\n\t\tcountryCode: \"044\",\n\t\talpha3: \"BHS\"\n\t},\n\t{\n\t\tname: \"Bangladesh\",\n\t\talpha2: \"BD\",\n\t\tcountryCode: \"050\",\n\t\talpha3: \"BGD\"\n\t},\n\t{\n\t\tname: \"Belgium\",\n\t\talpha2: \"BE\",\n\t\tcountryCode: \"056\",\n\t\talpha3: \"BEL\"\n\t},\n\t{\n\t\tname: \"Belize\",\n\t\talpha2: \"BZ\",\n\t\tcountryCode: \"084\",\n\t\talpha3: \"BLZ\"\n\t},\n\t{\n\t\tname: \"Benin\",\n\t\talpha2: \"BJ\",\n\t\tcountryCode: \"204\",\n\t\talpha3: \"BEN\"\n\t},\n\t{\n\t\tname: \"Bhutan\",\n\t\talpha2: \"BT\",\n\t\tcountryCode: \"064\",\n\t\talpha3: \"BTN\"\n\t},\n\t{\n\t\tname: \"Bolivia\",\n\t\talpha2: \"BO\",\n\t\tcountryCode: \"068\",\n\t\talpha3: \"BOL\"\n\t},\n\t{\n\t\tname: \"Bosnia and Herzegovina\",\n\t\talpha2: \"BA\",\n\t\tcountryCode: \"070\",\n\t\talpha3: \"BIH\"\n\t},\n\t{\n\t\tname: \"Botswana\",\n\t\talpha2: \"BW\",\n\t\tcountryCode: \"072\",\n\t\talpha3: \"BWA\"\n\t},\n\t{\n\t\tname: \"Brazil\",\n\t\talpha2: \"BR\",\n\t\tcountryCode: \"076\",\n\t\talpha3: \"BRA\"\n\t},\n\t{\n\t\tname: \"Brunei Darussalam\",\n\t\talpha2: \"BN\",\n\t\tcountryCode: \"096\",\n\t\talpha3: \"BRN\"\n\t},\n\t{\n\t\tname: \"Bulgaria\",\n\t\talpha2: \"BG\",\n\t\tcountryCode: \"100\",\n\t\talpha3: \"BGR\"\n\t},\n\t{\n\t\tname: \"Burkina Faso\",\n\t\talpha2: \"BF\",\n\t\tcountryCode: \"854\",\n\t\talpha3: \"BFA\"\n\t},\n\t{\n\t\tname: \"Burundi\",\n\t\talpha2: \"BI\",\n\t\tcountryCode: \"108\",\n\t\talpha3: \"BDI\"\n\t},\n\t{\n\t\tname: \"Cambodia\",\n\t\talpha2: \"KH\",\n\t\tcountryCode: \"116\",\n\t\talpha3: \"KHM\"\n\t},\n\t{\n\t\tname: \"Cameroon\",\n\t\talpha2: \"CM\",\n\t\tcountryCode: \"120\",\n\t\talpha3: \"CMR\"\n\t},\n\t{\n\t\tname: \"Canada\",\n\t\talpha2: \"CA\",\n\t\tcountryCode: \"124\",\n\t\talpha3: \"CAN\"\n\t},\n\t{\n\t\tname: \"Afghanistan\",\n\t\talpha2: \"AF\",\n\t\tcountryCode: \"004\",\n\t\talpha3: \"AFG\"\n\t},\n\t{\n\t\tname: \"Albania\",\n\t\talpha2: \"AL\",\n\t\tcountryCode: \"008\",\n\t\talpha3: \"ALB\"\n\t},\n\t{\n\t\tname: \"Algeria\",\n\t\talpha2: \"DZ\",\n\t\tcountryCode: \"012\",\n\t\talpha3: \"DZA\"\n\t},\n\t{\n\t\tname: \"Andorra\",\n\t\talpha2: \"AD\",\n\t\tcountryCode: \"020\",\n\t\talpha3: \"AND\"\n\t},\n\t{\n\t\tname: \"Angola\",\n\t\talpha2: \"AO\",\n\t\tcountryCode: \"024\",\n\t\talpha3: \"AGO\"\n\t},\n\t{\n\t\tname: \"Argentina\",\n\t\talpha2: \"AR\",\n\t\tcountryCode: \"032\",\n\t\talpha3: \"ARG\"\n\t},\n\t{\n\t\tname: \"Australia\",\n\t\talpha2: \"AU\",\n\t\tcountryCode: \"036\",\n\t\talpha3: \"AUS\"\n\t},\n\t{\n\t\tname: \"Austria\",\n\t\talpha2: \"AT\",\n\t\tcountryCode: \"040\",\n\t\talpha3: \"AUT\"\n\t},\n\t{\n\t\tname: \"Azerbaijan\",\n\t\talpha2: \"AZ\",\n\t\tcountryCode: \"031\",\n\t\talpha3: \"AZE\"\n\t},\n\t{\n\t\tname: \"Bahamas\",\n\t\talpha2: \"BS\",\n\t\tcountryCode: \"044\",\n\t\talpha3: \"BHS\"\n\t},\n\t{\n\t\tname: \"Bangladesh\",\n\t\talpha2: \"BD\",\n\t\tcountryCode: \"050\",\n\t\talpha3: \"BGD\"\n\t},\n\t{\n\t\tname: \"Belgium\",\n\t\talpha2: \"BE\",\n\t\tcountryCode: \"056\",\n\t\talpha3: \"BEL\"\n\t},\n\t{\n\t\tname: \"Belize\",\n\t\talpha2: \"BZ\",\n\t\tcountryCode: \"084\",\n\t\talpha3: \"BLZ\"\n\t},\n\t{\n\t\tname: \"Benin\",\n\t\talpha2: \"BJ\",\n\t\tcountryCode: \"204\",\n\t\talpha3: \"BEN\"\n\t},\n\t{\n\t\tname: \"Bhutan\",\n\t\talpha2: \"BT\",\n\t\tcountryCode: \"064\",\n\t\talpha3: \"BTN\"\n\t},\n\t{\n\t\tname: \"Bolivia\",\n\t\talpha2: \"BO\",\n\t\tcountryCode: \"068\",\n\t\talpha3: \"BOL\"\n\t},\n\t{\n\t\tname: \"Bosnia and Herzegovina\",\n\t\talpha2: \"BA\",\n\t\tcountryCode: \"070\",\n\t\talpha3: \"BIH\"\n\t},\n\t{\n\t\tname: \"Botswana\",\n\t\talpha2: \"BW\",\n\t\tcountryCode: \"072\",\n\t\talpha3: \"BWA\"\n\t},\n\t{\n\t\tname: \"Brazil\",\n\t\talpha2: \"BR\",\n\t\tcountryCode: \"076\",\n\t\talpha3: \"BRA\"\n\t},\n\t{\n\t\tname: \"Brunei Darussalam\",\n\t\talpha2: \"BN\",\n\t\tcountryCode: \"096\",\n\t\talpha3: \"BRN\"\n\t},\n\t{\n\t\tname: \"Bulgaria\",\n\t\talpha2: \"BG\",\n\t\tcountryCode: \"100\",\n\t\talpha3: \"BGR\"\n\t},\n\t{\n\t\tname: \"Burkina Faso\",\n\t\talpha2: \"BF\",\n\t\tcountryCode: \"854\",\n\t\talpha3: \"BFA\"\n\t},\n\t{\n\t\tname: \"Burundi\",\n\t\talpha2: \"BI\",\n\t\tcountryCode: \"108\",\n\t\talpha3: \"BDI\"\n\t},\n\t{\n\t\tname: \"Cambodia\",\n\t\talpha2: \"KH\",\n\t\tcountryCode: \"116\",\n\t\talpha3: \"KHM\"\n\t},\n\t{\n\t\tname: \"Cameroon\",\n\t\talpha2: \"CM\",\n\t\tcountryCode: \"120\",\n\t\talpha3: \"CMR\"\n\t},\n\t{\n\t\tname: \"Canada\",\n\t\talpha2: \"CA\",\n\t\tcountryCode: \"124\",\n\t\talpha3: \"CAN\"\n\t},\n\t{\n\t\tname: \"Maldives\",\n\t\talpha2: \"MV\",\n\t\tcountryCode: \"462\",\n\t\talpha3: \"MDV\"\n\t},\n\t{\n\t\tname: \"Mali\",\n\t\talpha2: \"ML\",\n\t\tcountryCode: \"466\",\n\t\talpha3: \"MLI\"\n\t},\n\t{\n\t\tname: \"Malta\",\n\t\talpha2: \"MT\",\n\t\tcountryCode: \"470\",\n\t\talpha3: \"MLT\"\n\t},\n\t{\n\t\tname: \"Marshall Islands\",\n\t\talpha2: \"MH\",\n\t\tcountryCode: \"584\",\n\t\talpha3: \"MHL\"\n\t},\n\t{\n\t\tname: \"Mauritania\",\n\t\talpha2: \"MR\",\n\t\tcountryCode: \"478\",\n\t\talpha3: \"MRT\"\n\t},\n\t{\n\t\tname: \"Mauritius\",\n\t\talpha2: \"MU\",\n\t\tcountryCode: \"480\",\n\t\talpha3: \"MUS\"\n\t},\n\t{\n\t\tname: \"Mexico\",\n\t\talpha2: \"MX\",\n\t\tcountryCode: \"484\",\n\t\talpha3: \"MEX\"\n\t},\n\t{\n\t\tname: \"Micronesia (Federated States of)\",\n\t\talpha2: \"FM\",\n\t\tcountryCode: \"583\",\n\t\talpha3: \"FSM\"\n\t},\n\t{\n\t\tname: \"Moldova (Republic of)\",\n\t\talpha2: \"MD\",\n\t\tcountryCode: \"498\",\n\t\talpha3: \"MDA\"\n\t},\n\t{\n\t\tname: \"Monaco\",\n\t\talpha2: \"MC\",\n\t\tcountryCode: \"492\",\n\t\talpha3: \"MCO\"\n\t},\n\t{\n\t\tname: \"Mongolia\",\n\t\talpha2: \"MN\",\n\t\tcountryCode: \"496\",\n\t\talpha3: \"MNG\"\n\t},\n\t{\n\t\tname: \"Montenegro\",\n\t\talpha2: \"ME\",\n\t\tcountryCode: \"499\",\n\t\talpha3: \"MNE\"\n\t},\n\t{\n\t\tname: \"Morocco\",\n\t\talpha2: \"MA\",\n\t\tcountryCode: \"504\",\n\t\talpha3: \"MAR\"\n\t},\n\t{\n\t\tname: \"Mozambique\",\n\t\talpha2: \"MZ\",\n\t\tcountryCode: \"508\",\n\t\talpha3: \"MOZ\"\n\t},\n\t{\n\t\tname: \"Myanmar\",\n\t\talpha2: \"MM\",\n\t\tcountryCode: \"104\",\n\t\talpha3: \"MMR\"\n\t},\n\t{\n\t\tname: \"Namibia\",\n\t\talpha2: \"NA\",\n\t\tcountryCode: \"516\",\n\t\talpha3: \"NAM\"\n\t},\n\t{\n\t\tname: \"Nauru\",\n\t\talpha2: \"NR\",\n\t\tcountryCode: \"520\",\n\t\talpha3: \"NRU\"\n\t},\n\t{\n\t\tname: \"Nepal\",\n\t\talpha2: \"NP\",\n\t\tcountryCode: \"524\",\n\t\talpha3: \"NPL\"\n\t},\n\t{\n\t\tname: \"Netherlands\",\n\t\talpha2: \"NL\",\n\t\tcountryCode: \"528\",\n\t\talpha3: \"NLD\"\n\t},\n\t{\n\t\tname: \"New Zealand\",\n\t\talpha2: \"NZ\",\n\t\tcountryCode: \"554\",\n\t\talpha3: \"NZL\"\n\t},\n\t{\n\t\tname: \"Nicaragua\",\n\t\talpha2: \"NI\",\n\t\tcountryCode: \"558\",\n\t\talpha3: \"NIC\"\n\t},\n\t{\n\t\tname: \"Niger\",\n\t\talpha2: \"NE\",\n\t\tcountryCode: \"562\",\n\t\talpha3: \"NER\"\n\t},\n\t{\n\t\tname: \"Nigeria\",\n\t\talpha2: \"NG\",\n\t\tcountryCode: \"566\",\n\t\talpha3: \"NGA\"\n\t},\n\t{\n\t\tname: \"North Macedonia\",\n\t\talpha2: \"MK\",\n\t\tcountryCode: \"807\",\n\t\talpha3: \"MKD\"\n\t},\n\t{\n\t\tname: \"Norway\",\n\t\talpha2: \"NO\",\n\t\tcountryCode: \"578\",\n\t\talpha3: \"NOR\"\n\t},\n\t{\n\t\tname: \"Oman\",\n\t\talpha2: \"OM\",\n\t\tcountryCode: \"512\",\n\t\talpha3: \"OMN\"\n\t},\n\t{\n\t\tname: \"Pakistan\",\n\t\talpha2: \"PK\",\n\t\tcountryCode: \"586\",\n\t\talpha3: \"PAK\"\n\t},\n\t{\n\t\tname: \"Palau\",\n\t\talpha2: \"PW\",\n\t\tcountryCode: \"585\",\n\t\talpha3: \"PLW\"\n\t},\n\t{\n\t\tname: \"Panama\",\n\t\talpha2: \"PA\",\n\t\tcountryCode: \"591\",\n\t\talpha3: \"PAN\"\n\t},\n\t{\n\t\tname: \"Papua New Guinea\",\n\t\talpha2: \"PG\",\n\t\tcountryCode: \"598\",\n\t\talpha3: \"PNG\"\n\t},\n\t{\n\t\tname: \"Paraguay\",\n\t\talpha2: \"PY\",\n\t\tcountryCode: \"600\",\n\t\talpha3: \"PRY\"\n\t},\n\t{\n\t\tname: \"Peru\",\n\t\talpha2: \"PE\",\n\t\tcountryCode: \"604\",\n\t\talpha3: \"PER\"\n\t},\n\t{\n\t\tname: \"Philippines\",\n\t\talpha2: \"PH\",\n\t\tcountryCode: \"608\",\n\t\talpha3: \"PHL\"\n\t},\n\t{\n\t\tname: \"Poland\",\n\t\talpha2: \"PL\",\n\t\tcountryCode: \"616\",\n\t\talpha3: \"POL\"\n\t},\n\t{\n\t\tname: \"Portugal\",\n\t\talpha2: \"PT\",\n\t\tcountryCode: \"620\",\n\t\talpha3: \"PRT\"\n\t},\n\t{\n\t\tname: \"Qatar\",\n\t\talpha2: \"QA\",\n\t\tcountryCode: \"634\",\n\t\talpha3: \"QAT\"\n\t},\n\t{\n\t\tname: \"Romania\",\n\t\talpha2: \"RO\",\n\t\tcountryCode: \"642\",\n\t\talpha3: \"ROU\"\n\t},\n\t{\n\t\tname: \"Russian Federation\",\n\t\talpha2: \"RU\",\n\t\tcountryCode: \"643\",\n\t\talpha3: \"RUS\"\n\t},\n\t{\n\t\tname: \"Rwanda\",\n\t\talpha2: \"RW\",\n\t\tcountryCode: \"646\",\n\t\talpha3: \"RWA\"\n\t},\n\t{\n\t\tname: \"Saint Kitts and Nevis\",\n\t\talpha2: \"KN\",\n\t\tcountryCode: \"659\",\n\t\talpha3: \"KNA\"\n\t},\n\t{\n\t\tname: \"Saint Lucia\",\n\t\talpha2: \"LC\",\n\t\tcountryCode: \"662\",\n\t\talpha3: \"LCA\"\n\t},\n\t{\n\t\tname: \"Saint Vincent and the Grenadines\",\n\t\talpha2: \"VC\",\n\t\tcountryCode: \"670\",\n\t\talpha3: \"VCT\"\n\t},\n\t{\n\t\tname: \"Samoa\",\n\t\talpha2: \"WS\",\n\t\tcountryCode: \"882\",\n\t\talpha3: \"WSM\"\n\t},\n\t{\n\t\tname: \"San Marino\",\n\t\talpha2: \"SM\",\n\t\tcountryCode: \"674\",\n\t\talpha3: \"SMR\"\n\t},\n\t{\n\t\tname: \"Sao Tome and Principe\",\n\t\talpha2: \"ST\",\n\t\tcountryCode: \"678\",\n\t\talpha3: \"STP\"\n\t},\n\t{\n\t\tname: \"Saudi Arabia\",\n\t\talpha2: \"SA\",\n\t\tcountryCode: \"682\",\n\t\talpha3: \"SAU\"\n\t},\n\t{\n\t\tname: \"Senegal\",\n\t\talpha2: \"SN\",\n\t\tcountryCode: \"686\",\n\t\talpha3: \"SEN\"\n\t},\n\t{\n\t\tname: \"Serbia\",\n\t\talpha2: \"RS\",\n\t\tcountryCode: \"688\",\n\t\talpha3: \"SRB\"\n\t},\n\t{\n\t\tname: \"Seychelles\",\n\t\talpha2: \"SC\",\n\t\tcountryCode: \"690\",\n\t\talpha3: \"SYC\"\n\t},\n\t{\n\t\tname: \"Sierra Leone\",\n\t\talpha2: \"SL\",\n\t\tcountryCode: \"694\",\n\t\talpha3: \"SLE\"\n\t},\n\t{\n\t\tname: \"Singapore\",\n\t\talpha2: \"SG\",\n\t\tcountryCode: \"702\",\n\t\talpha3: \"SGP\"\n\t},\n\t{\n\t\tname: \"Slovakia\",\n\t\talpha2: \"SK\",\n\t\tcountryCode: \"703\",\n\t\talpha3: \"SVK\"\n\t},\n\t{\n\t\tname: \"Slovenia\",\n\t\talpha2: \"SI\",\n\t\tcountryCode: \"705\",\n\t\talpha3: \"SVN\"\n\t},\n\t{\n\t\tname: \"Solomon Islands\",\n\t\talpha2: \"SB\",\n\t\tcountryCode: \"090\",\n\t\talpha3: \"SLB\"\n\t},\n\t{\n\t\tname: \"Somalia\",\n\t\talpha2: \"SO\",\n\t\tcountryCode: \"706\",\n\t\talpha3: \"SOM\"\n\t},\n\t{\n\t\tname: \"South Africa\",\n\t\talpha2: \"ZA\",\n\t\tcountryCode: \"710\",\n\t\talpha3: \"ZAF\"\n\t},\n\t{\n\t\tname: \"South Sudan\",\n\t\talpha2: \"SS\",\n\t\tcountryCode: \"728\",\n\t\talpha3: \"SSD\"\n\t},\n\t{\n\t\tname: \"Spain\",\n\t\talpha2: \"ES\",\n\t\tcountryCode: \"724\",\n\t\talpha3: \"ESP\"\n\t},\n\t{\n\t\tname: \"Sri Lanka\",\n\t\talpha2: \"LK\",\n\t\tcountryCode: \"144\",\n\t\talpha3: \"LKA\"\n\t},\n\t{\n\t\tname: \"Sudan\",\n\t\talpha2: \"SD\",\n\t\tcountryCode: \"729\",\n\t\talpha3: \"SDN\"\n\t},\n\t{\n\t\tname: \"Suriname\",\n\t\talpha2: \"SR\",\n\t\tcountryCode: \"740\",\n\t\talpha3: \"SUR\"\n\t},\n\t{\n\t\tname: \"Sweden\",\n\t\talpha2: \"SE\",\n\t\tcountryCode: \"752\",\n\t\talpha3: \"SWE\"\n\t},\n\t{\n\t\tname: \"Switzerland\",\n\t\talpha2: \"CH\",\n\t\tcountryCode: \"756\",\n\t\talpha3: \"CHE\"\n\t},\n\t{\n\t\tname: \"Syrian Arab Republic\",\n\t\talpha2: \"SY\",\n\t\tcountryCode: \"760\",\n\t\talpha3: \"SYR\"\n\t},\n\t{\n\t\tname: \"Taiwan\",\n\t\talpha2: \"TW\",\n\t\tcountryCode: \"158\",\n\t\talpha3: \"TWN\"\n\t},\n\t{\n\t\tname: \"Tajikistan\",\n\t\talpha2: \"TJ\",\n\t\tcountryCode: \"762\",\n\t\talpha3: \"TJK\"\n\t},\n\t{\n\t\tname: \"Tanzania\",\n\t\talpha2: \"TZ\",\n\t\tcountryCode: \"834\",\n\t\talpha3: \"TZA\"\n\t},\n\t{\n\t\tname: \"Thailand\",\n\t\talpha2: \"TH\",\n\t\tcountryCode: \"764\",\n\t\talpha3: \"THA\"\n\t},\n\t{\n\t\tname: \"Timor-Leste\",\n\t\talpha2: \"TL\",\n\t\tcountryCode: \"626\",\n\t\talpha3: \"TLS\"\n\t},\n\t{\n\t\tname: \"Togo\",\n\t\talpha2: \"TG\",\n\t\tcountryCode: \"768\",\n\t\talpha3: \"TGO\"\n\t},\n\t{\n\t\tname: \"Tonga\",\n\t\talpha2: \"TO\",\n\t\tcountryCode: \"776\",\n\t\talpha3: \"TON\"\n\t},\n\t{\n\t\tname: \"Tonga\",\n\t\talpha2: \"TO\",\n\t\tcountryCode: \"776\",\n\t\talpha3: \"TON\"\n\t},\n\t{\n\t\tname: \"Trinidad and Tobago\",\n\t\talpha2: \"TT\",\n\t\tcountryCode: \"780\",\n\t\talpha3: \"TTO\"\n\t},\n\t{\n\t\tname: \"Tunisia\",\n\t\talpha2: \"TN\",\n\t\tcountryCode: \"788\",\n\t\talpha3: \"TUN\"\n\t},\n\t{\n\t\tname: \"Turkey\",\n\t\talpha2: \"TR\",\n\t\tcountryCode: \"792\",\n\t\talpha3: \"TUR\"\n\t},\n\t{\n\t\tname: \"Turkmenistan\",\n\t\talpha2: \"TM\",\n\t\tcountryCode: \"795\",\n\t\talpha3: \"TKM\"\n\t},\n\t{\n\t\tname: \"Tuvalu\",\n\t\talpha2: \"TV\",\n\t\tcountryCode: \"798\",\n\t\talpha3: \"TUV\"\n\t},\n\t{\n\t\tname: \"Uganda\",\n\t\talpha2: \"UG\",\n\t\tcountryCode: \"800\",\n\t\talpha3: \"UGA\"\n\t},\n\t{\n\t\tname: \"Ukraine\",\n\t\talpha2: \"UA\",\n\t\tcountryCode: \"804\",\n\t\talpha3: \"UKR\"\n\t},\n\t{\n\t\tname: \"United Arab Emirates\",\n\t\talpha2: \"AE\",\n\t\tcountryCode: \"784\",\n\t\talpha3: \"ARE\"\n\t},\n\t{\n\t\tname: \"United Kingdom\",\n\t\talpha2: \"GB\",\n\t\tcountryCode: \"826\",\n\t\talpha3: \"GBR\"\n\t},\n\t{\n\t\tname: \"United States of America\",\n\t\talpha2: \"US\",\n\t\tcountryCode: \"840\",\n\t\talpha3: \"USA\"\n\t},\n\t{\n\t\tname: \"Uruguay\",\n\t\talpha2: \"UY\",\n\t\tcountryCode: \"858\",\n\t\talpha3: \"URY\"\n\t},\n\t{\n\t\tname: \"Uzbekistan\",\n\t\talpha2: \"UZ\",\n\t\tcountryCode: \"860\",\n\t\talpha3: \"UZB\"\n\t},\n\t{\n\t\tname: \"Vanuatu\",\n\t\talpha2: \"VU\",\n\t\tcountryCode: \"548\",\n\t\talpha3: \"VUT\"\n\t},\n\t{\n\t\tname: \"Venezuela\",\n\t\talpha2: \"VE\",\n\t\tcountryCode: \"862\",\n\t\talpha3: \"VEN\"\n\t},\n\t{\n\t\tname: \"Viet Nam\",\n\t\talpha2: \"VN\",\n\t\tcountryCode: \"704\",\n\t\talpha3: \"VNM\"\n\t},\n\t{\n\t\tname: \"Yemen\",\n\t\talpha2: \"YE\",\n\t\tcountryCode: \"887\",\n\t\talpha3: \"YEM\"\n\t},\n\t{\n\t\tname: \"Zambia\",\n\t\talpha2: \"ZM\",\n\t\tcountryCode: \"894\",\n\t\talpha3: \"ZMB\"\n\t},\n\t{\n\t\tname: \"Zimbabwe\",\n\t\talpha2: \"ZW\",\n\t\tcountryCode: \"716\",\n\t\talpha3: \"ZWE\"\n\t}\n];\n\n//#endregion\n//#region src/Marked.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant$3(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\nconst MARKED = createConstant$3(\"Marked\");\n\n//#endregion\n//#region src/Markers.ts\nconst BLOOD_MARKERS_LOOKUP = [\n\t{\n\t\tabbrev: \"Hb\",\n\t\tname: \"hemoglobin\",\n\t\tmeasurements: [\"g/dL\", \"mmol/L\"]\n\t},\n\t{\n\t\tabbrev: \"WBC\",\n\t\tname: \"white blood cell count\",\n\t\tmeasurements: [\"cells/µL\"]\n\t},\n\t{\n\t\tabbrev: \"RBC\",\n\t\tname: \"red blood cell count\",\n\t\tmeasurements: [\"million cells/µL\", \"trillion cells/L\"]\n\t},\n\t{\n\t\tabbrev: \"PLT\",\n\t\tname: \"platelet count\",\n\t\tmeasurements: [\"thousand/µL\", \"million/L\"]\n\t},\n\t{\n\t\tabbrev: \"Hct\",\n\t\tname: \"hematocrit\",\n\t\tmeasurements: [\"%\"]\n\t},\n\t{\n\t\tabbrev: \"MCV\",\n\t\tname: \"mean corpuscular volume\",\n\t\tmeasurements: [\"fL\"]\n\t},\n\t{\n\t\tabbrev: \"MCH\",\n\t\tname: \"mean corpuscular hemoglobin\",\n\t\tmeasurements: [\"pg/cell\"]\n\t},\n\t{\n\t\tabbrev: \"MCHC\",\n\t\tname: \"mean corpuscular hemoglobin concentration\",\n\t\tmeasurements: [\"g/dL\"]\n\t},\n\t{\n\t\tabbrev: \"RDW\",\n\t\tname: \"red cell distribution width\",\n\t\tmeasurements: [\"%\"]\n\t},\n\t{\n\t\tabbrev: \"Glucose\",\n\t\tname: \"blood glucose\",\n\t\tmeasurements: [\"mg/dL\", \"mmol/L\"]\n\t},\n\t{\n\t\tabbrev: \"ALT\",\n\t\tname: \"alanine aminotransferase\",\n\t\tmeasurements: [\"U/L\"]\n\t},\n\t{\n\t\tabbrev: \"AST\",\n\t\tname: \"aspartate aminotransferase\",\n\t\tmeasurements: [\"U/L\"]\n\t},\n\t{\n\t\tabbrev: \"LDL\",\n\t\tname: \"low-density lipoprotein\",\n\t\tmeasurements: [\"mg/dL\", \"mmol/L\"]\n\t},\n\t{\n\t\tabbrev: \"HDL\",\n\t\tname: \"high-density lipoprotein\",\n\t\tmeasurements: [\"mg/dL\", \"mmol/L\"]\n\t},\n\t{\n\t\tabbrev: \"Triglycerides\",\n\t\tname: \"triglycerides\",\n\t\tmeasurements: [\"mg/dL\", \"mmol/L\"]\n\t},\n\t{\n\t\tabbrev: \"CRP\",\n\t\tname: \"C-reactive protein\",\n\t\tmeasurements: [\"mg/L\"]\n\t},\n\t{\n\t\tabbrev: \"TSH\",\n\t\tname: \"thyroid-stimulating hormone\",\n\t\tmeasurements: [\"mIU/L\"]\n\t},\n\t{\n\t\tabbrev: \"BUN\",\n\t\tname: \"blood urea nitrogen\",\n\t\tmeasurements: [\"mg/dL\", \"mmol/L\"]\n\t},\n\t{\n\t\tabbrev: \"Creatinine\",\n\t\tname: \"creatinine\",\n\t\tmeasurements: [\"mg/dL\", \"µmol/L\"]\n\t},\n\t{\n\t\tabbrev: \"Bilirubin\",\n\t\tname: \"bilirubin\",\n\t\tmeasurements: [\"mg/dL\", \"µmol/L\"]\n\t}\n];\n\n//#endregion\n//#region src/Metrics.ts\nconst DISTANCE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"km\",\n\t\tname: \"kilometer\"\n\t},\n\t{\n\t\tabbrev: \"mi\",\n\t\tname: \"mile\"\n\t},\n\t{\n\t\tabbrev: \"mm\",\n\t\tname: \"millimeter\"\n\t},\n\t{\n\t\tabbrev: \"cm\",\n\t\tname: \"centimeter\"\n\t},\n\t{\n\t\tabbrev: \"yd\",\n\t\tname: \"yard\"\n\t},\n\t{\n\t\tabbrev: \"ft\",\n\t\tname: \"foot\"\n\t},\n\t{\n\t\tabbrev: \"in\",\n\t\tname: \"inch\"\n\t},\n\t{\n\t\tabbrev: \"m\",\n\t\tname: \"meter\"\n\t},\n\t{\n\t\tabbrev: \"nm\",\n\t\tname: \"nautical mile\"\n\t},\n\t{\n\t\tabbrev: \"nmi\",\n\t\tname: \"nanometer\"\n\t},\n\t{\n\t\tabbrev: \"µm\",\n\t\tname: \"micrometer\"\n\t},\n\t{\n\t\tabbrev: \"dm\",\n\t\tname: \"decimeter\"\n\t},\n\t{\n\t\tabbrev: \"AU\",\n\t\tname: \"astronomical unit\"\n\t},\n\t{\n\t\tabbrev: \"ly\",\n\t\tname: \"light year\"\n\t},\n\t{\n\t\tabbrev: \"pc\",\n\t\tname: \"parsec\"\n\t}\n];\nconst MASS_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"g\",\n\t\tname: \"gram\"\n\t},\n\t{\n\t\tabbrev: \"kg\",\n\t\tname: \"kilogram\"\n\t},\n\t{\n\t\tabbrev: \"mg\",\n\t\tname: \"milligram\"\n\t},\n\t{\n\t\tabbrev: \"µg\",\n\t\tname: \"microgram\"\n\t},\n\t{\n\t\tabbrev: \"t\",\n\t\tname: \"tonne\"\n\t},\n\t{\n\t\tabbrev: \"lb\",\n\t\tname: \"pound\"\n\t},\n\t{\n\t\tabbrev: \"oz\",\n\t\tname: \"ounce\"\n\t},\n\t{\n\t\tabbrev: \"st\",\n\t\tname: \"stone\"\n\t},\n\t{\n\t\tabbrev: \"ct\",\n\t\tname: \"carat\"\n\t},\n\t{\n\t\tabbrev: \"Mt\",\n\t\tname: \"megatonne\"\n\t},\n\t{\n\t\tabbrev: \"gt\",\n\t\tname: \"gigatonne\"\n\t},\n\t{\n\t\tabbrev: \"slug\",\n\t\tname: \"slug\"\n\t},\n\t{\n\t\tabbrev: \"dr\",\n\t\tname: \"dram\"\n\t},\n\t{\n\t\tabbrev: \"gr\",\n\t\tname: \"grain\"\n\t},\n\t{\n\t\tabbrev: \"q\",\n\t\tname: \"quintal\"\n\t}\n];\nconst SPEED_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"m/s\",\n\t\tname: \"meters per second\"\n\t},\n\t{\n\t\tabbrev: \"km/h\",\n\t\tname: \"kilometers per hour\"\n\t},\n\t{\n\t\tabbrev: \"mph\",\n\t\tname: \"miles per hour\"\n\t},\n\t{\n\t\tabbrev: \"kn\",\n\t\tname: \"knot\"\n\t},\n\t{\n\t\tabbrev: \"ft/s\",\n\t\tname: \"feet per second\"\n\t},\n\t{\n\t\tabbrev: \"c\",\n\t\tname: \"speed of light\"\n\t},\n\t{\n\t\tabbrev: \"mach\",\n\t\tname: \"mach\"\n\t},\n\t{\n\t\tabbrev: \"cm/s\",\n\t\tname: \"centimeters per second\"\n\t},\n\t{\n\t\tabbrev: \"in/s\",\n\t\tname: \"inches per second\"\n\t},\n\t{\n\t\tabbrev: \"ly/y\",\n\t\tname: \"light years per year\"\n\t}\n];\nconst ACCELERATION_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"m/s²\",\n\t\tname: \"meters per second squared\"\n\t},\n\t{\n\t\tabbrev: \"ft/s²\",\n\t\tname: \"feet per second squared\"\n\t},\n\t{\n\t\tabbrev: \"g\",\n\t\tname: \"g-force\"\n\t},\n\t{\n\t\tabbrev: \"Gal\",\n\t\tname: \"galileo\"\n\t},\n\t{\n\t\tabbrev: \"cm/s²\",\n\t\tname: \"centimeters per second squared\"\n\t},\n\t{\n\t\tabbrev: \"km/h²\",\n\t\tname: \"kilometers per hour squared\"\n\t},\n\t{\n\t\tabbrev: \"in/s²\",\n\t\tname: \"inches per second squared\"\n\t},\n\t{\n\t\tabbrev: \"mi/h²\",\n\t\tname: \"miles per hour squared\"\n\t},\n\t{\n\t\tabbrev: \"kn/s²\",\n\t\tname: \"knots per second squared\"\n\t}\n];\nconst VOLUME_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"L\",\n\t\tname: \"liter\"\n\t},\n\t{\n\t\tabbrev: \"dL\",\n\t\tname: \"deciliter\"\n\t},\n\t{\n\t\tabbrev: \"mL\",\n\t\tname: \"milliliter\"\n\t},\n\t{\n\t\tabbrev: \"µL\",\n\t\tname: \"microliter\"\n\t},\n\t{\n\t\tabbrev: \"cm³\",\n\t\tname: \"cubic centimeter\"\n\t},\n\t{\n\t\tabbrev: \"m³\",\n\t\tname: \"cubic meter\"\n\t},\n\t{\n\t\tabbrev: \"ft³\",\n\t\tname: \"cubic foot\"\n\t},\n\t{\n\t\tabbrev: \"in³\",\n\t\tname: \"cubic inch\"\n\t},\n\t{\n\t\tabbrev: \"gallon\",\n\t\tname: \"gallon\"\n\t},\n\t{\n\t\tabbrev: \"qt\",\n\t\tname: \"quart\"\n\t},\n\t{\n\t\tabbrev: \"pt\",\n\t\tname: \"pint\"\n\t},\n\t{\n\t\tabbrev: \"fl oz\",\n\t\tname: \"fluid ounce\"\n\t},\n\t{\n\t\tabbrev: \"barrel\",\n\t\tname: \"barrel\"\n\t},\n\t{\n\t\tabbrev: \"tbsp\",\n\t\tname: \"tablespoon\"\n\t},\n\t{\n\t\tabbrev: \"tsp\",\n\t\tname: \"teaspoon\"\n\t}\n];\nconst TEMPERATURE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"°C\",\n\t\tname: \"celsius\"\n\t},\n\t{\n\t\tabbrev: \"°F\",\n\t\tname: \"fahrenheit\"\n\t},\n\t{\n\t\tabbrev: \"K\",\n\t\tname: \"kelvin\"\n\t}\n];\nconst PRESSURE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"Pa\",\n\t\tname: \"pascal\"\n\t},\n\t{\n\t\tabbrev: \"bar\",\n\t\tname: \"bar\"\n\t},\n\t{\n\t\tabbrev: \"atm\",\n\t\tname: \"atmosphere\"\n\t},\n\t{\n\t\tabbrev: \"mmHg\",\n\t\tname: \"millimeters of mercury\"\n\t},\n\t{\n\t\tabbrev: \"psi\",\n\t\tname: \"pounds per square inch\"\n\t}\n];\nconst ENERGY_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"J\",\n\t\tname: \"joule\"\n\t},\n\t{\n\t\tabbrev: \"cal\",\n\t\tname: \"calorie\"\n\t},\n\t{\n\t\tabbrev: \"kcal\",\n\t\tname: \"kilocalorie\"\n\t},\n\t{\n\t\tabbrev: \"kWh\",\n\t\tname: \"kilowatt-hour\"\n\t},\n\t{\n\t\tabbrev: \"BTU\",\n\t\tname: \"british thermal unit\"\n\t},\n\t{\n\t\tabbrev: \"eV\",\n\t\tname: \"electronvolt\"\n\t}\n];\nconst TIME_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"s\",\n\t\tname: \"second\"\n\t},\n\t{\n\t\tabbrev: \"m\",\n\t\tname: \"minute\"\n\t},\n\t{\n\t\tabbrev: \"h\",\n\t\tname: \"hour\"\n\t},\n\t{\n\t\tabbrev: \"day\",\n\t\tname: \"day\"\n\t},\n\t{\n\t\tabbrev: \"week\",\n\t\tname: \"week\"\n\t},\n\t{\n\t\tabbrev: \"mo\",\n\t\tname: \"month\"\n\t},\n\t{\n\t\tabbrev: \"ms\",\n\t\tname: \"millisecond\"\n\t},\n\t{\n\t\tabbrev: \"µs\",\n\t\tname: \"microsecond\"\n\t},\n\t{\n\t\tabbrev: \"ns\",\n\t\tname: \"nanosecond\"\n\t}\n];\nconst POWER_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"W\",\n\t\tname: \"Watt\"\n\t},\n\t{\n\t\tabbrev: \"kW\",\n\t\tname: \"kilowatt\"\n\t},\n\t{\n\t\tabbrev: \"MW\",\n\t\tname: \"megawatt\"\n\t},\n\t{\n\t\tabbrev: \"hp\",\n\t\tname: \"horsepower\"\n\t},\n\t{\n\t\tabbrev: \"GW\",\n\t\tname: \"gigawatt\"\n\t}\n];\nconst FREQUENCY_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"Hz\",\n\t\tname: \"hertz\"\n\t},\n\t{\n\t\tabbrev: \"kHz\",\n\t\tname: \"kilohertz\"\n\t},\n\t{\n\t\tabbrev: \"MHz\",\n\t\tname: \"megahertz\"\n\t},\n\t{\n\t\tabbrev: \"GHz\",\n\t\tname: \"gigahertz\"\n\t},\n\t{\n\t\tabbrev: \"THz\",\n\t\tname: \"terahertz\"\n\t}\n];\nconst VOLTAGE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"V\",\n\t\tname: \"volt\"\n\t},\n\t{\n\t\tabbrev: \"kV\",\n\t\tname: \"kilovolt\"\n\t},\n\t{\n\t\tabbrev: \"mV\",\n\t\tname: \"millivolt\"\n\t},\n\t{\n\t\tabbrev: \"µV\",\n\t\tname: \"microvolt\"\n\t}\n];\nconst CURRENT_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"A\",\n\t\tname: \"ampere\"\n\t},\n\t{\n\t\tabbrev: \"mA\",\n\t\tname: \"milliampere\"\n\t},\n\t{\n\t\tabbrev: \"µA\",\n\t\tname: \"microampere\"\n\t},\n\t{\n\t\tabbrev: \"kA\",\n\t\tname: \"kiloampere\"\n\t}\n];\nconst RESISTANCE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"Ω\",\n\t\tname: \"ohm\"\n\t},\n\t{\n\t\tabbrev: \"kΩ\",\n\t\tname: \"kiloohm\"\n\t},\n\t{\n\t\tabbrev: \"MΩ\",\n\t\tname: \"megaohm\"\n\t}\n];\nconst LUMINOSITY_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"cd\",\n\t\tname: \"candela\"\n\t},\n\t{\n\t\tabbrev: \"lm\",\n\t\tname: \"lumen\"\n\t},\n\t{\n\t\tabbrev: \"lx\",\n\t\tname: \"lux\"\n\t}\n];\nconst AREA_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"m²\",\n\t\tname: \"square meter\"\n\t},\n\t{\n\t\tabbrev: \"cm²\",\n\t\tname: \"square centimeter\"\n\t},\n\t{\n\t\tabbrev: \"mm²\",\n\t\tname: \"square millimeter\"\n\t},\n\t{\n\t\tabbrev: \"km²\",\n\t\tname: \"square kilometer\"\n\t},\n\t{\n\t\tabbrev: \"ft²\",\n\t\tname: \"square foot\"\n\t},\n\t{\n\t\tabbrev: \"in²\",\n\t\tname: \"square inch\"\n\t},\n\t{\n\t\tabbrev: \"acre\",\n\t\tname: \"acre\"\n\t},\n\t{\n\t\tabbrev: \"ha\",\n\t\tname: \"hectare\"\n\t}\n];\n\n//#endregion\n//#region src/Nesting.ts\n/**\n* A paired bracketing strategy which matches on\n* bracket characters:\n*\n* - parenthesis: `(` -> `)`\n* - square brackets: `[` -> `]`\n* - angle brackets: `<` -> `>`\n* - and curlies: `{` -> `}`\n*/\nconst BRACKET_NESTING = {\n\t\"{\": \"}\",\n\t\"[\": \"]\",\n\t\"<\": \">\",\n\t\"(\": \")\"\n};\n/**\n* A paired bracketing strategy which includes the three\n* main quotation symbols:\n*\n* - single quote (**'**),\n* - double quote (**\"**),\n* - and backtick (**`**)\n*/\nconst QUOTE_NESTING = {\n\t\"\\\"\": \"\\\"\",\n\t\"'\": \"'\",\n\t\"`\": \"`\"\n};\n/**\n* A paired bracketing strategy which includes:\n*\n* - all bracket characters\n* - all quote characters\n*/\nconst BRACKET_AND_QUOTE_NESTING = {\n\t\"{\": \"}\",\n\t\"[\": \"]\",\n\t\"<\": \">\",\n\t\"(\": \")\",\n\t\"\\\"\": \"\\\"\",\n\t\"'\": \"'\",\n\t\"`\": \"`\"\n};\n\n//#endregion\n//#region src/NetworkConstants.ts\nconst IPv6 = {\n\tLoopback: \"::1/128\",\n\tMulticast: \"ff00::/8\",\n\tIPv4MappedAddresses: \"::FFFF:0:0/96\",\n\tUnicast: \"fe80::/10\",\n\tDocumentationAddresses: \"2001:db8::/32\"\n};\nconst IPv4 = { Loopback: \"127.0.0.1\" };\nconst NETWORK_PROTOCOL_INSECURE = [\n\t\"http\",\n\t\"ftp\",\n\t\"ws\",\n\t\"dns\",\n\t\"telnet\",\n\t\"imap\",\n\t\"pop3\",\n\t\"smtp\"\n];\nconst NETWORK_PROTOCOL_SECURE = [\n\t\"https\",\n\t\"sftp\",\n\t\"wss\",\n\t\"sdns\",\n\t\"ssh\"\n];\nconst NETWORK_PROTOCOL = [...NETWORK_PROTOCOL_INSECURE, ...NETWORK_PROTOCOL_SECURE];\n/**\n* Lookup of protocols which provides a tuple of: `[insecure,secure]`\n*/\nconst NETWORK_PROTOCOL_LOOKUP = {\n\thttp: [\"http\", \"https\"],\n\tftp: [\"ftp\", \"sftp\"],\n\tfile: [\"\", \"file\"],\n\tws: [\"ws\", \"wss\"],\n\tssh: [\"\", \"ssh\"],\n\tscp: [\"\", \"scp\"],\n\ttelnet: [\"telnet\", \"\"],\n\tdns: [\"dns\", \"sdns\"]\n};\nconst PROTOCOL_DEFAULT_PORTS = {\n\thttp: 80,\n\thttps: 443,\n\tws: 80,\n\twss: 443,\n\tssh: 22,\n\ttelnet: 23,\n\tdns: 53,\n\tsdns: 853,\n\tsmtp: 25,\n\timap: 142,\n\tpop3: 110,\n\tftp: 21,\n\tsftp: 22\n};\n/**\n* **TLD**\n*\n* Top level domains in DNS. This is not a comprehensive list but\n* takes the core ones and adds in some popular choices.\n*/\nconst TOP_LEVEL_DOMAINS = [\n\t\"com\",\n\t\"org\",\n\t\"net\",\n\t\"int\",\n\t\"edu\",\n\t\"gov\",\n\t\"io\",\n\t\"mil\",\n\t\"arpa\",\n\t\"academy\",\n\t\"agency\",\n\t\"analytics\",\n\t\"app\",\n\t\"art\",\n\t\"bet\",\n\t\"beer\",\n\t\"book\",\n\t\"coffee\",\n\t\"dot\",\n\t\"doctor\",\n\t\"dog\",\n\t\"family\",\n\t\"game\",\n\t\"guide\",\n\t\"guru\",\n\t\"info\",\n\t\"inc\",\n\t\"news\",\n\t\"new\",\n\t\"ninja\",\n\t\"now\",\n\t\"online\",\n\t\"page\",\n\t\"photos\",\n\t\"place\",\n\t\"pub\",\n\t\"room\",\n\t\"show\",\n\t\"technology\",\n\t\"tel\",\n\t\"tech\",\n\t\"team\",\n\t\"talk\",\n\t\"travel\",\n\t\"website\",\n\t\"work\",\n\t\"works\",\n\t\"wow\",\n\t\"uk\",\n\t\"us\",\n\t\"fr\",\n\t\"de\",\n\t\"eu\",\n\t\"london\"\n];\n\n//#endregion\n//#region src/Never.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant$2(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n/**\n* **Never**\n*\n* A runtime constant that is meant to represent the `never` type.\n*\n* **Related:** you can use the `never()` runtime utility to give a\n* runtime value but force it's type to `never`.\n*/\nconst Never = createConstant$2(\"never\");\n\n//#endregion\n//#region src/News.ts\nconst US_NEWS = [\n\t{\n\t\tcompany: \"New York Times\",\n\t\tbaseUrls: [\"www.nytimes.com\"]\n\t},\n\t{\n\t\tcompany: \"CNN\",\n\t\tbaseUrls: [\"www.cnn.com\"]\n\t},\n\t{\n\t\tcompany: \"Fox News\",\n\t\tbaseUrls: [\"www.foxnews.com\"]\n\t},\n\t{\n\t\tcompany: \"NBC News\",\n\t\tbaseUrls: [\"www.nbcnews.com\", \"www.msnbc.com\"]\n\t},\n\t{\n\t\tcompany: \"ABC News\",\n\t\tbaseUrls: [\"abcnews.go.com\"]\n\t},\n\t{\n\t\tcompany: \"The Washington Post\",\n\t\tbaseUrls: [\"www.washingtonpost.com\"]\n\t},\n\t{\n\t\tcompany: \"USA Today\",\n\t\tbaseUrls: [\"www.usatoday.com\"]\n\t},\n\t{\n\t\tcompany: \"Bloomberg\",\n\t\tbaseUrls: [\"www.bloomberg.com\"]\n\t},\n\t{\n\t\tcompany: \"NPR\",\n\t\tbaseUrls: [\"www.npr.org\"]\n\t},\n\t{\n\t\tcompany: \"CBS News\",\n\t\tbaseUrls: [\"www.cbsnews.com\"]\n\t},\n\t{\n\t\tcompany: \"The Wall Street Journal\",\n\t\tbaseUrls: [\"www.wsj.com\"]\n\t},\n\t{\n\t\tcompany: \"Associated Press (AP)\",\n\t\tbaseUrls: [\"www.apnews.com\", \"www.ap.org\"]\n\t},\n\t{\n\t\tcompany: \"Reuters\",\n\t\tbaseUrls: [\"www.reuters.com\"]\n\t},\n\t{\n\t\tcompany: \"Newsweek\",\n\t\tbaseUrls: [\"www.newsweek.com\"]\n\t},\n\t{\n\t\tcompany: \"Politico\",\n\t\tbaseUrls: [\"www.politico.com\"]\n\t},\n\t{\n\t\tcompany: \"The Atlantic\",\n\t\tbaseUrls: [\"www.theatlantic.com\"]\n\t},\n\t{\n\t\tcompany: \"Nexstar Media Group\",\n\t\tbaseUrls: [\"www.nexstar.tv\"]\n\t},\n\t{\n\t\tcompany: \"PBS News\",\n\t\tbaseUrls: [\"www.pbs.org\"]\n\t},\n\t{\n\t\tcompany: \"HuffPost\",\n\t\tbaseUrls: [\"www.huffpost.com\"]\n\t},\n\t{\n\t\tcompany: \"The Boston Globe\",\n\t\tbaseUrls: [\"www.bostonglobe.com\"]\n\t}\n];\nconst UK_NEWS = [\n\t{\n\t\tcompany: \"BBC\",\n\t\tbaseUrls: [\"www.bbc.co.uk\", \"www.bbc.com\"]\n\t},\n\t{\n\t\tcompany: \"The Guardian\",\n\t\tbaseUrls: [\"www.theguardian.com/uk\"]\n\t},\n\t{\n\t\tcompany: \"The Daily Mail\",\n\t\tbaseUrls: [\"www.dailymail.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"The Sun\",\n\t\tbaseUrls: [\"www.thesun.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"The Times\",\n\t\tbaseUrls: [\"www.thetimes.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Sky News\",\n\t\tbaseUrls: [\"news.sky.com\"]\n\t},\n\t{\n\t\tcompany: \"The Telegraph\",\n\t\tbaseUrls: [\"www.telegraph.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"ITV News\",\n\t\tbaseUrls: [\"www.itv.com/news\"]\n\t},\n\t{\n\t\tcompany: \"Financial Times\",\n\t\tbaseUrls: [\"www.ft.com\"]\n\t},\n\t{\n\t\tcompany: \"Metro\",\n\t\tbaseUrls: [\"www.metro.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"The Independent\",\n\t\tbaseUrls: [\"www.independent.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Evening Standard\",\n\t\tbaseUrls: [\"www.standard.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Daily Mirror\",\n\t\tbaseUrls: [\"www.mirror.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Channel 4 News\",\n\t\tbaseUrls: [\"www.channel4.com/news\"]\n\t},\n\t{\n\t\tcompany: \"LBC\",\n\t\tbaseUrls: [\"www.lbc.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Daily Express\",\n\t\tbaseUrls: [\"www.express.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Birmingham Mail\",\n\t\tbaseUrls: [\"www.birminghammail.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Manchester Evening News\",\n\t\tbaseUrls: [\"www.manchestereveningnews.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"The Scotsman\",\n\t\tbaseUrls: [\"www.scotsman.com\"]\n\t},\n\t{\n\t\tcompany: \"Daily Record\",\n\t\tbaseUrls: [\"www.dailyrecord.co.uk\"]\n\t}\n];\nconst GERMAN_NEWS = [\n\t{\n\t\tcompany: \"BILD\",\n\t\tbaseUrls: [\"www.bild.de\"]\n\t},\n\t{\n\t\tcompany: \"Die Zeit\",\n\t\tbaseUrls: [\"www.zeit.de\"]\n\t},\n\t{\n\t\tcompany: \"Frankfurter Allgemeine Zeitung\",\n\t\tbaseUrls: [\"www.faz.net\"]\n\t},\n\t{\n\t\tcompany: \"Süddeutsche Zeitung\",\n\t\tbaseUrls: [\"www.sueddeutsche.de\"]\n\t},\n\t{\n\t\tcompany: \"Der Spiegel\",\n\t\tbaseUrls: [\"www.spiegel.de\"]\n\t},\n\t{\n\t\tcompany: \"Die Welt\",\n\t\tbaseUrls: [\"www.welt.de\"]\n\t},\n\t{\n\t\tcompany: \"Tagesschau\",\n\t\tbaseUrls: [\"www.tagesschau.de\"]\n\t},\n\t{\n\t\tcompany: \"t-online\",\n\t\tbaseUrls: [\"www.t-online.de\"]\n\t},\n\t{\n\t\tcompany: \"n-tv\",\n\t\tbaseUrls: [\"www.n-tv.de\"]\n\t},\n\t{\n\t\tcompany: \"Handelsblatt\",\n\t\tbaseUrls: [\"www.handelsblatt.com\"]\n\t},\n\t{\n\t\tcompany: \"Focus Online\",\n\t\tbaseUrls: [\"www.focus.de\"]\n\t},\n\t{\n\t\tcompany: \"Frankfurter Rundschau\",\n\t\tbaseUrls: [\"www.fr.de\", \"www.fr-online.de\"]\n\t},\n\t{\n\t\tcompany: \"taz - die tageszeitung\",\n\t\tbaseUrls: [\"www.taz.de\"]\n\t},\n\t{\n\t\tcompany: \"Der Tagesspiegel\",\n\t\tbaseUrls: [\"www.tagesspiegel.de\"]\n\t},\n\t{\n\t\tcompany: \"Rheinische Post\",\n\t\tbaseUrls: [\"www.rp-online.de\"]\n\t},\n\t{\n\t\tcompany: \"Express\",\n\t\tbaseUrls: [\"www.express.de\"]\n\t},\n\t{\n\t\tcompany: \"Münchner Merkur\",\n\t\tbaseUrls: [\"www.merkur.de\"]\n\t},\n\t{\n\t\tcompany: \"Stuttgarter Zeitung\",\n\t\tbaseUrls: [\"www.stuttgarter-zeitung.de\"]\n\t},\n\t{\n\t\tcompany: \"Hamburger Abendblatt\",\n\t\tbaseUrls: [\"www.abendblatt.de\"]\n\t},\n\t{\n\t\tcompany: \"Deutsche Welle\",\n\t\tbaseUrls: [\"www.dw.com\"]\n\t}\n];\nconst FRENCH_NEWS = [\n\t{\n\t\tcompany: \"Le Figaro\",\n\t\tbaseUrls: [\"www.lefigaro.fr\"]\n\t},\n\t{\n\t\tcompany: \"Le Monde\",\n\t\tbaseUrls: [\"www.lemonde.fr\"]\n\t},\n\t{\n\t\tcompany: \"France 24\",\n\t\tbaseUrls: [\"www.france24.com\"]\n\t},\n\t{\n\t\tcompany: \"Libération\",\n\t\tbaseUrls: [\"www.liberation.fr\"]\n\t},\n\t{\n\t\tcompany: \"Les Echos\",\n\t\tbaseUrls: [\"www.lesechos.fr\"]\n\t},\n\t{\n\t\tcompany: \"Ouest-France\",\n\t\tbaseUrls: [\"www.ouest-france.fr\"]\n\t},\n\t{\n\t\tcompany: \"Le Parisien\",\n\t\tbaseUrls: [\"www.leparisien.fr\"]\n\t},\n\t{\n\t\tcompany: \"Mediapart\",\n\t\tbaseUrls: [\"www.mediapart.fr\"]\n\t},\n\t{\n\t\tcompany: \"L'Express\",\n\t\tbaseUrls: [\"www.lexpress.fr\"]\n\t},\n\t{\n\t\tcompany: \"La Croix\",\n\t\tbaseUrls: [\"www.la-croix.com\"]\n\t},\n\t{\n\t\tcompany: \"20 Minutes\",\n\t\tbaseUrls: [\"www.20minutes.fr\"]\n\t},\n\t{\n\t\tcompany: \"Courrier International\",\n\t\tbaseUrls: [\"www.courrierinternational.com\"]\n\t},\n\t{\n\t\tcompany: \"Le Point\",\n\t\tbaseUrls: [\"www.lepoint.fr\"]\n\t},\n\t{\n\t\tcompany: \"Marianne\",\n\t\tbaseUrls: [\"www.marianne.net\"]\n\t},\n\t{\n\t\tcompany: \"BFM TV\",\n\t\tbaseUrls: [\"www.bfmtv.com\"]\n\t},\n\t{\n\t\tcompany: \"RTL France\",\n\t\tbaseUrls: [\"www.rtl.fr\"]\n\t},\n\t{\n\t\tcompany: \"Charlie Hebdo\",\n\t\tbaseUrls: [\"www.charliehebdo.fr\"]\n\t},\n\t{\n\t\tcompany: \"Challenges\",\n\t\tbaseUrls: [\"www.challenges.fr\"]\n\t},\n\t{\n\t\tcompany: \"Télérama\",\n\t\tbaseUrls: [\"www.telerama.fr\"]\n\t},\n\t{\n\t\tcompany: \"L'Obs\",\n\t\tbaseUrls: [\"www.nouvelobs.com\"]\n\t}\n];\nconst CANADIAN_NEWS = [\n\t{\n\t\tcompany: \"CBC News\",\n\t\tbaseUrls: [\"www.cbc.ca\"]\n\t},\n\t{\n\t\tcompany: \"CTV News\",\n\t\tbaseUrls: [\"www.ctvnews.ca\"]\n\t},\n\t{\n\t\tcompany: \"The Globe and Mail\",\n\t\tbaseUrls: [\"www.theglobeandmail.com\"]\n\t},\n\t{\n\t\tcompany: \"Global News\",\n\t\tbaseUrls: [\"www.globalnews.ca\"]\n\t},\n\t{\n\t\tcompany: \"Toronto Star\",\n\t\tbaseUrls: [\"www.thestar.com\"]\n\t},\n\t{\n\t\tcompany: \"National Post\",\n\t\tbaseUrls: [\"www.nationalpost.com\"]\n\t},\n\t{\n\t\tcompany: \"La Presse\",\n\t\tbaseUrls: [\"www.lapresse.ca\"]\n\t},\n\t{\n\t\tcompany: \"Radio-Canada\",\n\t\tbaseUrls: [\"ici.radio-canada.ca\"]\n\t},\n\t{\n\t\tcompany: \"The Canadian Press\",\n\t\tbaseUrls: [\"www.thecanadianpress.com\"]\n\t},\n\t{\n\t\tcompany: \"Financial Post\",\n\t\tbaseUrls: [\"financialpost.com\"]\n\t},\n\t{\n\t\tcompany: \"The Weather Network\",\n\t\tbaseUrls: [\"www.theweathernetwork.com\"]\n\t},\n\t{\n\t\tcompany: \"Le Devoir\",\n\t\tbaseUrls: [\"www.ledevoir.com\"]\n\t},\n\t{\n\t\tcompany: \"TVA Nouvelles\",\n\t\tbaseUrls: [\"www.tvanouvelles.ca\"]\n\t},\n\t{\n\t\tcompany: \"Journal de Montréal\",\n\t\tbaseUrls: [\"www.journaldemontreal.com\"]\n\t},\n\t{\n\t\tcompany: \"CityNews\",\n\t\tbaseUrls: [\"www.citynews.ca\"]\n\t},\n\t{\n\t\tcompany: \"BNN Bloomberg\",\n\t\tbaseUrls: [\"www.bnnbloomberg.ca\"]\n\t},\n\t{\n\t\tcompany: \"The Hamilton Spectator\",\n\t\tbaseUrls: [\"www.thespec.com\"]\n\t},\n\t{\n\t\tcompany: \"Ottawa Citizen\",\n\t\tbaseUrls: [\"ottawacitizen.com\"]\n\t},\n\t{\n\t\tcompany: \"Windsor Star\",\n\t\tbaseUrls: [\"windsorstar.com\"]\n\t},\n\t{\n\t\tcompany: \"Edmonton Journal\",\n\t\tbaseUrls: [\"edmontonjournal.com\"]\n\t}\n];\nconst DUTCH_NEWS = [\n\t{\n\t\tcompany: \"Algemeen Dagblad (AD)\",\n\t\tbaseUrls: [\"www.ad.nl\"]\n\t},\n\t{\n\t\tcompany: \"NOS\",\n\t\tbaseUrls: [\"www.nos.nl\"]\n\t},\n\t{\n\t\tcompany: \"De Telegraaf\",\n\t\tbaseUrls: [\"www.telegraaf.nl\"]\n\t},\n\t{\n\t\tcompany: \"NU.nl\",\n\t\tbaseUrls: [\"www.nu.nl\"]\n\t},\n\t{\n\t\tcompany: \"Volkskrant\",\n\t\tbaseUrls: [\"www.volkskrant.nl\"]\n\t},\n\t{\n\t\tcompany: \"NRC Handelsblad\",\n\t\tbaseUrls: [\"www.nrc.nl\"]\n\t},\n\t{\n\t\tcompany: \"Trouw\",\n\t\tbaseUrls: [\"www.trouw.nl\"]\n\t},\n\t{\n\t\tcompany: \"Het Parool\",\n\t\tbaseUrls: [\"www.parool.nl\"]\n\t},\n\t{\n\t\tcompany: \"RTL Nieuws\",\n\t\tbaseUrls: [\"www.rtlnieuws.nl\"]\n\t},\n\t{\n\t\tcompany: \"BNR Nieuwsradio\",\n\t\tbaseUrls: [\"www.bnr.nl\"]\n\t},\n\t{\n\t\tcompany: \"Emerce\",\n\t\tbaseUrls: [\"www.emerce.nl\"]\n\t},\n\t{\n\t\tcompany: \"VPRO\",\n\t\tbaseUrls: [\"www.vpro.nl\"]\n\t},\n\t{\n\t\tcompany: \"De Gelderlander\",\n\t\tbaseUrls: [\"www.gelderlander.nl\"]\n\t},\n\t{\n\t\tcompany: \"Friesch Dagblad\",\n\t\tbaseUrls: [\"www.frieschdagblad.nl\"]\n\t},\n\t{\n\t\tcompany: \"De Stentor\",\n\t\tbaseUrls: [\"www.destentor.nl\"]\n\t},\n\t{\n\t\tcompany: \"Metro Nieuws\",\n\t\tbaseUrls: [\"www.metronieuws.nl\"]\n\t},\n\t{\n\t\tcompany: \"ANP\",\n\t\tbaseUrls: [\"www.anp.nl\"]\n\t},\n\t{\n\t\tcompany: \"Dagblad van het Noorden\",\n\t\tbaseUrls: [\"www.dvhn.nl\"]\n\t},\n\t{\n\t\tcompany: \"Reformatorisch Dagblad\",\n\t\tbaseUrls: [\"www.rd.nl\"]\n\t},\n\t{\n\t\tcompany: \"Financieele Dagblad\",\n\t\tbaseUrls: [\"www.fd.nl\"]\n\t}\n];\nconst ITALIAN_NEWS = [\n\t{\n\t\tcompany: \"ANSA\",\n\t\tbaseUrls: [\"www.ansa.it\", \"www.ansamed.info\"]\n\t},\n\t{\n\t\tcompany: \"Corriere della Sera\",\n\t\tbaseUrls: [\"www.corriere.it\"]\n\t},\n\t{\n\t\tcompany: \"la Repubblica\",\n\t\tbaseUrls: [\"www.repubblica.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Sole 24 Ore\",\n\t\tbaseUrls: [\"www.ilsole24ore.com\"]\n\t},\n\t{\n\t\tcompany: \"La Stampa\",\n\t\tbaseUrls: [\"www.lastampa.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Messaggero\",\n\t\tbaseUrls: [\"www.ilmessaggero.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Giornale\",\n\t\tbaseUrls: [\"www.ilgiornale.it\"]\n\t},\n\t{\n\t\tcompany: \"Avvenire\",\n\t\tbaseUrls: [\"www.avvenire.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Fatto Quotidiano\",\n\t\tbaseUrls: [\"www.ilfattoquotidiano.it\"]\n\t},\n\t{\n\t\tcompany: \"La Nazione\",\n\t\tbaseUrls: [\"www.lanazione.it\"]\n\t},\n\t{\n\t\tcompany: \"TgCom24\",\n\t\tbaseUrls: [\"www.tgcom24.mediaset.it\"]\n\t},\n\t{\n\t\tcompany: \"Sky TG24\",\n\t\tbaseUrls: [\"tg24.sky.it\"]\n\t},\n\t{\n\t\tcompany: \"Rai News\",\n\t\tbaseUrls: [\"www.rainews.it\"]\n\t},\n\t{\n\t\tcompany: \"Gazzetta dello Sport\",\n\t\tbaseUrls: [\"www.gazzetta.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Resto del Carlino\",\n\t\tbaseUrls: [\"www.ilrestodelcarlino.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Mattino\",\n\t\tbaseUrls: [\"www.ilmattino.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Secolo XIX\",\n\t\tbaseUrls: [\"www.ilsecoloxix.it\"]\n\t},\n\t{\n\t\tcompany: \"Italia Oggi\",\n\t\tbaseUrls: [\"www.italiaoggi.it\"]\n\t},\n\t{\n\t\tcompany: \"Libero\",\n\t\tbaseUrls: [\"www.liberoquotidiano.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Tirreno\",\n\t\tbaseUrls: [\"www.iltirreno.it\"]\n\t}\n];\nconst BELGIUM_NEWS = [\n\t{\n\t\tcompany: \"Het Laatste Nieuws (HLN)\",\n\t\tbaseUrls: [\"www.hln.be\"]\n\t},\n\t{\n\t\tcompany: \"Nieuwsblad\",\n\t\tbaseUrls: [\"www.nieuwsblad.be\"]\n\t},\n\t{\n\t\tcompany: \"RTBF\",\n\t\tbaseUrls: [\"www.rtbf.be\"]\n\t},\n\t{\n\t\tcompany: \"Sudinfo\",\n\t\tbaseUrls: [\"www.sudinfo.be\"]\n\t},\n\t{\n\t\tcompany: \"7sur7\",\n\t\tbaseUrls: [\"www.7sur7.be\"]\n\t},\n\t{\n\t\tcompany: \"Le Soir\",\n\t\tbaseUrls: [\"www.lesoir.be\"]\n\t},\n\t{\n\t\tcompany: \"De Standaard\",\n\t\tbaseUrls: [\"www.standaard.be\"]\n\t},\n\t{\n\t\tcompany: \"VRT NWS\",\n\t\tbaseUrls: [\"www.vrt.be\"]\n\t},\n\t{\n\t\tcompany: \"La Libre\",\n\t\tbaseUrls: [\"www.lalibre.be\"]\n\t},\n\t{\n\t\tcompany: \"Gazet van Antwerpen\",\n\t\tbaseUrls: [\"www.gva.be\"]\n\t},\n\t{\n\t\tcompany: \"Het Belang van Limburg\",\n\t\tbaseUrls: [\"www.hbvl.be\"]\n\t},\n\t{\n\t\tcompany: \"De Morgen\",\n\t\tbaseUrls: [\"www.demorgen.be\"]\n\t},\n\t{\n\t\tcompany: \"L'Avenir\",\n\t\tbaseUrls: [\"www.lavenir.net\"]\n\t},\n\t{\n\t\tcompany: \"The Brussels Times\",\n\t\tbaseUrls: [\"www.brusselstimes.com\"]\n\t},\n\t{\n\t\tcompany: \"Metro Belgique\",\n\t\tbaseUrls: [\"nl.metrotime.be\"]\n\t},\n\t{\n\t\tcompany: \"Sudpresse\",\n\t\tbaseUrls: [\"www.sudpress.be\"]\n\t},\n\t{\n\t\tcompany: \"Flamish Radio and TV Broadcasting Organization (VRT)\",\n\t\tbaseUrls: [\"www.vrt.be\"]\n\t},\n\t{\n\t\tcompany: \"Knack\",\n\t\tbaseUrls: [\"www.knack.be\"]\n\t},\n\t{\n\t\tcompany: \"De Tijd\",\n\t\tbaseUrls: [\"www.tijd.be\"]\n\t},\n\t{\n\t\tcompany: \"BX1\",\n\t\tbaseUrls: [\"www.bx1.be\"]\n\t}\n];\nconst MEXICAN_NEWS = [\n\t{\n\t\tcompany: \"Televisa\",\n\t\tbaseUrls: [\"www.televisa.news\"]\n\t},\n\t{\n\t\tcompany: \"El Universal\",\n\t\tbaseUrls: [\"www.eluniversal.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Milenio\",\n\t\tbaseUrls: [\"www.milenio.com\"]\n\t},\n\t{\n\t\tcompany: \"Excélsior\",\n\t\tbaseUrls: [\"www.excelsior.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Reforma\",\n\t\tbaseUrls: [\"www.reforma.com\"]\n\t},\n\t{\n\t\tcompany: \"La Jornada\",\n\t\tbaseUrls: [\"www.jornada.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"El Financiero\",\n\t\tbaseUrls: [\"www.elfinanciero.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Proceso\",\n\t\tbaseUrls: [\"www.proceso.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"SDP Noticias\",\n\t\tbaseUrls: [\"www.sdpnoticias.com\"]\n\t},\n\t{\n\t\tcompany: \"Diario de Yucatán\",\n\t\tbaseUrls: [\"www.yucatan.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"El Economista\",\n\t\tbaseUrls: [\"www.eleconomista.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"El Heraldo de México\",\n\t\tbaseUrls: [\"www.heraldodemexico.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Noticieros Televisa\",\n\t\tbaseUrls: [\"noticieros.televisa.com\"]\n\t},\n\t{\n\t\tcompany: \"Expansión\",\n\t\tbaseUrls: [\"expansion.mx\"]\n\t},\n\t{\n\t\tcompany: \"La Razón\",\n\t\tbaseUrls: [\"www.razon.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Noroeste\",\n\t\tbaseUrls: [\"www.noroeste.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Uniradio Noticias\",\n\t\tbaseUrls: [\"www.uniradionoticias.com\"]\n\t},\n\t{\n\t\tcompany: \"El Imparcial\",\n\t\tbaseUrls: [\"www.elimparcial.com\"]\n\t},\n\t{\n\t\tcompany: \"Publimetro México\",\n\t\tbaseUrls: [\"www.publimetro.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Notimex\",\n\t\tbaseUrls: [\"www.notimex.gob.mx\"]\n\t}\n];\nconst SPANISH_NEWS = [\n\t{\n\t\tcompany: \"El País\",\n\t\tbaseUrls: [\"www.elpais.com\"]\n\t},\n\t{\n\t\tcompany: \"El Mundo\",\n\t\tbaseUrls: [\"www.elmundo.es\"]\n\t},\n\t{\n\t\tcompany: \"ABC\",\n\t\tbaseUrls: [\"www.abc.es\"]\n\t},\n\t{\n\t\tcompany: \"La Vanguardia\",\n\t\tbaseUrls: [\"www.lavanguardia.com\"]\n\t},\n\t{\n\t\tcompany: \"El Confidencial\",\n\t\tbaseUrls: [\"www.elconfidencial.com\"]\n\t},\n\t{\n\t\tcompany: \"La Razón\",\n\t\tbaseUrls: [\"www.larazon.es\"]\n\t},\n\t{\n\t\tcompany: \"20 Minutos\",\n\t\tbaseUrls: [\"www.20minutos.es\"]\n\t},\n\t{\n\t\tcompany: \"Agencia EFE\",\n\t\tbaseUrls: [\"www.efe.com\"]\n\t},\n\t{\n\t\tcompany: \"Europa Press\",\n\t\tbaseUrls: [\"www.europapress.es\"]\n\t},\n\t{\n\t\tcompany: \"Diario AS\",\n\t\tbaseUrls: [\"www.as.com\"]\n\t},\n\t{\n\t\tcompany: \"Mundo Deportivo\",\n\t\tbaseUrls: [\"www.mundodeportivo.com\"]\n\t},\n\t{\n\t\tcompany: \"El Periódico\",\n\t\tbaseUrls: [\"www.elperiodico.com\"]\n\t},\n\t{\n\t\tcompany: \"Cinco Días\",\n\t\tbaseUrls: [\"www.cincodias.com\"]\n\t},\n\t{\n\t\tcompany: \"Expansión\",\n\t\tbaseUrls: [\"www.expansion.com\"]\n\t},\n\t{\n\t\tcompany: \"La Información\",\n\t\tbaseUrls: [\"www.lainformacion.com\"]\n\t},\n\t{\n\t\tcompany: \"OK Diario\",\n\t\tbaseUrls: [\"www.okdiario.com\"]\n\t},\n\t{\n\t\tcompany: \"Heraldo de Aragón\",\n\t\tbaseUrls: [\"www.heraldo.es\"]\n\t},\n\t{\n\t\tcompany: \"Faro de Vigo\",\n\t\tbaseUrls: [\"www.farodevigo.es\"]\n\t},\n\t{\n\t\tcompany: \"El Correo\",\n\t\tbaseUrls: [\"www.elcorreo.com\"]\n\t},\n\t{\n\t\tcompany: \"Diario Sur\",\n\t\tbaseUrls: [\"www.diariosur.es\"]\n\t}\n];\nconst INDIAN_NEWS = [\n\t{\n\t\tcompany: \"The Times of India\",\n\t\tbaseUrls: [\"timesofindia.indiatimes.com\"]\n\t},\n\t{\n\t\tcompany: \"The Hindu\",\n\t\tbaseUrls: [\"www.thehindu.com\"]\n\t},\n\t{\n\t\tcompany: \"Hindustan Times\",\n\t\tbaseUrls: [\"www.hindustantimes.com\"]\n\t},\n\t{\n\t\tcompany: \"NDTV\",\n\t\tbaseUrls: [\"www.ndtv.com\"]\n\t},\n\t{\n\t\tcompany: \"India Today\",\n\t\tbaseUrls: [\"www.indiatoday.in\"]\n\t},\n\t{\n\t\tcompany: \"Zee News\",\n\t\tbaseUrls: [\"zeenews.india.com\"]\n\t},\n\t{\n\t\tcompany: \"Indian Express\",\n\t\tbaseUrls: [\"indianexpress.com\"]\n\t},\n\t{\n\t\tcompany: \"The Economic Times\",\n\t\tbaseUrls: [\"economictimes.indiatimes.com\"]\n\t},\n\t{\n\t\tcompany: \"Deccan Herald\",\n\t\tbaseUrls: [\"www.deccanherald.com\"]\n\t},\n\t{\n\t\tcompany: \"DNA India\",\n\t\tbaseUrls: [\"www.dnaindia.com\"]\n\t},\n\t{\n\t\tcompany: \"The Print\",\n\t\tbaseUrls: [\"theprint.in\"]\n\t},\n\t{\n\t\tcompany: \"News18\",\n\t\tbaseUrls: [\"www.news18.com\"]\n\t},\n\t{\n\t\tcompany: \"Scroll.in\",\n\t\tbaseUrls: [\"scroll.in\"]\n\t},\n\t{\n\t\tcompany: \"Asian News International (ANI)\",\n\t\tbaseUrls: [\"www.aninews.in\"]\n\t},\n\t{\n\t\tcompany: \"Outlook India\",\n\t\tbaseUrls: [\"www.outlookindia.com\"]\n\t},\n\t{\n\t\tcompany: \"Business Standard\",\n\t\tbaseUrls: [\"www.business-standard.com\"]\n\t},\n\t{\n\t\tcompany: \"Mint\",\n\t\tbaseUrls: [\"www.livemint.com\"]\n\t},\n\t{\n\t\tcompany: \"OneIndia\",\n\t\tbaseUrls: [\"www.oneindia.com\"]\n\t},\n\t{\n\t\tcompany: \"Quint\",\n\t\tbaseUrls: [\"www.thequint.com\"]\n\t},\n\t{\n\t\tcompany: \"Free Press Journal\",\n\t\tbaseUrls: [\"www.freepressjournal.in\"]\n\t}\n];\nconst CHINESE_NEWS = [\n\t{\n\t\tcompany: \"Xinhua News Agency\",\n\t\tbaseUrls: [\"www.xinhuanet.com\"]\n\t},\n\t{\n\t\tcompany: \"China Central Television (CCTV)\",\n\t\tbaseUrls: [\"www.cctv.com\"]\n\t},\n\t{\n\t\tcompany: \"China Daily\",\n\t\tbaseUrls: [\"www.chinadaily.com.cn\"]\n\t},\n\t{\n\t\tcompany: \"CGTN (China Global Television Network)\",\n\t\tbaseUrls: [\"www.cgtn.com\"]\n\t},\n\t{\n\t\tcompany: \"People's Daily\",\n\t\tbaseUrls: [\"www.people.cn\"]\n\t},\n\t{\n\t\tcompany: \"Global Times\",\n\t\tbaseUrls: [\"www.globaltimes.cn\"]\n\t},\n\t{\n\t\tcompany: \"South China Morning Post\",\n\t\tbaseUrls: [\"www.scmp.com\"]\n\t},\n\t{\n\t\tcompany: \"Shanghai Daily\",\n\t\tbaseUrls: [\"www.shanghaidaily.com\"]\n\t},\n\t{\n\t\tcompany: \"China News Service\",\n\t\tbaseUrls: [\"www.ecns.cn\"]\n\t},\n\t{\n\t\tcompany: \"Caixin\",\n\t\tbaseUrls: [\"www.caixinglobal.com\"]\n\t},\n\t{\n\t\tcompany: \"The Paper\",\n\t\tbaseUrls: [\"www.thepaper.cn\"]\n\t},\n\t{\n\t\tcompany: \"Yicai Global\",\n\t\tbaseUrls: [\"www.yicaiglobal.com\"]\n\t},\n\t{\n\t\tcompany: \"Economic Daily\",\n\t\tbaseUrls: [\"www.ce.cn\"]\n\t},\n\t{\n\t\tcompany: \"21st Century Business Herald\",\n\t\tbaseUrls: [\"www.21jingji.com\"]\n\t},\n\t{\n\t\tcompany: \"Beijing Review\",\n\t\tbaseUrls: [\"www.bjreview.com\"]\n\t},\n\t{\n\t\tcompany: \"China Economic Net\",\n\t\tbaseUrls: [\"www.ce.cn\"]\n\t},\n\t{\n\t\tcompany: \"Tencent News\",\n\t\tbaseUrls: [\"news.qq.com\"]\n\t},\n\t{\n\t\tcompany: \"Sina News\",\n\t\tbaseUrls: [\"news.sina.com.cn\"]\n\t},\n\t{\n\t\tcompany: \"NetEase News\",\n\t\tbaseUrls: [\"news.163.com\"]\n\t},\n\t{\n\t\tcompany: \"Phoenix TV\",\n\t\tbaseUrls: [\"www.ifeng.com\"]\n\t}\n];\n/** news sites in Denmark */\nconst DANISH_NEWS = [\n\t{\n\t\tcompany: \"Politiken\",\n\t\tbaseUrls: [\"www.politiken.dk\"]\n\t},\n\t{\n\t\tcompany: \"Berlingske\",\n\t\tbaseUrls: [\"www.berlingske.dk\"]\n\t},\n\t{\n\t\tcompany: \"Jyllands-Posten\",\n\t\tbaseUrls: [\"jyllands-posten.dk\"]\n\t},\n\t{\n\t\tcompany: \"Ekstra Bladet\",\n\t\tbaseUrls: [\"ekstrabladet.dk\"]\n\t},\n\t{\n\t\tcompany: \"Information\",\n\t\tbaseUrls: [\"www.information.dk\"]\n\t},\n\t{\n\t\tcompany: \"BT\",\n\t\tbaseUrls: [\"www.bt.dk\"]\n\t},\n\t{\n\t\tcompany: \"Weekendavisen\",\n\t\tbaseUrls: [\"www.weekendavisen.dk\"]\n\t},\n\t{\n\t\tcompany: \"Fyens Stiftstidende\",\n\t\tbaseUrls: [\"fyens.dk\"]\n\t},\n\t{\n\t\tcompany: \"Kristeligt Dagblad\",\n\t\tbaseUrls: [\"www.kristeligt-dagblad.dk\"]\n\t},\n\t{\n\t\tcompany: \"Copenhagen Post\",\n\t\tbaseUrls: [\"cphpost.dk\"]\n\t},\n\t{\n\t\tcompany: \"Nordjyske Stiftstidende\",\n\t\tbaseUrls: [\"nordjyske.dk\"]\n\t},\n\t{\n\t\tcompany: \"Århus Stiftstidende\",\n\t\tbaseUrls: [\"stiften.dk\"]\n\t},\n\t{\n\t\tcompany: \"Dagbladet Børsen\",\n\t\tbaseUrls: [\"borsen.dk\"]\n\t},\n\t{\n\t\tcompany: \"Lokalavisen\",\n\t\tbaseUrls: [\"lokalavisen.dk\"]\n\t},\n\t{\n\t\tcompany: \"TV2 Nyheder\",\n\t\tbaseUrls: [\"tv2.dk\"]\n\t},\n\t{\n\t\tcompany: \"DR Nyheder\",\n\t\tbaseUrls: [\"dr.dk\"]\n\t},\n\t{\n\t\tcompany: \"Avisen Danmark\",\n\t\tbaseUrls: [\"avisen.dk\"]\n\t},\n\t{\n\t\tcompany: \"Fagbladet 3F\",\n\t\tbaseUrls: [\"fagbladet3f.dk\"]\n\t},\n\t{\n\t\tcompany: \"Herning Folkeblad\",\n\t\tbaseUrls: [\"herningfolkeblad.dk\"]\n\t},\n\t{\n\t\tcompany: \"Midtjyllands Avis\",\n\t\tbaseUrls: [\"midtjyllandsavis.dk\"]\n\t}\n];\nconst SWISS_NEWS = [\n\t{\n\t\tcompany: \"Neue Zürcher Zeitung (NZZ)\",\n\t\tbaseUrls: [\"www.nzz.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Swissinfo\",\n\t\tbaseUrls: [\"www.swissinfo.ch\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"20 Minuten\",\n\t\tbaseUrls: [\"www.20min.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Blick\",\n\t\tbaseUrls: [\"www.blick.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Le Temps\",\n\t\tbaseUrls: [\"www.letemps.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Tages-Anzeiger\",\n\t\tbaseUrls: [\"www.tagesanzeiger.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"SRF News\",\n\t\tbaseUrls: [\"www.srf.ch\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Luzerner Zeitung\",\n\t\tbaseUrls: [\"www.luzernerzeitung.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"La Tribune de Genève\",\n\t\tbaseUrls: [\"www.tdg.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Aargauer Zeitung\",\n\t\tbaseUrls: [\"www.aargauerzeitung.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"24 Heures\",\n\t\tbaseUrls: [\"www.24heures.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Radio Télévision Suisse (RTS)\",\n\t\tbaseUrls: [\"www.rts.ch\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Der Bund\",\n\t\tbaseUrls: [\"www.derbund.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Schweizer Radio und Fernsehen (SRF)\",\n\t\tbaseUrls: [\"www.srf.ch\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Basler Zeitung\",\n\t\tbaseUrls: [\"www.bazonline.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Handelszeitung\",\n\t\tbaseUrls: [\"www.handelszeitung.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Watson\",\n\t\tbaseUrls: [\"www.watson.ch\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Le Matin\",\n\t\tbaseUrls: [\"www.lematin.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"La Liberté\",\n\t\tbaseUrls: [\"www.laliberte.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Swiss Times\",\n\t\tbaseUrls: [\"www.theswisstimes.ch\"],\n\t\ttype: [\"digital-first\"]\n\t}\n];\nconst AUSTRALIAN_NEWS = [\n\t{\n\t\tcompany: \"ABC News\",\n\t\tbaseUrls: [\"www.abc.net.au\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"The Sydney Morning Herald\",\n\t\tbaseUrls: [\"www.smh.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Australian\",\n\t\tbaseUrls: [\"www.theaustralian.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Herald Sun\",\n\t\tbaseUrls: [\"www.heraldsun.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"9News\",\n\t\tbaseUrls: [\"www.9news.com.au\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"SBS News\",\n\t\tbaseUrls: [\"www.sbs.com.au\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"digital\",\n\t\t\t\"multicultural\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"The Age\",\n\t\tbaseUrls: [\"www.theage.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sky News Australia\",\n\t\tbaseUrls: [\"www.skynews.com.au\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Australian Financial Review\",\n\t\tbaseUrls: [\"www.afr.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"news.com.au\",\n\t\tbaseUrls: [\"www.news.com.au\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"The Courier-Mail\",\n\t\tbaseUrls: [\"www.couriermail.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"7NEWS\",\n\t\tbaseUrls: [\"7news.com.au\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The West Australian\",\n\t\tbaseUrls: [\"www.thewest.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Daily Telegraph\",\n\t\tbaseUrls: [\"www.dailytelegraph.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Guardian Australia\",\n\t\tbaseUrls: [\"www.theguardian.com/au\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Crikey\",\n\t\tbaseUrls: [\"www.crikey.com.au\"],\n\t\ttype: [\"digital-first\", \"independent\"]\n\t},\n\t{\n\t\tcompany: \"AAP (Australian Associated Press)\",\n\t\tbaseUrls: [\"www.aap.com.au\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"NT News\",\n\t\tbaseUrls: [\"www.ntnews.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Canberra Times\",\n\t\tbaseUrls: [\"www.canberratimes.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Brisbane Times\",\n\t\tbaseUrls: [\"www.brisbanetimes.com.au\"],\n\t\ttype: [\"digital-first\"]\n\t}\n];\nconst JAPANESE_NEWS = [\n\t{\n\t\tcompany: \"The Asahi Shimbun\",\n\t\tbaseUrls: [\"www.asahi.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Yomiuri Shimbun\",\n\t\tbaseUrls: [\"www.yomiuri.co.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Nikkei\",\n\t\tbaseUrls: [\"www.nikkei.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Mainichi Shimbun\",\n\t\tbaseUrls: [\"mainichi.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Kyodo News\",\n\t\tbaseUrls: [\"www.kyodonews.jp\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Japan Times\",\n\t\tbaseUrls: [\"www.japantimes.co.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"NHK\",\n\t\tbaseUrls: [\"www.nhk.or.jp\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Fuji News Network (FNN)\",\n\t\tbaseUrls: [\"www.fnn.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sankei Shimbun\",\n\t\tbaseUrls: [\"www.sankei.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Toyo Keizai\",\n\t\tbaseUrls: [\"www.toyokeizai.net\"],\n\t\ttype: [\"digital\", \"business magazine\"]\n\t},\n\t{\n\t\tcompany: \"Hokkaido Shimbun\",\n\t\tbaseUrls: [\"www.hokkaido-np.co.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Shizuoka Shimbun\",\n\t\tbaseUrls: [\"www.at-s.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Tokyo Shimbun\",\n\t\tbaseUrls: [\"www.tokyo-np.co.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Yahoo Japan News\",\n\t\tbaseUrls: [\"news.yahoo.co.jp\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"TBS News\",\n\t\tbaseUrls: [\"news.tbs.co.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Nippon TV News 24 Japan\",\n\t\tbaseUrls: [\"www.news24.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Jiji Press\",\n\t\tbaseUrls: [\"www.jiji.com\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"TV Asahi News\",\n\t\tbaseUrls: [\"news.tv-asahi.co.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"WOWOW Prime News\",\n\t\tbaseUrls: [\"www.wowow.co.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Kansai Telecasting Corporation (KTV)\",\n\t\tbaseUrls: [\"www.ktv.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t}\n];\nconst SOUTH_KOREAN_NEWS = [\n\t{\n\t\tcompany: \"Yonhap News Agency\",\n\t\tbaseUrls: [\"www.yonhapnews.co.kr\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Korea Herald\",\n\t\tbaseUrls: [\"www.koreaherald.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Korea Times\",\n\t\tbaseUrls: [\"www.koreatimes.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Chosun Ilbo\",\n\t\tbaseUrls: [\"www.chosun.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"JoongAng Ilbo\",\n\t\tbaseUrls: [\"www.joongang.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Dong-A Ilbo\",\n\t\tbaseUrls: [\"www.donga.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"MBC News\",\n\t\tbaseUrls: [\"www.imnews.imbc.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"SBS News\",\n\t\tbaseUrls: [\"news.sbs.co.kr\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"KBS News\",\n\t\tbaseUrls: [\"news.kbs.co.kr\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Hankyoreh\",\n\t\tbaseUrls: [\"english.hani.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Maeil Business Newspaper\",\n\t\tbaseUrls: [\"www.mk.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"MoneyToday\",\n\t\tbaseUrls: [\"www.mt.co.kr\"],\n\t\ttype: [\"digital-first\", \"business\"]\n\t},\n\t{\n\t\tcompany: \"Seoul Shinmun\",\n\t\tbaseUrls: [\"www.seoul.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"OhmyNews\",\n\t\tbaseUrls: [\"www.ohmynews.com\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"News1 Korea\",\n\t\tbaseUrls: [\"www.news1.kr\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Asia Business Daily\",\n\t\tbaseUrls: [\"www.asiae.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Herald Business\",\n\t\tbaseUrls: [\"biz.heraldcorp.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"eDaily\",\n\t\tbaseUrls: [\"www.edaily.co.kr\"],\n\t\ttype: [\"digital-first\", \"business\"]\n\t},\n\t{\n\t\tcompany: \"Seoul Economic Daily\",\n\t\tbaseUrls: [\"www.sedaily.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"JTBC News\",\n\t\tbaseUrls: [\"news.jtbc.co.kr\"],\n\t\ttype: [\"television\", \"digital\"]\n\t}\n];\nconst TURKISH_NEWS = [\n\t{\n\t\tcompany: \"Anadolu Agency (AA)\",\n\t\tbaseUrls: [\"www.aa.com.tr\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Hürriyet\",\n\t\tbaseUrls: [\"www.hurriyet.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sabah\",\n\t\tbaseUrls: [\"www.sabah.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Milliyet\",\n\t\tbaseUrls: [\"www.milliyet.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"TRT World\",\n\t\tbaseUrls: [\"www.trtworld.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"CNN Türk\",\n\t\tbaseUrls: [\"www.cnnturk.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sozcu\",\n\t\tbaseUrls: [\"www.sozcu.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Daily Sabah\",\n\t\tbaseUrls: [\"www.dailysabah.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Yeni Şafak\",\n\t\tbaseUrls: [\"www.yenisafak.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Habertürk\",\n\t\tbaseUrls: [\"www.haberturk.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"BirGün\",\n\t\tbaseUrls: [\"www.birgun.net\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Türkiye Gazetesi\",\n\t\tbaseUrls: [\"www.turkiyegazetesi.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Cumhuriyet\",\n\t\tbaseUrls: [\"www.cumhuriyet.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Diken\",\n\t\tbaseUrls: [\"www.diken.com.tr\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"NTV\",\n\t\tbaseUrls: [\"www.ntv.com.tr\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Ensonhaber\",\n\t\tbaseUrls: [\"www.ensonhaber.com\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"T24\",\n\t\tbaseUrls: [\"www.t24.com.tr\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Karar\",\n\t\tbaseUrls: [\"www.karar.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Gazete Duvar\",\n\t\tbaseUrls: [\"www.gazeteduvar.com.tr\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Bloomberg HT\",\n\t\tbaseUrls: [\"www.bloomberght.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t}\n];\nconst NORWEGIAN_NEWS = [\n\t{\n\t\tcompany: \"Aftenposten\",\n\t\tbaseUrls: [\"www.aftenposten.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Verdens Gang (VG)\",\n\t\tbaseUrls: [\"www.vg.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Dagbladet\",\n\t\tbaseUrls: [\"www.dagbladet.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"NRK\",\n\t\tbaseUrls: [\"www.nrk.no\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Dagens Næringsliv\",\n\t\tbaseUrls: [\"www.dn.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Nettavisen\",\n\t\tbaseUrls: [\"www.nettavisen.no\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Klassekampen\",\n\t\tbaseUrls: [\"www.klassekampen.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Morgenbladet\",\n\t\tbaseUrls: [\"www.morgenbladet.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"E24\",\n\t\tbaseUrls: [\"www.e24.no\"],\n\t\ttype: [\"digital-first\", \"business\"]\n\t},\n\t{\n\t\tcompany: \"TV2\",\n\t\tbaseUrls: [\"www.tv2.no\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Bergens Tidende\",\n\t\tbaseUrls: [\"www.bt.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Adresseavisen\",\n\t\tbaseUrls: [\"www.adressa.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Stavanger Aftenblad\",\n\t\tbaseUrls: [\"www.aftenbladet.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Fædrelandsvennen\",\n\t\tbaseUrls: [\"www.fvn.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"ABC Nyheter\",\n\t\tbaseUrls: [\"www.abcnyheter.no\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Romerikes Blad\",\n\t\tbaseUrls: [\"www.rb.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sunnmørsposten\",\n\t\tbaseUrls: [\"www.smp.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Finansavisen\",\n\t\tbaseUrls: [\"www.finansavisen.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Nordlys\",\n\t\tbaseUrls: [\"www.nordlys.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Hamar Arbeiderblad\",\n\t\tbaseUrls: [\"www.h-a.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t}\n];\n\n//#endregion\n//#region src/NoDefaultValue.ts\nfunction createConstant$1(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n/**\n* A constant which indicates that a particular\n* type/property was not given a _default value_.\n*/\nconst NO_DEFAULT_VALUE = createConstant$1(\"no-default-value\");\n\n//#endregion\n//#region src/NotApplicable.ts\nconst NOT_APPLICABLE = Symbol(\"not applicable\");\n\n//#endregion\n//#region src/NotDefined.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n/**\n* **NOT_DEFINED**\n*\n* A runtime constant which indicates that some value has not been defined (yet).\n*/\nconst NOT_DEFINED = createConstant(\"not-defined\");\n\n//#endregion\n//#region src/NumericChar.ts\n/**\n* **NUMERIC_CHAR**\n*\n* A tuple containing all numeric characters.\n*\n* **Related:** `NumericChar`\n*/\nconst NUMERIC_CHAR = [\n\t\"0\",\n\t\"1\",\n\t\"2\",\n\t\"3\",\n\t\"4\",\n\t\"5\",\n\t\"6\",\n\t\"7\",\n\t\"8\",\n\t\"9\"\n];\nconst NON_ZERO_NUMERIC_CHAR = [\n\t\"1\",\n\t\"2\",\n\t\"3\",\n\t\"4\",\n\t\"5\",\n\t\"6\",\n\t\"7\",\n\t\"8\",\n\t\"9\"\n];\n\n//#endregion\n//#region src/NumericDigit.ts\n/**\n* **NUMERIC_DIGIT**\n*\n* A tuple of all numeric digits.\n*\n* **Related:** `Digit`\n*/\nconst NUMERIC_DIGIT = [\n\t0,\n\t1,\n\t2,\n\t3,\n\t4,\n\t5,\n\t6,\n\t7,\n\t8,\n\t9\n];\n\n//#endregion\n//#region src/Phone.ts\nconst PHONE_FORMAT = [\n\t\"Dashed (e.g., 456-555-1212)\",\n\t\"Dotted (e.g., 456.555.1212)\",\n\t\"ParaSpaced (e.g., (456) 555 1212)\",\n\t\"ParaDashed (e.g., (456) 555-1212)\"\n];\n/**\n* **PHONE_COUNTRY_CODES**\n*\n* `[code, 3 letter country code, 2 letter country code]`\n*/\nconst PHONE_COUNTRY_CODES = [\n\t[\n\t\t\"886\",\n\t\t\"TWN\",\n\t\t\"TW\"\n\t],\n\t[\n\t\t\"93\",\n\t\t\"AFG\",\n\t\t\"AF\"\n\t],\n\t[\n\t\t\"355\",\n\t\t\"ALB\",\n\t\t\"AL\"\n\t],\n\t[\n\t\t\"213\",\n\t\t\"DZA\",\n\t\t\"DZ\"\n\t],\n\t[\n\t\t\"1-684\",\n\t\t\"ASM\",\n\t\t\"AS\"\n\t],\n\t[\n\t\t\"376\",\n\t\t\"AND\",\n\t\t\"AD\"\n\t],\n\t[\n\t\t\"244\",\n\t\t\"AGO\",\n\t\t\"AO\"\n\t],\n\t[\n\t\t\"1-264\",\n\t\t\"AIA\",\n\t\t\"AI\"\n\t],\n\t[\n\t\t\"672\",\n\t\t\"ATA\",\n\t\t\"AQ\"\n\t],\n\t[\n\t\t\"1-268\",\n\t\t\"ATG\",\n\t\t\"AG\"\n\t],\n\t[\n\t\t\"54\",\n\t\t\"ARG\",\n\t\t\"AR\"\n\t],\n\t[\n\t\t\"374\",\n\t\t\"ARM\",\n\t\t\"AM\"\n\t],\n\t[\n\t\t\"297\",\n\t\t\"ABW\",\n\t\t\"AW\"\n\t],\n\t[\n\t\t\"61\",\n\t\t\"AUS\",\n\t\t\"AU\"\n\t],\n\t[\n\t\t\"43\",\n\t\t\"AUT\",\n\t\t\"AT\"\n\t],\n\t[\n\t\t\"994\",\n\t\t\"AZE\",\n\t\t\"AZ\"\n\t],\n\t[\n\t\t\"1-242\",\n\t\t\"BHS\",\n\t\t\"BS\"\n\t],\n\t[\n\t\t\"973\",\n\t\t\"BHR\",\n\t\t\"BH\"\n\t],\n\t[\n\t\t\"880\",\n\t\t\"BGD\",\n\t\t\"BD\"\n\t],\n\t[\n\t\t\"1-246\",\n\t\t\"BRB\",\n\t\t\"BB\"\n\t],\n\t[\n\t\t\"375\",\n\t\t\"BLR\",\n\t\t\"BY\"\n\t],\n\t[\n\t\t\"32\",\n\t\t\"BEL\",\n\t\t\"BE\"\n\t],\n\t[\n\t\t\"501\",\n\t\t\"BLZ\",\n\t\t\"BZ\"\n\t],\n\t[\n\t\t\"229\",\n\t\t\"BEN\",\n\t\t\"BJ\"\n\t],\n\t[\n\t\t\"1-441\",\n\t\t\"BMU\",\n\t\t\"BM\"\n\t],\n\t[\n\t\t\"975\",\n\t\t\"BTN\",\n\t\t\"BT\"\n\t],\n\t[\n\t\t\"591\",\n\t\t\"BOL\",\n\t\t\"BO\"\n\t],\n\t[\n\t\t\"599\",\n\t\t\"BES\",\n\t\t\"BQ\"\n\t],\n\t[\n\t\t\"387\",\n\t\t\"BIH\",\n\t\t\"BA\"\n\t],\n\t[\n\t\t\"267\",\n\t\t\"BWA\",\n\t\t\"BW\"\n\t],\n\t[\n\t\t\"47\",\n\t\t\"BVT\",\n\t\t\"BV\"\n\t],\n\t[\n\t\t\"55\",\n\t\t\"BRA\",\n\t\t\"BR\"\n\t],\n\t[\n\t\t\"246\",\n\t\t\"IOT\",\n\t\t\"IO\"\n\t],\n\t[\n\t\t\"1-284\",\n\t\t\"VGB\",\n\t\t\"VG\"\n\t],\n\t[\n\t\t\"673\",\n\t\t\"BRN\",\n\t\t\"BN\"\n\t],\n\t[\n\t\t\"359\",\n\t\t\"BGR\",\n\t\t\"BG\"\n\t],\n\t[\n\t\t\"226\",\n\t\t\"BFA\",\n\t\t\"BF\"\n\t],\n\t[\n\t\t\"257\",\n\t\t\"BDI\",\n\t\t\"BI\"\n\t],\n\t[\n\t\t\"238\",\n\t\t\"CPV\",\n\t\t\"CV\"\n\t],\n\t[\n\t\t\"855\",\n\t\t\"KHM\",\n\t\t\"KH\"\n\t],\n\t[\n\t\t\"237\",\n\t\t\"CMR\",\n\t\t\"CM\"\n\t],\n\t[\n\t\t\"1\",\n\t\t\"CAN\",\n\t\t\"CA\"\n\t],\n\t[\n\t\t\"1-345\",\n\t\t\"CYM\",\n\t\t\"KY\"\n\t],\n\t[\n\t\t\"236\",\n\t\t\"CAF\",\n\t\t\"CF\"\n\t],\n\t[\n\t\t\"235\",\n\t\t\"TCD\",\n\t\t\"TD\"\n\t],\n\t[\n\t\t\"56\",\n\t\t\"CHL\",\n\t\t\"CL\"\n\t],\n\t[\n\t\t\"86\",\n\t\t\"CHN\",\n\t\t\"CN\"\n\t],\n\t[\n\t\t\"852\",\n\t\t\"HKG\",\n\t\t\"HK\"\n\t],\n\t[\n\t\t\"853\",\n\t\t\"MAC\",\n\t\t\"MO\"\n\t],\n\t[\n\t\t\"61\",\n\t\t\"CXR\",\n\t\t\"CX\"\n\t],\n\t[\n\t\t\"61\",\n\t\t\"CCK\",\n\t\t\"CC\"\n\t],\n\t[\n\t\t\"57\",\n\t\t\"COL\",\n\t\t\"CO\"\n\t],\n\t[\n\t\t\"269\",\n\t\t\"COM\",\n\t\t\"KM\"\n\t],\n\t[\n\t\t\"242\",\n\t\t\"COG\",\n\t\t\"CG\"\n\t],\n\t[\n\t\t\"682\",\n\t\t\"COK\",\n\t\t\"CK\"\n\t],\n\t[\n\t\t\"506\",\n\t\t\"CRI\",\n\t\t\"CR\"\n\t],\n\t[\n\t\t\"385\",\n\t\t\"HRV\",\n\t\t\"HR\"\n\t],\n\t[\n\t\t\"53\",\n\t\t\"CUB\",\n\t\t\"CU\"\n\t],\n\t[\n\t\t\"599\",\n\t\t\"CUW\",\n\t\t\"CW\"\n\t],\n\t[\n\t\t\"357\",\n\t\t\"CYP\",\n\t\t\"CY\"\n\t],\n\t[\n\t\t\"420\",\n\t\t\"CZE\",\n\t\t\"CZ\"\n\t],\n\t[\n\t\t\"225\",\n\t\t\"CIV\",\n\t\t\"CI\"\n\t],\n\t[\n\t\t\"850\",\n\t\t\"PRK\",\n\t\t\"KP\"\n\t],\n\t[\n\t\t\"243\",\n\t\t\"COD\",\n\t\t\"CD\"\n\t],\n\t[\n\t\t\"45\",\n\t\t\"DNK\",\n\t\t\"DK\"\n\t],\n\t[\n\t\t\"253\",\n\t\t\"DJI\",\n\t\t\"DJ\"\n\t],\n\t[\n\t\t\"1-767\",\n\t\t\"DMA\",\n\t\t\"DM\"\n\t],\n\t[\n\t\t\"1-809\",\n\t\t\"DOM\",\n\t\t\"DO\"\n\t],\n\t[\n\t\t\"1-829\",\n\t\t\"DOM\",\n\t\t\"DO\"\n\t],\n\t[\n\t\t\"1-849\",\n\t\t\"DOM\",\n\t\t\"DO\"\n\t],\n\t[\n\t\t\"593\",\n\t\t\"ECU\",\n\t\t\"EC\"\n\t],\n\t[\n\t\t\"20\",\n\t\t\"EGY\",\n\t\t\"EG\"\n\t],\n\t[\n\t\t\"503\",\n\t\t\"SLV\",\n\t\t\"SV\"\n\t],\n\t[\n\t\t\"240\",\n\t\t\"GNQ\",\n\t\t\"GQ\"\n\t],\n\t[\n\t\t\"291\",\n\t\t\"ERI\",\n\t\t\"ER\"\n\t],\n\t[\n\t\t\"372\",\n\t\t\"EST\",\n\t\t\"EE\"\n\t],\n\t[\n\t\t\"268\",\n\t\t\"SWZ\",\n\t\t\"SZ\"\n\t],\n\t[\n\t\t\"251\",\n\t\t\"ETH\",\n\t\t\"ET\"\n\t],\n\t[\n\t\t\"500\",\n\t\t\"FLK\",\n\t\t\"FK\"\n\t],\n\t[\n\t\t\"298\",\n\t\t\"FRO\",\n\t\t\"FO\"\n\t],\n\t[\n\t\t\"679\",\n\t\t\"FJI\",\n\t\t\"FJ\"\n\t],\n\t[\n\t\t\"358\",\n\t\t\"FIN\",\n\t\t\"FI\"\n\t],\n\t[\n\t\t\"33\",\n\t\t\"FRA\",\n\t\t\"FR\"\n\t],\n\t[\n\t\t\"594\",\n\t\t\"GUF\",\n\t\t\"GF\"\n\t],\n\t[\n\t\t\"689\",\n\t\t\"PYF\",\n\t\t\"PF\"\n\t],\n\t[\n\t\t\"262\",\n\t\t\"ATF\",\n\t\t\"TF\"\n\t],\n\t[\n\t\t\"241\",\n\t\t\"GAB\",\n\t\t\"GA\"\n\t],\n\t[\n\t\t\"220\",\n\t\t\"GMB\",\n\t\t\"GM\"\n\t],\n\t[\n\t\t\"995\",\n\t\t\"GEO\",\n\t\t\"GE\"\n\t],\n\t[\n\t\t\"49\",\n\t\t\"DEU\",\n\t\t\"DE\"\n\t],\n\t[\n\t\t\"233\",\n\t\t\"GHA\",\n\t\t\"GH\"\n\t],\n\t[\n\t\t\"350\",\n\t\t\"GIB\",\n\t\t\"GI\"\n\t],\n\t[\n\t\t\"30\",\n\t\t\"GRC\",\n\t\t\"GR\"\n\t],\n\t[\n\t\t\"299\",\n\t\t\"GRL\",\n\t\t\"GL\"\n\t],\n\t[\n\t\t\"1-473\",\n\t\t\"GRD\",\n\t\t\"GD\"\n\t],\n\t[\n\t\t\"590\",\n\t\t\"GLP\",\n\t\t\"GP\"\n\t],\n\t[\n\t\t\"1-671\",\n\t\t\"GUM\",\n\t\t\"GU\"\n\t],\n\t[\n\t\t\"502\",\n\t\t\"GTM\",\n\t\t\"GT\"\n\t],\n\t[\n\t\t\"44\",\n\t\t\"GGY\",\n\t\t\"GG\"\n\t],\n\t[\n\t\t\"224\",\n\t\t\"GIN\",\n\t\t\"GN\"\n\t],\n\t[\n\t\t\"245\",\n\t\t\"GNB\",\n\t\t\"GW\"\n\t],\n\t[\n\t\t\"592\",\n\t\t\"GUY\",\n\t\t\"GY\"\n\t],\n\t[\n\t\t\"509\",\n\t\t\"HTI\",\n\t\t\"HT\"\n\t],\n\t[\n\t\t\"672\",\n\t\t\"HMD\",\n\t\t\"HM\"\n\t],\n\t[\n\t\t\"39-06\",\n\t\t\"VAT\",\n\t\t\"VA\"\n\t],\n\t[\n\t\t\"504\",\n\t\t\"HND\",\n\t\t\"HN\"\n\t],\n\t[\n\t\t\"36\",\n\t\t\"HUN\",\n\t\t\"HU\"\n\t],\n\t[\n\t\t\"354\",\n\t\t\"ISL\",\n\t\t\"IS\"\n\t],\n\t[\n\t\t\"91\",\n\t\t\"IND\",\n\t\t\"IN\"\n\t],\n\t[\n\t\t\"62\",\n\t\t\"IDN\",\n\t\t\"ID\"\n\t],\n\t[\n\t\t\"98\",\n\t\t\"IRN\",\n\t\t\"IR\"\n\t],\n\t[\n\t\t\"964\",\n\t\t\"IRQ\",\n\t\t\"IQ\"\n\t],\n\t[\n\t\t\"353\",\n\t\t\"IRL\",\n\t\t\"IE\"\n\t],\n\t[\n\t\t\"44\",\n\t\t\"IMN\",\n\t\t\"IM\"\n\t],\n\t[\n\t\t\"972\",\n\t\t\"ISR\",\n\t\t\"IL\"\n\t],\n\t[\n\t\t\"39\",\n\t\t\"ITA\",\n\t\t\"IT\"\n\t],\n\t[\n\t\t\"1-876\",\n\t\t\"JAM\",\n\t\t\"JM\"\n\t],\n\t[\n\t\t\"81\",\n\t\t\"JPN\",\n\t\t\"JP\"\n\t],\n\t[\n\t\t\"44\",\n\t\t\"JEY\",\n\t\t\"JE\"\n\t],\n\t[\n\t\t\"962\",\n\t\t\"JOR\",\n\t\t\"JO\"\n\t],\n\t[\n\t\t\"7\",\n\t\t\"KAZ\",\n\t\t\"KZ\"\n\t],\n\t[\n\t\t\"254\",\n\t\t\"KEN\",\n\t\t\"KE\"\n\t],\n\t[\n\t\t\"686\",\n\t\t\"KIR\",\n\t\t\"KI\"\n\t],\n\t[\n\t\t\"965\",\n\t\t\"KWT\",\n\t\t\"KW\"\n\t],\n\t[\n\t\t\"996\",\n\t\t\"KGZ\",\n\t\t\"KG\"\n\t],\n\t[\n\t\t\"856\",\n\t\t\"LAO\",\n\t\t\"LA\"\n\t],\n\t[\n\t\t\"371\",\n\t\t\"LVA\",\n\t\t\"LV\"\n\t],\n\t[\n\t\t\"961\",\n\t\t\"LBN\",\n\t\t\"LB\"\n\t],\n\t[\n\t\t\"266\",\n\t\t\"LSO\",\n\t\t\"LS\"\n\t],\n\t[\n\t\t\"231\",\n\t\t\"LBR\",\n\t\t\"LR\"\n\t],\n\t[\n\t\t\"218\",\n\t\t\"LBY\",\n\t\t\"LY\"\n\t],\n\t[\n\t\t\"423\",\n\t\t\"LIE\",\n\t\t\"LI\"\n\t],\n\t[\n\t\t\"370\",\n\t\t\"LTU\",\n\t\t\"LT\"\n\t],\n\t[\n\t\t\"352\",\n\t\t\"LUX\",\n\t\t\"LU\"\n\t],\n\t[\n\t\t\"261\",\n\t\t\"MDG\",\n\t\t\"MG\"\n\t],\n\t[\n\t\t\"265\",\n\t\t\"MWI\",\n\t\t\"MW\"\n\t],\n\t[\n\t\t\"60\",\n\t\t\"MYS\",\n\t\t\"MY\"\n\t],\n\t[\n\t\t\"960\",\n\t\t\"MDV\",\n\t\t\"MV\"\n\t],\n\t[\n\t\t\"223\",\n\t\t\"MLI\",\n\t\t\"ML\"\n\t],\n\t[\n\t\t\"356\",\n\t\t\"MLT\",\n\t\t\"MT\"\n\t],\n\t[\n\t\t\"692\",\n\t\t\"MHL\",\n\t\t\"MH\"\n\t],\n\t[\n\t\t\"596\",\n\t\t\"MTQ\",\n\t\t\"MQ\"\n\t],\n\t[\n\t\t\"222\",\n\t\t\"MRT\",\n\t\t\"MR\"\n\t],\n\t[\n\t\t\"230\",\n\t\t\"MUS\",\n\t\t\"MU\"\n\t],\n\t[\n\t\t\"262\",\n\t\t\"MYT\",\n\t\t\"YT\"\n\t],\n\t[\n\t\t\"52\",\n\t\t\"MEX\",\n\t\t\"MX\"\n\t],\n\t[\n\t\t\"691\",\n\t\t\"FSM\",\n\t\t\"FM\"\n\t],\n\t[\n\t\t\"377\",\n\t\t\"MCO\",\n\t\t\"MC\"\n\t],\n\t[\n\t\t\"976\",\n\t\t\"MNG\",\n\t\t\"MN\"\n\t],\n\t[\n\t\t\"382\",\n\t\t\"MNE\",\n\t\t\"ME\"\n\t],\n\t[\n\t\t\"1-664\",\n\t\t\"MSR\",\n\t\t\"MS\"\n\t],\n\t[\n\t\t\"212\",\n\t\t\"MAR\",\n\t\t\"MA\"\n\t],\n\t[\n\t\t\"258\",\n\t\t\"MOZ\",\n\t\t\"MZ\"\n\t],\n\t[\n\t\t\"95\",\n\t\t\"MMR\",\n\t\t\"MM\"\n\t],\n\t[\n\t\t\"264\",\n\t\t\"NAM\",\n\t\t\"NA\"\n\t],\n\t[\n\t\t\"674\",\n\t\t\"NRU\",\n\t\t\"NR\"\n\t],\n\t[\n\t\t\"977\",\n\t\t\"NPL\",\n\t\t\"NP\"\n\t],\n\t[\n\t\t\"31\",\n\t\t\"NLD\",\n\t\t\"NL\"\n\t],\n\t[\n\t\t\"687\",\n\t\t\"NCL\",\n\t\t\"NC\"\n\t],\n\t[\n\t\t\"64\",\n\t\t\"NZL\",\n\t\t\"NZ\"\n\t],\n\t[\n\t\t\"505\",\n\t\t\"NIC\",\n\t\t\"NI\"\n\t],\n\t[\n\t\t\"227\",\n\t\t\"NER\",\n\t\t\"NE\"\n\t],\n\t[\n\t\t\"234\",\n\t\t\"NGA\",\n\t\t\"NG\"\n\t],\n\t[\n\t\t\"683\",\n\t\t\"NIU\",\n\t\t\"NU\"\n\t],\n\t[\n\t\t\"672\",\n\t\t\"NFK\",\n\t\t\"NF\"\n\t],\n\t[\n\t\t\"1-670\",\n\t\t\"MNP\",\n\t\t\"MP\"\n\t],\n\t[\n\t\t\"47\",\n\t\t\"NOR\",\n\t\t\"NO\"\n\t],\n\t[\n\t\t\"968\",\n\t\t\"OMN\",\n\t\t\"OM\"\n\t],\n\t[\n\t\t\"92\",\n\t\t\"PAK\",\n\t\t\"PK\"\n\t],\n\t[\n\t\t\"680\",\n\t\t\"PLW\",\n\t\t\"PW\"\n\t],\n\t[\n\t\t\"507\",\n\t\t\"PAN\",\n\t\t\"PA\"\n\t],\n\t[\n\t\t\"675\",\n\t\t\"PNG\",\n\t\t\"PG\"\n\t],\n\t[\n\t\t\"595\",\n\t\t\"PRY\",\n\t\t\"PY\"\n\t],\n\t[\n\t\t\"51\",\n\t\t\"PER\",\n\t\t\"PE\"\n\t],\n\t[\n\t\t\"63\",\n\t\t\"PHL\",\n\t\t\"PH\"\n\t],\n\t[\n\t\t\"870\",\n\t\t\"PCN\",\n\t\t\"PN\"\n\t],\n\t[\n\t\t\"48\",\n\t\t\"POL\",\n\t\t\"PL\"\n\t],\n\t[\n\t\t\"351\",\n\t\t\"PRT\",\n\t\t\"PT\"\n\t],\n\t[\n\t\t\"974\",\n\t\t\"QAT\",\n\t\t\"QA\"\n\t],\n\t[\n\t\t\"82\",\n\t\t\"KOR\",\n\t\t\"KR\"\n\t],\n\t[\n\t\t\"373\",\n\t\t\"MDA\",\n\t\t\"MD\"\n\t],\n\t[\n\t\t\"40\",\n\t\t\"ROU\",\n\t\t\"RO\"\n\t],\n\t[\n\t\t\"7\",\n\t\t\"RUS\",\n\t\t\"RU\"\n\t],\n\t[\n\t\t\"250\",\n\t\t\"RWA\",\n\t\t\"RW\"\n\t],\n\t[\n\t\t\"262\",\n\t\t\"REU\",\n\t\t\"RE\"\n\t],\n\t[\n\t\t\"590\",\n\t\t\"BLM\",\n\t\t\"BL\"\n\t],\n\t[\n\t\t\"290\",\n\t\t\"SHN\",\n\t\t\"SH\"\n\t],\n\t[\n\t\t\"1-869\",\n\t\t\"KNA\",\n\t\t\"KN\"\n\t],\n\t[\n\t\t\"1-758\",\n\t\t\"LCA\",\n\t\t\"LC\"\n\t],\n\t[\n\t\t\"590\",\n\t\t\"MAF\",\n\t\t\"MF\"\n\t],\n\t[\n\t\t\"508\",\n\t\t\"SPM\",\n\t\t\"PM\"\n\t],\n\t[\n\t\t\"1-784\",\n\t\t\"VCT\",\n\t\t\"VC\"\n\t],\n\t[\n\t\t\"685\",\n\t\t\"WSM\",\n\t\t\"WS\"\n\t],\n\t[\n\t\t\"378\",\n\t\t\"SMR\",\n\t\t\"SM\"\n\t],\n\t[\n\t\t\"239\",\n\t\t\"STP\",\n\t\t\"ST\"\n\t],\n\t[\n\t\t\"966\",\n\t\t\"SAU\",\n\t\t\"SA\"\n\t],\n\t[\n\t\t\"221\",\n\t\t\"SEN\",\n\t\t\"SN\"\n\t],\n\t[\n\t\t\"381\",\n\t\t\"SRB\",\n\t\t\"RS\"\n\t],\n\t[\n\t\t\"248\",\n\t\t\"SYC\",\n\t\t\"SC\"\n\t],\n\t[\n\t\t\"232\",\n\t\t\"SLE\",\n\t\t\"SL\"\n\t],\n\t[\n\t\t\"65\",\n\t\t\"SGP\",\n\t\t\"SG\"\n\t],\n\t[\n\t\t\"1-721\",\n\t\t\"SXM\",\n\t\t\"SX\"\n\t],\n\t[\n\t\t\"421\",\n\t\t\"SVK\",\n\t\t\"SK\"\n\t],\n\t[\n\t\t\"386\",\n\t\t\"SVN\",\n\t\t\"SI\"\n\t],\n\t[\n\t\t\"677\",\n\t\t\"SLB\",\n\t\t\"SB\"\n\t],\n\t[\n\t\t\"252\",\n\t\t\"SOM\",\n\t\t\"SO\"\n\t],\n\t[\n\t\t\"27\",\n\t\t\"ZAF\",\n\t\t\"ZA\"\n\t],\n\t[\n\t\t\"500\",\n\t\t\"SGS\",\n\t\t\"GS\"\n\t],\n\t[\n\t\t\"211\",\n\t\t\"SSD\",\n\t\t\"SS\"\n\t],\n\t[\n\t\t\"34\",\n\t\t\"ESP\",\n\t\t\"ES\"\n\t],\n\t[\n\t\t\"94\",\n\t\t\"LKA\",\n\t\t\"LK\"\n\t],\n\t[\n\t\t\"970\",\n\t\t\"PSE\",\n\t\t\"PS\"\n\t],\n\t[\n\t\t\"249\",\n\t\t\"SDN\",\n\t\t\"SD\"\n\t],\n\t[\n\t\t\"597\",\n\t\t\"SUR\",\n\t\t\"SR\"\n\t],\n\t[\n\t\t\"47\",\n\t\t\"SJM\",\n\t\t\"SJ\"\n\t],\n\t[\n\t\t\"46\",\n\t\t\"SWE\",\n\t\t\"SE\"\n\t],\n\t[\n\t\t\"41\",\n\t\t\"CHE\",\n\t\t\"CH\"\n\t],\n\t[\n\t\t\"963\",\n\t\t\"SYR\",\n\t\t\"SY\"\n\t],\n\t[\n\t\t\"992\",\n\t\t\"TJK\",\n\t\t\"TJ\"\n\t],\n\t[\n\t\t\"66\",\n\t\t\"THA\",\n\t\t\"TH\"\n\t],\n\t[\n\t\t\"389\",\n\t\t\"MKD\",\n\t\t\"MK\"\n\t],\n\t[\n\t\t\"670\",\n\t\t\"TLS\",\n\t\t\"TL\"\n\t],\n\t[\n\t\t\"228\",\n\t\t\"TGO\",\n\t\t\"TG\"\n\t],\n\t[\n\t\t\"690\",\n\t\t\"TKL\",\n\t\t\"TK\"\n\t],\n\t[\n\t\t\"676\",\n\t\t\"TON\",\n\t\t\"TO\"\n\t],\n\t[\n\t\t\"1-868\",\n\t\t\"TTO\",\n\t\t\"TT\"\n\t],\n\t[\n\t\t\"216\",\n\t\t\"TUN\",\n\t\t\"TN\"\n\t],\n\t[\n\t\t\"90\",\n\t\t\"TUR\",\n\t\t\"TR\"\n\t],\n\t[\n\t\t\"993\",\n\t\t\"TKM\",\n\t\t\"TM\"\n\t],\n\t[\n\t\t\"1-649\",\n\t\t\"TCA\",\n\t\t\"TC\"\n\t],\n\t[\n\t\t\"688\",\n\t\t\"TUV\",\n\t\t\"TV\"\n\t],\n\t[\n\t\t\"256\",\n\t\t\"UGA\",\n\t\t\"UG\"\n\t],\n\t[\n\t\t\"380\",\n\t\t\"UKR\",\n\t\t\"UA\"\n\t],\n\t[\n\t\t\"971\",\n\t\t\"ARE\",\n\t\t\"AE\"\n\t],\n\t[\n\t\t\"44\",\n\t\t\"GBR\",\n\t\t\"GB\"\n\t],\n\t[\n\t\t\"255\",\n\t\t\"TZA\",\n\t\t\"TZ\"\n\t],\n\t[\n\t\t\"1-340\",\n\t\t\"VIR\",\n\t\t\"VI\"\n\t],\n\t[\n\t\t\"1\",\n\t\t\"USA\",\n\t\t\"US\"\n\t],\n\t[\n\t\t\"598\",\n\t\t\"URY\",\n\t\t\"UY\"\n\t],\n\t[\n\t\t\"998\",\n\t\t\"UZB\",\n\t\t\"UZ\"\n\t],\n\t[\n\t\t\"678\",\n\t\t\"VUT\",\n\t\t\"VU\"\n\t],\n\t[\n\t\t\"58\",\n\t\t\"VEN\",\n\t\t\"VE\"\n\t],\n\t[\n\t\t\"84\",\n\t\t\"VNM\",\n\t\t\"VN\"\n\t],\n\t[\n\t\t\"681\",\n\t\t\"WLF\",\n\t\t\"WF\"\n\t],\n\t[\n\t\t\"212\",\n\t\t\"ESH\",\n\t\t\"EH\"\n\t],\n\t[\n\t\t\"967\",\n\t\t\"YEM\",\n\t\t\"YE\"\n\t],\n\t[\n\t\t\"260\",\n\t\t\"ZMB\",\n\t\t\"ZM\"\n\t],\n\t[\n\t\t\"263\",\n\t\t\"ZWE\",\n\t\t\"ZW\"\n\t],\n\t[\n\t\t\"358\",\n\t\t\"ALA\",\n\t\t\"AX\"\n\t]\n];\n\n//#endregion\n//#region src/PluralExceptions.ts\n/**\n* **PLURAL_EXCEPTIONS**\n*\n* An array of tuples of the form `[singular, plural]`.\n*/\nconst PLURAL_EXCEPTIONS_OLD = [\n\t[\"photo\", \"photos\"],\n\t[\"piano\", \"pianos\"],\n\t[\"halo\", \"halos\"],\n\t[\"foot\", \"feet\"],\n\t[\"man\", \"men\"],\n\t[\"woman\", \"women\"],\n\t[\"person\", \"people\"],\n\t[\"mouse\", \"mice\"],\n\t[\"series\", \"series\"],\n\t[\"sheep\", \"sheep\"],\n\t[\"money\", \"monies\"],\n\t[\"deer\", \"deer\"]\n];\n/**\n* **PLURAL_EXCEPTIONS**\n*\n* A lookup table that maps singular words to their _plural_ counterpart.\n*/\nconst PLURAL_EXCEPTIONS = {\n\tphoto: \"photos\",\n\tpiano: \"pianos\",\n\thalo: \"halos\",\n\tfoot: \"feet\",\n\tman: \"men\",\n\twoman: \"women\",\n\tperson: \"people\",\n\tmouse: \"mice\",\n\tseries: \"series\",\n\tsheep: \"sheep\",\n\tmoney: \"monies\",\n\tdeer: \"deer\",\n\tgoose: \"geese\",\n\tchild: \"children\",\n\ttooth: \"teeth\",\n\tox: \"oxen\",\n\tbasis: \"bases\",\n\tradius: \"radii\",\n\tsyllabus: \"syllabi\",\n\tice: \"ice\",\n\tfish: \"fish\",\n\tmeans: \"means\",\n\tphenomenon: \"phenomena\",\n\tcriterion: \"criteria\",\n\tdatum: \"data\",\n\tmemorandum: \"memoranda\",\n\tbacterium: \"bacteria\",\n\tstratum: \"strata\",\n\tcurriculum: \"curricula\",\n\tindex: \"indices\",\n\tappendix: \"appendices\",\n\tvortex: \"vortices\",\n\tbison: \"bison\",\n\taxis: \"axes\",\n\tantenna: \"antennas\",\n\tcactus: \"cacti\",\n\tcorpus: \"corpora\",\n\tbeau: \"beaux\",\n\tdie: \"dice\",\n\tellipsis: \"ellipses\",\n\terratum: \"errata\",\n\tfocus: \"foci\",\n\tformula: \"formulas\",\n\tfungus: \"fungi\",\n\tgenus: \"genera\",\n\tgraffito: \"graffiti\",\n\tgrouse: \"grouses\",\n\thalf: \"halves\",\n\thoof: \"hooves\",\n\thypothesis: \"hypothesis\",\n\tlarva: \"larvae\",\n\tlibretto: \"libretti\",\n\tloaf: \"loaves\",\n\tlocus: \"loci\",\n\tmedium: \"mediums\",\n\tminutia: \"minutiae\",\n\tnucleus: \"nuclei\",\n\toasis: \"oases\",\n\topus: \"opuses\",\n\tovum: \"ova\",\n\tparenthesis: \"parentheses\",\n\tphylum: \"phyla\",\n\tquiz: \"quizzes\",\n\treferendum: \"referendums\",\n\tself: \"selves\",\n\tspecies: \"species\",\n\tstimulus: \"stimuli\",\n\tswine: \"swine\",\n\tsynopsis: \"synopses\",\n\tthesis: \"theses\",\n\tthief: \"thieves\",\n\tvertex: \"vertexes\",\n\twife: \"wives\",\n\twolf: \"wolves\"\n};\n\n//#endregion\n//#region src/ProxmoxConstants.ts\nconst PROXMOX_CT_STATE = [\n\t\"started\",\n\t\"stopped\",\n\t\"enabled\",\n\t\"disabled\",\n\t\"ignored\"\n];\n\n//#endregion\n//#region src/RepoConstants.ts\n/**\n* common sources for source code repositories\n*/\nconst REPO_SOURCES = [\n\t\"github\",\n\t\"bitbucket\",\n\t\"gitlab\",\n\t\"codecommit\",\n\t\"local\"\n];\n/**\n* page types you'd expect to find in a source code repository.\n*/\nconst REPO_PAGE_TYPES = [\n\t\"repo\",\n\t\"commits\",\n\t\"author\",\n\t\"org\",\n\t\"profile\",\n\t\"issues\",\n\t\"actions\",\n\t\"followers\",\n\t\"following\",\n\t\"docs\",\n\t\"unknown\"\n];\nconst REPO_SOURCE_LOOKUP = {\n\tgithub: [`https://github.com`, \"https://github.io\"],\n\tbitbucket: [\"https://bitbucket.org\"],\n\tgitlab: [\"https://gitlab.com\"],\n\tcodecommit: [\"https://aws.amazon.com/codecommit/\"],\n\tlocal: []\n};\nconst GITHUB_INSIGHT_CATEGORY_LOOKUP = {\n\tpulse: \"pulse\",\n\tcontributors: \"graphs/contributors\",\n\tcommunity: \"graphs/community\",\n\tstandards: \"community\",\n\ttraffic: \"graphs/traffic\",\n\tcommits: \"graphs/commit-activity\",\n\tcode_frequency: \"graphs/code-frequency\",\n\tdependencies: \"network/dependencies\",\n\tdependents: \"network/dependents\",\n\tdependabot: \"network/updates\",\n\tnetwork: \"network\",\n\tforks: \"forks\",\n\tpeople: \"people\"\n};\n\n//#endregion\n//#region src/Retail.ts\n/**\n* Amazon's DNS entries (for retail business)\n*/\nconst AMAZON_DNS = [\n\t\"www.amazon.com\",\n\t`www.amazon.co.uk`,\n\t`www.amazon.fr`,\n\t`www.amazon.de`,\n\t`www.amazon.it`,\n\t`www.amazon.es`\n];\nconst WALMART_DNS = [\n\t\"www.walmart.com\",\n\t\"www.walmart.ca\",\n\t\"www.walmart.com.mx\"\n];\nconst APPLE_DNS = [\"store.apple.com\", \"www.apple.com\"];\nconst HOME_DEPOT_DNS = [\"www.homedepot.com\", \"www.homedepot.ca\"];\nconst EBAY_DNS = [\n\t\"www.ebay.com\",\n\t\"www.ebay.co.uk\",\n\t\"www.ebay.fr\",\n\t\"www.ebay.de\",\n\t\"www.ebay.it\"\n];\nconst TARGET_DNS = [\"www.target.com\"];\nconst ETSY_DNS = [\"www.etsy.com\"];\nconst COSTCO_DNS = [\n\t\"www.costco.com\",\n\t\"www.costco.co.uk\",\n\t\"www.costco.ca\"\n];\nconst CHEWY_DNS = [\"www.chewy.com\"];\nconst BEST_BUY_DNS = [\"www.bestbuy.com\", \"www.bestbuy.ca\"];\nconst WAYFAIR_DNS = [\n\t\"www.wayfair.com\",\n\t\"www.wayfair.ca\",\n\t\"www.wayfair.co.uk\"\n];\nconst NIKE_DNS = [\"www.nike.com\"];\nconst MACYS_DNS = [\"www.macys.com\"];\nconst LOWES_DNS = [\"www.lowes.com\"];\nconst IKEA_DNS = [\"www.ikea.com\"];\nconst DELL_DNS = [\"www.dell.com\"];\n/** DNS for H&M retailer */\nconst HM_DNS = [\"www2.hm.com\"];\nconst ZARA_DNS = [\"www.zara.com\"];\nconst KROGER_DNS = [\"www.kroger.com\"];\nconst WALGREENS_DNS = [\"www.walgreens.com\"];\nconst CVS_DNS = [\"www.cvs.com\"];\nconst WHOLE_FOODS_DNS = [\"www.wholefoodsmarket.com\", \"www.wholefoodsmarket.co.uk\"];\n\n//#endregion\n//#region src/SafeEncoding.ts\nconst SAFE_ENCODING__QUOTES = {\n\t[`\"`]: \"^<dq>\",\n\t[`'`]: \"^<sq>\",\n\t[`\\``]: \"^<grave>\"\n};\nconst SAFE_ENCODING__WHITESPACE = {\n\t\" \": \"^<sp>\",\n\t\"\t\": \"^<tab>\",\n\t\"\\n\": \"^<n>\",\n\t\"\\r\": \"^<r>\"\n};\nconst SAFE_ENCODING__BRACKETS = {\n\t\"[\": \"^<osb>\",\n\t\"]\": \"^<csb>\",\n\t\"(\": \"^<op>\",\n\t\")\": \"^<cp>\",\n\t\"{\": \"^<oc>\",\n\t\"}\": \"^<cc>\"\n};\nconst SAFE_ENCODING_KEYS = {\n\t...SAFE_ENCODING__BRACKETS,\n\t...SAFE_ENCODING__QUOTES,\n\t...SAFE_ENCODING__WHITESPACE\n};\n\n//#endregion\n//#region src/Shape.ts\nconst SHAPE_PREFIXES = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"null\",\n\t\"undefined\",\n\t\"unknown\",\n\t\"opt::\",\n\t\"union::\",\n\t\"tuple::\",\n\t\"array::\",\n\t\"object\",\n\t\"record::\"\n];\nconst SHAPE_DELIMITER = \"||,||\";\n\n//#endregion\n//#region src/SimpleTokens.ts\nconst SIMPLE_DICT_VALUES = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"unknown\",\n\t\"Opt<string>\",\n\t\"Opt<number>\",\n\t\"Opt<boolean>\",\n\t\"Opt<unknown>\"\n];\nconst SIMPLE_SET_TYPES = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"unknown\",\n\t\"Opt<string>\",\n\t\"Opt<number>\",\n\t\"Opt<boolean>\",\n\t\"Opt<unknown>\"\n];\nconst SIMPLE_SCALAR_TOKENS = [\n\t\"string\",\n\t\"number\",\n\t`string(TOKEN)`,\n\t`number(TOKEN)`,\n\t\"boolean\",\n\t\"true\",\n\t\"false\",\n\t\"null\",\n\t\"undefined\",\n\t\"unknown\",\n\t\"any\",\n\t\"never\"\n];\nconst SIMPLE_OPT_SCALAR_TOKENS = [\n\t\"Opt<string>\",\n\t\"Opt<number>\",\n\t\"Opt<boolean>\",\n\t\"Opt<true>\",\n\t\"Opt<false>\",\n\t\"Opt<null>\",\n\t\"Opt<undefined>\",\n\t\"Opt<unknown>\",\n\t\"Opt<any>\",\n\t\"Opt<string(TOKEN)>\",\n\t\"Opt<number(TOKEN)>\",\n\t\"Opt<undefined>\"\n];\nconst SIMPLE_FN_TOKENS = [\n\t\"Fn<none> => Unknown\",\n\t\"Fn<string> => Unknown\",\n\t\"Fn<number> => Unknown\",\n\t\"Fn<boolean> => Unknown\"\n];\nconst SIMPLE_UNION_TOKENS = [`Union(TOKEN)`];\nconst SIMPLE_MAP_KEYS = [\n\t\"string\",\n\t\"number\",\n\t\"Dict\",\n\t\"Dict<string, string>\",\n\t\"Dict<string, number>\",\n\t\"Dict<string, boolean>\",\n\t\"Dict<string, unknown>\",\n\t\"Dict<string, Opt<string>>\",\n\t\"Dict<string, Opt<number>>\",\n\t\"Dict<string, Opt<boolean>>\"\n];\nconst SIMPLE_MAP_VALUES = [\n\t...SIMPLE_MAP_KEYS,\n\t\"boolean\",\n\t\"unknown\",\n\t\"undefined\",\n\t\"Dict\",\n\t\"Array\",\n\t\"Dict<string, Opt<string>>\",\n\t\"Dict<string, Opt<number>>\",\n\t\"Dict<string, Opt<boolean>>\",\n\t\"Dict<string, Opt<unknown>>\"\n];\nconst SIMPLE_DICT_TOKENS = [\n\t\"Dict\",\n\t\"Dict<string, string>\",\n\t\"Dict<string, number>\",\n\t\"Dict<string, boolean>\",\n\t\"Dict<string, unknown>\",\n\t\"Dict<string, Opt<string>>\",\n\t\"Dict<string, Opt<number>>\",\n\t\"Dict<string, Opt<boolean>>\",\n\t\"Dict<string, Opt<unknown>>\",\n\t\"Dict<{TOKEN: TOKEN}>\",\n\t\"Dict<{TOKEN: TOKEN, TOKEN: TOKEN}>\"\n];\nconst SIMPLE_ARRAY_TOKENS = [\n\t\"Array\",\n\t\"Array<string>\",\n\t\"Array<string(TOKEN)>\",\n\t\"Array<number>\",\n\t\"Array<number(TOKEN)>\",\n\t\"Array<boolean>\",\n\t\"Array<unknown>\",\n\t`Array<Dict>`,\n\t`Array<Set>`,\n\t`Array<Map>`\n];\nconst SIMPLE_MAP_TOKENS = [\n\t\"Map\",\n\t\"Map<TOKEN, TOKEN>\",\n\t\"WeakMap\"\n];\nconst SIMPLE_SET_TOKENS = [\"Set\", \"Set<TOKEN>\"];\nconst SIMPLE_CONTAINER_TOKENS = [\n\t...SIMPLE_DICT_TOKENS,\n\t...SIMPLE_ARRAY_TOKENS,\n\t...SIMPLE_MAP_TOKENS,\n\t...SIMPLE_SET_TOKENS\n];\n/**\n* **SIMPLE_TOKENS**\n*\n* A list of strings literals which can be used\n* to express the type of a variable or token\n* in relatively course granularity\n*/\nconst SIMPLE_TOKENS = [\n\t...SIMPLE_SCALAR_TOKENS,\n\t...SIMPLE_OPT_SCALAR_TOKENS,\n\t...SIMPLE_CONTAINER_TOKENS,\n\t...SIMPLE_UNION_TOKENS\n];\n\n//#endregion\n//#region src/SingularNounEnding.ts\n/**\n* Singular nouns typically end in the characters represented by this array.\n*\n* **Related:** `SingularNounEnding`\n*/\nconst SINGULAR_NOUN_ENDINGS = [\n\t\"s\",\n\t\"sh\",\n\t\"ch\",\n\t\"x\",\n\t\"z\",\n\t\"o\"\n];\n\n//#endregion\n//#region src/Social.ts\nconst SOCIAL_MEDIA = [\n\t{\n\t\tname: \"Facebook\",\n\t\tdescription: \"Connect with friends, family, and communities worldwide on one of the largest social networks.\",\n\t\tbaseUrls: [\"https://www.facebook.com\"],\n\t\tprofileUrl: \"https://www.facebook.com/:user_id\",\n\t\tapproximateUserSize: 3e9,\n\t\ttickerSymbol: \"META\"\n\t},\n\t{\n\t\tname: \"YouTube\",\n\t\tdescription: \"A platform for sharing and watching videos, connecting creators with audiences globally.\",\n\t\tbaseUrls: [\"https://www.youtube.com\"],\n\t\tprofileUrl: \"https://www.youtube.com/user/:user_id\",\n\t\tapproximateUserSize: 25e8,\n\t\ttickerSymbol: \"GOOGL\"\n\t},\n\t{\n\t\tname: \"WhatsApp\",\n\t\tdescription: \"A secure messaging app for personal and business communication.\",\n\t\tbaseUrls: [\"https://www.whatsapp.com\", \"https://wa.me\"],\n\t\tprofileUrl: \"https://wa.me/:user_id\",\n\t\tapproximateUserSize: 2e9,\n\t\ttickerSymbol: \"META\"\n\t},\n\t{\n\t\tname: \"Instagram\",\n\t\tdescription: \"Share photos and videos with friends and followers through posts, stories, and reels.\",\n\t\tbaseUrls: [\"https://www.instagram.com\"],\n\t\tprofileUrl: \"https://www.instagram.com/:user_id\",\n\t\tapproximateUserSize: 2e9,\n\t\ttickerSymbol: \"META\"\n\t},\n\t{\n\t\tname: \"TikTok\",\n\t\tdescription: \"A short-form video platform known for its highly engaging content and viral trends.\",\n\t\tbaseUrls: [\"https://www.tiktok.com\"],\n\t\tprofileUrl: \"https://www.tiktok.com/@:user_id\",\n\t\tapproximateUserSize: 16e8\n\t},\n\t{\n\t\tname: \"WeChat\",\n\t\tdescription: \"China's popular messaging and lifestyle app, integrating social media and mobile payments.\",\n\t\tbaseUrls: [\"https://www.wechat.com\"],\n\t\tprofileUrl: \"https://www.wechat.com/:user_id\",\n\t\tapproximateUserSize: 13e8\n\t},\n\t{\n\t\tname: \"Facebook Messenger\",\n\t\tdescription: \"A messaging app used for personal and business interactions, seamlessly integrated with Facebook.\",\n\t\tbaseUrls: [\"https://www.messenger.com\"],\n\t\tprofileUrl: \"https://www.messenger.com/t/:user_id\",\n\t\tapproximateUserSize: 1e9,\n\t\ttickerSymbol: \"META\"\n\t},\n\t{\n\t\tname: \"Telegram\",\n\t\tdescription: \"A messaging platform focused on privacy, with channels and group capabilities.\",\n\t\tbaseUrls: [\"https://www.telegram.org\", \"https://t.me\"],\n\t\tprofileUrl: \"https://t.me/:user_id\",\n\t\tapproximateUserSize: 9e8\n\t},\n\t{\n\t\tname: \"Snapchat\",\n\t\tdescription: \"A multimedia app popular for its disappearing messages and creative filters.\",\n\t\tbaseUrls: [\"https://www.snapchat.com\"],\n\t\tprofileUrl: \"https://www.snapchat.com/add/:user_id\",\n\t\tapproximateUserSize: 8e8,\n\t\ttickerSymbol: \"SNAP\"\n\t},\n\t{\n\t\tname: \"Douyin\",\n\t\tdescription: \"The Chinese version of TikTok, with similar short-form video content tailored for China.\",\n\t\tbaseUrls: [\"https://www.douyin.com\"],\n\t\tprofileUrl: \"https://www.douyin.com/user/:user_id\",\n\t\tapproximateUserSize: 75e7\n\t},\n\t{\n\t\tname: \"LinkedIn\",\n\t\tdescription: \"The largest professional networking platform, where users connect for career opportunities, insights, and business networking.\",\n\t\tbaseUrls: [\"https://www.linkedin.com\"],\n\t\tprofileUrl: \"https://www.linkedin.com/in/:user_id\",\n\t\tapproximateUserSize: 93e7,\n\t\ttickerSymbol: \"MSFT\"\n\t},\n\t{\n\t\tname: \"X (formerly Twitter)\",\n\t\tdescription: \"A platform for real-time updates, news sharing, and public discourse with a focus on brief, impactful posts.\",\n\t\tbaseUrls: [\"https://www.twitter.com\", \"https://x.com\"],\n\t\tprofileUrl: \"https://twitter.com/:user_id\",\n\t\tapproximateUserSize: 54e7\n\t},\n\t{\n\t\tname: \"Pinterest\",\n\t\tdescription: \"A visually-driven platform for sharing ideas, DIY projects, fashion, and more.\",\n\t\tbaseUrls: [\"https://www.pinterest.com\"],\n\t\tprofileUrl: \"https://www.pinterest.com/:user_id\",\n\t\tapproximateUserSize: 46e7,\n\t\ttickerSymbol: \"PINS\"\n\t},\n\t{\n\t\tname: \"Reddit\",\n\t\tdescription: \"A community-driven platform organized into niche forums or 'subreddits' focused on various topics.\",\n\t\tbaseUrls: [\"https://www.reddit.com\"],\n\t\tprofileUrl: \"https://www.reddit.com/user/:user_id\",\n\t\tapproximateUserSize: 43e7\n\t},\n\t{\n\t\tname: \"Clubhouse\",\n\t\tdescription: \"A voice-based social network where users engage in live audio conversations on various topics.\",\n\t\tbaseUrls: [\"https://www.clubhouse.com\"],\n\t\tprofileUrl: \"https://www.clubhouse.com/:user_id\",\n\t\tapproximateUserSize: 1e7\n\t},\n\t{\n\t\tname: \"Discord\",\n\t\tdescription: \"Originally aimed at gamers, Discord is now widely used by various communities for group chat, video, and voice calls.\",\n\t\tbaseUrls: [\"https://www.discord.com\", \"https://discord.com\"],\n\t\tprofileUrl: \"https://discord.com/users/:user_id\",\n\t\tapproximateUserSize: 3e8\n\t}\n];\n\n//#endregion\n//#region src/Tailwind.ts\nconst TW_HUE_NEUTRAL = {\n\tslate: 262,\n\tgray: 270,\n\tzinc: 269,\n\tneutral: 270,\n\tstone: 273\n};\nconst TW_HUE_VIBRANT = {\n\tred: 24,\n\torange: 44,\n\tamber: 79,\n\tyellow: 100,\n\tlime: 132,\n\tgreen: 144,\n\temerald: 159,\n\tteal: 182,\n\tcyan: 192,\n\tsky: 219,\n\tblue: 240,\n\tindigo: 268,\n\tviolet: 283,\n\tpurple: 294,\n\tfuchsia: 319,\n\tpink: 334,\n\trose: 15\n};\nconst TW_HUE_STATIC = {\n\tblack: 0,\n\twhite: 106.37411429114086\n};\n/**\n* **TW_COLOR_HUE**\n*\n* The _hue_ values for [TailwindCSS](https://tailwindcss.com/docs/customizing-colors)\n* when moved into the **oklch** color space.\n*/\nconst TW_HUE = {\n\t...TW_HUE_NEUTRAL,\n\t...TW_HUE_VIBRANT,\n\t...TW_HUE_STATIC\n};\nconst TW_LUMINOSITY = {\n\t\"50\": 97.78,\n\t\"100\": 93.56,\n\t\"200\": 88.11,\n\t\"300\": 82.67,\n\t\"400\": 74.22,\n\t\"500\": 64.78,\n\t\"600\": 57.33,\n\t\"700\": 46.89,\n\t\"800\": 39.44,\n\t\"900\": 32,\n\t\"950\": 23.78\n};\nconst TW_LUMIN_50 = TW_LUMINOSITY[\"50\"];\nconst TW_LUMIN_100 = TW_LUMINOSITY[\"100\"];\nconst TW_LUMIN_200 = TW_LUMINOSITY[\"200\"];\nconst TW_LUMIN_300 = TW_LUMINOSITY[\"300\"];\nconst TW_LUMIN_400 = TW_LUMINOSITY[\"400\"];\nconst TW_LUMIN_500 = TW_LUMINOSITY[\"500\"];\nconst TW_LUMIN_600 = TW_LUMINOSITY[\"600\"];\nconst TW_LUMIN_700 = TW_LUMINOSITY[\"700\"];\nconst TW_LUMIN_800 = TW_LUMINOSITY[\"800\"];\nconst TW_LUMIN_900 = TW_LUMINOSITY[\"900\"];\nconst TW_LUMIN_950 = TW_LUMINOSITY[\"950\"];\n/**\n* **TW_CHROMA**\n*\n* The possible chroma values from Tailwind CSS when using\n* the **okhsl** color model.\n*\n* **Related:** `TW_CHROMA_50`, `TW_CHROMA_100`, ...\n*/\nconst TW_CHROMA = {\n\t\"50\": .0108,\n\t\"100\": .0321,\n\t\"200\": .0609,\n\t\"300\": .0908,\n\t\"400\": .1398,\n\t\"500\": .1472,\n\t\"600\": .1299,\n\t\"700\": .1067,\n\t\"800\": .0898,\n\t\"900\": .0726,\n\t\"950\": .054\n};\nconst TW_CHROMA_50 = TW_CHROMA[\"50\"];\nconst TW_CHROMA_100 = TW_CHROMA[\"100\"];\nconst TW_CHROMA_200 = TW_CHROMA[\"200\"];\nconst TW_CHROMA_300 = TW_CHROMA[\"300\"];\nconst TW_CHROMA_400 = TW_CHROMA[\"400\"];\nconst TW_CHROMA_500 = TW_CHROMA[\"500\"];\nconst TW_CHROMA_600 = TW_CHROMA[\"600\"];\nconst TW_CHROMA_700 = TW_CHROMA[\"700\"];\nconst TW_CHROMA_800 = TW_CHROMA[\"800\"];\nconst TW_CHROMA_900 = TW_CHROMA[\"900\"];\nconst TW_CHROMA_950 = TW_CHROMA[\"950\"];\n/**\n* The list of \"targets\" where Tailwind color string references\n* can be applied to. These domains are prefixes to the color string\n* when used (e.g., `bg-green-500`)\n*/\nconst TW_COLOR_TARGETS = [\n\t\"bg\",\n\t\"text\",\n\t\"border\",\n\t\"ring\",\n\t\"shadow\",\n\t\"border\"\n];\nconst TW_MODIFIERS_CORE = [\n\t\"dark\",\n\t\"focus\",\n\t\"hover\",\n\t\"active\",\n\t\"visited\",\n\t\"disabled\"\n];\nconst TW_MODIFIERS_ORDER = [\n\t\"first\",\n\t\"last\",\n\t\"odd\",\n\t\"even\"\n];\nconst TW_MODIFIERS_RELN = [\n\t\"focus-within\",\n\t\"focus-visible\",\n\t\"checked\",\n\t\"peer-invalid\",\n\t`peer-checked/{{string}}`\n];\n/**\n* The list of page size prefixes which Tailwind provides for adjusting to\n* device size. These are the defaults and can be customized.\n*/\nconst TW_MODIFIERS_SIZING = [\n\t\"sm\",\n\t\"md\",\n\t\"lg\",\n\t\"xl\",\n\t\"2xl\"\n];\n/**\n* The list of _modifiers_ which you can target as a prefix to a Tailwind\n* class (e.g., `focus:...`, `hover:...`).\n*/\nconst TW_MODIFIERS = [\n\t...TW_MODIFIERS_CORE,\n\t...TW_MODIFIERS_ORDER,\n\t...TW_MODIFIERS_SIZING,\n\t...TW_MODIFIERS_RELN\n];\n\n//#endregion\n//#region src/Timezones.ts\nconst IANA_TIMEZONES__AFRICA = [\n\t\"Africa/Abidjan\",\n\t\"Africa/Accra\",\n\t\"Africa/Addis_Ababa\",\n\t\"Africa/Algiers\",\n\t\"Africa/Asmara\",\n\t\"Africa/Bamako\",\n\t\"Africa/Bangui\",\n\t\"Africa/Banjul\",\n\t\"Africa/Bissau\",\n\t\"Africa/Blantyre\",\n\t\"Africa/Brazzaville\",\n\t\"Africa/Bujumbura\",\n\t\"Africa/Cairo\",\n\t\"Africa/Casablanca\",\n\t\"Africa/Ceuta\",\n\t\"Africa/Conakry\",\n\t\"Africa/Dakar\",\n\t\"Africa/Dar_es_Salaam\",\n\t\"Africa/Djibouti\",\n\t\"Africa/Douala\",\n\t\"Africa/El_Aaiun\",\n\t\"Africa/Freetown\",\n\t\"Africa/Gaborone\",\n\t\"Africa/Harare\",\n\t\"Africa/Johannesburg\",\n\t\"Africa/Juba\",\n\t\"Africa/Kampala\",\n\t\"Africa/Khartoum\",\n\t\"Africa/Kigali\",\n\t\"Africa/Kinshasa\",\n\t\"Africa/Lagos\",\n\t\"Africa/Libreville\",\n\t\"Africa/Lome\",\n\t\"Africa/Luanda\",\n\t\"Africa/Lubumbashi\",\n\t\"Africa/Lusaka\",\n\t\"Africa/Malabo\",\n\t\"Africa/Maputo\",\n\t\"Africa/Maseru\",\n\t\"Africa/Mbabane\",\n\t\"Africa/Mogadishu\",\n\t\"Africa/Monrovia\",\n\t\"Africa/Nairobi\",\n\t\"Africa/Ndjamena\",\n\t\"Africa/Niamey\",\n\t\"Africa/Nouakchott\",\n\t\"Africa/Ouagadougou\",\n\t\"Africa/Porto-Novo\",\n\t\"Africa/Sao_Tome\",\n\t\"Africa/Tripoli\",\n\t\"Africa/Tunis\",\n\t\"Africa/Windhoek\"\n];\nconst IANA_TIMEZONES__AMERICA = [\n\t\"America/Adak\",\n\t\"America/Anchorage\",\n\t\"America/Anguilla\",\n\t\"America/Antigua\",\n\t\"America/Araguaina\",\n\t\"America/Argentina/Buenos_Aires\",\n\t\"America/Argentina/Catamarca\",\n\t\"America/Argentina/Cordoba\",\n\t\"America/Argentina/Jujuy\",\n\t\"America/Argentina/La_Rioja\",\n\t\"America/Argentina/Mendoza\",\n\t\"America/Argentina/Rio_Gallegos\",\n\t\"America/Argentina/Salta\",\n\t\"America/Argentina/San_Juan\",\n\t\"America/Argentina/San_Luis\",\n\t\"America/Argentina/Tucuman\",\n\t\"America/Argentina/Ushuaia\",\n\t\"America/Aruba\",\n\t\"America/Asuncion\",\n\t\"America/Atikokan\",\n\t\"America/Atka\",\n\t\"America/Bahia\",\n\t\"America/Bahia_Banderas\",\n\t\"America/Barbados\",\n\t\"America/Belem\",\n\t\"America/Belize\",\n\t\"America/Blanc-Sablon\",\n\t\"America/Boa_Vista\",\n\t\"America/Bogota\",\n\t\"America/Boise\",\n\t\"America/Cambridge_Bay\",\n\t\"America/Campo_Grande\",\n\t\"America/Cancun\",\n\t\"America/Caracas\",\n\t\"America/Cayenne\",\n\t\"America/Cayman\",\n\t\"America/Chicago\",\n\t\"America/Chihuahua\",\n\t\"America/Creston\",\n\t\"America/Cuiaba\",\n\t\"America/Curacao\",\n\t\"America/Danmarkshavn\",\n\t\"America/Dawson\",\n\t\"America/Dawson_Creek\",\n\t\"America/Denver\",\n\t\"America/Detroit\",\n\t\"America/Dominica\",\n\t\"America/Edmonton\",\n\t\"America/Eirunepe\",\n\t\"America/El_Salvador\",\n\t\"America/Fort_Nelson\",\n\t\"America/Fortaleza\",\n\t\"America/Glace_Bay\",\n\t\"America/Godthab\",\n\t\"America/Goose_Bay\",\n\t\"America/Grand_Turk\",\n\t\"America/Grenada\",\n\t\"America/Guadeloupe\",\n\t\"America/Guatemala\",\n\t\"America/Guayaquil\",\n\t\"America/Guyana\",\n\t\"America/Halifax\",\n\t\"America/Havana\",\n\t\"America/Hermosillo\",\n\t\"America/Indiana/Indianapolis\",\n\t\"America/Indiana/Knox\",\n\t\"America/Indiana/Marengo\",\n\t\"America/Indiana/Petersburg\",\n\t\"America/Indiana/Tell_City\",\n\t\"America/Indiana/Vevay\",\n\t\"America/Indiana/Vincennes\",\n\t\"America/Indiana/Winamac\",\n\t\"America/Inuvik\",\n\t\"America/Iqaluit\",\n\t\"America/Jamaica\",\n\t\"America/Juneau\",\n\t\"America/Kentucky/Louisville\",\n\t\"America/Kentucky/Monticello\",\n\t\"America/Kralendijk\",\n\t\"America/La_Paz\",\n\t\"America/Lima\",\n\t\"America/Los_Angeles\",\n\t\"America/Lower_Princes\",\n\t\"America/Maceio\",\n\t\"America/Managua\",\n\t\"America/Manaus\",\n\t\"America/Marigot\",\n\t\"America/Martinique\",\n\t\"America/Matamoros\",\n\t\"America/Mazatlan\",\n\t\"America/Menominee\",\n\t\"America/Merida\",\n\t\"America/Metlakatla\",\n\t\"America/Mexico_City\",\n\t\"America/Miquelon\",\n\t\"America/Moncton\",\n\t\"America/Monterrey\",\n\t\"America/Montevideo\",\n\t\"America/Montserrat\",\n\t\"America/Nassau\",\n\t\"America/New_York\",\n\t\"America/Nipigon\",\n\t\"America/Nome\",\n\t\"America/Noronha\",\n\t\"America/North_Dakota/Beulah\",\n\t\"America/North_Dakota/Center\",\n\t\"America/North_Dakota/New_Salem\",\n\t\"America/Ojinaga\",\n\t\"America/Panama\",\n\t\"America/Pangnirtung\",\n\t\"America/Paramaribo\",\n\t\"America/Phoenix\",\n\t\"America/Port-au-Prince\",\n\t\"America/Port_of_Spain\",\n\t\"America/Porto_Velho\",\n\t\"America/Puerto_Rico\",\n\t\"America/Punta_Arenas\",\n\t\"America/Rainy_River\",\n\t\"America/Rankin_Inlet\",\n\t\"America/Recife\",\n\t\"America/Regina\",\n\t\"America/Resolute\",\n\t\"America/Rio_Branco\",\n\t\"America/Santarem\",\n\t\"America/Santiago\",\n\t\"America/Santo_Domingo\",\n\t\"America/Sao_Paulo\",\n\t\"America/Scoresbysund\",\n\t\"America/Sitka\",\n\t\"America/St_Barthelemy\",\n\t\"America/St_Johns\",\n\t\"America/St_Kitts\",\n\t\"America/St_Lucia\",\n\t\"America/St_Thomas\",\n\t\"America/St_Vincent\",\n\t\"America/Swift_Current\",\n\t\"America/Tegucigalpa\",\n\t\"America/Thule\",\n\t\"America/Thunder_Bay\",\n\t\"America/Tijuana\",\n\t\"America/Toronto\",\n\t\"America/Tortola\",\n\t\"America/Vancouver\",\n\t\"America/Whitehorse\",\n\t\"America/Winnipeg\",\n\t\"America/Yakutat\",\n\t\"America/Yellowknife\"\n];\nconst IANA_TIMEZONES__ANTARCTICA = [\n\t\"Antarctica/Casey\",\n\t\"Antarctica/Davis\",\n\t\"Antarctica/DumontDUrville\",\n\t\"Antarctica/Macquarie\",\n\t\"Antarctica/Mawson\",\n\t\"Antarctica/McMurdo\",\n\t\"Antarctica/Palmer\",\n\t\"Antarctica/Rothera\",\n\t\"Antarctica/South_Pole\",\n\t\"Antarctica/Syowa\",\n\t\"Antarctica/Troll\",\n\t\"Antarctica/Vostok\",\n\t\"Arctic/Longyearbyen\"\n];\nconst IANA_TIMEZONES__ASIA = [\n\t\"Asia/Almaty\",\n\t\"Asia/Amman\",\n\t\"Asia/Anadyr\",\n\t\"Asia/Aqtau\",\n\t\"Asia/Aqtobe\",\n\t\"Asia/Ashgabat\",\n\t\"Asia/Atyrau\",\n\t\"Asia/Baghdad\",\n\t\"Asia/Baku\",\n\t\"Asia/Bangkok\",\n\t\"Asia/Barnaul\",\n\t\"Asia/Beirut\",\n\t\"Asia/Bishkek\",\n\t\"Asia/Brunei\",\n\t\"Asia/Chita\",\n\t\"Asia/Choibalsan\",\n\t\"Asia/Colombo\",\n\t\"Asia/Damascus\",\n\t\"Asia/Dhaka\",\n\t\"Asia/Dili\",\n\t\"Asia/Dubai\",\n\t\"Asia/Dushanbe\",\n\t\"Asia/Famagusta\",\n\t\"Asia/Gaza\",\n\t\"Asia/Hebron\",\n\t\"Asia/Ho_Chi_Minh\",\n\t\"Asia/Hong_Kong\",\n\t\"Asia/Hovd\",\n\t\"Asia/Irkutsk\",\n\t\"Asia/Jakarta\",\n\t\"Asia/Jayapura\",\n\t\"Asia/Jerusalem\",\n\t\"Asia/Kabul\",\n\t\"Asia/Kamchatka\",\n\t\"Asia/Karachi\",\n\t\"Asia/Kathmandu\",\n\t\"Asia/Khandyga\",\n\t\"Asia/Kolkata\",\n\t\"Asia/Krasnoyarsk\",\n\t\"Asia/Kuala_Lumpur\",\n\t\"Asia/Kuching\",\n\t\"Asia/Kuwait\",\n\t\"Asia/Macau\",\n\t\"Asia/Magadan\",\n\t\"Asia/Makassar\",\n\t\"Asia/Manila\",\n\t\"Asia/Muscat\",\n\t\"Asia/Nicosia\",\n\t\"Asia/Novokuznetsk\",\n\t\"Asia/Novosibirsk\",\n\t\"Asia/Omsk\",\n\t\"Asia/Oral\",\n\t\"Asia/Phnom_Penh\",\n\t\"Asia/Pontianak\",\n\t\"Asia/Pyongyang\",\n\t\"Asia/Qatar\",\n\t\"Asia/Qostanay\",\n\t\"Asia/Qyzylorda\",\n\t\"Asia/Riyadh\",\n\t\"Asia/Sakhalin\",\n\t\"Asia/Samarkand\",\n\t\"Asia/Seoul\",\n\t\"Asia/Shanghai\",\n\t\"Asia/Singapore\",\n\t\"Asia/Srednekolymsk\",\n\t\"Asia/Taipei\",\n\t\"Asia/Tashkent\",\n\t\"Asia/Tbilisi\",\n\t\"Asia/Tehran\",\n\t\"Asia/Thimphu\",\n\t\"Asia/Tokyo\",\n\t\"Asia/Tomsk\",\n\t\"Asia/Ulaanbaatar\",\n\t\"Asia/Urumqi\",\n\t\"Asia/Ust-Nera\",\n\t\"Asia/Vientiane\",\n\t\"Asia/Vladivostok\",\n\t\"Asia/Yakutsk\",\n\t\"Asia/Yangon\",\n\t\"Asia/Yekaterinburg\",\n\t\"Asia/Yerevan\"\n];\nconst IANA_TIMEZONES__ATLANTIC = [\n\t\"Atlantic/Azores\",\n\t\"Atlantic/Bermuda\",\n\t\"Atlantic/Canary\",\n\t\"Atlantic/Cape_Verde\",\n\t\"Atlantic/Faroe\",\n\t\"Atlantic/Madeira\",\n\t\"Atlantic/Reykjavik\",\n\t\"Atlantic/South_Georgia\",\n\t\"Atlantic/St_Helena\",\n\t\"Atlantic/Stanley\"\n];\nconst IANA_TIMEZONES__AUSTRALIA = [\n\t\"Australia/Adelaide\",\n\t\"Australia/Brisbane\",\n\t\"Australia/Broken_Hill\",\n\t\"Australia/Currie\",\n\t\"Australia/Darwin\",\n\t\"Australia/Eucla\",\n\t\"Australia/Hobart\",\n\t\"Australia/Lindeman\",\n\t\"Australia/Lord_Howe\",\n\t\"Australia/Melbourne\",\n\t\"Australia/Perth\",\n\t\"Australia/Sydney\"\n];\nconst IANA_TIMEZONES__EUROPE = [\n\t\"Europe/Amsterdam\",\n\t\"Europe/Andorra\",\n\t\"Europe/Astrakhan\",\n\t\"Europe/Athens\",\n\t\"Europe/Belgrade\",\n\t\"Europe/Berlin\",\n\t\"Europe/Brussels\",\n\t\"Europe/Bucharest\",\n\t\"Europe/Budapest\",\n\t\"Europe/Chisinau\",\n\t\"Europe/Copenhagen\",\n\t\"Europe/Dublin\",\n\t\"Europe/Gibraltar\",\n\t\"Europe/Guernsey\",\n\t\"Europe/Helsinki\",\n\t\"Europe/Isle_of_Man\",\n\t\"Europe/Istanbul\",\n\t\"Europe/Jersey\",\n\t\"Europe/Kaliningrad\",\n\t\"Europe/Kiev\",\n\t\"Europe/Kirov\",\n\t\"Europe/Lisbon\",\n\t\"Europe/Ljubljana\",\n\t\"Europe/London\",\n\t\"Europe/Luxembourg\",\n\t\"Europe/Madrid\",\n\t\"Europe/Malta\",\n\t\"Europe/Mariehamn\",\n\t\"Europe/Minsk\",\n\t\"Europe/Monaco\",\n\t\"Europe/Moscow\",\n\t\"Europe/Oslo\",\n\t\"Europe/Paris\",\n\t\"Europe/Podgorica\",\n\t\"Europe/Prague\",\n\t\"Europe/Riga\",\n\t\"Europe/Rome\",\n\t\"Europe/Samara\",\n\t\"Europe/San_Marino\",\n\t\"Europe/Sarajevo\",\n\t\"Europe/Simferopol\",\n\t\"Europe/Skopje\",\n\t\"Europe/Sofia\",\n\t\"Europe/Stockholm\",\n\t\"Europe/Tallinn\",\n\t\"Europe/Tirane\",\n\t\"Europe/Ulyanovsk\",\n\t\"Europe/Uzhgorod\",\n\t\"Europe/Vaduz\",\n\t\"Europe/Vatican\",\n\t\"Europe/Vienna\",\n\t\"Europe/Vilnius\",\n\t\"Europe/Volgograd\",\n\t\"Europe/Warsaw\",\n\t\"Europe/Zagreb\",\n\t\"Europe/Zaporozhye\",\n\t\"Europe/Zurich\"\n];\nconst IANA_TIMEZONES__INDIAN = [\n\t\"Indian/Antananarivo\",\n\t\"Indian/Chagos\",\n\t\"Indian/Christmas\",\n\t\"Indian/Cocos\",\n\t\"Indian/Comoro\",\n\t\"Indian/Kerguelen\",\n\t\"Indian/Mahe\",\n\t\"Indian/Maldives\",\n\t\"Indian/Mauritius\",\n\t\"Indian/Mayotte\",\n\t\"Indian/Reunion\"\n];\nconst IANA_TIMEZONES__PACIFIC = [\n\t\"Pacific/Apia\",\n\t\"Pacific/Auckland\",\n\t\"Pacific/Bougainville\",\n\t\"Pacific/Chatham\",\n\t\"Pacific/Chuuk\",\n\t\"Pacific/Easter\",\n\t\"Pacific/Efate\",\n\t\"Pacific/Enderbury\",\n\t\"Pacific/Fakaofo\",\n\t\"Pacific/Fiji\",\n\t\"Pacific/Funafuti\",\n\t\"Pacific/Galapagos\",\n\t\"Pacific/Gambier\",\n\t\"Pacific/Guadalcanal\",\n\t\"Pacific/Guam\",\n\t\"Pacific/Honolulu\",\n\t\"Pacific/Kiritimati\",\n\t\"Pacific/Kosrae\",\n\t\"Pacific/Kwajalein\",\n\t\"Pacific/Majuro\",\n\t\"Pacific/Marquesas\",\n\t\"Pacific/Midway\",\n\t\"Pacific/Nauru\",\n\t\"Pacific/Niue\",\n\t\"Pacific/Norfolk\",\n\t\"Pacific/Noumea\",\n\t\"Pacific/Pago_Pago\",\n\t\"Pacific/Palau\",\n\t\"Pacific/Pitcairn\",\n\t\"Pacific/Pohnpei\",\n\t\"Pacific/Port_Moresby\",\n\t\"Pacific/Rarotonga\",\n\t\"Pacific/Saipan\",\n\t\"Pacific/Tahiti\",\n\t\"Pacific/Tarawa\",\n\t\"Pacific/Tongatapu\",\n\t\"Pacific/Wake\",\n\t\"Pacific/Wallis\"\n];\nconst IANA_TIMEZONES__OTHER = [\"UTC\", \"Zulu\"];\nconst IANA_TIMEZONES = [\n\t...IANA_TIMEZONES__AFRICA,\n\t...IANA_TIMEZONES__AMERICA,\n\t...IANA_TIMEZONES__ANTARCTICA,\n\t...IANA_TIMEZONES__ASIA,\n\t...IANA_TIMEZONES__ATLANTIC,\n\t...IANA_TIMEZONES__AUSTRALIA,\n\t...IANA_TIMEZONES__EUROPE,\n\t...IANA_TIMEZONES__INDIAN,\n\t...IANA_TIMEZONES__OTHER,\n\t...IANA_TIMEZONES__PACIFIC\n];\n\n//#endregion\n//#region src/TypeComparisons.ts\n/**\n* **wide**\n*\n* Provides a dictionary of _wide_ types; in most cases you should\n* prefer the **kind** API.\n*/\nconst WideAssignment = {\n\tboolean: () => \"<<boolean>>\",\n\tstring: () => \"<<string>>\",\n\tnumber: () => \"<<number>>\",\n\tsymbol: () => \"<<symbol>>\",\n\tnull: () => \"<<null>>\",\n\tfunction: () => \"<<function>>\",\n\ttuple: () => \"<<tuple>>\",\n\tsingularTuple: () => [\"<<tuple>>\"],\n\tobject: () => \"<<object>>\",\n\temptyObject: () => \"<<empty-object>>\",\n\tundefined: () => \"<<undefined>>\",\n\tunknown: () => \"<<unknown>>\",\n\tnothing: () => \"<<nothing>>\",\n\tsomething: () => \"<<something>>\"\n};\nconst wide = WideAssignment;\nfunction entry(refType, desc, ...params) {\n\treturn [\n\t\trefType(wide),\n\t\tdesc,\n\t\tparams.map((i) => typeof i === \"function\" ? i(wide) : i)\n\t];\n}\n/**\n* **TYPE_COMPARISONS**\n*\n* A dictionary of all _comparison_ operations along with their `RefType`, description,\n* and `Params`.\n*/\nconst TYPE_COMPARISONS = {\n\tExtends: entry((t) => t.unknown(), \"extends the type\", (t) => t.unknown()),\n\tNotExtends: entry((t) => t.unknown(), \"does not extent the type\", (t) => t.unknown()),\n\tEquals: entry((t) => t.unknown(), \"equals the type\", (t) => t.unknown()),\n\tNotEqual: entry((t) => t.unknown(), \"does not equal the type\", (t) => t.unknown()),\n\tTruthy: entry((t) => t.unknown(), \"must be a truthy value\"),\n\tFalsy: entry((t) => t.unknown(), \"must be a falsy value\"),\n\tIsSomething: entry((t) => t.unknown(), \"must be 'something' (aka, not null or undefined)\"),\n\tIsNothing: entry((t) => t.unknown(), \"must be 'nothing' (aka, null or undefined)\"),\n\tIsString: entry((t) => t.string(), \"must extend a string type\"),\n\tIsNumber: entry((t) => t.number(), \"must extend a number type\"),\n\tIsBoolean: entry((t) => t.boolean(), \"must extend a boolean type\"),\n\tGreaterThan: entry((t) => t.number(), \"must be a numeric literal greater than [[0]]\", (t) => t.number()),\n\tLessThan: entry((t) => t.number(), \"must be a numeric literal less than [[0]]\", (t) => t.number()),\n\tStartsWith: entry((t) => t.string(), \"must be a string literal that starts with '[[0]]'\", (t) => t.string()),\n\tEndsWith: entry((t) => t.string(), \"must be a string literal that ends with '[[0]]'\", (t) => t.string()),\n\tIncludes: entry((t) => t.string(), \"must be a string literal that includes the substring '[[0]]'\", (t) => t.string()),\n\tReturnsSomething: entry((t) => t.function(), \"must be a function which returns 'something' (aka, not null or undefined)\"),\n\tReturnsNothing: entry((t) => t.function(), \"must be a function which returns 'nothing' (aka, null or undefined)\"),\n\tReturnsTrue: entry((t) => t.function(), \"must be a function which returns 'true'\"),\n\tReturnsFalse: entry((t) => t.function(), \"must be a function which returns 'false'\"),\n\tReturnsTruthy: entry((t) => t.function(), \"must be a function which returns a 'truthy' value\"),\n\tReturnsFalsy: entry((t) => t.function(), \"must be a function which returns a 'falsy' value\"),\n\tReturnsExtends: entry((t) => t.unknown(), \"must be a function which returns a value which extends [[0]]\", (t) => t.unknown()),\n\tReturnsEquals: entry((t) => t.unknown(), \"must be a function which returns a value which equals [[0]]\", (t) => t.unknown()),\n\tContains: entry((t) => t.tuple(), \"must be a tuple and have elements that extends the value [[0]]\", (t) => t.unknown()),\n\tContainsSome: entry((t) => t.tuple(), \"must be a tuple and have elements that extends the value [[0]]\", (t) => t.singularTuple())\n};\n\n//#endregion\n//#region src/TypeOf.ts\n/**\n* **TYPE_OF**\n*\n* The set of values which are possible results of the `typeof` command in Javascript.\n*/\nconst TYPE_OF = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"undefined\",\n\t\"symbol\",\n\t\"bigint\",\n\t\"function\",\n\t\"object\"\n];\n\n//#endregion\n//#region src/Types.ts\nconst FALSY_TYPE_KINDS = [\"undefined\", \"null\"];\nconst LITERAL_TYPE_KINDS = [\n\t\"true\",\n\t\"false\",\n\t\"stringLiteral\",\n\t\"numericLiteral\"\n];\nconst WIDE_TYPE_KINDS = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\"\n];\nconst NARROW_CONTAINER_TYPE_KINDS = [\n\t\"object\",\n\t\"explicitFunctions\",\n\t\"fnType\",\n\t\"fnWithDict\",\n\t\"tuple\",\n\t\"union\",\n\t\"intersection\",\n\t\"arrayOf\"\n];\nconst WIDE_CONTAINER_TYPE_KINDS = [\n\t\"anyArray\",\n\t\"anyObject\",\n\t\"unknownObject\",\n\t\"anyFunction\",\n\t\"emptyObject\"\n];\n/**\n* A full list of the _types_ of types we have within the `Type` namespace.\n*/\nconst TYPE_KINDS = [\n\t...FALSY_TYPE_KINDS,\n\t...WIDE_TYPE_KINDS,\n\t...LITERAL_TYPE_KINDS,\n\t...NARROW_CONTAINER_TYPE_KINDS,\n\t...WIDE_CONTAINER_TYPE_KINDS\n];\n\n//#endregion\n//#region src/TypeTokens.ts\n/**\n* **Type Tokens** which have zero configuration elements.\n*/\nconst TT_ATOMICS = [\n\t\"undefined\",\n\t\"null\",\n\t\"boolean\",\n\t\"true\",\n\t\"false\"\n];\n/**\n* **Type Tokens** which have a literal variant which represents\n* the _single_ configuration of this type which is available.\n*/\nconst TT_SINGLETONS = [\"string\", \"number\"];\nconst TT_SETS = [\n\t\"string-set\",\n\t\"numeric-set\",\n\t\"fn-set\",\n\t\"union-set\"\n];\n/**\n* **Type Tokens** which represent _functions_ (either the typical\n* variety or Generator functions).\n*/\nconst TT_FUNCTIONS = [\"fn\", \"gen\"];\n/**\n* **Type Tokens** which _contain_ other **Type Tokens** to make up their\n* identity.\n*/\nconst TT_CONTAINERS = [\n\t\"rec\",\n\t\"arr\",\n\t\"set\",\n\t\"map\",\n\t\"union\",\n\t\"obj\",\n\t\"tuple\"\n];\nconst TT_KIND_VARIANTS = [\n\t...TT_ATOMICS,\n\t...TT_CONTAINERS,\n\t...TT_FUNCTIONS,\n\t...TT_SETS,\n\t...TT_SINGLETONS\n];\nconst TT_START = \"<<\";\nconst TT_STOP = \">>\";\nconst TT_DELIMITER = \"::\";\n\n//#endregion\n//#region src/TypeTokenVariants.ts\nconst TYPE_TOKEN_REC_VARIANTS = [\"object-key\", \"string-key\"];\nconst TYPE_TOKEN_REC_KEY_VARIANTS = [\n\t\"unknown\",\n\t\"any\",\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"truthy\",\n\t\"numberlike\",\n\t\"scalar\",\n\t\"object\",\n\t\"string|undefined\",\n\t\"number|undefined\",\n\t\"boolean|undefined\",\n\t\"object|undefined\",\n\t\"unknown[]\",\n\t\"any[]\",\n\t\"string[]\",\n\t\"number[]\",\n\t\"boolean[]\"\n];\nconst TYPE_TOKEN_STRING_SET_VARIANTS = [\n\t\"endsWith::${string}\",\n\t\"startsWith::${string}\",\n\t\"contains::${string}\",\n\t\"civilianTime\",\n\t\"militaryTime\",\n\t\"ipv4Address\",\n\t\"ipv4Address::tight\",\n\t\"ipv4Address::loose\",\n\t\"ipv6Address\",\n\t\"ipv6Address::${string}\",\n\t\"numericString\",\n\t\"zipCode5\",\n\t\"zipCode5+4\",\n\t\"countryCode2\",\n\t\"countryCode3\",\n\t\"countryName\",\n\t\"capitalized\",\n\t\"url\",\n\t\"url::${string}\",\n\t\"isoDate\",\n\t\"isoDateTime\",\n\t\"usStateAbbrev\",\n\t\"usCitySuggestions\",\n\t\"metricCategory\",\n\t\"metric\",\n\t\"metric::${Metric}\"\n];\nconst TYPE_TOKEN_UNION_SET_VARIANTS = [\"numberLike\", \"scalar\"];\n\n//#endregion\n//#region src/TypeTransforms.ts\nconst t_unknown = \"<<unknown>>\";\nconst t_string = \"<<string>>\";\nconst t_number = \"<<number>>\";\nconst t_union_string_tuple = \"<<union:string,tuple>>\";\n/**\n* **TYPE_TRANSFORMS**\n*\n* A lookup table keyed with the available conversions `ConversionOp` and where\n* each row provides:\n*\n* 1. Reference Type\n* 2. Parameters\n* 3. Description\n*/\nconst TYPE_TRANSFORMS = {\n\tIdentity: [\n\t\tt_unknown,\n\t\t[],\n\t\t\"a transform which returns the same value passed in\"\n\t],\n\tToNever: [\n\t\tt_unknown,\n\t\t[],\n\t\t\"converts all incoming types to the Never type\"\n\t],\n\tToString: [\n\t\tt_unknown,\n\t\t[],\n\t\t\"ensures that any incoming type is converted to a string variant of that value\"\n\t],\n\tToBoolean: [\n\t\tt_unknown,\n\t\t[],\n\t\t\"uses Javascript's \\\"truthiness\\\" to convert inputs to a boolean value; with functions it will use the return type\"\n\t],\n\tTrim: [\n\t\tt_string,\n\t\t[],\n\t\t\"Trims whitespace from start and end of string\"\n\t],\n\tTrimStart: [\n\t\tt_string,\n\t\t[],\n\t\t\"Trims whitespace from start of string\"\n\t],\n\tTrimEnd: [\n\t\tt_string,\n\t\t[],\n\t\t\"Trims whitespace from end of string\"\n\t],\n\tCapitalize: [\n\t\tt_string,\n\t\t[],\n\t\t\"Converts a string input to a capitalized variant\"\n\t],\n\tUnCapitalize: [\n\t\tt_string,\n\t\t[],\n\t\t\"Converts a string input to a un-capitalized variant\"\n\t],\n\tAllCaps: [\n\t\tt_string,\n\t\t[],\n\t\t\"Converts a string input to all uppercase characters\"\n\t],\n\tLowercase: [\n\t\tt_string,\n\t\t[],\n\t\t\"Converts a string input to all lowercase characters\"\n\t],\n\tToCamelCase: [\n\t\tt_string,\n\t\t[],\n\t\t\"Converts a string to use the camelCase naming convention\"\n\t],\n\tToKebabCase: [\n\t\tt_string,\n\t\t[],\n\t\t\"Converts a string to use the kebab-case naming convention\"\n\t],\n\tToPascalCase: [\n\t\tt_string,\n\t\t[],\n\t\t\"Converts a string to use the PascalCase naming convention\"\n\t],\n\tToSnakeCase: [\n\t\tt_string,\n\t\t[],\n\t\t\"Converts a string to use the snake_case naming convention\"\n\t],\n\tStripLeading: [\n\t\tt_string,\n\t\t[t_string],\n\t\t\"Strips a string literal from the beginning of a string (if it exists)\"\n\t],\n\tStripTrailing: [\n\t\tt_string,\n\t\t[t_string],\n\t\t\"Strips a string literal from the end of a string (if it exists)\"\n\t],\n\tEnsureLeading: [\n\t\tt_string,\n\t\t[t_string],\n\t\t\"Ensures a string literal is at the beginning of a string (with no change if it already was)\"\n\t],\n\tEnsureTrailing: [\n\t\tt_string,\n\t\t[t_string],\n\t\t\"Ensures a string literal is at the end of a string (with no change if it already was)\"\n\t],\n\tToPlural: [\n\t\tt_string,\n\t\t[],\n\t\t\"Pluralizes a word\"\n\t],\n\tSurround: [\n\t\tt_string,\n\t\t[t_string, t_string],\n\t\t\"Surrounds a string literal with a pre and post character or set of characters\"\n\t],\n\tPrepend: [\n\t\tt_union_string_tuple,\n\t\t[t_unknown],\n\t\t\"Takes a string or tuple and prepends a value to the start.\"\n\t],\n\tAppend: [\n\t\tt_union_string_tuple,\n\t\t[t_unknown],\n\t\t\"Takes a string or tuple and appends a value to the end.\"\n\t],\n\tIncrement: [\n\t\tt_number,\n\t\t[],\n\t\t\"Increments a numeric value by one\"\n\t],\n\tDecrement: [\n\t\tt_number,\n\t\t[],\n\t\t\"Decrements a numeric value by one\"\n\t]\n};\n\n//#endregion\nexport { ACCELERATION_METRICS_LOOKUP, ALPHA_CHARS, AMAZON_BOOKS, AMAZON_DNS, APPLE_DNS, AREA_METRICS_LOOKUP, AUSTRALIAN_NEWS, BELGIUM_NEWS, BEST_BUY_DNS, BLOOD_MARKERS_LOOKUP, BRACKET_AND_QUOTE_NESTING, BRACKET_NESTING, BRANDED, CANADIAN_NEWS, CHEWY_DNS, CHINESE_NEWS, COMMA, COMMON_OBJ_PROPS, COMPARISON_OPERATIONS, CONSONANTS, CONTINENTS, COSTCO_DNS, CSS_COLOR_LOOKUP, CSS_NAMED_COLORS, CURRENT_METRICS_LOOKUP, CVS_DNS, DANISH_NEWS, DATE_TYPE, DAYS_OF_WEEK__Mon, DAYS_OF_WEEK__Sun, DELL_DNS, DISTANCE_METRICS_LOOKUP, DOUBLE_LEAP_M1, DOUBLE_LEAP_M2, DOUBLE_LEAP_M3, DOUBLE_LEAP_M4, DOUBLE_LEAP_M5, DOUBLE_LEAP_MODERN, DUTCH_NEWS, EBAY_DNS, EDITORS, ENERGY_METRICS_LOOKUP, ETSY_DNS, FALSY_TYPE_KINDS, FALSY_VALUES, FRENCH_NEWS, FREQUENCY_METRICS_LOOKUP, GERMAN_NEWS, GITHUB_INSIGHT_CATEGORY_LOOKUP, HASH_TABLE_ALPHA_LOWER, HASH_TABLE_ALPHA_UPPER, HASH_TABLE_CHAR, HASH_TABLE_DIGIT, HASH_TABLE_OTHER, HASH_TABLE_SPECIAL, HASH_TABLE_WIDE, HEMISPHERE, HM_DNS, HOME_DEPOT_DNS, HTML_ATOMIC_TAGS, HTML_BLOCK_TAGS, IANA_TIMEZONES, IANA_TIMEZONES__AFRICA, IANA_TIMEZONES__AMERICA, IANA_TIMEZONES__ANTARCTICA, IANA_TIMEZONES__ASIA, IANA_TIMEZONES__ATLANTIC, IANA_TIMEZONES__AUSTRALIA, IANA_TIMEZONES__EUROPE, IANA_TIMEZONES__INDIAN, IANA_TIMEZONES__OTHER, IANA_TIMEZONES__PACIFIC, IKEA_DNS, IMAGE_FORMAT_LOOKUP, INDIAN_NEWS, INTERPOLATION_BLOCKS, IPv4, IPv6, ISO3166_1, ISO_DATE_30, ISO_DATE_31, ITALIAN_NEWS, IT_ATOMIC_TOKENS, IT_CONTAINER_TOKENS, IT_LITERAL_TOKENS, JAPANESE_NEWS, KROGER_DNS, LITERAL_TYPE_KINDS, LOWER_ALPHA_CHARS, LOWES_DNS, LUMINOSITY_METRICS_LOOKUP, MACYS_DNS, MARKED, MASS_METRICS_LOOKUP, MEXICAN_NEWS, MIME_TYPES, MONTH_ABBR, MONTH_ABBREV_LOOKUP, MONTH_NAME, MONTH_NAME_LOOKUP, MONTH_TO_SEASON_LOOKUP, NARROW_CONTAINER_TYPE_KINDS, NETWORK_PROTOCOL, NETWORK_PROTOCOL_INSECURE, NETWORK_PROTOCOL_LOOKUP, NETWORK_PROTOCOL_SECURE, NIKE_DNS, NON_BREAKING_SPACE, NON_ZERO_NUMERIC_CHAR, NORWEGIAN_NEWS, NOT_APPLICABLE, NOT_DEFINED, NO_DEFAULT_VALUE, NUMERIC_CHAR, NUMERIC_DIGIT, Never, OPTION, PHONE_COUNTRY_CODES, PHONE_FORMAT, PLURAL_EXCEPTIONS, PLURAL_EXCEPTIONS_OLD, POWER_METRICS_LOOKUP, PRESSURE_METRICS_LOOKUP, PROTOCOL_DEFAULT_PORTS, PROXMOX_CT_STATE, QUOTE_NESTING, REPO_PAGE_TYPES, REPO_SOURCES, REPO_SOURCE_LOOKUP, RESISTANCE_METRICS_LOOKUP, RESULT, SAFE_ENCODING_KEYS, SAFE_ENCODING__BRACKETS, SAFE_ENCODING__QUOTES, SAFE_ENCODING__WHITESPACE, SAFE_STRING, SEASONS, SEASON_TO_MONTH_LOOKUP, SHAPE_DELIMITER, SHAPE_PREFIXES, SIMPLE_ARRAY_TOKENS, SIMPLE_CONTAINER_TOKENS, SIMPLE_DICT_TOKENS, SIMPLE_DICT_VALUES, SIMPLE_FN_TOKENS, SIMPLE_MAP_KEYS, SIMPLE_MAP_TOKENS, SIMPLE_MAP_VALUES, SIMPLE_OPT_SCALAR_TOKENS, SIMPLE_SCALAR_TOKENS, SIMPLE_SET_TOKENS, SIMPLE_SET_TYPES, SIMPLE_TOKENS, SIMPLE_UNION_TOKENS, SINGULAR_NOUN_ENDINGS, SOCIAL_MEDIA, SOUTH_KOREAN_NEWS, SPANISH_NEWS, SPEED_METRICS_LOOKUP, SWISS_NEWS, TARGET_DNS, TEMPERATURE_METRICS_LOOKUP, TIME_METRICS_LOOKUP, TOP_LEVEL_DOMAINS, TT_ATOMICS, TT_CONTAINERS, TT_DELIMITER, TT_FUNCTIONS, TT_KIND_VARIANTS, TT_SETS, TT_SINGLETONS, TT_START, TT_STOP, TURKISH_NEWS, TW_CHROMA, TW_CHROMA_100, TW_CHROMA_200, TW_CHROMA_300, TW_CHROMA_400, TW_CHROMA_50, TW_CHROMA_500, TW_CHROMA_600, TW_CHROMA_700, TW_CHROMA_800, TW_CHROMA_900, TW_CHROMA_950, TW_COLOR_TARGETS, TW_HUE, TW_HUE_NEUTRAL, TW_HUE_STATIC, TW_HUE_VIBRANT, TW_LUMINOSITY, TW_LUMIN_100, TW_LUMIN_200, TW_LUMIN_300, TW_LUMIN_400, TW_LUMIN_50, TW_LUMIN_500, TW_LUMIN_600, TW_LUMIN_700, TW_LUMIN_800, TW_LUMIN_900, TW_LUMIN_950, TW_MODIFIERS, TW_MODIFIERS_CORE, TW_MODIFIERS_ORDER, TW_MODIFIERS_RELN, TW_MODIFIERS_SIZING, TYPE_COMPARISONS, TYPE_KINDS, TYPE_OF, TYPE_TOKEN_REC_KEY_VARIANTS, TYPE_TOKEN_REC_VARIANTS, TYPE_TOKEN_STRING_SET_VARIANTS, TYPE_TOKEN_UNION_SET_VARIANTS, TYPE_TRANSFORMS, UK_NEWS, UPPER_ALPHA_CHARS, US_NEWS, US_STATE_LOOKUP, US_STATE_LOOKUP_PROVINCES, US_STATE_LOOKUP_STRICT, VOLTAGE_METRICS_LOOKUP, VOLUME_METRICS_LOOKUP, WALGREENS_DNS, WALMART_DNS, WAYFAIR_DNS, WEEKEND_DAY, WEEKEND_DAY_ABBREV, WEEK_DAY, WEEK_DAY_ABBREV, WHITESPACE_CHARS, WHOLE_FOODS_DNS, WIDE_CONTAINER_TYPE_KINDS, WIDE_TYPE_KINDS, WideAssignment, ZARA_DNS, ZIP_TO_STATE };\n//# sourceMappingURL=index.js.map","//#region src/api/handleDoneFn.ts\n/**\n* **handleDoneFn**(val, [bare_fn])\n*\n* Looks at the value passed in and if it's an object with\n* a property `done` which is a function it will call it;\n* otherwise it will proxy the value through.\n*\n* If you wish to also detect a bare function and have it\n* call that too, you can set the `call_bare_fn` to **true**.\n*/\nfunction handleDoneFn(val, call_bare_fn = false) {\n\treturn isDictionary(val) || isFunction(val) ? isDoneFn(val) ? val.done() : isFunction(val) ? call_bare_fn ? val() : val : val : isFunction(val) ? call_bare_fn ? val() : val : val;\n}\n\n//#endregion\n//#region src/boolean-logic/equalsSome.ts\n/**\n* **equalsSome**`(...some) -> (val) -> boolean`\n*\n* A higher order function which:\n*\n* 1. _takes_ a set of \"possible values/types\" and then\n* 2. _takes_ a value/type and returns a boolean value indicating whether\n* the value is **equal** to _any_ of the possible values this was configured\n* with.\n*\n*\n* ```ts\n* //\n* const test = equalsSome(\"foo\",\"bar\",\"baz\");\n* ```\n*/\nfunction equalsSome(...some) {\n\treturn (val) => {\n\t\treturn some.includes(val);\n\t};\n}\n\n//#endregion\n//#region src/boolean-logic/ifArray.ts\n/**\n* **ifArray**(T, IF, ELSE)\n*\n* A utility which evaluates a type `T` for whether it is an array and then\n*/\nfunction ifArray(val, isAnArray, isNotAnArray) {\n\treturn Array.isArray(val) ? isAnArray(val) : isNotAnArray(val);\n}\n\n//#endregion\n//#region src/boolean-logic/ifArrayPartial.ts\nfunction ifArrayPartial() {\n\treturn (isAnArray, isNotAnArray) => {\n\t\treturn (val) => ifArray(val, isAnArray, isNotAnArray);\n\t};\n}\n\n//#endregion\n//#region src/boolean-logic/ifBoolean.ts\n/**\n* **ifBoolean**\n*\n* Strongly type-aware conditional statement which checks whether a value is\n* a _boolean_ and returns one of two values (strongly typed) based on the evaluation\n* of this criteria.\n*\n* @param val the value being tested\n* @param ifBoolean the value (strongly typed) returned if val is _boolean_\n* @param notBoolean the value (strongly typed) returned if val is NOT a _boolean\n*/\nfunction ifBoolean(val, ifBoolean$1, notBoolean) {\n\treturn isBoolean(val) ? ifBoolean$1(val) : notBoolean(val);\n}\n\n//#endregion\n//#region ../constants/src/Alpha.ts\n/**\n* An array of all the lower-cased alphabetic characters\n*/\nconst LOWER_ALPHA_CHARS = [\n\t\"a\",\n\t\"b\",\n\t\"c\",\n\t\"d\",\n\t\"e\",\n\t\"f\",\n\t\"g\",\n\t\"h\",\n\t\"i\",\n\t\"j\",\n\t\"k\",\n\t\"l\",\n\t\"m\",\n\t\"n\",\n\t\"o\",\n\t\"p\",\n\t\"q\",\n\t\"r\",\n\t\"s\",\n\t\"t\",\n\t\"u\",\n\t\"v\",\n\t\"w\",\n\t\"x\",\n\t\"y\",\n\t\"z\"\n];\n/**\n* An array of all the upper-cased alphabetic characters\n*/\nconst UPPER_ALPHA_CHARS = [\n\t\"A\",\n\t\"B\",\n\t\"C\",\n\t\"D\",\n\t\"E\",\n\t\"F\",\n\t\"G\",\n\t\"H\",\n\t\"I\",\n\t\"J\",\n\t\"K\",\n\t\"L\",\n\t\"M\",\n\t\"N\",\n\t\"O\",\n\t\"P\",\n\t\"Q\",\n\t\"R\",\n\t\"S\",\n\t\"T\",\n\t\"U\",\n\t\"V\",\n\t\"W\",\n\t\"X\",\n\t\"Y\",\n\t\"Z\"\n];\n/**\n* An array of all alphabetic characters (upper and lower)\n*/\nconst ALPHA_CHARS = [...LOWER_ALPHA_CHARS, ...UPPER_ALPHA_CHARS];\n\n//#endregion\n//#region ../constants/src/Books.ts\nconst string = `{{ string }}`;\nconst AMAZON_BOOKS = [\n\t`https://www.amazon.com/${string}storeType=ebooks${string}`,\n\t`https://www.amazon.com/${string}ref=tmm_hrd_swatch${string}`,\n\t`https://www.amazon.com/${string}ref=tmm_pap_swatch${string}`,\n\t`https://www.amazon.com/${string}ref=tmm_aud_swatch${string}`,\n\t`https://www.amazon.com/books-used-books-textbooks/${string}`\n];\n\n//#endregion\n//#region ../constants/src/Brands.ts\nconst SAFE_STRING = Symbol(\"SafeString\");\nconst NON_BREAKING_SPACE = Symbol(\"Non-Breaking Space\");\nconst BRANDED = Symbol(\"Branded\");\n\n//#endregion\n//#region ../constants/src/Characters.ts\nconst WHITESPACE_CHARS = [\n\t\" \",\n\t\"\\n\",\n\t\"\t\",\n\t\"\\b\"\n];\n\n//#endregion\n//#region ../constants/src/colors.ts\nconst CSS_NAMED_COLORS = [\n\t\"aliceblue\",\n\t\"antiquewhite\",\n\t\"aqua\",\n\t\"aquamarine\",\n\t\"azure\",\n\t\"beige\",\n\t\"bisque\",\n\t\"black\",\n\t\"blanchedalmond\",\n\t\"blue\",\n\t\"blueviolet\",\n\t\"brown\",\n\t\"burlywood\",\n\t\"cadetblue\",\n\t\"chartreuse\",\n\t\"chocolate\",\n\t\"coral\",\n\t\"cornflowerblue\",\n\t\"cornsilk\",\n\t\"crimson\",\n\t\"cyan\",\n\t\"darkblue\",\n\t\"darkcyan\",\n\t\"darkgoldenrod\",\n\t\"darkgray\",\n\t\"darkgreen\",\n\t\"darkgrey\",\n\t\"darkkhaki\",\n\t\"darkmagenta\",\n\t\"darkolivegreen\",\n\t\"darkorange\",\n\t\"darkorchid\",\n\t\"darkred\",\n\t\"darksalmon\",\n\t\"darkseagreen\",\n\t\"darkslateblue\",\n\t\"darkslategray\",\n\t\"darkslategrey\",\n\t\"darkturquoise\",\n\t\"darkviolet\",\n\t\"deeppink\",\n\t\"deepskyblue\",\n\t\"dimgray\",\n\t\"dimgrey\",\n\t\"dodgerblue\",\n\t\"firebrick\",\n\t\"floralwhite\",\n\t\"forestgreen\",\n\t\"fuchsia\",\n\t\"gainsboro\",\n\t\"ghostwhite\",\n\t\"gold\",\n\t\"goldenrod\",\n\t\"gray\",\n\t\"green\",\n\t\"greenyellow\",\n\t\"grey\",\n\t\"honeydew\",\n\t\"hotpink\",\n\t\"indianred\",\n\t\"indigo\",\n\t\"ivory\",\n\t\"khaki\",\n\t\"lavender\",\n\t\"lavenderblush\",\n\t\"lawngreen\",\n\t\"lemonchiffon\",\n\t\"lightblue\",\n\t\"lightcoral\",\n\t\"lightcyan\",\n\t\"lightgoldenrodyellow\",\n\t\"lightgray\",\n\t\"lightgreen\",\n\t\"lightgrey\",\n\t\"lightpink\",\n\t\"lightsalmon\",\n\t\"lightseagreen\",\n\t\"lightskyblue\",\n\t\"lightslategray\",\n\t\"lightslategrey\",\n\t\"lightsteelblue\",\n\t\"lightyellow\",\n\t\"lime\",\n\t\"limegreen\",\n\t\"linen\",\n\t\"magenta\",\n\t\"maroon\",\n\t\"mediumaquamarine\",\n\t\"mediumblue\",\n\t\"mediumorchid\",\n\t\"mediumpurple\",\n\t\"mediumseagreen\",\n\t\"mediumslateblue\",\n\t\"mediumspringgreen\",\n\t\"mediumturquoise\",\n\t\"mediumvioletred\",\n\t\"midnightblue\",\n\t\"mintcream\",\n\t\"mistyrose\",\n\t\"moccasin\",\n\t\"navajowhite\",\n\t\"navy\",\n\t\"oldlace\",\n\t\"olive\",\n\t\"olivedrab\",\n\t\"orange\",\n\t\"orangered\",\n\t\"orchid\",\n\t\"palegoldenrod\",\n\t\"palegreen\",\n\t\"paleturquoise\",\n\t\"palevioletred\",\n\t\"papayawhip\",\n\t\"peachpuff\",\n\t\"peru\",\n\t\"pink\",\n\t\"plum\",\n\t\"powderblue\",\n\t\"purple\",\n\t\"rebeccapurple\",\n\t\"red\",\n\t\"rosybrown\",\n\t\"royalblue\",\n\t\"saddlebrown\",\n\t\"salmon\",\n\t\"sandybrown\",\n\t\"seagreen\",\n\t\"seashell\",\n\t\"sienna\",\n\t\"silver\",\n\t\"skyblue\",\n\t\"slateblue\",\n\t\"slategray\",\n\t\"slategrey\",\n\t\"snow\",\n\t\"springgreen\",\n\t\"steelblue\",\n\t\"tan\",\n\t\"teal\",\n\t\"thistle\",\n\t\"tomato\",\n\t\"turquoise\",\n\t\"violet\",\n\t\"wheat\",\n\t\"white\",\n\t\"whitesmoke\",\n\t\"yellow\",\n\t\"yellowgreen\"\n];\nconst CSS_COLOR_LOOKUP = {\n\taliceblue: \"rgb(240,248,255)\",\n\tantiquewhite: \"rgb(250,235,215)\",\n\taqua: \"rgb(0,255,255)\",\n\taquamarine: \"rgb(127,255,212)\",\n\tazure: \"rgb(240,255,255)\",\n\tbeige: \"rgb(245,245,220)\",\n\tbisque: \"rgb(255,228,196)\",\n\tblack: \"rgb(0,0,0)\",\n\tblanchedalmond: \"rgb(255,235,205)\",\n\tblue: \"rgb(0,0,255)\",\n\tblueviolet: \"rgb(138,43,226)\",\n\tbrown: \"rgb(165,42,42)\",\n\tburlywood: \"rgb(222,184,135)\",\n\tcadetblue: \"rgb(95,158,160)\",\n\tchartreuse: \"rgb(127,255,0)\",\n\tchocolate: \"rgb(210,105,30)\",\n\tcoral: \"rgb(255,127,80)\",\n\tcornflowerblue: \"rgb(100,149,237)\",\n\tcornsilk: \"rgb(255,248,220)\",\n\tcrimson: \"rgb(220,20,60)\",\n\tcyan: \"rgb(0,255,255)\",\n\tdarkblue: \"rgb(0,0,139)\",\n\tdarkcyan: \"rgb(0,139,139)\",\n\tdarkgoldenrod: \"rgb(184,134,11)\",\n\tdarkgray: \"rgb(169,169,169)\",\n\tdarkgreen: \"rgb(0,100,0)\",\n\tdarkgrey: \"rgb(169,169,169)\",\n\tdarkkhaki: \"rgb(189,183,107)\",\n\tdarkmagenta: \"rgb(139,0,139)\",\n\tdarkolivegreen: \"rgb(85,107,47)\",\n\tdarkorange: \"rgb(255,140,0)\",\n\tdarkorchid: \"rgb(153,50,204)\",\n\tdarkred: \"rgb(139,0,0)\",\n\tdarksalmon: \"rgb(233,150,122)\",\n\tdarkseagreen: \"rgb(143,188,143)\",\n\tdarkslateblue: \"rgb(72,61,139)\",\n\tdarkslategray: \"rgb(47,79,79)\",\n\tdarkslategrey: \"rgb(47,79,79)\",\n\tdarkturquoise: \"rgb(0,206,209)\",\n\tdarkviolet: \"rgb(148,0,211)\",\n\tdeeppink: \"rgb(255,20,147)\",\n\tdeepskyblue: \"rgb(0,191,255)\",\n\tdimgray: \"rgb(105,105,105)\",\n\tdimgrey: \"rgb(105,105,105)\",\n\tdodgerblue: \"rgb(30,144,255)\",\n\tfirebrick: \"rgb(178,34,34)\",\n\tfloralwhite: \"rgb(255,250,240)\",\n\tforestgreen: \"rgb(34,139,34)\",\n\tfuchsia: \"rgb(255,0,255)\",\n\tgainsboro: \"rgb(220,220,220)\",\n\tghostwhite: \"rgb(248,248,255)\",\n\tgold: \"rgb(255,215,0)\",\n\tgoldenrod: \"rgb(218,165,32)\",\n\tgray: \"rgb(128,128,128)\",\n\tgreen: \"rgb(0,128,0)\",\n\tgreenyellow: \"rgb(173,255,47)\",\n\tgrey: \"rgb(128,128,128)\",\n\thoneydew: \"rgb(240,255,240)\",\n\thotpink: \"rgb(255,105,180)\",\n\tindianred: \"rgb(205,92,92)\",\n\tindigo: \"rgb(75,0,130)\",\n\tivory: \"rgb(255,255,240)\",\n\tkhaki: \"rgb(240,230,140)\",\n\tlavender: \"rgb(230,230,250)\",\n\tlavenderblush: \"rgb(255,240,245)\",\n\tlawngreen: \"rgb(124,252,0)\",\n\tlemonchiffon: \"rgb(255,250,205)\",\n\tlightblue: \"rgb(173,216,230)\",\n\tlightcoral: \"rgb(240,128,128)\",\n\tlightcyan: \"rgb(224,255,255)\",\n\tlightgoldenrodyellow: \"rgb(250,250,210)\",\n\tlightgray: \"rgb(211,211,211)\",\n\tlightgreen: \"rgb(144,238,144)\",\n\tlightgrey: \"rgb(211,211,211)\",\n\tlightpink: \"rgb(255,182,193)\",\n\tlightsalmon: \"rgb(255,160,122)\",\n\tlightseagreen: \"rgb(32,178,170)\",\n\tlightskyblue: \"rgb(135,206,250)\",\n\tlightslategray: \"rgb(119,136,153)\",\n\tlightslategrey: \"rgb(119,136,153)\",\n\tlightsteelblue: \"rgb(176,196,222)\",\n\tlightyellow: \"rgb(255,255,224)\",\n\tlime: \"rgb(0,255,0)\",\n\tlimegreen: \"rgb(50,205,50)\",\n\tlinen: \"rgb(250,240,230)\",\n\tmagenta: \"rgb(255,0,255)\",\n\tmaroon: \"rgb(128,0,0)\",\n\tmediumaquamarine: \"rgb(102,205,170)\",\n\tmediumblue: \"rgb(0,0,205)\",\n\tmediumorchid: \"rgb(186,85,211)\",\n\tmediumpurple: \"rgb(147,112,219)\",\n\tmediumseagreen: \"rgb(60,179,113)\",\n\tmediumslateblue: \"rgb(123,104,238)\",\n\tmediumspringgreen: \"rgb(0,250,154)\",\n\tmediumturquoise: \"rgb(72,209,204)\",\n\tmediumvioletred: \"rgb(199,21,133)\",\n\tmidnightblue: \"rgb(25,25,112)\",\n\tmintcream: \"rgb(245,255,250)\",\n\tmistyrose: \"rgb(255,228,225)\",\n\tmoccasin: \"rgb(255,228,181)\",\n\tnavajowhite: \"rgb(255,222,173)\",\n\tnavy: \"rgb(0,0,128)\",\n\toldlace: \"rgb(253,245,230)\",\n\tolive: \"rgb(128,128,0)\",\n\tolivedrab: \"rgb(107,142,35)\",\n\torange: \"rgb(255,165,0)\",\n\torangered: \"rgb(255,69,0)\",\n\torchid: \"rgb(218,112,214)\",\n\tpalegoldenrod: \"rgb(238,232,170)\",\n\tpalegreen: \"rgb(152,251,152)\",\n\tpaleturquoise: \"rgb(175,238,238)\",\n\tpalevioletred: \"rgb(219,112,147)\",\n\tpapayawhip: \"rgb(255,239,213)\",\n\tpeachpuff: \"rgb(255,218,185)\",\n\tperu: \"rgb(205,133,63)\",\n\tpink: \"rgb(255,192,203)\",\n\tplum: \"rgb(221,160,221)\",\n\tpowderblue: \"rgb(176,224,230)\",\n\tpurple: \"rgb(128,0,128)\",\n\trebeccapurple: \"rgb(102,51,153)\",\n\tred: \"rgb(255,0,0)\",\n\trosybrown: \"rgb(188,143,143)\",\n\troyalblue: \"rgb(65,105,225)\",\n\tsaddlebrown: \"rgb(139,69,19)\",\n\tsalmon: \"rgb(250,128,114)\",\n\tsandybrown: \"rgb(244,164,96)\",\n\tseagreen: \"rgb(46,139,87)\",\n\tseashell: \"rgb(255,245,238)\",\n\tsienna: \"rgb(160,82,45)\",\n\tsilver: \"rgb(192,192,192)\",\n\tskyblue: \"rgb(135,206,235)\",\n\tslateblue: \"rgb(106,90,205)\",\n\tslategray: \"rgb(112,128,144)\",\n\tslategrey: \"rgb(112,128,144)\",\n\tsnow: \"rgb(255,250,250)\",\n\tspringgreen: \"rgb(0,255,127)\",\n\tsteelblue: \"rgb(70,130,180)\",\n\ttan: \"rgb(210,180,140)\",\n\tteal: \"rgb(0,128,128)\",\n\tthistle: \"rgb(216,191,216)\",\n\ttomato: \"rgb(255,99,71)\",\n\tturquoise: \"rgb(64,224,208)\",\n\tviolet: \"rgb(238,130,238)\",\n\twheat: \"rgb(245,222,179)\",\n\twhite: \"rgb(255,255,255)\",\n\twhitesmoke: \"rgb(245,245,245)\",\n\tyellow: \"rgb(255,255,0)\",\n\tyellowgreen: \"rgb(154,205,50)\"\n};\n\n//#endregion\n//#region ../constants/src/Comma.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant$5(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n/**\n* **COMMA**\n*\n* A constant used for serializing a comma in cases\n* where a comma has special meaning (for instance\n* CSV data where a raw comma is considered a\n* separator)\n*/\nconst COMMA = createConstant$5(\"comma\");\n\n//#endregion\n//#region ../constants/src/Comparisons.ts\nconst COMPARISON_OPERATIONS = [\n\t\"extends\",\n\t\"startsWith\",\n\t\"endsWith\",\n\t\"endsWithNumber\",\n\t\"startsWithNumber\",\n\t\"onlyNumbers\",\n\t\"alphaNumeric\",\n\t\"onlyLetters\",\n\t\"contains\",\n\t\"containsSome\",\n\t\"containsAll\",\n\t\"greaterThan\",\n\t\"greaterThanOrEqual\",\n\t\"lessThan\",\n\t\"lessThanOrEqual\",\n\t\"objectKeyGreaterThan\",\n\t\"objectKeyGreaterThanOrEqual\",\n\t\"objectKeyLessThan\",\n\t\"objectKeyLessThanOrEqual\",\n\t\"objectKeyEquals\",\n\t\"objectKeyExtends\",\n\t\"betweenInclusively\",\n\t\"betweenExclusively\",\n\t\"equals\",\n\t\"equalsSome\",\n\t\"errors\",\n\t\"errorsOfType\",\n\t\"before\",\n\t\"after\",\n\t\"sameDay\",\n\t\"sameMonth\",\n\t\"sameMonthYear\",\n\t\"sameYear\",\n\t\"truthy\",\n\t\"falsy\",\n\t\"true\",\n\t\"false\",\n\t\"returnEquals\",\n\t\"returnExtends\",\n\t\"isTemplateLiteral\",\n\t\"hasLength\"\n];\n\n//#endregion\n//#region ../constants/src/DateTime.ts\n/**\n* **MONTH_NAME**\n*\n* Full month names.\n*/\nconst MONTH_NAME = [\n\t\"January\",\n\t\"February\",\n\t\"March\",\n\t\"April\",\n\t\"May\",\n\t\"June\",\n\t\"July\",\n\t\"August\",\n\t\"September\",\n\t\"October\",\n\t\"November\",\n\t\"December\"\n];\n/**\n* **MONTH_ABBR**\n*\n* Abbreviated month names.\n*/\nconst MONTH_ABBR = [\n\t\"Jan\",\n\t\"Feb\",\n\t\"Mar\",\n\t\"Apr\",\n\t\"May\",\n\t\"Jun\",\n\t\"Jul\",\n\t\"Aug\",\n\t\"Sep\",\n\t\"Oct\",\n\t\"Nov\",\n\t\"Dec\"\n];\nconst MONTH_NAME_LOOKUP = {\n\t\"January\": {\n\t\tabbrev: \"Jan\",\n\t\tnum: 1,\n\t\ttwoDigitStr: \"01\"\n\t},\n\t\"February\": {\n\t\tabbrev: \"Feb\",\n\t\tnum: 2,\n\t\ttwoDigitStr: \"02\"\n\t},\n\t\"March\": {\n\t\tabbrev: \"Mar\",\n\t\tnum: 3,\n\t\ttwoDigitStr: \"03\"\n\t},\n\t\"April\": {\n\t\tabbrev: \"Apr\",\n\t\tnum: 4,\n\t\ttwoDigitStr: \"04\"\n\t},\n\t\"May\": {\n\t\tabbrev: \"May\",\n\t\tnum: 5,\n\t\ttwoDigitStr: \"05\"\n\t},\n\t\"June\": {\n\t\tabbrev: \"Jun\",\n\t\tnum: 6,\n\t\ttwoDigitStr: \"06\"\n\t},\n\t\"July\": {\n\t\tabbrev: \"Jul\",\n\t\tnum: 7,\n\t\ttwoDigitStr: \"07\"\n\t},\n\t\"August\": {\n\t\tabbrev: \"Aug\",\n\t\tnum: 8,\n\t\ttwoDigitStr: \"08\"\n\t},\n\t\"September\": {\n\t\tabbrev: \"Sep\",\n\t\tnum: 9,\n\t\ttwoDigitStr: \"09\"\n\t},\n\t\"October\": {\n\t\tabbrev: \"Oct\",\n\t\tnum: 10,\n\t\ttwoDigitStr: \"10\"\n\t},\n\t\"November\": {\n\t\tabbrev: \"Nov\",\n\t\tnum: 11,\n\t\ttwoDigitStr: \"11\"\n\t},\n\t\"December\": {\n\t\tabbrev: \"Dec\",\n\t\tnum: 12,\n\t\ttwoDigitStr: \"12\"\n\t}\n};\nconst MONTH_ABBREV_LOOKUP = {\n\t\"Jan\": {\n\t\tname: \"January\",\n\t\tnum: 1,\n\t\ttwoDigitStr: \"01\"\n\t},\n\t\"Feb\": {\n\t\tname: \"February\",\n\t\tnum: 2,\n\t\ttwoDigitStr: \"02\"\n\t},\n\t\"Mar\": {\n\t\tname: \"March\",\n\t\tnum: 3,\n\t\ttwoDigitStr: \"03\"\n\t},\n\t\"Apr\": {\n\t\tname: \"April\",\n\t\tnum: 4,\n\t\ttwoDigitStr: \"04\"\n\t},\n\t\"May\": {\n\t\tname: \"May\",\n\t\tnum: 5,\n\t\ttwoDigitStr: \"05\"\n\t},\n\t\"Jun\": {\n\t\tname: \"June\",\n\t\tnum: 6,\n\t\ttwoDigitStr: \"06\"\n\t},\n\t\"Jul\": {\n\t\tname: \"July\",\n\t\tnum: 7,\n\t\ttwoDigitStr: \"07\"\n\t},\n\t\"Aug\": {\n\t\tname: \"August\",\n\t\tnum: 8,\n\t\ttwoDigitStr: \"08\"\n\t},\n\t\"Sep\": {\n\t\tname: \"September\",\n\t\tnum: 9,\n\t\ttwoDigitStr: \"09\"\n\t},\n\t\"Oct\": {\n\t\tname: \"October\",\n\t\tnum: 10,\n\t\ttwoDigitStr: \"10\"\n\t},\n\t\"Nov\": {\n\t\tname: \"November\",\n\t\tnum: 11,\n\t\ttwoDigitStr: \"11\"\n\t},\n\t\"Dec\": {\n\t\tname: \"December\",\n\t\tnum: 12,\n\t\ttwoDigitStr: \"12\"\n\t}\n};\nconst MONTH_TO_SEASON_LOOKUP = {\n\tnorthern: {\n\t\t\"Jan\": \"Winter\",\n\t\t\"Feb\": \"Winter\",\n\t\t\"Mar\": \"Spring\",\n\t\t\"Apr\": \"Spring\",\n\t\t\"May\": \"Spring\",\n\t\t\"Jun\": \"Summer\",\n\t\t\"Jul\": \"Summer\",\n\t\t\"Aug\": \"Summer\",\n\t\t\"Sep\": \"Fall\",\n\t\t\"Oct\": \"Fall\",\n\t\t\"Nov\": \"Fall\",\n\t\t\"Dec\": \"Winter\"\n\t},\n\tsouthern: {\n\t\t\"Jan\": \"Summer\",\n\t\t\"Feb\": \"Summer\",\n\t\t\"Mar\": \"Fall\",\n\t\t\"Apr\": \"Fall\",\n\t\t\"May\": \"Fall\",\n\t\t\"Jun\": \"Summer\",\n\t\t\"Jul\": \"Summer\",\n\t\t\"Aug\": \"Summer\",\n\t\t\"Sep\": \"Spring\",\n\t\t\"Oct\": \"Spring\",\n\t\t\"Nov\": \"Spring\",\n\t\t\"Dec\": \"Summer\"\n\t}\n};\nconst DATE_TYPE = [\n\t\"datetime\",\n\t\"date\",\n\t\"year-independent\",\n\t\"year-month\",\n\t\"year\"\n];\n/**\n* months with 30 days\n*/\nconst ISO_DATE_30 = [\n\t\"04\",\n\t\"06\",\n\t\"09\",\n\t\"11\"\n];\n/**\n* months with 31 days\n*/\nconst ISO_DATE_31 = [\n\t\"01\",\n\t\"03\",\n\t\"05\",\n\t\"07\",\n\t\"08\",\n\t\"10\",\n\t\"12\"\n];\n\n//#endregion\n//#region ../constants/src/DoubleLeap_Typical.ts\n/**\n* Double Leap Years for modern times (1400-2300)\n*/\nconst DOUBLE_LEAP_MODERN = [\n\t1408,\n\t1416,\n\t1444,\n\t1452,\n\t1460,\n\t1468,\n\t1476,\n\t1484,\n\t1492,\n\t1520,\n\t1528,\n\t1536,\n\t1544,\n\t1552,\n\t1560,\n\t1568,\n\t1596,\n\t1604,\n\t1612,\n\t1620,\n\t1628,\n\t1636,\n\t1644,\n\t1672,\n\t1680,\n\t1688,\n\t1696,\n\t1704,\n\t1712,\n\t1720,\n\t1748,\n\t1756,\n\t1764,\n\t1772,\n\t1780,\n\t1788,\n\t1796,\n\t1824,\n\t1832,\n\t1840,\n\t1848,\n\t1856,\n\t1864,\n\t1872,\n\t1908,\n\t1916,\n\t1924,\n\t1932,\n\t1940,\n\t1948,\n\t1976,\n\t1984,\n\t1992,\n\t2e3,\n\t2008,\n\t2016,\n\t2024,\n\t2052,\n\t2060,\n\t2068,\n\t2076,\n\t2084,\n\t2092,\n\t2128,\n\t2136,\n\t2144,\n\t2152,\n\t2160,\n\t2168,\n\t2176,\n\t2204,\n\t2212,\n\t2220,\n\t2228,\n\t2236,\n\t2244,\n\t2252,\n\t2280,\n\t2288,\n\t2296\n];\n\n//#endregion\n//#region ../constants/src/FalsyValues.ts\n/**\n* **FALSY_VALUES**\n*\n* A tuple which contains all values which are considered _falsy_ in\n* Javascript.\n*/\nconst FALSY_VALUES = [\n\tfalse,\n\t0,\n\t-0,\n\t\"\",\n\tnull,\n\tvoid 0,\n\tNaN\n];\n\n//#endregion\n//#region ../constants/src/Geo.ts\n/**\n* The 50 US states: `[name, abbrev, true]`\n*/\nconst US_STATE_LOOKUP_STRICT = [\n\t{\n\t\tname: \"Alabama\",\n\t\tabbrev: \"AL\"\n\t},\n\t{\n\t\tname: \"Alaska\",\n\t\tabbrev: \"AK\"\n\t},\n\t{\n\t\tname: \"Arizona\",\n\t\tabbrev: \"AZ\"\n\t},\n\t{\n\t\tname: \"Arkansas\",\n\t\tabbrev: \"AR\"\n\t},\n\t{\n\t\tname: \"California\",\n\t\tabbrev: \"CA\"\n\t},\n\t{\n\t\tname: \"Colorado\",\n\t\tabbrev: \"CO\"\n\t},\n\t{\n\t\tname: \"Connecticut\",\n\t\tabbrev: \"CT\"\n\t},\n\t{\n\t\tname: \"Delaware\",\n\t\tabbrev: \"DE\"\n\t},\n\t{\n\t\tname: \"Florida\",\n\t\tabbrev: \"FL\"\n\t},\n\t{\n\t\tname: \"Georgia\",\n\t\tabbrev: \"GA\"\n\t},\n\t{\n\t\tname: \"Hawaii\",\n\t\tabbrev: \"HI\"\n\t},\n\t{\n\t\tname: \"Idaho\",\n\t\tabbrev: \"ID\"\n\t},\n\t{\n\t\tname: \"Illinois\",\n\t\tabbrev: \"IL\"\n\t},\n\t{\n\t\tname: \"Indiana\",\n\t\tabbrev: \"IN\"\n\t},\n\t{\n\t\tname: \"Iowa\",\n\t\tabbrev: \"IA\"\n\t},\n\t{\n\t\tname: \"Kansas\",\n\t\tabbrev: \"KS\"\n\t},\n\t{\n\t\tname: \"Kentucky\",\n\t\tabbrev: \"KY\"\n\t},\n\t{\n\t\tname: \"Louisiana\",\n\t\tabbrev: \"LA\"\n\t},\n\t{\n\t\tname: \"Maine\",\n\t\tabbrev: \"ME\"\n\t},\n\t{\n\t\tname: \"Maryland\",\n\t\tabbrev: \"MD\"\n\t},\n\t{\n\t\tname: \"Massachusetts\",\n\t\tabbrev: \"MA\"\n\t},\n\t{\n\t\tname: \"Michigan\",\n\t\tabbrev: \"MI\"\n\t},\n\t{\n\t\tname: \"Minnesota\",\n\t\tabbrev: \"MN\"\n\t},\n\t{\n\t\tname: \"Mississippi\",\n\t\tabbrev: \"MS\"\n\t},\n\t{\n\t\tname: \"Missouri\",\n\t\tabbrev: \"MO\"\n\t},\n\t{\n\t\tname: \"Montana\",\n\t\tabbrev: \"MT\"\n\t},\n\t{\n\t\tname: \"Nebraska\",\n\t\tabbrev: \"NE\"\n\t},\n\t{\n\t\tname: \"Nevada\",\n\t\tabbrev: \"NV\"\n\t},\n\t{\n\t\tname: \"New Hampshire\",\n\t\tabbrev: \"NH\"\n\t},\n\t{\n\t\tname: \"New Jersey\",\n\t\tabbrev: \"NJ\"\n\t},\n\t{\n\t\tname: \"New Mexico\",\n\t\tabbrev: \"NM\"\n\t},\n\t{\n\t\tname: \"New York\",\n\t\tabbrev: \"NY\"\n\t},\n\t{\n\t\tname: \"North Carolina\",\n\t\tabbrev: \"NC\"\n\t},\n\t{\n\t\tname: \"North Dakota\",\n\t\tabbrev: \"ND\"\n\t},\n\t{\n\t\tname: \"Ohio\",\n\t\tabbrev: \"OH\"\n\t},\n\t{\n\t\tname: \"Oklahoma\",\n\t\tabbrev: \"OK\"\n\t},\n\t{\n\t\tname: \"Oregon\",\n\t\tabbrev: \"OR\"\n\t},\n\t{\n\t\tname: \"Pennsylvania\",\n\t\tabbrev: \"PA\"\n\t},\n\t{\n\t\tname: \"Rhode Island\",\n\t\tabbrev: \"RI\"\n\t},\n\t{\n\t\tname: \"South Carolina\",\n\t\tabbrev: \"SC\"\n\t},\n\t{\n\t\tname: \"South Dakota\",\n\t\tabbrev: \"SD\"\n\t},\n\t{\n\t\tname: \"Tennessee\",\n\t\tabbrev: \"TN\"\n\t},\n\t{\n\t\tname: \"Texas\",\n\t\tabbrev: \"TX\"\n\t},\n\t{\n\t\tname: \"Utah\",\n\t\tabbrev: \"UT\"\n\t},\n\t{\n\t\tname: \"Vermont\",\n\t\tabbrev: \"VT\"\n\t},\n\t{\n\t\tname: \"Virginia\",\n\t\tabbrev: \"VA\"\n\t},\n\t{\n\t\tname: \"Washington\",\n\t\tabbrev: \"WA\"\n\t},\n\t{\n\t\tname: \"West Virginia\",\n\t\tabbrev: \"WV\"\n\t},\n\t{\n\t\tname: \"Wisconsin\",\n\t\tabbrev: \"WI\"\n\t},\n\t{\n\t\tname: \"Wyoming\",\n\t\tabbrev: \"WY\"\n\t}\n];\n/**\n* The 9 provinces to the US which are granted State codes.\n*/\nconst US_STATE_LOOKUP_PROVINCES = [\n\t{\n\t\tname: \"Puerto Rico\",\n\t\tabbrev: \"PR\"\n\t},\n\t{\n\t\tname: \"Virgin Islands\",\n\t\tabbrev: \"VI\"\n\t},\n\t{\n\t\tname: \"Palau\",\n\t\tabbrev: \"PW\"\n\t},\n\t{\n\t\tname: \"Federated States of Micronesia\",\n\t\tabbrev: \"FM\"\n\t},\n\t{\n\t\tname: \"Northern Mariana Islands\",\n\t\tabbrev: \"MP\"\n\t},\n\t{\n\t\tname: \"District of Columbia\",\n\t\tabbrev: \"DC\"\n\t},\n\t{\n\t\tname: \"Marshall Islands\",\n\t\tabbrev: \"MH\"\n\t},\n\t{\n\t\tname: \"American Samoa\",\n\t\tabbrev: \"AS\"\n\t},\n\t{\n\t\tname: \"Guam\",\n\t\tabbrev: \"GU\"\n\t}\n];\n/**\n* All 50 states and 9 provinces which have State abbreviations.\n*\n* Data format is: `[name, abbrev, flag]` where the boolean flag\n* indicates whether the line item is one of the 50 true states.\n*/\nconst US_STATE_LOOKUP = [...US_STATE_LOOKUP_STRICT, ...US_STATE_LOOKUP_PROVINCES];\n\n//#endregion\n//#region ../constants/src/HashTable.ts\nconst HASH_TABLE_ALPHA_LOWER = {\n\ta: \"8\",\n\tb: \"~\",\n\tc: \"^\",\n\td: \".\",\n\te: \"82\",\n\tf: \"89\",\n\tg: \",\",\n\th: \"!\",\n\ti: \"-7\",\n\tj: \"-8\",\n\tk: \"88\",\n\tl: \"8f\",\n\tm: \"8e\",\n\tn: \"6e\",\n\to: \"44\",\n\tp: \"60\",\n\tq: \"61\",\n\tr: \"71\",\n\ts: \":\",\n\tt: \"-45\",\n\tu: \"-5\",\n\tv: \"-9\",\n\tw: \"-f\",\n\tx: \"+1\",\n\ty: \";\",\n\tz: \"*1\"\n};\nconst HASH_TABLE_SPECIAL = {\n\t\"!\": \"1\",\n\t\"@\": \"8\",\n\t\"#\": \"5\",\n\t\"$\": \"4\",\n\t\"%\": \"3\",\n\t\"^\": \"2\",\n\t\"&\": \"9\",\n\t\"*\": \"7\",\n\t\"(\": \"6\",\n\t\")\": \"12\",\n\t\"{\": \"33\",\n\t\"}\": \"54\",\n\t\"[\": \"x8\",\n\t\"]\": \"y4\",\n\t\":\": \"z2\",\n\t\";\": \"e88\",\n\t\"\\\"\": \"c11\",\n\t\"'\": \"c12\",\n\t\"<\": \"p3\",\n\t\",\": \"45\",\n\t\">\": \"e9\",\n\t\".\": \"f2\",\n\t\"?\": \"ee\",\n\t\"/\": \"u9\",\n\t\"\\\\\": \"f9\",\n\t\"|\": \"q1\",\n\t\"~\": \"fe\",\n\t\"`\": \"8e\"\n};\nconst HASH_TABLE_ALPHA_UPPER = {\n\tA: \"b8\",\n\tB: \"~9\",\n\tC: \"6^\",\n\tD: \".8\",\n\tE: \"5<\",\n\tF: \">7\",\n\tG: \"1,\",\n\tH: \"!7\",\n\tI: \"8#\",\n\tJ: \"@9\",\n\tK: \"1*\",\n\tL: \"4&\",\n\tM: \"+5\",\n\tN: \"j|\",\n\tO: \"-l\",\n\tP: \"q{\",\n\tQ: \"]9\",\n\tR: \"f%\",\n\tS: \":3\",\n\tT: \"?+\",\n\tU: \"}5\",\n\tV: \"'4\",\n\tW: \"1@g\",\n\tX: \"0+1\",\n\tY: \"4;\",\n\tZ: \"a*1\"\n};\nconst HASH_TABLE_CHAR = {\n\t...HASH_TABLE_ALPHA_LOWER,\n\t...HASH_TABLE_ALPHA_UPPER,\n\t...HASH_TABLE_SPECIAL\n};\n\n//#endregion\n//#region ../constants/src/HTML.ts\n/**\n* An array of all valid HTML tags that have both opening and closing tags.\n*/\nconst HTML_BLOCK_TAGS = [\n\t\"a\",\n\t\"abbr\",\n\t\"address\",\n\t\"article\",\n\t\"aside\",\n\t\"b\",\n\t\"bdi\",\n\t\"bdo\",\n\t\"blockquote\",\n\t\"body\",\n\t\"button\",\n\t\"canvas\",\n\t\"caption\",\n\t\"cite\",\n\t\"code\",\n\t\"colgroup\",\n\t\"data\",\n\t\"datalist\",\n\t\"dd\",\n\t\"del\",\n\t\"details\",\n\t\"dfn\",\n\t\"dialog\",\n\t\"div\",\n\t\"dl\",\n\t\"dt\",\n\t\"em\",\n\t\"fieldset\",\n\t\"figcaption\",\n\t\"figure\",\n\t\"footer\",\n\t\"form\",\n\t\"h1\",\n\t\"h2\",\n\t\"h3\",\n\t\"h4\",\n\t\"h5\",\n\t\"h6\",\n\t\"head\",\n\t\"header\",\n\t\"html\",\n\t\"i\",\n\t\"iframe\",\n\t\"ins\",\n\t\"kbd\",\n\t\"label\",\n\t\"legend\",\n\t\"li\",\n\t\"main\",\n\t\"map\",\n\t\"mark\",\n\t\"menu\",\n\t\"meter\",\n\t\"nav\",\n\t\"noscript\",\n\t\"object\",\n\t\"ol\",\n\t\"optgroup\",\n\t\"option\",\n\t\"output\",\n\t\"p\",\n\t\"picture\",\n\t\"pre\",\n\t\"progress\",\n\t\"q\",\n\t\"rp\",\n\t\"rt\",\n\t\"ruby\",\n\t\"s\",\n\t\"samp\",\n\t\"script\",\n\t\"section\",\n\t\"select\",\n\t\"small\",\n\t\"span\",\n\t\"strong\",\n\t\"style\",\n\t\"sub\",\n\t\"summary\",\n\t\"sup\",\n\t\"svg\",\n\t\"table\",\n\t\"tbody\",\n\t\"td\",\n\t\"template\",\n\t\"textarea\",\n\t\"tfoot\",\n\t\"th\",\n\t\"thead\",\n\t\"time\",\n\t\"title\",\n\t\"tr\",\n\t\"u\",\n\t\"ul\",\n\t\"var\",\n\t\"video\"\n];\n/**\n* An array of all valid HTML tags that are self-closing (do not have closing tags).\n*/\nconst HTML_ATOMIC_TAGS = [\n\t\"area\",\n\t\"base\",\n\t\"br\",\n\t\"col\",\n\t\"embed\",\n\t\"hr\",\n\t\"img\",\n\t\"input\",\n\t\"link\",\n\t\"meta\",\n\t\"param\",\n\t\"source\",\n\t\"track\",\n\t\"wbr\"\n];\n\n//#endregion\n//#region ../constants/src/ISO3166.ts\n/**\n* All country codes (name, alpha-2, country-code)\n*/\nconst ISO3166_1 = [\n\t{\n\t\tname: \"Afghanistan\",\n\t\talpha2: \"AF\",\n\t\tcountryCode: \"004\",\n\t\talpha3: \"AFG\"\n\t},\n\t{\n\t\tname: \"Albania\",\n\t\talpha2: \"AL\",\n\t\tcountryCode: \"008\",\n\t\talpha3: \"ALB\"\n\t},\n\t{\n\t\tname: \"Algeria\",\n\t\talpha2: \"DZ\",\n\t\tcountryCode: \"012\",\n\t\talpha3: \"DZA\"\n\t},\n\t{\n\t\tname: \"Andorra\",\n\t\talpha2: \"AD\",\n\t\tcountryCode: \"020\",\n\t\talpha3: \"AND\"\n\t},\n\t{\n\t\tname: \"Angola\",\n\t\talpha2: \"AO\",\n\t\tcountryCode: \"024\",\n\t\talpha3: \"AGO\"\n\t},\n\t{\n\t\tname: \"Argentina\",\n\t\talpha2: \"AR\",\n\t\tcountryCode: \"032\",\n\t\talpha3: \"ARG\"\n\t},\n\t{\n\t\tname: \"Australia\",\n\t\talpha2: \"AU\",\n\t\tcountryCode: \"036\",\n\t\talpha3: \"AUS\"\n\t},\n\t{\n\t\tname: \"Austria\",\n\t\talpha2: \"AT\",\n\t\tcountryCode: \"040\",\n\t\talpha3: \"AUT\"\n\t},\n\t{\n\t\tname: \"Azerbaijan\",\n\t\talpha2: \"AZ\",\n\t\tcountryCode: \"031\",\n\t\talpha3: \"AZE\"\n\t},\n\t{\n\t\tname: \"Bahamas\",\n\t\talpha2: \"BS\",\n\t\tcountryCode: \"044\",\n\t\talpha3: \"BHS\"\n\t},\n\t{\n\t\tname: \"Bangladesh\",\n\t\talpha2: \"BD\",\n\t\tcountryCode: \"050\",\n\t\talpha3: \"BGD\"\n\t},\n\t{\n\t\tname: \"Belgium\",\n\t\talpha2: \"BE\",\n\t\tcountryCode: \"056\",\n\t\talpha3: \"BEL\"\n\t},\n\t{\n\t\tname: \"Belize\",\n\t\talpha2: \"BZ\",\n\t\tcountryCode: \"084\",\n\t\talpha3: \"BLZ\"\n\t},\n\t{\n\t\tname: \"Benin\",\n\t\talpha2: \"BJ\",\n\t\tcountryCode: \"204\",\n\t\talpha3: \"BEN\"\n\t},\n\t{\n\t\tname: \"Bhutan\",\n\t\talpha2: \"BT\",\n\t\tcountryCode: \"064\",\n\t\talpha3: \"BTN\"\n\t},\n\t{\n\t\tname: \"Bolivia\",\n\t\talpha2: \"BO\",\n\t\tcountryCode: \"068\",\n\t\talpha3: \"BOL\"\n\t},\n\t{\n\t\tname: \"Bosnia and Herzegovina\",\n\t\talpha2: \"BA\",\n\t\tcountryCode: \"070\",\n\t\talpha3: \"BIH\"\n\t},\n\t{\n\t\tname: \"Botswana\",\n\t\talpha2: \"BW\",\n\t\tcountryCode: \"072\",\n\t\talpha3: \"BWA\"\n\t},\n\t{\n\t\tname: \"Brazil\",\n\t\talpha2: \"BR\",\n\t\tcountryCode: \"076\",\n\t\talpha3: \"BRA\"\n\t},\n\t{\n\t\tname: \"Brunei Darussalam\",\n\t\talpha2: \"BN\",\n\t\tcountryCode: \"096\",\n\t\talpha3: \"BRN\"\n\t},\n\t{\n\t\tname: \"Bulgaria\",\n\t\talpha2: \"BG\",\n\t\tcountryCode: \"100\",\n\t\talpha3: \"BGR\"\n\t},\n\t{\n\t\tname: \"Burkina Faso\",\n\t\talpha2: \"BF\",\n\t\tcountryCode: \"854\",\n\t\talpha3: \"BFA\"\n\t},\n\t{\n\t\tname: \"Burundi\",\n\t\talpha2: \"BI\",\n\t\tcountryCode: \"108\",\n\t\talpha3: \"BDI\"\n\t},\n\t{\n\t\tname: \"Cambodia\",\n\t\talpha2: \"KH\",\n\t\tcountryCode: \"116\",\n\t\talpha3: \"KHM\"\n\t},\n\t{\n\t\tname: \"Cameroon\",\n\t\talpha2: \"CM\",\n\t\tcountryCode: \"120\",\n\t\talpha3: \"CMR\"\n\t},\n\t{\n\t\tname: \"Canada\",\n\t\talpha2: \"CA\",\n\t\tcountryCode: \"124\",\n\t\talpha3: \"CAN\"\n\t},\n\t{\n\t\tname: \"Afghanistan\",\n\t\talpha2: \"AF\",\n\t\tcountryCode: \"004\",\n\t\talpha3: \"AFG\"\n\t},\n\t{\n\t\tname: \"Albania\",\n\t\talpha2: \"AL\",\n\t\tcountryCode: \"008\",\n\t\talpha3: \"ALB\"\n\t},\n\t{\n\t\tname: \"Algeria\",\n\t\talpha2: \"DZ\",\n\t\tcountryCode: \"012\",\n\t\talpha3: \"DZA\"\n\t},\n\t{\n\t\tname: \"Andorra\",\n\t\talpha2: \"AD\",\n\t\tcountryCode: \"020\",\n\t\talpha3: \"AND\"\n\t},\n\t{\n\t\tname: \"Angola\",\n\t\talpha2: \"AO\",\n\t\tcountryCode: \"024\",\n\t\talpha3: \"AGO\"\n\t},\n\t{\n\t\tname: \"Argentina\",\n\t\talpha2: \"AR\",\n\t\tcountryCode: \"032\",\n\t\talpha3: \"ARG\"\n\t},\n\t{\n\t\tname: \"Australia\",\n\t\talpha2: \"AU\",\n\t\tcountryCode: \"036\",\n\t\talpha3: \"AUS\"\n\t},\n\t{\n\t\tname: \"Austria\",\n\t\talpha2: \"AT\",\n\t\tcountryCode: \"040\",\n\t\talpha3: \"AUT\"\n\t},\n\t{\n\t\tname: \"Azerbaijan\",\n\t\talpha2: \"AZ\",\n\t\tcountryCode: \"031\",\n\t\talpha3: \"AZE\"\n\t},\n\t{\n\t\tname: \"Bahamas\",\n\t\talpha2: \"BS\",\n\t\tcountryCode: \"044\",\n\t\talpha3: \"BHS\"\n\t},\n\t{\n\t\tname: \"Bangladesh\",\n\t\talpha2: \"BD\",\n\t\tcountryCode: \"050\",\n\t\talpha3: \"BGD\"\n\t},\n\t{\n\t\tname: \"Belgium\",\n\t\talpha2: \"BE\",\n\t\tcountryCode: \"056\",\n\t\talpha3: \"BEL\"\n\t},\n\t{\n\t\tname: \"Belize\",\n\t\talpha2: \"BZ\",\n\t\tcountryCode: \"084\",\n\t\talpha3: \"BLZ\"\n\t},\n\t{\n\t\tname: \"Benin\",\n\t\talpha2: \"BJ\",\n\t\tcountryCode: \"204\",\n\t\talpha3: \"BEN\"\n\t},\n\t{\n\t\tname: \"Bhutan\",\n\t\talpha2: \"BT\",\n\t\tcountryCode: \"064\",\n\t\talpha3: \"BTN\"\n\t},\n\t{\n\t\tname: \"Bolivia\",\n\t\talpha2: \"BO\",\n\t\tcountryCode: \"068\",\n\t\talpha3: \"BOL\"\n\t},\n\t{\n\t\tname: \"Bosnia and Herzegovina\",\n\t\talpha2: \"BA\",\n\t\tcountryCode: \"070\",\n\t\talpha3: \"BIH\"\n\t},\n\t{\n\t\tname: \"Botswana\",\n\t\talpha2: \"BW\",\n\t\tcountryCode: \"072\",\n\t\talpha3: \"BWA\"\n\t},\n\t{\n\t\tname: \"Brazil\",\n\t\talpha2: \"BR\",\n\t\tcountryCode: \"076\",\n\t\talpha3: \"BRA\"\n\t},\n\t{\n\t\tname: \"Brunei Darussalam\",\n\t\talpha2: \"BN\",\n\t\tcountryCode: \"096\",\n\t\talpha3: \"BRN\"\n\t},\n\t{\n\t\tname: \"Bulgaria\",\n\t\talpha2: \"BG\",\n\t\tcountryCode: \"100\",\n\t\talpha3: \"BGR\"\n\t},\n\t{\n\t\tname: \"Burkina Faso\",\n\t\talpha2: \"BF\",\n\t\tcountryCode: \"854\",\n\t\talpha3: \"BFA\"\n\t},\n\t{\n\t\tname: \"Burundi\",\n\t\talpha2: \"BI\",\n\t\tcountryCode: \"108\",\n\t\talpha3: \"BDI\"\n\t},\n\t{\n\t\tname: \"Cambodia\",\n\t\talpha2: \"KH\",\n\t\tcountryCode: \"116\",\n\t\talpha3: \"KHM\"\n\t},\n\t{\n\t\tname: \"Cameroon\",\n\t\talpha2: \"CM\",\n\t\tcountryCode: \"120\",\n\t\talpha3: \"CMR\"\n\t},\n\t{\n\t\tname: \"Canada\",\n\t\talpha2: \"CA\",\n\t\tcountryCode: \"124\",\n\t\talpha3: \"CAN\"\n\t},\n\t{\n\t\tname: \"Maldives\",\n\t\talpha2: \"MV\",\n\t\tcountryCode: \"462\",\n\t\talpha3: \"MDV\"\n\t},\n\t{\n\t\tname: \"Mali\",\n\t\talpha2: \"ML\",\n\t\tcountryCode: \"466\",\n\t\talpha3: \"MLI\"\n\t},\n\t{\n\t\tname: \"Malta\",\n\t\talpha2: \"MT\",\n\t\tcountryCode: \"470\",\n\t\talpha3: \"MLT\"\n\t},\n\t{\n\t\tname: \"Marshall Islands\",\n\t\talpha2: \"MH\",\n\t\tcountryCode: \"584\",\n\t\talpha3: \"MHL\"\n\t},\n\t{\n\t\tname: \"Mauritania\",\n\t\talpha2: \"MR\",\n\t\tcountryCode: \"478\",\n\t\talpha3: \"MRT\"\n\t},\n\t{\n\t\tname: \"Mauritius\",\n\t\talpha2: \"MU\",\n\t\tcountryCode: \"480\",\n\t\talpha3: \"MUS\"\n\t},\n\t{\n\t\tname: \"Mexico\",\n\t\talpha2: \"MX\",\n\t\tcountryCode: \"484\",\n\t\talpha3: \"MEX\"\n\t},\n\t{\n\t\tname: \"Micronesia (Federated States of)\",\n\t\talpha2: \"FM\",\n\t\tcountryCode: \"583\",\n\t\talpha3: \"FSM\"\n\t},\n\t{\n\t\tname: \"Moldova (Republic of)\",\n\t\talpha2: \"MD\",\n\t\tcountryCode: \"498\",\n\t\talpha3: \"MDA\"\n\t},\n\t{\n\t\tname: \"Monaco\",\n\t\talpha2: \"MC\",\n\t\tcountryCode: \"492\",\n\t\talpha3: \"MCO\"\n\t},\n\t{\n\t\tname: \"Mongolia\",\n\t\talpha2: \"MN\",\n\t\tcountryCode: \"496\",\n\t\talpha3: \"MNG\"\n\t},\n\t{\n\t\tname: \"Montenegro\",\n\t\talpha2: \"ME\",\n\t\tcountryCode: \"499\",\n\t\talpha3: \"MNE\"\n\t},\n\t{\n\t\tname: \"Morocco\",\n\t\talpha2: \"MA\",\n\t\tcountryCode: \"504\",\n\t\talpha3: \"MAR\"\n\t},\n\t{\n\t\tname: \"Mozambique\",\n\t\talpha2: \"MZ\",\n\t\tcountryCode: \"508\",\n\t\talpha3: \"MOZ\"\n\t},\n\t{\n\t\tname: \"Myanmar\",\n\t\talpha2: \"MM\",\n\t\tcountryCode: \"104\",\n\t\talpha3: \"MMR\"\n\t},\n\t{\n\t\tname: \"Namibia\",\n\t\talpha2: \"NA\",\n\t\tcountryCode: \"516\",\n\t\talpha3: \"NAM\"\n\t},\n\t{\n\t\tname: \"Nauru\",\n\t\talpha2: \"NR\",\n\t\tcountryCode: \"520\",\n\t\talpha3: \"NRU\"\n\t},\n\t{\n\t\tname: \"Nepal\",\n\t\talpha2: \"NP\",\n\t\tcountryCode: \"524\",\n\t\talpha3: \"NPL\"\n\t},\n\t{\n\t\tname: \"Netherlands\",\n\t\talpha2: \"NL\",\n\t\tcountryCode: \"528\",\n\t\talpha3: \"NLD\"\n\t},\n\t{\n\t\tname: \"New Zealand\",\n\t\talpha2: \"NZ\",\n\t\tcountryCode: \"554\",\n\t\talpha3: \"NZL\"\n\t},\n\t{\n\t\tname: \"Nicaragua\",\n\t\talpha2: \"NI\",\n\t\tcountryCode: \"558\",\n\t\talpha3: \"NIC\"\n\t},\n\t{\n\t\tname: \"Niger\",\n\t\talpha2: \"NE\",\n\t\tcountryCode: \"562\",\n\t\talpha3: \"NER\"\n\t},\n\t{\n\t\tname: \"Nigeria\",\n\t\talpha2: \"NG\",\n\t\tcountryCode: \"566\",\n\t\talpha3: \"NGA\"\n\t},\n\t{\n\t\tname: \"North Macedonia\",\n\t\talpha2: \"MK\",\n\t\tcountryCode: \"807\",\n\t\talpha3: \"MKD\"\n\t},\n\t{\n\t\tname: \"Norway\",\n\t\talpha2: \"NO\",\n\t\tcountryCode: \"578\",\n\t\talpha3: \"NOR\"\n\t},\n\t{\n\t\tname: \"Oman\",\n\t\talpha2: \"OM\",\n\t\tcountryCode: \"512\",\n\t\talpha3: \"OMN\"\n\t},\n\t{\n\t\tname: \"Pakistan\",\n\t\talpha2: \"PK\",\n\t\tcountryCode: \"586\",\n\t\talpha3: \"PAK\"\n\t},\n\t{\n\t\tname: \"Palau\",\n\t\talpha2: \"PW\",\n\t\tcountryCode: \"585\",\n\t\talpha3: \"PLW\"\n\t},\n\t{\n\t\tname: \"Panama\",\n\t\talpha2: \"PA\",\n\t\tcountryCode: \"591\",\n\t\talpha3: \"PAN\"\n\t},\n\t{\n\t\tname: \"Papua New Guinea\",\n\t\talpha2: \"PG\",\n\t\tcountryCode: \"598\",\n\t\talpha3: \"PNG\"\n\t},\n\t{\n\t\tname: \"Paraguay\",\n\t\talpha2: \"PY\",\n\t\tcountryCode: \"600\",\n\t\talpha3: \"PRY\"\n\t},\n\t{\n\t\tname: \"Peru\",\n\t\talpha2: \"PE\",\n\t\tcountryCode: \"604\",\n\t\talpha3: \"PER\"\n\t},\n\t{\n\t\tname: \"Philippines\",\n\t\talpha2: \"PH\",\n\t\tcountryCode: \"608\",\n\t\talpha3: \"PHL\"\n\t},\n\t{\n\t\tname: \"Poland\",\n\t\talpha2: \"PL\",\n\t\tcountryCode: \"616\",\n\t\talpha3: \"POL\"\n\t},\n\t{\n\t\tname: \"Portugal\",\n\t\talpha2: \"PT\",\n\t\tcountryCode: \"620\",\n\t\talpha3: \"PRT\"\n\t},\n\t{\n\t\tname: \"Qatar\",\n\t\talpha2: \"QA\",\n\t\tcountryCode: \"634\",\n\t\talpha3: \"QAT\"\n\t},\n\t{\n\t\tname: \"Romania\",\n\t\talpha2: \"RO\",\n\t\tcountryCode: \"642\",\n\t\talpha3: \"ROU\"\n\t},\n\t{\n\t\tname: \"Russian Federation\",\n\t\talpha2: \"RU\",\n\t\tcountryCode: \"643\",\n\t\talpha3: \"RUS\"\n\t},\n\t{\n\t\tname: \"Rwanda\",\n\t\talpha2: \"RW\",\n\t\tcountryCode: \"646\",\n\t\talpha3: \"RWA\"\n\t},\n\t{\n\t\tname: \"Saint Kitts and Nevis\",\n\t\talpha2: \"KN\",\n\t\tcountryCode: \"659\",\n\t\talpha3: \"KNA\"\n\t},\n\t{\n\t\tname: \"Saint Lucia\",\n\t\talpha2: \"LC\",\n\t\tcountryCode: \"662\",\n\t\talpha3: \"LCA\"\n\t},\n\t{\n\t\tname: \"Saint Vincent and the Grenadines\",\n\t\talpha2: \"VC\",\n\t\tcountryCode: \"670\",\n\t\talpha3: \"VCT\"\n\t},\n\t{\n\t\tname: \"Samoa\",\n\t\talpha2: \"WS\",\n\t\tcountryCode: \"882\",\n\t\talpha3: \"WSM\"\n\t},\n\t{\n\t\tname: \"San Marino\",\n\t\talpha2: \"SM\",\n\t\tcountryCode: \"674\",\n\t\talpha3: \"SMR\"\n\t},\n\t{\n\t\tname: \"Sao Tome and Principe\",\n\t\talpha2: \"ST\",\n\t\tcountryCode: \"678\",\n\t\talpha3: \"STP\"\n\t},\n\t{\n\t\tname: \"Saudi Arabia\",\n\t\talpha2: \"SA\",\n\t\tcountryCode: \"682\",\n\t\talpha3: \"SAU\"\n\t},\n\t{\n\t\tname: \"Senegal\",\n\t\talpha2: \"SN\",\n\t\tcountryCode: \"686\",\n\t\talpha3: \"SEN\"\n\t},\n\t{\n\t\tname: \"Serbia\",\n\t\talpha2: \"RS\",\n\t\tcountryCode: \"688\",\n\t\talpha3: \"SRB\"\n\t},\n\t{\n\t\tname: \"Seychelles\",\n\t\talpha2: \"SC\",\n\t\tcountryCode: \"690\",\n\t\talpha3: \"SYC\"\n\t},\n\t{\n\t\tname: \"Sierra Leone\",\n\t\talpha2: \"SL\",\n\t\tcountryCode: \"694\",\n\t\talpha3: \"SLE\"\n\t},\n\t{\n\t\tname: \"Singapore\",\n\t\talpha2: \"SG\",\n\t\tcountryCode: \"702\",\n\t\talpha3: \"SGP\"\n\t},\n\t{\n\t\tname: \"Slovakia\",\n\t\talpha2: \"SK\",\n\t\tcountryCode: \"703\",\n\t\talpha3: \"SVK\"\n\t},\n\t{\n\t\tname: \"Slovenia\",\n\t\talpha2: \"SI\",\n\t\tcountryCode: \"705\",\n\t\talpha3: \"SVN\"\n\t},\n\t{\n\t\tname: \"Solomon Islands\",\n\t\talpha2: \"SB\",\n\t\tcountryCode: \"090\",\n\t\talpha3: \"SLB\"\n\t},\n\t{\n\t\tname: \"Somalia\",\n\t\talpha2: \"SO\",\n\t\tcountryCode: \"706\",\n\t\talpha3: \"SOM\"\n\t},\n\t{\n\t\tname: \"South Africa\",\n\t\talpha2: \"ZA\",\n\t\tcountryCode: \"710\",\n\t\talpha3: \"ZAF\"\n\t},\n\t{\n\t\tname: \"South Sudan\",\n\t\talpha2: \"SS\",\n\t\tcountryCode: \"728\",\n\t\talpha3: \"SSD\"\n\t},\n\t{\n\t\tname: \"Spain\",\n\t\talpha2: \"ES\",\n\t\tcountryCode: \"724\",\n\t\talpha3: \"ESP\"\n\t},\n\t{\n\t\tname: \"Sri Lanka\",\n\t\talpha2: \"LK\",\n\t\tcountryCode: \"144\",\n\t\talpha3: \"LKA\"\n\t},\n\t{\n\t\tname: \"Sudan\",\n\t\talpha2: \"SD\",\n\t\tcountryCode: \"729\",\n\t\talpha3: \"SDN\"\n\t},\n\t{\n\t\tname: \"Suriname\",\n\t\talpha2: \"SR\",\n\t\tcountryCode: \"740\",\n\t\talpha3: \"SUR\"\n\t},\n\t{\n\t\tname: \"Sweden\",\n\t\talpha2: \"SE\",\n\t\tcountryCode: \"752\",\n\t\talpha3: \"SWE\"\n\t},\n\t{\n\t\tname: \"Switzerland\",\n\t\talpha2: \"CH\",\n\t\tcountryCode: \"756\",\n\t\talpha3: \"CHE\"\n\t},\n\t{\n\t\tname: \"Syrian Arab Republic\",\n\t\talpha2: \"SY\",\n\t\tcountryCode: \"760\",\n\t\talpha3: \"SYR\"\n\t},\n\t{\n\t\tname: \"Taiwan\",\n\t\talpha2: \"TW\",\n\t\tcountryCode: \"158\",\n\t\talpha3: \"TWN\"\n\t},\n\t{\n\t\tname: \"Tajikistan\",\n\t\talpha2: \"TJ\",\n\t\tcountryCode: \"762\",\n\t\talpha3: \"TJK\"\n\t},\n\t{\n\t\tname: \"Tanzania\",\n\t\talpha2: \"TZ\",\n\t\tcountryCode: \"834\",\n\t\talpha3: \"TZA\"\n\t},\n\t{\n\t\tname: \"Thailand\",\n\t\talpha2: \"TH\",\n\t\tcountryCode: \"764\",\n\t\talpha3: \"THA\"\n\t},\n\t{\n\t\tname: \"Timor-Leste\",\n\t\talpha2: \"TL\",\n\t\tcountryCode: \"626\",\n\t\talpha3: \"TLS\"\n\t},\n\t{\n\t\tname: \"Togo\",\n\t\talpha2: \"TG\",\n\t\tcountryCode: \"768\",\n\t\talpha3: \"TGO\"\n\t},\n\t{\n\t\tname: \"Tonga\",\n\t\talpha2: \"TO\",\n\t\tcountryCode: \"776\",\n\t\talpha3: \"TON\"\n\t},\n\t{\n\t\tname: \"Tonga\",\n\t\talpha2: \"TO\",\n\t\tcountryCode: \"776\",\n\t\talpha3: \"TON\"\n\t},\n\t{\n\t\tname: \"Trinidad and Tobago\",\n\t\talpha2: \"TT\",\n\t\tcountryCode: \"780\",\n\t\talpha3: \"TTO\"\n\t},\n\t{\n\t\tname: \"Tunisia\",\n\t\talpha2: \"TN\",\n\t\tcountryCode: \"788\",\n\t\talpha3: \"TUN\"\n\t},\n\t{\n\t\tname: \"Turkey\",\n\t\talpha2: \"TR\",\n\t\tcountryCode: \"792\",\n\t\talpha3: \"TUR\"\n\t},\n\t{\n\t\tname: \"Turkmenistan\",\n\t\talpha2: \"TM\",\n\t\tcountryCode: \"795\",\n\t\talpha3: \"TKM\"\n\t},\n\t{\n\t\tname: \"Tuvalu\",\n\t\talpha2: \"TV\",\n\t\tcountryCode: \"798\",\n\t\talpha3: \"TUV\"\n\t},\n\t{\n\t\tname: \"Uganda\",\n\t\talpha2: \"UG\",\n\t\tcountryCode: \"800\",\n\t\talpha3: \"UGA\"\n\t},\n\t{\n\t\tname: \"Ukraine\",\n\t\talpha2: \"UA\",\n\t\tcountryCode: \"804\",\n\t\talpha3: \"UKR\"\n\t},\n\t{\n\t\tname: \"United Arab Emirates\",\n\t\talpha2: \"AE\",\n\t\tcountryCode: \"784\",\n\t\talpha3: \"ARE\"\n\t},\n\t{\n\t\tname: \"United Kingdom\",\n\t\talpha2: \"GB\",\n\t\tcountryCode: \"826\",\n\t\talpha3: \"GBR\"\n\t},\n\t{\n\t\tname: \"United States of America\",\n\t\talpha2: \"US\",\n\t\tcountryCode: \"840\",\n\t\talpha3: \"USA\"\n\t},\n\t{\n\t\tname: \"Uruguay\",\n\t\talpha2: \"UY\",\n\t\tcountryCode: \"858\",\n\t\talpha3: \"URY\"\n\t},\n\t{\n\t\tname: \"Uzbekistan\",\n\t\talpha2: \"UZ\",\n\t\tcountryCode: \"860\",\n\t\talpha3: \"UZB\"\n\t},\n\t{\n\t\tname: \"Vanuatu\",\n\t\talpha2: \"VU\",\n\t\tcountryCode: \"548\",\n\t\talpha3: \"VUT\"\n\t},\n\t{\n\t\tname: \"Venezuela\",\n\t\talpha2: \"VE\",\n\t\tcountryCode: \"862\",\n\t\talpha3: \"VEN\"\n\t},\n\t{\n\t\tname: \"Viet Nam\",\n\t\talpha2: \"VN\",\n\t\tcountryCode: \"704\",\n\t\talpha3: \"VNM\"\n\t},\n\t{\n\t\tname: \"Yemen\",\n\t\talpha2: \"YE\",\n\t\tcountryCode: \"887\",\n\t\talpha3: \"YEM\"\n\t},\n\t{\n\t\tname: \"Zambia\",\n\t\talpha2: \"ZM\",\n\t\tcountryCode: \"894\",\n\t\talpha3: \"ZMB\"\n\t},\n\t{\n\t\tname: \"Zimbabwe\",\n\t\talpha2: \"ZW\",\n\t\tcountryCode: \"716\",\n\t\talpha3: \"ZWE\"\n\t}\n];\n\n//#endregion\n//#region ../constants/src/Marked.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant$4(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\nconst MARKED = createConstant$4(\"Marked\");\n\n//#endregion\n//#region ../constants/src/Metrics.ts\nconst DISTANCE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"km\",\n\t\tname: \"kilometer\"\n\t},\n\t{\n\t\tabbrev: \"mi\",\n\t\tname: \"mile\"\n\t},\n\t{\n\t\tabbrev: \"mm\",\n\t\tname: \"millimeter\"\n\t},\n\t{\n\t\tabbrev: \"cm\",\n\t\tname: \"centimeter\"\n\t},\n\t{\n\t\tabbrev: \"yd\",\n\t\tname: \"yard\"\n\t},\n\t{\n\t\tabbrev: \"ft\",\n\t\tname: \"foot\"\n\t},\n\t{\n\t\tabbrev: \"in\",\n\t\tname: \"inch\"\n\t},\n\t{\n\t\tabbrev: \"m\",\n\t\tname: \"meter\"\n\t},\n\t{\n\t\tabbrev: \"nm\",\n\t\tname: \"nautical mile\"\n\t},\n\t{\n\t\tabbrev: \"nmi\",\n\t\tname: \"nanometer\"\n\t},\n\t{\n\t\tabbrev: \"µm\",\n\t\tname: \"micrometer\"\n\t},\n\t{\n\t\tabbrev: \"dm\",\n\t\tname: \"decimeter\"\n\t},\n\t{\n\t\tabbrev: \"AU\",\n\t\tname: \"astronomical unit\"\n\t},\n\t{\n\t\tabbrev: \"ly\",\n\t\tname: \"light year\"\n\t},\n\t{\n\t\tabbrev: \"pc\",\n\t\tname: \"parsec\"\n\t}\n];\nconst MASS_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"g\",\n\t\tname: \"gram\"\n\t},\n\t{\n\t\tabbrev: \"kg\",\n\t\tname: \"kilogram\"\n\t},\n\t{\n\t\tabbrev: \"mg\",\n\t\tname: \"milligram\"\n\t},\n\t{\n\t\tabbrev: \"µg\",\n\t\tname: \"microgram\"\n\t},\n\t{\n\t\tabbrev: \"t\",\n\t\tname: \"tonne\"\n\t},\n\t{\n\t\tabbrev: \"lb\",\n\t\tname: \"pound\"\n\t},\n\t{\n\t\tabbrev: \"oz\",\n\t\tname: \"ounce\"\n\t},\n\t{\n\t\tabbrev: \"st\",\n\t\tname: \"stone\"\n\t},\n\t{\n\t\tabbrev: \"ct\",\n\t\tname: \"carat\"\n\t},\n\t{\n\t\tabbrev: \"Mt\",\n\t\tname: \"megatonne\"\n\t},\n\t{\n\t\tabbrev: \"gt\",\n\t\tname: \"gigatonne\"\n\t},\n\t{\n\t\tabbrev: \"slug\",\n\t\tname: \"slug\"\n\t},\n\t{\n\t\tabbrev: \"dr\",\n\t\tname: \"dram\"\n\t},\n\t{\n\t\tabbrev: \"gr\",\n\t\tname: \"grain\"\n\t},\n\t{\n\t\tabbrev: \"q\",\n\t\tname: \"quintal\"\n\t}\n];\nconst SPEED_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"m/s\",\n\t\tname: \"meters per second\"\n\t},\n\t{\n\t\tabbrev: \"km/h\",\n\t\tname: \"kilometers per hour\"\n\t},\n\t{\n\t\tabbrev: \"mph\",\n\t\tname: \"miles per hour\"\n\t},\n\t{\n\t\tabbrev: \"kn\",\n\t\tname: \"knot\"\n\t},\n\t{\n\t\tabbrev: \"ft/s\",\n\t\tname: \"feet per second\"\n\t},\n\t{\n\t\tabbrev: \"c\",\n\t\tname: \"speed of light\"\n\t},\n\t{\n\t\tabbrev: \"mach\",\n\t\tname: \"mach\"\n\t},\n\t{\n\t\tabbrev: \"cm/s\",\n\t\tname: \"centimeters per second\"\n\t},\n\t{\n\t\tabbrev: \"in/s\",\n\t\tname: \"inches per second\"\n\t},\n\t{\n\t\tabbrev: \"ly/y\",\n\t\tname: \"light years per year\"\n\t}\n];\nconst ACCELERATION_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"m/s²\",\n\t\tname: \"meters per second squared\"\n\t},\n\t{\n\t\tabbrev: \"ft/s²\",\n\t\tname: \"feet per second squared\"\n\t},\n\t{\n\t\tabbrev: \"g\",\n\t\tname: \"g-force\"\n\t},\n\t{\n\t\tabbrev: \"Gal\",\n\t\tname: \"galileo\"\n\t},\n\t{\n\t\tabbrev: \"cm/s²\",\n\t\tname: \"centimeters per second squared\"\n\t},\n\t{\n\t\tabbrev: \"km/h²\",\n\t\tname: \"kilometers per hour squared\"\n\t},\n\t{\n\t\tabbrev: \"in/s²\",\n\t\tname: \"inches per second squared\"\n\t},\n\t{\n\t\tabbrev: \"mi/h²\",\n\t\tname: \"miles per hour squared\"\n\t},\n\t{\n\t\tabbrev: \"kn/s²\",\n\t\tname: \"knots per second squared\"\n\t}\n];\nconst VOLUME_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"L\",\n\t\tname: \"liter\"\n\t},\n\t{\n\t\tabbrev: \"dL\",\n\t\tname: \"deciliter\"\n\t},\n\t{\n\t\tabbrev: \"mL\",\n\t\tname: \"milliliter\"\n\t},\n\t{\n\t\tabbrev: \"µL\",\n\t\tname: \"microliter\"\n\t},\n\t{\n\t\tabbrev: \"cm³\",\n\t\tname: \"cubic centimeter\"\n\t},\n\t{\n\t\tabbrev: \"m³\",\n\t\tname: \"cubic meter\"\n\t},\n\t{\n\t\tabbrev: \"ft³\",\n\t\tname: \"cubic foot\"\n\t},\n\t{\n\t\tabbrev: \"in³\",\n\t\tname: \"cubic inch\"\n\t},\n\t{\n\t\tabbrev: \"gallon\",\n\t\tname: \"gallon\"\n\t},\n\t{\n\t\tabbrev: \"qt\",\n\t\tname: \"quart\"\n\t},\n\t{\n\t\tabbrev: \"pt\",\n\t\tname: \"pint\"\n\t},\n\t{\n\t\tabbrev: \"fl oz\",\n\t\tname: \"fluid ounce\"\n\t},\n\t{\n\t\tabbrev: \"barrel\",\n\t\tname: \"barrel\"\n\t},\n\t{\n\t\tabbrev: \"tbsp\",\n\t\tname: \"tablespoon\"\n\t},\n\t{\n\t\tabbrev: \"tsp\",\n\t\tname: \"teaspoon\"\n\t}\n];\nconst TEMPERATURE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"°C\",\n\t\tname: \"celsius\"\n\t},\n\t{\n\t\tabbrev: \"°F\",\n\t\tname: \"fahrenheit\"\n\t},\n\t{\n\t\tabbrev: \"K\",\n\t\tname: \"kelvin\"\n\t}\n];\nconst PRESSURE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"Pa\",\n\t\tname: \"pascal\"\n\t},\n\t{\n\t\tabbrev: \"bar\",\n\t\tname: \"bar\"\n\t},\n\t{\n\t\tabbrev: \"atm\",\n\t\tname: \"atmosphere\"\n\t},\n\t{\n\t\tabbrev: \"mmHg\",\n\t\tname: \"millimeters of mercury\"\n\t},\n\t{\n\t\tabbrev: \"psi\",\n\t\tname: \"pounds per square inch\"\n\t}\n];\nconst ENERGY_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"J\",\n\t\tname: \"joule\"\n\t},\n\t{\n\t\tabbrev: \"cal\",\n\t\tname: \"calorie\"\n\t},\n\t{\n\t\tabbrev: \"kcal\",\n\t\tname: \"kilocalorie\"\n\t},\n\t{\n\t\tabbrev: \"kWh\",\n\t\tname: \"kilowatt-hour\"\n\t},\n\t{\n\t\tabbrev: \"BTU\",\n\t\tname: \"british thermal unit\"\n\t},\n\t{\n\t\tabbrev: \"eV\",\n\t\tname: \"electronvolt\"\n\t}\n];\nconst TIME_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"s\",\n\t\tname: \"second\"\n\t},\n\t{\n\t\tabbrev: \"m\",\n\t\tname: \"minute\"\n\t},\n\t{\n\t\tabbrev: \"h\",\n\t\tname: \"hour\"\n\t},\n\t{\n\t\tabbrev: \"day\",\n\t\tname: \"day\"\n\t},\n\t{\n\t\tabbrev: \"week\",\n\t\tname: \"week\"\n\t},\n\t{\n\t\tabbrev: \"mo\",\n\t\tname: \"month\"\n\t},\n\t{\n\t\tabbrev: \"ms\",\n\t\tname: \"millisecond\"\n\t},\n\t{\n\t\tabbrev: \"µs\",\n\t\tname: \"microsecond\"\n\t},\n\t{\n\t\tabbrev: \"ns\",\n\t\tname: \"nanosecond\"\n\t}\n];\nconst POWER_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"W\",\n\t\tname: \"Watt\"\n\t},\n\t{\n\t\tabbrev: \"kW\",\n\t\tname: \"kilowatt\"\n\t},\n\t{\n\t\tabbrev: \"MW\",\n\t\tname: \"megawatt\"\n\t},\n\t{\n\t\tabbrev: \"hp\",\n\t\tname: \"horsepower\"\n\t},\n\t{\n\t\tabbrev: \"GW\",\n\t\tname: \"gigawatt\"\n\t}\n];\nconst FREQUENCY_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"Hz\",\n\t\tname: \"hertz\"\n\t},\n\t{\n\t\tabbrev: \"kHz\",\n\t\tname: \"kilohertz\"\n\t},\n\t{\n\t\tabbrev: \"MHz\",\n\t\tname: \"megahertz\"\n\t},\n\t{\n\t\tabbrev: \"GHz\",\n\t\tname: \"gigahertz\"\n\t},\n\t{\n\t\tabbrev: \"THz\",\n\t\tname: \"terahertz\"\n\t}\n];\nconst VOLTAGE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"V\",\n\t\tname: \"volt\"\n\t},\n\t{\n\t\tabbrev: \"kV\",\n\t\tname: \"kilovolt\"\n\t},\n\t{\n\t\tabbrev: \"mV\",\n\t\tname: \"millivolt\"\n\t},\n\t{\n\t\tabbrev: \"µV\",\n\t\tname: \"microvolt\"\n\t}\n];\nconst CURRENT_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"A\",\n\t\tname: \"ampere\"\n\t},\n\t{\n\t\tabbrev: \"mA\",\n\t\tname: \"milliampere\"\n\t},\n\t{\n\t\tabbrev: \"µA\",\n\t\tname: \"microampere\"\n\t},\n\t{\n\t\tabbrev: \"kA\",\n\t\tname: \"kiloampere\"\n\t}\n];\nconst RESISTANCE_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"Ω\",\n\t\tname: \"ohm\"\n\t},\n\t{\n\t\tabbrev: \"kΩ\",\n\t\tname: \"kiloohm\"\n\t},\n\t{\n\t\tabbrev: \"MΩ\",\n\t\tname: \"megaohm\"\n\t}\n];\nconst LUMINOSITY_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"cd\",\n\t\tname: \"candela\"\n\t},\n\t{\n\t\tabbrev: \"lm\",\n\t\tname: \"lumen\"\n\t},\n\t{\n\t\tabbrev: \"lx\",\n\t\tname: \"lux\"\n\t}\n];\nconst AREA_METRICS_LOOKUP = [\n\t{\n\t\tabbrev: \"m²\",\n\t\tname: \"square meter\"\n\t},\n\t{\n\t\tabbrev: \"cm²\",\n\t\tname: \"square centimeter\"\n\t},\n\t{\n\t\tabbrev: \"mm²\",\n\t\tname: \"square millimeter\"\n\t},\n\t{\n\t\tabbrev: \"km²\",\n\t\tname: \"square kilometer\"\n\t},\n\t{\n\t\tabbrev: \"ft²\",\n\t\tname: \"square foot\"\n\t},\n\t{\n\t\tabbrev: \"in²\",\n\t\tname: \"square inch\"\n\t},\n\t{\n\t\tabbrev: \"acre\",\n\t\tname: \"acre\"\n\t},\n\t{\n\t\tabbrev: \"ha\",\n\t\tname: \"hectare\"\n\t}\n];\n\n//#endregion\n//#region ../constants/src/Nesting.ts\n/**\n* A paired bracketing strategy which matches on\n* bracket characters:\n*\n* - parenthesis: `(` -> `)`\n* - square brackets: `[` -> `]`\n* - angle brackets: `<` -> `>`\n* - and curlies: `{` -> `}`\n*/\nconst BRACKET_NESTING = {\n\t\"{\": \"}\",\n\t\"[\": \"]\",\n\t\"<\": \">\",\n\t\"(\": \")\"\n};\n/**\n* A paired bracketing strategy which includes the three\n* main quotation symbols:\n*\n* - single quote (**'**),\n* - double quote (**\"**),\n* - and backtick (**`**)\n*/\nconst QUOTE_NESTING = {\n\t\"\\\"\": \"\\\"\",\n\t\"'\": \"'\",\n\t\"`\": \"`\"\n};\n\n//#endregion\n//#region ../constants/src/NetworkConstants.ts\nconst NETWORK_PROTOCOL_INSECURE = [\n\t\"http\",\n\t\"ftp\",\n\t\"ws\",\n\t\"dns\",\n\t\"telnet\",\n\t\"imap\",\n\t\"pop3\",\n\t\"smtp\"\n];\nconst NETWORK_PROTOCOL_SECURE = [\n\t\"https\",\n\t\"sftp\",\n\t\"wss\",\n\t\"sdns\",\n\t\"ssh\"\n];\nconst NETWORK_PROTOCOL = [...NETWORK_PROTOCOL_INSECURE, ...NETWORK_PROTOCOL_SECURE];\n/**\n* Lookup of protocols which provides a tuple of: `[insecure,secure]`\n*/\nconst NETWORK_PROTOCOL_LOOKUP = {\n\thttp: [\"http\", \"https\"],\n\tftp: [\"ftp\", \"sftp\"],\n\tfile: [\"\", \"file\"],\n\tws: [\"ws\", \"wss\"],\n\tssh: [\"\", \"ssh\"],\n\tscp: [\"\", \"scp\"],\n\ttelnet: [\"telnet\", \"\"],\n\tdns: [\"dns\", \"sdns\"]\n};\nconst PROTOCOL_DEFAULT_PORTS = {\n\thttp: 80,\n\thttps: 443,\n\tws: 80,\n\twss: 443,\n\tssh: 22,\n\ttelnet: 23,\n\tdns: 53,\n\tsdns: 853,\n\tsmtp: 25,\n\timap: 142,\n\tpop3: 110,\n\tftp: 21,\n\tsftp: 22\n};\n\n//#endregion\n//#region ../constants/src/Never.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant$3(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n/**\n* **Never**\n*\n* A runtime constant that is meant to represent the `never` type.\n*\n* **Related:** you can use the `never()` runtime utility to give a\n* runtime value but force it's type to `never`.\n*/\nconst Never = createConstant$3(\"never\");\n\n//#endregion\n//#region ../constants/src/News.ts\nconst US_NEWS = [\n\t{\n\t\tcompany: \"New York Times\",\n\t\tbaseUrls: [\"www.nytimes.com\"]\n\t},\n\t{\n\t\tcompany: \"CNN\",\n\t\tbaseUrls: [\"www.cnn.com\"]\n\t},\n\t{\n\t\tcompany: \"Fox News\",\n\t\tbaseUrls: [\"www.foxnews.com\"]\n\t},\n\t{\n\t\tcompany: \"NBC News\",\n\t\tbaseUrls: [\"www.nbcnews.com\", \"www.msnbc.com\"]\n\t},\n\t{\n\t\tcompany: \"ABC News\",\n\t\tbaseUrls: [\"abcnews.go.com\"]\n\t},\n\t{\n\t\tcompany: \"The Washington Post\",\n\t\tbaseUrls: [\"www.washingtonpost.com\"]\n\t},\n\t{\n\t\tcompany: \"USA Today\",\n\t\tbaseUrls: [\"www.usatoday.com\"]\n\t},\n\t{\n\t\tcompany: \"Bloomberg\",\n\t\tbaseUrls: [\"www.bloomberg.com\"]\n\t},\n\t{\n\t\tcompany: \"NPR\",\n\t\tbaseUrls: [\"www.npr.org\"]\n\t},\n\t{\n\t\tcompany: \"CBS News\",\n\t\tbaseUrls: [\"www.cbsnews.com\"]\n\t},\n\t{\n\t\tcompany: \"The Wall Street Journal\",\n\t\tbaseUrls: [\"www.wsj.com\"]\n\t},\n\t{\n\t\tcompany: \"Associated Press (AP)\",\n\t\tbaseUrls: [\"www.apnews.com\", \"www.ap.org\"]\n\t},\n\t{\n\t\tcompany: \"Reuters\",\n\t\tbaseUrls: [\"www.reuters.com\"]\n\t},\n\t{\n\t\tcompany: \"Newsweek\",\n\t\tbaseUrls: [\"www.newsweek.com\"]\n\t},\n\t{\n\t\tcompany: \"Politico\",\n\t\tbaseUrls: [\"www.politico.com\"]\n\t},\n\t{\n\t\tcompany: \"The Atlantic\",\n\t\tbaseUrls: [\"www.theatlantic.com\"]\n\t},\n\t{\n\t\tcompany: \"Nexstar Media Group\",\n\t\tbaseUrls: [\"www.nexstar.tv\"]\n\t},\n\t{\n\t\tcompany: \"PBS News\",\n\t\tbaseUrls: [\"www.pbs.org\"]\n\t},\n\t{\n\t\tcompany: \"HuffPost\",\n\t\tbaseUrls: [\"www.huffpost.com\"]\n\t},\n\t{\n\t\tcompany: \"The Boston Globe\",\n\t\tbaseUrls: [\"www.bostonglobe.com\"]\n\t}\n];\nconst UK_NEWS = [\n\t{\n\t\tcompany: \"BBC\",\n\t\tbaseUrls: [\"www.bbc.co.uk\", \"www.bbc.com\"]\n\t},\n\t{\n\t\tcompany: \"The Guardian\",\n\t\tbaseUrls: [\"www.theguardian.com/uk\"]\n\t},\n\t{\n\t\tcompany: \"The Daily Mail\",\n\t\tbaseUrls: [\"www.dailymail.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"The Sun\",\n\t\tbaseUrls: [\"www.thesun.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"The Times\",\n\t\tbaseUrls: [\"www.thetimes.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Sky News\",\n\t\tbaseUrls: [\"news.sky.com\"]\n\t},\n\t{\n\t\tcompany: \"The Telegraph\",\n\t\tbaseUrls: [\"www.telegraph.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"ITV News\",\n\t\tbaseUrls: [\"www.itv.com/news\"]\n\t},\n\t{\n\t\tcompany: \"Financial Times\",\n\t\tbaseUrls: [\"www.ft.com\"]\n\t},\n\t{\n\t\tcompany: \"Metro\",\n\t\tbaseUrls: [\"www.metro.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"The Independent\",\n\t\tbaseUrls: [\"www.independent.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Evening Standard\",\n\t\tbaseUrls: [\"www.standard.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Daily Mirror\",\n\t\tbaseUrls: [\"www.mirror.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Channel 4 News\",\n\t\tbaseUrls: [\"www.channel4.com/news\"]\n\t},\n\t{\n\t\tcompany: \"LBC\",\n\t\tbaseUrls: [\"www.lbc.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Daily Express\",\n\t\tbaseUrls: [\"www.express.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Birmingham Mail\",\n\t\tbaseUrls: [\"www.birminghammail.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"Manchester Evening News\",\n\t\tbaseUrls: [\"www.manchestereveningnews.co.uk\"]\n\t},\n\t{\n\t\tcompany: \"The Scotsman\",\n\t\tbaseUrls: [\"www.scotsman.com\"]\n\t},\n\t{\n\t\tcompany: \"Daily Record\",\n\t\tbaseUrls: [\"www.dailyrecord.co.uk\"]\n\t}\n];\nconst GERMAN_NEWS = [\n\t{\n\t\tcompany: \"BILD\",\n\t\tbaseUrls: [\"www.bild.de\"]\n\t},\n\t{\n\t\tcompany: \"Die Zeit\",\n\t\tbaseUrls: [\"www.zeit.de\"]\n\t},\n\t{\n\t\tcompany: \"Frankfurter Allgemeine Zeitung\",\n\t\tbaseUrls: [\"www.faz.net\"]\n\t},\n\t{\n\t\tcompany: \"Süddeutsche Zeitung\",\n\t\tbaseUrls: [\"www.sueddeutsche.de\"]\n\t},\n\t{\n\t\tcompany: \"Der Spiegel\",\n\t\tbaseUrls: [\"www.spiegel.de\"]\n\t},\n\t{\n\t\tcompany: \"Die Welt\",\n\t\tbaseUrls: [\"www.welt.de\"]\n\t},\n\t{\n\t\tcompany: \"Tagesschau\",\n\t\tbaseUrls: [\"www.tagesschau.de\"]\n\t},\n\t{\n\t\tcompany: \"t-online\",\n\t\tbaseUrls: [\"www.t-online.de\"]\n\t},\n\t{\n\t\tcompany: \"n-tv\",\n\t\tbaseUrls: [\"www.n-tv.de\"]\n\t},\n\t{\n\t\tcompany: \"Handelsblatt\",\n\t\tbaseUrls: [\"www.handelsblatt.com\"]\n\t},\n\t{\n\t\tcompany: \"Focus Online\",\n\t\tbaseUrls: [\"www.focus.de\"]\n\t},\n\t{\n\t\tcompany: \"Frankfurter Rundschau\",\n\t\tbaseUrls: [\"www.fr.de\", \"www.fr-online.de\"]\n\t},\n\t{\n\t\tcompany: \"taz - die tageszeitung\",\n\t\tbaseUrls: [\"www.taz.de\"]\n\t},\n\t{\n\t\tcompany: \"Der Tagesspiegel\",\n\t\tbaseUrls: [\"www.tagesspiegel.de\"]\n\t},\n\t{\n\t\tcompany: \"Rheinische Post\",\n\t\tbaseUrls: [\"www.rp-online.de\"]\n\t},\n\t{\n\t\tcompany: \"Express\",\n\t\tbaseUrls: [\"www.express.de\"]\n\t},\n\t{\n\t\tcompany: \"Münchner Merkur\",\n\t\tbaseUrls: [\"www.merkur.de\"]\n\t},\n\t{\n\t\tcompany: \"Stuttgarter Zeitung\",\n\t\tbaseUrls: [\"www.stuttgarter-zeitung.de\"]\n\t},\n\t{\n\t\tcompany: \"Hamburger Abendblatt\",\n\t\tbaseUrls: [\"www.abendblatt.de\"]\n\t},\n\t{\n\t\tcompany: \"Deutsche Welle\",\n\t\tbaseUrls: [\"www.dw.com\"]\n\t}\n];\nconst FRENCH_NEWS = [\n\t{\n\t\tcompany: \"Le Figaro\",\n\t\tbaseUrls: [\"www.lefigaro.fr\"]\n\t},\n\t{\n\t\tcompany: \"Le Monde\",\n\t\tbaseUrls: [\"www.lemonde.fr\"]\n\t},\n\t{\n\t\tcompany: \"France 24\",\n\t\tbaseUrls: [\"www.france24.com\"]\n\t},\n\t{\n\t\tcompany: \"Libération\",\n\t\tbaseUrls: [\"www.liberation.fr\"]\n\t},\n\t{\n\t\tcompany: \"Les Echos\",\n\t\tbaseUrls: [\"www.lesechos.fr\"]\n\t},\n\t{\n\t\tcompany: \"Ouest-France\",\n\t\tbaseUrls: [\"www.ouest-france.fr\"]\n\t},\n\t{\n\t\tcompany: \"Le Parisien\",\n\t\tbaseUrls: [\"www.leparisien.fr\"]\n\t},\n\t{\n\t\tcompany: \"Mediapart\",\n\t\tbaseUrls: [\"www.mediapart.fr\"]\n\t},\n\t{\n\t\tcompany: \"L'Express\",\n\t\tbaseUrls: [\"www.lexpress.fr\"]\n\t},\n\t{\n\t\tcompany: \"La Croix\",\n\t\tbaseUrls: [\"www.la-croix.com\"]\n\t},\n\t{\n\t\tcompany: \"20 Minutes\",\n\t\tbaseUrls: [\"www.20minutes.fr\"]\n\t},\n\t{\n\t\tcompany: \"Courrier International\",\n\t\tbaseUrls: [\"www.courrierinternational.com\"]\n\t},\n\t{\n\t\tcompany: \"Le Point\",\n\t\tbaseUrls: [\"www.lepoint.fr\"]\n\t},\n\t{\n\t\tcompany: \"Marianne\",\n\t\tbaseUrls: [\"www.marianne.net\"]\n\t},\n\t{\n\t\tcompany: \"BFM TV\",\n\t\tbaseUrls: [\"www.bfmtv.com\"]\n\t},\n\t{\n\t\tcompany: \"RTL France\",\n\t\tbaseUrls: [\"www.rtl.fr\"]\n\t},\n\t{\n\t\tcompany: \"Charlie Hebdo\",\n\t\tbaseUrls: [\"www.charliehebdo.fr\"]\n\t},\n\t{\n\t\tcompany: \"Challenges\",\n\t\tbaseUrls: [\"www.challenges.fr\"]\n\t},\n\t{\n\t\tcompany: \"Télérama\",\n\t\tbaseUrls: [\"www.telerama.fr\"]\n\t},\n\t{\n\t\tcompany: \"L'Obs\",\n\t\tbaseUrls: [\"www.nouvelobs.com\"]\n\t}\n];\nconst CANADIAN_NEWS = [\n\t{\n\t\tcompany: \"CBC News\",\n\t\tbaseUrls: [\"www.cbc.ca\"]\n\t},\n\t{\n\t\tcompany: \"CTV News\",\n\t\tbaseUrls: [\"www.ctvnews.ca\"]\n\t},\n\t{\n\t\tcompany: \"The Globe and Mail\",\n\t\tbaseUrls: [\"www.theglobeandmail.com\"]\n\t},\n\t{\n\t\tcompany: \"Global News\",\n\t\tbaseUrls: [\"www.globalnews.ca\"]\n\t},\n\t{\n\t\tcompany: \"Toronto Star\",\n\t\tbaseUrls: [\"www.thestar.com\"]\n\t},\n\t{\n\t\tcompany: \"National Post\",\n\t\tbaseUrls: [\"www.nationalpost.com\"]\n\t},\n\t{\n\t\tcompany: \"La Presse\",\n\t\tbaseUrls: [\"www.lapresse.ca\"]\n\t},\n\t{\n\t\tcompany: \"Radio-Canada\",\n\t\tbaseUrls: [\"ici.radio-canada.ca\"]\n\t},\n\t{\n\t\tcompany: \"The Canadian Press\",\n\t\tbaseUrls: [\"www.thecanadianpress.com\"]\n\t},\n\t{\n\t\tcompany: \"Financial Post\",\n\t\tbaseUrls: [\"financialpost.com\"]\n\t},\n\t{\n\t\tcompany: \"The Weather Network\",\n\t\tbaseUrls: [\"www.theweathernetwork.com\"]\n\t},\n\t{\n\t\tcompany: \"Le Devoir\",\n\t\tbaseUrls: [\"www.ledevoir.com\"]\n\t},\n\t{\n\t\tcompany: \"TVA Nouvelles\",\n\t\tbaseUrls: [\"www.tvanouvelles.ca\"]\n\t},\n\t{\n\t\tcompany: \"Journal de Montréal\",\n\t\tbaseUrls: [\"www.journaldemontreal.com\"]\n\t},\n\t{\n\t\tcompany: \"CityNews\",\n\t\tbaseUrls: [\"www.citynews.ca\"]\n\t},\n\t{\n\t\tcompany: \"BNN Bloomberg\",\n\t\tbaseUrls: [\"www.bnnbloomberg.ca\"]\n\t},\n\t{\n\t\tcompany: \"The Hamilton Spectator\",\n\t\tbaseUrls: [\"www.thespec.com\"]\n\t},\n\t{\n\t\tcompany: \"Ottawa Citizen\",\n\t\tbaseUrls: [\"ottawacitizen.com\"]\n\t},\n\t{\n\t\tcompany: \"Windsor Star\",\n\t\tbaseUrls: [\"windsorstar.com\"]\n\t},\n\t{\n\t\tcompany: \"Edmonton Journal\",\n\t\tbaseUrls: [\"edmontonjournal.com\"]\n\t}\n];\nconst DUTCH_NEWS = [\n\t{\n\t\tcompany: \"Algemeen Dagblad (AD)\",\n\t\tbaseUrls: [\"www.ad.nl\"]\n\t},\n\t{\n\t\tcompany: \"NOS\",\n\t\tbaseUrls: [\"www.nos.nl\"]\n\t},\n\t{\n\t\tcompany: \"De Telegraaf\",\n\t\tbaseUrls: [\"www.telegraaf.nl\"]\n\t},\n\t{\n\t\tcompany: \"NU.nl\",\n\t\tbaseUrls: [\"www.nu.nl\"]\n\t},\n\t{\n\t\tcompany: \"Volkskrant\",\n\t\tbaseUrls: [\"www.volkskrant.nl\"]\n\t},\n\t{\n\t\tcompany: \"NRC Handelsblad\",\n\t\tbaseUrls: [\"www.nrc.nl\"]\n\t},\n\t{\n\t\tcompany: \"Trouw\",\n\t\tbaseUrls: [\"www.trouw.nl\"]\n\t},\n\t{\n\t\tcompany: \"Het Parool\",\n\t\tbaseUrls: [\"www.parool.nl\"]\n\t},\n\t{\n\t\tcompany: \"RTL Nieuws\",\n\t\tbaseUrls: [\"www.rtlnieuws.nl\"]\n\t},\n\t{\n\t\tcompany: \"BNR Nieuwsradio\",\n\t\tbaseUrls: [\"www.bnr.nl\"]\n\t},\n\t{\n\t\tcompany: \"Emerce\",\n\t\tbaseUrls: [\"www.emerce.nl\"]\n\t},\n\t{\n\t\tcompany: \"VPRO\",\n\t\tbaseUrls: [\"www.vpro.nl\"]\n\t},\n\t{\n\t\tcompany: \"De Gelderlander\",\n\t\tbaseUrls: [\"www.gelderlander.nl\"]\n\t},\n\t{\n\t\tcompany: \"Friesch Dagblad\",\n\t\tbaseUrls: [\"www.frieschdagblad.nl\"]\n\t},\n\t{\n\t\tcompany: \"De Stentor\",\n\t\tbaseUrls: [\"www.destentor.nl\"]\n\t},\n\t{\n\t\tcompany: \"Metro Nieuws\",\n\t\tbaseUrls: [\"www.metronieuws.nl\"]\n\t},\n\t{\n\t\tcompany: \"ANP\",\n\t\tbaseUrls: [\"www.anp.nl\"]\n\t},\n\t{\n\t\tcompany: \"Dagblad van het Noorden\",\n\t\tbaseUrls: [\"www.dvhn.nl\"]\n\t},\n\t{\n\t\tcompany: \"Reformatorisch Dagblad\",\n\t\tbaseUrls: [\"www.rd.nl\"]\n\t},\n\t{\n\t\tcompany: \"Financieele Dagblad\",\n\t\tbaseUrls: [\"www.fd.nl\"]\n\t}\n];\nconst ITALIAN_NEWS = [\n\t{\n\t\tcompany: \"ANSA\",\n\t\tbaseUrls: [\"www.ansa.it\", \"www.ansamed.info\"]\n\t},\n\t{\n\t\tcompany: \"Corriere della Sera\",\n\t\tbaseUrls: [\"www.corriere.it\"]\n\t},\n\t{\n\t\tcompany: \"la Repubblica\",\n\t\tbaseUrls: [\"www.repubblica.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Sole 24 Ore\",\n\t\tbaseUrls: [\"www.ilsole24ore.com\"]\n\t},\n\t{\n\t\tcompany: \"La Stampa\",\n\t\tbaseUrls: [\"www.lastampa.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Messaggero\",\n\t\tbaseUrls: [\"www.ilmessaggero.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Giornale\",\n\t\tbaseUrls: [\"www.ilgiornale.it\"]\n\t},\n\t{\n\t\tcompany: \"Avvenire\",\n\t\tbaseUrls: [\"www.avvenire.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Fatto Quotidiano\",\n\t\tbaseUrls: [\"www.ilfattoquotidiano.it\"]\n\t},\n\t{\n\t\tcompany: \"La Nazione\",\n\t\tbaseUrls: [\"www.lanazione.it\"]\n\t},\n\t{\n\t\tcompany: \"TgCom24\",\n\t\tbaseUrls: [\"www.tgcom24.mediaset.it\"]\n\t},\n\t{\n\t\tcompany: \"Sky TG24\",\n\t\tbaseUrls: [\"tg24.sky.it\"]\n\t},\n\t{\n\t\tcompany: \"Rai News\",\n\t\tbaseUrls: [\"www.rainews.it\"]\n\t},\n\t{\n\t\tcompany: \"Gazzetta dello Sport\",\n\t\tbaseUrls: [\"www.gazzetta.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Resto del Carlino\",\n\t\tbaseUrls: [\"www.ilrestodelcarlino.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Mattino\",\n\t\tbaseUrls: [\"www.ilmattino.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Secolo XIX\",\n\t\tbaseUrls: [\"www.ilsecoloxix.it\"]\n\t},\n\t{\n\t\tcompany: \"Italia Oggi\",\n\t\tbaseUrls: [\"www.italiaoggi.it\"]\n\t},\n\t{\n\t\tcompany: \"Libero\",\n\t\tbaseUrls: [\"www.liberoquotidiano.it\"]\n\t},\n\t{\n\t\tcompany: \"Il Tirreno\",\n\t\tbaseUrls: [\"www.iltirreno.it\"]\n\t}\n];\nconst BELGIUM_NEWS = [\n\t{\n\t\tcompany: \"Het Laatste Nieuws (HLN)\",\n\t\tbaseUrls: [\"www.hln.be\"]\n\t},\n\t{\n\t\tcompany: \"Nieuwsblad\",\n\t\tbaseUrls: [\"www.nieuwsblad.be\"]\n\t},\n\t{\n\t\tcompany: \"RTBF\",\n\t\tbaseUrls: [\"www.rtbf.be\"]\n\t},\n\t{\n\t\tcompany: \"Sudinfo\",\n\t\tbaseUrls: [\"www.sudinfo.be\"]\n\t},\n\t{\n\t\tcompany: \"7sur7\",\n\t\tbaseUrls: [\"www.7sur7.be\"]\n\t},\n\t{\n\t\tcompany: \"Le Soir\",\n\t\tbaseUrls: [\"www.lesoir.be\"]\n\t},\n\t{\n\t\tcompany: \"De Standaard\",\n\t\tbaseUrls: [\"www.standaard.be\"]\n\t},\n\t{\n\t\tcompany: \"VRT NWS\",\n\t\tbaseUrls: [\"www.vrt.be\"]\n\t},\n\t{\n\t\tcompany: \"La Libre\",\n\t\tbaseUrls: [\"www.lalibre.be\"]\n\t},\n\t{\n\t\tcompany: \"Gazet van Antwerpen\",\n\t\tbaseUrls: [\"www.gva.be\"]\n\t},\n\t{\n\t\tcompany: \"Het Belang van Limburg\",\n\t\tbaseUrls: [\"www.hbvl.be\"]\n\t},\n\t{\n\t\tcompany: \"De Morgen\",\n\t\tbaseUrls: [\"www.demorgen.be\"]\n\t},\n\t{\n\t\tcompany: \"L'Avenir\",\n\t\tbaseUrls: [\"www.lavenir.net\"]\n\t},\n\t{\n\t\tcompany: \"The Brussels Times\",\n\t\tbaseUrls: [\"www.brusselstimes.com\"]\n\t},\n\t{\n\t\tcompany: \"Metro Belgique\",\n\t\tbaseUrls: [\"nl.metrotime.be\"]\n\t},\n\t{\n\t\tcompany: \"Sudpresse\",\n\t\tbaseUrls: [\"www.sudpress.be\"]\n\t},\n\t{\n\t\tcompany: \"Flamish Radio and TV Broadcasting Organization (VRT)\",\n\t\tbaseUrls: [\"www.vrt.be\"]\n\t},\n\t{\n\t\tcompany: \"Knack\",\n\t\tbaseUrls: [\"www.knack.be\"]\n\t},\n\t{\n\t\tcompany: \"De Tijd\",\n\t\tbaseUrls: [\"www.tijd.be\"]\n\t},\n\t{\n\t\tcompany: \"BX1\",\n\t\tbaseUrls: [\"www.bx1.be\"]\n\t}\n];\nconst MEXICAN_NEWS = [\n\t{\n\t\tcompany: \"Televisa\",\n\t\tbaseUrls: [\"www.televisa.news\"]\n\t},\n\t{\n\t\tcompany: \"El Universal\",\n\t\tbaseUrls: [\"www.eluniversal.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Milenio\",\n\t\tbaseUrls: [\"www.milenio.com\"]\n\t},\n\t{\n\t\tcompany: \"Excélsior\",\n\t\tbaseUrls: [\"www.excelsior.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Reforma\",\n\t\tbaseUrls: [\"www.reforma.com\"]\n\t},\n\t{\n\t\tcompany: \"La Jornada\",\n\t\tbaseUrls: [\"www.jornada.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"El Financiero\",\n\t\tbaseUrls: [\"www.elfinanciero.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Proceso\",\n\t\tbaseUrls: [\"www.proceso.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"SDP Noticias\",\n\t\tbaseUrls: [\"www.sdpnoticias.com\"]\n\t},\n\t{\n\t\tcompany: \"Diario de Yucatán\",\n\t\tbaseUrls: [\"www.yucatan.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"El Economista\",\n\t\tbaseUrls: [\"www.eleconomista.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"El Heraldo de México\",\n\t\tbaseUrls: [\"www.heraldodemexico.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Noticieros Televisa\",\n\t\tbaseUrls: [\"noticieros.televisa.com\"]\n\t},\n\t{\n\t\tcompany: \"Expansión\",\n\t\tbaseUrls: [\"expansion.mx\"]\n\t},\n\t{\n\t\tcompany: \"La Razón\",\n\t\tbaseUrls: [\"www.razon.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Noroeste\",\n\t\tbaseUrls: [\"www.noroeste.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Uniradio Noticias\",\n\t\tbaseUrls: [\"www.uniradionoticias.com\"]\n\t},\n\t{\n\t\tcompany: \"El Imparcial\",\n\t\tbaseUrls: [\"www.elimparcial.com\"]\n\t},\n\t{\n\t\tcompany: \"Publimetro México\",\n\t\tbaseUrls: [\"www.publimetro.com.mx\"]\n\t},\n\t{\n\t\tcompany: \"Notimex\",\n\t\tbaseUrls: [\"www.notimex.gob.mx\"]\n\t}\n];\nconst SPANISH_NEWS = [\n\t{\n\t\tcompany: \"El País\",\n\t\tbaseUrls: [\"www.elpais.com\"]\n\t},\n\t{\n\t\tcompany: \"El Mundo\",\n\t\tbaseUrls: [\"www.elmundo.es\"]\n\t},\n\t{\n\t\tcompany: \"ABC\",\n\t\tbaseUrls: [\"www.abc.es\"]\n\t},\n\t{\n\t\tcompany: \"La Vanguardia\",\n\t\tbaseUrls: [\"www.lavanguardia.com\"]\n\t},\n\t{\n\t\tcompany: \"El Confidencial\",\n\t\tbaseUrls: [\"www.elconfidencial.com\"]\n\t},\n\t{\n\t\tcompany: \"La Razón\",\n\t\tbaseUrls: [\"www.larazon.es\"]\n\t},\n\t{\n\t\tcompany: \"20 Minutos\",\n\t\tbaseUrls: [\"www.20minutos.es\"]\n\t},\n\t{\n\t\tcompany: \"Agencia EFE\",\n\t\tbaseUrls: [\"www.efe.com\"]\n\t},\n\t{\n\t\tcompany: \"Europa Press\",\n\t\tbaseUrls: [\"www.europapress.es\"]\n\t},\n\t{\n\t\tcompany: \"Diario AS\",\n\t\tbaseUrls: [\"www.as.com\"]\n\t},\n\t{\n\t\tcompany: \"Mundo Deportivo\",\n\t\tbaseUrls: [\"www.mundodeportivo.com\"]\n\t},\n\t{\n\t\tcompany: \"El Periódico\",\n\t\tbaseUrls: [\"www.elperiodico.com\"]\n\t},\n\t{\n\t\tcompany: \"Cinco Días\",\n\t\tbaseUrls: [\"www.cincodias.com\"]\n\t},\n\t{\n\t\tcompany: \"Expansión\",\n\t\tbaseUrls: [\"www.expansion.com\"]\n\t},\n\t{\n\t\tcompany: \"La Información\",\n\t\tbaseUrls: [\"www.lainformacion.com\"]\n\t},\n\t{\n\t\tcompany: \"OK Diario\",\n\t\tbaseUrls: [\"www.okdiario.com\"]\n\t},\n\t{\n\t\tcompany: \"Heraldo de Aragón\",\n\t\tbaseUrls: [\"www.heraldo.es\"]\n\t},\n\t{\n\t\tcompany: \"Faro de Vigo\",\n\t\tbaseUrls: [\"www.farodevigo.es\"]\n\t},\n\t{\n\t\tcompany: \"El Correo\",\n\t\tbaseUrls: [\"www.elcorreo.com\"]\n\t},\n\t{\n\t\tcompany: \"Diario Sur\",\n\t\tbaseUrls: [\"www.diariosur.es\"]\n\t}\n];\nconst INDIAN_NEWS = [\n\t{\n\t\tcompany: \"The Times of India\",\n\t\tbaseUrls: [\"timesofindia.indiatimes.com\"]\n\t},\n\t{\n\t\tcompany: \"The Hindu\",\n\t\tbaseUrls: [\"www.thehindu.com\"]\n\t},\n\t{\n\t\tcompany: \"Hindustan Times\",\n\t\tbaseUrls: [\"www.hindustantimes.com\"]\n\t},\n\t{\n\t\tcompany: \"NDTV\",\n\t\tbaseUrls: [\"www.ndtv.com\"]\n\t},\n\t{\n\t\tcompany: \"India Today\",\n\t\tbaseUrls: [\"www.indiatoday.in\"]\n\t},\n\t{\n\t\tcompany: \"Zee News\",\n\t\tbaseUrls: [\"zeenews.india.com\"]\n\t},\n\t{\n\t\tcompany: \"Indian Express\",\n\t\tbaseUrls: [\"indianexpress.com\"]\n\t},\n\t{\n\t\tcompany: \"The Economic Times\",\n\t\tbaseUrls: [\"economictimes.indiatimes.com\"]\n\t},\n\t{\n\t\tcompany: \"Deccan Herald\",\n\t\tbaseUrls: [\"www.deccanherald.com\"]\n\t},\n\t{\n\t\tcompany: \"DNA India\",\n\t\tbaseUrls: [\"www.dnaindia.com\"]\n\t},\n\t{\n\t\tcompany: \"The Print\",\n\t\tbaseUrls: [\"theprint.in\"]\n\t},\n\t{\n\t\tcompany: \"News18\",\n\t\tbaseUrls: [\"www.news18.com\"]\n\t},\n\t{\n\t\tcompany: \"Scroll.in\",\n\t\tbaseUrls: [\"scroll.in\"]\n\t},\n\t{\n\t\tcompany: \"Asian News International (ANI)\",\n\t\tbaseUrls: [\"www.aninews.in\"]\n\t},\n\t{\n\t\tcompany: \"Outlook India\",\n\t\tbaseUrls: [\"www.outlookindia.com\"]\n\t},\n\t{\n\t\tcompany: \"Business Standard\",\n\t\tbaseUrls: [\"www.business-standard.com\"]\n\t},\n\t{\n\t\tcompany: \"Mint\",\n\t\tbaseUrls: [\"www.livemint.com\"]\n\t},\n\t{\n\t\tcompany: \"OneIndia\",\n\t\tbaseUrls: [\"www.oneindia.com\"]\n\t},\n\t{\n\t\tcompany: \"Quint\",\n\t\tbaseUrls: [\"www.thequint.com\"]\n\t},\n\t{\n\t\tcompany: \"Free Press Journal\",\n\t\tbaseUrls: [\"www.freepressjournal.in\"]\n\t}\n];\nconst CHINESE_NEWS = [\n\t{\n\t\tcompany: \"Xinhua News Agency\",\n\t\tbaseUrls: [\"www.xinhuanet.com\"]\n\t},\n\t{\n\t\tcompany: \"China Central Television (CCTV)\",\n\t\tbaseUrls: [\"www.cctv.com\"]\n\t},\n\t{\n\t\tcompany: \"China Daily\",\n\t\tbaseUrls: [\"www.chinadaily.com.cn\"]\n\t},\n\t{\n\t\tcompany: \"CGTN (China Global Television Network)\",\n\t\tbaseUrls: [\"www.cgtn.com\"]\n\t},\n\t{\n\t\tcompany: \"People's Daily\",\n\t\tbaseUrls: [\"www.people.cn\"]\n\t},\n\t{\n\t\tcompany: \"Global Times\",\n\t\tbaseUrls: [\"www.globaltimes.cn\"]\n\t},\n\t{\n\t\tcompany: \"South China Morning Post\",\n\t\tbaseUrls: [\"www.scmp.com\"]\n\t},\n\t{\n\t\tcompany: \"Shanghai Daily\",\n\t\tbaseUrls: [\"www.shanghaidaily.com\"]\n\t},\n\t{\n\t\tcompany: \"China News Service\",\n\t\tbaseUrls: [\"www.ecns.cn\"]\n\t},\n\t{\n\t\tcompany: \"Caixin\",\n\t\tbaseUrls: [\"www.caixinglobal.com\"]\n\t},\n\t{\n\t\tcompany: \"The Paper\",\n\t\tbaseUrls: [\"www.thepaper.cn\"]\n\t},\n\t{\n\t\tcompany: \"Yicai Global\",\n\t\tbaseUrls: [\"www.yicaiglobal.com\"]\n\t},\n\t{\n\t\tcompany: \"Economic Daily\",\n\t\tbaseUrls: [\"www.ce.cn\"]\n\t},\n\t{\n\t\tcompany: \"21st Century Business Herald\",\n\t\tbaseUrls: [\"www.21jingji.com\"]\n\t},\n\t{\n\t\tcompany: \"Beijing Review\",\n\t\tbaseUrls: [\"www.bjreview.com\"]\n\t},\n\t{\n\t\tcompany: \"China Economic Net\",\n\t\tbaseUrls: [\"www.ce.cn\"]\n\t},\n\t{\n\t\tcompany: \"Tencent News\",\n\t\tbaseUrls: [\"news.qq.com\"]\n\t},\n\t{\n\t\tcompany: \"Sina News\",\n\t\tbaseUrls: [\"news.sina.com.cn\"]\n\t},\n\t{\n\t\tcompany: \"NetEase News\",\n\t\tbaseUrls: [\"news.163.com\"]\n\t},\n\t{\n\t\tcompany: \"Phoenix TV\",\n\t\tbaseUrls: [\"www.ifeng.com\"]\n\t}\n];\n/** news sites in Denmark */\nconst DANISH_NEWS = [\n\t{\n\t\tcompany: \"Politiken\",\n\t\tbaseUrls: [\"www.politiken.dk\"]\n\t},\n\t{\n\t\tcompany: \"Berlingske\",\n\t\tbaseUrls: [\"www.berlingske.dk\"]\n\t},\n\t{\n\t\tcompany: \"Jyllands-Posten\",\n\t\tbaseUrls: [\"jyllands-posten.dk\"]\n\t},\n\t{\n\t\tcompany: \"Ekstra Bladet\",\n\t\tbaseUrls: [\"ekstrabladet.dk\"]\n\t},\n\t{\n\t\tcompany: \"Information\",\n\t\tbaseUrls: [\"www.information.dk\"]\n\t},\n\t{\n\t\tcompany: \"BT\",\n\t\tbaseUrls: [\"www.bt.dk\"]\n\t},\n\t{\n\t\tcompany: \"Weekendavisen\",\n\t\tbaseUrls: [\"www.weekendavisen.dk\"]\n\t},\n\t{\n\t\tcompany: \"Fyens Stiftstidende\",\n\t\tbaseUrls: [\"fyens.dk\"]\n\t},\n\t{\n\t\tcompany: \"Kristeligt Dagblad\",\n\t\tbaseUrls: [\"www.kristeligt-dagblad.dk\"]\n\t},\n\t{\n\t\tcompany: \"Copenhagen Post\",\n\t\tbaseUrls: [\"cphpost.dk\"]\n\t},\n\t{\n\t\tcompany: \"Nordjyske Stiftstidende\",\n\t\tbaseUrls: [\"nordjyske.dk\"]\n\t},\n\t{\n\t\tcompany: \"Århus Stiftstidende\",\n\t\tbaseUrls: [\"stiften.dk\"]\n\t},\n\t{\n\t\tcompany: \"Dagbladet Børsen\",\n\t\tbaseUrls: [\"borsen.dk\"]\n\t},\n\t{\n\t\tcompany: \"Lokalavisen\",\n\t\tbaseUrls: [\"lokalavisen.dk\"]\n\t},\n\t{\n\t\tcompany: \"TV2 Nyheder\",\n\t\tbaseUrls: [\"tv2.dk\"]\n\t},\n\t{\n\t\tcompany: \"DR Nyheder\",\n\t\tbaseUrls: [\"dr.dk\"]\n\t},\n\t{\n\t\tcompany: \"Avisen Danmark\",\n\t\tbaseUrls: [\"avisen.dk\"]\n\t},\n\t{\n\t\tcompany: \"Fagbladet 3F\",\n\t\tbaseUrls: [\"fagbladet3f.dk\"]\n\t},\n\t{\n\t\tcompany: \"Herning Folkeblad\",\n\t\tbaseUrls: [\"herningfolkeblad.dk\"]\n\t},\n\t{\n\t\tcompany: \"Midtjyllands Avis\",\n\t\tbaseUrls: [\"midtjyllandsavis.dk\"]\n\t}\n];\nconst SWISS_NEWS = [\n\t{\n\t\tcompany: \"Neue Zürcher Zeitung (NZZ)\",\n\t\tbaseUrls: [\"www.nzz.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Swissinfo\",\n\t\tbaseUrls: [\"www.swissinfo.ch\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"20 Minuten\",\n\t\tbaseUrls: [\"www.20min.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Blick\",\n\t\tbaseUrls: [\"www.blick.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Le Temps\",\n\t\tbaseUrls: [\"www.letemps.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Tages-Anzeiger\",\n\t\tbaseUrls: [\"www.tagesanzeiger.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"SRF News\",\n\t\tbaseUrls: [\"www.srf.ch\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Luzerner Zeitung\",\n\t\tbaseUrls: [\"www.luzernerzeitung.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"La Tribune de Genève\",\n\t\tbaseUrls: [\"www.tdg.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Aargauer Zeitung\",\n\t\tbaseUrls: [\"www.aargauerzeitung.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"24 Heures\",\n\t\tbaseUrls: [\"www.24heures.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Radio Télévision Suisse (RTS)\",\n\t\tbaseUrls: [\"www.rts.ch\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Der Bund\",\n\t\tbaseUrls: [\"www.derbund.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Schweizer Radio und Fernsehen (SRF)\",\n\t\tbaseUrls: [\"www.srf.ch\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Basler Zeitung\",\n\t\tbaseUrls: [\"www.bazonline.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Handelszeitung\",\n\t\tbaseUrls: [\"www.handelszeitung.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Watson\",\n\t\tbaseUrls: [\"www.watson.ch\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Le Matin\",\n\t\tbaseUrls: [\"www.lematin.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"La Liberté\",\n\t\tbaseUrls: [\"www.laliberte.ch\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Swiss Times\",\n\t\tbaseUrls: [\"www.theswisstimes.ch\"],\n\t\ttype: [\"digital-first\"]\n\t}\n];\nconst AUSTRALIAN_NEWS = [\n\t{\n\t\tcompany: \"ABC News\",\n\t\tbaseUrls: [\"www.abc.net.au\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"The Sydney Morning Herald\",\n\t\tbaseUrls: [\"www.smh.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Australian\",\n\t\tbaseUrls: [\"www.theaustralian.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Herald Sun\",\n\t\tbaseUrls: [\"www.heraldsun.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"9News\",\n\t\tbaseUrls: [\"www.9news.com.au\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"SBS News\",\n\t\tbaseUrls: [\"www.sbs.com.au\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"digital\",\n\t\t\t\"multicultural\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"The Age\",\n\t\tbaseUrls: [\"www.theage.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sky News Australia\",\n\t\tbaseUrls: [\"www.skynews.com.au\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Australian Financial Review\",\n\t\tbaseUrls: [\"www.afr.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"news.com.au\",\n\t\tbaseUrls: [\"www.news.com.au\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"The Courier-Mail\",\n\t\tbaseUrls: [\"www.couriermail.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"7NEWS\",\n\t\tbaseUrls: [\"7news.com.au\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The West Australian\",\n\t\tbaseUrls: [\"www.thewest.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Daily Telegraph\",\n\t\tbaseUrls: [\"www.dailytelegraph.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Guardian Australia\",\n\t\tbaseUrls: [\"www.theguardian.com/au\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Crikey\",\n\t\tbaseUrls: [\"www.crikey.com.au\"],\n\t\ttype: [\"digital-first\", \"independent\"]\n\t},\n\t{\n\t\tcompany: \"AAP (Australian Associated Press)\",\n\t\tbaseUrls: [\"www.aap.com.au\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"NT News\",\n\t\tbaseUrls: [\"www.ntnews.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Canberra Times\",\n\t\tbaseUrls: [\"www.canberratimes.com.au\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Brisbane Times\",\n\t\tbaseUrls: [\"www.brisbanetimes.com.au\"],\n\t\ttype: [\"digital-first\"]\n\t}\n];\nconst JAPANESE_NEWS = [\n\t{\n\t\tcompany: \"The Asahi Shimbun\",\n\t\tbaseUrls: [\"www.asahi.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Yomiuri Shimbun\",\n\t\tbaseUrls: [\"www.yomiuri.co.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Nikkei\",\n\t\tbaseUrls: [\"www.nikkei.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Mainichi Shimbun\",\n\t\tbaseUrls: [\"mainichi.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Kyodo News\",\n\t\tbaseUrls: [\"www.kyodonews.jp\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Japan Times\",\n\t\tbaseUrls: [\"www.japantimes.co.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"NHK\",\n\t\tbaseUrls: [\"www.nhk.or.jp\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Fuji News Network (FNN)\",\n\t\tbaseUrls: [\"www.fnn.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sankei Shimbun\",\n\t\tbaseUrls: [\"www.sankei.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Toyo Keizai\",\n\t\tbaseUrls: [\"www.toyokeizai.net\"],\n\t\ttype: [\"digital\", \"business magazine\"]\n\t},\n\t{\n\t\tcompany: \"Hokkaido Shimbun\",\n\t\tbaseUrls: [\"www.hokkaido-np.co.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Shizuoka Shimbun\",\n\t\tbaseUrls: [\"www.at-s.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Tokyo Shimbun\",\n\t\tbaseUrls: [\"www.tokyo-np.co.jp\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Yahoo Japan News\",\n\t\tbaseUrls: [\"news.yahoo.co.jp\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"TBS News\",\n\t\tbaseUrls: [\"news.tbs.co.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Nippon TV News 24 Japan\",\n\t\tbaseUrls: [\"www.news24.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Jiji Press\",\n\t\tbaseUrls: [\"www.jiji.com\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"TV Asahi News\",\n\t\tbaseUrls: [\"news.tv-asahi.co.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"WOWOW Prime News\",\n\t\tbaseUrls: [\"www.wowow.co.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Kansai Telecasting Corporation (KTV)\",\n\t\tbaseUrls: [\"www.ktv.jp\"],\n\t\ttype: [\"television\", \"digital\"]\n\t}\n];\nconst SOUTH_KOREAN_NEWS = [\n\t{\n\t\tcompany: \"Yonhap News Agency\",\n\t\tbaseUrls: [\"www.yonhapnews.co.kr\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Korea Herald\",\n\t\tbaseUrls: [\"www.koreaherald.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"The Korea Times\",\n\t\tbaseUrls: [\"www.koreatimes.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Chosun Ilbo\",\n\t\tbaseUrls: [\"www.chosun.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"JoongAng Ilbo\",\n\t\tbaseUrls: [\"www.joongang.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Dong-A Ilbo\",\n\t\tbaseUrls: [\"www.donga.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"MBC News\",\n\t\tbaseUrls: [\"www.imnews.imbc.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"SBS News\",\n\t\tbaseUrls: [\"news.sbs.co.kr\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"KBS News\",\n\t\tbaseUrls: [\"news.kbs.co.kr\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Hankyoreh\",\n\t\tbaseUrls: [\"english.hani.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Maeil Business Newspaper\",\n\t\tbaseUrls: [\"www.mk.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"MoneyToday\",\n\t\tbaseUrls: [\"www.mt.co.kr\"],\n\t\ttype: [\"digital-first\", \"business\"]\n\t},\n\t{\n\t\tcompany: \"Seoul Shinmun\",\n\t\tbaseUrls: [\"www.seoul.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"OhmyNews\",\n\t\tbaseUrls: [\"www.ohmynews.com\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"News1 Korea\",\n\t\tbaseUrls: [\"www.news1.kr\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Asia Business Daily\",\n\t\tbaseUrls: [\"www.asiae.co.kr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Herald Business\",\n\t\tbaseUrls: [\"biz.heraldcorp.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"eDaily\",\n\t\tbaseUrls: [\"www.edaily.co.kr\"],\n\t\ttype: [\"digital-first\", \"business\"]\n\t},\n\t{\n\t\tcompany: \"Seoul Economic Daily\",\n\t\tbaseUrls: [\"www.sedaily.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"JTBC News\",\n\t\tbaseUrls: [\"news.jtbc.co.kr\"],\n\t\ttype: [\"television\", \"digital\"]\n\t}\n];\nconst TURKISH_NEWS = [\n\t{\n\t\tcompany: \"Anadolu Agency (AA)\",\n\t\tbaseUrls: [\"www.aa.com.tr\"],\n\t\ttype: [\"news agency\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Hürriyet\",\n\t\tbaseUrls: [\"www.hurriyet.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sabah\",\n\t\tbaseUrls: [\"www.sabah.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Milliyet\",\n\t\tbaseUrls: [\"www.milliyet.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"TRT World\",\n\t\tbaseUrls: [\"www.trtworld.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"CNN Türk\",\n\t\tbaseUrls: [\"www.cnnturk.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sozcu\",\n\t\tbaseUrls: [\"www.sozcu.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Daily Sabah\",\n\t\tbaseUrls: [\"www.dailysabah.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Yeni Şafak\",\n\t\tbaseUrls: [\"www.yenisafak.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Habertürk\",\n\t\tbaseUrls: [\"www.haberturk.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"BirGün\",\n\t\tbaseUrls: [\"www.birgun.net\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Türkiye Gazetesi\",\n\t\tbaseUrls: [\"www.turkiyegazetesi.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Cumhuriyet\",\n\t\tbaseUrls: [\"www.cumhuriyet.com.tr\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Diken\",\n\t\tbaseUrls: [\"www.diken.com.tr\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"NTV\",\n\t\tbaseUrls: [\"www.ntv.com.tr\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Ensonhaber\",\n\t\tbaseUrls: [\"www.ensonhaber.com\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"T24\",\n\t\tbaseUrls: [\"www.t24.com.tr\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Karar\",\n\t\tbaseUrls: [\"www.karar.com\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Gazete Duvar\",\n\t\tbaseUrls: [\"www.gazeteduvar.com.tr\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Bloomberg HT\",\n\t\tbaseUrls: [\"www.bloomberght.com\"],\n\t\ttype: [\"television\", \"digital\"]\n\t}\n];\nconst NORWEGIAN_NEWS = [\n\t{\n\t\tcompany: \"Aftenposten\",\n\t\tbaseUrls: [\"www.aftenposten.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Verdens Gang (VG)\",\n\t\tbaseUrls: [\"www.vg.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Dagbladet\",\n\t\tbaseUrls: [\"www.dagbladet.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"NRK\",\n\t\tbaseUrls: [\"www.nrk.no\"],\n\t\ttype: [\n\t\t\t\"television\",\n\t\t\t\"radio\",\n\t\t\t\"digital\"\n\t\t]\n\t},\n\t{\n\t\tcompany: \"Dagens Næringsliv\",\n\t\tbaseUrls: [\"www.dn.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Nettavisen\",\n\t\tbaseUrls: [\"www.nettavisen.no\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Klassekampen\",\n\t\tbaseUrls: [\"www.klassekampen.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Morgenbladet\",\n\t\tbaseUrls: [\"www.morgenbladet.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"E24\",\n\t\tbaseUrls: [\"www.e24.no\"],\n\t\ttype: [\"digital-first\", \"business\"]\n\t},\n\t{\n\t\tcompany: \"TV2\",\n\t\tbaseUrls: [\"www.tv2.no\"],\n\t\ttype: [\"television\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Bergens Tidende\",\n\t\tbaseUrls: [\"www.bt.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Adresseavisen\",\n\t\tbaseUrls: [\"www.adressa.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Stavanger Aftenblad\",\n\t\tbaseUrls: [\"www.aftenbladet.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Fædrelandsvennen\",\n\t\tbaseUrls: [\"www.fvn.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"ABC Nyheter\",\n\t\tbaseUrls: [\"www.abcnyheter.no\"],\n\t\ttype: [\"digital-first\"]\n\t},\n\t{\n\t\tcompany: \"Romerikes Blad\",\n\t\tbaseUrls: [\"www.rb.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Sunnmørsposten\",\n\t\tbaseUrls: [\"www.smp.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Finansavisen\",\n\t\tbaseUrls: [\"www.finansavisen.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Nordlys\",\n\t\tbaseUrls: [\"www.nordlys.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t},\n\t{\n\t\tcompany: \"Hamar Arbeiderblad\",\n\t\tbaseUrls: [\"www.h-a.no\"],\n\t\ttype: [\"newspaper\", \"digital\"]\n\t}\n];\n\n//#endregion\n//#region ../constants/src/NoDefaultValue.ts\nfunction createConstant$2(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n/**\n* A constant which indicates that a particular\n* type/property was not given a _default value_.\n*/\nconst NO_DEFAULT_VALUE = createConstant$2(\"no-default-value\");\n\n//#endregion\n//#region ../constants/src/NotApplicable.ts\nconst NOT_APPLICABLE = Symbol(\"not applicable\");\n\n//#endregion\n//#region ../constants/src/NotDefined.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant$1(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n/**\n* **NOT_DEFINED**\n*\n* A runtime constant which indicates that some value has not been defined (yet).\n*/\nconst NOT_DEFINED = createConstant$1(\"not-defined\");\n\n//#endregion\n//#region ../constants/src/NumericChar.ts\n/**\n* **NUMERIC_CHAR**\n*\n* A tuple containing all numeric characters.\n*\n* **Related:** `NumericChar`\n*/\nconst NUMERIC_CHAR = [\n\t\"0\",\n\t\"1\",\n\t\"2\",\n\t\"3\",\n\t\"4\",\n\t\"5\",\n\t\"6\",\n\t\"7\",\n\t\"8\",\n\t\"9\"\n];\n\n//#endregion\n//#region ../constants/src/Phone.ts\n/**\n* **PHONE_COUNTRY_CODES**\n*\n* `[code, 3 letter country code, 2 letter country code]`\n*/\nconst PHONE_COUNTRY_CODES = [\n\t[\n\t\t\"886\",\n\t\t\"TWN\",\n\t\t\"TW\"\n\t],\n\t[\n\t\t\"93\",\n\t\t\"AFG\",\n\t\t\"AF\"\n\t],\n\t[\n\t\t\"355\",\n\t\t\"ALB\",\n\t\t\"AL\"\n\t],\n\t[\n\t\t\"213\",\n\t\t\"DZA\",\n\t\t\"DZ\"\n\t],\n\t[\n\t\t\"1-684\",\n\t\t\"ASM\",\n\t\t\"AS\"\n\t],\n\t[\n\t\t\"376\",\n\t\t\"AND\",\n\t\t\"AD\"\n\t],\n\t[\n\t\t\"244\",\n\t\t\"AGO\",\n\t\t\"AO\"\n\t],\n\t[\n\t\t\"1-264\",\n\t\t\"AIA\",\n\t\t\"AI\"\n\t],\n\t[\n\t\t\"672\",\n\t\t\"ATA\",\n\t\t\"AQ\"\n\t],\n\t[\n\t\t\"1-268\",\n\t\t\"ATG\",\n\t\t\"AG\"\n\t],\n\t[\n\t\t\"54\",\n\t\t\"ARG\",\n\t\t\"AR\"\n\t],\n\t[\n\t\t\"374\",\n\t\t\"ARM\",\n\t\t\"AM\"\n\t],\n\t[\n\t\t\"297\",\n\t\t\"ABW\",\n\t\t\"AW\"\n\t],\n\t[\n\t\t\"61\",\n\t\t\"AUS\",\n\t\t\"AU\"\n\t],\n\t[\n\t\t\"43\",\n\t\t\"AUT\",\n\t\t\"AT\"\n\t],\n\t[\n\t\t\"994\",\n\t\t\"AZE\",\n\t\t\"AZ\"\n\t],\n\t[\n\t\t\"1-242\",\n\t\t\"BHS\",\n\t\t\"BS\"\n\t],\n\t[\n\t\t\"973\",\n\t\t\"BHR\",\n\t\t\"BH\"\n\t],\n\t[\n\t\t\"880\",\n\t\t\"BGD\",\n\t\t\"BD\"\n\t],\n\t[\n\t\t\"1-246\",\n\t\t\"BRB\",\n\t\t\"BB\"\n\t],\n\t[\n\t\t\"375\",\n\t\t\"BLR\",\n\t\t\"BY\"\n\t],\n\t[\n\t\t\"32\",\n\t\t\"BEL\",\n\t\t\"BE\"\n\t],\n\t[\n\t\t\"501\",\n\t\t\"BLZ\",\n\t\t\"BZ\"\n\t],\n\t[\n\t\t\"229\",\n\t\t\"BEN\",\n\t\t\"BJ\"\n\t],\n\t[\n\t\t\"1-441\",\n\t\t\"BMU\",\n\t\t\"BM\"\n\t],\n\t[\n\t\t\"975\",\n\t\t\"BTN\",\n\t\t\"BT\"\n\t],\n\t[\n\t\t\"591\",\n\t\t\"BOL\",\n\t\t\"BO\"\n\t],\n\t[\n\t\t\"599\",\n\t\t\"BES\",\n\t\t\"BQ\"\n\t],\n\t[\n\t\t\"387\",\n\t\t\"BIH\",\n\t\t\"BA\"\n\t],\n\t[\n\t\t\"267\",\n\t\t\"BWA\",\n\t\t\"BW\"\n\t],\n\t[\n\t\t\"47\",\n\t\t\"BVT\",\n\t\t\"BV\"\n\t],\n\t[\n\t\t\"55\",\n\t\t\"BRA\",\n\t\t\"BR\"\n\t],\n\t[\n\t\t\"246\",\n\t\t\"IOT\",\n\t\t\"IO\"\n\t],\n\t[\n\t\t\"1-284\",\n\t\t\"VGB\",\n\t\t\"VG\"\n\t],\n\t[\n\t\t\"673\",\n\t\t\"BRN\",\n\t\t\"BN\"\n\t],\n\t[\n\t\t\"359\",\n\t\t\"BGR\",\n\t\t\"BG\"\n\t],\n\t[\n\t\t\"226\",\n\t\t\"BFA\",\n\t\t\"BF\"\n\t],\n\t[\n\t\t\"257\",\n\t\t\"BDI\",\n\t\t\"BI\"\n\t],\n\t[\n\t\t\"238\",\n\t\t\"CPV\",\n\t\t\"CV\"\n\t],\n\t[\n\t\t\"855\",\n\t\t\"KHM\",\n\t\t\"KH\"\n\t],\n\t[\n\t\t\"237\",\n\t\t\"CMR\",\n\t\t\"CM\"\n\t],\n\t[\n\t\t\"1\",\n\t\t\"CAN\",\n\t\t\"CA\"\n\t],\n\t[\n\t\t\"1-345\",\n\t\t\"CYM\",\n\t\t\"KY\"\n\t],\n\t[\n\t\t\"236\",\n\t\t\"CAF\",\n\t\t\"CF\"\n\t],\n\t[\n\t\t\"235\",\n\t\t\"TCD\",\n\t\t\"TD\"\n\t],\n\t[\n\t\t\"56\",\n\t\t\"CHL\",\n\t\t\"CL\"\n\t],\n\t[\n\t\t\"86\",\n\t\t\"CHN\",\n\t\t\"CN\"\n\t],\n\t[\n\t\t\"852\",\n\t\t\"HKG\",\n\t\t\"HK\"\n\t],\n\t[\n\t\t\"853\",\n\t\t\"MAC\",\n\t\t\"MO\"\n\t],\n\t[\n\t\t\"61\",\n\t\t\"CXR\",\n\t\t\"CX\"\n\t],\n\t[\n\t\t\"61\",\n\t\t\"CCK\",\n\t\t\"CC\"\n\t],\n\t[\n\t\t\"57\",\n\t\t\"COL\",\n\t\t\"CO\"\n\t],\n\t[\n\t\t\"269\",\n\t\t\"COM\",\n\t\t\"KM\"\n\t],\n\t[\n\t\t\"242\",\n\t\t\"COG\",\n\t\t\"CG\"\n\t],\n\t[\n\t\t\"682\",\n\t\t\"COK\",\n\t\t\"CK\"\n\t],\n\t[\n\t\t\"506\",\n\t\t\"CRI\",\n\t\t\"CR\"\n\t],\n\t[\n\t\t\"385\",\n\t\t\"HRV\",\n\t\t\"HR\"\n\t],\n\t[\n\t\t\"53\",\n\t\t\"CUB\",\n\t\t\"CU\"\n\t],\n\t[\n\t\t\"599\",\n\t\t\"CUW\",\n\t\t\"CW\"\n\t],\n\t[\n\t\t\"357\",\n\t\t\"CYP\",\n\t\t\"CY\"\n\t],\n\t[\n\t\t\"420\",\n\t\t\"CZE\",\n\t\t\"CZ\"\n\t],\n\t[\n\t\t\"225\",\n\t\t\"CIV\",\n\t\t\"CI\"\n\t],\n\t[\n\t\t\"850\",\n\t\t\"PRK\",\n\t\t\"KP\"\n\t],\n\t[\n\t\t\"243\",\n\t\t\"COD\",\n\t\t\"CD\"\n\t],\n\t[\n\t\t\"45\",\n\t\t\"DNK\",\n\t\t\"DK\"\n\t],\n\t[\n\t\t\"253\",\n\t\t\"DJI\",\n\t\t\"DJ\"\n\t],\n\t[\n\t\t\"1-767\",\n\t\t\"DMA\",\n\t\t\"DM\"\n\t],\n\t[\n\t\t\"1-809\",\n\t\t\"DOM\",\n\t\t\"DO\"\n\t],\n\t[\n\t\t\"1-829\",\n\t\t\"DOM\",\n\t\t\"DO\"\n\t],\n\t[\n\t\t\"1-849\",\n\t\t\"DOM\",\n\t\t\"DO\"\n\t],\n\t[\n\t\t\"593\",\n\t\t\"ECU\",\n\t\t\"EC\"\n\t],\n\t[\n\t\t\"20\",\n\t\t\"EGY\",\n\t\t\"EG\"\n\t],\n\t[\n\t\t\"503\",\n\t\t\"SLV\",\n\t\t\"SV\"\n\t],\n\t[\n\t\t\"240\",\n\t\t\"GNQ\",\n\t\t\"GQ\"\n\t],\n\t[\n\t\t\"291\",\n\t\t\"ERI\",\n\t\t\"ER\"\n\t],\n\t[\n\t\t\"372\",\n\t\t\"EST\",\n\t\t\"EE\"\n\t],\n\t[\n\t\t\"268\",\n\t\t\"SWZ\",\n\t\t\"SZ\"\n\t],\n\t[\n\t\t\"251\",\n\t\t\"ETH\",\n\t\t\"ET\"\n\t],\n\t[\n\t\t\"500\",\n\t\t\"FLK\",\n\t\t\"FK\"\n\t],\n\t[\n\t\t\"298\",\n\t\t\"FRO\",\n\t\t\"FO\"\n\t],\n\t[\n\t\t\"679\",\n\t\t\"FJI\",\n\t\t\"FJ\"\n\t],\n\t[\n\t\t\"358\",\n\t\t\"FIN\",\n\t\t\"FI\"\n\t],\n\t[\n\t\t\"33\",\n\t\t\"FRA\",\n\t\t\"FR\"\n\t],\n\t[\n\t\t\"594\",\n\t\t\"GUF\",\n\t\t\"GF\"\n\t],\n\t[\n\t\t\"689\",\n\t\t\"PYF\",\n\t\t\"PF\"\n\t],\n\t[\n\t\t\"262\",\n\t\t\"ATF\",\n\t\t\"TF\"\n\t],\n\t[\n\t\t\"241\",\n\t\t\"GAB\",\n\t\t\"GA\"\n\t],\n\t[\n\t\t\"220\",\n\t\t\"GMB\",\n\t\t\"GM\"\n\t],\n\t[\n\t\t\"995\",\n\t\t\"GEO\",\n\t\t\"GE\"\n\t],\n\t[\n\t\t\"49\",\n\t\t\"DEU\",\n\t\t\"DE\"\n\t],\n\t[\n\t\t\"233\",\n\t\t\"GHA\",\n\t\t\"GH\"\n\t],\n\t[\n\t\t\"350\",\n\t\t\"GIB\",\n\t\t\"GI\"\n\t],\n\t[\n\t\t\"30\",\n\t\t\"GRC\",\n\t\t\"GR\"\n\t],\n\t[\n\t\t\"299\",\n\t\t\"GRL\",\n\t\t\"GL\"\n\t],\n\t[\n\t\t\"1-473\",\n\t\t\"GRD\",\n\t\t\"GD\"\n\t],\n\t[\n\t\t\"590\",\n\t\t\"GLP\",\n\t\t\"GP\"\n\t],\n\t[\n\t\t\"1-671\",\n\t\t\"GUM\",\n\t\t\"GU\"\n\t],\n\t[\n\t\t\"502\",\n\t\t\"GTM\",\n\t\t\"GT\"\n\t],\n\t[\n\t\t\"44\",\n\t\t\"GGY\",\n\t\t\"GG\"\n\t],\n\t[\n\t\t\"224\",\n\t\t\"GIN\",\n\t\t\"GN\"\n\t],\n\t[\n\t\t\"245\",\n\t\t\"GNB\",\n\t\t\"GW\"\n\t],\n\t[\n\t\t\"592\",\n\t\t\"GUY\",\n\t\t\"GY\"\n\t],\n\t[\n\t\t\"509\",\n\t\t\"HTI\",\n\t\t\"HT\"\n\t],\n\t[\n\t\t\"672\",\n\t\t\"HMD\",\n\t\t\"HM\"\n\t],\n\t[\n\t\t\"39-06\",\n\t\t\"VAT\",\n\t\t\"VA\"\n\t],\n\t[\n\t\t\"504\",\n\t\t\"HND\",\n\t\t\"HN\"\n\t],\n\t[\n\t\t\"36\",\n\t\t\"HUN\",\n\t\t\"HU\"\n\t],\n\t[\n\t\t\"354\",\n\t\t\"ISL\",\n\t\t\"IS\"\n\t],\n\t[\n\t\t\"91\",\n\t\t\"IND\",\n\t\t\"IN\"\n\t],\n\t[\n\t\t\"62\",\n\t\t\"IDN\",\n\t\t\"ID\"\n\t],\n\t[\n\t\t\"98\",\n\t\t\"IRN\",\n\t\t\"IR\"\n\t],\n\t[\n\t\t\"964\",\n\t\t\"IRQ\",\n\t\t\"IQ\"\n\t],\n\t[\n\t\t\"353\",\n\t\t\"IRL\",\n\t\t\"IE\"\n\t],\n\t[\n\t\t\"44\",\n\t\t\"IMN\",\n\t\t\"IM\"\n\t],\n\t[\n\t\t\"972\",\n\t\t\"ISR\",\n\t\t\"IL\"\n\t],\n\t[\n\t\t\"39\",\n\t\t\"ITA\",\n\t\t\"IT\"\n\t],\n\t[\n\t\t\"1-876\",\n\t\t\"JAM\",\n\t\t\"JM\"\n\t],\n\t[\n\t\t\"81\",\n\t\t\"JPN\",\n\t\t\"JP\"\n\t],\n\t[\n\t\t\"44\",\n\t\t\"JEY\",\n\t\t\"JE\"\n\t],\n\t[\n\t\t\"962\",\n\t\t\"JOR\",\n\t\t\"JO\"\n\t],\n\t[\n\t\t\"7\",\n\t\t\"KAZ\",\n\t\t\"KZ\"\n\t],\n\t[\n\t\t\"254\",\n\t\t\"KEN\",\n\t\t\"KE\"\n\t],\n\t[\n\t\t\"686\",\n\t\t\"KIR\",\n\t\t\"KI\"\n\t],\n\t[\n\t\t\"965\",\n\t\t\"KWT\",\n\t\t\"KW\"\n\t],\n\t[\n\t\t\"996\",\n\t\t\"KGZ\",\n\t\t\"KG\"\n\t],\n\t[\n\t\t\"856\",\n\t\t\"LAO\",\n\t\t\"LA\"\n\t],\n\t[\n\t\t\"371\",\n\t\t\"LVA\",\n\t\t\"LV\"\n\t],\n\t[\n\t\t\"961\",\n\t\t\"LBN\",\n\t\t\"LB\"\n\t],\n\t[\n\t\t\"266\",\n\t\t\"LSO\",\n\t\t\"LS\"\n\t],\n\t[\n\t\t\"231\",\n\t\t\"LBR\",\n\t\t\"LR\"\n\t],\n\t[\n\t\t\"218\",\n\t\t\"LBY\",\n\t\t\"LY\"\n\t],\n\t[\n\t\t\"423\",\n\t\t\"LIE\",\n\t\t\"LI\"\n\t],\n\t[\n\t\t\"370\",\n\t\t\"LTU\",\n\t\t\"LT\"\n\t],\n\t[\n\t\t\"352\",\n\t\t\"LUX\",\n\t\t\"LU\"\n\t],\n\t[\n\t\t\"261\",\n\t\t\"MDG\",\n\t\t\"MG\"\n\t],\n\t[\n\t\t\"265\",\n\t\t\"MWI\",\n\t\t\"MW\"\n\t],\n\t[\n\t\t\"60\",\n\t\t\"MYS\",\n\t\t\"MY\"\n\t],\n\t[\n\t\t\"960\",\n\t\t\"MDV\",\n\t\t\"MV\"\n\t],\n\t[\n\t\t\"223\",\n\t\t\"MLI\",\n\t\t\"ML\"\n\t],\n\t[\n\t\t\"356\",\n\t\t\"MLT\",\n\t\t\"MT\"\n\t],\n\t[\n\t\t\"692\",\n\t\t\"MHL\",\n\t\t\"MH\"\n\t],\n\t[\n\t\t\"596\",\n\t\t\"MTQ\",\n\t\t\"MQ\"\n\t],\n\t[\n\t\t\"222\",\n\t\t\"MRT\",\n\t\t\"MR\"\n\t],\n\t[\n\t\t\"230\",\n\t\t\"MUS\",\n\t\t\"MU\"\n\t],\n\t[\n\t\t\"262\",\n\t\t\"MYT\",\n\t\t\"YT\"\n\t],\n\t[\n\t\t\"52\",\n\t\t\"MEX\",\n\t\t\"MX\"\n\t],\n\t[\n\t\t\"691\",\n\t\t\"FSM\",\n\t\t\"FM\"\n\t],\n\t[\n\t\t\"377\",\n\t\t\"MCO\",\n\t\t\"MC\"\n\t],\n\t[\n\t\t\"976\",\n\t\t\"MNG\",\n\t\t\"MN\"\n\t],\n\t[\n\t\t\"382\",\n\t\t\"MNE\",\n\t\t\"ME\"\n\t],\n\t[\n\t\t\"1-664\",\n\t\t\"MSR\",\n\t\t\"MS\"\n\t],\n\t[\n\t\t\"212\",\n\t\t\"MAR\",\n\t\t\"MA\"\n\t],\n\t[\n\t\t\"258\",\n\t\t\"MOZ\",\n\t\t\"MZ\"\n\t],\n\t[\n\t\t\"95\",\n\t\t\"MMR\",\n\t\t\"MM\"\n\t],\n\t[\n\t\t\"264\",\n\t\t\"NAM\",\n\t\t\"NA\"\n\t],\n\t[\n\t\t\"674\",\n\t\t\"NRU\",\n\t\t\"NR\"\n\t],\n\t[\n\t\t\"977\",\n\t\t\"NPL\",\n\t\t\"NP\"\n\t],\n\t[\n\t\t\"31\",\n\t\t\"NLD\",\n\t\t\"NL\"\n\t],\n\t[\n\t\t\"687\",\n\t\t\"NCL\",\n\t\t\"NC\"\n\t],\n\t[\n\t\t\"64\",\n\t\t\"NZL\",\n\t\t\"NZ\"\n\t],\n\t[\n\t\t\"505\",\n\t\t\"NIC\",\n\t\t\"NI\"\n\t],\n\t[\n\t\t\"227\",\n\t\t\"NER\",\n\t\t\"NE\"\n\t],\n\t[\n\t\t\"234\",\n\t\t\"NGA\",\n\t\t\"NG\"\n\t],\n\t[\n\t\t\"683\",\n\t\t\"NIU\",\n\t\t\"NU\"\n\t],\n\t[\n\t\t\"672\",\n\t\t\"NFK\",\n\t\t\"NF\"\n\t],\n\t[\n\t\t\"1-670\",\n\t\t\"MNP\",\n\t\t\"MP\"\n\t],\n\t[\n\t\t\"47\",\n\t\t\"NOR\",\n\t\t\"NO\"\n\t],\n\t[\n\t\t\"968\",\n\t\t\"OMN\",\n\t\t\"OM\"\n\t],\n\t[\n\t\t\"92\",\n\t\t\"PAK\",\n\t\t\"PK\"\n\t],\n\t[\n\t\t\"680\",\n\t\t\"PLW\",\n\t\t\"PW\"\n\t],\n\t[\n\t\t\"507\",\n\t\t\"PAN\",\n\t\t\"PA\"\n\t],\n\t[\n\t\t\"675\",\n\t\t\"PNG\",\n\t\t\"PG\"\n\t],\n\t[\n\t\t\"595\",\n\t\t\"PRY\",\n\t\t\"PY\"\n\t],\n\t[\n\t\t\"51\",\n\t\t\"PER\",\n\t\t\"PE\"\n\t],\n\t[\n\t\t\"63\",\n\t\t\"PHL\",\n\t\t\"PH\"\n\t],\n\t[\n\t\t\"870\",\n\t\t\"PCN\",\n\t\t\"PN\"\n\t],\n\t[\n\t\t\"48\",\n\t\t\"POL\",\n\t\t\"PL\"\n\t],\n\t[\n\t\t\"351\",\n\t\t\"PRT\",\n\t\t\"PT\"\n\t],\n\t[\n\t\t\"974\",\n\t\t\"QAT\",\n\t\t\"QA\"\n\t],\n\t[\n\t\t\"82\",\n\t\t\"KOR\",\n\t\t\"KR\"\n\t],\n\t[\n\t\t\"373\",\n\t\t\"MDA\",\n\t\t\"MD\"\n\t],\n\t[\n\t\t\"40\",\n\t\t\"ROU\",\n\t\t\"RO\"\n\t],\n\t[\n\t\t\"7\",\n\t\t\"RUS\",\n\t\t\"RU\"\n\t],\n\t[\n\t\t\"250\",\n\t\t\"RWA\",\n\t\t\"RW\"\n\t],\n\t[\n\t\t\"262\",\n\t\t\"REU\",\n\t\t\"RE\"\n\t],\n\t[\n\t\t\"590\",\n\t\t\"BLM\",\n\t\t\"BL\"\n\t],\n\t[\n\t\t\"290\",\n\t\t\"SHN\",\n\t\t\"SH\"\n\t],\n\t[\n\t\t\"1-869\",\n\t\t\"KNA\",\n\t\t\"KN\"\n\t],\n\t[\n\t\t\"1-758\",\n\t\t\"LCA\",\n\t\t\"LC\"\n\t],\n\t[\n\t\t\"590\",\n\t\t\"MAF\",\n\t\t\"MF\"\n\t],\n\t[\n\t\t\"508\",\n\t\t\"SPM\",\n\t\t\"PM\"\n\t],\n\t[\n\t\t\"1-784\",\n\t\t\"VCT\",\n\t\t\"VC\"\n\t],\n\t[\n\t\t\"685\",\n\t\t\"WSM\",\n\t\t\"WS\"\n\t],\n\t[\n\t\t\"378\",\n\t\t\"SMR\",\n\t\t\"SM\"\n\t],\n\t[\n\t\t\"239\",\n\t\t\"STP\",\n\t\t\"ST\"\n\t],\n\t[\n\t\t\"966\",\n\t\t\"SAU\",\n\t\t\"SA\"\n\t],\n\t[\n\t\t\"221\",\n\t\t\"SEN\",\n\t\t\"SN\"\n\t],\n\t[\n\t\t\"381\",\n\t\t\"SRB\",\n\t\t\"RS\"\n\t],\n\t[\n\t\t\"248\",\n\t\t\"SYC\",\n\t\t\"SC\"\n\t],\n\t[\n\t\t\"232\",\n\t\t\"SLE\",\n\t\t\"SL\"\n\t],\n\t[\n\t\t\"65\",\n\t\t\"SGP\",\n\t\t\"SG\"\n\t],\n\t[\n\t\t\"1-721\",\n\t\t\"SXM\",\n\t\t\"SX\"\n\t],\n\t[\n\t\t\"421\",\n\t\t\"SVK\",\n\t\t\"SK\"\n\t],\n\t[\n\t\t\"386\",\n\t\t\"SVN\",\n\t\t\"SI\"\n\t],\n\t[\n\t\t\"677\",\n\t\t\"SLB\",\n\t\t\"SB\"\n\t],\n\t[\n\t\t\"252\",\n\t\t\"SOM\",\n\t\t\"SO\"\n\t],\n\t[\n\t\t\"27\",\n\t\t\"ZAF\",\n\t\t\"ZA\"\n\t],\n\t[\n\t\t\"500\",\n\t\t\"SGS\",\n\t\t\"GS\"\n\t],\n\t[\n\t\t\"211\",\n\t\t\"SSD\",\n\t\t\"SS\"\n\t],\n\t[\n\t\t\"34\",\n\t\t\"ESP\",\n\t\t\"ES\"\n\t],\n\t[\n\t\t\"94\",\n\t\t\"LKA\",\n\t\t\"LK\"\n\t],\n\t[\n\t\t\"970\",\n\t\t\"PSE\",\n\t\t\"PS\"\n\t],\n\t[\n\t\t\"249\",\n\t\t\"SDN\",\n\t\t\"SD\"\n\t],\n\t[\n\t\t\"597\",\n\t\t\"SUR\",\n\t\t\"SR\"\n\t],\n\t[\n\t\t\"47\",\n\t\t\"SJM\",\n\t\t\"SJ\"\n\t],\n\t[\n\t\t\"46\",\n\t\t\"SWE\",\n\t\t\"SE\"\n\t],\n\t[\n\t\t\"41\",\n\t\t\"CHE\",\n\t\t\"CH\"\n\t],\n\t[\n\t\t\"963\",\n\t\t\"SYR\",\n\t\t\"SY\"\n\t],\n\t[\n\t\t\"992\",\n\t\t\"TJK\",\n\t\t\"TJ\"\n\t],\n\t[\n\t\t\"66\",\n\t\t\"THA\",\n\t\t\"TH\"\n\t],\n\t[\n\t\t\"389\",\n\t\t\"MKD\",\n\t\t\"MK\"\n\t],\n\t[\n\t\t\"670\",\n\t\t\"TLS\",\n\t\t\"TL\"\n\t],\n\t[\n\t\t\"228\",\n\t\t\"TGO\",\n\t\t\"TG\"\n\t],\n\t[\n\t\t\"690\",\n\t\t\"TKL\",\n\t\t\"TK\"\n\t],\n\t[\n\t\t\"676\",\n\t\t\"TON\",\n\t\t\"TO\"\n\t],\n\t[\n\t\t\"1-868\",\n\t\t\"TTO\",\n\t\t\"TT\"\n\t],\n\t[\n\t\t\"216\",\n\t\t\"TUN\",\n\t\t\"TN\"\n\t],\n\t[\n\t\t\"90\",\n\t\t\"TUR\",\n\t\t\"TR\"\n\t],\n\t[\n\t\t\"993\",\n\t\t\"TKM\",\n\t\t\"TM\"\n\t],\n\t[\n\t\t\"1-649\",\n\t\t\"TCA\",\n\t\t\"TC\"\n\t],\n\t[\n\t\t\"688\",\n\t\t\"TUV\",\n\t\t\"TV\"\n\t],\n\t[\n\t\t\"256\",\n\t\t\"UGA\",\n\t\t\"UG\"\n\t],\n\t[\n\t\t\"380\",\n\t\t\"UKR\",\n\t\t\"UA\"\n\t],\n\t[\n\t\t\"971\",\n\t\t\"ARE\",\n\t\t\"AE\"\n\t],\n\t[\n\t\t\"44\",\n\t\t\"GBR\",\n\t\t\"GB\"\n\t],\n\t[\n\t\t\"255\",\n\t\t\"TZA\",\n\t\t\"TZ\"\n\t],\n\t[\n\t\t\"1-340\",\n\t\t\"VIR\",\n\t\t\"VI\"\n\t],\n\t[\n\t\t\"1\",\n\t\t\"USA\",\n\t\t\"US\"\n\t],\n\t[\n\t\t\"598\",\n\t\t\"URY\",\n\t\t\"UY\"\n\t],\n\t[\n\t\t\"998\",\n\t\t\"UZB\",\n\t\t\"UZ\"\n\t],\n\t[\n\t\t\"678\",\n\t\t\"VUT\",\n\t\t\"VU\"\n\t],\n\t[\n\t\t\"58\",\n\t\t\"VEN\",\n\t\t\"VE\"\n\t],\n\t[\n\t\t\"84\",\n\t\t\"VNM\",\n\t\t\"VN\"\n\t],\n\t[\n\t\t\"681\",\n\t\t\"WLF\",\n\t\t\"WF\"\n\t],\n\t[\n\t\t\"212\",\n\t\t\"ESH\",\n\t\t\"EH\"\n\t],\n\t[\n\t\t\"967\",\n\t\t\"YEM\",\n\t\t\"YE\"\n\t],\n\t[\n\t\t\"260\",\n\t\t\"ZMB\",\n\t\t\"ZM\"\n\t],\n\t[\n\t\t\"263\",\n\t\t\"ZWE\",\n\t\t\"ZW\"\n\t],\n\t[\n\t\t\"358\",\n\t\t\"ALA\",\n\t\t\"AX\"\n\t]\n];\n\n//#endregion\n//#region ../constants/src/PluralExceptions.ts\n/**\n* **PLURAL_EXCEPTIONS**\n*\n* A lookup table that maps singular words to their _plural_ counterpart.\n*/\nconst PLURAL_EXCEPTIONS = {\n\tphoto: \"photos\",\n\tpiano: \"pianos\",\n\thalo: \"halos\",\n\tfoot: \"feet\",\n\tman: \"men\",\n\twoman: \"women\",\n\tperson: \"people\",\n\tmouse: \"mice\",\n\tseries: \"series\",\n\tsheep: \"sheep\",\n\tmoney: \"monies\",\n\tdeer: \"deer\",\n\tgoose: \"geese\",\n\tchild: \"children\",\n\ttooth: \"teeth\",\n\tox: \"oxen\",\n\tbasis: \"bases\",\n\tradius: \"radii\",\n\tsyllabus: \"syllabi\",\n\tice: \"ice\",\n\tfish: \"fish\",\n\tmeans: \"means\",\n\tphenomenon: \"phenomena\",\n\tcriterion: \"criteria\",\n\tdatum: \"data\",\n\tmemorandum: \"memoranda\",\n\tbacterium: \"bacteria\",\n\tstratum: \"strata\",\n\tcurriculum: \"curricula\",\n\tindex: \"indices\",\n\tappendix: \"appendices\",\n\tvortex: \"vortices\",\n\tbison: \"bison\",\n\taxis: \"axes\",\n\tantenna: \"antennas\",\n\tcactus: \"cacti\",\n\tcorpus: \"corpora\",\n\tbeau: \"beaux\",\n\tdie: \"dice\",\n\tellipsis: \"ellipses\",\n\terratum: \"errata\",\n\tfocus: \"foci\",\n\tformula: \"formulas\",\n\tfungus: \"fungi\",\n\tgenus: \"genera\",\n\tgraffito: \"graffiti\",\n\tgrouse: \"grouses\",\n\thalf: \"halves\",\n\thoof: \"hooves\",\n\thypothesis: \"hypothesis\",\n\tlarva: \"larvae\",\n\tlibretto: \"libretti\",\n\tloaf: \"loaves\",\n\tlocus: \"loci\",\n\tmedium: \"mediums\",\n\tminutia: \"minutiae\",\n\tnucleus: \"nuclei\",\n\toasis: \"oases\",\n\topus: \"opuses\",\n\tovum: \"ova\",\n\tparenthesis: \"parentheses\",\n\tphylum: \"phyla\",\n\tquiz: \"quizzes\",\n\treferendum: \"referendums\",\n\tself: \"selves\",\n\tspecies: \"species\",\n\tstimulus: \"stimuli\",\n\tswine: \"swine\",\n\tsynopsis: \"synopses\",\n\tthesis: \"theses\",\n\tthief: \"thieves\",\n\tvertex: \"vertexes\",\n\twife: \"wives\",\n\twolf: \"wolves\"\n};\n\n//#endregion\n//#region ../constants/src/RepoConstants.ts\n/**\n* common sources for source code repositories\n*/\nconst REPO_SOURCES = [\n\t\"github\",\n\t\"bitbucket\",\n\t\"gitlab\",\n\t\"codecommit\",\n\t\"local\"\n];\nconst REPO_SOURCE_LOOKUP = {\n\tgithub: [`https://github.com`, \"https://github.io\"],\n\tbitbucket: [\"https://bitbucket.org\"],\n\tgitlab: [\"https://gitlab.com\"],\n\tcodecommit: [\"https://aws.amazon.com/codecommit/\"],\n\tlocal: []\n};\n\n//#endregion\n//#region ../constants/src/Retail.ts\n/**\n* Amazon's DNS entries (for retail business)\n*/\nconst AMAZON_DNS = [\n\t\"www.amazon.com\",\n\t`www.amazon.co.uk`,\n\t`www.amazon.fr`,\n\t`www.amazon.de`,\n\t`www.amazon.it`,\n\t`www.amazon.es`\n];\nconst WALMART_DNS = [\n\t\"www.walmart.com\",\n\t\"www.walmart.ca\",\n\t\"www.walmart.com.mx\"\n];\nconst APPLE_DNS = [\"store.apple.com\", \"www.apple.com\"];\nconst HOME_DEPOT_DNS = [\"www.homedepot.com\", \"www.homedepot.ca\"];\nconst EBAY_DNS = [\n\t\"www.ebay.com\",\n\t\"www.ebay.co.uk\",\n\t\"www.ebay.fr\",\n\t\"www.ebay.de\",\n\t\"www.ebay.it\"\n];\nconst TARGET_DNS = [\"www.target.com\"];\nconst ETSY_DNS = [\"www.etsy.com\"];\nconst COSTCO_DNS = [\n\t\"www.costco.com\",\n\t\"www.costco.co.uk\",\n\t\"www.costco.ca\"\n];\nconst BEST_BUY_DNS = [\"www.bestbuy.com\", \"www.bestbuy.ca\"];\nconst WAYFAIR_DNS = [\n\t\"www.wayfair.com\",\n\t\"www.wayfair.ca\",\n\t\"www.wayfair.co.uk\"\n];\nconst NIKE_DNS = [\"www.nike.com\"];\nconst MACYS_DNS = [\"www.macys.com\"];\nconst DELL_DNS = [\"www.dell.com\"];\n/** DNS for H&M retailer */\nconst HM_DNS = [\"www2.hm.com\"];\nconst ZARA_DNS = [\"www.zara.com\"];\nconst KROGER_DNS = [\"www.kroger.com\"];\nconst WALGREENS_DNS = [\"www.walgreens.com\"];\nconst CVS_DNS = [\"www.cvs.com\"];\nconst WHOLE_FOODS_DNS = [\"www.wholefoodsmarket.com\", \"www.wholefoodsmarket.co.uk\"];\n\n//#endregion\n//#region ../constants/src/SafeEncoding.ts\nconst SAFE_ENCODING__QUOTES = {\n\t[`\"`]: \"^<dq>\",\n\t[`'`]: \"^<sq>\",\n\t[`\\``]: \"^<grave>\"\n};\nconst SAFE_ENCODING__WHITESPACE = {\n\t\" \": \"^<sp>\",\n\t\"\t\": \"^<tab>\",\n\t\"\\n\": \"^<n>\",\n\t\"\\r\": \"^<r>\"\n};\nconst SAFE_ENCODING__BRACKETS = {\n\t\"[\": \"^<osb>\",\n\t\"]\": \"^<csb>\",\n\t\"(\": \"^<op>\",\n\t\")\": \"^<cp>\",\n\t\"{\": \"^<oc>\",\n\t\"}\": \"^<cc>\"\n};\nconst SAFE_ENCODING_KEYS = {\n\t...SAFE_ENCODING__BRACKETS,\n\t...SAFE_ENCODING__QUOTES,\n\t...SAFE_ENCODING__WHITESPACE\n};\n\n//#endregion\n//#region ../constants/src/Shape.ts\nconst SHAPE_PREFIXES = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"null\",\n\t\"undefined\",\n\t\"unknown\",\n\t\"opt::\",\n\t\"union::\",\n\t\"tuple::\",\n\t\"array::\",\n\t\"object\",\n\t\"record::\"\n];\n\n//#endregion\n//#region ../constants/src/SimpleTokens.ts\nconst SIMPLE_SCALAR_TOKENS = [\n\t\"string\",\n\t\"number\",\n\t`string(TOKEN)`,\n\t`number(TOKEN)`,\n\t\"boolean\",\n\t\"true\",\n\t\"false\",\n\t\"null\",\n\t\"undefined\",\n\t\"unknown\",\n\t\"any\",\n\t\"never\"\n];\nconst SIMPLE_OPT_SCALAR_TOKENS = [\n\t\"Opt<string>\",\n\t\"Opt<number>\",\n\t\"Opt<boolean>\",\n\t\"Opt<true>\",\n\t\"Opt<false>\",\n\t\"Opt<null>\",\n\t\"Opt<undefined>\",\n\t\"Opt<unknown>\",\n\t\"Opt<any>\",\n\t\"Opt<string(TOKEN)>\",\n\t\"Opt<number(TOKEN)>\",\n\t\"Opt<undefined>\"\n];\nconst SIMPLE_UNION_TOKENS = [`Union(TOKEN)`];\nconst SIMPLE_MAP_KEYS = [\n\t\"string\",\n\t\"number\",\n\t\"Dict\",\n\t\"Dict<string, string>\",\n\t\"Dict<string, number>\",\n\t\"Dict<string, boolean>\",\n\t\"Dict<string, unknown>\",\n\t\"Dict<string, Opt<string>>\",\n\t\"Dict<string, Opt<number>>\",\n\t\"Dict<string, Opt<boolean>>\"\n];\nconst SIMPLE_MAP_VALUES = [\n\t...SIMPLE_MAP_KEYS,\n\t\"boolean\",\n\t\"unknown\",\n\t\"undefined\",\n\t\"Dict\",\n\t\"Array\",\n\t\"Dict<string, Opt<string>>\",\n\t\"Dict<string, Opt<number>>\",\n\t\"Dict<string, Opt<boolean>>\",\n\t\"Dict<string, Opt<unknown>>\"\n];\nconst SIMPLE_DICT_TOKENS = [\n\t\"Dict\",\n\t\"Dict<string, string>\",\n\t\"Dict<string, number>\",\n\t\"Dict<string, boolean>\",\n\t\"Dict<string, unknown>\",\n\t\"Dict<string, Opt<string>>\",\n\t\"Dict<string, Opt<number>>\",\n\t\"Dict<string, Opt<boolean>>\",\n\t\"Dict<string, Opt<unknown>>\",\n\t\"Dict<{TOKEN: TOKEN}>\",\n\t\"Dict<{TOKEN: TOKEN, TOKEN: TOKEN}>\"\n];\nconst SIMPLE_ARRAY_TOKENS = [\n\t\"Array\",\n\t\"Array<string>\",\n\t\"Array<string(TOKEN)>\",\n\t\"Array<number>\",\n\t\"Array<number(TOKEN)>\",\n\t\"Array<boolean>\",\n\t\"Array<unknown>\",\n\t`Array<Dict>`,\n\t`Array<Set>`,\n\t`Array<Map>`\n];\nconst SIMPLE_MAP_TOKENS = [\n\t\"Map\",\n\t\"Map<TOKEN, TOKEN>\",\n\t\"WeakMap\"\n];\nconst SIMPLE_SET_TOKENS = [\"Set\", \"Set<TOKEN>\"];\nconst SIMPLE_CONTAINER_TOKENS = [\n\t...SIMPLE_DICT_TOKENS,\n\t...SIMPLE_ARRAY_TOKENS,\n\t...SIMPLE_MAP_TOKENS,\n\t...SIMPLE_SET_TOKENS\n];\n/**\n* **SIMPLE_TOKENS**\n*\n* A list of strings literals which can be used\n* to express the type of a variable or token\n* in relatively course granularity\n*/\nconst SIMPLE_TOKENS = [\n\t...SIMPLE_SCALAR_TOKENS,\n\t...SIMPLE_OPT_SCALAR_TOKENS,\n\t...SIMPLE_CONTAINER_TOKENS,\n\t...SIMPLE_UNION_TOKENS\n];\n\n//#endregion\n//#region ../constants/src/SingularNounEnding.ts\n/**\n* Singular nouns typically end in the characters represented by this array.\n*\n* **Related:** `SingularNounEnding`\n*/\nconst SINGULAR_NOUN_ENDINGS = [\n\t\"s\",\n\t\"sh\",\n\t\"ch\",\n\t\"x\",\n\t\"z\",\n\t\"o\"\n];\n\n//#endregion\n//#region ../constants/src/Social.ts\nconst SOCIAL_MEDIA = [\n\t{\n\t\tname: \"Facebook\",\n\t\tdescription: \"Connect with friends, family, and communities worldwide on one of the largest social networks.\",\n\t\tbaseUrls: [\"https://www.facebook.com\"],\n\t\tprofileUrl: \"https://www.facebook.com/:user_id\",\n\t\tapproximateUserSize: 3e9,\n\t\ttickerSymbol: \"META\"\n\t},\n\t{\n\t\tname: \"YouTube\",\n\t\tdescription: \"A platform for sharing and watching videos, connecting creators with audiences globally.\",\n\t\tbaseUrls: [\"https://www.youtube.com\"],\n\t\tprofileUrl: \"https://www.youtube.com/user/:user_id\",\n\t\tapproximateUserSize: 25e8,\n\t\ttickerSymbol: \"GOOGL\"\n\t},\n\t{\n\t\tname: \"WhatsApp\",\n\t\tdescription: \"A secure messaging app for personal and business communication.\",\n\t\tbaseUrls: [\"https://www.whatsapp.com\", \"https://wa.me\"],\n\t\tprofileUrl: \"https://wa.me/:user_id\",\n\t\tapproximateUserSize: 2e9,\n\t\ttickerSymbol: \"META\"\n\t},\n\t{\n\t\tname: \"Instagram\",\n\t\tdescription: \"Share photos and videos with friends and followers through posts, stories, and reels.\",\n\t\tbaseUrls: [\"https://www.instagram.com\"],\n\t\tprofileUrl: \"https://www.instagram.com/:user_id\",\n\t\tapproximateUserSize: 2e9,\n\t\ttickerSymbol: \"META\"\n\t},\n\t{\n\t\tname: \"TikTok\",\n\t\tdescription: \"A short-form video platform known for its highly engaging content and viral trends.\",\n\t\tbaseUrls: [\"https://www.tiktok.com\"],\n\t\tprofileUrl: \"https://www.tiktok.com/@:user_id\",\n\t\tapproximateUserSize: 16e8\n\t},\n\t{\n\t\tname: \"WeChat\",\n\t\tdescription: \"China's popular messaging and lifestyle app, integrating social media and mobile payments.\",\n\t\tbaseUrls: [\"https://www.wechat.com\"],\n\t\tprofileUrl: \"https://www.wechat.com/:user_id\",\n\t\tapproximateUserSize: 13e8\n\t},\n\t{\n\t\tname: \"Facebook Messenger\",\n\t\tdescription: \"A messaging app used for personal and business interactions, seamlessly integrated with Facebook.\",\n\t\tbaseUrls: [\"https://www.messenger.com\"],\n\t\tprofileUrl: \"https://www.messenger.com/t/:user_id\",\n\t\tapproximateUserSize: 1e9,\n\t\ttickerSymbol: \"META\"\n\t},\n\t{\n\t\tname: \"Telegram\",\n\t\tdescription: \"A messaging platform focused on privacy, with channels and group capabilities.\",\n\t\tbaseUrls: [\"https://www.telegram.org\", \"https://t.me\"],\n\t\tprofileUrl: \"https://t.me/:user_id\",\n\t\tapproximateUserSize: 9e8\n\t},\n\t{\n\t\tname: \"Snapchat\",\n\t\tdescription: \"A multimedia app popular for its disappearing messages and creative filters.\",\n\t\tbaseUrls: [\"https://www.snapchat.com\"],\n\t\tprofileUrl: \"https://www.snapchat.com/add/:user_id\",\n\t\tapproximateUserSize: 8e8,\n\t\ttickerSymbol: \"SNAP\"\n\t},\n\t{\n\t\tname: \"Douyin\",\n\t\tdescription: \"The Chinese version of TikTok, with similar short-form video content tailored for China.\",\n\t\tbaseUrls: [\"https://www.douyin.com\"],\n\t\tprofileUrl: \"https://www.douyin.com/user/:user_id\",\n\t\tapproximateUserSize: 75e7\n\t},\n\t{\n\t\tname: \"LinkedIn\",\n\t\tdescription: \"The largest professional networking platform, where users connect for career opportunities, insights, and business networking.\",\n\t\tbaseUrls: [\"https://www.linkedin.com\"],\n\t\tprofileUrl: \"https://www.linkedin.com/in/:user_id\",\n\t\tapproximateUserSize: 93e7,\n\t\ttickerSymbol: \"MSFT\"\n\t},\n\t{\n\t\tname: \"X (formerly Twitter)\",\n\t\tdescription: \"A platform for real-time updates, news sharing, and public discourse with a focus on brief, impactful posts.\",\n\t\tbaseUrls: [\"https://www.twitter.com\", \"https://x.com\"],\n\t\tprofileUrl: \"https://twitter.com/:user_id\",\n\t\tapproximateUserSize: 54e7\n\t},\n\t{\n\t\tname: \"Pinterest\",\n\t\tdescription: \"A visually-driven platform for sharing ideas, DIY projects, fashion, and more.\",\n\t\tbaseUrls: [\"https://www.pinterest.com\"],\n\t\tprofileUrl: \"https://www.pinterest.com/:user_id\",\n\t\tapproximateUserSize: 46e7,\n\t\ttickerSymbol: \"PINS\"\n\t},\n\t{\n\t\tname: \"Reddit\",\n\t\tdescription: \"A community-driven platform organized into niche forums or 'subreddits' focused on various topics.\",\n\t\tbaseUrls: [\"https://www.reddit.com\"],\n\t\tprofileUrl: \"https://www.reddit.com/user/:user_id\",\n\t\tapproximateUserSize: 43e7\n\t},\n\t{\n\t\tname: \"Clubhouse\",\n\t\tdescription: \"A voice-based social network where users engage in live audio conversations on various topics.\",\n\t\tbaseUrls: [\"https://www.clubhouse.com\"],\n\t\tprofileUrl: \"https://www.clubhouse.com/:user_id\",\n\t\tapproximateUserSize: 1e7\n\t},\n\t{\n\t\tname: \"Discord\",\n\t\tdescription: \"Originally aimed at gamers, Discord is now widely used by various communities for group chat, video, and voice calls.\",\n\t\tbaseUrls: [\"https://www.discord.com\", \"https://discord.com\"],\n\t\tprofileUrl: \"https://discord.com/users/:user_id\",\n\t\tapproximateUserSize: 3e8\n\t}\n];\n\n//#endregion\n//#region ../constants/src/Tailwind.ts\nconst TW_HUE_NEUTRAL = {\n\tslate: 262,\n\tgray: 270,\n\tzinc: 269,\n\tneutral: 270,\n\tstone: 273\n};\nconst TW_HUE_VIBRANT = {\n\tred: 24,\n\torange: 44,\n\tamber: 79,\n\tyellow: 100,\n\tlime: 132,\n\tgreen: 144,\n\temerald: 159,\n\tteal: 182,\n\tcyan: 192,\n\tsky: 219,\n\tblue: 240,\n\tindigo: 268,\n\tviolet: 283,\n\tpurple: 294,\n\tfuchsia: 319,\n\tpink: 334,\n\trose: 15\n};\nconst TW_HUE_STATIC = {\n\tblack: 0,\n\twhite: 106.37411429114086\n};\n/**\n* **TW_COLOR_HUE**\n*\n* The _hue_ values for [TailwindCSS](https://tailwindcss.com/docs/customizing-colors)\n* when moved into the **oklch** color space.\n*/\nconst TW_HUE = {\n\t...TW_HUE_NEUTRAL,\n\t...TW_HUE_VIBRANT,\n\t...TW_HUE_STATIC\n};\nconst TW_LUMINOSITY = {\n\t\"50\": 97.78,\n\t\"100\": 93.56,\n\t\"200\": 88.11,\n\t\"300\": 82.67,\n\t\"400\": 74.22,\n\t\"500\": 64.78,\n\t\"600\": 57.33,\n\t\"700\": 46.89,\n\t\"800\": 39.44,\n\t\"900\": 32,\n\t\"950\": 23.78\n};\nconst TW_LUMIN_50 = TW_LUMINOSITY[\"50\"];\nconst TW_LUMIN_100 = TW_LUMINOSITY[\"100\"];\nconst TW_LUMIN_200 = TW_LUMINOSITY[\"200\"];\nconst TW_LUMIN_300 = TW_LUMINOSITY[\"300\"];\nconst TW_LUMIN_400 = TW_LUMINOSITY[\"400\"];\nconst TW_LUMIN_500 = TW_LUMINOSITY[\"500\"];\nconst TW_LUMIN_600 = TW_LUMINOSITY[\"600\"];\nconst TW_LUMIN_700 = TW_LUMINOSITY[\"700\"];\nconst TW_LUMIN_800 = TW_LUMINOSITY[\"800\"];\nconst TW_LUMIN_900 = TW_LUMINOSITY[\"900\"];\nconst TW_LUMIN_950 = TW_LUMINOSITY[\"950\"];\n/**\n* **TW_CHROMA**\n*\n* The possible chroma values from Tailwind CSS when using\n* the **okhsl** color model.\n*\n* **Related:** `TW_CHROMA_50`, `TW_CHROMA_100`, ...\n*/\nconst TW_CHROMA = {\n\t\"50\": .0108,\n\t\"100\": .0321,\n\t\"200\": .0609,\n\t\"300\": .0908,\n\t\"400\": .1398,\n\t\"500\": .1472,\n\t\"600\": .1299,\n\t\"700\": .1067,\n\t\"800\": .0898,\n\t\"900\": .0726,\n\t\"950\": .054\n};\nconst TW_CHROMA_50 = TW_CHROMA[\"50\"];\nconst TW_CHROMA_100 = TW_CHROMA[\"100\"];\nconst TW_CHROMA_200 = TW_CHROMA[\"200\"];\nconst TW_CHROMA_300 = TW_CHROMA[\"300\"];\nconst TW_CHROMA_400 = TW_CHROMA[\"400\"];\nconst TW_CHROMA_500 = TW_CHROMA[\"500\"];\nconst TW_CHROMA_600 = TW_CHROMA[\"600\"];\nconst TW_CHROMA_700 = TW_CHROMA[\"700\"];\nconst TW_CHROMA_800 = TW_CHROMA[\"800\"];\nconst TW_CHROMA_900 = TW_CHROMA[\"900\"];\nconst TW_CHROMA_950 = TW_CHROMA[\"950\"];\n/**\n* The list of \"targets\" where Tailwind color string references\n* can be applied to. These domains are prefixes to the color string\n* when used (e.g., `bg-green-500`)\n*/\nconst TW_COLOR_TARGETS = [\n\t\"bg\",\n\t\"text\",\n\t\"border\",\n\t\"ring\",\n\t\"shadow\",\n\t\"border\"\n];\nconst TW_MODIFIERS_CORE = [\n\t\"dark\",\n\t\"focus\",\n\t\"hover\",\n\t\"active\",\n\t\"visited\",\n\t\"disabled\"\n];\nconst TW_MODIFIERS_ORDER = [\n\t\"first\",\n\t\"last\",\n\t\"odd\",\n\t\"even\"\n];\nconst TW_MODIFIERS_RELN = [\n\t\"focus-within\",\n\t\"focus-visible\",\n\t\"checked\",\n\t\"peer-invalid\",\n\t`peer-checked/{{string}}`\n];\n/**\n* The list of page size prefixes which Tailwind provides for adjusting to\n* device size. These are the defaults and can be customized.\n*/\nconst TW_MODIFIERS_SIZING = [\n\t\"sm\",\n\t\"md\",\n\t\"lg\",\n\t\"xl\",\n\t\"2xl\"\n];\n/**\n* The list of _modifiers_ which you can target as a prefix to a Tailwind\n* class (e.g., `focus:...`, `hover:...`).\n*/\nconst TW_MODIFIERS = [\n\t...TW_MODIFIERS_CORE,\n\t...TW_MODIFIERS_ORDER,\n\t...TW_MODIFIERS_SIZING,\n\t...TW_MODIFIERS_RELN\n];\n\n//#endregion\n//#region ../constants/src/Timezones.ts\nconst IANA_TIMEZONES__AFRICA = [\n\t\"Africa/Abidjan\",\n\t\"Africa/Accra\",\n\t\"Africa/Addis_Ababa\",\n\t\"Africa/Algiers\",\n\t\"Africa/Asmara\",\n\t\"Africa/Bamako\",\n\t\"Africa/Bangui\",\n\t\"Africa/Banjul\",\n\t\"Africa/Bissau\",\n\t\"Africa/Blantyre\",\n\t\"Africa/Brazzaville\",\n\t\"Africa/Bujumbura\",\n\t\"Africa/Cairo\",\n\t\"Africa/Casablanca\",\n\t\"Africa/Ceuta\",\n\t\"Africa/Conakry\",\n\t\"Africa/Dakar\",\n\t\"Africa/Dar_es_Salaam\",\n\t\"Africa/Djibouti\",\n\t\"Africa/Douala\",\n\t\"Africa/El_Aaiun\",\n\t\"Africa/Freetown\",\n\t\"Africa/Gaborone\",\n\t\"Africa/Harare\",\n\t\"Africa/Johannesburg\",\n\t\"Africa/Juba\",\n\t\"Africa/Kampala\",\n\t\"Africa/Khartoum\",\n\t\"Africa/Kigali\",\n\t\"Africa/Kinshasa\",\n\t\"Africa/Lagos\",\n\t\"Africa/Libreville\",\n\t\"Africa/Lome\",\n\t\"Africa/Luanda\",\n\t\"Africa/Lubumbashi\",\n\t\"Africa/Lusaka\",\n\t\"Africa/Malabo\",\n\t\"Africa/Maputo\",\n\t\"Africa/Maseru\",\n\t\"Africa/Mbabane\",\n\t\"Africa/Mogadishu\",\n\t\"Africa/Monrovia\",\n\t\"Africa/Nairobi\",\n\t\"Africa/Ndjamena\",\n\t\"Africa/Niamey\",\n\t\"Africa/Nouakchott\",\n\t\"Africa/Ouagadougou\",\n\t\"Africa/Porto-Novo\",\n\t\"Africa/Sao_Tome\",\n\t\"Africa/Tripoli\",\n\t\"Africa/Tunis\",\n\t\"Africa/Windhoek\"\n];\nconst IANA_TIMEZONES__AMERICA = [\n\t\"America/Adak\",\n\t\"America/Anchorage\",\n\t\"America/Anguilla\",\n\t\"America/Antigua\",\n\t\"America/Araguaina\",\n\t\"America/Argentina/Buenos_Aires\",\n\t\"America/Argentina/Catamarca\",\n\t\"America/Argentina/Cordoba\",\n\t\"America/Argentina/Jujuy\",\n\t\"America/Argentina/La_Rioja\",\n\t\"America/Argentina/Mendoza\",\n\t\"America/Argentina/Rio_Gallegos\",\n\t\"America/Argentina/Salta\",\n\t\"America/Argentina/San_Juan\",\n\t\"America/Argentina/San_Luis\",\n\t\"America/Argentina/Tucuman\",\n\t\"America/Argentina/Ushuaia\",\n\t\"America/Aruba\",\n\t\"America/Asuncion\",\n\t\"America/Atikokan\",\n\t\"America/Atka\",\n\t\"America/Bahia\",\n\t\"America/Bahia_Banderas\",\n\t\"America/Barbados\",\n\t\"America/Belem\",\n\t\"America/Belize\",\n\t\"America/Blanc-Sablon\",\n\t\"America/Boa_Vista\",\n\t\"America/Bogota\",\n\t\"America/Boise\",\n\t\"America/Cambridge_Bay\",\n\t\"America/Campo_Grande\",\n\t\"America/Cancun\",\n\t\"America/Caracas\",\n\t\"America/Cayenne\",\n\t\"America/Cayman\",\n\t\"America/Chicago\",\n\t\"America/Chihuahua\",\n\t\"America/Creston\",\n\t\"America/Cuiaba\",\n\t\"America/Curacao\",\n\t\"America/Danmarkshavn\",\n\t\"America/Dawson\",\n\t\"America/Dawson_Creek\",\n\t\"America/Denver\",\n\t\"America/Detroit\",\n\t\"America/Dominica\",\n\t\"America/Edmonton\",\n\t\"America/Eirunepe\",\n\t\"America/El_Salvador\",\n\t\"America/Fort_Nelson\",\n\t\"America/Fortaleza\",\n\t\"America/Glace_Bay\",\n\t\"America/Godthab\",\n\t\"America/Goose_Bay\",\n\t\"America/Grand_Turk\",\n\t\"America/Grenada\",\n\t\"America/Guadeloupe\",\n\t\"America/Guatemala\",\n\t\"America/Guayaquil\",\n\t\"America/Guyana\",\n\t\"America/Halifax\",\n\t\"America/Havana\",\n\t\"America/Hermosillo\",\n\t\"America/Indiana/Indianapolis\",\n\t\"America/Indiana/Knox\",\n\t\"America/Indiana/Marengo\",\n\t\"America/Indiana/Petersburg\",\n\t\"America/Indiana/Tell_City\",\n\t\"America/Indiana/Vevay\",\n\t\"America/Indiana/Vincennes\",\n\t\"America/Indiana/Winamac\",\n\t\"America/Inuvik\",\n\t\"America/Iqaluit\",\n\t\"America/Jamaica\",\n\t\"America/Juneau\",\n\t\"America/Kentucky/Louisville\",\n\t\"America/Kentucky/Monticello\",\n\t\"America/Kralendijk\",\n\t\"America/La_Paz\",\n\t\"America/Lima\",\n\t\"America/Los_Angeles\",\n\t\"America/Lower_Princes\",\n\t\"America/Maceio\",\n\t\"America/Managua\",\n\t\"America/Manaus\",\n\t\"America/Marigot\",\n\t\"America/Martinique\",\n\t\"America/Matamoros\",\n\t\"America/Mazatlan\",\n\t\"America/Menominee\",\n\t\"America/Merida\",\n\t\"America/Metlakatla\",\n\t\"America/Mexico_City\",\n\t\"America/Miquelon\",\n\t\"America/Moncton\",\n\t\"America/Monterrey\",\n\t\"America/Montevideo\",\n\t\"America/Montserrat\",\n\t\"America/Nassau\",\n\t\"America/New_York\",\n\t\"America/Nipigon\",\n\t\"America/Nome\",\n\t\"America/Noronha\",\n\t\"America/North_Dakota/Beulah\",\n\t\"America/North_Dakota/Center\",\n\t\"America/North_Dakota/New_Salem\",\n\t\"America/Ojinaga\",\n\t\"America/Panama\",\n\t\"America/Pangnirtung\",\n\t\"America/Paramaribo\",\n\t\"America/Phoenix\",\n\t\"America/Port-au-Prince\",\n\t\"America/Port_of_Spain\",\n\t\"America/Porto_Velho\",\n\t\"America/Puerto_Rico\",\n\t\"America/Punta_Arenas\",\n\t\"America/Rainy_River\",\n\t\"America/Rankin_Inlet\",\n\t\"America/Recife\",\n\t\"America/Regina\",\n\t\"America/Resolute\",\n\t\"America/Rio_Branco\",\n\t\"America/Santarem\",\n\t\"America/Santiago\",\n\t\"America/Santo_Domingo\",\n\t\"America/Sao_Paulo\",\n\t\"America/Scoresbysund\",\n\t\"America/Sitka\",\n\t\"America/St_Barthelemy\",\n\t\"America/St_Johns\",\n\t\"America/St_Kitts\",\n\t\"America/St_Lucia\",\n\t\"America/St_Thomas\",\n\t\"America/St_Vincent\",\n\t\"America/Swift_Current\",\n\t\"America/Tegucigalpa\",\n\t\"America/Thule\",\n\t\"America/Thunder_Bay\",\n\t\"America/Tijuana\",\n\t\"America/Toronto\",\n\t\"America/Tortola\",\n\t\"America/Vancouver\",\n\t\"America/Whitehorse\",\n\t\"America/Winnipeg\",\n\t\"America/Yakutat\",\n\t\"America/Yellowknife\"\n];\nconst IANA_TIMEZONES__ANTARCTICA = [\n\t\"Antarctica/Casey\",\n\t\"Antarctica/Davis\",\n\t\"Antarctica/DumontDUrville\",\n\t\"Antarctica/Macquarie\",\n\t\"Antarctica/Mawson\",\n\t\"Antarctica/McMurdo\",\n\t\"Antarctica/Palmer\",\n\t\"Antarctica/Rothera\",\n\t\"Antarctica/South_Pole\",\n\t\"Antarctica/Syowa\",\n\t\"Antarctica/Troll\",\n\t\"Antarctica/Vostok\",\n\t\"Arctic/Longyearbyen\"\n];\nconst IANA_TIMEZONES__ASIA = [\n\t\"Asia/Almaty\",\n\t\"Asia/Amman\",\n\t\"Asia/Anadyr\",\n\t\"Asia/Aqtau\",\n\t\"Asia/Aqtobe\",\n\t\"Asia/Ashgabat\",\n\t\"Asia/Atyrau\",\n\t\"Asia/Baghdad\",\n\t\"Asia/Baku\",\n\t\"Asia/Bangkok\",\n\t\"Asia/Barnaul\",\n\t\"Asia/Beirut\",\n\t\"Asia/Bishkek\",\n\t\"Asia/Brunei\",\n\t\"Asia/Chita\",\n\t\"Asia/Choibalsan\",\n\t\"Asia/Colombo\",\n\t\"Asia/Damascus\",\n\t\"Asia/Dhaka\",\n\t\"Asia/Dili\",\n\t\"Asia/Dubai\",\n\t\"Asia/Dushanbe\",\n\t\"Asia/Famagusta\",\n\t\"Asia/Gaza\",\n\t\"Asia/Hebron\",\n\t\"Asia/Ho_Chi_Minh\",\n\t\"Asia/Hong_Kong\",\n\t\"Asia/Hovd\",\n\t\"Asia/Irkutsk\",\n\t\"Asia/Jakarta\",\n\t\"Asia/Jayapura\",\n\t\"Asia/Jerusalem\",\n\t\"Asia/Kabul\",\n\t\"Asia/Kamchatka\",\n\t\"Asia/Karachi\",\n\t\"Asia/Kathmandu\",\n\t\"Asia/Khandyga\",\n\t\"Asia/Kolkata\",\n\t\"Asia/Krasnoyarsk\",\n\t\"Asia/Kuala_Lumpur\",\n\t\"Asia/Kuching\",\n\t\"Asia/Kuwait\",\n\t\"Asia/Macau\",\n\t\"Asia/Magadan\",\n\t\"Asia/Makassar\",\n\t\"Asia/Manila\",\n\t\"Asia/Muscat\",\n\t\"Asia/Nicosia\",\n\t\"Asia/Novokuznetsk\",\n\t\"Asia/Novosibirsk\",\n\t\"Asia/Omsk\",\n\t\"Asia/Oral\",\n\t\"Asia/Phnom_Penh\",\n\t\"Asia/Pontianak\",\n\t\"Asia/Pyongyang\",\n\t\"Asia/Qatar\",\n\t\"Asia/Qostanay\",\n\t\"Asia/Qyzylorda\",\n\t\"Asia/Riyadh\",\n\t\"Asia/Sakhalin\",\n\t\"Asia/Samarkand\",\n\t\"Asia/Seoul\",\n\t\"Asia/Shanghai\",\n\t\"Asia/Singapore\",\n\t\"Asia/Srednekolymsk\",\n\t\"Asia/Taipei\",\n\t\"Asia/Tashkent\",\n\t\"Asia/Tbilisi\",\n\t\"Asia/Tehran\",\n\t\"Asia/Thimphu\",\n\t\"Asia/Tokyo\",\n\t\"Asia/Tomsk\",\n\t\"Asia/Ulaanbaatar\",\n\t\"Asia/Urumqi\",\n\t\"Asia/Ust-Nera\",\n\t\"Asia/Vientiane\",\n\t\"Asia/Vladivostok\",\n\t\"Asia/Yakutsk\",\n\t\"Asia/Yangon\",\n\t\"Asia/Yekaterinburg\",\n\t\"Asia/Yerevan\"\n];\nconst IANA_TIMEZONES__ATLANTIC = [\n\t\"Atlantic/Azores\",\n\t\"Atlantic/Bermuda\",\n\t\"Atlantic/Canary\",\n\t\"Atlantic/Cape_Verde\",\n\t\"Atlantic/Faroe\",\n\t\"Atlantic/Madeira\",\n\t\"Atlantic/Reykjavik\",\n\t\"Atlantic/South_Georgia\",\n\t\"Atlantic/St_Helena\",\n\t\"Atlantic/Stanley\"\n];\nconst IANA_TIMEZONES__AUSTRALIA = [\n\t\"Australia/Adelaide\",\n\t\"Australia/Brisbane\",\n\t\"Australia/Broken_Hill\",\n\t\"Australia/Currie\",\n\t\"Australia/Darwin\",\n\t\"Australia/Eucla\",\n\t\"Australia/Hobart\",\n\t\"Australia/Lindeman\",\n\t\"Australia/Lord_Howe\",\n\t\"Australia/Melbourne\",\n\t\"Australia/Perth\",\n\t\"Australia/Sydney\"\n];\nconst IANA_TIMEZONES__EUROPE = [\n\t\"Europe/Amsterdam\",\n\t\"Europe/Andorra\",\n\t\"Europe/Astrakhan\",\n\t\"Europe/Athens\",\n\t\"Europe/Belgrade\",\n\t\"Europe/Berlin\",\n\t\"Europe/Brussels\",\n\t\"Europe/Bucharest\",\n\t\"Europe/Budapest\",\n\t\"Europe/Chisinau\",\n\t\"Europe/Copenhagen\",\n\t\"Europe/Dublin\",\n\t\"Europe/Gibraltar\",\n\t\"Europe/Guernsey\",\n\t\"Europe/Helsinki\",\n\t\"Europe/Isle_of_Man\",\n\t\"Europe/Istanbul\",\n\t\"Europe/Jersey\",\n\t\"Europe/Kaliningrad\",\n\t\"Europe/Kiev\",\n\t\"Europe/Kirov\",\n\t\"Europe/Lisbon\",\n\t\"Europe/Ljubljana\",\n\t\"Europe/London\",\n\t\"Europe/Luxembourg\",\n\t\"Europe/Madrid\",\n\t\"Europe/Malta\",\n\t\"Europe/Mariehamn\",\n\t\"Europe/Minsk\",\n\t\"Europe/Monaco\",\n\t\"Europe/Moscow\",\n\t\"Europe/Oslo\",\n\t\"Europe/Paris\",\n\t\"Europe/Podgorica\",\n\t\"Europe/Prague\",\n\t\"Europe/Riga\",\n\t\"Europe/Rome\",\n\t\"Europe/Samara\",\n\t\"Europe/San_Marino\",\n\t\"Europe/Sarajevo\",\n\t\"Europe/Simferopol\",\n\t\"Europe/Skopje\",\n\t\"Europe/Sofia\",\n\t\"Europe/Stockholm\",\n\t\"Europe/Tallinn\",\n\t\"Europe/Tirane\",\n\t\"Europe/Ulyanovsk\",\n\t\"Europe/Uzhgorod\",\n\t\"Europe/Vaduz\",\n\t\"Europe/Vatican\",\n\t\"Europe/Vienna\",\n\t\"Europe/Vilnius\",\n\t\"Europe/Volgograd\",\n\t\"Europe/Warsaw\",\n\t\"Europe/Zagreb\",\n\t\"Europe/Zaporozhye\",\n\t\"Europe/Zurich\"\n];\nconst IANA_TIMEZONES__INDIAN = [\n\t\"Indian/Antananarivo\",\n\t\"Indian/Chagos\",\n\t\"Indian/Christmas\",\n\t\"Indian/Cocos\",\n\t\"Indian/Comoro\",\n\t\"Indian/Kerguelen\",\n\t\"Indian/Mahe\",\n\t\"Indian/Maldives\",\n\t\"Indian/Mauritius\",\n\t\"Indian/Mayotte\",\n\t\"Indian/Reunion\"\n];\nconst IANA_TIMEZONES__PACIFIC = [\n\t\"Pacific/Apia\",\n\t\"Pacific/Auckland\",\n\t\"Pacific/Bougainville\",\n\t\"Pacific/Chatham\",\n\t\"Pacific/Chuuk\",\n\t\"Pacific/Easter\",\n\t\"Pacific/Efate\",\n\t\"Pacific/Enderbury\",\n\t\"Pacific/Fakaofo\",\n\t\"Pacific/Fiji\",\n\t\"Pacific/Funafuti\",\n\t\"Pacific/Galapagos\",\n\t\"Pacific/Gambier\",\n\t\"Pacific/Guadalcanal\",\n\t\"Pacific/Guam\",\n\t\"Pacific/Honolulu\",\n\t\"Pacific/Kiritimati\",\n\t\"Pacific/Kosrae\",\n\t\"Pacific/Kwajalein\",\n\t\"Pacific/Majuro\",\n\t\"Pacific/Marquesas\",\n\t\"Pacific/Midway\",\n\t\"Pacific/Nauru\",\n\t\"Pacific/Niue\",\n\t\"Pacific/Norfolk\",\n\t\"Pacific/Noumea\",\n\t\"Pacific/Pago_Pago\",\n\t\"Pacific/Palau\",\n\t\"Pacific/Pitcairn\",\n\t\"Pacific/Pohnpei\",\n\t\"Pacific/Port_Moresby\",\n\t\"Pacific/Rarotonga\",\n\t\"Pacific/Saipan\",\n\t\"Pacific/Tahiti\",\n\t\"Pacific/Tarawa\",\n\t\"Pacific/Tongatapu\",\n\t\"Pacific/Wake\",\n\t\"Pacific/Wallis\"\n];\nconst IANA_TIMEZONES__OTHER = [\"UTC\", \"Zulu\"];\nconst IANA_TIMEZONES = [\n\t...IANA_TIMEZONES__AFRICA,\n\t...IANA_TIMEZONES__AMERICA,\n\t...IANA_TIMEZONES__ANTARCTICA,\n\t...IANA_TIMEZONES__ASIA,\n\t...IANA_TIMEZONES__ATLANTIC,\n\t...IANA_TIMEZONES__AUSTRALIA,\n\t...IANA_TIMEZONES__EUROPE,\n\t...IANA_TIMEZONES__INDIAN,\n\t...IANA_TIMEZONES__OTHER,\n\t...IANA_TIMEZONES__PACIFIC\n];\n\n//#endregion\n//#region ../constants/src/TypeComparisons.ts\n/**\n* **wide**\n*\n* Provides a dictionary of _wide_ types; in most cases you should\n* prefer the **kind** API.\n*/\nconst WideAssignment = {\n\tboolean: () => \"<<boolean>>\",\n\tstring: () => \"<<string>>\",\n\tnumber: () => \"<<number>>\",\n\tsymbol: () => \"<<symbol>>\",\n\tnull: () => \"<<null>>\",\n\tfunction: () => \"<<function>>\",\n\ttuple: () => \"<<tuple>>\",\n\tsingularTuple: () => [\"<<tuple>>\"],\n\tobject: () => \"<<object>>\",\n\temptyObject: () => \"<<empty-object>>\",\n\tundefined: () => \"<<undefined>>\",\n\tunknown: () => \"<<unknown>>\",\n\tnothing: () => \"<<nothing>>\",\n\tsomething: () => \"<<something>>\"\n};\nconst wide = WideAssignment;\nfunction entry(refType, desc, ...params) {\n\treturn [\n\t\trefType(wide),\n\t\tdesc,\n\t\tparams.map((i) => typeof i === \"function\" ? i(wide) : i)\n\t];\n}\n/**\n* **TYPE_COMPARISONS**\n*\n* A dictionary of all _comparison_ operations along with their `RefType`, description,\n* and `Params`.\n*/\nconst TYPE_COMPARISONS = {\n\tExtends: entry((t) => t.unknown(), \"extends the type\", (t) => t.unknown()),\n\tNotExtends: entry((t) => t.unknown(), \"does not extent the type\", (t) => t.unknown()),\n\tEquals: entry((t) => t.unknown(), \"equals the type\", (t) => t.unknown()),\n\tNotEqual: entry((t) => t.unknown(), \"does not equal the type\", (t) => t.unknown()),\n\tTruthy: entry((t) => t.unknown(), \"must be a truthy value\"),\n\tFalsy: entry((t) => t.unknown(), \"must be a falsy value\"),\n\tIsSomething: entry((t) => t.unknown(), \"must be 'something' (aka, not null or undefined)\"),\n\tIsNothing: entry((t) => t.unknown(), \"must be 'nothing' (aka, null or undefined)\"),\n\tIsString: entry((t) => t.string(), \"must extend a string type\"),\n\tIsNumber: entry((t) => t.number(), \"must extend a number type\"),\n\tIsBoolean: entry((t) => t.boolean(), \"must extend a boolean type\"),\n\tGreaterThan: entry((t) => t.number(), \"must be a numeric literal greater than [[0]]\", (t) => t.number()),\n\tLessThan: entry((t) => t.number(), \"must be a numeric literal less than [[0]]\", (t) => t.number()),\n\tStartsWith: entry((t) => t.string(), \"must be a string literal that starts with '[[0]]'\", (t) => t.string()),\n\tEndsWith: entry((t) => t.string(), \"must be a string literal that ends with '[[0]]'\", (t) => t.string()),\n\tIncludes: entry((t) => t.string(), \"must be a string literal that includes the substring '[[0]]'\", (t) => t.string()),\n\tReturnsSomething: entry((t) => t.function(), \"must be a function which returns 'something' (aka, not null or undefined)\"),\n\tReturnsNothing: entry((t) => t.function(), \"must be a function which returns 'nothing' (aka, null or undefined)\"),\n\tReturnsTrue: entry((t) => t.function(), \"must be a function which returns 'true'\"),\n\tReturnsFalse: entry((t) => t.function(), \"must be a function which returns 'false'\"),\n\tReturnsTruthy: entry((t) => t.function(), \"must be a function which returns a 'truthy' value\"),\n\tReturnsFalsy: entry((t) => t.function(), \"must be a function which returns a 'falsy' value\"),\n\tReturnsExtends: entry((t) => t.unknown(), \"must be a function which returns a value which extends [[0]]\", (t) => t.unknown()),\n\tReturnsEquals: entry((t) => t.unknown(), \"must be a function which returns a value which equals [[0]]\", (t) => t.unknown()),\n\tContains: entry((t) => t.tuple(), \"must be a tuple and have elements that extends the value [[0]]\", (t) => t.unknown()),\n\tContainsSome: entry((t) => t.tuple(), \"must be a tuple and have elements that extends the value [[0]]\", (t) => t.singularTuple())\n};\n\n//#endregion\n//#region ../constants/src/Types.ts\nconst FALSY_TYPE_KINDS = [\"undefined\", \"null\"];\nconst LITERAL_TYPE_KINDS = [\n\t\"true\",\n\t\"false\",\n\t\"stringLiteral\",\n\t\"numericLiteral\"\n];\nconst WIDE_TYPE_KINDS = [\n\t\"string\",\n\t\"number\",\n\t\"boolean\"\n];\nconst NARROW_CONTAINER_TYPE_KINDS = [\n\t\"object\",\n\t\"explicitFunctions\",\n\t\"fnType\",\n\t\"fnWithDict\",\n\t\"tuple\",\n\t\"union\",\n\t\"intersection\",\n\t\"arrayOf\"\n];\nconst WIDE_CONTAINER_TYPE_KINDS = [\n\t\"anyArray\",\n\t\"anyObject\",\n\t\"unknownObject\",\n\t\"anyFunction\",\n\t\"emptyObject\"\n];\n/**\n* A full list of the _types_ of types we have within the `Type` namespace.\n*/\nconst TYPE_KINDS = [\n\t...FALSY_TYPE_KINDS,\n\t...WIDE_TYPE_KINDS,\n\t...LITERAL_TYPE_KINDS,\n\t...NARROW_CONTAINER_TYPE_KINDS,\n\t...WIDE_CONTAINER_TYPE_KINDS\n];\n\n//#endregion\n//#region ../constants/src/TypeTokens.ts\n/**\n* **Type Tokens** which have zero configuration elements.\n*/\nconst TT_ATOMICS = [\n\t\"undefined\",\n\t\"null\",\n\t\"boolean\",\n\t\"true\",\n\t\"false\"\n];\n/**\n* **Type Tokens** which have a literal variant which represents\n* the _single_ configuration of this type which is available.\n*/\nconst TT_SINGLETONS = [\"string\", \"number\"];\nconst TT_SETS = [\n\t\"string-set\",\n\t\"numeric-set\",\n\t\"fn-set\",\n\t\"union-set\"\n];\n/**\n* **Type Tokens** which represent _functions_ (either the typical\n* variety or Generator functions).\n*/\nconst TT_FUNCTIONS = [\"fn\", \"gen\"];\n/**\n* **Type Tokens** which _contain_ other **Type Tokens** to make up their\n* identity.\n*/\nconst TT_CONTAINERS = [\n\t\"rec\",\n\t\"arr\",\n\t\"set\",\n\t\"map\",\n\t\"union\",\n\t\"obj\",\n\t\"tuple\"\n];\nconst TT_KIND_VARIANTS = [\n\t...TT_ATOMICS,\n\t...TT_CONTAINERS,\n\t...TT_FUNCTIONS,\n\t...TT_SETS,\n\t...TT_SINGLETONS\n];\n\n//#endregion\n//#region src/boolean-logic/ifChar.ts\nconst def_if = (v) => v;\nconst def_else = () => Never;\nfunction ifChar(ch, callback_if_match = def_if, callback_not_match = def_else) {\n\treturn ch.length === 1 ? callback_if_match(ch) : callback_not_match(ch);\n}\n\n//#endregion\n//#region src/boolean-logic/ifContainer.ts\nfunction ifContainer(value, ifContainer$1, notContainer) {\n\treturn isDictionary(value) || isArray(value) ? ifContainer$1(value) : notContainer(value);\n}\n\n//#endregion\n//#region src/boolean-logic/ifEmpty.ts\n/**\n* **ifEmpty(val, empty, notEmpty)**\n*\n* A boolean branching operator\n*/\nfunction ifEmpty(val, empty, notEmpty) {\n\treturn isEmpty(val) ? empty : notEmpty;\n}\n\n//#endregion\n//#region src/boolean-logic/ifEqual.ts\nfunction ifEqual(comparator) {\n\treturn (val, ifTrue$1, ifFalse$1 = (v) => v) => {\n\t\tif (JSON.stringify(comparator) === JSON.stringify(val)) return ifTrue$1(val);\n\t\telse return ifFalse$1(val);\n\t};\n}\n\n//#endregion\n//#region src/boolean-logic/ifError.ts\n/**\n* **ifError(val, wasError, wasNotError)**\n*\n* A boolean branching operator\n*/\nfunction ifError(val, wasError, wasNotError) {\n\treturn isError(val) ? wasError : wasNotError;\n}\n\n//#endregion\n//#region src/boolean-logic/ifFalse.ts\n/**\n* **ifTrue**\n*\n* Strongly type-aware conditional statement which checks whether a value is\n* a _true_ and returns one of two values (strongly typed) based on the evaluation\n* of this criteria.\n*\n* @param val the value being tested\n* @param ifVal the value (strongly typed) returned if val is _true_ value\n* @param elseVal the value (strongly typed) returned if val is NOT a _true_ value\n*\n* Note: at runtime there's no way to distinguish if the value was widely or loosely\n* typed so unlike the type utility there is no \"MAYBE\" state but if a wide type if\n* encountered the _type_ will the union of `IF` and `ELSE`.\n*/\nfunction ifFalse(val, ifVal, elseVal) {\n\treturn isFalse(val) ? ifVal : elseVal;\n}\n\n//#endregion\n//#region src/boolean-logic/ifFunction.ts\n/**\n* **ifFunction**(value, isFn, notFn)\n*\n* Runtime utility which assesses whether `value` is a function and provides\n* two callback hooks for both outcome.\n*\n* **Related:** `isFunction`\n*/\nfunction ifFunction(value, isFnCallback, notFnCallback) {\n\treturn isFunction(value) ? isFnCallback(value) : notFnCallback(value);\n}\n\n//#endregion\n//#region src/boolean-logic/ifHasKey.ts\nfunction ifHasKey(container, key, hasKey, doesNotHaveKey) {\n\treturn hasIndexOf(container, key) ? hasKey(container) : doesNotHaveKey(container);\n}\n\n//#endregion\n//#region src/boolean-logic/ifLength.ts\n/**\n* **ifLength**(val,length, ifVal, elseVal)\n*\n* Runtime utility which tests whether the `value` passed in is both an array/tuple\n* and that it's length is equal to `length`. It then provides two callbacks with\n* narrowed types for these two conditions.\n*\n* @param value the value being tested\n* @param length\n* @param ifVal the value (strongly typed) returned if val is of appropriate length\n* @param elseVal the value (strongly typed) returned if val is NOT of given length\n*/\nfunction ifLength(value, length, ifVal, elseVal) {\n\treturn Array.isArray(value) && value.length === length ? ifVal(value) : elseVal(value);\n}\n\n//#endregion\n//#region src/boolean-logic/ifNotNull.ts\n/**\n* **ifNotNull**(val,IF,ELSE)\n*\n* Strongly type-aware conditional statement which checks whether a value is\n* Null and returns one of two values (strongly typed) based on the evaluation\n* of this criteria.\n*\n* @param val the value being tested\n* @param ifVal callback fn which responds when _val_ is **null**\n* @param elseVal callback fn which responds when _val_ is not **null**\n*/\nfunction ifNotNull(val, ifVal, elseVal) {\n\treturn isNull(val) ? elseVal() : ifVal(val);\n}\n\n//#endregion\n//#region src/boolean-logic/ifNull.ts\n/**\n* **ifNull**(val,IF,ELSE)\n*\n* Strongly type-aware conditional statement which checks whether a value is\n* Null and returns one of two values (strongly typed) based on the evaluation\n* of this criteria.\n*\n* @param val the value being tested\n* @param ifVal callback fn which responds when _val_ is **null**\n* @param elseVal callback fn which responds when _val_ is not **null**\n*/\nfunction ifNull(val, ifVal, elseVal) {\n\treturn isNull(val) ? ifVal() : elseVal(val);\n}\n\n//#endregion\n//#region src/boolean-logic/ifNumber.ts\n/**\n* **ifNumber**(val, ifVal, elseVal)\n*\n* Strongly type-aware conditional statement which checks whether a value is\n* a _number_ and returns one of two values (strongly typed) based on the evaluation\n* of this criteria.\n*\n* @param val the value being tested\n* @param ifVal the value (strongly typed) returned if val is number\n* @param elseVal the value (strongly typed) returned if val is NOT a number\n*/\nfunction ifNumber(val, ifVal, elseVal) {\n\treturn isNumber(val) ? ifVal(val) : elseVal(val);\n}\n\n//#endregion\n//#region src/boolean-logic/ifObject.ts\nfunction ifObject(val, ifObj, notObj) {\n\treturn isDictionary(val) ? ifObj : notObj;\n}\n\n//#endregion\n//#region src/boolean-logic/ifSameType.ts\n/**\n* **ifSameType**(value, comparator, same, notSame)\n*\n* Runtime utility function which compares the variable `value` to a comparison type\n* and based on whether they are the same type, it will call one of the two provided\n* callback functions: `same` or `notSame`.\n*/\nfunction ifSameType(value, comparator, same, notSame) {\n\treturn typeof value === typeof comparator ? same(value) : notSame(value);\n}\n\n//#endregion\n//#region src/boolean-logic/ifScalar.ts\n/**\n* **ifScalar**(value, ifCallback, notCallback)\n*\n* A runtime utility which branches based on whether\n* the type is a `T` is a _scalar_ value or not.\n*\n* - each branch is provided an _optional_ callback to further\n* refine the type.\n* ```ts\n* const val: number | string = 42;\n* const narrow = ifScalar(val);\n* ```\n*/\nfunction ifScalar(value, ifCallback, notCallback) {\n\tconst result$1 = isScalar(value) ? ifCallback(value) : notCallback(value);\n\treturn result$1;\n}\n\n//#endregion\n//#region src/boolean-logic/ifString.ts\n/**\n* **ifString**\n*\n* Strongly type-aware conditional statement which checks whether a value is\n* a _string_ and returns one of two values (strongly typed) based on the evaluation\n* of this criteria.\n*\n* @param val the value being tested for being a string\n* @param ifVal the value (strongly typed) returned if val is _string_\n* @param elseVal the value (strongly typed) returned if val is NOT a _string\n*/\nfunction ifString(val, ifVal, elseVal) {\n\treturn typeof val === \"string\" ? ifVal(val) : elseVal(val);\n}\n\n//#endregion\n//#region src/boolean-logic/ifTrue.ts\n/**\n* **ifTrue**\n*\n* Strongly type-aware conditional statement which checks whether a value is\n* _true_. Valid outcomes are:\n*\n* - **IF** - returned when T is narrowly typed as `true`\n* - **ELSE** - returned when T is narrowly typed as `false`\n* - **IF | ELSE** - returned when T is a `boolean` type\n*/\nfunction ifTrue(val, ifVal, elseVal) {\n\treturn isTrue(val) ? ifVal(val) : elseVal(val);\n}\n\n//#endregion\n//#region src/boolean-logic/ifUndefined.ts\n/**\n* **ifUndefined**\n*\n* Strongly type-aware conditional statement which checks whether a value is\n* _undefined_ and returns one of two values (strongly typed) based on the evaluation\n* of this criteria.\n*\n* @param val the value being tested\n* @param ifUndefined the value (strongly typed) returned if val is `undefined`\n* @param ifDefined the value (strongly typed) returned if val is NOT `undefined`\n*/\nfunction ifUndefined(val, ifUndefined$1, ifDefined$1) {\n\treturn isUndefined(val) ? ifUndefined$1() : ifDefined$1(val);\n}\nfunction ifDefined(val, ifVal, elseVal) {\n\treturn isDefined(val) ? ifVal : elseVal;\n}\n\n//#endregion\n//#region src/type-guards/api-tg.ts\nfunction isEscapeFunction(val) {\n\treturn isFunction(val) && \"escape\" in val && val.escape === true;\n}\n/**\n* **isOptionalParamFunction**`(val)`\n*\n* A type guard which ensures that the value passed in is not only a _function_\n* but also has the `optionalParam` value set to **true** indicating that it\n* is safe to be called _without_ parameters.\n*\n* **Note:** this is similar to an \"escape function\" but whereas an API can\n* only have one escape function, an API may have as many ze\n*/\nfunction isOptionalParamFunction(val) {\n\treturn isFunction(val) && \"optionalParams\" in val && val.optionalParams === true;\n}\n/**\n* **isApi**`(val)`\n*\n* Type guard which validates that the value passed in is an `Api` type\n* with \"surface\" and \"_kind\" property.\n*\n* **Related:** `isFluentApi()`\n*/\nfunction isApi(api$1) {\n\treturn isDictionary(api$1) && \"surface\" in api$1 && \"_kind\" in api$1 && api$1._kind === \"api\";\n}\n/**\n* **isApiSurface**`(val)`\n*\n* A type guard which tests whether the value passed in is the SurfaceArea\n* of an API (or could be).\n*/\nfunction isApiSurface(val) {\n\treturn isDictionary(val) && Object.keys(val).some((k) => isEscapeFunction(val[k]));\n}\n\n//#endregion\n//#region src/type-guards/arrays/isArray.ts\n/**\n* **isArray**(value)\n*\n* Type guard to detect if the type is an array (readonly or regular)\n*/\nfunction isArray(value) {\n\treturn Array.isArray(value) === true;\n}\n/**\n* **isBooleanArray**(value)\n*\n* Type guard to detect if the type is an array of strings (readonly or regular)\n*/\nfunction isBooleanArray(value) {\n\treturn isArray(value) && value.every((i) => isBoolean(i));\n}\n\n//#endregion\n//#region src/type-guards/arrays/isNarrowableArray.ts\nfunction isNarrowableArray(val) {\n\treturn isArray(val) && val.every((i) => isString(i) || isNumber(i) || isDictionary(i) || isNull(i) || isUndefined(i) || isBoolean(i) || typeof i === \"symbol\");\n}\n\n//#endregion\n//#region src/type-guards/arrays/isReadonlyArray.ts\n/**\n* **isReadonlyArray**(value)\n*\n* Type guard to detect if the type is an array (readonly).\n*\n* Note: at runtime we can't discern between a readonly array\n* and a normal one. If author is aware, however, that an array\n* indicates a readonly array then this type-guard will resolve\n* to a cleaner type.\n*/\nfunction isReadonlyArray(value) {\n\treturn Array.isArray(value) === true;\n}\n\n//#endregion\n//#region src/type-guards/arrays/isStringArray.ts\n/**\n* Type guard which validates that the passed in `val` is a string array.\n*/\nfunction isStringArray(val) {\n\treturn Array.isArray(val) && val.every((i) => isString(i));\n}\n\n//#endregion\n//#region src/type-guards/arrays/isStringOrNumericArray.ts\n/**\n* Type guard which validates that the passed in `val` is an array of\n* string or numeric values.\n*/\nfunction isStringOrNumericArray(val) {\n\treturn Array.isArray(val) && val.every((i) => isString(i) || isNumber(i));\n}\n\n//#endregion\n//#region src/type-guards/comparison/isComparisonOperation.ts\n/**\n* Type guard which checks whether `op` is a `ComparisonOperation`.\n*/\nfunction isComparisonOperation(op) {\n\treturn isString(op) && Object.values(COMPARISON_OPERATIONS).includes(op);\n}\n\n//#endregion\n//#region src/type-guards/comparison/isValidComparisionParams.ts\n/**\n* **isValidComparisonParams**`(op, params)`\n*\n* Type guard that validates the parameters passed in are valid for the given\n* operation.\n*/\nfunction isValidComparisonParams(op, params) {\n\treturn !!isComparisonOperation(op);\n}\n\n//#endregion\n//#region src/type-guards/css/isNamedColor.ts\n/**\n* **isNamedColor**`(val) -> is CssNamedColor`\n*\n* Typeguard to validate that `val` is a CSS/HTML Named Color.\n*\n* - to match you must make sure the string name is lowercase\n*/\nfunction isNamedColor(val) {\n\treturn isString(val) && CSS_NAMED_COLORS.includes(val);\n}\n\n//#endregion\n//#region src/type-guards/css/isRgbColor.ts\n/**\n* **isRgbColor**`(val) -> is RgbColor`\n*\n* Typeguard that validates that `val` is a valid RbgColor (e.g.,\n* `rgb(127,0,0)`)\n*/\nfunction isRgbColor(val) {\n\treturn isString(val) && val.startsWith(\"rgb(\") && val.endsWith(\")\");\n}\n\n//#endregion\n//#region src/type-guards/datetime/isDate.ts\n/**\n* A type guard which validates whether the passed in value is a JavaScript Date object.\n*/\nfunction isDate(val) {\n\treturn val instanceof Date;\n}\n\n//#endregion\n//#region src/type-guards/datetime/isDateLike.ts\n/**\n* A type guard which checks if `val` is _date like_:\n*\n* - a number (or `NumberLike`) and therefore assumed to be an Epoch timestamp\n* - a string in the shape of the ISO 8601 specification\n* - an object in the shape of:\n* - Javascript Date object\n* - DateFNS Date object\n* - MomentJS Date object\n* - Luxon Date object\n*/\nfunction isDateLike(val) {\n\treturn isNumber(val) && isInteger(val) && val > 0 || isString(val) && (isIsoDate(val) || isIsoDateTime(val)) || isDate(val) || isMoment(val) || isLuxonDate(val) || isTemporalDate(val);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isDateMeta.ts\n/**\n* type guard which validates that `val` is the type `DateMeta`.\n*/\nfunction isDateMeta(val) {\n\treturn isDictionary(val) && \"dateType\" in val && DATE_TYPE.includes(val.dateType);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isDateTime.ts\n/**\n* Type guard which validates that `val` is a valid ISO8601 DateTime string.\n*\n* Valid forms include:\n* - `2024-01-01T00:00:00Z` (UTC/Zulu time)\n* - `2024-01-01T00:00:00+00:00` (Explicit timezone offset)\n* - `2024-01-01T00:00:00-00:00` (Explicit timezone offset)\n* - `2024-01-01T00:00:00.000Z` (With milliseconds, UTC)\n* - `2024-01-01T00:00:00.000+00:00` (With milliseconds, offset)\n* - `2024-01-01T00:00` (Minutes precision)\n* - `2024-01-01T00:00:00` (Seconds precision)\n*/\nfunction isIsoDateTime(val) {\n\tif (!isString(val)) return false;\n\tconst ISO_DATETIME_REGEX = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{1,3}))?)?(Z|[+-]\\d{2}:\\d{2})?$/;\n\tif (!ISO_DATETIME_REGEX.test(val)) return false;\n\tconst [_, ...matches] = val.match(ISO_DATETIME_REGEX) || [];\n\tconst [year, month, day, hours, minutes, seconds] = matches.map(Number);\n\tif (hours >= 24 || minutes >= 60 || seconds != null && seconds >= 60) return false;\n\tif (month < 1 || month > 12) return false;\n\tconst daysInMonth$1 = new Date(year, month, 0).getDate();\n\tif (day < 1 || day > daysInMonth$1) return false;\n\tconst tzMatch = val.match(/([+-])(\\d{2}):(\\d{2})$/);\n\tif (tzMatch) {\n\t\tconst [_$1, _sign, tzHours, tzMinutes] = tzMatch;\n\t\tconst numHours = Number.parseInt(tzHours, 10);\n\t\tconst numMinutes = Number.parseInt(tzMinutes, 10);\n\t\tif (numHours > 14 || numMinutes > 59) return false;\n\t\tif (numHours === 14 && numMinutes > 0) return false;\n\t}\n\treturn true;\n}\n\n//#endregion\n//#region src/type-guards/datetime/isDayJs.ts\n/**\n* Type guard to detect whether the `val` passed in is a `Day.js` date\n* object.\n*/\nfunction isDayJs(val) {\n\tif (isDictionary(val) && \"toDate\" in val && typeof val.toDate === \"function\" && \"subtract\" in val && \"utc\" in val) try {\n\t\treturn val.toDate() instanceof Date;\n\t} catch {\n\t\treturn false;\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region src/numeric/abs.ts\n/**\n* **abs**`(num) -> number`\n*\n* Get's the absolute value of `num` providing a literal type if possible.\n*/\nfunction abs(num) {\n\treturn num < 0 ? num * -1 : num;\n}\n\n//#endregion\n//#region src/numeric/add.ts\nfunction add(a, b) {\n\treturn isString(a) || isString(b) ? String(asNumber(a) + asNumber(b)) : asNumber(a) + asNumber(b);\n}\n\n//#endregion\n//#region src/numeric/asNumber.ts\n/**\n* **asNumber**`(val)`\n*\n* Converts `NumberLike` values to a number.\n*\n* - also handles numeric strings which have leading zeros\n*/\nfunction asNumber(val) {\n\treturn isString(val) ? Number(val) : val;\n}\n\n//#endregion\n//#region src/numeric/between.ts\n/**\n* **between**`(from, to, [scope]) -> (val) -> boolean`\n*\n* A higher-order function which builds boolean logic for\n* whether a numeric value passed in is _between_ the two\n* constraints established on the first call.\n*/\nfunction between(min, max, scope = \"exclusively\") {\n\treturn (val) => {\n\t\treturn scope === \"inclusively\" ? val >= min && val <= max : val > min && val < max;\n\t};\n}\n\n//#endregion\n//#region src/numeric/decrement.ts\n/**\n* **decrement**`(val)`\n*\n* Decrements a `NumberLike` value.\n*/\nfunction decrement(val) {\n\treturn isString(val) ? String(asNumber(val) - 1) : asNumber(val) - 1;\n}\n\n//#endregion\n//#region src/numeric/increment.ts\n/**\n* **increment**`(val)`\n*\n* Increments a `NumberLike` value.\n*/\nfunction increment(val) {\n\treturn isString(val) ? String(asNumber(val) + 1) : asNumber(val) + 1;\n}\n\n//#endregion\n//#region src/numeric/isGreaterThan.ts\n/**\n* **isGreaterThan**`(comparator) -> (val) -> boolean`\n*\n* Creates a type strong comparison as to whether the value `TVal` is\n* greater than the _comparator_ value.\n*/\nfunction isGreaterThan(comparator) {\n\treturn (val) => {\n\t\treturn val > comparator;\n\t};\n}\n\n//#endregion\n//#region src/numeric/isGreaterThanOrEqual.ts\n/**\n* **isGreaterThanOrEqual**`(comparator) -> (val) -> boolean`\n*\n* Creates a type strong comparison as to whether the value `TVal` is\n* greater than _or equal_ to the _comparator_ value.\n*/\nfunction isGreaterThanOrEqual(comparator) {\n\treturn (val) => {\n\t\treturn val >= comparator;\n\t};\n}\n\n//#endregion\n//#region src/numeric/isNegativeNumber.ts\n/**\n* Boolean operator which indicates whether the number passed\n* in is negative.\n*/\nfunction isNegativeNumber(num) {\n\treturn Number(num) < 0;\n}\n\n//#endregion\n//#region src/numeric/lessThan.ts\n/**\n* **lessThan**`(comparator) -> (val) -> boolean`\n*\n* Creates a type strong comparison as to whether the value `TVal` is\n* less than the _comparator_ value.\n*/\nfunction lessThan(comparator) {\n\treturn (val) => {\n\t\treturn val < comparator;\n\t};\n}\n\n//#endregion\n//#region src/numeric/lessThanOrEqual.ts\n/**\n* **lessThanOrEqual**`(comparator) -> (val) -> boolean`\n*\n* Creates a type strong comparison as to whether the value `TVal` is\n* less than or equal to the _comparator_ value.\n*/\nfunction lessThanOrEqual(comparator) {\n\treturn (val) => {\n\t\treturn val <= comparator;\n\t};\n}\n\n//#endregion\n//#region src/numeric/toInteger.ts\n/**\n* Converts the number `n` to a `Integer` type if\n* `n` _is_ an Integer, otherwise throws a `InvalidNumber` error.\n*/\nfunction toInteger(n) {\n\tif (!Number.isInteger(n)) {\n\t\tconst err$1 = new Error(`Non-floating point number passed to toInteger(${n})`);\n\t\terr$1.name = \"InvalidNumber\";\n\t\tthrow err$1;\n\t}\n\treturn n;\n}\n\n//#endregion\n//#region src/type-guards/datetime/isEpoch.ts\n/** the epoch timestamp (in seconds) for the date 2500-01-01 */\nconst EPOCH_2500 = 16725225600;\n/** the epoch timestamp (in milliseconds) for July 14th */\nconst EPOCH_1970_07_14 = 167616e5;\n/**\n* **isEpochInSeconds**(timestamp)\n*\n* Epoch timestamps represent times after January 1st, 1970 but up to July 14th,\n* 1970 there is no completely valid what of distinguishing an **epoch** based\n* on _seconds_ versus _milliseconds. After July 14th, no additional context/data\n* is necessary as long as we're willing to \"cap\" the **epoch** timestamps in seconds\n* to the year 2500.\n*\n* This type-guard attempts to use the constraints above to test whether the value\n* passed in is an epoch timestamp measured in _seconds_.\n*\n* **Related:** `isEpochInSeconds`\n*/\nfunction isEpochInSeconds(timestamp) {\n\treturn Number(timestamp) >= 0 && Number(timestamp) <= EPOCH_2500;\n}\n/**\n* **isEpochInMilliseconds**(timestamp)\n*\n* Type guard which converts a numeric timestamp to the\n* type `EpochInMs` based on the fact that:\n*\n* - the NumberLike passed in is _past_ July 14th, 1970\n* - any dates past this point are clearly distinguishable\n* from _seconds_ based timestamps and _milliseconds_ based timestamps\n* if you're willing to assume all dates are _before_ the date\n* **Jan 1st, 2500**.\n* - this should be a practical constraint in most use cases\n*\n* **Related:** `isEpochInSeconds`\n*/\nfunction isEpochInMilliseconds(timestamp) {\n\treturn isNegativeNumber(timestamp) ? false : Number(timestamp) >= EPOCH_1970_07_14;\n}\n\n//#endregion\n//#region src/type-guards/datetime/isIanaTimezone.ts\n/**\n* a type-guard which validates that `val` is of the type\n* `IanaZone`.\n*/\nfunction isIanaTimezone(val) {\n\treturn isString(val) && IANA_TIMEZONES.includes(val);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isIsoDate.ts\n/**\n* Type guard which validates whether the passed in `val` is an ISO 8601 date\n* representation with an explicit `-` separator between units (YYYY-MM-DD).\n*\n* **Related:** `isIsoDate`, `isIsoImplicitDate`\n*/\nfunction isIsoExplicitDate(val) {\n\tif (isString(val)) {\n\t\tconst parts = val.split(\"-\").map((i) => Number(i));\n\t\treturn val.includes(\"-\") ? val.split(\"-\").every((i) => isNumberLike(i)) ? parts[0] >= 0 && parts[0] <= 9999 && parts[1] >= 1 && parts[1] <= 12 && parts[2] >= 1 && parts[2] <= 31 : false : false;\n\t} else return false;\n}\n/**\n* Type guard which validates whether the passed in `val` is an ISO 8601 date\n* representation without an explicit `-` separator between units (YYYYMMDD).\n*\n* **Related:** `isIsoDate`, `isIsoExplicitDate`\n*/\nfunction isIsoImplicitDate(val) {\n\tif (isString(val) && val.length === 8 && isNumberLike(val)) {\n\t\tconst year = Number(val.slice(0, 4));\n\t\tconst month = Number(val.slice(4, 6));\n\t\tconst date = Number(val.slice(6, 8));\n\t\treturn year >= 0 && year <= 9999 && month >= 1 && month <= 12 && date >= 1 && date <= 31;\n\t} else return false;\n}\n/**\n* Type guard which validates whether the passed in `val` is an ISO 8601 date\n* representation.\n*\n* - `YYYY-MM-DD` _or_ `YYYYMMDD`\n* - `-YYYY-MM` _or_ `-YYYYMM`\n* - `--MM-DD` _or_ `--MMDD`\n*\n* **Related:**\n* - `isIsoExplicitDate`, `isIsoImplicitDate`\n* - `isIsoYear()`, `isIsoYearMonth()`, `isIsoMonthDate()`\n*/\nfunction isIsoDate(val) {\n\tif (isString(val)) return isIsoImplicitDate(val) || isIsoExplicitDate(val) || isIsoYear(val);\n\telse return false;\n}\n\n//#endregion\n//#region src/string-literals/casing/capitalize.ts\n/**\n* **capitalize**()\n*\n* Run time utility which capitalizes a word/string and preserves\n* string literal types when available.\n*/\nfunction capitalize(str) {\n\treturn `${str?.slice(0, 1).toUpperCase()}${str?.slice(1)}`;\n}\n\n//#endregion\n//#region src/string-literals/casing/toAllCaps.ts\n/**\n* **toAllCaps**`(str)`\n*\n* Converts a string to the \"all caps\" equivalent.\n*\n* **Related:** `toLowercase`, `capitalize`, `uncapitalize`\n*/\nfunction toAllCaps(str) {\n\treturn str.split(\"\").map((i) => ifLowercaseChar(i, (v) => capitalize(v), (v) => v)).join(\"\");\n}\n\n//#endregion\n//#region src/string-literals/casing/toCamelCase.ts\n/**\n* **toCamelCase**(str)\n*\n* Converts a string into `camelCase` while preserving literal strings.\n*\n* **Note:** _by default it also removes surrounding white space (if it exists) but it\n* can be preserved if you change the `preserveWhitespace` flag._\n*\n* **Related:** `toKebabCase`, `toPascalCase`, `toSnakeCase`\n*/\nfunction toCamelCase(input) {\n\tconst pascal = toPascalCase(input);\n\tconst [_, _preWhite, focus, _postWhite] = /^(\\s*)(.*?)(\\s*)$/.exec(pascal);\n\tconst camel = focus.replace(/^.*?(\\d*[a-z|])/is, (_$1, p1) => p1.toLowerCase());\n\treturn camel;\n}\n\n//#endregion\n//#region src/string-literals/casing/toKebabCase.ts\n/**\n* **toKebabCase**(str)\n*\n* Converts a string into `kebab-case` while preserving literal strings.\n*\n* **Note:** _by default it also removes surrounding white space (if it exists) but it\n* can be preserved if you change the `preserveWhitespace` flag._\n*\n* **Related:** `toPascalCase`, `toCamelCase`, `toSnakeCase`\n*/\nfunction toKebabCase(input, _preserveWhitespace = false) {\n\tconst [_, preWhite, focus, postWhite] = /^(\\s*)([\\s\\S]*?)(\\s*)$/.exec(input || \"\");\n\tconst replaceWhitespace = (i) => i.replace(/\\s/g, \"-\");\n\tconst replaceUppercase = (i) => i.replace(/[A-Z]/g, (c) => `-${c[0].toLowerCase()}`);\n\tconst replaceLeadingDash = (i) => i.replace(/^-/, \"\");\n\tconst replaceTrailingDash = (i) => i.replace(/-$/, \"\");\n\tconst replaceUnderscore = (i) => i.replace(/_/g, \"-\");\n\tconst removeDupDashes = (i) => i.replace(/-+/g, \"-\");\n\treturn removeDupDashes(`${preWhite}${replaceUnderscore(replaceTrailingDash(replaceLeadingDash(removeDupDashes(replaceWhitespace(replaceUppercase(focus))))))}${postWhite}`);\n}\n\n//#endregion\n//#region src/string-literals/casing/toLowercase.ts\n/**\n* Converts a string to the \"all lowercase\" equivalent.\n*\n* **Related:** `toAllCaps`, `capitalize`, `uncapitalize`\n*/\nfunction toLowercase(str) {\n\treturn str.split(\"\").map((i) => ifLowercaseChar(i, (v) => lowercase(v), (v) => v)).join(\"\");\n}\n\n//#endregion\n//#region src/string-literals/casing/toPascalCase.ts\n/**\n* **toPascalCase**(str)\n*\n* Converts a string into `PascalCase` while preserving literal strings.\n*\n* **Note:** _by default it also removes surrounding white space (if it exists) but it\n* can be preserved if you change the `preserveWhitespace` flag._\n*\n* **Related:** `toKebabCase`, `toCamelCase`, `toSnakeCase`\n*/\nfunction toPascalCase(input, preserveWhitespace = void 0) {\n\tconst [_, preWhite, focus, postWhite] = /^(\\s*)([\\s\\S]*?)(\\s*)$/.exec(input);\n\tconst convertInteriorToCap = (i) => i.replace(/[ |_\\-]+(\\d*[a-z|])/gi, (_$1, p1) => p1.toUpperCase());\n\tconst startingToCap = (i) => i.replace(/^[_|-]*(\\d*[a-z])/g, (_$1, p1) => p1.toUpperCase());\n\tconst replaceLeadingTrash = (i) => i.replace(/^[-_]/, \"\");\n\tconst replaceTrailingTrash = (i) => i.replace(/[-_]$/, \"\");\n\tconst pascal = `${preserveWhitespace ? preWhite : \"\"}${capitalize(replaceTrailingTrash(replaceLeadingTrash(convertInteriorToCap(startingToCap(focus)))))}${preserveWhitespace ? postWhite : \"\"}`;\n\treturn pascal;\n}\n\n//#endregion\n//#region src/string-literals/casing/toSnakeCase.ts\n/**\n* **toSnakeCase**(str)\n*\n* Converts a string into `snake_case` while preserving literal strings.\n*\n* **Note:** _by default it also removes surrounding white space (if it exists) but it\n* can be preserved if you change the `preserveWhitespace` flag._\n*\n* **Related:** `toKebabCase`, `toCamelCase`, `toPascalCase`\n*/\nfunction toSnakeCase(input, preserveWhitespace = false) {\n\tconst [_, preWhite, focus, postWhite] = /^(\\s*)([\\s\\S]*?)(\\s*)$/.exec(input);\n\tconst convertInteriorSpace = (input$1) => input$1.replace(/\\s+/g, \"_\");\n\tconst convertDashes = (input$1) => input$1.replace(/-/g, \"_\");\n\tconst injectUnderscoreBeforeCaps = (input$1) => input$1.replace(/([A-Z])/g, \"_$1\");\n\tconst removeLeadingUnderscore = (input$1) => input$1.startsWith(\"_\") ? input$1.slice(1) : input$1;\n\treturn ((preserveWhitespace ? preWhite : \"\") + removeLeadingUnderscore(injectUnderscoreBeforeCaps(convertDashes(convertInteriorSpace(focus)))).toLowerCase() + (preserveWhitespace ? postWhite : \"\")).replace(/__/g, \"_\");\n}\n\n//#endregion\n//#region src/string-literals/casing/uncapitalize.ts\n/**\n* **uncapitalize**()\n*\n* Run time utility which _un_-capitalizes a word/string and preserves\n* string literal types.\n*/\nfunction uncapitalize(str) {\n\treturn `${str?.slice(0, 1).toLowerCase()}${str?.slice(1)}`;\n}\n\n//#endregion\n//#region src/string-literals/color/cssColor.ts\n/**\n* **cssColor**`(colorspace, v1, v2, v3, [opacity]) -> CssColorFn`\n*\n* Produces a string literal for a CSS v4 `color()` function.\n*/\nfunction cssColor(color, v1, v2, v3, opacity) {\n\treturn `color(${color} ${v1} ${v2} ${v3}${opacity ? ` / ${opacity}` : \"\"}`;\n}\n\n//#endregion\n//#region src/string-literals/color/twColor.ts\n/**\n* **twColor**`(color, luminosity)` => `oklch(...)`\n*\n* Provides a Tailwind Color using the `oklch` color\n* specification. The output is intended to put into\n* a CSS property.\n*\n* **Related:** `twColorRgb()`\n*/\nfunction twColor(color, luminosity) {\n\tconst lum = luminosity in TW_LUMINOSITY ? TW_LUMINOSITY[luminosity] : 0;\n\tconst chroma = luminosity in TW_CHROMA ? TW_CHROMA[luminosity] : 0;\n\tconst hue = TW_HUE[color];\n\treturn `oklch(${lum} ${chroma} ${hue})`;\n}\n\n//#endregion\n//#region src/string-literals/ensure/ensureLeading.ts\n/**\n* **ensureLeading**(content, strip)\n*\n* Runtime utility which ensures that last part of a string -- `content` -- has the\n* substring `ensure` at the end and adds it if not present.\n*/\nfunction ensureLeading(content, ensure) {\n\tconst output = String(content);\n\treturn output.startsWith(String(ensure)) ? content : isString(content) ? `${ensure}${content}` : Number(`${ensure}${content}`);\n}\n\n//#endregion\n//#region src/string-literals/ensure/ensureSurround.ts\n/**\n* **ensureSurround**(prefix, postfix) -> (input) -> `${prefix}${input}${postfix}`\n*\n* A higher order runtime utility which receives a prefix and postfix string\n* on it's first call. This returns a secondary function which will _ensure_\n* the given prefix/postfix's surround the input (without duplicating the\n* prefix/postfix characters if they were already there).\n*\n* **Related:** `surround()`\n*/\nfunction ensureSurround(prefix, postfix) {\n\tconst fn$1 = (input) => {\n\t\tlet result$1 = input;\n\t\tresult$1 = ensureLeading(result$1, prefix);\n\t\tresult$1 = ensureTrailing(result$1, postfix);\n\t\treturn result$1;\n\t};\n\treturn fn$1;\n}\n\n//#endregion\n//#region src/string-literals/ensure/ensureTrailing.ts\n/**\n* **ensureTrailing**(content, strip)\n*\n* Runtime utility which ensures that last part of a string -- `content` -- has the\n* substring `ensure` at the end and adds it if not present.\n*/\nfunction ensureTrailing(content, ensure) {\n\treturn content.endsWith(ensure) ? content : `${content}${ensure}`;\n}\n\n//#endregion\n//#region src/string-literals/getTypeSubtype.ts\n/**\n* **getTypeSubTyp**`(str)`\n*\n* Returns a two element tuple representing the `Type` and `SubType`\n* independantly.\n*\n* - can take either a \"blessed\" `TypeSubtype` as input or any string\n* literal of `${string}/${string}` but in the latter case if the\n* string does not pass the isTypeSubtype() test then it will throw\n* an error (InvalidTypeSubtype).\n*\n* **Related:** `TypeSubtype`, `isTypeSubtype`\n*/\nfunction getTypeSubtype(str) {\n\tif (isTypeSubtype(str)) {\n\t\tconst [t, st] = str.split(\"/\");\n\t\treturn [t, st];\n\t} else {\n\t\tconst err$1 = new Error(`An invalid Type/Subtype was passed into getTypeSubtype(${str})`);\n\t\terr$1.name = \"InvalidTypeSubtype\";\n\t\tthrow err$1;\n\t}\n}\n\n//#endregion\n//#region src/string-literals/ifLowercase.ts\n/**\n* **ifLowercaseChar**(ch)\n*\n* Tests whether a passed in character is lowercase and then uses the appropriate callback to\n* mutate the value.\n*/\nfunction ifLowercaseChar(ch, callbackForMatch, callbackForNoMatch) {\n\tif (ch.length !== 1) throw new Error(`call to ifUppercaseChar received ${ch.length} characters but is only valid when one character is passed in!`);\n\treturn LOWER_ALPHA_CHARS.includes(ch) ? callbackForMatch(ch) : callbackForNoMatch(ch);\n}\n\n//#endregion\n//#region src/string-literals/ifUppercase.ts\n/**\n* **ifUppercaseChar**(ch, callbackForMatch, callbackForNoMatch)\n*\n* Tests whether a passed in _character_ is an uppercase character and uses appropriate callback\n* to mutate the value.\n*\n* **Related:** `ifUppercase()`\n*/\nfunction ifUppercaseChar(ch, callbackForMatch, callbackForNoMatch) {\n\tif (ch.length !== 1) throw new Error(`Invalid string length passed to ifUppercaseChar(ch); this function requires a single character but ${ch.length} were received`);\n\treturn LOWER_ALPHA_CHARS.includes(ch) ? callbackForMatch(ch) : callbackForNoMatch(ch);\n}\n\n//#endregion\n//#region src/string-literals/infer.ts\n/**\n* Parse a given inference pattern like:\n*\n* `foo{{infer Foo}} and bar{{infer Bar as number}}`\n*\n* Return an array of alternating static segments and inferred segments:\n* E.g.:\n* [\n* { static: \"foo\", dynamic: false },\n* { varName: \"Foo\", type: \"string\", dynamic: true },\n* { static: \" and bar\", dynamic: false },\n* { varName: \"Bar\", type: \"number\", dynamic: true },\n* { static: \"\", dynamic: false }\n* ]\n*/\nfunction parseTemplate(template) {\n\tconst pattern = /\\{\\{\\s*infer\\s+([A-Za-z_]\\w*)\\s*(?:(?:extends|as)\\s+(string|number|boolean)\\s*)?\\}\\}/g;\n\tlet lastIndex = 0;\n\tlet match;\n\tconst segments = [];\n\twhile (match = pattern.exec(template)) {\n\t\tconst [fullMatch, varName, asType$1] = match;\n\t\tconst staticPart = template.slice(lastIndex, match.index);\n\t\tif (staticPart) segments.push({\n\t\t\tdynamic: false,\n\t\t\ttext: staticPart\n\t\t});\n\t\tsegments.push({\n\t\t\tdynamic: true,\n\t\t\tvarName,\n\t\t\ttype: asType$1 ? asType$1 : \"string\"\n\t\t});\n\t\tlastIndex = match.index + fullMatch.length;\n\t}\n\tconst remainder = template.slice(lastIndex);\n\tif (remainder) segments.push({\n\t\tdynamic: false,\n\t\ttext: remainder\n\t});\n\treturn segments;\n}\nfunction escapeRegex(str) {\n\treturn str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n/**\n* Convert segments to a regex pattern with named captures.\n*/\nfunction buildRegexPattern(segments) {\n\tlet regexStr = \"^\";\n\tfor (const seg of segments) if (!seg.dynamic) regexStr += escapeRegex(seg.text);\n\telse switch (seg.type) {\n\t\tcase \"string\":\n\t\t\tregexStr += \"(.*?)\";\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tregexStr += \"(\\\\d+)\";\n\t\t\tbreak;\n\t\tcase \"boolean\":\n\t\t\tregexStr += \"(true|false)\";\n\t\t\tbreak;\n\t}\n\tregexStr += \"$\";\n\treturn new RegExp(regexStr);\n}\nfunction convertValue(type, value) {\n\tswitch (type) {\n\t\tcase \"string\": return value;\n\t\tcase \"number\": return Number(value);\n\t\tcase \"boolean\": return value === \"true\";\n\t}\n}\n/**\n* Perform the matching operation given the template and the test string.\n*/\nfunction matchTemplate(template, test) {\n\tconst segments = parseTemplate(template);\n\tconst regex = buildRegexPattern(segments);\n\tconst match = regex.exec(test);\n\tif (!match) return false;\n\tlet captureIndex = 1;\n\tconst result$1 = {};\n\tfor (const seg of segments) if (seg.dynamic) {\n\t\tconst rawVal = match[captureIndex++];\n\t\tif (rawVal === void 0) return false;\n\t\tresult$1[seg.varName] = convertValue(seg.type, rawVal);\n\t}\n\treturn result$1;\n}\n/**\n* **infer**`(pattern)`\n*\n* Builds a interference function from a Typescript _string literal template_\n* where:\n*\n* - the template string accepts `{{ string }}` instead of `${string}`, etc.\n* for matching blocks of string characters\n* - you can also extract parts of the string with syntax of `{{ infer Foo }}`\n* - you can also look for _numeric_ or _boolean_ string literals:\n* - `{{ boolean }}`\n* - `{{ infer Bar as number }}`\n*\n* ```ts\n* const matcher = infer(\"{{ infer foo }}-bar\");\n* // \"foo\"\n* const {foo} = matcher(\"foo-bar\");\n* ```\n*/\nfunction infer(inference) {\n\treturn (test) => {\n\t\treturn matchTemplate(inference, test);\n\t};\n}\n\n//#endregion\n//#region src/string-literals/literal.ts\n/**\n* Takes an object as input --which has an `id` property and returns it as the same\n* run-time content but with the _type_ of the `id` property being forced to a literal type\n*/\nfunction idLiteral(o) {\n\treturn {\n\t\t...o,\n\t\tid: o.id\n\t};\n}\n/**\n* Takes an object as input --which has an `name` property and returns it as the same\n* run-time content but with the _type_ of the `name` property being forced to a literal type\n*/\nfunction nameLiteral(o) {\n\treturn o;\n}\n/**\n* Takes an object as input --which has an `kind` property and returns it as the same\n* run-time content but with the _type_ of the `kind` property being forced to a literal type\n*/\nfunction kindLiteral(o) {\n\treturn o;\n}\nfunction idTypeGuard(_o) {\n\treturn true;\n}\n/**\n* Takes an object as input and infers the narrow literal types of the property\n* values on the object.\n*\n* > Note: this addresses this [a known TS gap](https://github.com/microsoft/TypeScript/issues/30680).\n* > Hopefully at some point this will be addressed in the language.\n*/\nfunction literal(obj) {\n\treturn obj;\n}\n\n//#endregion\n//#region src/string-literals/lowercase.ts\n/**\n* **lowercase**()\n*\n* Run time utility which ensures all letters are lowercase while preserving\n* string literal types.\n*/\nfunction lowercase(str) {\n\treturn str.toLowerCase();\n}\n\n//#endregion\n//#region src/string-literals/narrow.ts\n/**\n* **narrow**(value)\n*\n* An identity function which provides the input in as narrow a form\n* as possible.\n*\n* - if only a single item is provided we will isolate it and treat\n* as it's own entity.\n* - so a scalar value such as `narrow(42)` results in the numeric literal `42`\n* not `[42]`\n*\n* ```ts\n* const s = narrow(\"foo\"); // \"foo\"\n* const n = narrow(42); // 42\n* // [\"foo\", \"bar\"]\n* const t1 = narrow([\"foo\", \"bar\"] as const);\n* const t2 = narrow([\"foo\",\"bar\"]);\n* const t3 = narrow(\"foo\", \"bar\");\n* // { foo: 1 }\n* const o1 = narrow({foo: 1});\n* // [ { foo: 1 } ]\n* const o2 = narrow([foo:1]);\n* ```\n*\n* **Related:** `defineObj`\n*/\nfunction narrow(...values) {\n\tif (values.length === 1) return values[0];\n\treturn values;\n}\n\n//#endregion\n//#region src/string-literals/nbsp.ts\n/** A Unicode non-breaking space */\nconst nbsp = \"\\xA0\";\n\n//#endregion\n//#region src/string-literals/pathJoin.ts\n/**\n* **pathJoin**`<T,U>(begin, ...rest)`\n*\n* Run time utility which joins two strings together with\n* the intent to have them be divided by a Posix `/` character\n* appropriate for Unix file paths and URLs.\n*\n* **note:** to support more than two paths being joined there\n* is now the ability to add a tuple of paths into the _rest_\n* parameter\n*/\nfunction pathJoin(...segments) {\n\tconst clean_path = segments.map((i) => stripTrailing(stripLeading(i, \"/\"), \"/\")).join(\"/\");\n\tconst original_path = segments.join(\"/\");\n\tconst pre = original_path.startsWith(\"/\") ? \"/\" : \"\";\n\tconst post = original_path.endsWith(\"/\") ? \"/\" : \"\";\n\treturn `${pre}${clean_path}${post}`;\n}\n\n//#endregion\n//#region src/string-literals/phone/asPhoneNumber.ts\nconst asPhoneFormat = () => `NOT IMPLEMENTED`;\n\n//#endregion\n//#region src/string-literals/phone/getPhoneCountryCode.ts\nfunction getPhoneCountryCode(phone) {\n\treturn phone.trim().startsWith(\"+\") || phone.trim().startsWith(\"00\") ? retainWhile(stripLeading(stripLeading(phone.trim(), \"+\"), \"00\"), ...NUMERIC_CHAR) : \"\";\n}\n\n//#endregion\n//#region src/string-literals/phone/removePhoneCountryCode.ts\nfunction removePhoneCountryCode(phone) {\n\tconst countryCode = getPhoneCountryCode(phone);\n\treturn countryCode !== \"\" ? stripLeading(stripLeading(phone.trim(), \"+\", \"00\"), countryCode).trim() : phone.trim();\n}\n\n//#endregion\n//#region src/string-literals/pluralize.ts\nconst isException = (word) => Object.keys(PLURAL_EXCEPTIONS).includes(word);\n/**\n* pluralize based on how word ends\n*/\nfunction endingIn(word, postfix) {\n\tswitch (postfix) {\n\t\tcase \"is\": return word.endsWith(postfix) ? `${word}es` : void 0;\n\t\tcase \"singular-noun\": return SINGULAR_NOUN_ENDINGS.some((i) => word.endsWith(i)) ? asChars(word).every((i) => [...ALPHA_CHARS].includes(i)) ? `${word}es` : void 0 : void 0;\n\t\tcase \"f\": return word.endsWith(\"f\") ? `${stripTrailing(word, \"f\")}ves` : word.endsWith(\"fe\") ? `${stripTrailing(word, \"fe\")}ves` : void 0;\n\t\tcase \"y\": return word.endsWith(\"y\") ? `${stripTrailing(word, \"y\")}ies` : void 0;\n\t\tdefault: throw new Error(`endingIn received \"${postfix}\" as a postfix but this ending is not known!`);\n\t}\n}\n/**\n* **pluralize(** word **)**\n*\n* Pluralizes the word using _language rules_ on pluralization for English as well as\n* leveraging many known exceptions to the linguistic rules.\n*\n* **Note:** _if the string passed into this function is a literal string then the **type**\n* will be pluralized along with the runtime value._\n*/\nfunction pluralize(word) {\n\tconst right = rightWhitespace(word);\n\tconst w = word.trimEnd();\n\tconst result$1 = isException(w) ? PLURAL_EXCEPTIONS[w] : endingIn(w, \"is\") || endingIn(w, \"singular-noun\") || endingIn(w, \"f\") || endingIn(w, \"y\") || `${w}s`;\n\treturn `${result$1}${right}`;\n}\n\n//#endregion\n//#region src/string-literals/replace.ts\n/**\n* **replace**`(content, find, replace)`\n*\n* A runtime utility which will replace _the first_ instance of `find` found in `content` with `replace`\n* while preserving string literal content where possible.\n*\n* **Related:** `replaceAll()`, `replaceAllFromTo()`\n*/\nfunction replace(content, find$1, replace$1) {\n\treturn content.replace(find$1, replace$1);\n}\n/**\n* **replaceAll**`(content, find, replace)`\n*\n* A runtime utility which will replace all instances of `find` found in `content` with `replace`\n* while preserving string literal content where possible.\n*\n* **Related:** `replace()`, `replaceAllFromTo()`\n*/\nfunction replaceAll(content, find$1, replace$1) {\n\treturn content.replaceAll(find$1, replace$1);\n}\n/**\n* **replaceAllFromTo**`(content, defn)`\n*\n* Provided some textual content and a key/value transformation definition:\n*\n* - will convert all instances of the _keys_ in the definition to the _values_\n*\n* **Related:** `replace()`, `replaceAll()`\n*/\nfunction replaceAllFromTo(content, fromTo) {\n\tlet output = content;\n\tfor (const key of Object.keys(fromTo)) output = replaceAll(output, key, fromTo[key]);\n\treturn output;\n}\n\n//#endregion\n//#region src/string-literals/rightWhitespace.ts\n/**\n* **rightWhitespace**`(content)`\n*\n* Extracts and returns the whitespace on the _right_ part of the string.\n*/\nfunction rightWhitespace(content) {\n\tconst trimmed = content.trimStart();\n\treturn retainAfterInclusive(trimmed, ...WHITESPACE_CHARS);\n}\n\n//#endregion\n//#region src/string-literals/split-and-join/nestedSplit.ts\nfunction splitProcessorMultiChar(content, split$1, nesting$1, policy, stack = [], waiting = \"\", result$1 = [], lastWasSplit = false) {\n\tif (content === \"\") {\n\t\tif (stack.length > 0) return err(`unbalanced/nested-split`, `The nesting stack was unbalanced, so the nested split can not be completed!`, { stack: toStringLiteral(stack) });\n\t\tif (lastWasSplit) return waiting === \"\" ? [...result$1, \"\"] : [\n\t\t\t...result$1,\n\t\t\twaiting,\n\t\t\t\"\"\n\t\t];\n\t\treturn waiting === \"\" ? result$1 : [...result$1, waiting];\n\t}\n\tconst currentChar = content[0];\n\tconst remainingContent = content.slice(1);\n\tif (stack.length === 0) {\n\t\tif (content.startsWith(split$1)) {\n\t\t\tconst afterSplit = content.slice(split$1.length);\n\t\t\tlet newWaiting = \"\";\n\t\t\tlet newResult = [...result$1];\n\t\t\tswitch (policy) {\n\t\t\t\tcase \"omit\":\n\t\t\t\t\tnewResult.push(waiting);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"inline\":\n\t\t\t\t\tnewResult.push(waiting, split$1);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"before\":\n\t\t\t\t\tnewWaiting = split$1;\n\t\t\t\t\tif (waiting === \"\" && result$1.length === 0) newResult = [];\n\t\t\t\t\telse newResult.push(waiting);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"after\":\n\t\t\t\t\tnewResult.push(`${waiting}${split$1}`);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\treturn splitProcessorMultiChar(afterSplit, split$1, nesting$1, policy, stack, newWaiting, newResult, true);\n\t\t}\n\t\tif (isNestingStart(currentChar, nesting$1)) return splitProcessorMultiChar(remainingContent, split$1, nesting$1, policy, [...stack, currentChar], `${waiting}${currentChar}`, result$1, false);\n\t\treturn splitProcessorMultiChar(remainingContent, split$1, nesting$1, policy, stack, `${waiting}${currentChar}`, result$1, false);\n\t}\n\tif (isNestingEndMatch(currentChar, stack, nesting$1)) {\n\t\tconst newStack = [...stack].slice(0, -1);\n\t\treturn splitProcessorMultiChar(remainingContent, split$1, nesting$1, policy, newStack, `${waiting}${currentChar}`, result$1, false);\n\t}\n\tif (isNestingStart(currentChar, nesting$1)) return splitProcessorMultiChar(remainingContent, split$1, nesting$1, policy, [...stack, currentChar], `${waiting}${currentChar}`, result$1, false);\n\treturn splitProcessorMultiChar(remainingContent, split$1, nesting$1, policy, stack, `${waiting}${currentChar}`, result$1, false);\n}\nfunction splitProcessorMultiple(chars, split$1, nesting$1, policy, stack = [], waiting = \"\", result$1 = []) {\n\tif (chars.length === 0) {\n\t\tif (stack.length > 0) return err(`unbalanced/nested-split`, `The nesting stack was unbalanced, so the nested split can not be completed!`, { stack: toStringLiteral(stack) });\n\t\treturn [...result$1, waiting];\n\t}\n\tconst currentChar = chars[0];\n\tconst remainingChars = afterFirst(chars);\n\tif (split$1.includes(currentChar) && stack.length === 0) {\n\t\tlet newWaiting = \"\";\n\t\tlet newResult = [...result$1];\n\t\tswitch (policy) {\n\t\t\tcase \"omit\":\n\t\t\t\tnewResult.push(waiting);\n\t\t\t\tbreak;\n\t\t\tcase \"inline\":\n\t\t\t\tnewResult.push(waiting, currentChar);\n\t\t\t\tbreak;\n\t\t\tcase \"before\":\n\t\t\t\tnewWaiting = currentChar;\n\t\t\t\tif (waiting === \"\" && result$1.length === 0) newResult = [];\n\t\t\t\telse newResult.push(waiting);\n\t\t\t\tbreak;\n\t\t\tcase \"after\":\n\t\t\t\tnewResult.push(`${waiting}${currentChar}`);\n\t\t\t\tbreak;\n\t\t}\n\t\treturn splitProcessorMultiple(remainingChars, split$1, nesting$1, policy, stack, newWaiting, newResult);\n\t}\n\tif (isNestingEndMatch(currentChar, stack, nesting$1)) {\n\t\tconst newStack = [...stack].slice(0, -1);\n\t\treturn splitProcessorMultiple(remainingChars, split$1, nesting$1, policy, newStack, `${waiting}${currentChar}`, result$1);\n\t}\n\tif (isNestingStart(currentChar, nesting$1)) {\n\t\tconst newStack = [...stack, currentChar];\n\t\treturn splitProcessorMultiple(remainingChars, split$1, nesting$1, policy, newStack, `${waiting}${currentChar}`, result$1);\n\t}\n\treturn splitProcessorMultiple(remainingChars, split$1, nesting$1, policy, stack, `${waiting}${currentChar}`, result$1);\n}\nfunction splitProcessor(chars, split$1, nesting$1, policy, stack = [], waiting = \"\", result$1 = []) {\n\tif (chars.length === 0) {\n\t\tif (stack.length > 0) return err(`unbalanced/nested-split`, `The nesting stack was unbalanced, so the nested split can not be completed!`, { stack: toStringLiteral(stack) });\n\t\treturn [...result$1, waiting];\n\t}\n\tconst currentChar = chars[0];\n\tconst remainingChars = afterFirst(chars);\n\tif (currentChar === split$1 && stack.length === 0) {\n\t\tlet newWaiting = \"\";\n\t\tlet newResult = [...result$1];\n\t\tswitch (policy) {\n\t\t\tcase \"omit\":\n\t\t\t\tnewResult.push(waiting);\n\t\t\t\tbreak;\n\t\t\tcase \"inline\":\n\t\t\t\tnewResult.push(waiting, currentChar);\n\t\t\t\tbreak;\n\t\t\tcase \"before\":\n\t\t\t\tnewWaiting = currentChar;\n\t\t\t\tif (waiting === \"\" && result$1.length === 0) newResult = [];\n\t\t\t\telse newResult.push(waiting);\n\t\t\t\tbreak;\n\t\t\tcase \"after\":\n\t\t\t\tnewResult.push(`${waiting}${currentChar}`);\n\t\t\t\tbreak;\n\t\t}\n\t\treturn splitProcessor(remainingChars, split$1, nesting$1, policy, stack, newWaiting, newResult);\n\t}\n\tif (isNestingEndMatch(currentChar, stack, nesting$1)) {\n\t\tconst newStack = [...stack].slice(0, -1);\n\t\treturn splitProcessor(remainingChars, split$1, nesting$1, policy, newStack, `${waiting}${currentChar}`, result$1);\n\t}\n\tif (isNestingStart(currentChar, nesting$1)) {\n\t\tconst newStack = [...stack, currentChar];\n\t\treturn splitProcessor(remainingChars, split$1, nesting$1, policy, newStack, `${waiting}${currentChar}`, result$1);\n\t}\n\treturn splitProcessor(remainingChars, split$1, nesting$1, policy, stack, `${waiting}${currentChar}`, result$1);\n}\n/**\n* **nestedSplit**`(content, split, [nesting], [policy])`\n*\n* A run-time utility to split string's in a nested-aware manner.\n*\n* **Related:** `NestedSplit<..>`, `split()`, `nested()`\n*/\nfunction nestedSplit(content, split$1, nesting$1 = mutable(BRACKET_NESTING), policy = \"omit\") {\n\tconst config = isString(nesting$1) ? nesting$1 === \"default\" || nesting$1 === \"brackets\" ? BRACKET_NESTING : nesting$1 === \"quotes\" ? QUOTE_NESTING : Never : nesting$1;\n\tif (isNestingKeyValue(config) !== true && isNestingTuple(config)) return err(`invalid-nesting/nested-split`);\n\tif (isArray(split$1)) {\n\t\tconst result$2 = splitProcessorMultiple(asChars(content), asArray(split$1), config, policy);\n\t\treturn result$2;\n\t}\n\tif (typeof split$1 !== \"string\") return err(`invalid-nesting/nested-split`, `The split parameter must be a string when not provided as an array!`, {\n\t\tsplit: split$1,\n\t\tcontent\n\t});\n\tconst result$1 = split$1.length === 1 ? splitProcessor(asChars(content), split$1, config, policy) : splitProcessorMultiChar(content, split$1, config, policy);\n\treturn result$1;\n}\n\n//#endregion\n//#region src/initializers/addFnToProps.ts\n/**\n* **addPropsToFn**(fn, [clone]) => (props) => FnWithProps\n*\n* A higher order function which takes a dictionary object and\n* then a function and combines them into a single type.\n*/\nfunction addPropsToFn(fn$1, clone_fn) {\n\tconst localFn = clone_fn ? (...args) => fn$1(args) : fn$1;\n\treturn (obj) => {\n\t\tfor (const k in obj) localFn[k] = obj[k];\n\t\treturn localFn;\n\t};\n}\n\n//#endregion\n//#region src/initializers/addPropsToFn.ts\n/**\n* **addFnToProps**(props, [clone]) => (fn) => FnWithProps\n*\n* A higher order function which takes\n*\n* - `props` - key/value pairs to add to the a _future_ function\n* - `clone` - optionally state whether you want to use the future function's\n* type \"as is\" or you want to purify it's props with a clone (default is `true`)\n*\n* This is partially applied to reveal a function which takes a\n* function as input.\n*/\nfunction addFnToProps(props, _clone_fn) {\n\treturn (fn$1) => {\n\t\tconst localFn = (...args) => fn$1(args);\n\t\tfor (const k in props) localFn[k] = props[k];\n\t\treturn localFn;\n\t};\n}\n\n//#endregion\n//#region src/initializers/createConstant.ts\n/**\n* **createConstant**(kind)\n*\n* Creates a `Constant<TKind>` type.\n*/\nfunction createConstant(kind) {\n\treturn {\n\t\t_type: \"Constant\",\n\t\tkind\n\t};\n}\n\n//#endregion\n//#region src/initializers/createCssSelector.ts\n/**\n* **createCssSelector**`(opt) => (...select) => string`\n*\n* A higher order utility which:\n*\n* - on first call allows you to _narrow_ the types of selectors which are\n* available\n* - afterward it allows 1..M selectors to be chained (including pseudo\n* classes)\n*\n* Ensures correct syntax and aids in auto-completion of CSS props.\n*/\nfunction createCssSelector(_opt) {\n\treturn (...selectors) => {\n\t\treturn selectors.join(\" \");\n\t};\n}\n\n//#endregion\n//#region src/functions/fnProps.ts\n/**\n* **fnProps**`(fn)`\n*\n* Extracts any key/value pairs found along with the function.\n*/\nfunction fnProps(fn$1) {\n\tconst names = Object.getOwnPropertyNames(fn$1);\n\tconst props = {};\n\tfor (const key of names) if (![\"name\", \"length\"].includes(key)) props[key] = fn$1[key];\n\telse if (key === \"name\" && fn$1[key] !== \"\") props[key] = fn$1[key];\n\treturn props;\n}\n\n//#endregion\n//#region src/functions/identity.ts\nfunction identity(...values) {\n\treturn values.length === 1 ? values[0] : values.length === 0 ? void 0 : values;\n}\n\n//#endregion\n//#region src/initializers/createFnWithProps.ts\nfunction createFnWithProps(fn$1, props, _narrowing = false) {\n\tlet fnWithProps = fn$1;\n\tconst p = {\n\t\t...fnProps(fn$1),\n\t\t...props\n\t};\n\tfor (const prop of Object.keys(p)) if (prop !== \"name\") fnWithProps[prop] = p[prop];\n\tif (\"name\" in props) fnWithProps = Object.defineProperties(fnWithProps, { name: {\n\t\tvalue: p.name,\n\t\twritable: false\n\t} });\n\treturn fnWithProps;\n}\n\n//#endregion\n//#region src/initializers/defineObj.ts\n/**\n* **defineObj**(literal) -> (wide) -> object\n*\n* A runtime utility designed to create an object **value** who's\n* **type** is defined by the values in the object.\n*\n* The first call to this utility defines _narrow_ type literals, the\n* second call defines _wide_ types of the values passed in.\n*\n* ### Example\n* ```ts\n* // { foo: 1; bar: number; baz: number }\n* const fooBarBaz = defineObj({foo: 1})({bar: 2, baz: 3});\n* ```\n*\n* **Related:** `defineObject`\n*/\nfunction defineObj(literal$1 = {}) {\n\t/**\n\t* Add any key/value pairs which you want to have _wide_ types associated;\n\t* literal types are defined already and stated above.\n\t*/\n\treturn (wide$1 = {}) => {\n\t\tconst obj = literal$1 ? {\n\t\t\t...literal$1,\n\t\t\t...wide$1\n\t\t} : wide$1;\n\t\treturn obj;\n\t};\n}\n\n//#endregion\n//#region src/initializers/defineTuple.ts\n/**\n* **createTuple**(...values) -> (...values) -> Tuple\n*\n* Runtime utility to define a strongly typed tuple.\n*\n* - if you want to _widen_ certain elements in the Tuple you can use\n* the `widen()` type utility for those elements.\n*\n* ### Example\n* ```ts\n* // [ \"foo\", \"bar\", 42 ]\n* const foobar = defineTuple(\"foo\", \"bar\", 42)\n* // [ string, \"bar\", 42]\n* const foey = defineTuple(s => s.string(), \"bar\", 42)\n* ```\n*/\nfunction defineTuple(...values) {\n\treturn values;\n}\n\n//#endregion\n//#region src/lists/afterFirst.ts\nfunction afterFirst(list) {\n\treturn list.slice(1);\n}\n\n//#endregion\n//#region src/lists/asArray.ts\n/**\n* Ensures that any input passed in is passed back as an array:\n*\n* - if it was already an array than this just serves as an _identity_ function\n* - if it was not then it wraps the element into a one element array of the\n* given type\n*\n* Note: by default the _type_ of values will be intentionally widened so that the value \"abc\"\n* is of type `string` not the literal `abc`. If you want to keep literal types then\n* change the optional _widen_ parameter to _false_.\n*/\nfunction asArray(thing) {\n\treturn Array.isArray(thing) === true ? thing : typeof thing === \"undefined\" ? [] : [thing];\n}\n\n//#endregion\n//#region src/lists/createConverter.ts\n/**\n* **createConverter**(mapper)\n*\n* A runtime utility which allows for the creation of a function which\n* receives multiple wide types (string, number, boolean, object) and then transform it\n* based on the \"wide type\" but while retaining the potentially narrow values passed in.\n*\n* The number of wide types which the converter will accept is based on how it configured\n* as there are discrete functions which must be passed in for handling: strings, numbers,\n* booleans, and \"objects\" (aka, Record<string,any>).\n*\n* ```ts\n* // handles strings and numbers\n* const convert = createConverter({\n* string: s => `the string was ${s}`,\n* number: n => `the number was ${n}`,\n* });\n* ```\n*/\nfunction createConverter(mapper) {\n\treturn (input) => {\n\t\tlet result$1;\n\t\tif (isNothing(input)) result$1 = mapper.nothing ? mapper.nothing(input) : Never;\n\t\telse if (isDictionary(input)) result$1 = mapper.object ? mapper.object(input) : Never;\n\t\telse switch (typeof input) {\n\t\t\tcase \"string\":\n\t\t\t\tresult$1 = mapper.string ? mapper.string(input) : Never;\n\t\t\t\tbreak;\n\t\t\tcase \"number\":\n\t\t\tcase \"bigint\":\n\t\t\t\tresult$1 = mapper.number ? mapper.number(input) : Never;\n\t\t\t\tbreak;\n\t\t\tcase \"boolean\":\n\t\t\t\tresult$1 = mapper.boolean ? mapper.boolean(input) : Never;\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error(`Unhandled type: ${typeof input}`);\n\t\t}\n\t\treturn result$1;\n\t};\n}\n\n//#endregion\n//#region src/lists/createFixedLengthArray.ts\n/**\n* **createFixedLengthArray**`(content, quantity)`\n*\n* Provides a type strong array of duplicates of what was\n* passed in as `content`\n*/\nfunction createFixedLengthArray(content, quantity) {\n\treturn Array.from({ length: quantity }, () => content);\n}\n\n//#endregion\n//#region src/lists/every.ts\nfunction every(op, comparator) {\n\treturn (value) => {\n\t\tconst list = valuesOf(value);\n\t\treturn list.every((i) => filter(i, op, comparator));\n\t};\n}\n\n//#endregion\n//#region src/lists/filter.ts\nfunction filterFn(op, params) {\n\treturn (list) => {\n\t\treturn list.filter((item) => {\n\t\t\tconst comparator = compare(op, ...params);\n\t\t\tconst result$1 = comparator(item);\n\t\t\treturn result$1;\n\t\t});\n\t};\n}\n/**\n* **filter**`(op, ...[params])` => (comparator) => boolean\n*\n* A set of filter functions which provide strong (and narrow)\n* typing support.\n*\n* - The first call sets up the filter operation and returns a\n* function which can be used as a filter\n* - the second call (aka, the actual filter function) will accept\n* either a singular element or an array of elements.\n* - when passed a singular value it will return a boolean value\n* which is determined at design time where possible\n* - when passed a tuple then the filtered tuple is passed back\n* and is typed at designed time where possible\n*\n* **Related:** `retain()`\n*/\nfunction filter(op, ...params) {\n\treturn filterFn(op, params);\n}\n\n//#endregion\n//#region src/lists/filterEmpty.ts\n/**\n* Filters an array/tuple down to elements which are _not empty_ and\n* preserves as much of the type as possible.\n*/\nfunction filterEmpty(...val) {\n\treturn val.filter((i) => isNotEmpty(i));\n}\n\n//#endregion\n//#region src/lists/filterUndefined.ts\n/**\n* Filters an array/tuple down to elements which are _not undefined_ and\n* preserves as much of the type as possible.\n*/\nfunction filterUndefined(...val) {\n\treturn val.filter((i) => isDefined(i));\n}\n\n//#endregion\n//#region src/combinators/and.ts\n/**\n* Groups a number of \"logic functions\" together by combining their results using\n* the logical **AND** operator\n*/\nfunction and(...values) {\n\treturn values.every((i) => i === true);\n}\n\n//#endregion\n//#region src/combinators/compare.ts\nfunction handle_string(val, op, params) {\n\tswitch (op) {\n\t\tcase \"startsWith\": return (isString(val) || isNumber(val)) && isStringOrNumericArray(params) ? startsWith(...params)(val) : false;\n\t\tcase \"endsWith\": return (isString(val) || isNumber(val)) && isStringOrNumericArray(params) ? endsWith(...params)(val) : false;\n\t\tcase \"endsWithNumber\": return isString(val) ? val === \"\" ? false : asChars(val).length > 0 ? NUMERIC_CHAR.includes(last(asChars(val))) : false : false;\n\t\tcase \"startsWithNumber\": return isString(val) ? NUMERIC_CHAR.includes(firstChar(String(val))) : false;\n\t\tcase \"onlyNumbers\": return isString(val) ? val === \"\" ? false : asChars(val).every((c) => isNumberLike(c)) : false;\n\t\tcase \"onlyLetters\": return isString(val) ? isAlpha(val) : false;\n\t\tcase \"alphaNumeric\": return isString(val) ? asChars(val).every((c) => isNumberLike(c) || isAlpha(c)) : false;\n\t\tcase \"isTemplateLiteral\": return isStaticTemplate(val);\n\t}\n\treturn unset;\n}\nfunction handle_general(val, op, params) {\n\tswitch (op) {\n\t\tcase \"extends\": {\n\t\t\tif (!isInputToken(params[0])) return err(`compare/extends`, `A filter operation based on the 'extends' operation passed in a parameter which was not an InputToken so we are not able to convert this into a type!`);\n\t\t\treturn isNarrowable(val) && doesExtend(params[0])(val);\n\t\t}\n\t\tcase \"equals\": return val === params[0];\n\t\tcase \"false\": return isFalse(val);\n\t\tcase \"true\": return isTrue(val);\n\t\tcase \"truthy\": return not(isFalsy(val));\n\t\tcase \"falsy\": return isFalsy(val);\n\t\tcase \"equalsSome\": return isNarrowable(val) && isArray(params) && equalsSome(...params)(val);\n\t\tcase \"contains\": return isString(val) || isNumber(val) || isStringOrNumericArray(val) ? contains(val, params) : false;\n\t\tcase \"containsSome\": return (isString(val) || isNumber(val) || isNarrowableArray(val)) && isArray(params) ? params.some((i) => contains(val, i)) : false;\n\t\tcase \"containsAll\": return (isString(val) || isNumber(val) || isNarrowableArray(val)) && isArray(params) ? params.every((i) => contains(val, i)) : false;\n\t}\n\treturn unset;\n}\nfunction handle_numeric(val, op, params) {\n\tswitch (op) {\n\t\tcase \"greaterThan\": {\n\t\t\tif (!isNumberLike(params[0])) return err(`invalid-params/greaterThan`, `The 'greaterThan' operation requires a numeric parameter`, { params });\n\t\t\treturn Number(val) > Number(params[0]);\n\t\t}\n\t\tcase \"greaterThanOrEqual\": {\n\t\t\tif (!isNumberLike(params[0])) return err(`invalid-params/greaterThanOrEqual`, `The 'greaterThanOrEqual' operation requires a numeric parameter`, { params });\n\t\t\treturn Number(val) >= Number(params[0]);\n\t\t}\n\t\tcase \"lessThan\": {\n\t\t\tif (!isNumberLike(params[0])) return err(`invalid-params/lessThan`, `The 'lessThan' operation requires a numeric parameter`, { params });\n\t\t\treturn Number(val) < Number(params[0]);\n\t\t}\n\t\tcase \"lessThanOrEqual\": {\n\t\t\tif (!isNumberLike(params[0])) return err(`invalid-params/lessThanOrEqual`, `The 'lessThanOrEqual' operation requires a numeric parameter`, { params });\n\t\t\treturn Number(val) <= Number(params[0]);\n\t\t}\n\t\tcase \"betweenExclusively\": return isNumberLike(val) && isNumberLike(params[0]) && isNumberLike(params[1]) ? asNumber(val) > asNumber(params[0]) && asNumber(val) < asNumber(params[1]) : false;\n\t\tcase \"betweenInclusively\": {\n\t\t\tif (!isNumberLike(val)) return false;\n\t\t\tif (!isNumberLike(params[0]) || !isNumberLike(params[1])) return err(`invalid-params/betweenInclusively`, `The 'betweenInclusively' operation requires two numeric parameters`, { params });\n\t\t\tconst valNumIncl = Number(val);\n\t\t\tconst minIncl = Number(params[0]);\n\t\t\tconst maxIncl = Number(params[1]);\n\t\t\treturn valNumIncl >= minIncl && valNumIncl <= maxIncl;\n\t\t}\n\t}\n\treturn unset;\n}\nfunction handle_object(val, op, params) {\n\tswitch (op) {\n\t\tcase \"objectKeyGreaterThan\": {\n\t\t\tconst [key, compare$2] = params;\n\t\t\tif (!isObjectKey(key)) return err(\"invalid-key/objectKeyGreaterThan\", `The compare() function failed while processing the 'objectKeyGreaterThan' operation. The problem was that the 'key' parameter was not a valid Object key!`, {\n\t\t\t\tkey,\n\t\t\t\tcompare: compare$2\n\t\t\t});\n\t\t\tif (!isNumber(compare$2)) return err(\"invalid-param/objectKeyGreaterThan\", `The compare(${String(key)},PARAM) function expects a numeric value as the second parameter when using the objectKeyGreaterThan operation but got '${typeof compare$2}'`, {\n\t\t\t\tkey,\n\t\t\t\tcompare: compare$2\n\t\t\t});\n\t\t\treturn isDictionary(val) ? hasIndexOf(val, key) ? isNumberLike(val[key]) ? Number(val[key]) > compare$2 : false : false : err(`invalid-type/objectKeyGreaterThan`, `The comparison using the 'objectKeyGreaterThan' operation was unable to be performed because the value passed in was not an object!`, {\n\t\t\t\top,\n\t\t\t\tparams\n\t\t\t});\n\t\t}\n\t\tcase \"objectKeyGreaterThanOrEqual\": {\n\t\t\tconst [key, compare$2] = params;\n\t\t\treturn isDictionary(val) ? hasIndexOf(val, key) ? isNumberLike(val[key]) ? Number(val[key]) >= compare$2 : false : false : err(`invalid-type/objectKeyGreaterThanOrEqual`, `The comparison using the 'objectKeyGreaterThanOrEqual' operation was unable to be performed because the value passed in was not an object!`, {\n\t\t\t\top,\n\t\t\t\tparams\n\t\t\t});\n\t\t}\n\t\tcase \"objectKeyLessThan\": {\n\t\t\tconst [key, compare$2] = params;\n\t\t\treturn isDictionary(val) ? hasIndexOf(val, key) ? isNumberLike(val[key]) ? Number(val[key]) < compare$2 : false : false : err(`invalid-type/objectKeyLessThan`, `The comparison using the 'objectKeyLessThan' operation was unable to be performed because the value passed in was not an object!`, {\n\t\t\t\top,\n\t\t\t\tparams\n\t\t\t});\n\t\t}\n\t\tcase \"objectKeyLessThanOrEqual\": {\n\t\t\tconst [key, compare$2] = params;\n\t\t\treturn isDictionary(val) ? hasIndexOf(val, key) ? isNumberLike(val[key]) ? Number(val[key]) <= compare$2 : false : false : err(`invalid-type/objectKeyLessThanOrEqual`, `The comparison using the 'objectKeyLessThanOrEqual' operation was unable to be performed because the value passed in was not an object!`, {\n\t\t\t\top,\n\t\t\t\tparams\n\t\t\t});\n\t\t}\n\t\tcase \"objectKeyEquals\": {\n\t\t\tconst key = indexOf(params, 0);\n\t\t\tconst compare$2 = indexOf(params, 1);\n\t\t\treturn isDictionary(val) ? hasIndexOf(val, key) ? val[key] === compare$2 : false : err(`invalid-type/objectKeyEquals`, `The comparison using the 'objectKeyEquals' operation was unable to be performed because the value passed in was not an object!`, {\n\t\t\t\top,\n\t\t\t\tparams\n\t\t\t});\n\t\t}\n\t\tcase \"objectKeyExtends\": return err(`not-done`, `the 'objectKeyExtends' operation is not yet implemented in the runtime`);\n\t}\n\treturn unset;\n}\nfunction handle_datetime(val, op, params) {\n\tlet outcome = null;\n\tif ([\n\t\t\"sameDay\",\n\t\t\"sameMonth\",\n\t\t\"sameMonthYear\",\n\t\t\"sameYear\",\n\t\t\"after\",\n\t\t\"before\"\n\t].includes(op)) {\n\t\tif (!isDateLike(params[0])) return err(\"invalid-params/not-date-like\", `The '${op}' operation expects the first parameter to be a DateLike value but it was not!`);\n\t\tif (!isDateLike(val)) return err(\"invalid-value/not-date-like\", `The '${op}' operation expects the value to be a DateLike value but it was not!`);\n\t\tswitch (op) {\n\t\t\tcase \"sameDay\": {\n\t\t\t\tconst value = parseDate(val);\n\t\t\t\tconst comparator = parseDate(params[0]);\n\t\t\t\tif (isParsedDate(comparator) && isParsedDate(value)) {\n\t\t\t\t\toutcome = value.year === comparator.year && value.month === comparator.month && value.date === comparator.date;\n\t\t\t\t\treturn outcome;\n\t\t\t\t} else if (isError(value)) return err(\"invalid-value/compare\", `The sameDay operation got a value which was unable to be parsed into a date!`, {\n\t\t\t\t\top,\n\t\t\t\t\tparams,\n\t\t\t\t\tval\n\t\t\t\t});\n\t\t\t\telse if (isError(comparator)) return err(\"invalid-params/compare\", `The sameDay operation was configured with a parameter which was unable to be parsed into a date!`, {\n\t\t\t\t\top,\n\t\t\t\t\tparams,\n\t\t\t\t\tval\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"sameMonth\": {\n\t\t\t\tconst value = asDate(val);\n\t\t\t\tconst comparator = asDate(params[0]);\n\t\t\t\toutcome = value.getMonth() === comparator.getMonth();\n\t\t\t\treturn outcome;\n\t\t\t}\n\t\t\tcase \"sameMonthYear\": {\n\t\t\t\tconst value = asDate(val);\n\t\t\t\tconst comparator = asDate(params[0]);\n\t\t\t\toutcome = value.getMonth() === comparator.getMonth() && value.getFullYear() === comparator.getFullYear();\n\t\t\t\treturn outcome;\n\t\t\t}\n\t\t\tcase \"sameYear\": {\n\t\t\t\tconst value = asDate(val);\n\t\t\t\tconst comparator = asDate(params[0]);\n\t\t\t\toutcome = value.getFullYear() === comparator.getFullYear();\n\t\t\t\treturn outcome;\n\t\t\t}\n\t\t\tcase \"after\": return isDateLike(params[0]) ? isAfter(params[0])(val) : err(\"invalid-params/not-date-like\");\n\t\t\tcase \"before\": {\n\t\t\t\tconst value = asDateTime(val);\n\t\t\t\tconst comparator = asDateTime(params[0]);\n\t\t\t\toutcome = value.getTime() < comparator.getTime();\n\t\t\t\treturn outcome;\n\t\t\t}\n\t\t}\n\t}\n\treturn unset;\n}\nfunction handle_other(val, op, params) {\n\tswitch (op) {\n\t\tcase \"errors\": return val === null ? false : val === void 0 ? false : val instanceof Error;\n\t\tcase \"errorsOfType\":\n\t\t\tif (!(val instanceof Error)) return false;\n\t\t\tif (!params[0]) return err(`invalid-params/errorsOfType`, `The 'errorsOfType' operation requires a type parameter`, { params });\n\t\t\treturn \"type\" in val && val.type === params[0];\n\t\tcase \"hasLength\": if (isString(val)) return isNarrowableArray(params) && contains(params, val.length);\n\t\telse if (isNumber(val)) return isNarrowableArray(params) && contains(params, `${val}`.length);\n\t\telse if (isArray(val)) return isNarrowableArray(params) && contains(params, val.length);\n\t\telse return false;\n\t\tcase \"returnEquals\":\n\t\t\tif (!isFunction(val)) return false;\n\t\t\treturn err(`compare/runtime`, `The comparison type \"returnEquals\" can not be evaluated in the runtime system!`);\n\t\tcase \"returnExtends\":\n\t\t\tif (!isFunction(val)) return false;\n\t\t\treturn err(`compare/runtime`, `The comparison type \"returnExtends\" can not be evaluated in the runtime system!`);\n\t}\n\treturn unset;\n}\nfunction compareFn(op, params) {\n\tconst fn$1 = (val) => {\n\t\tif (isComparisonOperation(op)) {\n\t\t\tlet result$1 = unset;\n\t\t\tresult$1 = handle_string(val, op, params);\n\t\t\tif (isBoolean(result$1) || isError(result$1)) return result$1;\n\t\t\tresult$1 = handle_object(val, op, params);\n\t\t\tif (isBoolean(result$1) || isError(result$1)) return result$1;\n\t\t\tresult$1 = handle_numeric(val, op, params);\n\t\t\tif (isBoolean(result$1) || isError(result$1)) return result$1;\n\t\t\tresult$1 = handle_datetime(val, op, params);\n\t\t\tif (isBoolean(result$1) || isError(result$1)) return result$1;\n\t\t\tresult$1 = handle_other(val, op, params);\n\t\t\tif (isBoolean(result$1) || isError(result$1)) return result$1;\n\t\t\tresult$1 = handle_general(val, op, params);\n\t\t\tif (isBoolean(result$1) || isError(result$1)) return result$1;\n\t\t\treturn false;\n\t\t} else return err(`invalid-operation`, `The operation '${String(op)}' is not a valid operation for the compare utility!`, {\n\t\t\top,\n\t\t\tparams\n\t\t});\n\t};\n\tconst comparator = Object.assign(fn$1, {\n\t\tkind: \"comparator\",\n\t\top,\n\t\tparams,\n\t\tfn: fn$1\n\t});\n\treturn comparator;\n}\n/**\n* **compare**`(op, ...params) -> (val) -> boolean`\n*\n* A higher order function which can perform type-strong comparison\n* operations.\n*/\nfunction compare(op, ...params) {\n\tlet response;\n\tif (isComparisonOperation(op)) if (isValidComparisonParams(op, params)) response = compareFn(op, params);\n\telse response = err(\"invalid-params\", `The parameters for the operation '${isString(op) ? op : \"undefined\"}' are invalid!`, {\n\t\top,\n\t\tparams\n\t});\n\telse response = err(\"invalid-operation\", `The operation is not a recognized or valid comparison operation!`, {\n\t\top,\n\t\tparams\n\t});\n\treturn response;\n}\n\n//#endregion\n//#region src/combinators/contains.ts\nfunction contains(content, comparator) {\n\tconst valueMatches = (value, comp) => {\n\t\tif (value === comp) return true;\n\t\tif (comp === String) return typeof value === \"string\";\n\t\tif (comp === Number) return typeof value === \"number\";\n\t\tif (comp === Boolean) return typeof value === \"boolean\";\n\t\tif (comp === null) return value === null;\n\t\tif (comp === void 0) return value === void 0;\n\t\treturn false;\n\t};\n\tif (typeof content === \"string\" || typeof content === \"number\") {\n\t\tconst contentStr = String(content);\n\t\tif (Array.isArray(comparator)) return comparator.some((comp) => contentStr.includes(String(comp)));\n\t\treturn contentStr.includes(String(comparator));\n\t} else if (Array.isArray(content)) {\n\t\tif (Array.isArray(comparator)) return content.some((item) => comparator.some((comp) => valueMatches(item, comp)));\n\t\treturn content.some((item) => valueMatches(item, comparator));\n\t} else return false;\n}\n\n//#endregion\n//#region src/combinators/or.ts\n/**\n* **or**(conditions) -> boolean\n*\n* If you have a discrete list of boolean values then you can use this\n* function to perform a logical OR operation on them.\n*/\nfunction or(...conditions) {\n\tconst values = conditions.includes(true);\n\treturn values;\n}\n\n//#endregion\n//#region src/lists/find.ts\n/**\n* **find**(op, ...params) => (value) => el | undefined\n*\n* A higher order function that allows _finding_ an element in a list\n* while preserving any available type information.\n*/\nfunction find(op, ...params) {\n\treturn (list) => {\n\t\treturn list.find((i) => {\n\t\t\tconst comparator = compare(op, ...params);\n\t\t\treturn comparator(i);\n\t\t});\n\t};\n}\n\n//#endregion\n//#region src/lists/getEach.ts\n/**\n* **getEach**(list, dotPath, [options])\n*\n* Returns a specific _property_ (from an object) or _index_ (from an array) from a list\n* of items.\n*\n* - the options allow for a \"default value\" to be substituted for any _undefined_ or _never_ values\n* - errors in looking up dot path's will -- by default -- be removed as this is typically the desired\n* behavior but you can also choose from:\n* - `to-never`: converts _type_ to `never` but runtime maintains error message\n*/\nfunction getEach(list, dotPath) {\n\tconst result$1 = list.map((i) => dotPath === null ? i : typeof i === \"object\" ? get(i, dotPath) : Array.isArray(i) ? get(i, dotPath) : null).filter((i) => !isError(i));\n\treturn result$1;\n}\n\n//#endregion\n//#region src/lists/indexOf.ts\n/**\n* **indexOf**(val, index)\n*\n* A dereferencing utility which receives a **value** and an **index** and then\n* returns `value[idx]`.\n*\n* - If the _index_ is passed in as a `null` value then no dereferencing will be done\n* and it will simply pass back the _value_.\n* - If an array is passed in, you are allowed to use negative values to dereference\n* off the back of the array.\n*/\nfunction indexOf(val, index) {\n\tconst isNegative = isNumber(index) && index < 0;\n\tif (isNegative && !Array.isArray(val)) throw new Error(`The indexOf(val,idx) utility received a negative index value [${index}] but the value being de-references is not an array [${typeof val}]!`);\n\tif (isNegative && Array.isArray(val) && val.length < Math.abs(index)) throw new Error(`The indexOf(val,idx) utility received a negative index of ${index} but the length of the array passed in is only ${val.length}! This is not allowed.`);\n\t/** real index after considering negative indexing */\n\tconst idx = isNegative && Array.isArray(val) ? val.length + 1 - Math.abs(index) : index;\n\treturn index === null ? val : idx === null ? val : Array.isArray(val) ? Number(idx) in val ? val[Number(idx)] : err(\"invalid-index\", `attempt to index a numeric array with an invalid index: ${Number(idx)}`) : typeof val === \"object\" ? String(idx) in val ? val[String(idx)] : err(\"invalid-index\", `attempt to index a dictionary object with an invalid index: ${String(idx)}`) : err(\"invalid-container-type\", `Attempt to use indexOf() on an invalid container type: ${typeof val}`);\n}\n\n//#endregion\n//#region src/lists/intersection.ts\nfunction intersectWithOffset(a, b, deref) {\n\tconst aIndexable = a.every((i) => isIndexable(i));\n\tconst bIndexable = b.every((i) => isIndexable(i));\n\tif (!aIndexable || !bIndexable) if (!aIndexable) throw new Error(`The \"a\" array passed into intersect(a,b) was not fully composed of indexable properties: ${a.map((i) => typeof i).join(\", \")}`);\n\telse throw new Error(`The \"b\" array passed into intersect(a,b) was not fully composed of indexable properties: ${b.map((i) => typeof i).join(\", \")}`);\n\tconst aMatches = getEach(a, deref);\n\tconst bMatches = getEach(b, deref);\n\tconst sharedKeys$1 = ifNotNull(deref, (v) => [a.filter((i) => Array.from(bMatches).includes(get(i, v))), b.filter((i) => Array.from(aMatches).includes(get(i, v)))], () => a.filter((k) => b.includes(k)));\n\treturn sharedKeys$1;\n}\nfunction intersectNoOffset(a, b) {\n\treturn a.length < b.length ? a.filter((val) => b.includes(val)) : b.filter((val) => a.includes(val));\n}\n/**\n* **intersection**(a,b,[deref])\n*\n* A set operation which provides the _intersection_ between\n* between two array's `a` and `b`.\n*\n* - when passing in arrays, you may also pass in a _dereferencing_ property\n* which will be used for arrays of objects (or sub-arrays) so that the comparison\n* is done on the dereferenced value versus the value as a whole.\n*/\nfunction intersection(a, b, deref = null) {\n\treturn deref === null ? intersectNoOffset(a, b) : intersectWithOffset(a, b, deref);\n}\n\n//#endregion\n//#region src/lists/joinWith.ts\n/**\n* **join**(joinWith)(tuple) -> joined\n*\n* A higher order runtime utility which provides the ability to create\n* type-strong join's with an array of string and a joining string.\n*\n* ```ts\n* // \"hello world\"\n* const helloWorld = join(\"\")(\"hello\", \" \", \"world\");\n* // \"foo, bar, baz\"\n* const list = join(\", \")(\"foo\", \"bar\", \"baz\");\n* ```\n*/\nfunction joinWith(joinWith$1) {\n\t/**\n\t* add elements of the tuple you want to join\n\t*/\n\tconst fn$1 = (...tuple$1) => {\n\t\tconst tup = tuple$1;\n\t\treturn tup.join(joinWith$1);\n\t};\n\treturn fn$1;\n}\n\n//#endregion\n//#region src/lists/last.ts\nfunction last(list) {\n\treturn [...list].pop();\n}\n\n//#endregion\n//#region src/lists/logicalReturns.ts\nfunction logicalReturns(conditions) {\n\treturn conditions.map((c) => isBoolean(c) ? c : isFunction(c) ? c() : Never);\n}\n\n//#endregion\n//#region src/lists/pop.ts\n/**\n* **pop**`(list) -> [ remaining, popped ]`\n*\n* A utility which takes a list of items and returns a tuple of:\n*\n* - the remaining items after the pop operation\n* - the last item in the list\n*\n* All attempts are made to keep the types literals.\n*/\nfunction pop(list) {\n\tconst before$1 = [...list];\n\tconst last$1 = before$1.pop();\n\treturn [before$1, last$1];\n}\n\n//#endregion\n//#region src/lists/reverse.ts\n/**\n* **reverse**(list)\n*\n* Allows reversing the order of a readonly array and preserving the types.\n*/\nfunction reverse(list) {\n\treturn [...list].reverse();\n}\n\n//#endregion\n//#region src/lists/shift.ts\n/**\n* **shift**(list)\n*\n* Takes a list of elements and:\n*\n* - if the list is empty returns _undefined_\n* - otherwise returns the first element in the list\n*\n* **Note:** unlike using the builtin `ARR.shift()` method:\n*\n* - the source array is _never_ mutated\n* - you can shift off the first element of the readonly array as well a mutable one\n* (because the underlying array is _not_ mutated)\n* - in **many** cases, you should be using a queue of some sort with utils like\n* `createLifoQueue()` or `createFifoQueue()`\n*\n*/\nfunction shift(list) {\n\tlet rtn;\n\tif (isDefined(list)) {\n\t\trtn = list.length === 0 ? void 0 : list[0];\n\t\ttry {\n\t\t\tlist = list.slice(1);\n\t\t} catch {}\n\t} else rtn = void 0;\n\treturn rtn;\n}\n\n//#endregion\n//#region src/lists/slice.ts\n/**\n* **slice**`(list, start, [length])`\n*\n* Runtime utility to slice an array while maintaining strong\n* types.\n*\n* - There are mild variations from the Javascript slice syntax:\n* - the second (optional) parameter is \"length\" instead of index position\n* - this makes using it much easier in most cases\n* - you can use a _negative index_ for **start**\n*/\nfunction slice(list, start$1, length = void 0) {\n\tconst sliced = isNumber(length) ? list.slice(start$1, start$1 + length) : list.slice(start$1);\n\treturn sliced;\n}\n\n//#endregion\n//#region src/lists/sortByKey.ts\n/**\n* **sortByKey**`(items, key, config)`\n*\n* Sorts a tuple of Dictionary-based objects by the\n* specified key of these items.\n*\n* - you can pin to `start` or `end` of the tuple.\n*/\nfunction sortByKey(items, key, config) {\n\tconst o = {\n\t\tstart: config.start ? asArray(config.start) : [],\n\t\tend: config.end ? asArray(config.end) : []\n\t};\n\tconst start$1 = o.start.map((k) => {\n\t\treturn items.find((i) => i[key] === k);\n\t});\n\tconst end = o.end.map((k) => {\n\t\treturn items.find((i) => i[key] === k);\n\t});\n\tconst taken = [...start$1, ...end].map((i) => i[key]);\n\tconst remaining = items.filter((i) => !taken.includes(i[key]));\n\treturn [\n\t\t...start$1,\n\t\t...remaining,\n\t\t...end\n\t];\n}\n\n//#endregion\n//#region src/lists/unique.ts\n/**\n* **unique**\n*\n* Runtime utility which removes intersecting values from two sets and\n* provides a unique values contained in each set.\n*/\nfunction unique(...values) {\n\tconst u = [];\n\tfor (const i of values.flat()) if (!u.includes(i)) u.push(i);\n\treturn u;\n}\n\n//#endregion\n//#region src/string-literals/split-and-join/split.ts\nconst SEP = `sep:\\u00A0`;\nfunction splitUp(content, sep, policy = \"omit\") {\n\tlet inline$1 = content;\n\tfor (const s of sep) {\n\t\tconst pass = [];\n\t\tfor (const c of inline$1) if (c.includes(s) && !c.startsWith(SEP)) {\n\t\t\tconst splits = c.split(s);\n\t\t\tconst all = [];\n\t\t\tfor (const [idx, split$1] of splits.entries()) if (idx < splits.length - 1) all.push(split$1, `${SEP}${s}`);\n\t\t\telse all.push(split$1);\n\t\t\tpass.push(...all);\n\t\t} else pass.push(c);\n\t\tinline$1 = pass;\n\t}\n\tif (policy === \"omit\") inline$1 = inline$1.filter((i) => !i.startsWith(SEP));\n\telse if (policy === \"before\") {\n\t\tlet before$1 = [];\n\t\tfor (const el of inline$1) if (el.startsWith(SEP)) {\n\t\t\tconst val = el.replace(SEP, \"\");\n\t\t\tconst priorVal = last(before$1);\n\t\t\tbefore$1 = [...before$1.slice(0, -1), `${priorVal}${val}`];\n\t\t} else before$1.push(el);\n\t\tinline$1 = before$1;\n\t} else if (policy === \"inline\") inline$1 = inline$1.map((i) => i.startsWith(SEP) ? i.replace(SEP, \"\") : i);\n\treturn inline$1;\n}\nfunction omit(str, ...sep) {\n\treturn splitUp([str], sep, \"omit\");\n}\nfunction before(str, ...sep) {\n\treturn splitUp([str], sep, \"before\");\n}\nfunction inline(str, ...sep) {\n\treturn splitUp([str], sep, \"inline\");\n}\n/**\n* **split**`(str, sep)`\n*\n* Splits a string on a given separator while preserving string literal typing\n* when possible.\n*\n* - The default \"policy\" is to _omit_ the separator from the return tuple\n* - If you want to use the `before`, `after`, or `inline` policy types\n* they are available as properties of this function.\n*/\nconst split = createFnWithProps(omit, {\n\tomit,\n\tbefore,\n\tinline\n});\n\n//#endregion\n//#region src/string-literals/sub-string/retain/retainAfter.ts\n/**\n* **retainAfter**`(content, ...find)`\n*\n* Runtime utility which removes all characters in a given string _until_\n* it finds the first instance of a substring defined in **find** variable.\n*\n* ### Example\n* ```ts\n* // \"world\"\n* const world = retainAfter(\"hello world\", \" \");\n* ```\n*\n* **Related:** `retainAfterInclusive()`\n*/\nfunction retainAfter(content, ...find$1) {\n\tconst idx = Math.min(...find$1.map((i) => content.indexOf(i)).filter((i) => i > -1));\n\tconst min = Math.min(...find$1.map((i) => i.length));\n\tlet len = Math.max(...find$1.map((i) => i.length));\n\tif (min !== len) {\n\t\tif (!find$1.includes(content.slice(idx, len))) len = min;\n\t}\n\treturn idx && idx > 0 ? content.slice(idx + len) : \"\";\n}\n/**\n* **retainAfterInclusive**`(content, ...find)`\n*\n* Runtime utility which removes all characters in a given string _until_\n* it finds the first instance of a substring defined in **find** variable.\n*\n* ### Example\n* ```ts\n* // \" world\"\n* const world = retainAfter(\"hello world\", \" \");\n* ```\n*\n* **Related:** `retainAfter()`\n*/\nfunction retainAfterInclusive(content, ...find$1) {\n\tconst minFound = Math.min(...find$1.map((i) => content.indexOf(i)).filter((i) => i > -1));\n\treturn minFound > 0 ? content.slice(minFound) : \"\";\n}\n\n//#endregion\n//#region src/string-literals/sub-string/retain/retainChars.ts\n/**\n* **retainChars**`(content, ...retain)`\n*\n* Retains the characters from `retain[]` which are\n* found in `content` while discarding the rest.\n*\n* ```ts\n* // \"42\"\n* const num = retainChars(\"4foobar2\", ...NUMERIC_CHAR);\n* ```\n*\n* **Related:** `stripChars()`, `retainWhile()`, `retainUntil()`\n*/\nfunction retainChars(content, ...retain) {\n\tconst chars = asChars(content);\n\treturn chars.filter((c) => retain.includes(c)).join(\"\");\n}\n\n//#endregion\n//#region src/string-literals/sub-string/retain/retainUntil.ts\n/**\n* **retainUntil**`(content, ...find)`\n*\n* Runtime utility which retains all characters in a given string _until_\n* it finds the first instance of a substring defined in **find** variable.\n*\n* ### Example\n* ```ts\n* // \"hello\"\n* const world = retainUntil(\"hello world\", \" \");\n* ```\n*\n* **Related:** `retainUntilInclusive()`\n*/\nfunction retainUntil(content, ...find$1) {\n\tconst chars = asChars(content);\n\tlet idx = 0;\n\twhile (!find$1.includes(chars[idx]) && idx <= chars.length) idx = idx + 1;\n\treturn idx === 0 ? \"\" : content.slice(0, idx);\n}\n/**\n* **retainUntil**`(content, ...find)`\n*\n* Runtime utility which retains all characters in a given string _until_\n* it finds the first instance of a substring defined in **find** variable.\n*\n* ### Example\n* ```ts\n* // \"hello \"\n* const world = retainUntilInclusive(\"hello world\", \" \");\n* ```\n*\n* **Related:** `retainUntil()`\n*/\nfunction retainUntilInclusive(content, ...find$1) {\n\tconst chars = asChars(content);\n\tlet idx = 0;\n\twhile (!find$1.includes(chars[idx]) && idx <= chars.length) idx = idx + 1;\n\treturn idx === 0 ? content.slice(0, 1) : content.slice(0, idx + 1);\n}\n\n//#endregion\n//#region src/string-literals/sub-string/retain/retainUntil__Nested.ts\nfunction findIdx(chars, find$1, nesting$1, stack = [], result$1 = \"\", idx = 0) {\n\tconst f = asArray(find$1);\n\tif (chars.length === 0) if (stack.length > 0) return err(`unbalanced/retainUntil__Nested`, `The characters passed into retainUntil_Nested were unbalanced in the nesting!`, {\n\t\tfind: find$1,\n\t\tstack: toStringLiteral(stack),\n\t\tcontent: result$1\n\t});\n\telse return err(`not-found/retainUntil__Nested`, `The characters passed into retainUntil_Nested had a balanced nesting but the character '${find$1}' was never found at the root of the nesting stack!`, {\n\t\tfind: find$1,\n\t\tcontent: result$1\n\t});\n\tif (f.includes(chars[0]) && stack.length === 0) return idx;\n\tif (isNestingEndMatch(chars[0], stack, nesting$1) === true) {\n\t\tconst newStack = [...stack].slice(0, -1);\n\t\tif (chars[0] === find$1 && newStack.length === 0) return idx;\n\t\treturn findIdx(afterFirst(chars), find$1, nesting$1, newStack, `${result$1}${chars[0]}`, idx + 1);\n\t} else if (isNestingStart(chars[0], nesting$1) === true) {\n\t\tconst shouldLimitStack = isNestingTuple(nesting$1) && stack.length > 0;\n\t\treturn findIdx(afterFirst(chars), find$1, nesting$1, shouldLimitStack ? stack : [...stack, chars[0]], `${result$1}${chars[0]}`, idx + 1);\n\t} else return findIdx(afterFirst(chars), find$1, nesting$1, stack, `${result$1}${chars[0]}`, idx + 1);\n}\n/**\n* **retainUntil__Nested**(str, find, [incl], [nesting])\n*\n* Returns a sub-string of `str`, terminating with `find` character\n* which exists at the base of the nesting stack.\n*\n* - if the find character is _not found_ at the base of the nesting\n* stack an error will be returned.\n*/\nfunction retainUntil__Nested(str, find$1, incl = true, nesting$1 = mutable(BRACKET_NESTING)) {\n\tconst config = isString(nesting$1) ? nesting$1 === \"default\" || nesting$1 === \"brackets\" ? BRACKET_NESTING : nesting$1 === \"quotes\" ? QUOTE_NESTING : Never : nesting$1;\n\tconst idx = findIdx(asChars(str), find$1, config);\n\tif (isNumber(idx)) {\n\t\tconst endIdx = incl ? idx + 1 : idx;\n\t\treturn str.slice(0, endIdx);\n\t} else return idx;\n}\n\n//#endregion\n//#region src/string-literals/sub-string/retain/retainWhile.ts\n/**\n* **retainWhile**`(content, ...retain)`\n*\n* Retains the characters at the start of the string\n* so long as they are part of the character values\n* passed in for `retain[]`\n*/\nfunction retainWhile(content, ...retain) {\n\tconst stopIdx = asChars(content).findIndex((c) => !retain.includes(c));\n\treturn content.slice(0, stopIdx);\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripAfter.ts\n/**\n* **stripAfter**(content, find)\n*\n* Runtime utility which strips out all characters after (and including)\n* the \"find\" string while returning a strong type.\n*\n* ### Example\n* ```ts\n* // \"hello\"\n* const hello = stripAfter(\"hello world\", \" \");\n* ```\n*/\nfunction stripAfter(content, find$1) {\n\treturn content.split(find$1).shift();\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripAfterLast.ts\n/**\n* **stripAfterLast**(content, find)\n*\n* Runtime utility which strips out all characters after (and including)\n* the _last_ instance of the \"find\" string while returning a strong type.\n*\n* ### Example\n* ```ts\n* // \"hello world\"\n* const hello = stripAfterLast(\"hello world Joey\", \" \");\n* ```\n*/\nfunction stripAfterLast(content, find$1) {\n\tconst parts = split.inline(content, find$1);\n\treturn isArray(parts) ? parts.slice(0, -2).join(\"\") : Never;\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripBefore.ts\n/**\n* **stripBefore**(content, find)\n*\n* Runtime utility which strips out all characters Before (and including)\n* the \"find\" string while returning a strong type.\n*\n* ### Example\n* ```ts\n* // \"hello\"\n* const hello = stripBefore(\"hello world\", \" \");\n* ```\n*/\nfunction stripBefore(content, find$1) {\n\treturn content.split(find$1).slice(1).join(find$1);\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripChars.ts\n/**\n* **stripChars**`(content, ...strip)`\n*\n* Strips out characters found in `content`.\n*\n* **Related:** `retainChars()`\n*/\nfunction stripChars(content, ...strip) {\n\tconst chars = asChars(content);\n\treturn chars.filter((c) => !strip.includes(c)).join(\"\");\n}\n\n//#endregion\n//#region src/errors/createErrorCondition.ts\n/**\n* **createErrorConditionTemplate**`(kind,[msg],[utility]) => ErrorCondition`\n*\n* A higher order runtime utility for generating reusable `ErrorCondition`'s at\n* runtime.\n*/\nfunction createErrorCondition(kind, msg = \"\", utility = \"\") {\n\treturn {\n\t\t__kind: \"Error\",\n\t\tkind,\n\t\tmsg,\n\t\tutility\n\t};\n}\nfunction errCondition(kind, msg) {\n\treturn {\n\t\t__kind: \"Error\",\n\t\tkind,\n\t\tmsg\n\t};\n}\n\n//#endregion\n//#region src/errors/dropFirstStackFrame.ts\n/**\n* Drops the first stack frame line from `err.stack` in-place (if possible).\n* Returns the same error for chaining.\n*\n* Definition of “first frame”: the first line that *starts* with whitespace\n* then 'at ' (V8 / Node / most Chromium) OR matches Firefox style like\n* `functionName@file:line:col`.\n*/\nfunction dropFirstStackFrame(err$1) {\n\tif (!err$1 || typeof err$1.stack !== \"string\") return err$1;\n\tconst lines = err$1.stack.split(/\\r?\\n/);\n\tif (lines.length <= 1) return err$1;\n\tconst frameIdx = lines.findIndex((l, i) => {\n\t\tif (i === 0) return false;\n\t\tif (/^\\s*at\\s+/.test(l)) return true;\n\t\tif (/^[^\\s@]*@.+:\\d+:\\d+$/.test(l)) return true;\n\t\treturn false;\n\t});\n\tif (frameIdx > 0) {\n\t\tlines.splice(frameIdx, 1);\n\t\terr$1.stack = lines.join(\"\\n\");\n\t}\n\treturn err$1;\n}\n\n//#endregion\n//#region src/errors/err.ts\n/**\n* **typedError**(type, message, [ctx])\n*\n* @deprecated prefer using the provided `err(type,message,[ctx])`\n* function\n*/\nfunction typedError(type, message = \"\") {\n\tconst err$1 = new Error(message);\n\tconst [t, subType] = type.split(\"/\");\n\terr$1.__kind = \"Error\";\n\terr$1.type = toKebabCase(t);\n\terr$1.subType = toKebabCase(subType);\n\tif (message) err$1.message = message;\n\treturn err$1;\n}\nfunction err(type, message, ctx) {\n\tconst err$1 = new Error(message);\n\tconst [t, subType] = type.split(\"/\");\n\terr$1.type = toKebabCase(t);\n\terr$1.subType = toKebabCase(subType);\n\tif (message) err$1.message = message;\n\tif (ctx) for (const k of Object.keys(ctx)) err$1[k] = ctx[k];\n\treturn dropFirstStackFrame(err$1);\n}\n\n//#endregion\n//#region src/errors/keysWithError.ts\n/**\n* **keysWithError**`(obj)`\n*\n* Returns a list of _keys_ where the passed in object is\n*/\nfunction keysWithError(obj) {\n\tconst keys = Object.keys(obj).filter((k) => {\n\t\treturn isError(indexOf(obj, k));\n\t});\n\treturn keys;\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripLeading.ts\n/**\n* **stripLeading**(content, ...strip)\n*\n* Runtime utility which strips of a leading substring from the\n* primary content if it exists and leaves content unchanged otherwise.\n*/\nfunction stripLeading(content, ...strip) {\n\tif (!isString(content) && !isNumber(content)) return err(\"invalid-type/strip-leading\");\n\tlet output = String(content);\n\tfor (const s of strip) if (output.startsWith(String(s))) output = output.slice(String(s).length);\n\treturn isNumber(content) ? Number(output) : output;\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripSurround.ts\n/**\n* **stripSurround**`(chars) => (input) => _stripped_`\n*\n* A higher order function which allows you to define a string literal\n* stripping function for both the beginning and end of a string literal.\n*\n* ```ts\n* // utility which will strip all starting and ending brackets\n* const stripBrackets = stripSurround(\"(\", \")\", \"[\", \"]\", \"{\", \"}\");\n* // \" hello, world \"\n* const without = stripBrackets(\"[ hello, world ]\")\n* ```\n*\n* **Related**: `stripSurroundAndTrim`\n*/\nfunction stripSurround(...chars) {\n\treturn (input) => {\n\t\tlet output = String(input);\n\t\tfor (const s of chars) {\n\t\t\tif (output.startsWith(String(s))) output = output.slice(String(s).length);\n\t\t\tif (output.endsWith(String(s))) output = output.slice(0, -1 * String(s).length);\n\t\t}\n\t\treturn isNumber(input) ? Number(output) : output;\n\t};\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripTrailing.ts\n/**\n* **stripTrailing**(content, strip)\n*\n* Runtime utility which ensures that last part of a string has substring\n* removed if it exists and that strong typing is preserved.\n*/\nfunction stripTrailing(content, ...strip) {\n\tif (isUndefined(content)) return void 0;\n\tlet output = String(content);\n\tfor (const s of strip) if (output.endsWith(String(s))) output = output.slice(0, -1 * String(s).length);\n\treturn isNumber(content) ? Number(output) : output;\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripUntil.ts\n/**\n* **stripUntil**`(content, ...until)`\n*\n* Strips the characters at the start of the string\n* until a character specified in `until` is found.\n*/\nfunction stripUntil(content, ...until) {\n\tconst stopIdx = asChars(content).findIndex((c) => until.includes(c));\n\treturn content.slice(stopIdx);\n}\n\n//#endregion\n//#region src/string-literals/sub-string/strip/stripWhile.ts\n/**\n* **stripWhile**`(content, ...until)`\n*\n* Strips the characters at the start of the string\n* while they match the characters found in `match`\n* parameter.\n*/\nfunction stripWhile(content, ...match) {\n\tconst stopIdx = asChars(content).findIndex((c) => !match.includes(c));\n\treturn content.slice(stopIdx);\n}\n\n//#endregion\n//#region src/string-literals/sub-string/trim/trim.ts\n/**\n* **trim**(input)\n*\n* A runtime utility which trims whitespace on both sides of a string\n* and returns a type-strong string literal where possible.\n*/\nfunction trim(input) {\n\treturn input.trim();\n}\n\n//#endregion\n//#region src/string-literals/sub-string/trim/trimEnd.ts\n/**\n* **trimEnd**(input)\n*\n* A runtime utility which trims whitespace on the tailing/right side of a string\n* and returns a type-strong string literal where possible.\n*/\nfunction trimEnd(input) {\n\treturn input.trimEnd();\n}\n\n//#endregion\n//#region src/string-literals/sub-string/trim/trimStart.ts\n/**\n* **trimStart**`(input)`\n*\n* A runtime utility which trims whitespace on the leading/left side\n* of a string and returns a type-strong string literal where possible.\n*/\nfunction trimStart(input) {\n\treturn input.trimStart();\n}\n\n//#endregion\n//#region src/string-literals/surround.ts\n/**\n* **surround**(prefix, postfix) -> (input) -> `${prefix}${input}${postfix}`\n*\n* A higher order runtime utility which receives a prefix and postfix string\n* on it's first call. This returns a secondary function which will _surround_\n* the given input with the prefix and postfix strings.\n*\n* **Related:** `ensureSurround()`\n*/\nfunction surround(prefix, postfix) {\n\treturn (input) => `${prefix}${input}${postfix}`;\n}\n\n//#endregion\n//#region src/string-literals/takeNumericCharacters.ts\n/**\n* **takeNumericCharacters**`(content)`\n*\n* Starts at the passed in content and extracts all numeric characters\n* in the string until a non-numeric value arrives.\n*/\nfunction takeNumericCharacters(content) {\n\tconst nonNumericIdx = asChars(content).findIndex((i) => !NUMERIC_CHAR.includes(i));\n\treturn content.slice(0, nonNumericIdx);\n}\n\n//#endregion\n//#region src/string-literals/toNumericArray.ts\nfunction toNumericArray(arr) {\n\treturn arr.map((i) => Number(i));\n}\n\n//#endregion\n//#region src/string-literals/toString.ts\n/**\n* **toString**()\n*\n* Runtime utility which converts any given type to a string while\n* preserving literal types.\n*/\nfunction toString(val) {\n\treturn String(val);\n}\n\n//#endregion\n//#region src/string-literals/truncate.ts\nfunction truncate(content, maxLength, ellipsis = false) {\n\tconst overLimit = content.length > maxLength;\n\treturn overLimit ? ellipsis ? `${content.slice(0, maxLength)}${typeof ellipsis === \"string\" ? ellipsis : \"...\"}` : content.slice(0, maxLength) : content;\n}\n\n//#endregion\n//#region src/string-literals/tuple.ts\n/**\n* **tuple**(value)\n*\n* Creates a discrete tuple.\n* ```ts\n* // [1,2,3]\n* const t1 = tuple(1,2,3);\n* const t2 = tuple([1,2,3]);\n* ```\n*/\nfunction tuple(...values) {\n\tconst arr = values.length === 1 ? values[0] : values;\n\treturn asArray(arr);\n}\n\n//#endregion\n//#region src/string-literals/unset.ts\n/**\n* the runtime token of the type `Unset` which is meant to delineate\n* a value which is in it's default state (aka, has not been set).\n*/\nconst unset = { kind: \"Unset\" };\n\n//#endregion\n//#region src/string-literals/widen.ts\n/**\n* **widen**(value)\n*\n* Runtime utility which takes any _type_ and ensures it's widened to a wide\n* type of passed in value is a literal.\n*/\nfunction widen(value) {\n\treturn value;\n}\n\n//#endregion\n//#region src/type-guards/datetime/isIsoMonthDate.ts\nfunction validate(d) {\n\tconst stripped = stripLeading(d, \"--\");\n\tconst [month, date] = [stripped.slice(0, 2), stripLeading(stripped.slice(3), \":\")];\n\tif (month === \"02\" || ISO_DATE_30.includes(date)) return ISO_DATE_30.includes(date);\n\treturn ISO_DATE_31.includes(date);\n}\n/**\n* **isIsoMonthDate**`(date) -> boolean`\n*\n* type-guard which validates whether this `date` is a valid ISO\n* Month/Date date (aka, a date that is year independent).\n*/\nfunction isIsoMonthDate(date) {\n\treturn isString(date) && date.startsWith(\"--\") && date.replace(/--\\d{2}-?[0-3]\\d/, \"\") === \"\" && validate(date);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isIsoTime.ts\nfunction isIsoExplicitTime(val) {\n\tif (isString(val)) {\n\t\tconst parts = stripLeading(stripAfter(val, \"Z\"), \"T\").split(/[:.]/).map((i) => Number(i));\n\t\treturn val.startsWith(\"T\") && val.includes(\":\") && val.split(\":\").length === 3 && parts[0] >= 0 && parts[0] <= 23 && parts[1] >= 0 && parts[1] <= 59;\n\t} else return false;\n}\nfunction isIsoImplicitTime(val) {\n\tif (isString(val)) {\n\t\tconst parts = stripAfter(val, \"Z\").split(/[:.]/).map((i) => Number(i));\n\t\treturn val.includes(\":\") && val.split(\":\").length === 3 && parts[0] >= 0 && parts[0] <= 23 && parts[1] >= 0 && parts[1] <= 59;\n\t} else return false;\n}\n/**\n* Type guard which validates that the passed in `val` is a valid ISO-8601 time.\n*/\nfunction isIsoTime(val) {\n\treturn isIsoExplicitTime(val) || isIsoImplicitTime(val);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isIsoYear.ts\n/**\n* A type guard which matches a valid ISO 8601 year (e.g., `YYYY`).\n*/\nfunction isIsoYear(val) {\n\treturn !!(isString(val) && val.length === 4 && isNumber(Number(val)) && Number(val) >= 0 && Number(val) <= 9999);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isIsoYearMonth.ts\n/**\n* type-guard which validates whether this\n*/\nfunction isIsoYearMonth(date) {\n\treturn isString(date) && date.startsWith(\"-\") && date.replace(/-\\d{4}-?[01]\\d/, \"\") === \"\";\n}\n\n//#endregion\n//#region src/type-guards/datetime/isLuxonDateTime.ts\n/**\n* Type guard which validates that the passed in `val` is a\n* [LuxonJS](https://moment.github.io/luxon/#/?id=luxon) DateTime object.\n*/\nfunction isLuxonDate(val) {\n\treturn isDictionary(val) && typeof val === \"object\" && val !== null && \"isValid\" in val && \"invalidReason\" in val && \"invalidExplanation\" in val && \"toISO\" in val && \"toFormat\" in val && \"toMillis\" in val && \"year\" in val && \"month\" in val && \"day\" in val && \"hour\" in val && \"minute\" in val && \"second\" in val && \"millisecond\" in val && \"zoneName\" in val && typeof val.isValid === \"boolean\" && typeof val.toISO === \"function\" && typeof val.zoneName === \"string\";\n}\n\n//#endregion\n//#region src/type-guards/datetime/isMoment.ts\n/**\n* **isMoment**`(val)`\n*\n* Type guard which validates that the passed in `val` is a\n* [MomentJS](https://momentjs.com/docs/) object.\n*/\nfunction isMoment(val) {\n\tif (val instanceof Date) return false;\n\treturn isDictionary(val) && typeof val.format === \"function\" && typeof val.year === \"function\" && typeof val.month === \"function\" && typeof val.date === \"function\" && \"_isAMomentObject\" in val && \"_isValid\" in val && typeof val.add === \"function\" && typeof val.subtract === \"function\" && typeof val.toISOString === \"function\" && typeof val.isValid === \"function\";\n}\n\n//#endregion\n//#region src/type-guards/datetime/isMonthAbbrev.ts\n/**\n* type guard which validates that `val` is the name of\n* a month.\n*\n* **Related:** `isMonthName()`\n*/\nfunction isMonthAbbrev(val) {\n\treturn isString(val) && MONTH_ABBR.includes(val);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isMonthName.ts\n/**\n* type guard which validates that `val` is the name of\n* a month.\n*\n* **Related:** `isMonthAbbrev()`\n*/\nfunction isMonthName(val) {\n\treturn isString(val) && MONTH_NAME.includes(val);\n}\n\n//#endregion\n//#region src/type-guards/datetime/isParsedDate.ts\nfunction isParsedDate(val) {\n\treturn isDictionary(val) && \"dateType\" in val;\n}\n\n//#endregion\n//#region src/type-guards/datetime/isTemporalDate.ts\nfunction isTemporalDate(val) {\n\treturn typeof isDictionary(val) && !!Object.prototype.toString.call(val).startsWith(\"[object Temporal.\");\n}\n\n//#endregion\n//#region src/type-guards/datetime/parsing-typeguards.ts\n/**\n* type-guard based on whether `str` is a `FourDigitYear`\n*/\nfunction isFourDigitYear(str) {\n\tconst re = /^(-?\\d{4})$/;\n\treturn isString(str) && re.test(str);\n}\n/**\n* Type-guard for TwoDigitHour\n* Matches \"00\"–\"09\", \"10\"–\"19\", or \"20\"–\"23\"\n*/\nfunction isTwoDigitHour(s) {\n\treturn isString(s) && /^(?:0\\d|1\\d|2[0-3])$/.test(s);\n}\n/**\n* Type-guard for TwoDigitMinute\n*/\nfunction isTwoDigitMinute(s) {\n\treturn isString(s) && /^(?:0\\d|1\\d|2\\d|3\\d|4\\d|5\\d)$/.test(s);\n}\n/**\n* Type-guard for isTwoDigitSecond\n*/\nfunction isTwoDigitSecond(s) {\n\treturn isString(s) && /^(?:0\\d|1\\d|2\\d|3\\d|4\\d|5\\d)$/.test(s);\n}\nfunction isThreeDigitMillisecond(s) {\n\treturn isString(s) && /^\\d\\d\\d$/.test(s);\n}\n/**\n* **isTwoDigitMonth**`(val)`\n*\n* Typeguard that validates that `val` is a valid `TwoDigitMonth`.\n*\n* - the returned type will be a _branded_ variant of the string literal\n* - if you want to just validate but keep the _type_ as a normal string\n* you can pass in `false` to the `branded` variable.\n*/\nfunction isTwoDigitMonth(val, _branded = true) {\n\treturn isString(val) && /^(?:0[1-9]|1[0-2])$/.test(val);\n}\n/**\n* TwoDigitDate = \"01\"–\"09\", \"10\"–\"29\", or \"30\"–\"31\"\n*/\nfunction isTwoDigitDate(s) {\n\treturn isString(s) && /^(?:0[1-9]|[12]\\d|3[01])$/.test(s);\n}\n/**\n* MinimalDigitDate = \"1\"–\"9\", or \"10\"–\"29\", or \"30\"–\"31\"\n*/\nfunction isMinimalDigitDate(s) {\n\treturn isString(s) && /^(?:[1-9]|[12]\\d|3[01])$/.test(s);\n}\n/**\n*\n* Valid formats include:\n* - \"Z\"\n* - (\"+\"|\"-\") + TwoDigitHour\n* - (\"+\"|\"-\") + TwoDigitHour + TwoDigitMinute\n* - (\"+\"|\"-\") + TwoDigitHour + \":\" + TwoDigitMinute\n*\n* Where:\n* - `TwoDigitHour`: 00–23\n* - `TwoDigitMinute`: 00–59\n*/\nfunction isTimezoneOffset(s) {\n\treturn isString(s) && /^(?:Z|[+\\-](?:0?\\d|1\\d|2[0-3])(?::?[0-5]\\d)?)$/.test(s);\n}\n\n//#endregion\n//#region src/type-guards/dictionary/hasOnlyStringKeys.ts\n/**\n* type-guard which validates that `val` is an object with **only** strings\n* as a key.\n*\n* **Related:** `hasOnlySymbolKeys()`\n*/\nfunction hasOnlyStringKeys(val) {\n\treturn isDictionary(val) && Object.getOwnPropertySymbols(val).length === 0;\n}\n\n//#endregion\n//#region src/type-guards/dictionary/hasOnlyStringValues.ts\n/**\n* type-guard which validates that `val` is an object with **only** string\n* values.\n*\n* **Related:** `hasOnlyStringKeys()`\n*/\nfunction hasOnlyStringValues(val) {\n\treturn isDictionary(val) && Object.keys(val).every((i) => isString(i));\n}\n\n//#endregion\n//#region src/type-guards/dictionary/hasOnlySymbolKeys.ts\n/**\n* type-guard which validates that `val` is an object with **only** symbol\n* as a key.\n*\n* **Related:** `hasOnlySymbolKeys()`, `hasOnlyStringKeys()`\n*/\nfunction hasOnlySymbolKeys(val) {\n\treturn isDictionary(val) && Object.getOwnPropertySymbols(val).length > 0 && Object.keys(val).length === 0;\n}\n\n//#endregion\n//#region src/type-guards/dictionary/hasSymbolKeys.ts\n/**\n* type-guard which validates that `val` is an object with at least one symbol\n* as a key.\n*\n* **Related:** `hasOnlySymbolKeys()`, `hasOnlyStringKeys()`\n*/\nfunction hasSymbolKeys(val) {\n\treturn isDictionary(val) && Object.getOwnPropertySymbols(val).length > 0;\n}\n\n//#endregion\n//#region src/type-guards/finance/CreditCards.ts\nfunction isVisa(val) {\n\tif (isString(val) && val.startsWith(\"4\")) {\n\t\tconst parts = val.split(\" \");\n\t\treturn parts.length === 4 && parts.every((i) => isNumberLike(i) && i.length === 4);\n\t}\n\treturn false;\n}\nfunction isMastercard(val) {\n\tif (isString(val) && val.startsWith(\"4\")) {\n\t\tconst parts = val.split(\" \");\n\t\treturn parts.length === 4 && parts.every((i) => isNumberLike(i) && i.length === 4) && [\n\t\t\t\"51\",\n\t\t\t\"55\",\n\t\t\t\"22\",\n\t\t\t\"23\",\n\t\t\t\"24\",\n\t\t\t\"25\",\n\t\t\t\"26\",\n\t\t\t\"27\"\n\t\t].some((i) => val.startsWith(i));\n\t}\n\treturn false;\n}\nfunction isVisaMastercard(val) {\n\treturn isVisa(val) || isMastercard(val);\n}\nfunction isAmericanExpress(val) {\n\tif (isString(val)) {\n\t\tconst parts = val.split(\" \");\n\t\treturn parts.length === 3 && parts.every((i) => isNumberLike(i) && parts[0].length === 4 && parts[1].length === 6);\n\t}\n\treturn false;\n}\nfunction isCreditCard(val) {\n\treturn isVisaMastercard(val) || isAmericanExpress(val);\n}\n/**\n* Given a card's long number, attempt to match this to a card type from:\n*\n* - Visa, Mastercard\n* - American Express\n* - Discover\n* - JCB\n* - Diners Club\n* - China UnionPay\n* - Maestro\n* - Solo\n*/\nfunction cardType(cardNumber) {\n\tconst cleanedNumber = String(cardNumber).replace(/\\D/g, \"\");\n\tconst length = cleanedNumber.length;\n\tif (!isValidLength(length)) return \"invalid\";\n\tif (!luhnCheck(cleanedNumber)) return \"invalid\";\n\tconst cardTypes = [\n\t\t{\n\t\t\tname: \"Visa\",\n\t\t\tlengths: [16],\n\t\t\tprefixes: [/^4/]\n\t\t},\n\t\t{\n\t\t\tname: \"Mastercard\",\n\t\t\tlengths: [16],\n\t\t\tprefixes: [/^(51|52|53|54|55|222[1-9]|22[3-9]\\d|2[3-6]\\d{2}|27[01]\\d|2720)/]\n\t\t},\n\t\t{\n\t\t\tname: \"American Express\",\n\t\t\tlengths: [15],\n\t\t\tprefixes: [/^3[47]/]\n\t\t},\n\t\t{\n\t\t\tname: \"Discover\",\n\t\t\tlengths: [16],\n\t\t\tprefixes: [/^(6011|622(12[6-9]|1[3-9]\\d|2[0-4]\\d|25\\d|6[4-9]|7[0-4]|8[0-4]|9\\d)|64[4-9]|65)/]\n\t\t},\n\t\t{\n\t\t\tname: \"JCB\",\n\t\t\tlengths: [16],\n\t\t\tprefixes: [/^(35|2131|1800)/]\n\t\t},\n\t\t{\n\t\t\tname: \"Diners Club\",\n\t\t\tlengths: [14, 16],\n\t\t\tprefixes: [/^(30[0-5]|36|38)/]\n\t\t},\n\t\t{\n\t\t\tname: \"China UnionPay\",\n\t\t\tlengths: [\n\t\t\t\t16,\n\t\t\t\t17,\n\t\t\t\t18,\n\t\t\t\t19\n\t\t\t],\n\t\t\tprefixes: [/^(62|88)/]\n\t\t},\n\t\t{\n\t\t\tname: \"Maestro\",\n\t\t\tlengths: [\n\t\t\t\t12,\n\t\t\t\t13,\n\t\t\t\t14,\n\t\t\t\t15,\n\t\t\t\t16,\n\t\t\t\t17,\n\t\t\t\t18,\n\t\t\t\t19\n\t\t\t],\n\t\t\tprefixes: [/^(5018|5020|5038|6304)/]\n\t\t},\n\t\t{\n\t\t\tname: \"Solo\",\n\t\t\tlengths: [\n\t\t\t\t16,\n\t\t\t\t18,\n\t\t\t\t19\n\t\t\t],\n\t\t\tprefixes: [/^(6334|6767)/]\n\t\t}\n\t];\n\tfor (const type of cardTypes) if (type.lengths.includes(length)) {\n\t\tfor (const prefix of type.prefixes) if (prefix.test(cleanedNumber)) return type.name;\n\t}\n\treturn \"invalid\";\n}\nfunction isValidLength(length) {\n\tconst validLengths = [\n\t\t13,\n\t\t14,\n\t\t15,\n\t\t16,\n\t\t17,\n\t\t18,\n\t\t19\n\t];\n\treturn validLengths.includes(length);\n}\nfunction luhnCheck(num) {\n\tlet sum = 0;\n\tlet double = false;\n\tfor (let i = num.length - 1; i >= 0; i--) {\n\t\tlet n = Number.parseInt(num.charAt(i), 10);\n\t\tif (double) {\n\t\t\tn *= 2;\n\t\t\tif (n > 9) n -= 9;\n\t\t}\n\t\tsum += n;\n\t\tdouble = !double;\n\t}\n\treturn sum % 10 === 0;\n}\n\n//#endregion\n//#region src/type-guards/geo/isIso3166Alpha2.ts\n/**\n* Type guard which checks whether `val` is a 2 character country\n* representation found in the ISO3166-1 standard.\n*/\nfunction isIso3166Alpha2(val) {\n\tconst codes = ISO3166_1.map((i) => i.alpha2);\n\treturn isString(val) && codes.includes(val);\n}\n/**\n* Type guard which checks whether `val` is a 2 character country\n* representation found in the ISO3166-1 standard.\n*\n* **Alias:** `isIso3166Alpha2`\n*/\nfunction isCountryCode2(val) {\n\tconst codes = ISO3166_1.map((i) => i.alpha2);\n\treturn isString(val) && codes.includes(val);\n}\n/**\n* Type guard which checks whether `val` is a 3 character country\n* representation found in the ISO3166-1 standard.\n*/\nfunction isIso3166Alpha3(val) {\n\tconst codes = ISO3166_1.map((i) => i.alpha3);\n\treturn isString(val) && codes.includes(val);\n}\n/**\n* Type guard which checks whether `val` is a 3 character country\n* representation found in the ISO3166-1 standard.\n*\n* **Alias:** `isIso3166Alpha3`\n*/\nfunction isCountryCode3(val) {\n\tconst codes = ISO3166_1.map((i) => i.alpha3);\n\treturn isString(val) && codes.includes(val);\n}\n/**\n* Type guard which checks whether `val` is a 3 character country\n* representation found in the ISO3166-1 standard.\n*/\nfunction isIso3166CountryCode(val) {\n\tconst codes = ISO3166_1.map((i) => i.countryCode);\n\treturn isString(val) && codes.includes(val);\n}\n/**\n* Type guard which checks whether `val` is a 2 or 3 character country\n* abbreviation found in the ISO3166-1 standard.\n*/\nfunction isCountryAbbrev(val) {\n\treturn isCountryCode2(val) || isCountryCode3(val);\n}\n/**\n* Type guard which checks whether `val` is a valid ISO3166-1 country name.\n*/\nfunction isIso3166CountryName(val) {\n\tconst codes = ISO3166_1.map((i) => i.name);\n\treturn isString(val) && codes.includes(val);\n}\n/**\n* Type guard which checks whether `val` is a valid ISO3166-1 country name.\n*\n* **Alias:** `isIso3166CountryName`\n*/\nfunction isCountryName(val) {\n\tconst codes = ISO3166_1.map((i) => i.name);\n\treturn isString(val) && codes.includes(val);\n}\n\n//#endregion\n//#region src/type-guards/geo/isUsState.ts\nconst ABBREV = US_STATE_LOOKUP.map((i) => i.abbrev);\nconst NAME = US_STATE_LOOKUP.map((i) => i.name);\nfunction isUsStateAbbreviation(val) {\n\treturn isString(val) && ABBREV.includes(val);\n}\nfunction isUsStateName(val) {\n\treturn isString(val) && NAME.includes(val);\n}\n\n//#endregion\n//#region src/type-guards/geo/isZipCode.ts\n/**\n* Type guard which validates that passed in value is a US ZipCode\n* in the `Zip5` format.\n*\n* **Related:** `isZipCode()`, `isZipPlus4()`\n*/\nfunction isZipCode5(val) {\n\tif (isNumber(val)) return isZipCode5(`${val}`);\n\treturn isString(val) && val.trim().length === 5 && isNumberLike(val.trim());\n}\n/**\n* Type guard which validates that passed in value is a US ZipCode\n* in the `ZipPlus4` format.\n*\n* **Related:** `isZipCode()`, `isZipCode5()`\n*/\nfunction isZipPlus4(val) {\n\tif (isString(val)) {\n\t\tconst first = retainWhile(val.trim(), ...NUMERIC_CHAR);\n\t\tconst next = stripChars(val.trim().replace(first, \"\").trim(), \"-\");\n\t\treturn first.length === 5 && next.length === 4 && isNumberLike(next);\n\t}\n\treturn false;\n}\n/**\n* Type guard which validates that passed in value is a US ZipCode\n* in either the `Zip5` or `ZipPlus4` format.\n*\n* **Related:** `isZipCode5()`, `isZipPlus4()`\n*/\nfunction isZipCode(val) {\n\treturn isZipCode5(val) || isZipPlus4(val);\n}\n\n//#endregion\n//#region src/type-guards/hasDefaultValue.ts\n/**\n* **hasDefaultValue**(value)\n*\n* Type guard which helps to eliminate the use case where a value which _might_ be a\n* `DefaultValue` is _not_ in this initial state and therefore indicating that the value\n* **is** in fact a default value.\n*\n* Probably a better way to phrase this. :)\n*/\nfunction hasDefaultValue(value) {\n\tconst noDefault = isSpecificConstant(\"no-default-value\");\n\treturn !noDefault(value);\n}\n\n//#endregion\n//#region src/type-guards/hasIndexOf.ts\n/**\n* **hasIndexOf**(value, idx) => boolean\n*\n* A type guard which determines whether container passed in has\n* an explicit index.\n*/\nfunction hasIndexOf(value, idx) {\n\tconst result$1 = isDictionary(value) ? String(idx) in value : Array.isArray(value) ? Number(idx) in value : false;\n\treturn isError(result$1) ? false : result$1;\n}\n\n//#endregion\n//#region src/type-guards/hasKeys.ts\nfunction hasKeys(...keys) {\n\tif (keys.length === 0) return Never;\n\treturn (val) => {\n\t\tconst iterable = isDictionary(keys[0]) && keys.length === 1 ? keysOf(keys[0]) : keys;\n\t\treturn !!(isDictionary(val) && iterable.every((k) => {\n\t\t\tif (!indexOf(val, k)) return false;\n\t\t\tif (isDictionary(keys[0]) && keys.length === 1) {\n\t\t\t\tconst v = val[k];\n\t\t\t\tconst comparable = keys[0][k];\n\t\t\t\tif (isSameTypeOf(v)(comparable)) return true;\n\t\t\t\telse return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}));\n\t};\n}\n\n//#endregion\n//#region src/type-guards/hasNonStringKeys.ts\n/**\n* Type guard which checks if the value passed in is an object which _has_ non-string\n* keys.\n*/\nfunction hasNonStringKeys(val) {\n\treturn isDictionary(val) && Object.getOwnPropertySymbols(val).length > 0;\n}\n\n//#endregion\n//#region src/type-guards/hasWhitespace.ts\n/**\n* **hasWhiteSpace**`(val)`\n*\n* Type guard which checks whether a string has a any whitespace characters in it\n*/\nfunction hasWhiteSpace(val) {\n\treturn isString(val) && asChars(val).some((c) => WHITESPACE_CHARS.includes(c));\n}\n\n//#endregion\n//#region src/type-guards/higher-order/endsWith.ts\n/**\n* **endsWith**(endingWith) => (val) -> true | false\n*\n* A higher-level builder pattern which is used to create a boolean\n* operator which indicates whether the given function ends with any\n* of the provided `endingWith` string literal values.\n*/\nfunction endsWithTypeguard(...endingWith) {\n\treturn (val) => {\n\t\treturn isString(val) || isNumber(val) ? endingWith.some((i) => String(i) !== \"\" && String(val).endsWith(String(i))) : false;\n\t};\n}\nfunction endsWith(...endingWith) {\n\treturn (val) => {\n\t\treturn isString(val) || isNumber(val) ? endingWith.some((i) => String(i) !== \"\" && String(val).endsWith(String(i))) : false;\n\t};\n}\n\n//#endregion\n//#region src/type-guards/higher-order/isEqual.ts\nfunction compare$1(base) {\n\treturn (value) => {\n\t\treturn base.includes(value);\n\t};\n}\n/**\n* **isEqual**(compareTo)(value)\n*\n* Higher order type guard to detect whether two values are equal\n*/\nfunction isEqual(...base) {\n\treturn compare$1(base);\n}\n\n//#endregion\n//#region src/type-guards/higher-order/isInUnion.ts\nconst TOKENS = [\n\t\"undefined\",\n\t\"null\",\n\t\"string\",\n\t\"number\",\n\t\"boolean\",\n\t\"Array\",\n\t\"Array<Dict>\",\n\t\"Array<number>\",\n\t\"Array<string>\",\n\t\"Array<boolean>\",\n\t\"Dict\",\n\t\"Dict<string, unknown>\"\n];\n/**\n* **isInUnion**(literals) => { typeGuard, meta props }\n*\n* A higher order type guard which:\n*\n* - first call establishes the entities in the union,\n* - you can use tokens like `\"string\"` or `\"number\"` to indicate\n* a wide type or any literal value to add a literal to the union.\n*\n* Wide tokens which can be used are:\n*\n* - \"undefined\", \"null\"\n* - \"string\", \"number\", \"boolean\", \"Dict\",\n* - \"Array\", \"Array<string>\", \"Array<number>\"\n* - and more\n*\n* **Related:** `unionize`, `asUnion`\n*/\nfunction isInUnion(...elements) {\n\treturn (value) => {\n\t\tconst literals = elements.filter((i) => !isString(i) || isString(i) && !TOKENS.includes(i));\n\t\tconst wide$1 = elements.filter((i) => TOKENS.includes(i));\n\t\tconst isWideType = wide$1.reduce((acc, i) => {\n\t\t\tswitch (i) {\n\t\t\t\tcase \"Array\": if (Array.isArray(value)) return true;\n\t\t\t\tcase \"Array<Dict>\": if (Array.isArray(value) && value.every((i$1) => isDictionary(i$1))) return true;\n\t\t\t\tcase \"Array<boolean>\": if (Array.isArray(value) && value.every((i$1) => isBoolean(i$1))) return true;\n\t\t\t\tcase \"Array<number>\": if (Array.isArray(value) && value.every((i$1) => isNumber(i$1))) return true;\n\t\t\t\tcase \"Array<string>\": if (Array.isArray(value) && value.every((i$1) => isString(i$1))) return true;\n\t\t\t\tcase \"Dict\": if (isDictionary(value)) return true;\n\t\t\t\tcase \"Dict<string, unknown>\": if (!hasNonStringKeys(value)) return true;\n\t\t\t\tcase \"boolean\": if (isBoolean(value)) return true;\n\t\t\t\tcase \"null\": if (isNull(value)) return true;\n\t\t\t\tcase \"number\": if (isNumber(value)) return true;\n\t\t\t\tcase \"string\": if (isString(value)) return true;\n\t\t\t\tcase \"undefined\": if (isUndefined(value)) return true;\n\t\t\t\tdefault: return acc;\n\t\t\t}\n\t\t}, false);\n\t\treturn literals.includes(value) || isWideType;\n\t};\n}\n\n//#endregion\n//#region src/type-guards/higher-order/isLength.ts\n/**\n* **ifLength**(len) => (value) => boolean\n*\n* Higher order type guard which provides a type-aware check on the\n* \"length\" of some unit:\n*\n* - **arrays** - the number of elements in the array\n* - **objects** - the number of keys in the object\n* - **string** - the length of the string\n*\n* All other types return `false`\n*/\nfunction isLength(value, len) {\n\treturn isArray(value) ? !!isEqual(value.length)(len) : isString(value) ? !!isEqual(value.length)(len) : isDictionary(value) ? !!isEqual(keysOf(value))(len) : false;\n}\n\n//#endregion\n//#region src/type-guards/higher-order/isSameTypeOf.ts\n/**\n* **isSameTypeOf**(base, compare)\n*\n* A type guard which validates that `base` and `compare` are the same \"type\"\n* defined by the runtime `typeof` operator.\n*\n* **Note:** if either `TBase` or `TCompare` are\n*\n* **Related:** `IsSameType`\n*/\nfunction isSameTypeOf(base) {\n\treturn (compare$2) => {\n\t\treturn typeof base === typeof compare$2;\n\t};\n}\n\n//#endregion\n//#region src/type-guards/higher-order/isStringLiteral.ts\n/**\n* Higher order type guard which:\n*\n* - takes a set of string literals on first call\n* - second call is the type which validates that the value passed in\n* is the defined set of values of the first call\n*/\nfunction isStringLiteral(...literals) {\n\treturn (val) => {\n\t\treturn isString(val) && literals.includes(val);\n\t};\n}\n\n//#endregion\n//#region src/type-guards/higher-order/isTuple.ts\nfunction isTuple(...tuple$1) {\n\tconst results = tuple$1.map((i) => i(ShapeApiImplementation)).map((i) => isDoneFn(i) ? i.done() : i);\n\treturn (v) => {\n\t\treturn isArray(v) && v.length === results.length && results.every(isShape) && v.every((item, idx) => isSameTypeOf(results[idx])(item));\n\t};\n}\n\n//#endregion\n//#region src/type-guards/higher-order/isTypeOf.ts\n/**\n* **isTypeOf**(type)(value)\n*\n* Higher order type guard which matches against the runtime operator's `typeof` command.\n*\n* - You first partially apply by specifying the `typeof`\n* - The type guard is then returned based on the type.\n*/\nfunction isTypeOf(type) {\n\treturn (value) => {\n\t\treturn typeof value === type;\n\t};\n}\n\n//#endregion\n//#region src/type-guards/higher-order/startsWith.ts\n/**\n* **startsWithTypeguard**(startingWith) => (val)\n*\n* A higher-level builder pattern which is used to create a TypeGuard\n* which checks whether a string _starts with_ another substring.\n*\n* **Related:** `startsWith()`\n*/\nfunction startsWithTypeguard(...startingWith) {\n\treturn (val) => {\n\t\treturn isString(val) || isNumber(val) ? startingWith.some((i) => String(i) !== \"\" && String(val).startsWith(String(i))) : false;\n\t};\n}\n/**\n* **startsWith**`(startingWith) -> (val) -> true | false`\n*\n* A higher-level builder pattern which is used to create a boolean\n* operator which indicates whether the given function starts with any\n* of the provided `startingWith` string literal values.\n*\n* **Related:** `startsWithTypeguard()`\n*/\nfunction startsWith(...startingWith) {\n\treturn (val) => {\n\t\treturn isString(val) || isNumber(val) ? startingWith.some((i) => String(i) !== \"\" && String(val).startsWith(String(i))) : false;\n\t};\n}\n\n//#endregion\n//#region src/type-guards/html/component-tags.ts\n/**\n* **isHtmlComponentTag**`(...names)`\n*\n* A type guard that validates if a value matches a valid HTML component tag.\n* Supports both `kebab-case` and `PascalCase` component names.\n*\n* Attributes are validated using `areAttributesValid()`.\n*/\nfunction isHtmlComponentTag(...names) {\n\treturn (val) => {\n\t\tif (typeof val !== \"string\") return false;\n\t\tconst trimmedVal = val.trim();\n\t\tconst tagRegex = /^<\\/?([\\w-]+)(.*?)>$/;\n\t\tconst match = tagRegex.exec(trimmedVal);\n\t\tif (!match) return false;\n\t\tconst [, tagName, attributes] = match;\n\t\tconst isClosingTag = trimmedVal.startsWith(\"</\");\n\t\tconst isKebabCase = /^[a-z][a-z0-9-]*$/.test(tagName);\n\t\tconst isPascalCase = /^[A-Z][a-zA-Z0-9]*$/.test(tagName);\n\t\tconst normalizedKebabCase = toKebabCase(tagName);\n\t\tconst normalizedPascalCase = toPascalCase(tagName);\n\t\tconst isValidName = names.some((name) => isKebabCase && normalizedKebabCase === toKebabCase(name) || isPascalCase && normalizedPascalCase === toPascalCase(name));\n\t\tif (!isValidName) return false;\n\t\tif (isClosingTag) return attributes.trim() === \"\";\n\t\treturn validHtmlAttributes(attributes);\n\t};\n}\n\n//#endregion\n//#region src/type-guards/html/hasHtml.ts\n/**\n* Tests whether the passed in `val` contains some HTML-like tags in it.\n*\n* **Related:** `hasValidHtml()`, `isHtml()`, `hasValidHtml()`\n*/\nfunction hasHtml(val) {\n\tif (typeof val !== \"string\") return false;\n\tconst htmlTagRegex = /.*<(\\w+)>.*/;\n\treturn !!htmlTagRegex.test(val);\n}\n/**\n* Tests that the passed in string _does_ have HTML tags in it and that\n* those tags are valid HTML tags.\n*\n* **Related:** `hasHtml()`, `isHtml()`, `isValidHtml()`\n*/\nfunction hasValidHtml(val) {\n\tif (typeof val !== \"string\") return false;\n\tconst trimmedVal = val.trim();\n\tconst tagRegex = /<\\/?(\\w+)([^>]*)>/g;\n\tconst stack = [];\n\tlet match;\n\tmatch = tagRegex.exec(trimmedVal);\n\twhile (match !== null) {\n\t\tconst [, tagName] = match;\n\t\tconst isClosingTag = match[0].startsWith(\"</\");\n\t\tconst isAtomicTag = HTML_ATOMIC_TAGS.includes(tagName);\n\t\tif (isAtomicTag) {\n\t\t\tmatch = tagRegex.exec(trimmedVal);\n\t\t\tcontinue;\n\t\t}\n\t\tif (isClosingTag) {\n\t\t\tconst lastTag = stack.pop();\n\t\t\tif (lastTag !== tagName) return false;\n\t\t} else {\n\t\t\tif (!HTML_BLOCK_TAGS.includes(tagName)) return false;\n\t\t\tstack.push(tagName);\n\t\t}\n\t\tmatch = tagRegex.exec(trimmedVal);\n\t}\n\treturn stack.length === 0 && tagRegex.test(trimmedVal);\n}\n\n//#endregion\n//#region src/type-guards/html/html-tags.ts\n/**\n* tests whether the `val` passed in is the **name** of a valid\n* HTML block tag (e.g., \"div\", \"span\", etc.)\n*\n* **Note:** this will _not_ match with leading or trailing whitespace\n*/\nfunction isValidBlockTag(val) {\n\treturn isString(val) && HTML_BLOCK_TAGS.includes(val.toLowerCase());\n}\n/**\n* test whetehr the `val` pass in is a the **name** of a valid HTML\n* atomic tag (e.g., \"br\", \"meta\", etc.)\n*\n* **Note:** this will _not_ match with leading or trailing whitespace\n*/\nfunction isValidAtomicTag(val) {\n\treturn isString(val) && HTML_ATOMIC_TAGS.includes(val.toLowerCase());\n}\n/**\n* **isValidHtmlTag**`(...tags)(val)`\n*\n* A higher order type guard which tests that the `val` passed in\n* is a valid HTML tag (block or atomic) or the types specified.\n*\n* - if it's an openning or atomic tag then the tag name is validated\n* but so are the characters between the tag name and the close.\n* - if it's a closing tag then NO characters are allowed beyond\n* that of the tag and the brackets.\n*/\nfunction isValidHtmlTag(...tags) {\n\treturn (val) => {\n\t\tif (typeof val !== \"string\") return false;\n\t\tconst trimmedVal = val.trim();\n\t\tconst tagRegex = /^<\\/?(\\w+)(.*?)>$/;\n\t\tconst match = tagRegex.exec(trimmedVal);\n\t\tif (!match) return false;\n\t\tconst [, tagName, attributes] = match;\n\t\tconst normalizedTagName = tagName.toLowerCase();\n\t\tconst isClosingTag = trimmedVal.startsWith(\"</\");\n\t\tconst isAtomicTag = HTML_ATOMIC_TAGS.includes(normalizedTagName);\n\t\tconst isBlockTag = HTML_BLOCK_TAGS.includes(normalizedTagName);\n\t\tif (!tags.map((t) => t.toLowerCase()).includes(normalizedTagName)) return false;\n\t\tif (isClosingTag) return attributes.trim() === \"\" && !isAtomicTag;\n\t\tif (isAtomicTag) return attributes.trim() === \"\" || validHtmlAttributes(attributes);\n\t\tif (isBlockTag) return validHtmlAttributes(attributes);\n\t\treturn false;\n\t};\n}\n\n//#endregion\n//#region src/type-guards/html/isHtml.ts\n/**\n* **isHtml**`(val)`\n*\n* Tests whether the passed in `val` is an HTML string which:\n*\n* - starts and ends with an HTML-like tag\n* - leading and trailing whitespace is ignored\n*/\nfunction isHtml(val) {\n\tif (typeof val !== \"string\") return false;\n\tconst trimmedVal = val.trim();\n\tconst fullHtmlRegex = /^<(\\w+).*<\\/\\1>$/;\n\treturn fullHtmlRegex.test(trimmedVal);\n}\n/**\n* **isValidHtml**`(val)`\n*\n* Tests whether the passed in `val` is an HTML string which:\n*\n* - starts and ends with a valid HTML tag\n* - all block tags are _balanced_ between open and close variants\n* - leading and trailing whitespace is ignored in the match\n*/\nfunction isValidHtml(val) {\n\tif (typeof val !== \"string\") return false;\n\tconst trimmedVal = val.trim();\n\tconst tagRegex = /<\\/?(\\w+)([^>]*)>/g;\n\tconst stack = [];\n\tlet match = tagRegex.exec(trimmedVal);\n\twhile (match !== null) {\n\t\tconst [, tagName] = match;\n\t\tconst isClosingTag = match[0].startsWith(\"</\");\n\t\tconst isAtomicTag = HTML_ATOMIC_TAGS.includes(tagName);\n\t\tif (isAtomicTag) {\n\t\t\tmatch = tagRegex.exec(trimmedVal);\n\t\t\tcontinue;\n\t\t}\n\t\tif (isClosingTag) {\n\t\t\tconst lastTag = stack.pop();\n\t\t\tif (lastTag !== tagName) return false;\n\t\t} else {\n\t\t\tif (!HTML_BLOCK_TAGS.includes(tagName)) return false;\n\t\t\tstack.push(tagName);\n\t\t}\n\t\tmatch = tagRegex.exec(trimmedVal);\n\t}\n\tconst isBalanced = stack.length === 0;\n\tconst validStructureRegex = /^<(\\w+)[^>]*>[\\s\\S]*<\\/\\1>$/;\n\treturn isBalanced && validStructureRegex.test(trimmedVal);\n}\n\n//#endregion\n//#region src/type-guards/html/isHtmlElement.ts\n/**\n* **isHtmlElement**`(val)`\n*\n* Type guard which checks whether `val` is an `HtmlElement`.\n*/\nfunction isHtmlElement(val) {\n\treturn isDictionary(val) && \"attributes\" in val && \"firstElementChild\" in val && \"innerHTML\" in val;\n}\n\n//#endregion\n//#region src/type-guards/html/validHtmlAttributes.ts\n/**\n* type guard which validates that `val` is a string which could represent\n* the attributes in an HTML tag.\n*/\nfunction validHtmlAttributes(val) {\n\tif (typeof val !== \"string\") return false;\n\tconst quoteRegex = /[\"']/g;\n\tconst unmatchedQuotes = (val.match(quoteRegex)?.length || 0) % 2 !== 0;\n\tconst invalidAssignment = /(\\w+=)(?=\\s|>|$)/.test(val);\n\treturn !val.includes(\">\") && !unmatchedQuotes && !invalidAssignment;\n}\n\n//#endregion\n//#region src/type-guards/isAlpha.ts\n/**\n* **isAlpha**(value)\n*\n* Type guard which ensures that the given value is a string literal with only\n* alphabetic characters.\n*/\nfunction isAlpha(value) {\n\treturn isString(value) && asChars(value).every((v) => ALPHA_CHARS.includes(v));\n}\n\n//#endregion\n//#region src/type-guards/isBoolean.ts\n/**\n* **isBoolean**(value)\n*\n* Type guard which validates that type is a boolean value.\n*\n* **Related:** `isBooleanLike()`\n*/\nfunction isBoolean(value) {\n\treturn typeof value === \"boolean\";\n}\n\n//#endregion\n//#region src/type-guards/isBooleanLike.ts\n/**\n* **isBooleanLike**`(val)`\n*\n* A type guard which checks whether `val` is \"boolean like; meaning either\n* a boolean value or a string representation of a boolean value.\n*/\nfunction isBooleanLike(val) {\n\treturn isBoolean(val) || isString(val) && [\n\t\t\"true\",\n\t\t\"false\",\n\t\t\"boolean\"\n\t].includes(val);\n}\n\n//#endregion\n//#region src/type-guards/isConstant.ts\n/**\n* **isConstant**`(val)`\n*\n* Type guard which checks to see if it is of type\n* `Constant<T>`.\n*/\nfunction isConstant(value) {\n\treturn !!(isDictionary(value) && \"_type\" in value && \"kind\" in value && value._type === \"Constant\");\n}\n\n//#endregion\n//#region src/type-guards/isContainer.ts\nfunction isContainer(value) {\n\treturn !!(Array.isArray(value) || isDictionary(value));\n}\n\n//#endregion\n//#region src/type-guards/isCssAspectRatio.ts\nconst tokens = [\n\t\"1\",\n\t\"inherit\",\n\t\"initial\",\n\t\"revert\",\n\t\"revert-layer\",\n\t\"unset\",\n\t\"auto\"\n];\nconst isRatio = (val) => /\\d{1,4}\\s*\\/\\s*\\d{1,4}/.test(val);\n/**\n* Type guard which tests whether the passed in value is a valid CSS Aspect\n* Ratio value.\n*/\nfunction isCssAspectRatio(val) {\n\treturn isString(val) && val.split(/\\s+/).every((i) => tokens.includes(i) || isRatio(i));\n}\n\n//#endregion\n//#region src/type-guards/isCsv.ts\n/**\n* **isCsv**`(val)`\n*\n* type guard which validates that `val` is a CSV based\n* string.\n*/\nfunction isCsv(val) {\n\treturn isString(val) && val.includes(\",\") && !val.startsWith(\",\");\n}\n\n//#endregion\n//#region src/type-guards/isDefined.ts\n/**\n* **isDefined**(value)\n*\n* Type guard which determines whether a type is _defined_ or not\n* (aka, whether the value is **not** _undefined_).\n*/\nfunction isDefined(value) {\n\treturn value !== void 0;\n}\n\n//#endregion\n//#region src/type-guards/isDictionary.ts\n/**\n* **isDictionary**(value)\n*\n* Type guard used to detect whether the passed in value is an Object.\n*\n* Note: an _array_ will **not** pass this test (although the _typeof_ operator\n* would have said it was an object)\n*\n* **Related:**\n* - `isNarrowableDictionary()`,\n* - `isObject()`, `isMap()`, `isSet()`, `isWeakMap()`\n*/\nfunction isDictionary(value) {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value) && !isMap(value) && !isSet(value) && !isWeakMap(value);\n}\n/**\n* **isNarrowableDictionary**(value)\n*\n* Type guard used to detect whether the passed in value is an Object and all of it's\n* values fit into the `Narrowable` type.\n*\n* **Related:**\n* - `isDictionary()`\n* - `isObject()`, `isMap()`, `isSet()`, `isWeakMap()`\n*/\nfunction isNarrowableDictionary(value) {\n\treturn isDictionary(value) && Object.keys(value).every((key) => [\n\t\t\"string\",\n\t\t\"number\",\n\t\t\"boolean\",\n\t\t\"symbol\",\n\t\t\"object\",\n\t\t\"undefined\",\n\t\t\"void\",\n\t\t\"null\"\n\t].includes(typeof value[key]));\n}\n\n//#endregion\n//#region src/type-guards/isDoneFn.ts\n/**\n* **isDoneFn**(val)\n*\n* A type guard which checks whether the value passed in has a `done`\n* property which is a function.\n*/\nfunction isDoneFn(val) {\n\treturn isDictionary(val) && \"done\" in val && typeof val.done === \"function\";\n}\n\n//#endregion\n//#region src/type-guards/isEmail.ts\n/**\n* **isEmail**`(val)`\n*\n* type guard which validates that the value passed in\n* in the correct shape to be an email address. It checks:\n*\n* 1. that leads with alphabetic char\n* 2. has a `@` character\n* 3. has at least one `.` char after the `@`\n* 4. top-level domain has at least 2 characters\n*/\nfunction isEmail(val) {\n\tif (!isString(val)) return false;\n\tconst parts = val?.split(\"@\");\n\tconst domain = parts[1]?.split(\".\");\n\tconst tld = domain ? domain.pop() : \"\";\n\tconst firstChar$1 = val[0].toLowerCase();\n\treturn isString(val) && LOWER_ALPHA_CHARS.includes(firstChar$1) && parts.length === 2 && domain.length >= 1 && tld.length >= 2;\n}\n\n//#endregion\n//#region src/type-guards/isEmpty.ts\n/**\n* **isEmpty**(val)\n*\n* type guard which validates that `val` is an `Empty` value:\n*\n* - `null` or `undefined`\n* - empty string\n* - empty array\n* - empty object\n*/\nfunction isEmpty(val) {\n\treturn isUndefined(val) || isNull(val) || isString(val) && val.length === 0 || isDictionary(val) && Object.keys(val).length === 0 || isArray(val) && val.length === 0;\n}\n/**\n* **isNotEmpty**(val)\n*\n* type guard which validates that `val` is **not** an `Empty` value:\n*\n* - `null` or `undefined`\n* - empty string\n* - empty array\n* - empty object\n*/\nfunction isNotEmpty(val) {\n\treturn !(isUndefined(val) || isNull(val) || isString(val) && val.length === 0 || isDictionary(val) && Object.keys(val).length === 0 || isArray(val) && (val?.length === 0 || val?.length === void 0));\n}\n\n//#endregion\n//#region src/type-guards/isErr.ts\n/**\n* **IsErr**`<T,[U]>`\n*\n* Type guard which validates whether `T` is an Error extended from the `Err<..>` utility.\n*\n* - if the type is specified then the type (and optionally the subType) properties will be explicitly checked too\n* - all Err<...> types _extend_ the Javascript Error class\n*\n* **Related:** `isError()`\n*/\nfunction isErr(val, type) {\n\treturn type ? isError(val) && \"type\" in val && retainUntil(type, \"/\") === val.type && (type.includes(\"/\") ? \"subType\" in val && val.subType === stripUntil(type, \"/\") : true) : isError(val);\n}\n\n//#endregion\n//#region src/type-guards/isError.ts\n/**\n* **isError**`(val)`\n*\n* Type guard which checks whether the value passed in is an\n* instance of `Error`.\n*\n* **Related:** `isErr()`\n*/\nfunction isError(val) {\n\treturn val instanceof Error;\n}\n\n//#endregion\n//#region src/type-guards/isEven.ts\nfunction isEven(val) {\n\treturn isNumber(val) && isInteger(val) && val % 2 === 0;\n}\n\n//#endregion\n//#region src/type-guards/isFalse.ts\nfunction isFalse(i) {\n\treturn typeof i === \"boolean\" && !i;\n}\n\n//#endregion\n//#region src/type-guards/isFalsy.ts\n/**\n* **isFalsy**()\n*\n* a TypeGuard which checks whether a value is considered _falsy_ in\n* Javascript.\n*/\nfunction isFalsy(val) {\n\treturn FALSY_VALUES.includes(val) || isNumber(val) && Number.isNaN(val);\n}\n\n//#endregion\n//#region src/type-guards/isFnWithParams.ts\n/**\n* **isFnWithParams**(input, [...params | count])\n*\n* Type guard which checks whether a give variable is a function\n* which contains at least one parameter.\n*\n* - the optional second parameter may be used to express the **types** of\n* the expected parameters or just the expected **count** of parameters\n* - if you set the parameter types, it will check that the\n* correct amount of parameters are set but can only _assume_ the types of\n* the parameters are as you have expressed\n*/\nfunction isFnWithParams(input, ...params) {\n\treturn params.length === 0 ? typeof input === \"function\" && input?.length > 0 : typeof input === \"function\" && input?.length === params.length;\n}\n\n//#endregion\n//#region src/type-guards/isFunction.ts\n/**\n* **isFunction**(value)\n*\n* Type guard which checks whether the passed in value is a function.\n*\n* **Related:** `isFnWithParams`, `ifFunction`\n*/\nfunction isFunction(value) {\n\treturn typeof value === \"function\";\n}\n\n//#endregion\n//#region src/type-guards/isHexadecimal.ts\n/**\n* **isHexadecimal**`(val)`\n*\n* Type guard which checks whether all of the characters in the given string\n* are hexadecimal characters.\n*/\nfunction isHexadecimal(val) {\n\treturn isString(val) && asChars(val).every((i) => isNumericString(i) || [\n\t\t\"a\",\n\t\t\"b\",\n\t\t\"c\",\n\t\t\"d\",\n\t\t\"e\",\n\t\t\"f\"\n\t].includes(i.toLowerCase()));\n}\n\n//#endregion\n//#region src/type-guards/isIndexable.ts\n/**\n* **isIndexable**(value)\n*\n* Type guard which validates that the value passed in can be _indexed_\n*/\nfunction isIndexable(value) {\n\treturn !!(Array.isArray(value) || typeof value === \"object\" && keysOf(value).length > 0);\n}\n\n//#endregion\n//#region src/type-guards/isInlineSvg.ts\n/**\n* **isInlineSvg**`(val)`\n*\n* Type guard which tests whether the passed in value is both a string\n* and also appears to be an inline SVG image.\n*/\nfunction isInlineSvg(v) {\n\treturn isString(v) && v.trim().startsWith(`<svg`) && v.trim().endsWith(`</svg>`);\n}\n\n//#endregion\n//#region src/type-guards/isMap.ts\n/**\n* type guard which tests `val` to see if it's a valid `Set<any>`\n*/\nfunction isMap(val) {\n\treturn val instanceof Map;\n}\n\n//#endregion\n//#region src/type-guards/isNarrowable.ts\n/**\n* type guard which validates that `val` is `Narrowable`\n*/\nfunction isNarrowable(val) {\n\treturn isString(val) || isNumber(val) || isBoolean(val) || isSymbol(val) || isDictionary(val) || isNull(val) || isUndefined(val);\n}\n\n//#endregion\n//#region src/type-guards/isNever.ts\n/**\n* **isNever**(val)\n*\n* Type guard which checks for the runtime constant `Never`\n* (which also has a _type_ of **never**).\n*/\nfunction isNever(val) {\n\treturn isConstant(val) && val.kind === \"never\";\n}\n\n//#endregion\n//#region src/type-guards/isNotError.ts\n/**\n* type guard which validates that `val` is _not_ an `Error` type.\n*/\nfunction isNotError(val) {\n\treturn !isError(val);\n}\n\n//#endregion\n//#region src/type-guards/isNothing.ts\nfunction isNothing(val) {\n\treturn !!(val === null || val === void 0);\n}\n\n//#endregion\n//#region src/type-guards/isNotNull.ts\n/**\n* **isNotNull**(value)\n*\n* Type guard which validates the passed in value is **not** the `null` value.\n*/\nfunction isNotNull(value) {\n\treturn value === null;\n}\n\n//#endregion\n//#region src/type-guards/isNotUnset.ts\n/**\n* **isSet**`(val)`\n*\n* Type guard which validates that the value passed in is **not** `Unset`.\n*\n* **Related:** `isUnset()`\n*/\nfunction isNotUnset(val) {\n\treturn isDictionary(val) ? val.kind !== \"Unset\" : true;\n}\n\n//#endregion\n//#region src/type-guards/isNull.ts\n/**\n* **isNull**(value)\n*\n* Type guard which checks whether a value is null or not.\n*\n* **Related:** `ifNull`\n*/\nfunction isNull(value) {\n\treturn value === null;\n}\n\n//#endregion\n//#region src/type-guards/isNumericString.ts\n/**\n* **isNumericString**(value)\n*\n* Type guard to validate that a value is string which can be converted to a number.\n*\n* **Related:** `isNumberLike`\n*/\nfunction isNumericString(value) {\n\tconst numericChars = [...NUMERIC_CHAR];\n\treturn typeof value === \"string\" && asChars(value).every((i) => numericChars.includes(i));\n}\n/**\n* **isNumberLike**(value)\n*\n* Type guard to validate that a value is either:\n*\n* - a numeric string literal which can be converted to a number\n* - an actual number\n*\n* **Related:** `isNumericString`\n*/\nfunction isNumberLike(value) {\n\tconst numericChars = [...NUMERIC_CHAR];\n\treturn typeof value === \"string\" && asChars(value).every((i) => numericChars.includes(i)) ? true : typeof value === \"number\";\n}\n\n//#endregion\n//#region src/type-guards/isObject.ts\n/**\n* **isObject**(value)\n*\n* Type guard used to detect whether the passed in value is an `object`.\n*\n* - this includes matching on array's, Set's, Map's, and WeakMap's\n*\n* **Related:**\n* - `isNarrowableDictionary()`,\n* - `isObject()`, `isMap()`, `isSet()`, `isWeakMap()`\n*/\nfunction isObject(value) {\n\treturn typeof value === \"object\" && value !== null;\n}\n\n//#endregion\n//#region src/type-guards/isObjectKey.ts\n/**\n* Type guard which validates that `val` is a valid `ObjectKey`\n*/\nfunction isObjectKey(val) {\n\treturn isString(val) || isSymbol(val);\n}\n\n//#endregion\n//#region src/type-guards/isOdd.ts\nfunction isOdd(val) {\n\treturn isNumber(val) && isInteger(val) && val % 2 !== 0;\n}\n\n//#endregion\n//#region src/type-guards/isOk.ts\nfunction isOk(val) {\n\treturn val instanceof Error === false;\n}\n\n//#endregion\n//#region src/type-guards/isPhoneNumber.ts\n/**\n* **maybePhoneNumber**`(val)`\n*\n* Type guard which validates that a string is in the shape of a phone\n* number.\n*\n* - Only valid characters (numeric, whitespace, `+`, `-`, `.`, and parenthesis)\n* - at least 7 numeric characters, 8 if `+` character used\n* - leading character (after whitespace) must be numeric, `(` or `+`\n*\n* **Related:** `asPhoneNumber()`, `PhoneNumber`, `isPhoneNumber`\n*/\nfunction maybePhoneNumber(val) {\n\tconst svelte = String(val).trim();\n\tconst chars = svelte.split(\"\");\n\tconst numeric = retainChars(svelte, ...NUMERIC_CHAR);\n\tconst valid$1 = [\n\t\t\"+\",\n\t\t\"(\",\n\t\t...NUMERIC_CHAR\n\t];\n\tconst nothing = stripChars(svelte, ...[\n\t\t...NUMERIC_CHAR,\n\t\t...WHITESPACE_CHARS,\n\t\t\"(\",\n\t\t\")\",\n\t\t\"+\",\n\t\t\".\",\n\t\t\"-\"\n\t]);\n\treturn chars.every((i) => valid$1.includes(i)) && svelte.startsWith(`+`) ? numeric.length >= 8 : svelte.startsWith(`00`) ? numeric.length >= 10 : numeric.length >= 7 && nothing === \"\";\n}\nconst start = PHONE_COUNTRY_CODES.map((i) => `+${i[0]} `);\n/**\n* Type guard which validates that `val` starts with a valid\n* country code (although starting whitespace is also allowed).\n*/\nfunction hasCountryCode(val) {\n\tif (isString(val)) return start.some((i) => val.trimStart().startsWith(i));\n\treturn false;\n}\nfunction isUsPhoneNumber(val) {\n\tif (isString(val)) return maybePhoneNumber(val) && val.trimStart().startsWith(`+1 `);\n\treturn false;\n}\n/**\n* **isPhoneNumber**`(val)`\n*\n* Type guard which validates that a string is in the shape of a phone\n* number. This is a MORE strict check than `maybePhoneNumber()` which\n* you may want to use if you're pretty sure numeric looking values\n* are meant to be phone numbers.\n*\n* **Related:** `asPhoneNumber()`, `PhoneNumber`, `maybePhoneNumber`\n*/\nfunction isPhoneNumber(val) {\n\tif (isString(val) && maybePhoneNumber(val) && [\n\t\t\" \",\n\t\t\"-\",\n\t\t\".\"\n\t].some((i) => val.includes(i))) {\n\t\tconst cc = getPhoneCountryCode(val);\n\t\tconst without = cc === \"\" ? retainChars(val, ...NUMERIC_CHAR) : retainChars(val.trimStart().replace(`+${cc} `, \"\"), ...NUMERIC_CHAR);\n\t\tswitch (cc) {\n\t\t\tcase \"1\": return without.length === 10;\n\t\t\tcase \"44\": return !![10, 11].includes(without.length);\n\t\t\tcase \"\": return without.length <= 10;\n\t\t\tdefault: return without.length <= 11;\n\t\t}\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region src/type-guards/isRef.ts\n/**\n* **isRef**(value)\n*\n* Type guard which check whether the passed in value is a VueJS `Ref<T>` value.\n*/\nfunction isRef(value) {\n\treturn isDictionary(value) && \"value\" in value && Array.from(Object.keys(value)).includes(\"_value\");\n}\n\n//#endregion\n//#region src/type-guards/isRegExp.ts\n/**\n* Type guard that validates the the value passed in is\n* a regular expression.\n*\n* **Related:** `isLikeRegExp`\n*/\nfunction isRegExp(val) {\n\treturn val instanceof RegExp;\n}\n/**\n* Type guard that validates the the value passed in is\n* a regular expression or a string that _can_ be turned\n* into a regular expression.\n*\n* **Related:** `isRegExp`\n*/\nfunction isLikeRegExp(val) {\n\tif (isRegExp(val)) return true;\n\tif (isString(val)) try {\n\t\tconst _re = new RegExp(val);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region src/type-guards/isScalar.ts\n/**\n* **isScalar**(value)\n*\n* Type guard to check whether the value passed in is a _scalar_ value.\n*/\nfunction isScalar(value) {\n\treturn isString(value) || isNumber(value) || isSymbol(value) || isNull(value) || isTrue(value) || isFalse(value);\n}\n\n//#endregion\n//#region src/type-guards/isSet.ts\n/**\n* type guard which tests `val` to see if it's a valid `Set<any>`\n*/\nfunction isSet(val) {\n\treturn val instanceof Set;\n}\n\n//#endregion\n//#region src/type-guards/isSetContainer.ts\n/**\n* type guard which tests `val` to see if it's a valid `Set<any>`\n*/\nfunction isSetContainer(val) {\n\treturn val instanceof Set;\n}\n\n//#endregion\n//#region src/type-guards/isSpecificConstant.ts\n/**\n* **isSpecificConstant**(kind)\n*\n* A higher order type guard which tests for a specific `Constant` type.\n*/\nfunction isSpecificConstant(kind) {\n\treturn (value) => {\n\t\treturn !!(isConstant(value) && value.kind === kind);\n\t};\n}\n\n//#endregion\n//#region src/type-guards/isString.ts\n/**\n* **isString**\n*\n* Returns true or false on whether the passed in parameter is a\n* string (either a wide string or a string literal).\n*\n* The boolean return is traceable by the type system as well as the\n* runtime system.\n*/\nfunction isString(value) {\n\treturn typeof value === \"string\";\n}\n\n//#endregion\n//#region src/type-guards/isSymbol.ts\n/**\n* **isSymbol**(value)\n*\n* Runtime type guard which narrows the passed in type\n* to being a **symbol** when condition is met.\n*/\nfunction isSymbol(value) {\n\treturn typeof value === \"symbol\";\n}\n\n//#endregion\n//#region src/type-guards/isThenable.ts\n/**\n* type guard which checks whether passed in `val` is a `Thenable` object\n*/\nfunction isThenable(val) {\n\treturn isDictionary(val) && \"then\" in val && \"catch\" in val && typeof val.then === \"function\";\n}\n\n//#endregion\n//#region src/type-guards/isTrimmable.ts\n/**\n* **isTrimable**`(val)`\n*\n* tests whether a string has whitespace on either left or right edges.\n*/\nfunction isTrimable(val) {\n\treturn isString(val) && val !== val.trim();\n}\n\n//#endregion\n//#region src/type-guards/isTrue.ts\n/**\n* **isTrue**(value)\n*\n* Type guard which detects whether the given value is `true`.\n*/\nfunction isTrue(value) {\n\treturn value === true;\n}\n\n//#endregion\n//#region src/type-guards/isTruthy.ts\n/**\n* **isTruthy**\n*\n* Creates a TypeGuard which checks whether a value is considered _truthy_\n* in Javascript.\n*/\nfunction isTruthy(val) {\n\treturn !FALSY_VALUES.includes(val);\n}\n\n//#endregion\n//#region src/type-guards/isTypedError.ts\nfunction isTypedError(_type) {\n\t/**\n\t* Type guard which validates that the `val` passsed in\n\t* extends the configured variant of `TypedError`\n\t*/\n\treturn (val) => {\n\t\treturn isError(val) && \"type\" in val && typeof val.type === \"string\";\n\t};\n}\n\n//#endregion\n//#region src/type-guards/isTypeSubtype.ts\n/**\n* type guard which validates whether the `val` passed in is a valid `TypeSubtype`\n*\n* **Related:** `TypeSubtype`, `getTypeSubtype()`\n*/\nfunction isTypeSubtype(val) {\n\treturn isString(val) && val.split(\"/\").length === 2;\n}\n\n//#endregion\n//#region src/type-guards/isTypeTuple.ts\n/**\n* **isTypeTuple**(value)\n*\n* A type-guard which detects if passed in value is a `TypeTuple`.\n*/\nfunction isTypeTuple(value) {\n\treturn Array.isArray(value) && value.length === 3 && typeof value[1] === \"function\";\n}\n\n//#endregion\n//#region src/type-guards/isUndefined.ts\n/**\n* **isUndefined**(value)\n*\n* Type guard which determines whether a type is undefined or not.\n*/\nfunction isUndefined(value) {\n\treturn typeof value === \"undefined\";\n}\n\n//#endregion\n//#region src/type-guards/isUnset.ts\n/**\n* **isUnset**`(val)`\n*\n* Type guard which validates that the value passed in `Unset`.\n*\n* **Related:** `isSet()`\n*/\nfunction isUnset(val) {\n\treturn isDictionary(val) && val.kind === \"Unset\";\n}\n\n//#endregion\n//#region src/type-guards/isUrl.ts\n/**\n* **isUri**`(val, ...protocols)`\n*\n* Type guard to test with the passed in value is a valid URI.\n*\n* **Note:** by default all protocols in `NetworkProtocol` are\n* considered valid but you can scope this down by setting which\n* protocols you explicitly interested in.\n*\n* **Related:** `isUrl`\n*/\nfunction isUri(val, ...protocols) {\n\tconst p = protocols.length === 0 ? mutable(NETWORK_PROTOCOL) : mutable(protocols);\n\treturn isString(val) && p.some((i) => val.startsWith(`${i}://`));\n}\n/**\n* **isUrl**`(val,[...protocols])`\n*\n* Type guard to test whether the passed in value is a http/https URL.\n*\n* **Note:** you _can_ specify precisely which network protocols you\n* are wanting to test for but by default it is \"http\" and \"https\"\n*\n* **Related:** `isUri`\n*/\nfunction isUrl(val, ...protocols) {\n\tconst p = protocols.length === 0 ? [\"http\", \"https\"] : protocols;\n\treturn isString(val) && p.some((i) => val.startsWith(`${i}://`));\n}\n\n//#endregion\n//#region src/type-guards/isVariable.ts\nconst VALID = [\n\t...ALPHA_CHARS,\n\t...NUMERIC_CHAR,\n\t\"_\",\n\t\".\"\n];\nconst alpha = null;\nfunction valid(chars) {\n\treturn chars.every((i) => VALID.includes(i));\n}\nfunction isVariable(val) {\n\treturn isString(val) && startsWithTypeguard(alpha)(val) && valid(asChars(val));\n}\n\n//#endregion\n//#region src/type-guards/isWeakMap.ts\n/**\n* type guard which tests `val` to see if it's a valid `WeakMap<any,any>`\n*/\nfunction isWeakMap(val) {\n\treturn val instanceof WeakMap;\n}\n\n//#endregion\n//#region src/type-guards/metrics/isMetric.ts\nfunction separate(s) {\n\treturn stripWhile(s.toLowerCase(), ...NUMERIC_CHAR).trim();\n}\nfunction startsWithNumber(val) {\n\treturn isString(val) && isNumberLike(val.slice(0, 1));\n}\nfunction isAreaMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && AREA_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isLuminosityMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && LUMINOSITY_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isResistanceMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && RESISTANCE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isCurrentMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && CURRENT_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isVoltageMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && VOLTAGE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isFrequencyMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && FREQUENCY_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isPowerMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && POWER_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isTimeMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && TIME_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isEnergyMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && ENERGY_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isPressureMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && PRESSURE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isTemperatureMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && TEMPERATURE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isVolumeMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && VOLUME_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isAccelerationMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && ACCELERATION_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isSpeedMetric(val) {\n\tconst speed = SPEED_METRICS_LOOKUP.map((i) => i.abbrev);\n\treturn isString(val) && startsWithNumber(val) && speed.includes(separate(val));\n}\nfunction isMassMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && MASS_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\nfunction isDistanceMetric(val) {\n\treturn isString(val) && startsWithNumber(val) && DISTANCE_METRICS_LOOKUP.map((i) => i.abbrev).includes(separate(val));\n}\n/**\n* Type guard which validates the passed in `val` is a `Metric` (unit\n* of measure).\n*/\nfunction isMetric(val) {\n\treturn isDistanceMetric(val) || isMassMetric(val) || isSpeedMetric(val) || isAccelerationMetric(val) || isVoltageMetric(val) || isTemperatureMetric(val) || isPressureMetric(val) || isEnergyMetric(val) || isTimeMetric(val) || isPowerMetric(val) || isFrequencyMetric(val) || isVoltageMetric(val) || isCurrentMetric(val) || isLuminosityMetric(val) || isAreaMetric(val);\n}\nfunction getCategories$1(c) {\n\treturn c.map((i) => {\n\t\tswitch (i) {\n\t\t\tcase \"Acceleration\": return isAccelerationMetric;\n\t\t\tcase \"Area\": return isAreaMetric;\n\t\t\tcase \"Current\": return isCurrentMetric;\n\t\t\tcase \"Distance\": return isDistanceMetric;\n\t\t\tcase \"Frequency\": return isFrequencyMetric;\n\t\t\tcase \"Luminosity\": return isLuminosityMetric;\n\t\t\tcase \"Mass\": return isMassMetric;\n\t\t\tcase \"Power\": return isPowerMetric;\n\t\t\tcase \"Pressure\": return isPressureMetric;\n\t\t\tcase \"Resistance\": return isResistanceMetric;\n\t\t\tcase \"Speed\": return isSpeedMetric;\n\t\t\tcase \"Temperature\": return isTemperatureMetric;\n\t\t\tcase \"Time\": return isTimeMetric;\n\t\t\tcase \"Voltage\": return isVoltageMetric;\n\t\t\tcase \"Volume\": return isVoltageMetric;\n\t\t\tdefault: throw new Error(`Unknown metric category: ${i}`);\n\t\t}\n\t});\n}\n/**\n* **isMetricCategory**`(...categories) => (val) => val is Uom<T>`\n*\n* A higher order type guard which validates that a value is a metric\n* with the specified category(s) UOM's.\n*\n* **Related:** `isMetric()`, `isAreaMetric()`, `isSpeedMetric()`, ...\n*/\nfunction isMetricCategory(...categories) {\n\tconst fn$1 = (val) => {\n\t\tconst tests = getCategories$1(categories);\n\t\treturn tests.some((i) => i(val));\n\t};\n\tconst props = {\n\t\tcategories,\n\t\tkind: \"MetricTypeGuard\"\n\t};\n\treturn createFnWithProps(fn$1, props);\n}\n\n//#endregion\n//#region src/type-guards/metrics/isUom.ts\nfunction isAreaUom(val) {\n\treturn isString(val) && AREA_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isLuminosityUom(val) {\n\treturn isString(val) && LUMINOSITY_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isResistanceUom(val) {\n\treturn isString(val) && RESISTANCE_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isCurrentUom(val) {\n\treturn isString(val) && CURRENT_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isVoltageUom(val) {\n\treturn isString(val) && VOLTAGE_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isFrequencyUom(val) {\n\treturn isString(val) && FREQUENCY_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isPowerUom(val) {\n\treturn isString(val) && POWER_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isTimeUom(val) {\n\treturn isString(val) && TIME_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isEnergyUom(val) {\n\treturn isString(val) && ENERGY_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isPressureUom(val) {\n\treturn isString(val) && PRESSURE_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isTemperatureUom(val) {\n\treturn isString(val) && TEMPERATURE_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isVolumeUom(val) {\n\treturn isString(val) && VOLUME_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isAccelerationUom(val) {\n\treturn isString(val) && ACCELERATION_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isSpeedUom(val) {\n\treturn isString(val) && SPEED_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isMassUom(val) {\n\treturn isString(val) && MASS_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\nfunction isDistanceUom(val) {\n\treturn isString(val) && ENERGY_METRICS_LOOKUP.map((i) => i.abbrev).includes(val);\n}\n/**\n* Type guard which validates the passed in `val` is a `Uom` (unit\n* of measure).\n*\n* **Related:**\n* - `isUomCategory(c)(v)`\n* - `isSpeedUom(v)`, `isMassUom(v)`, ...\n*/\nfunction isUom(val) {\n\treturn isDistanceUom(val) || isMassUom(val) || isSpeedUom(val) || isAccelerationUom(val) || isVoltageUom(val) || isTemperatureUom(val) || isPressureUom(val) || isEnergyUom(val) || isTimeUom(val) || isPowerUom(val) || isFrequencyUom(val) || isVoltageUom(val) || isCurrentUom(val) || isLuminosityUom(val) || isAreaUom(val);\n}\nfunction getCategories(c) {\n\treturn c.map((i) => {\n\t\tswitch (i) {\n\t\t\tcase \"Acceleration\": return isAccelerationUom;\n\t\t\tcase \"Area\": return isAreaUom;\n\t\t\tcase \"Current\": return isCurrentUom;\n\t\t\tcase \"Distance\": return isDistanceUom;\n\t\t\tcase \"Frequency\": return isFrequencyUom;\n\t\t\tcase \"Luminosity\": return isLuminosityUom;\n\t\t\tcase \"Mass\": return isMassUom;\n\t\t\tcase \"Power\": return isPowerUom;\n\t\t\tcase \"Pressure\": return isPressureUom;\n\t\t\tcase \"Resistance\": return isResistanceUom;\n\t\t\tcase \"Speed\": return isSpeedUom;\n\t\t\tcase \"Temperature\": return isTemperatureUom;\n\t\t\tcase \"Time\": return isTimeUom;\n\t\t\tcase \"Voltage\": return isVoltageUom;\n\t\t\tcase \"Volume\": return isVoltageUom;\n\t\t\tdefault: throw new Error(\"Unknown UOM Category\");\n\t\t}\n\t});\n}\n/**\n* **isUomCategory**`(...categories) => (val) => val is Uom<T>`\n*\n* A higher order type guard which validates that a value is of\n* the specified metric category or categories.\n*\n* **Related:** `isUom()`, `isAreaUom()`, `isSpeedUom()`, ...\n*/\nfunction isUomCategory(...categories) {\n\tconst fn$1 = (val) => {\n\t\tconst tests = getCategories(categories);\n\t\treturn tests.some((i) => i(val));\n\t};\n\tconst prop = {\n\t\tcategories,\n\t\tkind: \"UomTypeGuard\"\n\t};\n\treturn createFnWithProps(fn$1, prop);\n}\n\n//#endregion\n//#region src/type-guards/network-tg.ts\n/**\n* **isIp4Address**`(val)`\n*\n* Type guard which checks whether the value is a valid IPv4 address.\n*/\nfunction isIp4Address(val) {\n\tconst octets = isString(val) ? val.split(\".\") : [];\n\treturn isString(val) && octets.length === 4 && octets.every((i) => isNumberLike(i)) && octets.every((i) => Number(i) >= 0 && Number(i) <= 255) && octets.every((i) => `${Number(i)}` === i);\n}\n/**\n* **isIp6Subnet**`(val,[mask])`\n*\n* Type guard which validates that `val` is a valid IPv6 subnet.\n*\n* - optionally allows for isolating a particular subnet mask\n*/\nfunction isIp6Subnet(val, mask) {\n\tconst trimmed = val.trim();\n\tconst parts = trimmed.split(\"/\");\n\tif (parts.length !== 2) return false;\n\tconst [address, maskPart] = parts;\n\tif (!/^\\d+$/.test(maskPart)) return false;\n\tconst numericMask = Number.parseInt(maskPart, 10);\n\tif (numericMask < 0 || numericMask > 128) return false;\n\tif (!isIp6Address(address)) return false;\n\treturn mask === void 0 || numericMask === mask;\n}\n/**\n* **isIp6Address**`(val)`\n*\n* Comprehensive type guard for IPv6 addresses with:\n* - Full [RFC 4291](https://www.rfc-editor.org/rfc/rfc4291.html) validation\n* - Compression handling\n* - Zone index exclusion\n*/\nfunction isIp6Address(val) {\n\tif (typeof val !== \"string\") return false;\n\tconst str = val.trim();\n\tif (str.length < 2 || str.length > 45) return false;\n\tif (str.includes(\"/\")) return false;\n\tif ((str.match(/::/g) || []).length > 1) return false;\n\tif (/^::.+::/.test(str)) return false;\n\tif (/^:[^:]/.test(str) || /[^:]:$/.test(str)) return false;\n\tif (/:{3,}/.test(str)) return false;\n\tconst [before$1 = \"\", after = \"\"] = str.split(\"::\");\n\tconst beforeParts = before$1.split(\":\").filter(Boolean);\n\tconst afterParts = after.split(\":\").filter(Boolean);\n\tconst totalParts = beforeParts.length + afterParts.length;\n\tif (str.includes(\"::\")) {\n\t\tif (totalParts > 7) return false;\n\t\tif (str === \"::\") return true;\n\t} else if (beforeParts.length !== 8) return false;\n\tconst allParts = [...beforeParts, ...afterParts];\n\treturn allParts.every((part) => /^[0-9a-f]{1,4}$/i.test(part));\n}\n/**\n* **isIpAddress**`(val)`\n*\n* Type guard which checks whether the value is a valid IP address (v4 or v6).\n*/\nfunction isIpAddress(val) {\n\treturn isIp4Address(val) || isIp6Address(val);\n}\n/**\n* **hasUrlPort**`(val)`\n*\n* Type guard which tests whether there is an explicit _port_ reference\n* in the passed in URL (versus implicitly using the default port of the\n* protocol)\n*/\nfunction hasUrlPort(val) {\n\treturn isString(val) && removeUrlProtocol(val).includes(\":\");\n}\n/**\n* **isUrlPath**`(val)`\n*\n* Type guard which checks whether the value is a valid `UrlPath`\n*/\nfunction isUrlPath(val) {\n\treturn isString(val) && (val === \"\" || val.startsWith(\"/\")) && asChars(val).every((c) => isAlpha(c) || isNumberLike(c) || c === \"_\" || c === \"@\" || c === \".\" || c === \"-\");\n}\n/**\n* **isDomainName**`(val)`\n*\n* Type guard which checks whether the value is a valid DNS domain name\n*/\nfunction isDomainName(val) {\n\treturn isString(val) && val.split(\".\").filter((i) => i).length > 1 && isString(val.split(\".\").filter((i) => i).pop()) && asChars(val.split(\".\").filter((i) => i).pop()).length > 1 && val.split(\".\").filter((i) => i).every((i) => isAlpha(i) || isNumberLike(i) || i === \"-\" || i === \"_\");\n}\n/**\n* **isUrlSource**`(val)`\n*\n* Type guard which checks whether the value is a valid URL source\n* (aka, an IP address or a Domain Name)\n*/\nfunction isUrlSource(val) {\n\treturn isDomainName(val) || isIpAddress(val);\n}\n/**\n* **hasUrlQueryParameter**`(val,prop)`\n*\n* Tests whether the valued in has a query parameter specified by `prop`.\n*/\nfunction hasUrlQueryParameter(val, prop) {\n\treturn isString(getUrlQueryParams(val, prop));\n}\n\n//#endregion\n//#region src/type-guards/numeric/isInteger.ts\n/**\n* type guard which validates that `val` is a `number` type which is\n* also a valid Integer number.\n*/\nfunction isInteger(val) {\n\treturn isNumber(val) && Number.isInteger(val);\n}\n\n//#endregion\n//#region src/type-guards/numeric/isNumber.ts\n/**\n* **isNumber**(value)\n*\n* Type guard to test whether passed in value is a numeric type.\n*/\nfunction isNumber(value) {\n\treturn typeof value === \"number\";\n}\n\n//#endregion\n//#region src/type-guards/numeric/isNumericArray.ts\n/**\n* Type guard which validates that the passed in `val` is a string array.\n*/\nfunction isNumericArray(val) {\n\treturn Array.isArray(val) && val.every((i) => isNumber(i));\n}\n\n//#endregion\n//#region src/type-guards/protocol.ts\n/**\n* **hasProtocol**`(val)`\n*\n* Type guard which validates that `val` _starts with_ a known\n* protocol name (e.g., \"https\", \"ftp\", etc.).\n*/\nfunction hasProtocol(val, ...protocols) {\n\treturn isString(val) && protocols.length === 0 ? NETWORK_PROTOCOL.some((i) => val.startsWith(i)) : protocols.some((i) => val.startsWith(i));\n}\n/**\n* **isProtocol**`(val)`\n*\n* Type guard which validates that `val` is a known\n* protocol name (e.g., \"https\", \"ftp\", etc.).\n*/\nfunction isProtocol(val, ...protocols) {\n\treturn isString(val) && protocols.length === 0 ? NETWORK_PROTOCOL.includes(val) : protocols.includes(val);\n}\n/**\n* **hasProtocolPrefix**`(val, [...protocols])`\n*\n* Type guard which validates that `val` _starts with_ a known\n* protocol name (e.g., \"https\", \"ftp\", etc.) followed by `://`.\n*/\nfunction hasProtocolPrefix(val, ...protocols) {\n\treturn isString(val) && protocols.length === 0 ? NETWORK_PROTOCOL.map((i) => `${i}://`).some((i) => val.startsWith(i)) : protocols.map((i) => `${i}://`).some((i) => val.startsWith(i));\n}\n/**\n* **isProtocolPrefix**`(val, [...protocols])`\n*\n* Type guard which validates that `val` is a known\n* protocol name (e.g., \"https\", \"ftp\", etc.) followed by `://`.\n*/\nfunction isProtocolPrefix(val, ...protocols) {\n\treturn isString(val) && protocols.length === 0 ? NETWORK_PROTOCOL.map((i) => `${i}://`).includes(val) : protocols.map((i) => `${i}://`).includes(val);\n}\n\n//#endregion\n//#region src/type-guards/tokens/isDefineObject.ts\n/**\n* **isDefineObject**`(val)`\n*\n* a type-guard which validates that `val` is a `DefineObject` type. This requires that:\n*\n* - `val` be a dictionary object\n* - all _values_ of `val`'s keys must be an `InputToken` (string or otherwise)\n*/\nfunction isDefineObject(val) {\n\treturn isDictionary(val) ? Object.values(val).every((i) => isInputToken(i) || isDefineObject(i) || isDefineTuple(i)) : false;\n}\n\n//#endregion\n//#region src/type-guards/tokens/isDefineTuple.ts\n/**\n* **isDefineTuple**`(val)`\n*\n* A type guard which validates that `val` is a _tuple_ of `DefineTuple`.\n*\n* - `DefineTuple` is just a tuple of `InputToken` elements\n*/\nfunction isDefineTuple(val) {\n\treturn isArray(val) && val.every((i) => isInputToken(i));\n}\n\n//#endregion\n//#region src/type-guards/tokens/isDeltaReturn.ts\n/**\n* A Take function being used with a Lexer returns a `DeltaReturn` and this type\n* guard validates whether `val` is one.\n*/\nfunction isDeltaReturn(val) {\n\treturn isArray(val) && val.length === 2 && isString(val[0]);\n}\n\n//#endregion\n//#region src/type-guards/tokens/isInputToken.ts\n/**\n* **isInputToken**`(val)`\n*\n* A type guard which validates that `val` is a valid `InputToken`. This token\n* can be:\n*\n* - a string definition of an `InputToken` (e.g., `\"string\"`, `\"string | number\"`, etc.)\n* - a tuple definition (e.g., `DefineTuple`)\n* - an object definition (e.g., `DefineObject`)\n*/\nfunction isInputToken(val) {\n\treturn isInputToken__String(val) || isDefineObject(val) || isDefineTuple(val);\n}\n\n//#endregion\n//#region src/type-guards/tokens/isInputToken__String.ts\n/**\n* **isInputToken__String**`(val)`\n*\n* Type guard which validates that `val` is a _string-based_\n* `InputToken`.\n*\n* TODO: this is not ready to be used!\n*/\nfunction isInputToken__String(val) {\n\treturn isString(val);\n}\n\n//#endregion\n//#region src/type-guards/tokens/isShapeCallback.ts\n/**\n* type guard which validates that the `val` passed in is a `ShapeCallback`\n*/\nfunction isShapeCallback(val) {\n\treturn isFunction(val) && val.kind === \"shape\";\n}\n\n//#endregion\n//#region src/type-guards/tokens/isSimpleToken.ts\nconst split_tokens = SIMPLE_TOKENS.map((i) => i.split(\"TOKEN\"));\nconst scalar_split_tokens = SIMPLE_SCALAR_TOKENS.map((i) => i.split(\"TOKEN\"));\n/**\n* **isSimpleToken**`(val)`\n*\n* Type guard which validates that what was passed in is a `SimpleToken`\n*\n* **Related:** `isSimpleTokenTuple`\n*/\nfunction isSimpleToken(val) {\n\treturn isString(val) && split_tokens.some((i) => i.length === 1 && val === i[0] || val.startsWith(i[0]) && val.endsWith(i.slice(-1)[0]) && i.every((p) => val.includes(p)));\n}\n/**\n* **isSimpleScalarToken**`(val)`\n*\n* Type guard which validates that what was passed in is a `SimpleScalarToken`\n*\n* **Related:** `isSimpleToken()`, `isSimpleContainerToken()`\n*/\nfunction isSimpleScalarToken(val) {\n\treturn isString(val) && scalar_split_tokens.some((i) => i.length === 1 && val === i[0] || val.startsWith(i[0]) && val.endsWith(i.slice(-1)[0]) && i.every((p) => val.includes(p)));\n}\n/**\n* **isSimpleContainerToken**`(val)`\n*\n* Type guard which validates that what was passed in is a\n* `SimpleContainerToken`.\n*\n* **Related:** `isSimpleToken()`, `isSimpleScalarToken()`\n*/\nfunction isSimpleContainerToken(val) {\n\treturn isString(val) && scalar_split_tokens.some((i) => i.length === 1 && val === i[0] || val.startsWith(i[0]) && val.endsWith(i.slice(-1)[0]) && i.every((p) => val.includes(p)));\n}\n/**\n* **isSimpleTokenTuple**`(val)`\n*\n* Type guard which validates that what was passed in a tuple of `SimpleToken`'s\n*\n* **Related:** `isSimpleToken()`, `isSimpleTokenTuple()`\n*/\nfunction isSimpleTokenTuple(val) {\n\treturn isArray(val) && val.length !== 0 && val.every(isSimpleToken);\n}\n/**\n* **isSimpleScalarTokenTuple**`(val)`\n*\n* Type guard which validates that what was passed in a tuple of\n* `SimpleScalarToken`'s\n*\n* **Related:** `isSimpleToken()`, `isSimpleTokenTuple()`\n*/\nfunction isSimpleScalarTokenTuple(val) {\n\treturn isArray(val) && val.length !== 0 && val.every(isSimpleScalarToken);\n}\n/**\n* **isSimpleContainerTokenTuple**`(val)`\n*\n* Type guard which validates that what was passed in a tuple of\n* `SimpleContainerToken`'s\n*\n* **Related:** `isSimpleToken()`, `isSimpleTokenTuple()`\n*/\nfunction isSimpleContainerTokenTuple(val) {\n\treturn isArray(val) && val.length !== 0 && val.every(isSimpleContainerToken);\n}\n\n//#endregion\n//#region src/type-guards/tw/tw-color.ts\n/**\n* **isTailwindColor**`(val)`\n*\n* A type guard which validates whether the `val` passed in is a\n* [Tailwind](https://tailwindcss.com/docs/customizing-colors)\n* color (e.g., `blue`, `sky`, `slate`, etc.).\n*\n* **Related:** `isTailwindColor`, `isTailwindColorWithLuminosityAndOpacity`\n*/\nfunction isTailwindColorName(val) {\n\treturn isString(val) && Object.keys(TW_HUE).includes(val);\n}\n/**\n* **isTailwindColorWithLuminosity**`(val)`\n*\n* A type guard which validates whether the `val` passed in is a [Tailwind](https://tailwindcss.com/docs/customizing-colors)\n* color with luminosity string (e.g., `blue-300`, `purple-900`).\n*\n* - this also allows the colors `white` and `black` which are mapped to a luminosity level\n* but do not have variant luminosities\n*\n* **Related:** `isTailwindColor`, `isTailwindColorWithLuminosityAndOpacity`\n*/\nfunction isTailwindColorWithLuminosity(val) {\n\treturn isString(val) && isTailwindColorName(val.split(\"-\")[0]) && (![\"white\", \"black\"].includes(val.split(\"-\")[0]) || val.split(\"-\").length === 1) && (!val.includes(\"-\") || Object.keys(TW_LUMINOSITY).includes(retainAfter(val, \"-\")));\n}\n/**\n* **isTailwindColorWithLuminosityAndOpacity**`(val)`\n*\n* A type guard which validates whether the `val` passed in is a [Tailwind](https://tailwindcss.com/docs/customizing-colors)\n* color string with both **luminosity** and **opacity** expressed (e.g., `blue-300/40`, `purple-900/75`).\n*\n* - this also allows the colors `white` and `black` which are mapped to a luminosity level\n* but do not have variant luminosities\n*\n* **Related:** `isTailwindColor`, `isTailwindColorWithLuminosity`, `isTailwindColorName`\n*/\nfunction isTailwindColorWithLuminosityAndOpacity(val) {\n\treturn isString(val) && val.includes(\"/\") && isTailwindColorWithLuminosity(val.split(\"/\")[0]) && isNumberLike(val.split(\"/\")[1]) && ([1, 2].includes(val.split(\"/\")[1].length) || val.split(\"/\")[1] === \"100\");\n}\n/**\n* **isTailwindColor**`(val)`\n*\n* A type guard which validates whether the `val` passed in is a\n* \"fully qualified\" [Tailwind](https://tailwindcss.com/docs/customizing-colors)\n* color string.\n*\n* - All color string must include a luminosity value except `white` and `black`\n* - You may _optionally_ add an opacity value.\n* - Examples:\n* - `blue-500`\n* - `white`\n* - `black/50`\n* - `red-700/25`\n*\n* **Related:** `isTailwindColorWithLuminosityAndOpacity`, `isTailwindColorWithLuminosity`, `isTargetedTailwindColor`\n*/\nfunction isTailwindColor(val) {\n\treturn isTailwindColorWithLuminosity(val) || isTailwindColorWithLuminosityAndOpacity(val);\n}\n/**\n* Type guard which validates that `val` is a `TwModifier` (e.g., \"dark\", \"focus\", etc.).\n*/\nfunction isTailwindModifier(val) {\n\treturn isString(val) && TW_MODIFIERS.includes(val);\n}\n/**\n* A type guard which validates that `val` is a viable \"target\" for a Tailwind\n* color string (e.g., \"bg\", \"text\", \"border\", etc.).\n*/\nfunction isTailwindColorTarget(val) {\n\treturn isString(val) && TW_COLOR_TARGETS.includes(val);\n}\n/**\n* A type guard which validates that `val` is a fully qualified Tailwind class which:\n*\n* - targets a valid source (e.g., \"bg\", \"text\", etc.)\n* - has a valid color and luminosity (and optionally an opacity)\n* - and if any _modifiers_ were at start of string they are part of the\n* those authorized by the the `allowedModifiers` string\n*\n* **Note:** if `allowedModifiers` is set with a single value of `true` then all known modifiers\n* are allowed.\n*\n* **Related:** `isTailwindColor`, `isTailwindColorTarget`, `isTailwindModifier`\n*/\nfunction isTailwindColorClass(val, ...allowedModifiers) {\n\tif (isString(val)) {\n\t\tconst mods = getTailwindModifiers(val);\n\t\tconst targetted = removeTailwindModifiers(val);\n\t\tconst target = targetted.split(\"-\")[0];\n\t\tconst color = targetted.split(\"-\").slice(1).join(\"-\");\n\t\treturn isTailwindColorTarget(target) && isTailwindColor(color) && (allowedModifiers[0] === true || mods.every((i) => allowedModifiers.includes(i)));\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region src/type-guards/urls/news/australian.ts\nconst URL$19 = AUSTRALIAN_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Australian news URL\n*/\nfunction isAustralianNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$19.includes(val) || URL$19.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/belgium.ts\nconst URL$18 = BELGIUM_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Belgium news URL\n*/\nfunction isBelgiumNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$18.includes(val) || URL$18.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/canadian.ts\nconst URL$17 = CANADIAN_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Canadian news URL\n*/\nfunction isCanadianNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$17.includes(val) || URL$17.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/chinese.ts\nconst URL$16 = CHINESE_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Chinese news URL\n*/\nfunction isChineseNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$16.includes(val) || URL$16.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/danish.ts\nconst URL$15 = DANISH_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Danish news URL\n*/\nfunction isDanishNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$15.includes(val) || URL$15.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/dutch.ts\nconst URL$14 = DUTCH_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Dutch news URL\n*/\nfunction isDutchNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$14.includes(val) || URL$14.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/french.ts\nconst URL$13 = FRENCH_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a French news URL\n*/\nfunction isFrenchNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$13.includes(val) || URL$13.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/german.ts\nconst URL$12 = GERMAN_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a German news URL\n*/\nfunction isGermanNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$12.includes(val) || URL$12.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/indian.ts\nconst URL$11 = INDIAN_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Indian news URL\n*/\nfunction isIndianNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$11.includes(val) || URL$11.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/isNewsUrl.ts\n/**\n* Type guard which identifies whether the `val` passed in is a URL pointing to a leading\n* worldwide news organization.\n*\n* **Note:** _there is no way to make this all inclusive so we've simply added the most popular\n* new organizations for most countries in western EU, North America, and have added notables such\n* as China, India, Japan, South Korea, and Australia as well._\n*/\nfunction isNewsUrl(val) {\n\treturn isAustralianNewsUrl(val) || isBelgiumNewsUrl(val) || isCanadianNewsUrl(val) || isDanishNewsUrl(val) || isDutchNewsUrl(val) || isFrenchNewsUrl(val) || isGermanNewsUrl(val) || isIndianNewsUrl(val) || isItalianNewsUrl(val) || isJapaneseNewsUrl(val) || isMexicanNewsUrl(val) || isNorwegianNewsUrl(val) || isSouthKoreanNewsUrl(val) || isSpanishNewsUrl(val) || isSwissNewsUrl(val) || isTurkishNewsUrl(val) || isUkNewsUrl(val) || isUsNewsUrl(val);\n}\n\n//#endregion\n//#region src/type-guards/urls/news/italian.ts\nconst URL$10 = ITALIAN_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Italian news URL\n*/\nfunction isItalianNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$10.includes(val) || URL$10.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/japanese.ts\nconst URL$9 = JAPANESE_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Japanese news URL\n*/\nfunction isJapaneseNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$9.includes(val) || URL$9.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/mexican.ts\nconst URL$8 = MEXICAN_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Mexican news URL\n*/\nfunction isMexicanNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$8.includes(val) || URL$8.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/norwegian.ts\nconst URL$7 = NORWEGIAN_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Norwegian news URL\n*/\nfunction isNorwegianNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$7.includes(val) || URL$7.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/south-korean.ts\nconst URL$6 = SOUTH_KOREAN_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a South Korean news URL\n*/\nfunction isSouthKoreanNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$6.includes(val) || URL$6.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/spanish.ts\nconst URL$5 = SPANISH_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Spanish news URL\n*/\nfunction isSpanishNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$5.includes(val) || URL$5.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/swiss.ts\nconst URL$4 = SWISS_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Swiss news URL\n*/\nfunction isSwissNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$4.includes(val) || URL$4.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/turkish.ts\nconst URL$3 = TURKISH_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a Turkish news URL\n*/\nfunction isTurkishNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$3.includes(val) || URL$3.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/uk.ts\nconst URL$2 = UK_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a UK news URL\n*/\nfunction isUkNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$2.includes(val) || URL$2.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/news/us.ts\nconst URL$1 = US_NEWS.flatMap((i) => i.baseUrls);\n/**\n* type guard which validates that the passed in `val` is a US news URL\n*/\nfunction isUsNewsUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://\") && (URL$1.includes(val) || URL$1.some((i) => i.startsWith(`${i}/`)));\n}\n\n//#endregion\n//#region src/type-guards/urls/repos/bitbucket.ts\n/**\n* **isBitbucketUrl**`(val)`\n*\n* Type guard which validates that the value passed in is a valid BitBucket URL\n*/\nfunction isBitbucketUrl(val) {\n\tconst valid$1 = REPO_SOURCE_LOOKUP.bitbucket;\n\treturn isString(val) && valid$1.some((i) => val === i || val.startsWith(`${i}/`) || val.startsWith(`${i}?`));\n}\n\n//#endregion\n//#region src/type-guards/urls/repos/codeCommit.ts\n/**\n* **isCodeCommitUrl**`(val)`\n*\n* Type guard which validates that the value passed in is a valid AWS Code Commit URL\n*/\nfunction isCodeCommitUrl(val) {\n\tconst valid$1 = REPO_SOURCE_LOOKUP.codecommit;\n\treturn isString(val) && valid$1.some((i) => val === i || val.startsWith(`${i}/`) || val.startsWith(`${i}?`));\n}\n\n//#endregion\n//#region src/type-guards/urls/repos/github.ts\n/**\n* **isGithubUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* **Github** URL.\n*/\nfunction isGithubUrl(val) {\n\tconst valid$1 = [\n\t\t\"https://github.com\",\n\t\t\"https://www.github.com\",\n\t\t\"https://github.io\"\n\t];\n\treturn isString(val) && valid$1.some((i) => val === i || val.startsWith(`${i}/`) || val.startsWith(`${i}?`));\n}\n/**\n* **isGithubOrgUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* **Github** _organization_ URL.\n*/\nfunction isGithubOrgUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && stripper(val).length === 2;\n}\nfunction stripper(s) {\n\treturn stripTrailing(stripLeading(s, \"https://github.com/\"), \"/\");\n}\n/**\n* **isGithubRepoUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* **Github** _repo_ URL.\n*/\nfunction isGithubRepoUrl(val) {\n\treturn !!(isString(val) && val.startsWith(\"https://github.com/\") && stripper(val).split(\"/\").length === 2);\n}\n/**\n* **isGithubRepoReleasesUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* URL for the _releases_ of a given _repo_.\n*\n* **Related:** `isGithubRepoReleaseTagUrl`\n*/\nfunction isGithubRepoReleasesUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && val.includes(\"/releases\") && stripper(val).split(\"/\").length === 3;\n}\n/**\n* **isGithubRepoReleaseTagUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* URL for the _releases_ of a given _repo_.\n*\n* **Related:** `isGithubRepoReleasesUrl`\n*/\nfunction isGithubRepoReleaseTagUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && val.includes(\"/releases/tag/\") && stripper(val).length === 4;\n}\n/**\n* **isGithubIssuesListUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* URL for the _issues_ of a given _repo_.\n*\n* **Related:** `isGithubIssueUrl`\n*/\nfunction isGithubIssuesListUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && val.includes(\"/issues\");\n}\n/**\n* **isGithubIssueUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* URL for the _issues_ of a given _repo_.\n*\n* **Related:** `isGithubIssuesListUrl`\n*/\nfunction isGithubIssueUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && val.includes(\"/issues/\");\n}\n/**\n* **isGithubProjectsListUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* URL for the _projects_ of a given _repo_.\n*\n* **Related:** `isGithubProjectUrl`\n*/\nfunction isGithubProjectsListUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && (val.includes(\"/projects?\") || val.trim().endsWith(\"/projects\")) && stripper(val).split(\"/\").length === 3;\n}\n/**\n* **isGithubProjectUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* URL for a _specific project_ of a given _repo_.\n*\n* **Related:** `isGithubProjectsListUrl`\n*/\nfunction isGithubProjectUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && val.includes(\"/projects/\") && stripper(val).split(\"/\").length === 4;\n}\n/**\n* **isGithubReleasesListUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* URL for the _Releases_ of a given _repo_.\n*\n* **Related:** `isGithubReleaseTagUrl`\n*/\nfunction isGithubReleasesListUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && (val.includes(\"/releases?\") || val.trim().endsWith(\"/releases\")) && stripper(val).split(\"/\").length === 3;\n}\n/**\n* **isGithubReleaseTagUrl**`(val)`\n*\n* Type guard which validates that the passed in value is a valid\n* URL for a _specific release_ of a given _repo_.\n*\n* **Related:** `isGithubReleasesListUrl`\n*/\nfunction isGithubReleaseTagUrl(val) {\n\treturn isString(val) && val.startsWith(\"https://github.com/\") && val.includes(\"/releases/tag/\") && stripper(val).split(\"/\").length === 5;\n}\n\n//#endregion\n//#region src/type-guards/urls/repos/isRepoUrl.ts\n/**\n* **isRepoUrl**`(val)`\n*\n* Type guard which validates that the value passed in is a valid Repo URL\n*/\nfunction isRepoUrl(val) {\n\treturn isGithubUrl(val) || isBitbucketUrl(val) || isCodeCommitUrl(val);\n}\n\n//#endregion\n//#region src/type-guards/urls/repos/isSemanticVersion.ts\n/**\n* **isRepoSource**`(val)`\n*\n* Type guard which validates whether the value passed in is a\n* `RepoSource`.\n*/\nfunction isRepoSource(v) {\n\treturn isString(v) && REPO_SOURCES.includes(v);\n}\n/**\n* **isSemanticVersion**`(val,[allowPrefix]=false)`\n*\n* Type guard which validates whether the value passed in is a\n* semantic version number.\n*\n* - the optional `allowPrefix` parameter allows for a lowercase \"v\"\n* to be prefixed to the version so that values like `v1.0.12` and\n* `v 1.0.12` are allowed.\n* - by default the `allowPrefix` option is set to false\n*/\nfunction isSemanticVersion(v, allowPrefix = false) {\n\treturn isString(v) && v.split(\".\").length === 3 && !Number.isNaN(Number(v.split(\".\")[1])) && !Number.isNaN(Number(v.split(\".\")[2])) && (!Number.isNaN(Number(v.split(\".\")[0])) || allowPrefix && !Number.isNaN(Number(stripLeading(v.split(\".\")[0], \"v\").trim())));\n}\n\n//#endregion\n//#region src/type-guards/urls/retail.ts\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Whole Food Markets**.\n*/\nfunction isWholeFoodsUrl(val) {\n\treturn isString(val) && WHOLE_FOODS_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **CVS** pharmacy.\n*/\nfunction isCvsUrl(val) {\n\treturn isString(val) && CVS_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Walgreens** pharmacy.\n*/\nfunction isWalgreensUrl(val) {\n\treturn isString(val) && WALGREENS_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **CVS** pharmacy.\n*/\nfunction isKrogersUrl(val) {\n\treturn isString(val) && KROGER_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **CVS** pharmacy.\n*/\nfunction isZaraUrl(val) {\n\treturn isString(val) && ZARA_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **H&M** retailer.\n*/\nfunction isHmUrl(val) {\n\treturn isString(val) && HM_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Dell** retailer.\n*/\nfunction isDellUrl(val) {\n\treturn isString(val) && DELL_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Ikea** retailer.\n*/\nfunction isIkeaUrl(val) {\n\treturn isString(val) && KROGER_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Lowes** retailer.\n*/\nfunction isLowesUrl(val) {\n\treturn isString(val) && KROGER_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Macy's** retailer.\n*/\nfunction isNikeUrl(val) {\n\treturn isString(val) && NIKE_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Macy's** retailer.\n*/\nfunction isWayfairUrl(val) {\n\treturn isString(val) && WAYFAIR_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Macy's** retailer.\n*/\nfunction isBestBuyUrl(val) {\n\treturn isString(val) && BEST_BUY_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Macy's** retailer.\n*/\nfunction isCostCoUrl(val) {\n\treturn isString(val) && COSTCO_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Macy's** retailer.\n*/\nfunction isEtsyUrl(val) {\n\treturn isString(val) && ETSY_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Macy's** retailer.\n*/\nfunction isTargetUrl(val) {\n\treturn isString(val) && TARGET_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Macy's** retailer.\n*/\nfunction isEbayUrl(val) {\n\treturn isString(val) && EBAY_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for the **Home Depot** retailer.\n*/\nfunction isHomeDepotUrl(val) {\n\treturn isString(val) && HOME_DEPOT_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for the **Macy's** retailer.\n*/\nfunction isMacysUrl(val) {\n\treturn isString(val) && MACYS_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Apple**.\n*/\nfunction isAppleUrl(val) {\n\treturn isString(val) && APPLE_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Walmart**.\n*/\nfunction isWalmartUrl(val) {\n\treturn isString(val) && WALMART_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which validates that the `val` passed in is a valid URL\n* for **Walmart**.\n*/\nfunction isAmazonUrl(val) {\n\treturn isString(val) && AMAZON_DNS.some((i) => val.startsWith(`https://${i}`));\n}\n/**\n* type guard which check if the passed in value is a Url for one\n* of the top retailers in the world\n*/\nfunction isRetailUrl(val) {\n\treturn isAmazonUrl(val) || isWalgreensUrl(val) || isAppleUrl(val) || isMacysUrl(val) || isEbayUrl(val) || isHomeDepotUrl(val) || isTargetUrl(val) || isEtsyUrl(val) || isCostCoUrl(val) || isBestBuyUrl(val) || isWayfairUrl(val) || isNikeUrl(val) || isLowesUrl(val) || isIkeaUrl(val) || isDellUrl(val) || isHmUrl(val) || isZaraUrl(val) || isKrogersUrl(val) || isWalgreensUrl(val) || isCvsUrl(val) || isWholeFoodsUrl(val);\n}\n\n//#endregion\n//#region src/type-guards/urls/Social.ts\nconst URL = SOCIAL_MEDIA.flatMap((i) => i.baseUrls);\nconst PROFILE = SOCIAL_MEDIA.map((i) => i.profileUrl);\n/**\n* type guard which validates that `val` is a social media URL.\n*\n* **Related:** `isSocialMediaProfileUrl`\n*/\nfunction isSocialMediaUrl(val) {\n\treturn isString(val) && URL.some((i) => val.startsWith(i));\n}\n/**\n* type guard which validates that `val` is a user profile URL on a social\n* media platform.\n*\n* **Related:** `isSocialMediaUrl`\n*/\nfunction isSocialMediaProfileUrl(val) {\n\treturn isString(val) && PROFILE.some((i) => i.startsWith(`${i}`));\n}\n\n//#endregion\n//#region src/type-guards/urls/youtube.ts\n/**\n* **isYouTubeUrl**`(val)`\n*\n* Type guard which checks whether the passed in value is a valid\n* YouTube URL.\n*/\nfunction isYouTubeUrl(val) {\n\treturn isString(val) && (val.startsWith(\"https://www.youtube.com\") || val.startsWith(\"https://youtube.com\") || val.startsWith(\"https://youtu.be\"));\n}\n/**\n* **isYouTubeShareUrl**`(val)`\n*\n* Type guard which checks whether the passed in value is a URL\n* from YouTube's _URL shortening_ site `https://youtu.be`.\n*/\nfunction isYouTubeShareUrl(val) {\n\treturn isString(val) && val.startsWith(`https://youtu.be`);\n}\n/**\n* **isYouTubeVideoUrl**`(val)`\n*\n* Type guard which checks whether the passed in value is a valid\n* YouTube URL _which plays video_.\n*/\nfunction isYouTubeVideoUrl(val) {\n\treturn isString(val) && (val.startsWith(\"https://www.youtube.com\") || val.startsWith(\"https://youtube.com\") || val.startsWith(\"https://youtu.be\"));\n}\n/**\n* **isYouTubePlaylistUrl**`(val)`\n*\n* Type guard which checks whether the passed in value is a valid\n* YouTube URL which points to a \"playlist\" on the platform.\n*/\nfunction isYouTubePlaylistUrl(val) {\n\treturn isString(val) && (val === `https://www.youtube.com/feed/playlists` || val === `https://youtube.com/feed/playlists` || val === `https://www.youtube.com/channel/playlists` || val === `https://youtube.com/channel/playlists` || val.startsWith(`https://www.youtube.com/@`) && val.endsWith(`/playlists`) || val.startsWith(`https://youtube.com/@`) && val.endsWith(`/playlists`));\n}\n/**\n* maps the \"feed type\" to a URL path\n*/\nfunction feed_map(type) {\n\treturn isUndefined(type) ? `/feed` : type === \"liked\" ? `/playlist?list=LL` : [\n\t\t\"history\",\n\t\t\"playlists\",\n\t\t\"trending\",\n\t\t\"subscriptions\"\n\t].includes(type) ? `/feed/${type}` : `/feed/`;\n}\n/**\n* **isYouTubeFeedUrl**`(val,[kind])**\n*\n* Type guard which checks whether the passed in value is a valid\n* YouTube URL which responds with \"feed\" content. This is content\n* which is available to a logged in user and helps them see lists\n* of videos related to their settings.\n*\n* By default any \"feed\" URL is matched but you can narrow that down\n* to a specific feed type by specifying the `kind` variable.\n*/\nfunction isYouTubeFeedUrl(val, type) {\n\treturn isString(val) && (val.startsWith(`https://www.youtube.com${feed_map(type)}`) || val.startsWith(`https://youtube.com${feed_map(type)}`));\n}\n/**\n* **isYouTubeHistoryUrl**`(val,[kind])**\n*\n* Type guard which checks whether the passed in value is a valid\n* YouTube URL which responds with a user's history feed.\n*/\nfunction isYouTubeFeedHistoryUrl(val) {\n\treturn isString(val) && (val.startsWith(`https://www.youtube.com/feed/history`) || val.startsWith(`https://youtube.com/feed/history`));\n}\n/**\n* **isYouTubePlaylistsUrl**`(val,[kind])**\n*\n* Type guard which checks whether the passed in value is a valid\n* YouTube URL which responds with a user's own playlists page.\n*/\nfunction isYouTubePlaylistsUrl(val) {\n\treturn isString(val) && (val.startsWith(`https://www.youtube.com/feed/playlists`) || val.startsWith(`https://youtube.com/feed/playlists`));\n}\n/**\n* **isYouTubeTrendingUrl**`(val,[kind])**\n*\n* Type guard which checks whether the passed in value is a valid\n* YouTube URL which responds with a user's own history feed.\n*/\nfunction isYouTubeTrendingUrl(val) {\n\treturn isString(val) && (val.startsWith(`https://www.youtube.com/feed/trending`) || val.startsWith(`https://youtube.com/feed/trending`));\n}\n/**\n* **isYouTubeSubscriptionsUrl**`(val,[kind])**\n*\n* Type guard which checks whether the passed in value is a valid\n* YouTube URL which responds with a user's own subscriptions feed.\n*/\nfunction isYouTubeSubscriptionsUrl(val) {\n\treturn isString(val) && (val.startsWith(`https://www.youtube.com/feed/subscriptions`) || val.startsWith(`https://youtube.com/feed/subscriptions`));\n}\nfunction isYouTubeCreatorUrl(url) {\n\treturn isString(url) && (url.startsWith(`https://www.youtube.com/@`) || url.startsWith(`https://youtube.com/@`) || url.startsWith(`https://www.youtube.com/channel/`));\n}\nfunction isYouTubeVideosInPlaylist(val) {\n\treturn isString(val) && (val.startsWith(`https://www.youtube.com/playlist?`) || val.startsWith(`https://youtube.com/playlist?`)) && hasUrlQueryParameter(val, \"list\");\n}\n\n//#endregion\n//#region src/boolean-logic/not.ts\n/**\n* **not**`(val)`\n*\n* Returns the inverse of the value's truthy/falsy value.\n*/\nfunction not(val) {\n\treturn !!isFalsy(val);\n}\n\n//#endregion\n//#region src/branding/brand.ts\nfunction brand(val, _name) {\n\treturn val;\n}\n\n//#endregion\n//#region src/branding/fourDigitYear.ts\nfunction fourDigitYear(year) {\n\treturn year;\n}\n\n//#endregion\n//#region src/branding/integer.ts\nfunction integer(num) {\n\treturn num;\n}\n\n//#endregion\n//#region src/branding/threeDigitMillisecond.ts\nfunction threeDigitMillisecond(Millisecond) {\n\treturn Millisecond;\n}\n\n//#endregion\n//#region src/branding/twoDigitHour.ts\nfunction twoDigitHour(hour) {\n\treturn hour;\n}\n\n//#endregion\n//#region src/branding/twoDigitMinute.ts\nfunction twoDigitMinute(Minute) {\n\treturn Minute;\n}\n\n//#endregion\n//#region src/branding/twoDigitSecond.ts\nfunction twoDigitSecond(Second) {\n\treturn Second;\n}\n\n//#endregion\n//#region src/branding/unbrand.ts\n/**\n* **unbrand**`(val)`\n*\n* This runtime utility _does not_ modify the runtime value at all but it\n* will strip off a \"branded type\" which was added with the `brand()` or\n* `Brand<T,U>` utilities\n*/\nfunction unbrand(val) {\n\treturn val;\n}\n\n//#endregion\n//#region src/constants/NO_MATCH.ts\n/**\n* Used to indicate that a **take** function was not able to match\n* what it's configured to _take_ at the HEAD of the string being parsed\n* by the Lexer.\n*/\nconst NO_MATCH = \"NO MATCH\";\n\n//#endregion\n//#region src/containers/freeze.ts\n/**\n* **freeze**`(container)`\n*\n* Deeply freezes a container (runtime) while using the `Immutable` utility to\n* deeply disallow mutable operations in the type system.\n*/\nfunction freeze(obj) {\n\tconst output = isArray(obj) ? [] : {};\n\tfor (const key of keysOf(obj)) {\n\t\tconst value = obj[key];\n\t\toutput[key] = typeof value === \"object\" ? freeze(value) : output[key];\n\t}\n\tObject.freeze(output);\n\treturn output;\n}\n\n//#endregion\n//#region src/css/createCssKeyframe.ts\nfunction api(state = []) {\n\treturn {\n\t\tstate,\n\t\tadd: (stage, defn) => {\n\t\t\treturn api([...state, [stage, defn]]);\n\t\t},\n\t\tdone() {\n\t\t\treturn state;\n\t\t}\n\t};\n}\nfunction hasDone(val) {\n\treturn isDictionary(val) && \"done\" in val && typeof val.done === \"function\";\n}\nfunction frameToCss(frames) {\n\tconst tuples = frames.map(([ts, defn]) => [ts, Object.keys(defn).reduce((acc, i) => [...acc, `${i}: ${String(defn[i])}`], []).join(\"; \")]);\n\treturn tuples.map(([ts, defn]) => ` ${ts} { ${defn} }`).join(\"\\n\");\n}\nfunction createCssKeyframe(name, keyframes) {\n\t/** api surface */\n\tconst surface = api([]);\n\t/** return from user callback */\n\tconst rtn = keyframes(surface);\n\tconst frames = hasDone(rtn) ? rtn.done() : rtn;\n\treturn {\n\t\tname,\n\t\tkeyframes: frames,\n\t\tcss: `@keyframes ${name} {\\n${frameToCss(frames)}\\n}`\n\t};\n}\n\n//#endregion\n//#region src/css/cssFromDefinition.ts\n/**\n* **cssFromDefinition**`(defn, [opt])`\n*\n* converts a `CssDefinition` into a CSS string\n*/\nfunction cssFromDefinition(defn, opt) {\n\tif (isUndefined(defn)) return \"\";\n\tconst inline$1 = isDefined(opt?.inline) ? opt.inline : true;\n\tconst indent = isString(opt?.indent) ? opt.indent : \"\";\n\tconst nextDefn = inline$1 ? \" \" : \"\\n\";\n\treturn Object.keys(defn).map((key) => {\n\t\tconst val = ensureTrailing(defn[key], \";\");\n\t\treturn `${indent}${key}: ${val}`;\n\t}).join(nextDefn);\n}\nfunction defineCss(defn) {\n\tconst fn$1 = (selector) => {\n\t\treturn selector ? `${selector} {\\n${cssFromDefinition(defn, { indent: \" \" })}}\\n` : cssFromDefinition(defn);\n\t};\n\treturn createFnWithProps(fn$1, { defn });\n}\n\n//#endregion\n//#region src/css/parseColor.ts\nfunction parseRgbColor(color) {\n\tif (isRgbColor(color)) {\n\t\tconst [r, g, b] = stripTrailing(stripLeading(color, \"rgb(\"), \")\").split(\",\").map((i) => i.trim().toLowerCase());\n\t\treturn [\n\t\t\tr,\n\t\t\tg,\n\t\t\tb\n\t\t].every((i) => isNumberLike(i)) ? {\n\t\t\tr: asNumber(r),\n\t\t\tg: asNumber(g),\n\t\t\tb: asNumber(b)\n\t\t} : err(`invalid-color/rgb`, `Some of the values assigned to the RGB colors are unable to be parsed to a numeric value: ${color}`, {\n\t\t\tcolor,\n\t\t\tr,\n\t\t\tg,\n\t\t\tb\n\t\t});\n\t}\n\treturn err(`invalid-color/rgb`, `Could not parse the string passed in -- '${color}' -- as an RGB color. Must look something like: rgb(#,#,#)`, { color });\n}\nfunction parseNamedColor(color) {\n\treturn Object.keys(CSS_COLOR_LOOKUP).includes(color) ? parseRgbColor(CSS_COLOR_LOOKUP[color]) : err(`invalid-color/named`, `The string -- ${color} -- is not a valid \"named color\" recognized by HTML and CSS. Make sure you have no whitespace or uppercase characters.`, { color });\n}\n/**\n* **parseColor**`(color) -> RGB`\n*\n* Extracts the discrete RGB values from both `CssRgb` strings and\n* _named colors_ recognized by HTML and CSS.\n*\n* = Note: all strings are trimmed and forced to lowercase to help\n* with matching.\n*/\nfunction parseColor(color) {\n\tif (isRgbColor(color)) return parseRgbColor(color);\n\telse if (isNamedColor(color)) return parseNamedColor(color);\n\telse return err(\"invalid-color\", `The string passed in -- ${color} -- could not be parsed as either a CSS RGB Color or a CSS Named Color.`, { color });\n}\n\n//#endregion\n//#region src/datetime/asDate.ts\n/**\n* **asDate**`(input)`\n*\n* Converts common date representations to a Javascript Date object.\n*\n* - the goal is to have **Date** information but not **Time** information\n* - use `asDateTime()` if you wish to preserve time info\n* - all time information -- if present when passed in -- should be set to\n* the stroke of midnight and be in UTC timezone\n*/\nfunction asDate(input) {\n\tif (input === void 0) throw err(\"invalid-date\", `The asDate() function was passed an undefined value!`);\n\ttry {\n\t\tconst toUtcMidnight = (d) => {\n\t\t\tconst utc = new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), 0, 0, 0, 0));\n\t\t\treturn utc;\n\t\t};\n\t\tif (isDate(input)) return toUtcMidnight(new Date(input.getTime()));\n\t\tif (isMoment(input)) return toUtcMidnight(input.toDate());\n\t\tif (isLuxonDate(input)) return toUtcMidnight(input.toJSDate());\n\t\tif (isDate(input)) return toUtcMidnight(input);\n\t\tif (isTemporalDate(input)) return toUtcMidnight(new Date(input.toString()));\n\t\tif (isIsoDateTime(input)) {\n\t\t\tconst parsed = parseIsoDate(input);\n\t\t\tif (isError(parsed)) throw parsed;\n\t\t\tconst year = Number(parsed.year);\n\t\t\tconst month = Number(parsed.month);\n\t\t\tconst day = Number(parsed.date);\n\t\t\treturn new Date(Date.UTC(year, month - 1, day, 0, 0, 0, 0));\n\t\t}\n\t\tif (isFourDigitYear(input)) {\n\t\t\tconst year = Number(input);\n\t\t\treturn new Date(Date.UTC(year, 0, 1, 0, 0, 0, 0));\n\t\t}\n\t\tif (isNumber(input) && input >= 1e3 && input <= 9999 && Math.floor(input) === input) return new Date(Date.UTC(input, 0, 1, 0, 0, 0, 0));\n\t\tif (isNumber(input) && isEpochInMilliseconds(input)) return toUtcMidnight(new Date(input));\n\t\tif (isNumber(input) && isEpochInSeconds(input)) return toUtcMidnight(new Date(input * 1e3));\n\t\tif (isIsoYear(input)) {\n\t\t\tconst parsed = parseIsoDate(input);\n\t\t\tif (isError(parsed)) throw parsed;\n\t\t\tconst year = Number(parsed.year);\n\t\t\treturn new Date(Date.UTC(year, 0, 1, 0, 0, 0, 0));\n\t\t}\n\t\tif (isIsoExplicitDate(input)) {\n\t\t\tconst parsed = parseIsoDate(input);\n\t\t\tif (isError(parsed)) throw parsed;\n\t\t\tconst year = Number(parsed.year);\n\t\t\tconst month = Number(parsed.month);\n\t\t\tconst day = Number(parsed.date);\n\t\t\treturn new Date(Date.UTC(year, month - 1, day, 0, 0, 0, 0));\n\t\t}\n\t\tif (isIsoImplicitDate(input)) {\n\t\t\tconst parsed = parseIsoDate(input);\n\t\t\tif (isError(parsed)) throw parsed;\n\t\t\tconst year = Number(parsed.year);\n\t\t\tconst month = Number(parsed.month);\n\t\t\tconst day = Number(parsed.date);\n\t\t\treturn new Date(Date.UTC(year, month - 1, day, 0, 0, 0, 0));\n\t\t}\n\t\tif (isIsoDate(input)) {\n\t\t\tconst parsed = parseIsoDate(input);\n\t\t\tif (isError(parsed)) throw parsed;\n\t\t\tconst year = Number(parsed.year);\n\t\t\tconst month = Number(parsed.month);\n\t\t\tconst day = Number(parsed.date);\n\t\t\treturn new Date(Date.UTC(year, month - 1, day, 0, 0, 0, 0));\n\t\t}\n\t} catch (e) {\n\t\tif (isError(e)) throw err(`parse-date/as-date`, `The input passed to asDate(${asString(input)}) function ran into an error while trying to convert this input into a Javascript date object. Underlying error message was: ${e.message}`);\n\t\telse throw err(`parse-date/as-date`, `The input passed to asDate(${asString(input)}) function ran into an error while trying to convert this input into a Javascript date object. Underlying error message was: ${asString(e)}`);\n\t}\n\tthrow err(`invalid/date`, `The date-like value you passed to 'asDate(${asString(input)})' function was unable to be converted to a Javascript Date object!`, { date: input });\n}\n\n//#endregion\n//#region src/datetime/asDateTime.ts\nconst getLocalIanaZone = (() => {\n\tconst tz = (process.env.TZ && isIanaTimezone(process.env.TZ) ? process.env.TZ : Intl.DateTimeFormat().resolvedOptions().timeZone) ?? \"UTC\";\n\treturn () => tz;\n})();\nfunction offsetMinutesToString(mins) {\n\tconst sign = mins >= 0 ? \"+\" : \"-\";\n\tconst abs$1 = Math.abs(mins);\n\tconst hh = String(Math.floor(abs$1 / 60)).padStart(2, \"0\");\n\tconst mm = String(abs$1 % 60).padStart(2, \"0\");\n\treturn `${sign}${hh}:${mm}`;\n}\n/**\n* **asDateTime**`(input)`\n*\n* Converts common date representations to a Javascript Date object.\n*\n* - the goal is to have both **Date** and **Time** information preserved\n* - use `asDate()` if you wish to only preserve date information\n* - this will return the `DatePlus` interface which is just the `Date`\n* interface with a few extra properties to try and preserve the source\n* timezone where that's feasible\n*/\nfunction asDateTime(input) {\n\tif (isMoment(input)) {\n\t\tconst parsed = input.parseZone();\n\t\tconst d = new Date(parsed.toISOString());\n\t\tconst offsetMins = parsed.utcOffset();\n\t\tconst tz = isTimezoneOffset(offsetMinutesToString(offsetMins)) ? offsetMinutesToString(offsetMins) : null;\n\t\td.offset = tz;\n\t\td.tz = isIanaTimezone(input._z?.name) ? input._z.name : null;\n\t\td.source = \"moment\";\n\t\tconst sourceIso = parsed.toISOString(true);\n\t\td.sourceIso = sourceIso.endsWith(\"+00:00\") ? sourceIso.replace(\"+00:00\", \"Z\") : sourceIso;\n\t\treturn d;\n\t}\n\tif (isLuxonDate(input)) {\n\t\tconst d = input.toJSDate();\n\t\td.offset = offsetMinutesToString(input.offset);\n\t\td.tz = isIanaTimezone(input.zoneName) ? input.zoneName : null;\n\t\td.source = \"luxon\";\n\t\td.sourceIso = input.toISO();\n\t\treturn d;\n\t}\n\tif (isTemporalDate(input)) {\n\t\tlet d;\n\t\tif (\"epochNanoseconds\" in input) {\n\t\t\tconst zdt = input.toZonedDateTimeISO(getLocalIanaZone());\n\t\t\td = new Date(zdt.epochMilliseconds);\n\t\t\td.offset = isTimezoneOffset(zdt.offset) ? zdt.offset : null;\n\t\t\td.tz = zdt.timeZone && isIanaTimezone(zdt.timeZone.id) ? zdt.timeZone.id : null;\n\t\t\td.sourceIso = zdt.toString();\n\t\t} else if (\"timeZone\" in input) {\n\t\t\tconst zdt = input;\n\t\t\td = new Date(zdt.epochMilliseconds);\n\t\t\td.offset = isTimezoneOffset(zdt.offset) ? zdt.offset : null;\n\t\t\td.tz = zdt.timeZone && isIanaTimezone(zdt.timeZone.id) ? zdt.timeZone.id : null;\n\t\t\td.sourceIso = zdt.toString();\n\t\t} else {\n\t\t\tconst instant = input.toZonedDateTime(\"UTC\").toInstant();\n\t\t\td = new Date(instant.epochMilliseconds);\n\t\t\td.offset = null;\n\t\t\td.tz = null;\n\t\t\td.sourceIso = null;\n\t\t}\n\t\td.source = \"temporal\";\n\t\treturn d;\n\t}\n\tif (isDayJs(input)) {\n\t\tconst d = input.toDate();\n\t\td.offset = null;\n\t\td.tz = null;\n\t\td.source = \"day.js\";\n\t\td.sourceIso = input.toISOString();\n\t\treturn d;\n\t}\n\tif (isIsoDateTime(input)) {\n\t\tconst meta = parseIsoDate(input);\n\t\tconst d = new Date(input);\n\t\td.offset = meta.timezone;\n\t\td.tz = null;\n\t\td.source = \"iso-datetime\";\n\t\td.sourceIso = input;\n\t\treturn d;\n\t}\n\tif (isIsoYearMonth(input)) {\n\t\tconst meta = parseIsoDate(input);\n\t\tconst d = new Date(`${meta.year}-${meta.month}-01T00:00:00.000Z`);\n\t\td.offset = \"Z\";\n\t\td.tz = null;\n\t\td.source = \"iso-year-month\";\n\t\td.sourceIso = `${meta.year}-${meta.month}-01T00:00:00.000Z`;\n\t\treturn d;\n\t}\n\tif (isIsoYear(input)) {\n\t\tconst d = new Date(`${input}-01-01T00:00:00.000Z`);\n\t\td.offset = \"Z\";\n\t\td.tz = null;\n\t\td.source = \"iso-year\";\n\t\td.sourceIso = `${input}-01-01T00:00:00.000Z`;\n\t\treturn d;\n\t}\n\tif (isIsoDate(input)) {\n\t\tconst meta = parseIsoDate(input);\n\t\tconst d = new Date(`${meta.year}-${meta.month}-${meta.date}T00:00:00.000Z`);\n\t\td.offset = \"Z\";\n\t\td.tz = null;\n\t\td.source = `iso-${meta.dateType}`;\n\t\td.sourceIso = `${input}T00:00:00.000Z`;\n\t\treturn d;\n\t}\n\tif (isNumber(input)) {\n\t\tif (isEpochInMilliseconds(input)) {\n\t\t\tconst d = new Date(input);\n\t\t\td.offset = null;\n\t\t\td.tz = null;\n\t\t\td.source = \"epoch-milliseconds\";\n\t\t\td.sourceIso = d.toISOString();\n\t\t\treturn d;\n\t\t}\n\t\tif (isEpochInSeconds(input)) {\n\t\t\tconst d = new Date(input * 1e3);\n\t\t\td.offset = null;\n\t\t\td.tz = null;\n\t\t\td.source = \"epoch\";\n\t\t\td.sourceIso = d.toISOString();\n\t\t\treturn d;\n\t\t}\n\t}\n\tif (isDate(input)) {\n\t\tconst d = new Date(input.getTime());\n\t\td.offset = null;\n\t\td.tz = null;\n\t\td.source = \"date\";\n\t\td.sourceIso = d.toISOString();\n\t\treturn d;\n\t}\n\treturn null;\n}\n\n//#endregion\n//#region src/datetime/asEpochTimestamp.ts\nfunction asEpochTimestamp(dt) {\n\tconst d = asDate(dt);\n\treturn Math.floor(d.getTime() / 1e3);\n}\n\n//#endregion\n//#region src/datetime/asFourDigitYear.ts\n/**\n* **asFourDigitYear**`(year, [branding])`\n*\n* A type conversion utility which tries to convert `year` into a valid `FourDigitYear` type.\n*\n* - by default the conversion is done but the type returned is _not_ a branded type\n* - to switch this behavior then pass in `true` to the generic `B`\n*\n* If there is no way to convert `year` to a `FourDigitYear` then an Error will be returned.\n*/\nfunction asFourDigitYear(year, _branded = false) {\n\treturn isNumber(year) ? isInteger(year) ? year > 9999 ? err(`year-invalid/too-large`) : isNegativeNumber(year) ? err(`year-invalid/negative-number`) : `${year}`.padStart(4, \"0\") : err(`year-invalid/not-integer`) : isNumberLike(year) ? asFourDigitYear(asNumber(year)) : err(`year-invalid/wrong-type`);\n}\n\n//#endregion\n//#region src/datetime/asIsoDate.ts\n/**\n* **asIsoDate**`(input)`\n*\n* Converts common date representations to an ISO 8601 Date string (e.g., \"2024-01-15\").\n*\n* - If the underlying date has a timezone offset then that will be ignored and the year-month-date\n* of the date for the _local time_ will be used.\n*/\nfunction asIsoDate(input) {\n\ttry {\n\t\tconst parsed = isString(input) ? parseIsoDate(input) : isObject(input) ? parseDateObject(input) : isNumber(input) ? parseNumericDate(input) : err(`parse/as-iso-date`, `An invalid type was passed to asIsoDate(input)!`, {\n\t\t\ttype: typeof input,\n\t\t\tinput\n\t\t});\n\t\tif (isError(parsed)) return parsed;\n\t\treturn parsed.dateType === \"date\" || parsed.dateType === \"datetime\" ? `${parsed.year}-${parsed.month}-${parsed.date}` : parsed.dateType === \"year\" ? parsed.year : parsed.dateType === \"year-independent\" ? `-${parsed.month}-${parsed.date}` : parsed.dateType === \"year-month\" ? `--${parsed.year}-${parsed.month}` : Never;\n\t} catch (e) {\n\t\treturn err(`parse/as-iso-date`, `An unexpected problem was encountered running asIsoDate: ${e instanceof Error ? e.message : String(e)}`, {\n\t\t\tinput,\n\t\t\tunderlying: e\n\t\t});\n\t}\n}\n\n//#endregion\n//#region src/datetime/asIsoDateTime.ts\nfunction asIsoDateTime(dt) {\n\tconst d = asDateTime(dt);\n\treturn d.toISOString();\n}\n\n//#endregion\n//#region src/datetime/asTwoDigitMonth.ts\n/**\n* **asTwoDigitMonth**`(dateLike)`\n*\n* given any DateLike input, this function returns the **month** in a\n* two digit format appropriate for ISO Date/DateTime strings.\n*\n* **Note:**\n* - if an integer number between 1 and 12 is passed in this\n* will be treated as a numeric month rather than as an epoch\n* timestamp\n*/\nfunction asTwoDigitMonth(date) {\n\treturn isInteger(date) ? date > 0 && date < 13 ? `${date}`.padStart(2, \"0\") : isError(asDate(date)) ? asDate(date) : isError(parseDateObject(date)) ? parseDateObject(date) : parseDateObject(date).month : isError(asDate(date)) ? asDate(date) : isError(parseDateObject(date)) ? parseDateObject(date) : parseDateObject(date).month;\n}\n\n//#endregion\n//#region src/datetime/dateObjectToIso.ts\nfunction dateObjectToIso(d) {\n\tconst date = d instanceof Date ? d : asDate(d);\n\tconst iso = date.toISOString();\n\tconst parsed = parseIsoDate(iso);\n\tif (isError(parsed)) return parsed;\n\tconst result$1 = toIsoDateString(parsed);\n\treturn result$1;\n}\n\n//#endregion\n//#region src/datetime/daysInMonth.ts\n/**\n* **daysInMonth**`(month, [year])`\n*\n* Provides the number of days in a given month.\n*\n* - the **month** can be passed in as a fully spelled out month (e.g., \"January\"),\n* an abbreviated month name (e.g., \"Jan\") or a two digit month (e.g., \"01\", \"02\", etc.)\n* - Note: these correspond to the `MonthName`, `MonthAbbrev`, and `TwoDigitMonth`\n* types defined in this library\n* - if a **year** is provided then both leap years and _double_ leap\n* years will be built into the calculation for February\n* - if no year information is available, February will report as having\n* 28 days.\n*/\nfunction daysInMonth(month, year = void 0) {\n\tconst monthNum = isTwoDigitMonth(month) ? Number(month) : getMonthNumber(month);\n\tif (isError(monthNum)) return err(\"unknown-month/days-in-month\", `The daysInMonth() function was unable to determine the month from the value passed in: ${month}. Remember that if you're using month names or abbreviations they must map to the MonthName and MonthAbbrev types which capitalize the names.`, {\n\t\tmonth,\n\t\tyear\n\t});\n\tconst twoDigitMonth = asTwoDigitMonth(monthNum);\n\treturn monthNum === 2 ? isDefined(year) ? isLeapYear(year) ? isDoubleLeap(year) ? 30 : 29 : 28 : 28 : ISO_DATE_30.includes(twoDigitMonth) ? 30 : 31;\n}\n\n//#endregion\n//#region src/datetime/getDaysBetween.ts\n/**\n* Provides the number of days between two dates.\n*\n* - if the second date is left out, the current date is used\n*/\nfunction getDaysBetween(a, b = /* @__PURE__ */ new Date()) {\n\tconst aDate = asDate(a);\n\tconst bDate = asDate(b);\n\tif (!aDate || !bDate) throw new Error(`Invalid date passed into getDaysBetween()`);\n\tconst aStr = aDate.toISOString().split(\"T\")[0];\n\tconst bStr = bDate.toISOString().split(\"T\")[0];\n\tconst dateA = new Date(`${aStr}T00:00:00Z`);\n\tconst dateB = new Date(`${bStr}T00:00:00Z`);\n\tconst msInDay = 24 * 60 * 60 * 1e3;\n\treturn Math.round(Math.abs((dateB.getTime() - dateA.getTime()) / msInDay));\n}\n\n//#endregion\n//#region src/datetime/getMonthAbbrev.ts\n/**\n* **getMonthAbbrev**`(date)`\n*\n* Converts any date-like value into a month abbreviation.\n*\n* **Related:** `getMonthName()`, `getMonthNumber()`\n*/\nfunction getMonthAbbrev(date) {\n\tconst d = asDate(date);\n\treturn MONTH_ABBR[d.getMonth()];\n}\n\n//#endregion\n//#region src/datetime/getMonthName.ts\n/**\n* **getMonthName**`(date)`\n*\n* Converts any date-like value into a month abbreviation.\n*\n* **Related:** `getMonthAbbrev()`\n*/\nfunction getMonthName(date) {\n\tconst d = asDate(date);\n\treturn MONTH_NAME[d.getMonth()];\n}\n\n//#endregion\n//#region src/datetime/getMonthNumber.ts\n/**\n* **getMonthNumber**`(date | MonthName | MonthAbbrev)`\n*\n* Get's the a date's numeric index for the **month** being represented\n* (aka., January is 1, etc.).\n*\n* - you can pass in a `DateLike` value _or_ a month name\n* or month abbreviation\n*/\nfunction getMonthNumber(date) {\n\tif (isMonthName(date)) return MONTH_NAME_LOOKUP[date].num;\n\telse if (isMonthAbbrev(date)) return MONTH_ABBREV_LOOKUP[date].num;\n\telse {\n\t\tconst d = parseDate(date);\n\t\tif (isParsedDate(d)) {\n\t\t\tif (!d.month) return err(`month-number/missing`, `The type passed into GetMonthNumber<T> was successfully parsed but there is no month information. This typically means that an IsoYear was passed in.`);\n\t\t\treturn asNumber(d.month);\n\t\t}\n\t\treturn err(`invalid-date`, `Unable to parse the date when calling getMonthNumber()`);\n\t}\n}\n\n//#endregion\n//#region src/datetime/getSeason.ts\n/**\n* **getSeason**`(date, [hemisphere])`\n*\n* Gets the season of the passed in `date`.\n*/\nfunction getSeason(date, hemisphere = \"northern\") {\n\tconst month = getMonthAbbrev(date);\n\treturn MONTH_TO_SEASON_LOOKUP[hemisphere][month];\n}\n\n//#endregion\n//#region src/datetime/getToday.ts\n/**\n* Returns the current date as an\n* [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date string.\n*/\nfunction getToday(now = /* @__PURE__ */ new Date()) {\n\treturn now.toISOString().split(\"T\")[0];\n}\n\n//#endregion\n//#region src/datetime/getTomorrow.ts\n/**\n* **getTomorrow**`(now?)`\n*\n* Returns an ISO 8601 date string for tomorrow.\n* - Optional `now` parameter for testing purposes\n*/\nfunction getTomorrow(now = /* @__PURE__ */ new Date()) {\n\tconst tomorrow = new Date(now);\n\ttomorrow.setDate(tomorrow.getDate() + 1);\n\treturn tomorrow.toISOString().split(\"T\")[0];\n}\n\n//#endregion\n//#region src/datetime/getWeekNumber.ts\n/**\n* Provides the ISO week number of a given date.\n*\n* - if no date is provided, the current date is used\n* - an ISO week always starts on Monday\n* - numerically an ISO week will be between 1 and 53\n* - 52 is max for most years\n* - those years which start on a Thursday or\n* years with a leap day and start on a Wednesday get 53\n*/\nfunction getWeekNumber(date = /* @__PURE__ */ new Date()) {\n\tconst d = asDate(date);\n\tif (!d) throw new Error(`invalid date passed into getWeekNumber${String(date)}`);\n\tconst dateCopy = new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate()));\n\tconst dayNum = dateCopy.getUTCDay() || 7;\n\tdateCopy.setUTCDate(dateCopy.getUTCDate() + 4 - dayNum);\n\tconst yearOfThursday = dateCopy.getUTCFullYear();\n\tconst jan1 = new Date(Date.UTC(yearOfThursday, 0, 1));\n\tconst jan1DayNum = jan1.getUTCDay() || 7;\n\tconst firstThursday = new Date(jan1);\n\tfirstThursday.setUTCDate(jan1.getUTCDate() + (4 - jan1DayNum + 7) % 7);\n\tconst weekNo = Math.floor((dateCopy.getTime() - firstThursday.getTime()) / (7 * 24 * 60 * 60 * 1e3)) + 1;\n\treturn weekNo;\n}\n\n//#endregion\n//#region src/datetime/getYear.ts\nfunction getYear(date) {\n\tconst d = asDate(date);\n\treturn d.getFullYear();\n}\n\n//#endregion\n//#region src/datetime/getYesterday.ts\n/**\n* **getYesterday**`(now?)`\n*\n* Returns an ISO 8601 date string for yesterday.\n* - Optional `now` parameter for testing purposes\n*/\nfunction getYesterday(now = /* @__PURE__ */ new Date()) {\n\tconst yesterday = new Date(now);\n\tyesterday.setDate(yesterday.getDate() - 1);\n\treturn yesterday.toISOString().split(\"T\")[0];\n}\n\n//#endregion\n//#region src/datetime/isAfter.ts\n/**\n* Checks if a value is a year-only number (e.g., 2023).\n*/\nfunction isYearOnly(input) {\n\treturn typeof input === \"number\" && Number.isInteger(input) && input >= 1e3 && input <= 9999;\n}\n/**\n* **isAfter**`(comparator) -> (date) -> boolean\n*\n* Higher order utility to configure a date checking function which\n* checks whether an incoming `date` is _after_ the configured date.\n*\n* **Related:** `isBefore`, `isLeapYear`, `isSameYear`, `isSameDay`\n*/\nfunction isAfter(comparator) {\n\treturn (val) => {\n\t\tif (isYearOnly(comparator) && isYearOnly(val)) return val > comparator;\n\t\tconst comp = asDate(comparator);\n\t\tconst v = asDate(val);\n\t\treturn v.getTime() > comp.getTime();\n\t};\n}\n\n//#endregion\n//#region src/datetime/isBefore.ts\n/**\n* **isBefore**`(comparator) -> (date) -> boolean\n*\n* Higher order utility to configure a date checking function which\n* checks whether an incoming `date` is _before_ the configured date.\n*\n* **Related:** `isBefore`, `isLeapYear`, `isSameYear`, `isSameDay`\n*/\nfunction isBefore(comparator) {\n\tconst comp = asDate(comparator);\n\treturn (val) => {\n\t\tconst v = asDate(val);\n\t\treturn v.getTime() < comp.getTime();\n\t};\n}\n\n//#endregion\n//#region src/datetime/isDoubleLeap.ts\n/**\n* **isDoubleLeap**`(val)`\n*\n* Determines if the passed in date/year is a \"Double Leap\" year.\n*\n* - a double leap year is a leap year that also appears in the DOUBLE_LEAP_MODERN constant\n* - attempts to resolve this to `true`/`false` at design time when literal values are passed in\n* - for runtime values, it will check against the DOUBLE_LEAP_MODERN array\n*\n* **Related:** `IsDoubleLeap` type utility\n*/\nfunction isDoubleLeap(val) {\n\tconst year = asDate(val)?.getUTCFullYear();\n\tif (!year) throw new Error(`Invalid date passed into isDoubleLeap(${String(val)})`);\n\treturn DOUBLE_LEAP_MODERN.includes(year);\n}\n\n//#endregion\n//#region src/datetime/isLeapYear.ts\n/**\n* Determines in the passed in date/year is a _leap year_.\n*\n* - a leap year is a year divisible by 4 but not by 100\n* (unless also divisible by 400)\n*/\nfunction isLeapYear(val) {\n\tconst year = asDate(val)?.getUTCFullYear();\n\tif (!year) throw new Error(`Invalid date passed into isLeapYear(${String(val)})`);\n\treturn year % 100 === 0 ? year % 400 === 0 : year % 4 === 0;\n}\n\n//#endregion\n//#region src/datetime/isSameDay.ts\n/**\n* **isSameDay**`(comparator) -> (date) -> boolean\n*\n* Higher order utility to configure a date checking function which\n* checks whether an incoming `date` is on the same day as the _comparator_\n* date..\n*\n* **Related:** `isBefore`, , `isAfter`, `isLeapYear`, `isSameYear`\n*/\nfunction isSameDay(comparator) {\n\tconst comp = asDate(comparator);\n\treturn (val) => {\n\t\tconst v = asDate(val);\n\t\treturn v.getDate() === comp.getDate() && v.getMonth() === comp.getMonth() && v.getFullYear() === comp.getFullYear();\n\t};\n}\n\n//#endregion\n//#region src/datetime/isSameMonth.ts\n/**\n* **isSameMonth**`(comparator) -> (date) -> boolean\n*\n* Higher order utility to configure a date checking function which\n* checks whether an incoming `date` is in the same **month** _and_\n* **year** as the _comparator_ date.\n*\n* **Related:**\n* - `isBefore`, `isAfter`, `isSameDay`, `isSameMonthYear`, `isSameYear`\n* - `isLeapYear`, `isSummer`, `isWinter`, `isFall`, `isSpring`\n*/\nfunction isSameMonth(comparator) {\n\tconst comp = asDate(comparator);\n\treturn (val) => {\n\t\tconst v = asDate(val);\n\t\treturn v.getUTCFullYear() === comp.getUTCFullYear() && v.getUTCMonth() === comp.getUTCMonth();\n\t};\n}\n\n//#endregion\n//#region src/datetime/isSameMonthYear.ts\n/**\n* **isSameMonthYear**`(comparator) -> (date) -> boolean\n*\n* Higher order utility to configure a date checking function which\n* checks whether an incoming `date` is in the same **month** _and_\n* **year** as the _comparator_ date.\n*\n* **Related:** `isBefore`, , `isAfter`, `isLeapYear`, `isSameDay`\n*/\nfunction isSameMonthYear(comparator) {\n\tconst comp = asDate(comparator);\n\treturn (val) => {\n\t\tconst v = asDate(val);\n\t\treturn v.getUTCFullYear() === comp.getUTCFullYear() && v.getUTCMonth() === comp.getUTCMonth();\n\t};\n}\n\n//#endregion\n//#region src/datetime/isSameYear.ts\n/**\n* **isSameYear**`(comparator) -> (date) -> boolean\n*\n* Higher order utility to configure a date checking function which\n* checks whether an incoming `date` is in the same year as the\n* _comparator_ date.\n*\n* **Related:** `isBefore`, , `isAfter`, `isLeapYear`, `isSameDay`\n*/\nfunction isSameYear(comparator) {\n\tconst comp = asDate(comparator);\n\treturn (val) => {\n\t\tconst v = asDate(val);\n\t\treturn v.getUTCFullYear() === comp.getUTCFullYear();\n\t};\n}\n\n//#endregion\n//#region src/datetime/isThisMonth.ts\n/**\n* **isThisMonth**`(input, now?)`\n*\n* Returns `true` if the given date-like input falls within the current month, `false` otherwise.\n* - Accepts the same input types as other datetime functions.\n* - Compares both year and month for accurate results.\n* - Throws an error for invalid inputs.\n* - Optional `now` parameter for testing purposes\n*/\nfunction isThisMonth(input, now = /* @__PURE__ */ new Date()) {\n\tif (isDateLike(input)) {\n\t\tconst date = asDate(input);\n\t\tconst inputYear = date.getUTCFullYear();\n\t\tconst inputMonth = date.getUTCMonth();\n\t\tconst nowUtc = new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()));\n\t\tconst nowYear = nowUtc.getUTCFullYear();\n\t\tconst nowMonth = nowUtc.getUTCMonth();\n\t\treturn inputYear === nowYear && inputMonth === nowMonth;\n\t} else throw err(\"invalid-date\", `The isThisMonth(input) function received a value which could not be converted to a date!`, {\n\t\tinput,\n\t\tnow\n\t});\n}\n\n//#endregion\n//#region src/datetime/isThisWeek.ts\n/**\n* **isThisWeek**`(input, now?)`\n*\n* Returns `true` if the given date-like input falls within the current ISO week (Monday start), `false` otherwise.\n* - Accepts the same input types as other datetime functions.\n* - Uses ISO 8601 week definition (Monday as the first day of the week).\n* - Throws an error for invalid inputs.\n* - Optional `now` parameter for testing purposes\n*/\nfunction isThisWeek(input, now = /* @__PURE__ */ new Date()) {\n\tconst date = asDate(input);\n\tconst inputWeek = getWeekNumber(date);\n\tconst nowWeek = getWeekNumber(now);\n\tconst getIsoWeekYear = (d) => {\n\t\tconst thursday = new Date(d);\n\t\tthursday.setDate(d.getDate() + 4 - (d.getDay() || 7));\n\t\treturn thursday.getFullYear();\n\t};\n\treturn inputWeek === nowWeek && getIsoWeekYear(date) === getIsoWeekYear(now);\n}\n\n//#endregion\n//#region src/datetime/isThisYear.ts\n/**\n* A validation -- not type guard -- on whether the passed in `val` is a\n* date or date-time representation and that it's year is the same as the\n* current year.\n*\n* Types correctly handled are:\n*\n* - **JS Date** object\n* - **ISO Date** or **ISO Datetime**\n* - a number representing a **epoch** timestamp (in seconds, not milliseconds)\n* - **MomentJS** and **Luxon** datetime objects\n*\n* **Note:** an invalidate date/datetime passed in will always resolve to `false`\n*/\nfunction isThisYear(val, now = /* @__PURE__ */ new Date()) {\n\tconst currentYear = now.getFullYear();\n\ttry {\n\t\tconst d = asDate(val);\n\t\treturn d.getUTCFullYear() === currentYear;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\n//#endregion\n//#region src/datetime/isToday.ts\n/**\n* **isToday`(val)`**\n*\n* A type guard which validates whether the passed in value _represents_ today's date\n* as either a:\n*\n* - [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date string, or\n* - [Moment.js](https://momentjs.com/docs/#/displaying/) DateTime object, or\n* - [Luxon](https://moment.github.io/luxon/#/?id=luxon) DateTime object\n*/\nfunction isToday(test, now = /* @__PURE__ */ new Date()) {\n\tif (isString(test)) {\n\t\tconst justDate = stripAfter(test, \"T\");\n\t\treturn isIsoExplicitDate(justDate) && justDate === getToday(now);\n\t} else if (isMoment(test) || isDate(test)) return stripAfter(test.toISOString(), \"T\") === getToday(now);\n\telse if (isLuxonDate(test)) return stripAfter(test.toISO(), \"T\") === getToday(now);\n\treturn false;\n}\n\n//#endregion\n//#region src/datetime/isTomorrow.ts\n/**\n* **isTomorrow**`(input, now?)`\n*\n* Returns `true` if the given date-like input represents tomorrow's\n* date, `false` otherwise.\n* - Accepts the same input types as other datetime functions.\n* - Compares only the date part, ignoring time.\n* - Throws an error for invalid inputs.\n* - Optional `now` parameter for testing purposes\n*/\nfunction isTomorrow(input, now = /* @__PURE__ */ new Date()) {\n\tconst date = asDate(input);\n\tconst tomorrowDate = getTomorrow(now);\n\tconst inputDateStr = date.toISOString().split(\"T\")[0];\n\treturn inputDateStr === tomorrowDate;\n}\n\n//#endregion\n//#region src/datetime/isYesterday.ts\n/**\n* **isYesterday**`(input, now?)`\n*\n* Returns `true` if the given date-like input represents yesterday's date, `false` otherwise.\n* - Accepts the same input types as other datetime functions.\n* - Compares only the date part, ignoring time.\n* - Throws an error for invalid inputs.\n* - Optional `now` parameter for testing purposes\n*/\nfunction isYesterday(input, now = /* @__PURE__ */ new Date()) {\n\tconst date = asDate(input);\n\tconst yesterdayDate = getYesterday(now);\n\tconst inputDateStr = date.toISOString().split(\"T\")[0];\n\treturn inputDateStr === yesterdayDate;\n}\n\n//#endregion\n//#region src/datetime/parseDate.ts\nfunction parseDate(d) {\n\tlet iso;\n\tif (isString(d)) return parseIsoDate(d);\n\telse {\n\t\ttry {\n\t\t\tiso = asDateTime(d).toISOString();\n\t\t} catch (error) {\n\t\t\treturn error instanceof Error ? error : err(`parse/invalid`, `Unable to parse date-like value`);\n\t\t}\n\t\treturn parseIsoDate(iso);\n\t}\n}\n\n//#endregion\n//#region src/datetime/parseDateObject.ts\n/**\n* Parses an object-based Date container into a `ParsedDate` tuple.\n* Always uses the original ISO string (with offset/timezone) if available.\n*/\nfunction parseDateObject(d) {\n\tconst date = d instanceof Date ? d : asDateTime(d);\n\tif (isError(date)) return date;\n\tconst utcIso = date.toISOString();\n\tconst utcParsed = parseIsoDate(utcIso);\n\tif (isError(utcParsed)) return utcParsed;\n\tconst datePlus = date;\n\tconst sourceIso = datePlus.sourceIso;\n\tif (sourceIso) {\n\t\tconst sourceParsed = parseIsoDate(sourceIso);\n\t\tif (isDateMeta(sourceParsed) && sourceParsed.timezone) {\n\t\t\tconst timezone = sourceParsed.timezone === \"+00:00\" ? \"Z\" : sourceParsed.timezone;\n\t\t\treturn {\n\t\t\t\t...utcParsed,\n\t\t\t\ttimezone\n\t\t\t};\n\t\t}\n\t}\n\tif (datePlus.offset === null && datePlus.source) return {\n\t\t...utcParsed,\n\t\ttimezone: null\n\t};\n\treturn utcParsed;\n}\n\n//#endregion\n//#region src/datetime/parseIsoDate.ts\n/**\n* Parses an ISO date or datetime string into its components.\n*\n* Returns an object: { year, month, date, time }\n* - year, month, date: numbers or null\n* - time: { hour, minute, second, ms, offset } or null\n* Throws if the string is not a valid ISO date/datetime.\n*/\nfunction parseIsoDate(input) {\n\tif (!isString(input)) return err(\"parse-date/wrong-type\", `The type passed into parseIsoDate() was a '${typeof input}' but must be a string!`);\n\tconst isoDateTime = /^(-?\\d{4})-?(\\d{2})-?(\\d{2})T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{3}))?)?(Z|[+-]\\d{2}:?\\d{2})?$/;\n\tconst isoDate = /^(-?\\d{4})-?(\\d{2})-?(\\d{2})$/;\n\tconst isoYear = /^(-?\\d{4})$/;\n\tconst isoYearMonth = /^-?(\\d{4})-?(\\d{2})$/;\n\tconst isoMonthDay = /^--(\\d{2})-?(\\d{2})$/;\n\tif (isoDateTime.test(input)) {\n\t\tconst match = input.match(isoDateTime);\n\t\tif (match) {\n\t\t\tconst [_, yyyy, mm, dd, hh, min, sec, milli, tz] = match;\n\t\t\tconst year = isFourDigitYear(yyyy) ? yyyy : isEmpty(yyyy) ? null : err(\"year\");\n\t\t\tconst month = isTwoDigitMonth(mm) ? mm : isEmpty(mm) ? null : err(\"month\");\n\t\t\tconst date = isTwoDigitDate(dd) ? dd : isEmpty(dd) ? null : err(\"date\");\n\t\t\tconst hour = isTwoDigitHour(hh) ? hh : isEmpty(hh) ? null : err(\"hour\");\n\t\t\tconst minute = isTwoDigitMinute(min) ? min : isEmpty(min) ? null : err(\"minute\");\n\t\t\tconst second = isTwoDigitSecond(sec) ? sec : isEmpty(sec) ? null : err(\"second\");\n\t\t\tconst ms = isThreeDigitMillisecond(milli) ? milli : isEmpty(milli) ? null : err(\"milli\");\n\t\t\tconst timezone = isTimezoneOffset(tz) ? tz : isEmpty(tz) ? null : err(\"timezone\");\n\t\t\tconst errors = [\n\t\t\t\tyear,\n\t\t\t\tmonth,\n\t\t\t\tdate,\n\t\t\t\thour,\n\t\t\t\tminute,\n\t\t\t\tsecond,\n\t\t\t\tms,\n\t\t\t\ttimezone\n\t\t\t].filter((i) => isTypedError(\"\")(i)).map((i) => i.type);\n\t\t\tif (errors.length > 0) return err(\"parse-date\", `The string passed in resembled a ISO DateTime but the following components failed: ${errors}`);\n\t\t\tconst val = {\n\t\t\t\tdateType: \"datetime\",\n\t\t\t\thasTime: !(isTimezoneOffset(timezone) && timezone === \"Z\" && hour === twoDigitHour(\"00\") && minute === twoDigitMinute(\"00\") && (second === twoDigitSecond(\"00\") || second === null) && (ms === threeDigitMillisecond(\"000\") || ms === null)),\n\t\t\t\tyear,\n\t\t\t\tmonth,\n\t\t\t\tdate,\n\t\t\t\thour,\n\t\t\t\tminute,\n\t\t\t\tsecond,\n\t\t\t\tms,\n\t\t\t\ttimezone\n\t\t\t};\n\t\t\treturn { ...val };\n\t\t}\n\t} else if (isoYear.test(input)) {\n\t\tconst match = input.match(isoYear);\n\t\tif (match) {\n\t\t\tconst [_, year] = match;\n\t\t\tif (isFourDigitYear(year)) {\n\t\t\t\tconst val = {\n\t\t\t\t\tdateType: \"year\",\n\t\t\t\t\thasTime: false,\n\t\t\t\t\tyear,\n\t\t\t\t\tmonth: null,\n\t\t\t\t\tdate: null,\n\t\t\t\t\thour: null,\n\t\t\t\t\tminute: null,\n\t\t\t\t\tsecond: null,\n\t\t\t\t\tms: null,\n\t\t\t\t\ttimezone: null\n\t\t\t\t};\n\t\t\t\treturn { ...val };\n\t\t\t} else return err(`parse/iso-date`, `A string which matched the regex for IsoYear was invalid upon inspection`);\n\t\t} else return err(`parse/iso-date`, `A string which matched the regex for IsoYear was invalid upon inspection`);\n\t} else if (isoYearMonth.test(input)) {\n\t\tconst match = input.match(isoYearMonth);\n\t\tif (match) {\n\t\t\tconst [_, year, month] = match;\n\t\t\tif (isFourDigitYear(year) && isTwoDigitMonth(month)) {\n\t\t\t\tconst val = {\n\t\t\t\t\tdateType: \"year-month\",\n\t\t\t\t\thasTime: false,\n\t\t\t\t\tyear,\n\t\t\t\t\tmonth,\n\t\t\t\t\tdate: null,\n\t\t\t\t\thour: null,\n\t\t\t\t\tminute: null,\n\t\t\t\t\tsecond: null,\n\t\t\t\t\tms: null,\n\t\t\t\t\ttimezone: null\n\t\t\t\t};\n\t\t\t\treturn { ...val };\n\t\t\t} else return err(`parse/iso-date`, `A string which matched the regex for IsoYearMonth was invalid upon inspection`);\n\t\t} else return err(`parse/iso-date`, `A string which matched the regex for IsoYearMonth was invalid upon inspection`);\n\t} else if (isoMonthDay.test(input)) {\n\t\tconst match = input.match(isoMonthDay);\n\t\tif (match) {\n\t\t\tconst [_, month, date] = match;\n\t\t\tif (isTwoDigitMonth(month) && isTwoDigitDate(date)) {\n\t\t\t\tconst val = {\n\t\t\t\t\tdateType: \"year-independent\",\n\t\t\t\t\thasTime: false,\n\t\t\t\t\tyear: null,\n\t\t\t\t\tmonth,\n\t\t\t\t\tdate,\n\t\t\t\t\thour: null,\n\t\t\t\t\tminute: null,\n\t\t\t\t\tsecond: null,\n\t\t\t\t\tms: null,\n\t\t\t\t\ttimezone: null\n\t\t\t\t};\n\t\t\t\treturn { ...val };\n\t\t\t} else return err(`parse/iso-date`, `A string which matched the regex for IsoMonthDay (aka, year-independent) was invalid upon inspection`);\n\t\t}\n\t\treturn err(`parse/iso-date`, `A string which matched the regex for IsoMonthDay (aka, year-independent) was invalid upon inspection`);\n\t} else if (isoDate.test(input)) {\n\t\tconst match = input.match(isoDate);\n\t\tif (match) {\n\t\t\tconst [_, year, month, date] = match;\n\t\t\tif (isFourDigitYear(year) && isTwoDigitMonth(month) && isTwoDigitDate(date)) {\n\t\t\t\tconst val = {\n\t\t\t\t\tdateType: \"year-independent\",\n\t\t\t\t\thasTime: false,\n\t\t\t\t\tyear,\n\t\t\t\t\tmonth,\n\t\t\t\t\tdate,\n\t\t\t\t\thour: null,\n\t\t\t\t\tminute: null,\n\t\t\t\t\tsecond: null,\n\t\t\t\t\tms: null,\n\t\t\t\t\ttimezone: null\n\t\t\t\t};\n\t\t\t\treturn { ...val };\n\t\t\t}\n\t\t\treturn err(`parse/iso-date`, `A string which matched the regex for ISO Date was invalid upon inspection.`);\n\t\t}\n\t\treturn err(`parse/iso-date`, `A string which matched the regex for ISO Date was unable to then pull the expected match groups. This should not happen.`);\n\t}\n\treturn err(\"parse/iso-date\", \"The string passed to parseIsoDate() was invalid!\");\n}\n\n//#endregion\n//#region src/datetime/parseNumericDate.ts\n/**\n* Parses a number as a `epoch` timestamp (detects whether in\n* seconds or milliseconds) into a `IsoMeta` tuple.\n*/\nfunction parseNumericDate(d) {\n\ttry {\n\t\tconst date = isEpochInSeconds(d) ? new Date(d * 1e3) : new Date(d);\n\t\treturn parseIsoDate(date.toISOString());\n\t} catch {\n\t\treturn err(`parse-date/numeric`, `The numeric value trying to be parsed as a epoch timestamp -- ${d} -- is invalid!`);\n\t}\n}\n\n//#endregion\n//#region src/datetime/toIsoDateString.ts\n/**\n* **toIsoDateString**`(meta) -> IsoDate | IsoDateTime`\n*\n* Converts a parsed date into an ISO Date or DateTime string.\n*/\nfunction toIsoDateString(parsed) {\n\tlet resolved;\n\tif (parsed.hasTime === false) {\n\t\tswitch (parsed.dateType) {\n\t\t\tcase \"date\":\n\t\t\tcase \"datetime\":\n\t\t\t\tresolved = `${parsed.year}-${parsed.month}-${parsed.date}`;\n\t\t\t\tbreak;\n\t\t\tcase \"year\":\n\t\t\t\tresolved = parsed.year;\n\t\t\t\tbreak;\n\t\t\tcase \"year-independent\":\n\t\t\t\tresolved = `--${parsed.month}-${parsed.date}`;\n\t\t\t\tbreak;\n\t\t\tcase \"year-month\": resolved = `-${parsed.year}-${parsed.month}`;\n\t\t}\n\t\tif (isIsoDate(resolved)) return resolved;\n\t\telse err(`parse/runtime`);\n\t}\n\tswitch (parsed.dateType) {\n\t\tcase \"date\": return err(\"invalid-date\", `The parsed 'type' of the date was 'date' but the 'hasTime' variable was set to true! This should not happen.`);\n\t\tcase \"datetime\": return `${parsed.year}-${parsed.month}-${parsed.date}T${parsed.hour}:${parsed.minute}${parsed.second ? `:${parsed.second}${parsed.ms ? `.${parsed.ms}` : \"\"}` : \"\"}`;\n\t}\n\treturn err(\"invalid-date\", `the parsed 'dateType' was '${parsed.dateType}' but the 'hasTime' property was set to 'false'!`);\n}\n\n//#endregion\n//#region src/dictionary/defineObject.ts\n/**\n* **defineObject**`(defn, ...[optional]) -> (object type)`\n*\n* Defines an object **type** while preserving a runtime-token\n* which _identifies_ the type.\n*\n* ### Example\n*\n* ```ts\n* const person = defineObject(\n* {\n* firstName: \"string\",\n* lastName: \"string\",\n* address: \"string | object\"\n* },\n* \"lastName\", \"address\"\n* )\n* ```\n*\n* - the _type_ of `person` will be:\n*\n* ```ts\n* type person = {\n* firstName: string,\n* lastName?: string,\n* address?: object | string\n* }\n* ```\n*\n* - but the runtime value will be a string literal token _representing_\n* that type.\n*/\nfunction defineObject(defn, ..._optProps) {\n\tconst errProps = Object.keys(defn).reduce((acc, i) => isError(defn[i]) ? {\n\t\t...acc,\n\t\t[i]: defn[i]\n\t} : acc, {});\n\treturn keysOf(errProps).length > 0 ? err(`invalid-token/object`, `At least one key in the defined object have errors!`, {\n\t\tkeys: errProps,\n\t\tobj: defn\n\t}) : fromDefineObject(defn);\n}\n\n//#endregion\n//#region src/dictionary/entries.ts\n/**\n* **entries**\n*\n* Provides an _iterable_ over the passed in dictionary object where each iteration\n* provides a tuple of `[ key, value ]` which preserve type literals.\n*\n* For example:\n* ```ts\n* const obj = { foo: 1, bar: \"hi\" };\n* // k type is \"foo\" then \"bar\"; v type is 1 then \"hi\"\n* for (const [k, v] of entries(obj)) { ... }\n* ```\n*/\nfunction entries(obj) {\n\tconst iterable = { *[Symbol.iterator]() {\n\t\tfor (const k of keysOf(obj)) yield {\n\t\t\tkey: k,\n\t\t\tvalue: obj[k]\n\t\t};\n\t} };\n\treturn iterable;\n}\n\n//#endregion\n//#region src/dictionary/get.ts\n/** updates based on whether segment is a Ref or not */\nfunction updatedDotPath(value, dotpath, segment) {\n\treturn isRef(value) ? dotpath.replace(segment, `Ref(${segment})`) : dotpath;\n}\n/**\n* **getValue**(value, dotpath, defaultValue, handler, fullDotPath)\n*/\nfunction getValue(value, dotPath, defaultValue, handleInvalid, fullDotPath) {\n\t/** the remaining segments that need processing */\n\tconst pathSegments = isTruthy(dotPath) ? dotPath.split(\".\") : [];\n\t/** current index property */\n\tconst idx = pathSegments[0];\n\t/**\n\t* dotpath _will_ need to recurse further to\n\t* reach destination\n\t*/\n\tconst hasMoreSegments = pathSegments.length > 1;\n\t/** whether or not the value is indexable or not */\n\tconst valueIsIndexable = isContainer(value) && hasIndexOf(value, idx);\n\t/** has handler for invalid dotpath */\n\tconst hasHandler = !isSpecificConstant(\"not-defined\")(handleInvalid);\n\tconst invalidDotPath = err(\"invalid-dot-path\", `The segment \"${idx}\" in the dotpath \"${fullDotPath}\" was not indexable and no default value existed on: ${JSON.stringify(value)}`);\n\tconst current = hasMoreSegments ? isContainer(value) && idx in value ? getValue(indexOf(value, idx), pathSegments.join(\".\").replace(`${idx}.`, \"\"), defaultValue, handleInvalid, updatedDotPath(value, fullDotPath, idx)) : hasHandler ? handleInvalid : invalidDotPath : valueIsIndexable ? hasDefaultValue(hasDefaultValue) ? indexOf(value, idx) || defaultValue : indexOf(value, idx) : hasHandler ? handleInvalid : invalidDotPath;\n\treturn current;\n}\n/**\n* **get**(obj, dotPath, [defVal])\n*\n* Gets a value in a deeply nested object while attempting to preserve type information\n* (a default value is allowed as optional param).\n*\n* - if the dot-path is invalid then an `ErrorCondition` will be returned, unless\n* a defaultValue is provided in which case this will be returned instead\n* - this function is also VueJS _aware_ in the sense that it can also traverse\n* VueJS `ref` properties when encountered\n*\n* ```ts\n* const prop = get(obj, \"foo.bar.baz\", \"nothing there chief!\");\n* ```\n*/\nfunction get(value, dotPath, options = {\n\tdefaultValue: NO_DEFAULT_VALUE,\n\thandleInvalidDotpath: NOT_DEFINED\n}) {\n\tconst outcome = dotPath === null || dotPath === \"\" ? value : getValue(value, dotPath, options?.defaultValue || NO_DEFAULT_VALUE, options?.handleInvalidDotpath || NOT_DEFINED, String(dotPath));\n\treturn outcome;\n}\n\n//#endregion\n//#region src/dictionary/keysOf.ts\n/**\n* **keysOf**(container)\n*\n* Provides a read-only array of the _keys_ that a Dictionary contains.\n*\n* **Note:** this function is aware of Ref<T> types from VueJS and will return\n* `readonly [\"value\"]` as the keys array when detected rather than reporting\n* on props like `__v_isRef`, etc.\n*/\nfunction keysOf(container) {\n\tconst keys = isArray(container) ? Object.keys(container).map((i) => Number(i)) : Object.keys(container);\n\treturn keys;\n}\n\n//#endregion\n//#region src/dictionary/objectValues.ts\n/**\n* **objectValues**`(obj) -> [val, val, val]`\n*\n* Converts an object into a strongly typed tuple of the _values_ of\n*/\nfunction objectValues(obj) {\n\tconst tuple$1 = Object.keys(obj).reduce((acc, key) => [...acc, obj[key]], []);\n\treturn tuple$1;\n}\n\n//#endregion\n//#region src/dictionary/omitKeys.ts\n/**\n* **omitKeys**(obj, excluding)\n*\n* Runtime utility which _excludes_ certain **keys** from an object.\n*\n* - this utility is meant to mimic the type utility `Omit<T,U>` provided\n* by Typescript in runtime\n* - attempts will be made to extract the narrowest possible type from\n* the passed in object.\n*\n* ```ts\n* // { baz: 3 }\n* const obj = omit({ foo: 1, bar: 2: baz: 3 }, \"foo\", \"bar\");\n* ```\n*\n* **Related:** `createOmission`, `withoutKeys`, `retainKeys`\n*/\nfunction omitKeys(obj, ...removeKeys) {\n\tconst keys = Object.keys(obj);\n\treturn keys.reduce((acc, key) => removeKeys.includes(key) ? acc : {\n\t\t...acc,\n\t\t[key]: obj[key]\n\t}, {});\n}\n\n//#endregion\n//#region src/dictionary/retainKeys.ts\n/**\n* **retainKeys**(obj,...keys)\n*\n* Reduces the key/value pairs in an object to those keys\n* explicitly stated.\n*\n* **Related:** `createRetainer`, `omitKeys`\n*/\nfunction retainKeys(dict, ...keys) {\n\tlet output = {};\n\tfor (const k of keys) output = {\n\t\t...output,\n\t\t[k]: dict[k]\n\t};\n\treturn output;\n}\n\n//#endregion\n//#region src/dictionary/reverseLookup.ts\n/**\n* **reverseLookup**`(lookup)`\n*\n* Takes a lookup table as an input and reverses it while maintaining narrow\n* types.\n*/\nfunction reverseLookup(lookup$2) {\n\tconst result$1 = {};\n\tfor (const key of Object.keys(lookup$2).reverse()) result$1[lookup$2[key]] = key;\n\treturn result$1;\n}\n\n//#endregion\n//#region src/dictionary/sharedKeys.ts\n/**\n* **sharedKeys**\n*\n* Runtime utility which provides the _shared_ keys between two objects.\n*/\nfunction sharedKeys(a, b) {\n\tconst ka = Object.keys(a);\n\tconst kb = Object.keys(b);\n\treturn ka.filter((k) => kb.includes(k));\n}\n\n//#endregion\n//#region src/dictionary/usingLookup.ts\nfunction usingLookup(lookup$2, missing = unset) {\n\treturn (key) => {\n\t\treturn key in lookup$2 ? lookup$2[key] : missing;\n\t};\n}\n\n//#endregion\n//#region src/dictionary/valuesOf.ts\n/**\n* **valuesOf**(container) -> values[]\n*\n* Runtime utility to convert an object or an array into a tuple of\n* values while preserving as much type information as\n* possible.\n*\n* **Note:** an _array_ is simply proxied through \"as is\"\n*/\nfunction valuesOf(val) {\n\tlet values = [];\n\tif (isArray(val)) values = val;\n\telse if (isDictionary(val)) for (const k of Object.keys(val)) values.push(val[k]);\n\treturn values;\n}\n\n//#endregion\n//#region src/dictionary/withDefaults.ts\n/**\n* **withDefaults**(defaults) → (obj) → _merged_\n*\n* Merges in default values to an existing object and maintains\n* narrow typing.\n*/\nfunction withDefaults(with_defaults) {\n\treturn (obj) => {\n\t\tconst merged = {\n\t\t\t...with_defaults,\n\t\t\t...obj\n\t\t};\n\t\treturn merged;\n\t};\n}\n\n//#endregion\n//#region src/dictionary/withKeys.ts\n/**\n* **withKeys**(obj,keys)\n*\n* Reduces the key/value pairs in an object to those keys\n* explicitly stated.\n*\n* - note: this function is an alias for `retain()`\n*/\nfunction withKeys(dict, ...keys) {\n\treturn retainKeys(dict, ...keys);\n}\n\n//#endregion\n//#region src/dictionary/withoutKeys.ts\n/**\n* **withoutKeys**(obj,...keys)\n*\n* Reduces the key/value pairs in an object with the expressed\n* keys excluded.\n*\n* - this is an alias to the `omit()` utility\n*\n* **Related**: `omit`, `createOmission`\n*/\nfunction withoutKeys(dict, ...exclude) {\n\tconst obj = {};\n\tfor (const [_, key] of Object.keys(dict).entries()) if (!exclude.includes(key)) obj[key] = dict[key];\n\treturn obj;\n}\n\n//#endregion\n//#region src/dictionary/withoutValue.ts\nconst lookup$1 = {\n\tstring: \"string\",\n\t\"string|undefined\": \"string|undefined\",\n\tnumber: \"number\",\n\t\"number|undefined\": \"number|undefined\",\n\t\"string|number\": \"string|number\",\n\tboolean: \"boolean\",\n\ttrue: \"true\",\n\tfalse: \"false\",\n\tobject: \"object\",\n\tObject: \"object\",\n\t\"Record<ObjectKey,unknown>\": \"Record<ObjectKey,unknown>\",\n\t\"Record<ObjectKey,string>\": \"Record<ObjectKey,string>\",\n\t\"Record<ObjectKey,string|number>\": \"Record<ObjectKey,string|number>\",\n\t\"string[]\": \"string[]\",\n\t\"number[]\": \"number[]\",\n\t\"boolean[]\": \"boolean[]\"\n};\n/**\n* validates whether the value _extends_ the baseType\n*/\nfunction testExtends$1(value, baseType) {\n\tif (isString(baseType) && keysOf(lookup$1).includes(baseType)) switch (baseType) {\n\t\tcase \"string\": return !isString(value);\n\t\tcase \"string|undefined\": return !isString(value) && !isUndefined(value);\n\t\tcase \"number\": return !isNumber(value);\n\t\tcase \"number|undefined\": return !isNumber(value) && !isUndefined(value);\n\t\tcase \"string|number\": return !isNumber(value) && !isString(value);\n\t\tcase \"boolean\": return !isBoolean(value);\n\t\tcase \"true\": return !isTrue(value);\n\t\tcase \"false\": return !isFalse(value);\n\t\tcase \"object\":\n\t\tcase \"Object\": return !isObject(value);\n\t\tcase \"Record<ObjectKey,unknown>\": return !isDictionary(value);\n\t\tcase \"Record<ObjectKey,string>\": return !isDictionary(value) || !Object.values(value).every((i) => isString(i));\n\t\tcase \"Record<ObjectKey,string|number>\": return !isDictionary(value) || !Object.values(value).every((i) => isString(i) || isNumber(i));\n\t\tcase \"string[]\": return !isArray(value) || isArray(value) && !value.every((i) => isString(i));\n\t\tcase \"number[]\": return !isArray(value) || isArray(value) && !value.every((i) => isNumber(i));\n\t\tcase \"boolean[]\": return !isArray(value) || isArray(value) && !value.every((i) => isBoolean(i));\n\t}\n\tif (isArray(baseType)) {\n\t\tif (!isNarrowableArray(value)) return true;\n\t\treturn !value.every((_, i) => testExtends$1(value[i], baseType[i]));\n\t}\n\tif (isDictionary(baseType)) {\n\t\tif (!isDictionary(value)) return false;\n\t\tconst baseKeys = Object.keys(baseType);\n\t\tconst valueKeys = Object.keys(value);\n\t\tfor (const key of baseKeys) {\n\t\t\tif (!isUndefined(baseType[key]) && !hasIndexOf(valueKeys, key)) return false;\n\t\t\tif (!testExtends$1(value[key], baseType[key])) return false;\n\t\t}\n\t\treturn true;\n\t}\n\tif (isScalar(baseType) && isScalar(value)) return value !== baseType;\n\treturn false;\n}\n/**\n* **withoutValue**\n*\n* A _higher-order_ runtime utility which allow you to first specify a **type**\n* which you will want to look for in future objects/dictionaries.\n*\n* ### Example\n*\n* ```ts\n* const withoutStrings = withoutValue(\"string\");\n* const withoutFooBar = withoutValue(\"string(foo,bar)\");\n* ```\n*\n* The returned utility will now receive dictionary objects and -- in a type strong\n* manner -- removed the key/values where the value extends `string` or `\"foo\" | \"bar\"`\n* respectively.\n*/\nfunction withoutValue(withValue$1) {\n\treturn (obj) => {\n\t\tconst result$1 = {};\n\t\tfor (const key of Object.keys(obj)) if (testExtends$1(obj[key], withValue$1)) result$1[key] = obj[key];\n\t\treturn result$1;\n\t};\n}\n\n//#endregion\n//#region src/dictionary/withValue.ts\nconst lookup = {\n\tstring: \"string\",\n\t\"string|undefined\": \"string|undefined\",\n\tnumber: \"number\",\n\t\"number|undefined\": \"number|undefined\",\n\t\"string|number\": \"string|number\",\n\tboolean: \"boolean\",\n\ttrue: \"true\",\n\tfalse: \"false\",\n\tobject: \"object\",\n\tObject: \"object\",\n\t\"Record<ObjectKey,unknown>\": \"Record<ObjectKey,unknown>\",\n\t\"Record<ObjectKey,string>\": \"Record<ObjectKey,string>\",\n\t\"Record<ObjectKey,string|number>\": \"Record<ObjectKey,string|number>\",\n\t\"string[]\": \"string[]\",\n\t\"number[]\": \"number[]\",\n\t\"boolean[]\": \"boolean[]\"\n};\n/**\n* validates whether the value _extends_ the baseType\n*/\nfunction testExtends(value, baseType) {\n\tif (isString(baseType) && keysOf(lookup).includes(baseType)) switch (baseType) {\n\t\tcase \"string\": return isString(value);\n\t\tcase \"string|undefined\": return isString(value) || isUndefined(value);\n\t\tcase \"number\": return isNumber(value);\n\t\tcase \"number|undefined\": return isNumber(value) || isUndefined(value);\n\t\tcase \"string|number\": return isNumber(value) || isString(value);\n\t\tcase \"boolean\": return isBoolean(value);\n\t\tcase \"true\": return isTrue(value);\n\t\tcase \"false\": return isFalse(value);\n\t\tcase \"object\":\n\t\tcase \"Object\": return isObject(value);\n\t\tcase \"Record<ObjectKey,unknown>\": return isDictionary(value);\n\t\tcase \"Record<ObjectKey,string>\": return isDictionary(value) && Object.values(value).every((i) => isString(i));\n\t\tcase \"Record<ObjectKey,string|number>\": return isDictionary(value) && Object.values(value).every((i) => isString(i) || isNumber(i));\n\t\tcase \"string[]\": return isArray(value) && value.every((i) => isString(i));\n\t\tcase \"number[]\": return isArray(value) && value.every((i) => isNumber(i));\n\t\tcase \"boolean[]\": return isArray(value) && value.every((i) => isBoolean(i));\n\t}\n\tif (isArray(baseType) && isNarrowableArray(baseType)) {\n\t\tif (!isNarrowableArray(value)) return false;\n\t\tif (baseType.length !== value.length) return false;\n\t\treturn value.every((_, i) => testExtends(value[i], baseType[i]));\n\t}\n\tif (isDictionary(baseType)) {\n\t\tif (!isDictionary(value)) return false;\n\t\tconst baseKeys = Object.keys(baseType);\n\t\tconst valueKeys = Object.keys(value);\n\t\tfor (const key of baseKeys) {\n\t\t\tif (!isUndefined(baseType[key]) && !hasIndexOf(valueKeys, key)) return false;\n\t\t\tif (!testExtends(value[key], baseType[key])) return false;\n\t\t}\n\t\treturn true;\n\t}\n\tif (isScalar(baseType) && isScalar(value)) return value === baseType;\n\treturn false;\n}\n/**\n* **withValue**`(withValue) -> (obj) -> (filtered obj)\n*\n* A _higher-order_ runtime utility which allow you to:\n*\n* - the first call specifies a **type** which you will use for filtering\n* - the second call receives an object and those key/values whose values\n* _extend_ the type defined are kept, the rest are removed.\n*\n* **Note:** for now you can only specify simple types. Soon a full parser will be made available.\n*\n* ```ts\n* // { bar: \"hi\" }\n* const obj = withValue(\"string\")({ foo: 1, bar: \"hi\", baz: 2 });\n* ```\n*/\nfunction withValue(withValue$1) {\n\treturn (obj) => {\n\t\tconst result$1 = {};\n\t\tfor (const key of Object.keys(obj)) if (testExtends(obj[key], withValue$1)) result$1[key] = obj[key];\n\t\treturn result$1;\n\t};\n}\n\n//#endregion\n//#region src/domain/nesting/createNestingConfig.ts\nfunction createNestingConfig(config) {\n\tif (isString(config)) if (config === \"default\" || config === \"brackets\") return {\n\t\t\"{\": \"}\",\n\t\t\"[\": \"]\",\n\t\t\"<\": \">\",\n\t\t\"(\": \")\"\n\t};\n\telse if (config === \"quotes\") return {\n\t\t\"\\\"\": \"\\\"\",\n\t\t\"'\": \"'\",\n\t\t\"`\": \"`\"\n\t};\n\telse throw err(\"invalid/named-nesting\", `An unknown named nesting type of \"${config}\" was passed into createNestingConfig()!`);\n\telse return config;\n}\n\n//#endregion\n//#region src/domain/nesting/isNestingEnd.ts\nfunction isNestingEnd(char, nesting$1) {\n\tif (isNestingTuple(nesting$1)) {\n\t\tconst [start$1, end] = nesting$1;\n\t\tif (end) return end.includes(char);\n\t\telse return !start$1.includes(char);\n\t} else if (isNestingKeyValue(nesting$1)) return Object.values(nesting$1).includes(char);\n\telse return err(`invalid-type/nesting`, `The isNestingStart('${char}', nesting) function received an invalid nesting type. Remember that start and end characters MUST be single length characters`, {\n\t\tnesting: nesting$1,\n\t\tchar\n\t});\n}\n\n//#endregion\n//#region src/domain/nesting/isNestingEndMatch.ts\nfunction isNestingEndMatch(char, stack, nesting$1) {\n\tif (isNestingEnd(char, nesting$1) !== true) return false;\n\telse if (isNestingKeyValue(nesting$1)) {\n\t\tconst lookup$2 = reverseLookup(nesting$1);\n\t\tif (last(stack) === lookup$2[char]) return true;\n\t\telse return false;\n\t} else if (isNestingTuple(nesting$1)) {\n\t\tconst [start$1, end] = nesting$1;\n\t\tif (isUndefined(end)) return !start$1.includes(char);\n\t\telse return !!end.includes(char);\n\t}\n}\n\n//#endregion\n//#region src/domain/nesting/isNestingKeyValue.ts\n/**\n* type-guard which validates that `val` is a `NestingKeyValue`\n*/\nfunction isNestingKeyValue(val) {\n\treturn isDictionary(val) && hasOnlyStringKeys(val) && hasOnlyStringValues(val) && Object.keys(val).every((i) => isString(i) && i.length === 1);\n}\n\n//#endregion\n//#region src/domain/nesting/isNestingStart.ts\nfunction isNestingStart(char, nesting$1) {\n\tif (isNestingTuple(nesting$1)) {\n\t\tconst [start$1, _] = nesting$1;\n\t\treturn start$1.includes(char);\n\t} else if (isNestingKeyValue(nesting$1)) return Object.keys(nesting$1).includes(char);\n\telse return err(`invalid-type/nesting`, `The isNestingStart('${char}', nesting) function received an invalid nesting type. Remember that start and end characters MUST be single length characters`, {\n\t\tnesting: nesting$1,\n\t\tchar\n\t});\n}\n\n//#endregion\n//#region src/domain/nesting/isNestingTuple.ts\n/**\n* type-guard which validates that `val` is a `NestingTuple`\n*\n* **Related:** `IsNestingTuple<T>`\n*/\nfunction isNestingTuple(val) {\n\treturn isArray(val) && val.length === 2 && isArray(val[0]) && val[0].every(isString) && (isArray(val[1]) && val[1].every(isString) || isUndefined(val[1]));\n}\n\n//#endregion\n//#region src/domain/nesting/nesting.ts\nfunction apiSurface(nesting$1) {\n\treturn {\n\t\tretainUntil(str, find$1, incl = true) {\n\t\t\treturn retainUntil__Nested(str, find$1, incl, nesting$1);\n\t\t},\n\t\tsplit(content, split$1, policy = \"omit\") {\n\t\t\treturn nestedSplit(content, split$1, nesting$1, policy);\n\t\t}\n\t};\n}\nfunction nesting(config) {\n\tlet nesting$1;\n\tif (isString(config)) if (config === \"default\" || config === \"brackets\") nesting$1 = {\n\t\t\"{\": \"}\",\n\t\t\"[\": \"]\",\n\t\t\"<\": \">\",\n\t\t\"(\": \")\"\n\t};\n\telse if (config === \"quotes\") nesting$1 = {\n\t\t\"\\\"\": \"\\\"\",\n\t\t\"'\": \"'\",\n\t\t\"`\": \"`\"\n\t};\n\telse throw err(\"invalid/named-nesting\", `An unknown named nesting type of \"${config}\" was passed into createNestingConfig()!`);\n\telse if (isNestingTuple(config) || isNestingKeyValue(config)) nesting$1 = config;\n\telse if (isError(config)) return config;\n\telse return err(\"invalid-nesting\", `The configuration provided to the 'nesting()' function was not a valid nesting configuration`);\n\treturn apiSurface(nesting$1);\n}\n\n//#endregion\n//#region src/functional/result.ts\nconst result = \"NOT READY\";\n\n//#endregion\n//#region src/interpolation/isTemplateLiteral.ts\n/**\n* **isStaticTemplate(val)** -> boolean\n*\n* Tests whether the passed in `val` has static template tags (e.g., `{{string}}`,\n* `{{number}}`, etc.). If the string passed in is a literal string the resolution\n* to a discrete `true`/`false` value should be able to be done at design time.\n*/\nfunction isStaticTemplate(val) {\n\treturn isString(val) ? val.includes(\"{{string}}\") || val.includes(\"{{number}}\") || val.includes(\"{{boolean}}\") ? true : \"maybe\" : false;\n}\n\n//#endregion\n//#region src/meta/urlMeta.ts\nconst PROTOCOLS = Object.values(NETWORK_PROTOCOL_LOOKUP).flat().filter((i) => i !== \"\");\nfunction getUrlProtocol(url) {\n\tconst proto = PROTOCOLS.find((p) => url.startsWith(`${p}://`));\n\treturn proto;\n}\nfunction removeUrlProtocol(url) {\n\treturn stripBefore(url, \"://\");\n}\nfunction ensurePath(val) {\n\tconst val2 = ensureLeading(val, \"/\");\n\treturn val === \"\" ? \"\" : stripTrailing(val2, \"/\");\n}\nfunction getUrlPath(url) {\n\treturn isUrl(url) ? ensurePath(stripAfter(stripBefore(removeUrlProtocol(url), \"/\"), \"?\")) : Never;\n}\n/**\n* **getUrlQueryParams**`(url, [specific])`\n*\n* Get's the query parameter's part of a URL and optionally allows\n* you to focus in on a specific key in the query parameters.\n*\n* If you do specify a particular query parameter it will decode\n* the value with URIDecode.\n*/\nfunction getUrlQueryParams(url, specific = void 0) {\n\tconst qp = stripBefore(url, \"?\");\n\tif (specific) return qp.includes(`${specific}=`) ? decodeURIComponent(stripAfter(stripBefore(qp, `${specific}=`), \"&\").replace(/\\+/g, \"%20\")) : void 0;\n\treturn qp === \"\" ? qp : `?${qp}`;\n}\n/**\n* **getUrlDefaultPort**`(url)`\n*\n* Returns the default port which the given URL string would use\n* based on the protocol detected in this string.\n*/\nfunction getUrlDefaultPort(url) {\n\tconst proto = getUrlProtocol(url);\n\treturn proto in PROTOCOL_DEFAULT_PORTS ? PROTOCOL_DEFAULT_PORTS[proto] : null;\n}\n/**\n* **getUrlPort**`(url, [resolve])`\n*\n* Find the URL port specified in the passed in URL.\n*\n* - return \"default\" if no explicit url was expressed\n* - if you set `resolve` to **true** it will resolve URL's which\n* don't explicitly state their port to\n*/\nfunction getUrlPort(url, resolve = false) {\n\tconst re = /.*:(\\d{2,3})/;\n\tconst match = url.match(re);\n\treturn re.test(url) && match && isNumberLike(Array.from(match)[1]) ? Number(Array.from(match)[1]) : resolve ? getUrlDefaultPort(url) : hasProtocol(url) ? `default` : null;\n}\n/**\n* **getUrlSource**`(url)`\n*\n* Extracts the `source` part of the url.\n*\n* - this is the DNS name if DNS is used\n* - or an IP address\n*/\nfunction getUrlSource(url) {\n\tconst candidate = stripAfter(stripAfter(stripAfter(removeUrlProtocol(url), \"/\"), \"?\"), \":\");\n\treturn isIpAddress(candidate) || isDomainName(candidate) ? candidate : Never;\n}\nfunction getUrlBase(url) {\n\tconst path = getUrlPath(url);\n\tconst remaining = stripAfter(url, path);\n\treturn remaining;\n}\nfunction getUrlDynamics(url) {\n\tconst path = getUrlPath(url);\n\tconst qp = getUrlQueryParams(url);\n\tconst pathParts = path.startsWith(\"<\") ? path.split(\"<\").map((i) => ensureLeading(i, \"<\")) : path.split(\"<\").map((i) => ensureLeading(i, \"<\")).slice(1);\n\tconst segmentTypes = [\n\t\t\"string\",\n\t\t\"number\",\n\t\t\"boolean\",\n\t\t\"Opt<string>\",\n\t\t\"Opt<number>\",\n\t\t\"Opt<boolean>\"\n\t];\n\tconst pathVars = {};\n\tconst findPathTyped = infer(`<{{infer name}} as {{infer type}}>`);\n\tconst findPathUnion = infer(`<{{infer name}} as string({{infer union}})>`);\n\tconst findPathNamed = infer(`<{{infer name}}>`);\n\tfor (const part of pathParts) {\n\t\tconst union = findPathUnion(part);\n\t\tconst typed = findPathTyped(part);\n\t\tconst named = findPathNamed(part);\n\t\tif (union) {\n\t\t\tif (isVariable(union.name) && isCsv(union.union)) pathVars[union.name] = `string(${union.union})`;\n\t\t} else if (typed && segmentTypes.includes(typed.type) && isVariable(typed.name)) pathVars[typed.name] = typed.type;\n\t\telse if (named && isVariable(named.name)) pathVars[named.name] = \"string\";\n\t}\n\tconst qpVars = {};\n\tconst qpParts = stripLeading(qp, \"?\").split(\"&\");\n\tfor (const p of qpParts) {\n\t\tconst union = infer(`{{infer var}}=<string({{infer params}})>`)(p);\n\t\tconst dynamic = infer(`{{infer var}}=<{{infer val}}>`)(p);\n\t\tconst fixed = infer(`{{infer var}}={{infer val}}`)(p);\n\t\tif (union && isVariable(union.var) && isCsv(union.params)) qpVars[union.var] = `string(${union.params})`;\n\t\telse if (dynamic && isVariable(dynamic.var) && segmentTypes.includes(dynamic.val)) qpVars[dynamic.var] = dynamic.val;\n\t\telse if (fixed && isVariable(fixed.var)) qpVars[fixed.var] = fixed.val;\n\t}\n\treturn {\n\t\tpathVars,\n\t\tqpVars,\n\t\tallVars: hasOverlappingKeys(pathVars, qpVars) ? null : {\n\t\t\t...pathVars,\n\t\t\t...qpVars\n\t\t}\n\t};\n}\n/**\n* **urlMeta**`(url)`\n*\n* Analyzes the string passed in and provides a small dictionary of\n* metadata properties about the URL.\n*/\nfunction urlMeta(url) {\n\treturn {\n\t\turl,\n\t\tisUrl: isUrl(url),\n\t\tprotocol: getUrlProtocol(url),\n\t\tpath: getUrlPath(url),\n\t\tqueryParameters: getUrlQueryParams(url),\n\t\tparams: getUrlDynamics,\n\t\tport: getUrlPort(url),\n\t\tsource: getUrlSource(url),\n\t\tisIpAddress: isIpAddress(getUrlSource(url)),\n\t\tisIp4Address: isIp4Address(getUrlSource(url)),\n\t\tisIp6Address: isIp6Address(getUrlSource(url))\n\t};\n}\n\n//#endregion\n//#region src/meta/youtube-meta.ts\n/**\n* **getYouTubePageType**`(url)`\n*\n* Returns a `YouTubePageType` description based on the url passed in (assuming\n* that URL is for YouTube). Returns _never_ if not a YouTube URL.\n*/\nfunction getYouTubePageType(url) {\n\treturn isYouTubeUrl(url) ? isYouTubeVideoUrl(url) && (hasUrlQueryParameter(url, \"v\") || isYouTubeShareUrl(url)) ? hasUrlQueryParameter(url, \"list\") ? isYouTubeShareUrl(url) ? hasUrlQueryParameter(url, \"t\") ? `play::video::in-list::share-link::with-timestamp` : `play::video::in-list::share-link` : `play::video::in-list` : isYouTubeShareUrl(url) ? hasUrlQueryParameter(url, \"t\") ? `play::video::solo::share-link::with-timestamp` : `play::video::solo::share-link` : `play::video::solo` : isYouTubeCreatorUrl(url) ? getUrlPath(url).includes(\"/videos\") ? \"creator::videos\" : getUrlPath(url).includes(\"/playlists\") ? \"creator::playlists\" : last(getUrlPath(url).split(\"/\")).startsWith(\"@\") || getUrlPath(url).includes(\"/featured\") ? \"creator::featured\" : \"creator::other\" : isYouTubeFeedUrl(url) ? isYouTubeFeedUrl(url, \"history\") ? \"feed::history\" : isYouTubeFeedUrl(url, \"playlists\") ? \"feed::playlists\" : isYouTubeFeedUrl(url, \"liked\") ? \"feed::liked\" : isYouTubeFeedUrl(url, \"subscriptions\") ? \"feed::subscriptions\" : isYouTubeFeedUrl(url, \"trending\") ? \"feed::trending\" : \"feed::other\" : isYouTubeVideosInPlaylist(url) ? \"playlist::show\" : \"other\" : Never;\n}\n/**\n* **youtubeEmbed**`(url)`\n*\n* Takes a Video URL from YouTube and converts it to a \"embed\" URL\n* that can be put into an iframe.\n*/\nfunction youtubeEmbed(url) {\n\tif (hasUrlQueryParameter(url, \"v\")) {\n\t\tconst id = getUrlQueryParams(url, \"v\");\n\t\treturn `https://www.youtube.com/embed/${id}`;\n\t} else if (isYouTubeShareUrl(url)) {\n\t\tconst id = url.split(\"/\").pop();\n\t\tif (id) return `https://www.youtube.com/embed/${id}`;\n\t\telse throw new Error(`Unexpected problem parsing share URL -- \"${url}\" -- into a YouTube embed URL`);\n\t} else throw new Error(`Unexpected URL structure; unable to convert \"${url}\" to a YouTube embed URL`);\n}\n/**\n* **youtube**`(url)`\n*\n* Takes a YouTube URL and converts it to a meta-data object\n* that helps describe the intent of the URL.\n*/\nfunction youtubeMeta(url) {\n\treturn isYouTubeUrl(url) ? {\n\t\turl,\n\t\tisYouTubeUrl: true,\n\t\tisShareUrl: isYouTubeShareUrl(url),\n\t\tpageType: getYouTubePageType(url)\n\t} : {\n\t\turl,\n\t\tisYouTubeUrl: false\n\t};\n}\n\n//#endregion\n//#region src/queues/fifo.ts\nfunction queue$1(state) {\n\treturn {\n\t\tqueue: state,\n\t\tsize: state.length,\n\t\tisEmpty() {\n\t\t\treturn state.length === 0;\n\t\t},\n\t\tclear() {\n\t\t\tstate.slice(0, 0);\n\t\t},\n\t\tdrain() {\n\t\t\tconst old_state = [...state];\n\t\t\tstate.slice(0, 0);\n\t\t\treturn old_state;\n\t\t},\n\t\tpush(...add$1) {\n\t\t\tstate.push(...add$1);\n\t\t},\n\t\tdrop(quantity) {\n\t\t\tif (quantity && quantity > state.length) throw new Error(\"Cannot drop more elements than present in the queue\");\n\t\t\tstate.splice(0, quantity || 1);\n\t\t},\n\t\ttake(quantity) {\n\t\t\tif (quantity && quantity > state.length) throw new Error(\"Cannot take more elements than present in the queue\");\n\t\t\tconst result$1 = state.slice(0, quantity || 1);\n\t\t\tstate.splice(0, quantity || 1);\n\t\t\treturn result$1;\n\t\t},\n\t\t*[Symbol.iterator]() {\n\t\t\tfor (let i = 0; i < state.length; i++) yield state[i];\n\t\t}\n\t};\n}\nfunction createFifoQueue(...list) {\n\treturn queue$1([...list]);\n}\n\n//#endregion\n//#region src/queues/lifo.ts\nfunction queue(state) {\n\treturn {\n\t\tqueue: state,\n\t\tsize: state.length,\n\t\tisEmpty() {\n\t\t\treturn state.length === 0;\n\t\t},\n\t\tpush(...add$1) {\n\t\t\tstate.push(...add$1);\n\t\t},\n\t\tdrop(quantity) {\n\t\t\tstate.splice(-quantity);\n\t\t},\n\t\tclear() {\n\t\t\tstate.slice(0, 0);\n\t\t},\n\t\tdrain() {\n\t\t\tconst old_state = [...state];\n\t\t\tstate.slice(0, 0);\n\t\t\treturn old_state;\n\t\t},\n\t\ttake(quantity) {\n\t\t\tconst result$1 = state.slice(-quantity);\n\t\t\tstate.splice(-quantity);\n\t\t\treturn result$1;\n\t\t},\n\t\t*[Symbol.iterator]() {\n\t\t\tfor (let i = state.length - 1; i >= 0; i--) yield state[i];\n\t\t}\n\t};\n}\nfunction createLifoQueue(...list) {\n\treturn queue([...list]);\n}\n\n//#endregion\n//#region src/regex/createTemplateRegExp.ts\nfunction escapeRegExp(str) {\n\treturn str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\nfunction replaceAllFromTo$1(content, fromTo) {\n\tlet output = content;\n\tfor (const key of Object.keys(fromTo)) output = output.replace(new RegExp(escapeRegExp(key), \"g\"), fromTo[key]);\n\treturn output;\n}\n/**\n* **createTemplateRegExp**`(template, [handling]) -> (api)`\n*\n* A higher order function which:\n*\n* - on the first call you provide a static template which can leverage _dynamic\n* segments_ with the `{{string}}`, `{{number}}`, `{{boolean}}` tags.\n* - you can also specify a \"strategy\":\n* - **exact** _(default strategy)_ - look for an exact match of the template provided\n* - **subset** - look for the template as a _subset_/_sub-string_ of a larger string;\n* this allows text both before and after the template and will also add another grouping\n* level.\n*\n* What's returned from the first call is an API surface which mimics a regular expression API surface.\n*\n* - the `test()` utility returns a boolean value and _tries_ to resolve whether it is\n* true or false at _design time_ where possible.\n*\n* - the `exec()` function tests for matches of not only an overall pattern but sub-patterns\n* which would be defined by parenthesis in regular RegExp but in our case the _dynamic segments_\n* defined by string like `{{string}}`, etc.\n* - if there is a match then an array will be returned:\n* - the 0 index is always the full text which produced the match\n* - if you used the **subset** strategy then index 1 will be the text\n* which matched the whole static template (but excluding any _preamble_ or _prolog_)\n* - all remaining indexes reference the various _dynamic regions_ (e.g., `{{string}}`, etc.)\n* specified in your template.\n* - the \"type\" of the dynamic segment will be used in the search and the\n* type will set appropriately (e.g., a `{{number}}` dynamic segment will\n* result in a numeric type)\n* - if a match is NOT found then an error of the type \"no-match\" will be returned.\n*/\nfunction createTemplateRegExp(template, handling = \"exact\") {\n\t/** safe characters used instead of curlies */\n\tconst safe = replaceAllFromTo$1(template, {\n\t\t\"{{string}}\": \"__STRING__\",\n\t\t\"{{number}}\": \"__NUMBER__\",\n\t\t\"{{boolean}}\": \"__BOOLEAN__\"\n\t});\n\tconst escaped = escapeRegExp(safe);\n\tconst finalPattern = replaceAllFromTo$1(escaped, {\n\t\t\"__STRING__\": \"(.+?)\",\n\t\t\"__NUMBER__\": \"(\\\\d+)\",\n\t\t\"__BOOLEAN__\": \"(true|false)\"\n\t});\n\tconst innerPattern = finalPattern;\n\tconst fullPattern = handling === \"exact\" ? `^${innerPattern}$` : `.*(${innerPattern}).*`;\n\tconst regex = new RegExp(fullPattern);\n\tconst segmentTypes = Array.from(template.matchAll(/\\{\\{(string|number|boolean)\\}\\}/g)).map((i) => i[1]);\n\tconst api$1 = {\n\t\tkind: \"RegexpArray\",\n\t\tpattern: fullPattern,\n\t\ttest(test) {\n\t\t\treturn regex.test(test);\n\t\t},\n\t\texec(test) {\n\t\t\tconst m = regex.exec(test);\n\t\t\tif (!m) return err(\"no-match\");\n\t\t\tconst offset = handling === \"exact\" ? 1 : 2;\n\t\t\tconst out = [];\n\t\t\tout.push(m[0]);\n\t\t\tif (handling === \"subset\") out.push(m[1]);\n\t\t\tfor (let i = 0; i < segmentTypes.length; i++) {\n\t\t\t\tconst segType = segmentTypes[i];\n\t\t\t\tconst raw = m[i + offset];\n\t\t\t\tconst val = segType === \"number\" ? Number(raw) : segType === \"boolean\" ? raw === \"true\" : raw;\n\t\t\t\tout.push(val);\n\t\t\t}\n\t\t\tconst result$1 = Object.assign([], out);\n\t\t\tfor (let i = 0; i < out.length; i++) result$1[i] = out[i];\n\t\t\tresult$1.index = m.index;\n\t\t\tresult$1.input = m.input;\n\t\t\tresult$1.groups = m.groups;\n\t\t\tresult$1.kind = \"RegexArray\";\n\t\t\tresult$1.template = template;\n\t\t\tresult$1.matchStrategy = handling;\n\t\t\treturn result$1;\n\t\t},\n\t\ttoString() {\n\t\t\treturn regex.toString();\n\t\t}\n\t};\n\treturn api$1;\n}\n\n//#endregion\n//#region src/runtime-types/asTypedErr.ts\nfunction asTypedError(classification, msg) {\n\tconst [type, subType] = asTypeSubtype(classification);\n\tconst err$1 = new Error(msg);\n\terr$1.name = toPascalCase(type);\n\terr$1.type = toKebabCase(type);\n\terr$1.subType = toKebabCase(subType);\n\treturn err$1;\n}\n\n//#endregion\n//#region src/runtime-types/asUnion.ts\nconst defaultOptions = {\n\tprefix: \"\",\n\tpostfix: \"\",\n\tencoder: null\n};\n/**\n* Allows you to create a runtime \"token\" while specifying what it's union type is.\n*/\nfunction asUnion(elements, sep = \" | \", options = {}) {\n\tconst opts = {\n\t\t...defaultOptions,\n\t\t...options\n\t};\n\tconst encoder = opts.encoder;\n\treturn isFunction(encoder) ? `${opts.prefix}${elements.map((i) => encoder(`${i}`)).join(sep)}${opts.postfix}` : `${opts.prefix}${elements.join(sep)}${opts.postfix}`;\n}\n\n//#endregion\n//#region src/runtime-types/choices.ts\nconst choices = \"NOT READY\";\n\n//#endregion\n//#region src/runtime-types/defineObjectWith.ts\nfunction defineObjectWith(_mapper) {\n\treturn (defn) => {\n\t\treturn {\n\t\t\tkind: \"define-object-with\",\n\t\t\tdefn,\n\t\t\ttype: null\n\t\t};\n\t};\n}\n\n//#endregion\n//#region src/runtime-types/doesExtend.ts\n/**\n* **doesExtend**`(type) => (value) => boolean`\n*\n* A higher order utility where the first call provides a type definition\n* and the subsequent call tests whether the value passed in _extends_\n* the type.\n*/\nfunction doesExtend(type) {\n\treturn (val) => {\n\t\tif (isInputToken(type)) if (isString(type)) {\n\t\t\tif (type === \"string\") return isString(val);\n\t\t\telse if (type.startsWith(\"string(\") && type.endsWith(\")\")) {\n\t\t\t\tconst values = type.slice(7, -1).split(\",\").map((v) => v.trim());\n\t\t\t\treturn isString(val) && values.includes(val);\n\t\t\t} else if (type === \"number\") return isNumber(val);\n\t\t\telse if (type.startsWith(\"number(\") && type.endsWith(\")\")) {\n\t\t\t\tconst values = type.slice(7, -1).split(\",\").map((v) => Number(v.trim()));\n\t\t\t\treturn isNumber(val) && values.includes(val);\n\t\t\t} else if (type === \"boolean\") return isBoolean(val);\n\t\t\telse if (type === \"true\") return isTrue(val);\n\t\t\telse if (type === \"false\") return isFalse(val);\n\t\t\telse if (type === \"null\") return isNull(val);\n\t\t\telse if (type === \"undefined\") return isUndefined(val);\n\t\t\telse if (type === \"object\") return isDictionary(val);\n\t\t} else if (isDefineObject(type)) if (isDictionary(val)) return Object.keys(type).every((k) => isInputToken(type[k]) && isNarrowable(val[k]) && doesExtend(type[k])(val[k]));\n\t\telse return false;\n\t\telse if (isDefineTuple(type)) if (isArray(val)) return val.length === type.length ? type.every((t, i) => isInputToken(t) && isNarrowable(val[i]) && doesExtend(t)(val[i])) : false;\n\t\telse return false;\n\t\telse return false;\n\t\treturn false;\n\t};\n}\n\n//#endregion\n//#region src/runtime-types/shape-helpers/addToken.ts\n/**\n* Adds any `TypeToken` by receiving the `TypeTokenKind` and then whatever\n* parameters that type requires.\n*/\nfunction addToken(token, ...params) {\n\treturn `<<${token}${params.length > 0 ? `::${params.join(\"::\")}` : \"\"}>>`;\n}\n\n//#endregion\n//#region src/runtime-types/shape-helpers/atomics.ts\nfunction boolean(literal$1) {\n\treturn isDefined(literal$1) ? isTrue(literal$1) ? addToken(\"true\") : isFalse(literal$1) ? addToken(\"false\") : addToken(\"boolean\") : addToken(\"boolean\");\n}\nconst unknown = () => \"<<unknown>>\";\nconst undefinedType = () => \"<<undefined>>\";\nconst nullType = () => \"<<null>>\";\n\n//#endregion\n//#region src/runtime-types/shape-helpers/functions.ts\n/**\n* **fn**\n*\n* provides an API surface for function definition\n*/\nfunction fn(..._args) {\n\treturn {\n\t\treturns: (_rtn) => ({\n\t\t\taddProperties: (_kv) => {\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\tdone: () => {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}),\n\t\tdone: () => {\n\t\t\tconst result$1 = null;\n\t\t\treturn result$1;\n\t\t}\n\t};\n}\n\n//#endregion\n//#region src/runtime-types/shape-helpers/wide-containers.ts\nfunction record(_key, _value) {\n\treturn null;\n}\nfunction array(_type) {\n\treturn null;\n}\nfunction set(_type) {\n\treturn null;\n}\nfunction map(_key, _value) {\n\treturn null;\n}\nfunction weakMap(_key, _value) {\n\treturn null;\n}\n\n//#endregion\n//#region src/runtime-types/shape.ts\nfunction isAddOrDone(val) {\n\treturn isDictionary(val) && hasKeys(\"add\", \"done\") && typeof val.done === \"function\" && typeof val.add === \"function\";\n}\nconst ShapeApiImplementation = {\n\tboolean,\n\tunknown,\n\tundefined: undefinedType,\n\tnull: nullType,\n\tfn,\n\trecord,\n\tarray,\n\tset,\n\tmap,\n\tweakMap\n};\n/**\n* **shape**(s => s.[API])\n*\n* Provides a callback API to allow for defining a type (_which\n* retains a runtime value which will map back to the type_)\n*\n* **Related:** `isShape(val)`\n*/\nfunction shape(cb) {\n\tconst rtn = cb(ShapeApiImplementation);\n\treturn handleDoneFn(isAddOrDone(rtn) ? rtn.done() : rtn);\n}\n/**\n* **isShape**(val)\n*\n* Type guard which tests whether a value is a _type_ defined by a `Shape`.\n*/\nfunction isShape(v) {\n\treturn !!(isString(v) && v.startsWith(\"<<\") && v.endsWith(\">>\") && SHAPE_PREFIXES.some((i) => v.startsWith(`<<${i}`)));\n}\n\n//#endregion\n//#region src/runtime-types/shape-helpers/getTokenData.ts\n/**\n* **getTokenData**`(token)`\n*\n* Given a `Shape` token, this function will extract the\n* data parameters from the token.\n*/\nfunction getTokenData(token) {\n\tconst [_name, ...rest] = stripTrailing(token, \">>\").split(\"::\");\n\treturn rest;\n}\n\n//#endregion\n//#region src/runtime-types/shape-helpers/regexToken.ts\n/**\n* **regexToken**`(re, ...rep)`\n*\n* Creates a `TypeToken` that is a form of string literal and\n* represented in the type system via the use of the `SimpleToken`\n* elements defined in \"rep\" but then with the RegExp encoded into\n* the token too so that it can be used for validation during\n* runtime.\n*/\nfunction regexToken(re, ...rep) {\n\tlet exp = \"\";\n\tif (isString(re)) try {\n\t\tconst test = new RegExp(re);\n\t\tif (!isRegExp(test)) {\n\t\t\tconst err$1 = new Error(`Invalid RegEx passed into regexToken(${re}, ${JSON.stringify(rep)})!`);\n\t\t\terr$1.name = \"InvalidRegEx\";\n\t\t\tthrow err$1;\n\t\t} else exp = re;\n\t} catch {\n\t\tconst err$1 = new Error(`Invalid RegEx passed into regexToken(${re}, ${JSON.stringify(rep)})!`);\n\t\terr$1.name = \"InvalidRegEx\";\n\t\tthrow err$1;\n\t}\n\telse if (isRegExp(re)) exp = re.toString();\n\tconst token = `<<string-set::regexp::${encodeURIComponent(exp)}>>`;\n\treturn token;\n}\n\n//#endregion\n//#region src/runtime-types/tokens/asOutputToken.ts\nfunction asOutputFunction(_val) {}\n\n//#endregion\n//#region src/runtime-types/tokens/asType.ts\n/**\n* Receives an `InputTokenLike` token and converts it to the\n* _type_ this token represents while ensuring that the runtime type\n* is the string representation of the token.\n*\n* **Related:** `fromInputToken()`\n*/\nfunction asType(...token) {\n\tif (token.length === 0) return err(`invalid-token/structure`, `you passed in zero parameters to asType()!`);\n\tconst first = token[0];\n\tconst defn = defineObject(first);\n\treturn token.length === 1 ? isDefineObject(defn) ? isError(defn) ? defn : keysWithError(defn).length > 0 ? err(`invalid-token/object`, `Some of the keys in a DefineObject structure were invalid and caused an error`, { keys: keysWithError(defn) }) : defn : isString(first) ? first.trim() : isArray(first) ? err(`invalid-token/tuple`, `You passed in a single token to asType() but it was an array/tuple. If you're trying to define a tuple type then be sure to use a spread notation instead.`, { tokens: toStringLiteral__Tuple(token) }) : token.length > 1 ? token.map((i) => isString(i) ? i : fromInputToken(i)) : Never : Never;\n}\n\n//#endregion\n//#region src/runtime-types/tokens/createGrammar.ts\nfunction createGrammar(tokenSyntax, ...tokens$1) {\n\treturn {\n\t\tkind: \"Grammar\",\n\t\tsyntax: tokenSyntax,\n\t\ttokens: tokens$1\n\t};\n}\n\n//#endregion\n//#region src/runtime-types/tokens/createToken.ts\nfunction staticToken(name) {\n\treturn (type, typeGuard) => {\n\t\treturn {\n\t\t\tkind: \"StaticToken\",\n\t\t\tisStatic: true,\n\t\t\tname,\n\t\t\ttype: simpleType(type),\n\t\t\ttypeGuard\n\t\t};\n\t};\n}\nfunction dynamicToken(name) {\n\treturn (resolver, tokenizer) => {\n\t\treturn {\n\t\t\tkind: \"DynamicToken\",\n\t\t\tisStatic: false,\n\t\t\tname,\n\t\t\tresolver,\n\t\t\ttokenizer\n\t\t};\n\t};\n}\n/**\n* **createToken**`(name,baseType,params,parser)`\n*\n* Creates a token to be used in a `Grammar`.\n*/\nfunction createToken(token, kind) {\n\treturn kind === \"static\" ? staticToken(token) : dynamicToken(token);\n}\n\n//#endregion\n//#region src/runtime-types/tokens/createTokenSyntax.ts\nfunction defaultEncoder(start$1, end, sep) {\n\tconst config = {\n\t\t[start$1]: \"^start!\",\n\t\t[end]: \"^end!\",\n\t\t[sep]: \"^sep!\",\n\t\t\"\\\"\": \"^dq!\",\n\t\t\"'\": \"^sq!\",\n\t\t\"`\": \"^grave!\"\n\t};\n\treturn config;\n}\nfunction createTokenSyntax(name, start$1, end, sep, encoding = defaultEncoder(start$1, end, sep)) {\n\tconst tg = {\n\t\tkind: \"TokenSyntax\",\n\t\tname,\n\t\tstart: start$1,\n\t\tend,\n\t\tsep,\n\t\tencodingDefinition: encoding,\n\t\tencode: \"not-implemented\",\n\t\tdecode: \"not-implemented\"\n\t};\n\treturn tg;\n}\n\n//#endregion\n//#region src/runtime-types/tokens/getTokenKind.ts\n/**\n* **getTokenKind**`(token)`\n*\n* Given a `TypeToken`, this function will extract the\n* `kind` variant name.\n*/\nfunction getTokenKind(token) {\n\tconst bare = stripSurround(\"<<\", \">>\")(token);\n\tconst parts = bare.split(\"::\");\n\tconst kind = parts.pop();\n\treturn kind;\n}\n\n//#endregion\n//#region src/runtime-types/tokens/input-tokens/asInputToken.ts\n/**\n* **asInputToken**`(token) -> string`\n*\n* Takes an input token(string or otherwise) and returns it as a string token.\n*\n* **Note:** until the runtime type parser is finished this will not produce\n* a runtime errors when an invalid token is passed in but the _type_ will\n* be set because it benefits from type utilities which are already in place.\n*/\nfunction asInputToken(token) {\n\treturn isString(token) ? token : isDictionary(token) ? toStringLiteral__Object(token) : isArray(token) ? fromInputToken(token) : Never;\n}\n\n//#endregion\n//#region src/runtime-types/tokens/input-tokens/asStringInputToken.ts\n/**\n* **toStringToken**`(token)`\n*\n* Proxies through any existing string tokens while making sure\n* that `InputToken__Object` and `InputToken__Tuple` are converted\n* to string representations.\n*/\nfunction toStringToken(token) {\n\tif (isDefineObject(token)) return toStringLiteral(token, { tokensAllowed: true });\n}\n\n//#endregion\n//#region src/runtime-types/tokens/input-tokens/fromDefineObject.ts\n/**\n* Takes an `DefineObject` definition and:\n*\n* - converts it's runtime value to a string-based `InputToken` representation at runtime\n* - converts the _type_ to be the type this token is representing.\n*/\nfunction fromDefineObject(defn) {\n\treturn toStringLiteral(defn, { tokensAllowed: true });\n}\n\n//#endregion\n//#region src/runtime-types/tokens/input-tokens/fromDefineTuple.ts\n/**\n* **fromDefineTuple**`(defn)`\n*\n* Takes in a `DefineTuple` type and converts it to the _type_\n* it represents.\n*\n* **Note:**\n* - the runtime **value** will be converted to a **string**\n* definition of the tuple token (if it wasn't already a string variant)\n* - the _type_ will be whatever type the provided `DefineTuple` _defined_\n*/\nfunction fromDefineTuple(defn) {\n\treturn toStringLiteral(defn);\n}\n\n//#endregion\n//#region src/runtime-types/tokens/input-tokens/fromInputToken.ts\n/**\n* **asInputToken**`(token)`\n*\n* takes both string and _non-string_ representations of an input token\n* and ensures that they are converted to their _string-literal_ form\n* while the _type_ is converted to the _type_ which the token\n* represents.\n*/\nfunction fromInputToken(token) {\n\treturn isInputToken__String(token) ? token : isDefineObject(token) ? toStringToken(token) : isDefineTuple(token) ? toStringToken(token) : err(\"invalid-token\", `The input token provided was invalid!`, { token });\n}\n\n//#endregion\n//#region src/runtime-types/tokens/simpleToken.ts\n/**\n* **simpleToken**`(token)`\n*\n* Creates a `SimpleToken` which assured to be a valid token type.\n*\n* **Related:** `simpleType()`, `simpleScalarToken()`, `simpleContainerToken()`\n*/\nconst simpleToken = (token) => token;\n/**\n* **simpleScalarToken**`(token)`\n*\n* Creates a `SimpleScalarToken` which is assured to be a valid token type.\n*\n* **Related:** `simpleType()`, `simpleToken()`, `simpleContainerToken()`\n*/\nconst simpleScalarToken = (token) => token;\n/**\n* **simpleContainerToken**`(token)`\n*\n* Creates a `SimpleContainerToken` which assured to be a valid token type.\n*\n* **Related:** `simpleType()`, `simpleToken()`, `simpleScalarToken()`\n*/\nconst simpleContainerToken = (token) => token;\n/**\n* **simpleScalarType**`(token)`\n*\n* Creates a valid runtime token _and_ converts it's type to the type that\n* the token represents.\n*\n* **Related:** `simpleScalarToken`\n*/\nfunction simpleScalarType(token) {\n\tconst value = simpleScalarToken(token);\n\treturn value;\n}\n/**\n* **simpleContainerType**`(token)`\n*\n* Creates a valid runtime token _and_ converts it's type to the type that\n* the token represents.\n*\n* **Related:** `simpleContainerToken`\n*/\nfunction simpleContainerType(token) {\n\tconst value = simpleContainerToken(token);\n\treturn value;\n}\n/**\n* **simpleType**`(token)`\n*\n* Creates a valid runtime token of the `SimpleToken` convention and converts\n* the _type_ to the type that the token represents.\n*/\nfunction simpleType(token) {\n\tconst value = isSimpleScalarToken(token) ? simpleScalarType(token) : isSimpleContainerToken(token) ? simpleContainerToken(token) : Never;\n\treturn value;\n}\n\n//#endregion\n//#region src/sets/hasOverlappingKeys.ts\n/**\n* checks whether objects `A`, and `B` have overlapping\n* keys.\n*/\nfunction hasOverlappingKeys(a, b) {\n\tconst keys = Object.keys(a);\n\tfor (const k of keys) if (k in b) return true;\n\treturn false;\n}\n\n//#endregion\n//#region src/sets/uniqueKeys.ts\n/**\n* **uniqueKeys**(left, right)\n*\n* Returns a strongly typed `LeftRight` tuple which identifies the\n* unique keys for each participant list passed in.\n*/\nfunction uniqueKeys(left, right) {\n\tconst isNumeric = !!(isArray(left) && isArray(right));\n\tif (isArray(left) && !isArray(right) || isArray(right) && !isArray(left)) throw new Error(\"uniqueKeys(l,r) given invalid comparison; both left and right values should be an object or an array but not one of each!\");\n\tconst l = isNumeric ? Object.keys(left).map((i) => Number(i)) : Object.keys(left);\n\tconst r = isNumeric ? Object.keys(right).map((i) => Number(i)) : Object.keys(right);\n\tif (isNumeric) throw new Error(\"uniqueKeys does not yet work with tuples\");\n\tconst leftKeys = l.filter((i) => !r.includes(i));\n\tconst rightKeys = r.filter((i) => !l.includes(i));\n\treturn [\n\t\t\"LeftRight\",\n\t\tleftKeys,\n\t\trightKeys\n\t];\n}\n\n//#endregion\n//#region src/take/asTakeState.ts\n/**\n* **asTakeState**`(take)`\n*\n*\n*/\nfunction asTakeState(take$1) {\n\treturn isTakeState(take$1) ? take$1 : isString(take$1) ? {\n\t\tkind: \"TakeState\",\n\t\tparsed: [],\n\t\tparseString: take$1,\n\t\ttokens: []\n\t} : Never;\n}\n\n//#endregion\n//#region src/take/create/createTakeFunction.ts\nfunction staticBuilder(_opt) {\n\tconst builder = { enum(...items) {\n\t\treturn { callback(cb) {\n\t\t\treturn (lexer) => {\n\t\t\t\tconst result$1 = createStaticTakeFunction(items, cb)(lexer);\n\t\t\t\treturn result$1;\n\t\t\t};\n\t\t} };\n\t} };\n\treturn builder;\n}\n/**\n* **createTakeFunction**`(kind,[ opt ]) -> kind specific api`\n*\n* A higher order builder function which allows you to choose a _kind_\n* of take function from the following:\n*\n* - Static Block\n*\n* - configure a static set of variants to match on\n* - provide a callback to map a match to a Lexer token\n* - wrapper will automatically return `Unset` if no match\n* is found\n* - callback fn for mapping a match to a Lexer token (or return\n* an Error as an outlet)\n*\n* - Start/End Block\n*\n* - provide `start` and `end` characters which will be used\n* for matching\n*\n* - While Block\n*/\nfunction createTakeFunction(kind, opt = {}) {\n\tswitch (kind) {\n\t\tcase \"static\": return staticBuilder(opt);\n\t\tcase \"start-end\": return null;\n\t\tcase \"while\": return createTakeWhileFunction;\n\t\tdefault: throw err;\n\t}\n}\n\n//#endregion\n//#region src/take/create/createTakeStartEndFunction.ts\n/**\n* **createTakeStartEndFunction**`(startEnd, opts) -> take fn`\n*\n* creates a `take` function which is based on a\n* **start** and **end** token(s).\n*/\nfunction createTakeStartEndFunction(_startEnd, _opts) {\n\treturn (_str) => {};\n}\n\n//#endregion\n//#region src/take/create/createTakeStaticBlockFunction.ts\n/**\n* **createStaticTakeFunction**`(items[], cb) -> take(lex) -> Error | LexerState`\n*\n* a \"builder\" which _takes_:\n*\n* 1. a static set of variants to match on\n* 2. a _callback_ called when a match is found;\n* - the callback is responsible for mapping the matched static token\n* into a Lexer token or an Error\n*\n* ```ts\n* const fooBar = createStaticTakeFunction(\n* [ \"foo\", \"bar\" ],\n* (match, tokens) => {\n* // ...\n* }\n* ) -> (\n* state: LexerState\n* ) -> LexerState | Error\n* ```\n*/\nfunction createStaticTakeFunction(items, cb) {\n\treturn (state) => {\n\t\tconst found = find(\"startsWith\", state.parse)(items);\n\t\tif (found) {\n\t\t\tconst rtn = cb({\n\t\t\t\tfound,\n\t\t\t\tstate\n\t\t\t});\n\t\t\treturn isError(rtn) ? rtn : isDeltaReturn(rtn) ? {\n\t\t\t\tparse: rtn[0],\n\t\t\t\ttokens: [...state.tokens, rtn[1]]\n\t\t\t} : Never;\n\t\t}\n\t\treturn NO_MATCH;\n\t};\n}\n\n//#endregion\n//#region src/take/create/createTakeWhileFunction.ts\nfunction takeWhile(chars, match, _opts) {\n\tlet head = \"\";\n\tfor (const char of chars) if (match.includes(char)) head = `${head}${char}`;\n\treturn head === \"\" ? [unset, chars.join()] : [head, stripLeading(chars.join(), head).trim()];\n}\n/**\n* creates a \"take function\" which resolves the end of it's string\n* by looking at a `while` condition.\n*/\nfunction createTakeWhileFunction(match, opts) {\n\treturn (str) => {\n\t\tconst [head, rest] = takeWhile(asChars(str), asArray(match), opts);\n\t\tif (isUnset(head)) return unset;\n\t\treturn [head, rest];\n\t};\n}\n\n//#endregion\n//#region src/take/isTakeState.ts\n/**\n* **isTakeState**(val)\n*\n* Type guard which determines if the passed in `val` is a `TakeState`\n* object.\n*/\nfunction isTakeState(val) {\n\treturn isObject(val) && \"kind\" in val && val.kind === \"TakeState\" && \"tokens\" in val && isArray(val.tokens);\n}\n\n//#endregion\n//#region src/take/take.ts\nfunction append(list, add$1) {\n\treturn [...list, add$1];\n}\n/**\n* **takeStart**`(...start) -> (parser) -> (val) -> result`\n*\n* A higher order **take** function which starts by defining the string literals\n* which would make a match.\n*\n* - once defined, the second call to this HOF provides the **value** to test test against.\n* It will return:\n* - Err<\"unmatched\"> - if none of the provided string literals were found at the\n* head of the string\n* - `TakeSuccess` - if there was a match\n*\n* If you wish to override the error which is returned you can add a callback as a second\n* parameter. The callback will receive the `Err<\"unmatched\">` and your callback can convert\n* this to whatever type you like (however, some sort of Error is typically a good idea).\n*/\nfunction take(parser) {\n\treturn (val) => {\n\t\tconst state = asTakeState(val);\n\t\tif (isError(state)) return state;\n\t\tconst [taken, token] = parser(state);\n\t\treturn isNull(taken) ? token : {\n\t\t\t...state,\n\t\t\tparsed: [...state.parsed, taken],\n\t\t\tparseString: stripLeading(state.parseString, taken),\n\t\t\ttokens: append(state.tokens, token)\n\t\t};\n\t};\n}\n\n//#endregion\n//#region src/take/takeNumericLiteral.ts\nconst takeStringToken = \"not ready\";\n\n//#endregion\n//#region src/take/takeStart.ts\nfunction findMatch(state, matches) {\n\treturn matches.find((i) => state.parseString.startsWith(i));\n}\nfunction isCallback(val) {\n\treturn isArray(val) && val.length > 2 && typeof val[0] === \"function\" && typeof val[1] === \"string\";\n}\nfunction isMapper(val) {\n\treturn isArray(val) && val.length === 1 && isNarrowableDictionary(val[0]) && isStringArray(keysOf(val[0]));\n}\nfunction getVariant(matches) {\n\tif (isCallback(matches)) return {\n\t\tvariant: \"callback\",\n\t\tcallback: matches[0],\n\t\tmatches: slice(matches, 1),\n\t\tlookup: void 0\n\t};\n\telse if (isMapper(matches)) return {\n\t\tvariant: \"mapper\",\n\t\tcallback: void 0,\n\t\tmatches: keysOf(matches[0]),\n\t\tlookup: matches[0]\n\t};\n\telse return {\n\t\tvariant: \"default\",\n\t\tcallback: void 0,\n\t\tmatches,\n\t\tlookup: void 0\n\t};\n}\nfunction handleCallback(result$1) {\n\treturn result$1;\n}\n/**\n* **takeStart**`(...matches) -> (value) -> TakeState | Err<\"invalid-token\">`\n*\n* A higher order function which:\n*\n* 1. first takes a list of \"matches\" (aka., string literal which it will look to\n* match to the the value passed in)\n* 2. the second call takes a string value (or alternatively a `TakeState` object)\n* and tries to match the parse string with the list of matches provided in the first\n* call.\n*\n* ### Tokenization\n*\n* By default this utility will populate the `tokens` property of the `TakeState`\n* with the matched string it finds. In the default state, the `tokens` it produces are\n* the same as the `parsed` strings it produces.\n*\n* If you wish to produce a _variant_ of the string found you can use either of the two\n* approaches:\n*\n* 1. **Mapper Object:**\n*\n* A _mapper_ object is a dictionary where the _keys_ are the substrings you're trying to\n* match on and the _values_ are the runtime value that you will map to when this substring is found.\n* If this approach is used then the dictionary object _replaces_ the tuple of strings you\n* would typically put into the `matches` variable. If you want to set not only the \"value\" but also\n* the \"type\" you can set the _values_ of the object to a tuple of: `[ value: any, type: InputToken ]`.\n*\n* Here is an example:\n* ```ts\n* const take = takeStart({\n* foo: \"fooy\",\n* bar: [\"bar\", \"string\"]\n* });\n* ```\n*\n* In this example:\n* - when the \"foo\" substring is parsed from the parse string the value _and_ type of the token will be \"fooy\"\n* - when the \"bar\" substring is parsed from the parse string the value will be \"bar\" but the type will be `string`\n*\n*\n* 2. **Callback Function:**\n*\n* You can also provide a callback function to handle mapping to `tokens`. Unlike the mapper object,\n* using a callback function which will be _in addition to_ the tuple of match substrings. This callback\n* will take the form of:\n*\n* ```ts\n*\n* function callback(\n* value: string,\n* state: TakeState\n* ): TakeState | Err<\"invalid-token\"> | Err<\"skip\"> | Err<\"no-token\">\n* ```\n*\n* where:\n* - `TakeState` allows the callback to mutate the state\n* - `Err<\"skip\">` will keep the state exactly as it was\n* - `Err<\"no-token\">` will keep the tokens as they were but remove the substring from\n* the parse string and add it to the `parsed` property.\n* - `Err<\"invalid-token\">` will immediately exit with this error\n*\n* **Note:** all variants of this function work on an enumerated set of \"matches\"\n* and because of this this function is able to handle non-matches by itself. If you want an\n* unconstrained set of start tokens then use the `take()` utility to create this yourself.\n*/\nfunction takeStart(...config) {\n\tconst { variant, matches, callback, lookup: lookup$2 } = getVariant(config);\n\tconst fn$1 = (value) => {\n\t\tconst state = asTakeState(value);\n\t\tconst match = findMatch(state, matches);\n\t\tif (!match) return state;\n\t\tif (variant === \"default\") {\n\t\t\tconst token = match;\n\t\t\treturn {\n\t\t\t\tkind: \"TakeState\",\n\t\t\t\tparsed: [...state.parsed, match],\n\t\t\t\tparseString: stripLeading(state.parseString, match),\n\t\t\t\ttokens: [...state.tokens, token]\n\t\t\t};\n\t\t}\n\t\tif (variant === \"mapper\") {\n\t\t\tconst mapped = lookup$2[match];\n\t\t\tconst token = Array.isArray(mapped) ? mapped[0] : mapped;\n\t\t\treturn {\n\t\t\t\tkind: \"TakeState\",\n\t\t\t\tparsed: [...state.parsed, match],\n\t\t\t\tparseString: stripLeading(state.parseString, match),\n\t\t\t\ttokens: [...state.tokens, token]\n\t\t\t};\n\t\t}\n\t\tconst cbResult = handleCallback(callback(match, state));\n\t\tif (isErr(cbResult, \"invalid-token\")) return cbResult;\n\t\tif (isErr(cbResult, \"skip\")) return state;\n\t\tif (isErr(cbResult, \"no-token\")) return {\n\t\t\tkind: \"TakeState\",\n\t\t\tparsed: [...state.parsed, match],\n\t\t\tparseString: stripLeading(state.parseString, match),\n\t\t\ttokens: [...state.tokens]\n\t\t};\n\t\treturn cbResult;\n\t};\n\tconst result$1 = createFnWithProps(fn$1, {\n\t\tvariant,\n\t\tmatches\n\t});\n\treturn result$1;\n}\n\n//#endregion\n//#region src/type-conversion/asChars.ts\n/**\n* **asChars**`(str)`\n*\n* Converts a string into an array of characters and preserves literal type\n* where possible.\n*\n*\n* ```ts\n* // [ \"h\", \"e\", \"l\", \"l\", \"o\" ]\n* const chars = asChars(\"hello\");\n* ```\n*/\nfunction asChars(str) {\n\treturn str.split(\"\");\n}\n\n//#endregion\n//#region src/type-conversion/asFromTo.ts\nfunction asFromTo(defn) {\n\tconst fromTo = Object.keys(defn).reduce((acc, from) => {\n\t\treturn [...acc, {\n\t\t\tfrom,\n\t\t\tto: defn[from]\n\t\t}];\n\t}, []);\n\treturn fromTo;\n}\n\n//#endregion\n//#region src/type-conversion/asRecord.ts\n/**\n* **asRecord**`<T>`(obj: T) → AsRecord`<T>`\n*\n* An \"identity function\" with regards to runtime information but\n* helps convert a `object` to a `Record<ObjectKey,unknown>` which\n* is indexable.\n*/\nfunction asRecord(obj) {\n\treturn obj;\n}\n\n//#endregion\n//#region src/type-conversion/asString.ts\n/**\n* **asString**`(value)\n*\n* Attempts to convert the value passed in into a string\n* using the same methods available to the type utility\n* `AsString<T>`.\n*\n* If unable to convert to a string then it will provide\n* the runtime value of `String(value)` but the type system\n* will be set to `never`.\n*\n* - if an array is passed in then it will be joined\n* together -- no delimiter characters -- into a string\n* - if a tuple of `SimpleToken[]` is discovered it will\n* set the runtime type to a token of `<<string::...>>` while the\n* type of the string will be\n*/\nfunction asString(value) {\n\treturn isString(value) ? value : isNumber(value) ? `${value}` : isBoolean(value) ? `${value}` : isDictionary(value) ? `{ ... ${keysOf(value)} ... }` : isArray(value) ? `any[]` : String(value);\n}\n\n//#endregion\n//#region src/type-conversion/asTemplate.ts\n/**\n* **asTemplate**`(template)`\n*\n* Converts a string with template tags `{{type}}` into string literals.\n*\n* ```ts\n* // `age: ${Integer}`\n* const template = asTemplate(\"age: {{integer}}\")\n* ```\n*\n* **Related:** `asTemplateProvidingTags`\n*/\nfunction asTemplate(template) {\n\treturn template;\n}\n\n//#endregion\n//#region src/type-conversion/asTypeSubtype.ts\nfunction asTypeSubtype(input) {\n\tconst [type, subtype] = input.split(\"/\");\n\treturn [type, subtype];\n}\n\n//#endregion\n//#region src/type-conversion/csv.ts\n/**\n* **csv**`(csv, [format])`\n*\n* Converts a CSV string literal into a tuple of values\n* (based on format).\n*\n* **Note:** either _no space_ or _a single space_ between values\n* will provide a trimmed value but any additional whitespace\n* after the comma will result in some leading whitespace in\n* some values.\n*\n* @default\n*/\nfunction csv(csv$1, format = `string-numeric-tuple`) {\n\tconst tuple$1 = [];\n\tcsv$1.split(/,\\s?/).forEach((v) => {\n\t\ttuple$1.push(format === \"string-numeric-tuple\" ? isNumberLike(v) ? Number(v) : v : format === \"json-tuple\" ? isNumberLike(v) ? Number(v) : v === \"true\" ? true : v === \"false\" ? false : `\"${v}\"` : format === \"string-tuple\" ? `${v}` : Never);\n\t});\n\treturn tuple$1;\n}\n\n//#endregion\n//#region src/type-conversion/eachAsString.ts\n/**\n* **eachAsString**`(...tuple) -> readonly string[]`\n*\n* Converts every element of a tuple into a _string_ representation.\n*/\nfunction eachAsString(...tuple$1) {\n\treturn tuple$1.map((i) => asString(i));\n}\n\n//#endregion\n//#region src/type-conversion/fromKeyValue.ts\n/**\n* **fromKeyValue**`(keyValueTuple)`\n*\n* Converts a `KeyValue` tuple into an object.\n*\n* - **Related:** `toKeyValue()`\n*/\nfunction fromKeyValue(kvs) {\n\tconst obj = {};\n\tfor (const kv of kvs) obj[kv.key] = kv.value;\n\treturn obj;\n}\n\n//#endregion\n//#region src/type-conversion/intersect.ts\n/**\n* **intersect**(value, intersectedWith)\n*\n* Runtime utility which receives `value` property and returns it with an\n* unchanged _runtime_ value but with the type now intersected with the\n* value provided by `intersectedWith`.\n*/\nfunction intersect(value, _intersectedWith) {\n\treturn value;\n}\n\n//#endregion\n//#region src/type-conversion/ip6GroupExpansion.ts\n/**\n* **ip6GroupExpansion**`(ip)`\n*\n* Looks at the IPv6 address and expands all instances of `::` to add\n* a block of `0000` where it was.\n*\n* ```ts\n* // fe89:0000:1256\n* const ip6 = ip6GroupExpansion(\"fe89::1256\");\n* ```\n*/\nfunction ip6GroupExpansion(ip) {\n\treturn stripTrailing(ip.replaceAll(\"::\", \":0000:\"), \":\");\n}\n\n//#endregion\n//#region src/type-conversion/lastChar.ts\nfunction lastChar(str) {\n\tconst char = asChars(str).at(-1);\n\treturn char;\n}\nfunction firstChar(str) {\n\tconst char = asChars(str).at(0);\n\treturn char;\n}\n\n//#endregion\n//#region src/type-conversion/lookupCountry.ts\nfunction lookupAlpha2Code(code, prop) {\n\tconst found = ISO3166_1.find((i) => i.alpha2 === code);\n\treturn found ? found[prop] : void 0;\n}\nfunction lookupAlpha3Code(code, prop) {\n\tconst found = ISO3166_1.find((i) => i.alpha3 === code);\n\treturn found ? found[prop] : void 0;\n}\nfunction lookupName(name, prop) {\n\tconst found = ISO3166_1.find((i) => i.name === name);\n\treturn found ? found[prop] : void 0;\n}\nfunction lookupNumericCode(code, prop) {\n\tlet num = isNumber(code) ? `${code}` : code;\n\tif (num.length === 1) num = `00${num}`;\n\telse if (num.length === 2) num = `0${num}`;\n\tconst found = ISO3166_1.find((i) => i.countryCode === num);\n\treturn found ? found[prop] : void 0;\n}\n/**\n* **lookupCountryName**`(code)`\n*\n* Looks up a country name by either the alpha-2, alpha-3, or country code\n* as defined by the [ISO3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) standard.\n*\n* - the ISO standard uses uppercase characters for Alpha2 and Alpha3 codes but\n* this utility will handle upper or lowercase\n* - it will correctly type the country name if the code passed in is a literal\n* string (and a valid code)\n*\n* **Related:** `lookupCountryAlpha2()`, `lookupCountryAlpha3()`\n*/\nfunction lookupCountryName(code) {\n\tconst uc = toAllCaps(code);\n\treturn isNumberLike(code) ? lookupNumericCode(code, \"name\") : isIso3166Alpha2(uc) ? lookupAlpha2Code(uc, \"name\") : isIso3166Alpha3(uc) ? lookupAlpha3Code(uc, \"name\") : void 0;\n}\n/**\n* Looks up the Alpha2 component of a [ISO3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)\n* standard.\n*/\nfunction lookupCountryAlpha2(code) {\n\tconst uc = toAllCaps(code);\n\treturn isNumberLike(code) ? lookupNumericCode(code, \"alpha2\") : isIso3166Alpha2(uc) ? lookupAlpha2Code(uc, \"alpha2\") : isIso3166Alpha3(uc) ? lookupAlpha3Code(uc, \"alpha2\") : isIso3166CountryName(code) ? lookupName(code, \"alpha2\") : void 0;\n}\n/**\n* Looks up the Alpha3 component of a [ISO3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)\n* standard.\n*/\nfunction lookupCountryAlpha3(token) {\n\tconst uc = toAllCaps(token);\n\treturn isNumberLike(token) ? lookupNumericCode(token, \"alpha3\") : isIso3166Alpha2(uc) ? lookupAlpha2Code(uc, \"alpha3\") : isIso3166Alpha3(uc) ? lookupAlpha3Code(uc, \"alpha3\") : isIso3166CountryName(token) ? lookupName(token, \"alpha3\") : void 0;\n}\n/**\n* Looks up the Alpha3 component of a [ISO3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)\n* standard.\n*/\nfunction lookupCountryCode(token) {\n\tconst uc = toAllCaps(token);\n\treturn isNumberLike(token) ? lookupNumericCode(token, \"countryCode\") : isIso3166Alpha2(uc) ? lookupAlpha2Code(uc, \"countryCode\") : isIso3166Alpha3(uc) ? lookupAlpha3Code(uc, \"countryCode\") : isIso3166CountryName(token) ? lookupName(token, \"countryCode\") : void 0;\n}\n\n//#endregion\n//#region src/type-conversion/mergeObjects.ts\n/**\n* merge two objects while preserving narrow types\n*/\nfunction mergeObjects(defVal, override) {\n\treturn {\n\t\t...defVal,\n\t\t...override\n\t};\n}\n\n//#endregion\n//#region src/type-conversion/mergeScalars.ts\n/**\n* **mergeScalars**(a,b)\n*\n* The value of scalar `b` _overrides_ that of `a` unless `b` is\n* undefined.\n*/\nfunction mergeScalars(a, b) {\n\treturn isUndefined(b) ? a : b;\n}\n\n//#endregion\n//#region src/type-conversion/mergeTuples.ts\n/**\n* **mergeTuples**(a,b)\n*\n* Replaces values in `a` with `b` unless `b` is _undefined_. Also, if\n* `a` has more elements than `b` then these extra elements will be\n* appended to the end.\n*/\nfunction mergeTuples(a, b) {\n\treturn b.length > a.length ? b.map((v, idx) => v !== void 0 ? v : a[idx]) : [...b, ...a.slice(b.length)].map((v, idx) => v !== void 0 ? v : a[idx]);\n}\n\n//#endregion\n//#region src/type-conversion/mutable.ts\n/**\n* converts a readonly value into a mutable one without giving up narrow types.\n*/\nfunction mutable(value) {\n\treturn value;\n}\n\n//#endregion\n//#region src/type-conversion/optional.ts\n/**\n* **optional**(value)\n*\n* A function which takes the value `T` and widens it to include\n* a union with _undefined_.\n*/\nfunction optional(value) {\n\treturn value;\n}\n/**\n* **orNull**`(value)`\n*\n* widens the type for the value passed in to be whatever type it\n* currently is _in union with_ `null`.\n*/\nfunction orNull(value) {\n\treturn value;\n}\n/**\n* **optionalOrNull**`(value)`\n*\n* widens the type for the value passed in to be whatever type it\n* currently is _in union with_ `null and `undefined`.\n*\n* **Related:** `optional()`, `orNull()`\n*/\nfunction optionalOrNull(value) {\n\treturn value;\n}\n\n//#endregion\n//#region src/type-conversion/safe-string-encoding.ts\n/**\n* **createSafeStringEncoder**`(...groups) -> [encoder, decoder]`\n*\n* specify the groups of characters you want to encode\n* and both an _encoder_ and _decoder_ will be returned.\n*/\nfunction setupSafeStringEncoding(...groups) {\n\tconst g = groups.length === 0 ? [\n\t\t\"quotes\",\n\t\t\"brackets\",\n\t\t\"whitespace\"\n\t] : groups;\n\t/** SafeString encoder */\n\tconst encode = (text) => {\n\t\tlet results = text;\n\t\tconst lookup$2 = mutable(SAFE_ENCODING_KEYS);\n\t\tconst keys = g.flatMap((i) => i === \"whitespace\" ? Object.keys(mutable(SAFE_ENCODING__WHITESPACE)) : i === \"brackets\" ? Object.keys(mutable(SAFE_ENCODING__BRACKETS)) : i === \"quotes\" ? Object.keys(mutable(SAFE_ENCODING__QUOTES)) : []);\n\t\tfor (const key of keys) {\n\t\t\tconst find$1 = key;\n\t\t\tconst replace$1 = lookup$2[find$1];\n\t\t\tresults = results.replaceAll(find$1, replace$1);\n\t\t}\n\t\treturn results;\n\t};\n\t/** SafeString decoder */\n\tconst decode = (encoded) => {\n\t\tlet results = encoded;\n\t\tconst lookup$2 = reverseLookup(SAFE_ENCODING_KEYS);\n\t\tconst keys = g.flatMap((i) => i === \"whitespace\" ? Object.keys(reverseLookup(SAFE_ENCODING__WHITESPACE)) : i === \"brackets\" ? Object.keys(reverseLookup(SAFE_ENCODING__BRACKETS)) : i === \"quotes\" ? Object.keys(reverseLookup(SAFE_ENCODING__QUOTES)) : []);\n\t\tfor (const key of keys) {\n\t\t\tconst find$1 = key;\n\t\t\tconst replace$1 = lookup$2[find$1];\n\t\t\tresults = results.replaceAll(find$1, replace$1);\n\t\t}\n\t\treturn results;\n\t};\n\treturn [encode, decode];\n}\n\n//#endregion\n//#region src/type-conversion/stripParenthesis.ts\n/**\n* **stripParenthesis**`(val)`\n*\n* A runtime utility which strips leading and trailing whitespace as well\n* as any leading or trailing parenthesis characters.\n*/\nfunction stripParenthesis(val) {\n\treturn stripTrailing(stripLeading(val.trim(), \"(\"), \")\").trim();\n}\n\n//#endregion\n//#region src/type-conversion/toJSON.ts\n/**\n* **toJSON**`(val)`\n*\n* Converts the passed in value to a strongly typed string\n* literal representation of the JSON type for `val`.\n*\n* **Related:** `toStringLiteral()`, `toJson()`\n*\n* @deprecated use `toJson()` instead\n*/\nfunction toJSON(val, _options = {\n\tquote: \"\\\"\",\n\tencode: false\n}) {\n\treturn JSON.stringify(val);\n}\n/**\n* **toJson**`(val)`\n*\n* Converts the passed in value to a strongly typed string\n* literal representation of the JSON type for `val`.\n*\n* **Related:** `toStringLiteral()`\n*/\nfunction toJson(val, _options = {\n\tquote: \"\\\"\",\n\tencode: false\n}) {\n\treturn JSON.stringify(val);\n}\n\n//#endregion\n//#region src/type-conversion/toKeyValue.ts\n/**\n* **toKeyValue**`(obj)` -> tuple\n*\n* Converts an object into a tuple of `KeyValue` objects.\n*\n* - a Tuple representation benefits from two main things:\n* - ensured **order**\n* - it is an **iterable** structure\n* - narrow types are preserved wherever possible\n* - you may optionally position certain key's at the \"top\"\n* or \"bottom\" of the stack by using the sort callback.\n*\n* ```ts\n* // [\n* // { key: \"id\", value: 123},\n* // { key: \"foo\", value: 1 },\n* // { key: \"bar\", value: 2 },\n* // ]\n* const rec = toKeyValue({foo: 1, bar: 2, id: 123 }, { start: \"id\" });\n* ```\n*/\nfunction toKeyValue(obj, sort) {\n\t/**\n\t* an unsorted tuple of `KeyValue`'s\n\t*/\n\tconst kv = keysOf(obj).map((k) => ({\n\t\tkey: k,\n\t\tvalue: obj[k],\n\t\trequired: true\n\t}));\n\treturn sortByKey(kv, \"key\", sort || {});\n}\n\n//#endregion\n//#region src/type-conversion/toNumber.ts\nfunction convertScalar(val) {\n\tswitch (typeof val) {\n\t\tcase \"number\": return val;\n\t\tcase \"string\": return Number(val);\n\t\tcase \"boolean\": return val ? 1 : 0;\n\t\tdefault: throw new Error(`${typeof val} is an invalid scalar type to convert to a number!`);\n\t}\n}\nconst convertList = (val) => val.map((i) => convertScalar(i));\n/**\n* **toNumber**(value)\n*\n* Runtime utility which converts a value into a _numeric_ variant:\n*\n* - for scalars (and objects) it will try to convert to number but otherwise returns `NaN` to runtime and `never` to type system\n* - for arrays it will iterate over each element and try to convert to a number like above\n*/\nfunction toNumber(value) {\n\treturn Array.isArray(value) ? convertList(value) : convertScalar(value);\n}\n\n//#endregion\n//#region src/type-conversion/toStringLiteral.ts\n/**\n* Object keys typically do not need be surrounded by quotations\n* marks at least if they are of the `PascalCase` or `camelCase`\n* variety but if they contain spaces, dashes, or really any character\n* other than alphanumeric characters then they must be quoted.\n*/\nfunction isObjectKeyRequiringQuotes(val) {\n\treturn isString(val) ? stripChars(val, ...ALPHA_CHARS) !== \"\" : false;\n}\nfunction property(prop) {\n\tif (isString(prop)) {\n\t\tif (isObjectKeyRequiringQuotes(prop)) return `\"${prop}\"`;\n\t\treturn prop;\n\t}\n\treturn String(prop);\n}\n/**\n* **toStringLiteral__Object**`(obj) -> token`\n*\n* Converts a `DefineObject` shaped type definition into a string based\n* `InputToken` while converting the _type_ to the type which the token\n* represents.\n*/\nfunction toStringLiteral__Object(obj) {\n\tconst inner = [];\n\tfor (const k of keysOf(obj)) inner.push(`${property(k)}: ${obj[k]}`);\n\treturn `{ ${inner.join(\", \")} }`;\n}\nfunction mutateObjectKeys(obj, opt) {\n\tconst result$1 = {};\n\tfor (const k of Object.keys(obj)) result$1[k] = toStringLiteral(indexOf(obj, k), opt);\n\treturn result$1;\n}\nfunction scalarValue(val, opt) {\n\treturn isString(val) ? isTrue(opt.tokensAllowed) ? isInputToken__String(val) ? val : `\"${val}\"` : `\"${val}\"` : isNumber(val) ? `${val}` : isUndefined(val) ? \"undefined\" : isNull(val) ? \"null\" : isFalse(val) ? \"false\" : isTrue(val) ? \"true\" : isSymbol(val) ? String(val) : Never;\n}\nfunction toStringLiteral__Tuple(tup, opt) {\n\treturn `[ ${tup.map((i) => toStringLiteral(i, opt)).join(\", \")} ]`;\n}\n/**\n* **toStringLiteral**`(value, [options]) -> string literal representation`\n*\n* Converts any value into a string literal which _represents_ the\n* value.\n*\n* ```ts\n* // '{ foo: 1; bar: \"bar\" }'\n* const fooBar = toStringLiteral({foo: 1, bar: \"bar\"});\n* ```\n*\n* - you can adjust what type of quote marks to use by adjusting the _optional_\n* **options** hash\n*\n* **Related:** `toJSON()`\n*/\nfunction toStringLiteral(val, options = {}) {\n\tconst o = {\n\t\ttokensAllowed: false,\n\t\tquote: \"\\\"\",\n\t\t...options || {}\n\t};\n\treturn isArray(val) ? toStringLiteral__Tuple(val, o) : isDictionary(val) ? toStringLiteral__Object(mutateObjectKeys(val, o)) : isTrue(val) ? \"true\" : isFalse(val) ? \"false\" : isScalar(val) ? scalarValue(val, o) : Never;\n}\n\n//#endregion\n//#region src/type-conversion/tw-conversion.ts\nconst MODS = TW_MODIFIERS.map((i) => `${i}:`);\n/**\n* Extracts all the modifiers found on the passed in string and\n* removes them.\n*\n* **Related:** `getTailwindModifiers`\n*/\nfunction removeTailwindModifiers(val) {\n\treturn MODS.some((i) => val.startsWith(i)) ? removeTailwindModifiers(val.replace(MODS.find((i) => val.startsWith(i)), \"\")) : val;\n}\n/**\n* Extracts an array of Tailwind Modifiers found at the start of a Tailwind string.\n*/\nfunction getTailwindModifiers(val) {\n\treturn val.split(\":\").filter((i) => isTailwindModifier(i));\n}\n\n//#endregion\n//#region src/type-conversion/unionize.ts\n/**\n* **unionize**(value,inUnionWith)\n*\n* Takes a runtime **value** and modifies it's type to be a union with\n* the type of `inUnionWith` parameter (but does not change the actual\n* runtime value).\n*/\nfunction unionize(value, _inUnionWith) {\n\treturn value;\n}\n\n//#endregion\n//#region src/vuejs/asVueRef.ts\n/**\n* **asVueRef**(value)\n*\n* Receives a _value_ and makes it look like a `VueRef<T>` which will make\n* it pass the `IsRef<T>` type check. It also provides a hidden `_value` property\n* to the runtime which makes it pass the `isRef()` runtime check.\n*\n* Note:\n*\n* - this is a convenience function for building test cases in a library where you're\n* not actually exporting VueJS symbols (like inferred-types).\n*/\nfunction asVueRef(value) {\n\treturn {\n\t\tvalue,\n\t\t_value: null\n\t};\n}\n\n//#endregion\nexport { NO_MATCH, ShapeApiImplementation, abs, add, addFnToProps, addPropsToFn, addToken, afterFirst, and, append, array, asArray, asChars, asDate, asDateTime, asEpochTimestamp, asFourDigitYear, asFromTo, asInputToken, asIsoDate, asIsoDateTime, asNumber, asOutputFunction, asPhoneFormat, asRecord, asString, asTakeState, asTemplate, asTwoDigitMonth, asType, asTypeSubtype, asTypedError, asUnion, asVueRef, between, boolean, brand, capitalize, cardType, choices, compare, contains, createConstant, createConverter, createCssKeyframe, createCssSelector, createErrorCondition, createFifoQueue, createFixedLengthArray, createFnWithProps, createGrammar, createLifoQueue, createNestingConfig, createStaticTakeFunction, createTakeFunction, createTakeStartEndFunction, createTakeWhileFunction, createTemplateRegExp, createToken, createTokenSyntax, cssColor, cssFromDefinition, csv, dateObjectToIso, daysInMonth, decrement, defineCss, defineObj, defineObject, defineObjectWith, defineTuple, doesExtend, dropFirstStackFrame, eachAsString, endsWith, endsWithTypeguard, ensureLeading, ensureSurround, ensureTrailing, entries, equalsSome, err, errCondition, every, filter, filterEmpty, filterUndefined, find, firstChar, fn, fnProps, fourDigitYear, freeze, fromDefineObject, fromDefineTuple, fromInputToken, fromKeyValue, get, getDaysBetween, getEach, getMonthAbbrev, getMonthName, getMonthNumber, getPhoneCountryCode, getSeason, getTailwindModifiers, getToday, getTokenData, getTokenKind, getTomorrow, getTypeSubtype, getUrlBase, getUrlDefaultPort, getUrlDynamics, getUrlPath, getUrlPort, getUrlProtocol, getUrlQueryParams, getUrlSource, getWeekNumber, getYear, getYesterday, getYouTubePageType, handleDoneFn, hasCountryCode, hasDefaultValue, hasHtml, hasIndexOf, hasKeys, hasNonStringKeys, hasOnlyStringKeys, hasOnlyStringValues, hasOnlySymbolKeys, hasOverlappingKeys, hasProtocol, hasProtocolPrefix, hasSymbolKeys, hasUrlPort, hasUrlQueryParameter, hasValidHtml, hasWhiteSpace, idLiteral, idTypeGuard, identity, ifArray, ifArrayPartial, ifBoolean, ifChar, ifContainer, ifDefined, ifEmpty, ifEqual, ifError, ifFalse, ifFunction, ifHasKey, ifLength, ifLowercaseChar, ifNotNull, ifNull, ifNumber, ifObject, ifSameType, ifScalar, ifString, ifTrue, ifUndefined, ifUppercaseChar, increment, indexOf, infer, integer, intersect, intersection, ip6GroupExpansion, isAccelerationMetric, isAccelerationUom, isAfter, isAlpha, isAmazonUrl, isAmericanExpress, isApi, isApiSurface, isAppleUrl, isAreaMetric, isAreaUom, isArray, isAustralianNewsUrl, isBefore, isBelgiumNewsUrl, isBestBuyUrl, isBitbucketUrl, isBoolean, isBooleanArray, isBooleanLike, isCanadianNewsUrl, isChineseNewsUrl, isCodeCommitUrl, isComparisonOperation, isConstant, isContainer, isCostCoUrl, isCountryAbbrev, isCountryCode2, isCountryCode3, isCountryName, isCreditCard, isCssAspectRatio, isCsv, isCurrentMetric, isCurrentUom, isCvsUrl, isDanishNewsUrl, isDate, isDateLike, isDateMeta, isDayJs, isDefineObject, isDefineTuple, isDefined, isDellUrl, isDeltaReturn, isDictionary, isDistanceMetric, isDistanceUom, isDomainName, isDoneFn, isDoubleLeap, isDutchNewsUrl, isEbayUrl, isEmail, isEmpty, isEnergyMetric, isEnergyUom, isEpochInMilliseconds, isEpochInSeconds, isEqual, isErr, isError, isEscapeFunction, isEtsyUrl, isEven, isFalse, isFalsy, isFnWithParams, isFourDigitYear, isFrenchNewsUrl, isFrequencyMetric, isFrequencyUom, isFunction, isGermanNewsUrl, isGithubIssueUrl, isGithubIssuesListUrl, isGithubOrgUrl, isGithubProjectUrl, isGithubProjectsListUrl, isGithubReleaseTagUrl, isGithubReleasesListUrl, isGithubRepoReleaseTagUrl, isGithubRepoReleasesUrl, isGithubRepoUrl, isGithubUrl, isGreaterThan, isGreaterThanOrEqual, isHexadecimal, isHmUrl, isHomeDepotUrl, isHtml, isHtmlComponentTag, isHtmlElement, isIanaTimezone, isIkeaUrl, isInUnion, isIndexable, isIndianNewsUrl, isInlineSvg, isInputToken, isInputToken__String, isInteger, isIp4Address, isIp6Address, isIp6Subnet, isIpAddress, isIso3166Alpha2, isIso3166Alpha3, isIso3166CountryCode, isIso3166CountryName, isIsoDate, isIsoDateTime, isIsoExplicitDate, isIsoExplicitTime, isIsoImplicitDate, isIsoImplicitTime, isIsoMonthDate, isIsoTime, isIsoYear, isIsoYearMonth, isItalianNewsUrl, isJapaneseNewsUrl, isKrogersUrl, isLeapYear, isLength, isLikeRegExp, isLowesUrl, isLuminosityMetric, isLuminosityUom, isLuxonDate, isMacysUrl, isMap, isMassMetric, isMassUom, isMastercard, isMetric, isMetricCategory, isMexicanNewsUrl, isMinimalDigitDate, isMoment, isMonthAbbrev, isMonthName, isNamedColor, isNarrowable, isNarrowableArray, isNarrowableDictionary, isNegativeNumber, isNestingEnd, isNestingEndMatch, isNestingKeyValue, isNestingStart, isNestingTuple, isNever, isNewsUrl, isNikeUrl, isNorwegianNewsUrl, isNotEmpty, isNotError, isNotNull, isNotUnset, isNothing, isNull, isNumber, isNumberLike, isNumericArray, isNumericString, isObject, isObjectKey, isObjectKeyRequiringQuotes, isOdd, isOk, isOptionalParamFunction, isParsedDate, isPhoneNumber, isPowerMetric, isPowerUom, isPressureMetric, isPressureUom, isProtocol, isProtocolPrefix, isReadonlyArray, isRef, isRegExp, isRepoSource, isRepoUrl, isResistanceMetric, isResistanceUom, isRetailUrl, isRgbColor, isSameDay, isSameMonth, isSameMonthYear, isSameTypeOf, isSameYear, isScalar, isSemanticVersion, isSet, isSetContainer, isShape, isShapeCallback, isSimpleContainerToken, isSimpleContainerTokenTuple, isSimpleScalarToken, isSimpleScalarTokenTuple, isSimpleToken, isSimpleTokenTuple, isSocialMediaProfileUrl, isSocialMediaUrl, isSouthKoreanNewsUrl, isSpanishNewsUrl, isSpecificConstant, isSpeedMetric, isSpeedUom, isStaticTemplate, isString, isStringArray, isStringLiteral, isStringOrNumericArray, isSwissNewsUrl, isSymbol, isTailwindColor, isTailwindColorClass, isTailwindColorName, isTailwindColorTarget, isTailwindColorWithLuminosity, isTailwindColorWithLuminosityAndOpacity, isTailwindModifier, isTakeState, isTargetUrl, isTemperatureMetric, isTemperatureUom, isTemporalDate, isThenable, isThisMonth, isThisWeek, isThisYear, isThreeDigitMillisecond, isTimeMetric, isTimeUom, isTimezoneOffset, isToday, isTomorrow, isTrimable, isTrue, isTruthy, isTuple, isTurkishNewsUrl, isTwoDigitDate, isTwoDigitHour, isTwoDigitMinute, isTwoDigitMonth, isTwoDigitSecond, isTypeOf, isTypeSubtype, isTypeTuple, isTypedError, isUkNewsUrl, isUndefined, isUnset, isUom, isUomCategory, isUri, isUrl, isUrlPath, isUrlSource, isUsNewsUrl, isUsPhoneNumber, isUsStateAbbreviation, isUsStateName, isValidAtomicTag, isValidBlockTag, isValidComparisonParams, isValidHtml, isValidHtmlTag, isVariable, isVisa, isVisaMastercard, isVoltageMetric, isVoltageUom, isVolumeMetric, isVolumeUom, isWalgreensUrl, isWalmartUrl, isWayfairUrl, isWeakMap, isWholeFoodsUrl, isYesterday, isYouTubeCreatorUrl, isYouTubeFeedHistoryUrl, isYouTubeFeedUrl, isYouTubePlaylistUrl, isYouTubePlaylistsUrl, isYouTubeShareUrl, isYouTubeSubscriptionsUrl, isYouTubeTrendingUrl, isYouTubeUrl, isYouTubeVideoUrl, isYouTubeVideosInPlaylist, isZaraUrl, isZipCode, isZipCode5, isZipPlus4, joinWith, keysOf, keysWithError, kindLiteral, last, lastChar, lessThan, lessThanOrEqual, literal, logicalReturns, lookupCountryAlpha2, lookupCountryAlpha3, lookupCountryCode, lookupCountryName, lowercase, map, maybePhoneNumber, mergeObjects, mergeScalars, mergeTuples, mutable, nameLiteral, narrow, nbsp, nestedSplit, nesting, not, nullType, objectValues, omitKeys, optional, optionalOrNull, or, orNull, parseColor, parseDate, parseDateObject, parseIsoDate, parseNamedColor, parseNumericDate, parseRgbColor, pathJoin, pluralize, pop, record, regexToken, removePhoneCountryCode, removeTailwindModifiers, removeUrlProtocol, replace, replaceAll, replaceAllFromTo, result, retainAfter, retainAfterInclusive, retainChars, retainKeys, retainUntil, retainUntilInclusive, retainUntil__Nested, retainWhile, reverse, reverseLookup, rightWhitespace, setupSafeStringEncoding, shape, sharedKeys, shift, simpleContainerToken, simpleContainerType, simpleScalarToken, simpleScalarType, simpleToken, simpleType, slice, sortByKey, split, startsWith, startsWithTypeguard, stripAfter, stripAfterLast, stripBefore, stripChars, stripLeading, stripParenthesis, stripSurround, stripTrailing, stripUntil, stripWhile, surround, take, takeNumericCharacters, takeStart, takeStringToken, threeDigitMillisecond, toAllCaps, toCamelCase, toInteger, toIsoDateString, toJSON, toJson, toKebabCase, toKeyValue, toLowercase, toNumber, toNumericArray, toPascalCase, toSnakeCase, toString, toStringLiteral, toStringLiteral__Object, toStringLiteral__Tuple, toStringToken, trim, trimEnd, trimStart, truncate, tuple, twColor, twoDigitHour, twoDigitMinute, twoDigitSecond, typedError, unbrand, uncapitalize, undefinedType, unionize, unique, uniqueKeys, unknown, unset, urlMeta, usingLookup, validHtmlAttributes, valuesOf, weakMap, widen, withDefaults, withKeys, withValue, withoutKeys, withoutValue, youtubeEmbed, youtubeMeta };\n//# sourceMappingURL=index.js.map","//#region src/dictionary/MapTo.ts\n/**\n* utility function to take a fully-qualified _user_ config\n* and make it into a FinalizedMapConfig\n*/\nfunction toFinalizedConfig(config) {\n\treturn {\n\t\t...config,\n\t\tfinalized: true\n\t};\n}\nconst DEFAULT_ONE_TO_MANY_MAPPING = toFinalizedConfig({\n\tinput: \"req\",\n\toutput: \"opt\",\n\tcardinality: \"I -> O[]\"\n});\nconst DEFAULT_ONE_TO_ONE_MAPPING = toFinalizedConfig({\n\tinput: \"req\",\n\toutput: \"req\",\n\tcardinality: \"I -> O\"\n});\nconst DEFAULT_MANY_TO_ONE_MAPPING = toFinalizedConfig({\n\tinput: \"req\",\n\toutput: \"req\",\n\tcardinality: \"I[] -> O\"\n});\n/**\n* Expresses relationship between inputs/outputs:\n*/\nlet MapCardinality = /* @__PURE__ */ function(MapCardinality$1) {\n\t/** every input results in 0:M outputs */\n\tMapCardinality$1[\"OneToMany\"] = \"I -> O[]\";\n\t/** every input results in 0:1 outputs */\n\tMapCardinality$1[\"OneToOne\"] = \"I -> O\";\n\t/** every input is an array of type I and reduced to a single O */\n\tMapCardinality$1[\"ManyToOne\"] = \"I[] -> O\";\n\treturn MapCardinality$1;\n}({});\n\n//#endregion\n//#region src/literals/VueRef.ts\nconst Ref = Symbol(\"VueRef\");\n\n//#endregion\n//#region src/runtime-types/Dict.ts\nconst s = Symbol(\"Dict\");\n\n//#endregion\n//#region src/string-literals/character-sets/images/Exif.ts\nlet ExifCompression = /* @__PURE__ */ function(ExifCompression$1) {\n\tExifCompression$1[ExifCompression$1[\"Uncompressed\"] = 1] = \"Uncompressed\";\n\tExifCompression$1[ExifCompression$1[\"CCITT\"] = 2] = \"CCITT\";\n\tExifCompression$1[ExifCompression$1[\"T4Group3Fax\"] = 3] = \"T4Group3Fax\";\n\tExifCompression$1[ExifCompression$1[\"T6Group3Fax\"] = 4] = \"T6Group3Fax\";\n\tExifCompression$1[ExifCompression$1[\"LZW\"] = 5] = \"LZW\";\n\tExifCompression$1[ExifCompression$1[\"JpgOldStyle\"] = 6] = \"JpgOldStyle\";\n\tExifCompression$1[ExifCompression$1[\"Jpg\"] = 7] = \"Jpg\";\n\tExifCompression$1[ExifCompression$1[\"AdobeDeflate\"] = 8] = \"AdobeDeflate\";\n\tExifCompression$1[ExifCompression$1[\"JBigBw\"] = 9] = \"JBigBw\";\n\tExifCompression$1[ExifCompression$1[\"JBigColor\"] = 10] = \"JBigColor\";\n\tExifCompression$1[ExifCompression$1[\"JpegAlt\"] = 99] = \"JpegAlt\";\n\tExifCompression$1[ExifCompression$1[\"Kodak262\"] = 262] = \"Kodak262\";\n\tExifCompression$1[ExifCompression$1[\"Next\"] = 32766] = \"Next\";\n\tExifCompression$1[ExifCompression$1[\"SonyRawCompressed\"] = 32767] = \"SonyRawCompressed\";\n\tExifCompression$1[ExifCompression$1[\"PackedRaw\"] = 32769] = \"PackedRaw\";\n\tExifCompression$1[ExifCompression$1[\"SamsungSrwCompressed\"] = 32770] = \"SamsungSrwCompressed\";\n\tExifCompression$1[ExifCompression$1[\"CCIRLEW\"] = 32771] = \"CCIRLEW\";\n\tExifCompression$1[ExifCompression$1[\"SamsungSrwCompressed2\"] = 32772] = \"SamsungSrwCompressed2\";\n\tExifCompression$1[ExifCompression$1[\"Packbits\"] = 32773] = \"Packbits\";\n\tExifCompression$1[ExifCompression$1[\"Thunderscan\"] = 32809] = \"Thunderscan\";\n\tExifCompression$1[ExifCompression$1[\"KodakKdcCompressed\"] = 32867] = \"KodakKdcCompressed\";\n\tExifCompression$1[ExifCompression$1[\"IT8CTPAD\"] = 32895] = \"IT8CTPAD\";\n\tExifCompression$1[ExifCompression$1[\"IT8LW\"] = 32896] = \"IT8LW\";\n\tExifCompression$1[ExifCompression$1[\"IT8MP\"] = 32897] = \"IT8MP\";\n\tExifCompression$1[ExifCompression$1[\"IT8BL\"] = 32898] = \"IT8BL\";\n\tExifCompression$1[ExifCompression$1[\"PixarFilm\"] = 32908] = \"PixarFilm\";\n\tExifCompression$1[ExifCompression$1[\"PixarLog\"] = 32909] = \"PixarLog\";\n\tExifCompression$1[ExifCompression$1[\"Deflate\"] = 32946] = \"Deflate\";\n\tExifCompression$1[ExifCompression$1[\"DCS\"] = 32947] = \"DCS\";\n\tExifCompression$1[ExifCompression$1[\"AperioJpeg2000YCbCr\"] = 33003] = \"AperioJpeg2000YCbCr\";\n\tExifCompression$1[ExifCompression$1[\"AperioJpeg2000RGB\"] = 33005] = \"AperioJpeg2000RGB\";\n\tExifCompression$1[ExifCompression$1[\"JBig\"] = 34661] = \"JBig\";\n\tExifCompression$1[ExifCompression$1[\"SGILog\"] = 34676] = \"SGILog\";\n\tExifCompression$1[ExifCompression$1[\"SGILog24\"] = 34677] = \"SGILog24\";\n\tExifCompression$1[ExifCompression$1[\"Jpeg2000\"] = 34712] = \"Jpeg2000\";\n\tExifCompression$1[ExifCompression$1[\"NikonNEFCompressed\"] = 34713] = \"NikonNEFCompressed\";\n\tExifCompression$1[ExifCompression$1[\"JBig2TiffFx\"] = 34715] = \"JBig2TiffFx\";\n\tExifCompression$1[ExifCompression$1[\"MicrosoftBinaryLevelCodec\"] = 34718] = \"MicrosoftBinaryLevelCodec\";\n\tExifCompression$1[ExifCompression$1[\"MicrosoftProgressiveTransformCodec\"] = 34719] = \"MicrosoftProgressiveTransformCodec\";\n\tExifCompression$1[ExifCompression$1[\"MicrosoftVector\"] = 34720] = \"MicrosoftVector\";\n\tExifCompression$1[ExifCompression$1[\"ESRCLerc\"] = 34887] = \"ESRCLerc\";\n\tExifCompression$1[ExifCompression$1[\"LossyJpeg\"] = 34892] = \"LossyJpeg\";\n\tExifCompression$1[ExifCompression$1[\"LZMA2\"] = 34925] = \"LZMA2\";\n\tExifCompression$1[ExifCompression$1[\"Zstd\"] = 34926] = \"Zstd\";\n\tExifCompression$1[ExifCompression$1[\"WepP\"] = 34927] = \"WepP\";\n\tExifCompression$1[ExifCompression$1[\"PNG\"] = 34933] = \"PNG\";\n\tExifCompression$1[ExifCompression$1[\"JpegXR\"] = 34934] = \"JpegXR\";\n\tExifCompression$1[ExifCompression$1[\"KodakDCRCompressed\"] = 65e3] = \"KodakDCRCompressed\";\n\tExifCompression$1[ExifCompression$1[\"PentaxPEFCompressed\"] = 65535] = \"PentaxPEFCompressed\";\n\treturn ExifCompression$1;\n}({});\nlet ExifLightSource = /* @__PURE__ */ function(ExifLightSource$1) {\n\tExifLightSource$1[ExifLightSource$1[\"Unknown\"] = 0] = \"Unknown\";\n\tExifLightSource$1[ExifLightSource$1[\"Daylight\"] = 1] = \"Daylight\";\n\tExifLightSource$1[ExifLightSource$1[\"Fluorescent\"] = 2] = \"Fluorescent\";\n\tExifLightSource$1[ExifLightSource$1[\"Tungsten\"] = 3] = \"Tungsten\";\n\tExifLightSource$1[ExifLightSource$1[\"Flash\"] = 4] = \"Flash\";\n\tExifLightSource$1[ExifLightSource$1[\"FineWeather\"] = 5] = \"FineWeather\";\n\tExifLightSource$1[ExifLightSource$1[\"Cloudy\"] = 6] = \"Cloudy\";\n\tExifLightSource$1[ExifLightSource$1[\"Shade\"] = 7] = \"Shade\";\n\tExifLightSource$1[ExifLightSource$1[\"DaylightFluorescent\"] = 8] = \"DaylightFluorescent\";\n\tExifLightSource$1[ExifLightSource$1[\"DayWhiteFluorescent\"] = 9] = \"DayWhiteFluorescent\";\n\tExifLightSource$1[ExifLightSource$1[\"CoolWhiteFluorescent\"] = 10] = \"CoolWhiteFluorescent\";\n\tExifLightSource$1[ExifLightSource$1[\"WhiteFluorescent\"] = 11] = \"WhiteFluorescent\";\n\tExifLightSource$1[ExifLightSource$1[\"WarmWhiteFluorescent\"] = 12] = \"WarmWhiteFluorescent\";\n\tExifLightSource$1[ExifLightSource$1[\"StandardLightA\"] = 13] = \"StandardLightA\";\n\tExifLightSource$1[ExifLightSource$1[\"StandardLightB\"] = 14] = \"StandardLightB\";\n\tExifLightSource$1[ExifLightSource$1[\"StandardLightC\"] = 15] = \"StandardLightC\";\n\tExifLightSource$1[ExifLightSource$1[\"D55\"] = 16] = \"D55\";\n\tExifLightSource$1[ExifLightSource$1[\"D65\"] = 17] = \"D65\";\n\tExifLightSource$1[ExifLightSource$1[\"D75\"] = 18] = \"D75\";\n\tExifLightSource$1[ExifLightSource$1[\"D50\"] = 19] = \"D50\";\n\tExifLightSource$1[ExifLightSource$1[\"ISOStudioTungsten\"] = 20] = \"ISOStudioTungsten\";\n\tExifLightSource$1[ExifLightSource$1[\"Other\"] = 255] = \"Other\";\n\treturn ExifLightSource$1;\n}({});\nlet ExifFlashValues = /* @__PURE__ */ function(ExifFlashValues$1) {\n\tExifFlashValues$1[ExifFlashValues$1[\"NoFlash\"] = 0] = \"NoFlash\";\n\tExifFlashValues$1[ExifFlashValues$1[\"Fired\"] = 1] = \"Fired\";\n\tExifFlashValues$1[ExifFlashValues$1[\"FiredReturnNotDetected\"] = 5] = \"FiredReturnNotDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"FiredReturnDetected\"] = 7] = \"FiredReturnDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OnDidNotFire\"] = 8] = \"OnDidNotFire\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OnFired\"] = 9] = \"OnFired\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OnReturnNotDetected\"] = 13] = \"OnReturnNotDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OnReturnDetected\"] = 15] = \"OnReturnDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OffDidNotFire\"] = 16] = \"OffDidNotFire\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OffDidNotFireReturnNotDetected\"] = 20] = \"OffDidNotFireReturnNotDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"AutoDidNotFire\"] = 24] = \"AutoDidNotFire\";\n\tExifFlashValues$1[ExifFlashValues$1[\"AutoFired\"] = 25] = \"AutoFired\";\n\tExifFlashValues$1[ExifFlashValues$1[\"AutoFiredReturnNotDetected\"] = 29] = \"AutoFiredReturnNotDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"AutoFiredReturnDetected\"] = 31] = \"AutoFiredReturnDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"NoFlashFunction\"] = 32] = \"NoFlashFunction\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OffNoFlashFunction\"] = 48] = \"OffNoFlashFunction\";\n\tExifFlashValues$1[ExifFlashValues$1[\"FiredRedEyeReduction\"] = 65] = \"FiredRedEyeReduction\";\n\tExifFlashValues$1[ExifFlashValues$1[\"FiredRedEyeReductionReturnNotDetected\"] = 69] = \"FiredRedEyeReductionReturnNotDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"FiredRedEyeReductionReturnDetected\"] = 71] = \"FiredRedEyeReductionReturnDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OnRedEyeReduction\"] = 73] = \"OnRedEyeReduction\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OnRedEyeReductionReturnNotDetected\"] = 77] = \"OnRedEyeReductionReturnNotDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OnRedEyeReductionReturnDetected\"] = 79] = \"OnRedEyeReductionReturnDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"OffRedEyeReduction\"] = 80] = \"OffRedEyeReduction\";\n\tExifFlashValues$1[ExifFlashValues$1[\"AutoDidNotFireRedEyeReduction\"] = 88] = \"AutoDidNotFireRedEyeReduction\";\n\tExifFlashValues$1[ExifFlashValues$1[\"AutoFiredRedEyeReduction\"] = 89] = \"AutoFiredRedEyeReduction\";\n\tExifFlashValues$1[ExifFlashValues$1[\"AutoFiredRedEyeReductionNotDetected\"] = 96] = \"AutoFiredRedEyeReductionNotDetected\";\n\tExifFlashValues$1[ExifFlashValues$1[\"AutoFiredRedEyeReductionDetected\"] = 93] = \"AutoFiredRedEyeReductionDetected\";\n\treturn ExifFlashValues$1;\n}({});\nlet ExifPreviewColorSpace = /* @__PURE__ */ function(ExifPreviewColorSpace$1) {\n\tExifPreviewColorSpace$1[ExifPreviewColorSpace$1[\"Unknown\"] = 0] = \"Unknown\";\n\tExifPreviewColorSpace$1[ExifPreviewColorSpace$1[\"GrayGamma22\"] = 1] = \"GrayGamma22\";\n\tExifPreviewColorSpace$1[ExifPreviewColorSpace$1[\"sRGB\"] = 2] = \"sRGB\";\n\tExifPreviewColorSpace$1[ExifPreviewColorSpace$1[\"AdobeRGB\"] = 3] = \"AdobeRGB\";\n\tExifPreviewColorSpace$1[ExifPreviewColorSpace$1[\"ProPhotoRGB\"] = 4] = \"ProPhotoRGB\";\n\treturn ExifPreviewColorSpace$1;\n}({});\nlet ExifEmbedPolicy = /* @__PURE__ */ function(ExifEmbedPolicy$1) {\n\tExifEmbedPolicy$1[ExifEmbedPolicy$1[\"AllowCopying\"] = 0] = \"AllowCopying\";\n\tExifEmbedPolicy$1[ExifEmbedPolicy$1[\"EmbedIfUsed\"] = 1] = \"EmbedIfUsed\";\n\tExifEmbedPolicy$1[ExifEmbedPolicy$1[\"NeverEmbed\"] = 2] = \"NeverEmbed\";\n\tExifEmbedPolicy$1[ExifEmbedPolicy$1[\"NoRestrictions\"] = 3] = \"NoRestrictions\";\n\treturn ExifEmbedPolicy$1;\n}({});\nlet ExifSubjectDistance = /* @__PURE__ */ function(ExifSubjectDistance$1) {\n\tExifSubjectDistance$1[ExifSubjectDistance$1[\"Unknown\"] = 0] = \"Unknown\";\n\tExifSubjectDistance$1[ExifSubjectDistance$1[\"Macro\"] = 1] = \"Macro\";\n\tExifSubjectDistance$1[ExifSubjectDistance$1[\"Close\"] = 2] = \"Close\";\n\tExifSubjectDistance$1[ExifSubjectDistance$1[\"Distant\"] = 3] = \"Distant\";\n\treturn ExifSubjectDistance$1;\n}({});\nlet ExifSharpness = /* @__PURE__ */ function(ExifSharpness$1) {\n\tExifSharpness$1[ExifSharpness$1[\"Normal\"] = 0] = \"Normal\";\n\tExifSharpness$1[ExifSharpness$1[\"Soft\"] = 1] = \"Soft\";\n\tExifSharpness$1[ExifSharpness$1[\"Hard\"] = 2] = \"Hard\";\n\treturn ExifSharpness$1;\n}({});\nlet ExifSceneCaptureType = /* @__PURE__ */ function(ExifSceneCaptureType$1) {\n\tExifSceneCaptureType$1[ExifSceneCaptureType$1[\"Standard\"] = 0] = \"Standard\";\n\tExifSceneCaptureType$1[ExifSceneCaptureType$1[\"Landscape\"] = 1] = \"Landscape\";\n\tExifSceneCaptureType$1[ExifSceneCaptureType$1[\"Portrait\"] = 2] = \"Portrait\";\n\tExifSceneCaptureType$1[ExifSceneCaptureType$1[\"Night\"] = 3] = \"Night\";\n\tExifSceneCaptureType$1[ExifSceneCaptureType$1[\"Other\"] = 4] = \"Other\";\n\treturn ExifSceneCaptureType$1;\n}({});\nlet ExifGainControl = /* @__PURE__ */ function(ExifGainControl$1) {\n\tExifGainControl$1[ExifGainControl$1[\"None\"] = 0] = \"None\";\n\tExifGainControl$1[ExifGainControl$1[\"LowGainUp\"] = 1] = \"LowGainUp\";\n\tExifGainControl$1[ExifGainControl$1[\"HighGainUp\"] = 2] = \"HighGainUp\";\n\tExifGainControl$1[ExifGainControl$1[\"LowGainDown\"] = 3] = \"LowGainDown\";\n\tExifGainControl$1[ExifGainControl$1[\"HighGainDown\"] = 4] = \"HighGainDown\";\n\treturn ExifGainControl$1;\n}({});\nlet ExifContrast = /* @__PURE__ */ function(ExifContrast$1) {\n\tExifContrast$1[ExifContrast$1[\"Normal\"] = 0] = \"Normal\";\n\tExifContrast$1[ExifContrast$1[\"Low\"] = 1] = \"Low\";\n\tExifContrast$1[ExifContrast$1[\"High\"] = 2] = \"High\";\n\treturn ExifContrast$1;\n}({});\nlet ExifSaturation = /* @__PURE__ */ function(ExifSaturation$1) {\n\tExifSaturation$1[ExifSaturation$1[\"Normal\"] = 0] = \"Normal\";\n\tExifSaturation$1[ExifSaturation$1[\"Low\"] = 1] = \"Low\";\n\tExifSaturation$1[ExifSaturation$1[\"High\"] = 2] = \"High\";\n\treturn ExifSaturation$1;\n}({});\n\n//#endregion\nexport { DEFAULT_MANY_TO_ONE_MAPPING, DEFAULT_ONE_TO_MANY_MAPPING, DEFAULT_ONE_TO_ONE_MAPPING, ExifCompression, ExifContrast, ExifEmbedPolicy, ExifFlashValues, ExifGainControl, ExifLightSource, ExifPreviewColorSpace, ExifSaturation, ExifSceneCaptureType, ExifSharpness, ExifSubjectDistance, MapCardinality };\n//# sourceMappingURL=index.js.map"],"mappings":";;;;;AAIA,MAAM,oBAAoB;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,oBAAoB;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,cAAc,CAAC,GAAG,mBAAmB,GAAG,iBAAkB;AAIhE,MAAMA,YAAU;AAChB,MAAM,eAAe;EACnB,yBAAyBA,SAAO,kBAAkBA,SAAO;EACzD,yBAAyBA,SAAO,oBAAoBA,SAAO;EAC3D,yBAAyBA,SAAO,oBAAoBA,SAAO;EAC3D,yBAAyBA,SAAO,oBAAoBA,SAAO;EAC3D,oDAAoDA,SAAO;AAC5D;AAID,MAAM,cAAc,OAAO,aAAa;AACxC,MAAM,qBAAqB,OAAO,qBAAqB;AACvD,MAAM,UAAU,OAAO,UAAU;AAIjC,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;AACA;AAID,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,mBAAmB;CACxB,WAAW;CACX,cAAc;CACd,MAAM;CACN,YAAY;CACZ,OAAO;CACP,OAAO;CACP,QAAQ;CACR,OAAO;CACP,gBAAgB;CAChB,MAAM;CACN,YAAY;CACZ,OAAO;CACP,WAAW;CACX,WAAW;CACX,YAAY;CACZ,WAAW;CACX,OAAO;CACP,gBAAgB;CAChB,UAAU;CACV,SAAS;CACT,MAAM;CACN,UAAU;CACV,UAAU;CACV,eAAe;CACf,UAAU;CACV,WAAW;CACX,UAAU;CACV,WAAW;CACX,aAAa;CACb,gBAAgB;CAChB,YAAY;CACZ,YAAY;CACZ,SAAS;CACT,YAAY;CACZ,cAAc;CACd,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,YAAY;CACZ,UAAU;CACV,aAAa;CACb,SAAS;CACT,SAAS;CACT,YAAY;CACZ,WAAW;CACX,aAAa;CACb,aAAa;CACb,SAAS;CACT,WAAW;CACX,YAAY;CACZ,MAAM;CACN,WAAW;CACX,MAAM;CACN,OAAO;CACP,aAAa;CACb,MAAM;CACN,UAAU;CACV,SAAS;CACT,WAAW;CACX,QAAQ;CACR,OAAO;CACP,OAAO;CACP,UAAU;CACV,eAAe;CACf,WAAW;CACX,cAAc;CACd,WAAW;CACX,YAAY;CACZ,WAAW;CACX,sBAAsB;CACtB,WAAW;CACX,YAAY;CACZ,WAAW;CACX,WAAW;CACX,aAAa;CACb,eAAe;CACf,cAAc;CACd,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB,aAAa;CACb,MAAM;CACN,WAAW;CACX,OAAO;CACP,SAAS;CACT,QAAQ;CACR,kBAAkB;CAClB,YAAY;CACZ,cAAc;CACd,cAAc;CACd,gBAAgB;CAChB,iBAAiB;CACjB,mBAAmB;CACnB,iBAAiB;CACjB,iBAAiB;CACjB,cAAc;CACd,WAAW;CACX,WAAW;CACX,UAAU;CACV,aAAa;CACb,MAAM;CACN,SAAS;CACT,OAAO;CACP,WAAW;CACX,QAAQ;CACR,WAAW;CACX,QAAQ;CACR,eAAe;CACf,WAAW;CACX,eAAe;CACf,eAAe;CACf,YAAY;CACZ,WAAW;CACX,MAAM;CACN,MAAM;CACN,MAAM;CACN,YAAY;CACZ,QAAQ;CACR,eAAe;CACf,KAAK;CACL,WAAW;CACX,WAAW;CACX,aAAa;CACb,QAAQ;CACR,YAAY;CACZ,UAAU;CACV,UAAU;CACV,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,WAAW;CACX,WAAW;CACX,WAAW;CACX,MAAM;CACN,aAAa;CACb,WAAW;CACX,KAAK;CACL,MAAM;CACN,SAAS;CACT,QAAQ;CACR,WAAW;CACX,QAAQ;CACR,OAAO;CACP,OAAO;CACP,YAAY;CACZ,QAAQ;CACR,aAAa;AACb;;;;;;AASD,SAASC,mBAAiB,MAAM;AAC/B,QAAO;EACN,OAAO;EACP;CACA;AACD;;;;;;;;;AASD,MAAM,QAAQ,mBAAiB,QAAQ;AAIvC,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AAID,MAAM,wBAAwB;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AAID,MAAM,aAAa;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;AASD,MAAM,aAAa;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;AAMD,MAAM,aAAa;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,oBAAoB;CACzB,WAAW;EACV,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,YAAY;EACX,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,SAAS;EACR,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,SAAS;EACR,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,QAAQ;EACP,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,QAAQ;EACP,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,UAAU;EACT,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,aAAa;EACZ,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,WAAW;EACV,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,YAAY;EACX,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,YAAY;EACX,QAAQ;EACR,KAAK;EACL,aAAa;CACb;AACD;AACD,MAAM,sBAAsB;CAC3B,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;AACD;;AAED,MAAM,UAAU;CACf;CACA;CACA;CACA;AACA;;;;;AAKD,MAAM,yBAAyB;CAC9B,QAAQ;EACP,UAAU;GACT;GACA;GACA;EACA;EACD,UAAU;GACT;GACA;GACA;EACA;CACD;CACD,QAAQ;EACP,UAAU;GACT;GACA;GACA;EACA;EACD,UAAU;GACT;GACA;GACA;EACA;CACD;CACD,QAAQ;EACP,UAAU;GACT;GACA;GACA;EACA;EACD,UAAU;GACT;GACA;GACA;EACA;CACD;CACD,MAAM;EACL,UAAU;GACT;GACA;GACA;EACA;EACD,UAAU;GACT;GACA;GACA;EACA;CACD;AACD;AACD,MAAM,yBAAyB;CAC9B,UAAU;EACT,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACP;CACD,UAAU;EACT,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACP;AACD;AACD,MAAM,kBAAkB;CACvB;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,WAAW;CAChB;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,qBAAqB,CAAC,OAAO,KAAM;AACzC,MAAM,cAAc,CAAC,YAAY,QAAS;AAC1C,MAAM,oBAAoB;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,oBAAoB;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,YAAY;CACjB;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,cAAc;CACnB;CACA;CACA;CACA;AACA;;;;AAID,MAAM,cAAc;CACnB;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAOD,MAAM,iBAAiB;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,iBAAiB;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,iBAAiB;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAOD,MAAM,iBAAiB;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,iBAAiB;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,qBAAqB;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AAID,MAAM,UAAU;CACf;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI,CAAC,OAAQ;CACb;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI,CAAC,KAAM;CACX;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI,CAAC,KAAM;CACX;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI,CAAC,KAAM;CACX;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;CACD;EACC,MAAM;EACN,MAAM;EACN,SAAS;EACT,IAAI;GACH;GACA;GACA;EACA;CACD;AACD;;;;;;;AAUD,MAAM,eAAe;CACpB;CACA;CACA;CACA;CACA;MACK;CACL;AACA;;;;;;AASD,MAAM,SAAS;CACd,IAAI;CACJ,KAAK;AACL;;;;;;AAMD,MAAM,SAAS;CACd,MAAM;CACN,MAAM;AACN;AAID,MAAM,aAAa,CAAC,YAAY,UAAW;;;;AAI3C,MAAM,aAAa;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,yBAAyB;CAC9B;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;AACD;;;;AAID,MAAM,4BAA4B;CACjC;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;AACD;;;;;;;AAOD,MAAM,kBAAkB,CAAC,GAAG,wBAAwB,GAAG,yBAA0B;;;;;AAKjF,MAAM,eAAe;CACpB,GAAG;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;EACA;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;EACA;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;EACA;EACA;EACA;EACA;CACA;CACD,GAAG;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACA;AACD;AAID,MAAM,kBAAkB;CACvB,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,OAAO;CACP,SAAS;CACT,WAAW;CACX,MAAM;CACN,QAAQ;CACR,QAAQ;CACR,OAAO;CACP,QAAQ;CACR,KAAK;CACL,SAAS;CACT,KAAK;CACL,OAAO;AACP;AACD,MAAM,yBAAyB;CAC9B,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;AACD,MAAM,qBAAqB;CAC1B,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACL,KAAK;CACL,KAAK;AACL;AACD,MAAM,mBAAmB;CACxB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;AACD,MAAM,yBAAyB;CAC9B,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;AACD,MAAM,kBAAkB;CACvB,GAAG;CACH,GAAG;CACH,GAAG;AACH;AACD,MAAM,mBAAmB;;;;AAOzB,MAAM,kBAAkB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;;AAUD,MAAM,aAAa;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AAID,MAAM,sBAAsB;CAC3B;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAC,MAAO;CACnB;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAE;CACb;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAE;CACb;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAE;CACb;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAE;CACb;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAE;CACb;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAE;CACb;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAE;CACb;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAE;CACb;CACD;EACC,KAAK;EACL,WAAW;EACX,WAAW,CAAC,KAAM;CAClB;AACD;AAID,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,oBAAoB;EACxB;EACA;EACA;AACD;AACD,MAAM,sBAAsB;EAC1B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACD;;;;;AAQD,MAAM,uBAAuB;CAC5B;CACA;CACA;AACA;;;;AAOD,MAAM,YAAY;CACjB;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAA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AAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,sBAAsB;CAC3B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,uBAAuB;CAC5B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,8BAA8B;CACnC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,wBAAwB;CAC7B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,6BAA6B;CAClC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,0BAA0B;CAC/B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,wBAAwB;CAC7B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,sBAAsB;CAC3B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,uBAAuB;CAC5B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,2BAA2B;CAChC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,yBAAyB;CAC9B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,yBAAyB;CAC9B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,4BAA4B;CACjC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,4BAA4B;CACjC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAM,sBAAsB;CAC3B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;E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ACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;E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AC,4BAA4B,4BAA6B;AAIlF,MAAM,wBAAwB;GAC3B,KAAK;GACL,KAAK;GACL,MAAM;AACR;AACD,MAAM,4BAA4B;CACjC,KAAK;CACL,KAAK;CACL,MAAM;CACN,MAAM;AACN;AACD,MAAM,0BAA0B;CAC/B,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;AACL;AACD,MAAM,qBAAqB;CAC1B,GAAG;CACH,GAAG;CACH,GAAG;AACH;AAID,MAAM,iBAAiB;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,kBAAkB;AAIxB,MAAM,qBAAqB;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,uBAAuB;CAC5B;CACA;EACC;EACA;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,2BAA2B;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;AACA;AACD,MAAM,sBAAsB,EAAE,aAAc;AAC5C,MAAM,kBAAkB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,oBAAoB;CACzB,GAAG;CACH;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,qBAAqB;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,sBAAsB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;EACC;EACA;EACA;AACD;AACD,MAAM,oBAAoB;CACzB;CACA;CACA;AACA;AACD,MAAM,oBAAoB,CAAC,OAAO,YAAa;AAC/C,MAAM,0BAA0B;CAC/B,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;;;;;;;;AAQD,MAAM,gBAAgB;CACrB,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C,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;AAChC,MAAM,gBAAgB,UAAU;;;;;;AAMhC,MAAM,mBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,oBAAoB;CACzB;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,qBAAqB;CAC1B;CACA;CACA;CACA;AACA;AACD,MAAM,oBAAoB;CACzB;CACA;CACA;CACA;EACC;AACD;;;;;AAKD,MAAM,sBAAsB;CAC3B;CACA;CACA;CACA;CACA;AACA;;;;;AAKD,MAAM,eAAe;CACpB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;AAID,MAAM,yBAAyB;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,0BAA0B;CAC/B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,6BAA6B;CAClC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,uBAAuB;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,2BAA2B;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,4BAA4B;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,yBAAyB;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CA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,CAAC;CAC3H,UAAU,QAAM,CAAC,MAAM,EAAE,OAAO,EAAE,kEAAkE,CAAC,MAAM,EAAE,SAAS,CAAC;CACvH,cAAc,QAAM,CAAC,MAAM,EAAE,OAAO,EAAE,kEAAkE,CAAC,MAAM,EAAE,eAAe,CAAC;AACjI;;;;;;AASD,MAAM,UAAU;CACf;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AAID,MAAM,mBAAmB,CAAC,aAAa,MAAO;AAC9C,MAAM,qBAAqB;CAC1B;CACA;CACA;CACA;AACA;AACD,MAAM,kBAAkB;CACvB;CACA;CACA;AACA;AACD,MAAM,8BAA8B;CACnC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,4BAA4B;CACjC;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAM,aAAa;CAClB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;;;;AAOD,MAAM,aAAa;CAClB;CACA;CACA;CACA;CACA;AACA;;;;;AAKD,MAAM,gBAAgB,CAAC,UAAU,QAAS;AAC1C,MAAM,UAAU;CACf;CACA;CACA;CACA;AACA;;;;;AAKD,MAAM,eAAe,CAAC,MAAM,KAAM;;;;;AAKlC,MAAM,gBAAgB;CACrB;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,mBAAmB;CACxB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;AACD,MAAM,WAAW;AACjB,MAAM,UAAU;AAChB,MAAM,eAAe;AAIrB,MAAM,0BAA0B,CAAC,cAAc,YAAa;AAC5D,MAAM,8BAA8B;CACnC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,iCAAiC;CACtC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAM,gCAAgC,CAAC,cAAc,QAAS;AAI9D,MAAM,YAAY;AAClB,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,uBAAuB;;;;;;;;;;;AAW7B,MAAM,kBAAkB;CACvB,UAAU;EACT;EACA,CAAE;EACF;CACA;CACD,SAAS;EACR;EACA,CAAE;EACF;CACA;CACD,UAAU;EACT;EACA,CAAE;EACF;CACA;CACD,WAAW;EACV;EACA,CAAE;EACF;CACA;CACD,MAAM;EACL;EACA,CAAE;EACF;CACA;CACD,WAAW;EACV;EACA,CAAE;EACF;CACA;CACD,SAAS;EACR;EACA,CAAE;EACF;CACA;CACD,YAAY;EACX;EACA,CAAE;EACF;CACA;CACD,cAAc;EACb;EACA,CAAE;EACF;CACA;CACD,SAAS;EACR;EACA,CAAE;EACF;CACA;CACD,WAAW;EACV;EACA,CAAE;EACF;CACA;CACD,aAAa;EACZ;EACA,CAAE;EACF;CACA;CACD,aAAa;EACZ;EACA,CAAE;EACF;CACA;CACD,cAAc;EACb;EACA,CAAE;EACF;CACA;CACD,aAAa;EACZ;EACA,CAAE;EACF;CACA;CACD,cAAc;EACb;EACA,CAAC,QAAS;EACV;CACA;CACD,eAAe;EACd;EACA,CAAC,QAAS;EACV;CACA;CACD,eAAe;EACd;EACA,CAAC,QAAS;EACV;CACA;CACD,gBAAgB;EACf;EACA,CAAC,QAAS;EACV;CACA;CACD,UAAU;EACT;EACA,CAAE;EACF;CACA;CACD,UAAU;EACT;EACA,CAAC,UAAU,QAAS;EACpB;CACA;CACD,SAAS;EACR;EACA,CAAC,SAAU;EACX;CACA;CACD,QAAQ;EACP;EACA,CAAC,SAAU;EACX;CACA;CACD,WAAW;EACV;EACA,CAAE;EACF;CACA;CACD,WAAW;EACV;EACA,CAAE;EACF;CACA;AACD;;;;;;;;;;;;;;AC77QD,SAAS,aAAa,KAAK,eAAe,OAAO;AAChD,QAAO,aAAa,IAAI,IAAI,WAAW,IAAI,GAAG,SAAS,IAAI,GAAG,IAAI,MAAM,GAAG,WAAW,IAAI,GAAG,eAAe,KAAK,GAAG,MAAM,MAAM,WAAW,IAAI,GAAG,eAAe,KAAK,GAAG,MAAM;AAC/K;;;;;;;;;;;;;;;;;AAoBD,SAAS,WAAW,GAAG,MAAM;AAC5B,QAAO,CAAC,QAAQ;AACf,SAAO,KAAK,SAAS,IAAI;CACzB;AACD;;;;;;AASD,SAAS,QAAQ,KAAK,WAAW,cAAc;AAC9C,QAAO,MAAM,QAAQ,IAAI,GAAG,UAAU,IAAI,GAAG,aAAa,IAAI;AAC9D;AAID,SAAS,iBAAiB;AACzB,QAAO,CAAC,WAAW,iBAAiB;AACnC,SAAO,CAAC,QAAQ,QAAQ,KAAK,WAAW,aAAa;CACrD;AACD;;;;;;;;;;;;AAeD,SAAS,UAAU,KAAK,aAAa,YAAY;AAChD,QAAO,UAAU,IAAI,GAAG,YAAY,IAAI,GAAG,WAAW,IAAI;AAC1D;;;;AAOD,MAAME,sBAAoB;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAMC,sBAAoB;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAMC,gBAAc,CAAC,GAAGF,qBAAmB,GAAGC,mBAAkB;AAIhE,MAAM,UAAU;AAChB,MAAME,iBAAe;EACnB,yBAAyB,OAAO,kBAAkB,OAAO;EACzD,yBAAyB,OAAO,oBAAoB,OAAO;EAC3D,yBAAyB,OAAO,oBAAoB,OAAO;EAC3D,yBAAyB,OAAO,oBAAoB,OAAO;EAC3D,oDAAoD,OAAO;AAC5D;AAID,MAAMC,gBAAc,OAAO,aAAa;AACxC,MAAMC,uBAAqB,OAAO,qBAAqB;AACvD,MAAMC,YAAU,OAAO,UAAU;AAIjC,MAAMC,qBAAmB;CACxB;CACA;CACA;CACA;AACA;AAID,MAAMC,qBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,qBAAmB;CACxB,WAAW;CACX,cAAc;CACd,MAAM;CACN,YAAY;CACZ,OAAO;CACP,OAAO;CACP,QAAQ;CACR,OAAO;CACP,gBAAgB;CAChB,MAAM;CACN,YAAY;CACZ,OAAO;CACP,WAAW;CACX,WAAW;CACX,YAAY;CACZ,WAAW;CACX,OAAO;CACP,gBAAgB;CAChB,UAAU;CACV,SAAS;CACT,MAAM;CACN,UAAU;CACV,UAAU;CACV,eAAe;CACf,UAAU;CACV,WAAW;CACX,UAAU;CACV,WAAW;CACX,aAAa;CACb,gBAAgB;CAChB,YAAY;CACZ,YAAY;CACZ,SAAS;CACT,YAAY;CACZ,cAAc;CACd,eAAe;CACf,eAAe;CACf,eAAe;CACf,eAAe;CACf,YAAY;CACZ,UAAU;CACV,aAAa;CACb,SAAS;CACT,SAAS;CACT,YAAY;CACZ,WAAW;CACX,aAAa;CACb,aAAa;CACb,SAAS;CACT,WAAW;CACX,YAAY;CACZ,MAAM;CACN,WAAW;CACX,MAAM;CACN,OAAO;CACP,aAAa;CACb,MAAM;CACN,UAAU;CACV,SAAS;CACT,WAAW;CACX,QAAQ;CACR,OAAO;CACP,OAAO;CACP,UAAU;CACV,eAAe;CACf,WAAW;CACX,cAAc;CACd,WAAW;CACX,YAAY;CACZ,WAAW;CACX,sBAAsB;CACtB,WAAW;CACX,YAAY;CACZ,WAAW;CACX,WAAW;CACX,aAAa;CACb,eAAe;CACf,cAAc;CACd,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB,aAAa;CACb,MAAM;CACN,WAAW;CACX,OAAO;CACP,SAAS;CACT,QAAQ;CACR,kBAAkB;CAClB,YAAY;CACZ,cAAc;CACd,cAAc;CACd,gBAAgB;CAChB,iBAAiB;CACjB,mBAAmB;CACnB,iBAAiB;CACjB,iBAAiB;CACjB,cAAc;CACd,WAAW;CACX,WAAW;CACX,UAAU;CACV,aAAa;CACb,MAAM;CACN,SAAS;CACT,OAAO;CACP,WAAW;CACX,QAAQ;CACR,WAAW;CACX,QAAQ;CACR,eAAe;CACf,WAAW;CACX,eAAe;CACf,eAAe;CACf,YAAY;CACZ,WAAW;CACX,MAAM;CACN,MAAM;CACN,MAAM;CACN,YAAY;CACZ,QAAQ;CACR,eAAe;CACf,KAAK;CACL,WAAW;CACX,WAAW;CACX,aAAa;CACb,QAAQ;CACR,YAAY;CACZ,UAAU;CACV,UAAU;CACV,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,WAAW;CACX,WAAW;CACX,WAAW;CACX,MAAM;CACN,aAAa;CACb,WAAW;CACX,KAAK;CACL,MAAM;CACN,SAAS;CACT,QAAQ;CACR,WAAW;CACX,QAAQ;CACR,OAAO;CACP,OAAO;CACP,YAAY;CACZ,QAAQ;CACR,aAAa;AACb;;;;;;AASD,SAAS,iBAAiB,MAAM;AAC/B,QAAO;EACN,OAAO;EACP;CACA;AACD;;;;;;;;;AASD,MAAMC,UAAQ,iBAAiB,QAAQ;AAIvC,MAAMC,0BAAwB;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;AASD,MAAMC,eAAa;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;AAMD,MAAMC,eAAa;CAClB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,sBAAoB;CACzB,WAAW;EACV,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,YAAY;EACX,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,SAAS;EACR,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,SAAS;EACR,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,QAAQ;EACP,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,QAAQ;EACP,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,UAAU;EACT,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,aAAa;EACZ,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,WAAW;EACV,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,YAAY;EACX,QAAQ;EACR,KAAK;EACL,aAAa;CACb;CACD,YAAY;EACX,QAAQ;EACR,KAAK;EACL,aAAa;CACb;AACD;AACD,MAAMC,wBAAsB;CAC3B,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;CACD,OAAO;EACN,MAAM;EACN,KAAK;EACL,aAAa;CACb;AACD;AACD,MAAMC,2BAAyB;CAC9B,UAAU;EACT,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACP;CACD,UAAU;EACT,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;EACP,OAAO;CACP;AACD;AACD,MAAMC,cAAY;CACjB;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAMC,gBAAc;CACnB;CACA;CACA;CACA;AACA;;;;AAID,MAAMC,gBAAc;CACnB;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAOD,MAAMC,uBAAqB;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;;AAUD,MAAMC,iBAAe;CACpB;CACA;CACA;CACA;CACA;MACK;CACL;AACA;;;;AAOD,MAAMC,2BAAyB;CAC9B;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;AACD;;;;AAID,MAAMC,8BAA4B;CACjC;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;CACR;AACD;;;;;;;AAOD,MAAMC,oBAAkB,CAAC,GAAGF,0BAAwB,GAAGC,2BAA0B;AAIjF,MAAME,2BAAyB;CAC9B,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;AACD,MAAMC,uBAAqB;CAC1B,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACL,KAAK;CACL,KAAK;AACL;AACD,MAAMC,2BAAyB;CAC9B,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;AACH;AACD,MAAMC,oBAAkB;CACvB,GAAGH;CACH,GAAGE;CACH,GAAGD;AACH;;;;AAOD,MAAMG,oBAAkB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAID,MAAMC,qBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;AAOD,MAAMC,cAAY;CACjB;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;CACD;EACC,MAAM;EACN,QAAQ;EACR,aAAa;EACb,QAAQ;CACR;AACD;;;;;;AASD,SAAS,iBAAiB,MAAM;AAC/B,QAAO;EACN,OAAO;EACP;CACA;AACD;AACD,MAAMC,WAAS,iBAAiB,SAAS;AAIzC,MAAMC,4BAA0B;CAC/B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,wBAAsB;CAC3B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,yBAAuB;CAC5B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,gCAA8B;CACnC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,0BAAwB;CAC7B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,+BAA6B;CAClC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,4BAA0B;CAC/B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,0BAAwB;CAC7B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,wBAAsB;CAC3B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,yBAAuB;CAC5B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,6BAA2B;CAChC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,2BAAyB;CAC9B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,2BAAyB;CAC9B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,8BAA4B;CACjC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,8BAA4B;CACjC;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;AACD;AACD,MAAMC,wBAAsB;CAC3B;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EACR,MAAM;CACN;CACD;EACC,QAAQ;EAC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CxB,MAAM,CAAC,aAAa,SAAU;CAC9B;CACD;EACC,SAAS;EACT,UAAU,CAAC,qBAAsB;EACjC,MAAM,CAAC,aAAa,SAAU;CAC9B;CACD;EACC,SAAS;EACT,UAAU,CAAC,gBAAiB;EAC5B,MAAM,CAAC,aAAa,SAAU;CAC9B;CACD;EACC,SAAS;EACT,UAAU,CAAC,YAAa;EACxB,MAAM,CAAC,aAAa,SAAU;CAC9B;AACD;AAID,SAAS,iBAAiB,MAAM;AAC/B,QAAO;EACN,OAAO;EACP;CACA;AACD;;;;;AAKD,MAAMC,qBAAmB,iBAAiB,mBAAmB;AAI7D,MAAMC,mBAAiB,OAAO,iBAAiB;;;;;;AAS/C,SAAS,iBAAiB,MAAM;AAC/B,QAAO;EACN,OAAO;EACP;CACA;AACD;;;;;;AAMD,MAAMC,gBAAc,iBAAiB,cAAc;;;;;;;;AAWnD,MAAMC,iBAAe;CACpB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;;;;;;AASD,MAAMC,wBAAsB;CAC3B;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;CACD;EACC;EACA;EACA;CACA;AACD;;;;;;AASD,MAAMC,sBAAoB;CACzB,OAAO;CACP,OAAO;CACP,MAAM;CACN,MAAM;CACN,KAAK;CACL,OAAO;CACP,QAAQ;CACR,OAAO;CACP,QAAQ;CACR,OAAO;CACP,OAAO;CACP,MAAM;CACN,OAAO;CACP,OAAO;CACP,OAAO;CACP,IAAI;CACJ,OAAO;CACP,QAAQ;CACR,UAAU;CACV,KAAK;CACL,MAAM;CACN,OAAO;CACP,YAAY;CACZ,WAAW;CACX,OAAO;CACP,YAAY;CACZ,WAAW;CACX,SAAS;CACT,YAAY;CACZ,OAAO;CACP,UAAU;CACV,QAAQ;CACR,OAAO;CACP,MAAM;CACN,SAAS;CACT,QAAQ;CACR,QAAQ;CACR,MAAM;CACN,KAAK;CACL,UAAU;CACV,SAAS;CACT,OAAO;CACP,SAAS;CACT,QAAQ;CACR,OAAO;CACP,UAAU;CACV,QAAQ;CACR,MAAM;CACN,MAAM;CACN,YAAY;CACZ,OAAO;CACP,UAAU;CACV,MAAM;CACN,OAAO;CACP,QAAQ;CACR,SAAS;CACT,SAAS;CACT,OAAO;CACP,MAAM;CACN,MAAM;CACN,aAAa;CACb,QAAQ;CACR,MAAM;CACN,YAAY;CACZ,MAAM;CACN,SAAS;CACT,UAAU;CACV,OAAO;CACP,UAAU;CACV,QAAQ;CACR,OAAO;CACP,QAAQ;CACR,MAAM;CACN,MAAM;AACN;;;;AAOD,MAAMC,iBAAe;CACpB;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,uBAAqB;CAC1B,QAAQ,EAAE,qBAAqB,mBAAoB;CACnD,WAAW,CAAC,uBAAwB;CACpC,QAAQ,CAAC,oBAAqB;CAC9B,YAAY,CAAC,oCAAqC;CAClD,OAAO,CAAE;AACT;;;;AAOD,MAAMC,eAAa;CAClB;EACC;EACA;EACA;EACA;EACA;AACD;AACD,MAAMC,gBAAc;CACnB;CACA;CACA;AACA;AACD,MAAMC,cAAY,CAAC,mBAAmB,eAAgB;AACtD,MAAMC,mBAAiB,CAAC,qBAAqB,kBAAmB;AAChE,MAAMC,aAAW;CAChB;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,eAAa,CAAC,gBAAiB;AACrC,MAAMC,aAAW,CAAC,cAAe;AACjC,MAAMC,eAAa;CAClB;CACA;CACA;AACA;AACD,MAAMC,iBAAe,CAAC,mBAAmB,gBAAiB;AAC1D,MAAMC,gBAAc;CACnB;CACA;CACA;AACA;AACD,MAAMC,aAAW,CAAC,cAAe;AACjC,MAAMC,cAAY,CAAC,eAAgB;AACnC,MAAMC,aAAW,CAAC,cAAe;;AAEjC,MAAMC,WAAS,CAAC,aAAc;AAC9B,MAAMC,aAAW,CAAC,cAAe;AACjC,MAAMC,eAAa,CAAC,gBAAiB;AACrC,MAAMC,kBAAgB,CAAC,mBAAoB;AAC3C,MAAMC,YAAU,CAAC,aAAc;AAC/B,MAAMC,oBAAkB,CAAC,4BAA4B,4BAA6B;AAIlF,MAAMC,0BAAwB;GAC3B,KAAK;GACL,KAAK;GACL,MAAM;AACR;AACD,MAAMC,8BAA4B;CACjC,KAAK;CACL,KAAK;CACL,MAAM;CACN,MAAM;AACN;AACD,MAAMC,4BAA0B;CAC/B,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;CACL,KAAK;AACL;AACD,MAAMC,uBAAqB;CAC1B,GAAGD;CACH,GAAGF;CACH,GAAGC;AACH;AAID,MAAMG,mBAAiB;CACtB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AAID,MAAMC,yBAAuB;CAC5B;CACA;EACC;EACA;CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,6BAA2B;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,wBAAsB,EAAE,aAAc;AAC5C,MAAMC,oBAAkB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,sBAAoB;CACzB,GAAGD;CACH;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAME,uBAAqB;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,wBAAsB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;EACC;EACA;EACA;AACD;AACD,MAAMC,sBAAoB;CACzB;CACA;CACA;AACA;AACD,MAAMC,sBAAoB,CAAC,OAAO,YAAa;AAC/C,MAAMC,4BAA0B;CAC/B,GAAGJ;CACH,GAAGC;CACH,GAAGC;CACH,GAAGC;AACH;;;;;;;;AAQD,MAAME,kBAAgB;CACrB,GAAGV;CACH,GAAGC;CACH,GAAGQ;CACH,GAAGP;AACH;;;;;;AASD,MAAMS,0BAAwB;CAC7B;CACA;CACA;CACA;CACA;CACA;AACA;AAID,MAAMC,iBAAe;CACpB;EACC,MAAM;EACN,aAAa;EACb,UAAU,CAAC,0BAA2B;EACtC,YAAY;EAC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BT,YAAU;AAChC,MAAMU,kBAAgBV,YAAU;AAChC,MAAMW,kBAAgBX,YAAU;;;;;;AAMhC,MAAMY,qBAAmB;CACxB;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,sBAAoB;CACzB;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,uBAAqB;CAC1B;CACA;CACA;CACA;AACA;AACD,MAAMC,sBAAoB;CACzB;CACA;CACA;CACA;EACC;AACD;;;;;AAKD,MAAMC,wBAAsB;CAC3B;CACA;CACA;CACA;CACA;AACA;;;;;AAKD,MAAMC,iBAAe;CACpB,GAAGJ;CACH,GAAGC;CACH,GAAGE;CACH,GAAGD;AACH;AAID,MAAMG,2BAAyB;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,4BAA0B;CAC/B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,+BAA6B;CAClC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,yBAAuB;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,6BAA2B;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,8BAA4B;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACD,MAAMC,2BAAyB;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAC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"}