{"version":3,"file":"tolgee-format-icu.esm.mjs","sources":["../../../node_modules/tslib/tslib.es6.js","../../../node_modules/@formatjs/fast-memoize/lib/index.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../../../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../../../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../../../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../../../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../node_modules/intl-messageformat/lib/src/error.js","../node_modules/intl-messageformat/lib/src/formatters.js","../node_modules/intl-messageformat/lib/src/core.js","../node_modules/intl-messageformat/lib/index.js","../src/createFormatIcu.ts","../src/FormatIcu.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","//\n// Main\n//\nexport function memoize(fn, options) {\n    var cache = options && options.cache ? options.cache : cacheDefault;\n    var serializer = options && options.serializer ? options.serializer : serializerDefault;\n    var strategy = options && options.strategy ? options.strategy : strategyDefault;\n    return strategy(fn, {\n        cache: cache,\n        serializer: serializer,\n    });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n    return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n    var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n    var computedValue = cache.get(cacheKey);\n    if (typeof computedValue === 'undefined') {\n        computedValue = fn.call(this, arg);\n        cache.set(cacheKey, computedValue);\n    }\n    return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n    var args = Array.prototype.slice.call(arguments, 3);\n    var cacheKey = serializer(args);\n    var computedValue = cache.get(cacheKey);\n    if (typeof computedValue === 'undefined') {\n        computedValue = fn.apply(this, args);\n        cache.set(cacheKey, computedValue);\n    }\n    return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n    return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n    var strategy = fn.length === 1 ? monadic : variadic;\n    return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n    return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n    return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n    return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n    this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n    return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n    this.cache[key] = value;\n};\nvar cacheDefault = {\n    create: function create() {\n        // @ts-ignore\n        return new ObjectWithoutPrototypeCache();\n    },\n};\nexport var strategies = {\n    variadic: strategyVariadic,\n    monadic: strategyMonadic,\n};\n","export var ErrorKind;\n(function (ErrorKind) {\n    /** Argument is unclosed (e.g. `{0`) */\n    ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n    /** Argument is empty (e.g. `{}`). */\n    ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n    /** Argument is malformed (e.g. `{foo!}``) */\n    ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n    /** Expect an argument type (e.g. `{foo,}`) */\n    ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n    /** Unsupported argument type (e.g. `{foo,foo}`) */\n    ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n    /** Expect an argument style (e.g. `{foo, number, }`) */\n    ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n    /** The number skeleton is invalid. */\n    ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n    /** The date time skeleton is invalid. */\n    ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n    /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n    ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n    /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n    ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n    /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n    ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n    /** Missing select argument options (e.g. `{foo, select}`) */\n    ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n    /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n    ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n    /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n    ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n    /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n    ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n    /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n    ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n    /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n    ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n    /**\n     * Expecting a message fragment after the `plural` or `selectordinal` selector\n     * (e.g. `{foo, plural, one}`)\n     */\n    ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n    /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n    ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n    /**\n     * Duplicate selectors in `plural` or `selectordinal` argument.\n     * (e.g. {foo, plural, one {#} one {#}})\n     */\n    ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n    /** Duplicate selectors in `select` argument.\n     * (e.g. {foo, select, apple {apple} apple {apple}})\n     */\n    ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n    /** Plural or select argument option must have `other` clause. */\n    ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n    /** The tag is malformed. (e.g. `<bold!>foo</bold!>) */\n    ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n    /** The tag name is invalid. (e.g. `<123>foo</123>`) */\n    ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n    /** The closing tag does not match the opening tag. (e.g. `<bold>foo</italic>`) */\n    ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n    /** The opening tag has unmatched closing tag. (e.g. `<bold>foo`) */\n    ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n    /**\n     * Raw text\n     */\n    TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n    /**\n     * Variable w/o any format, e.g `var` in `this is a {var}`\n     */\n    TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n    /**\n     * Variable w/ number format\n     */\n    TYPE[TYPE[\"number\"] = 2] = \"number\";\n    /**\n     * Variable w/ date format\n     */\n    TYPE[TYPE[\"date\"] = 3] = \"date\";\n    /**\n     * Variable w/ time format\n     */\n    TYPE[TYPE[\"time\"] = 4] = \"time\";\n    /**\n     * Variable w/ select format\n     */\n    TYPE[TYPE[\"select\"] = 5] = \"select\";\n    /**\n     * Variable w/ plural format\n     */\n    TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n    /**\n     * Only possible within plural argument.\n     * This is the `#` symbol that will be substituted with the count.\n     */\n    TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n    /**\n     * XML-like tag\n     */\n    TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n    SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n    SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n    return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n    return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n    return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n    return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n    return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n    return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n    return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n    return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n    return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n    return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n    return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n    return {\n        type: TYPE.literal,\n        value: value,\n    };\n}\nexport function createNumberElement(value, style) {\n    return {\n        type: TYPE.number,\n        value: value,\n        style: style,\n    };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n    var result = {};\n    skeleton.replace(DATE_TIME_REGEX, function (match) {\n        var len = match.length;\n        switch (match[0]) {\n            // Era\n            case 'G':\n                result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n                break;\n            // Year\n            case 'y':\n                result.year = len === 2 ? '2-digit' : 'numeric';\n                break;\n            case 'Y':\n            case 'u':\n            case 'U':\n            case 'r':\n                throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n            // Quarter\n            case 'q':\n            case 'Q':\n                throw new RangeError('`q/Q` (quarter) patterns are not supported');\n            // Month\n            case 'M':\n            case 'L':\n                result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n                break;\n            // Week\n            case 'w':\n            case 'W':\n                throw new RangeError('`w/W` (week) patterns are not supported');\n            case 'd':\n                result.day = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'D':\n            case 'F':\n            case 'g':\n                throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n            // Weekday\n            case 'E':\n                result.weekday = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n                break;\n            case 'e':\n                if (len < 4) {\n                    throw new RangeError('`e..eee` (weekday) patterns are not supported');\n                }\n                result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n                break;\n            case 'c':\n                if (len < 4) {\n                    throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n                }\n                result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n                break;\n            // Period\n            case 'a': // AM, PM\n                result.hour12 = true;\n                break;\n            case 'b': // am, pm, noon, midnight\n            case 'B': // flexible day periods\n                throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n            // Hour\n            case 'h':\n                result.hourCycle = 'h12';\n                result.hour = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'H':\n                result.hourCycle = 'h23';\n                result.hour = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'K':\n                result.hourCycle = 'h11';\n                result.hour = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'k':\n                result.hourCycle = 'h24';\n                result.hour = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'j':\n            case 'J':\n            case 'C':\n                throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n            // Minute\n            case 'm':\n                result.minute = ['numeric', '2-digit'][len - 1];\n                break;\n            // Second\n            case 's':\n                result.second = ['numeric', '2-digit'][len - 1];\n                break;\n            case 'S':\n            case 'A':\n                throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n            // Zone\n            case 'z': // 1..3, 4: specific non-location format\n                result.timeZoneName = len < 4 ? 'short' : 'long';\n                break;\n            case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n            case 'O': // 1, 4: milliseconds in day short, long\n            case 'v': // 1, 4: generic non-location format\n            case 'V': // 1, 2, 3, 4: time zone ID or city\n            case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n            case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n                throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n        }\n        return '';\n    });\n    return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n    if (skeleton.length === 0) {\n        throw new Error('Number skeleton cannot be empty');\n    }\n    // Parse the skeleton\n    var stringTokens = skeleton\n        .split(WHITE_SPACE_REGEX)\n        .filter(function (x) { return x.length > 0; });\n    var tokens = [];\n    for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n        var stringToken = stringTokens_1[_i];\n        var stemAndOptions = stringToken.split('/');\n        if (stemAndOptions.length === 0) {\n            throw new Error('Invalid number skeleton');\n        }\n        var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n        for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n            var option = options_1[_a];\n            if (option.length === 0) {\n                throw new Error('Invalid number skeleton');\n            }\n        }\n        tokens.push({ stem: stem, options: options });\n    }\n    return tokens;\n}\nfunction icuUnitToEcma(unit) {\n    return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n    var result = {};\n    if (str[str.length - 1] === 'r') {\n        result.roundingPriority = 'morePrecision';\n    }\n    else if (str[str.length - 1] === 's') {\n        result.roundingPriority = 'lessPrecision';\n    }\n    str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n        // @@@ case\n        if (typeof g2 !== 'string') {\n            result.minimumSignificantDigits = g1.length;\n            result.maximumSignificantDigits = g1.length;\n        }\n        // @@@+ case\n        else if (g2 === '+') {\n            result.minimumSignificantDigits = g1.length;\n        }\n        // .### case\n        else if (g1[0] === '#') {\n            result.maximumSignificantDigits = g1.length;\n        }\n        // .@@## or .@@@ case\n        else {\n            result.minimumSignificantDigits = g1.length;\n            result.maximumSignificantDigits =\n                g1.length + (typeof g2 === 'string' ? g2.length : 0);\n        }\n        return '';\n    });\n    return result;\n}\nfunction parseSign(str) {\n    switch (str) {\n        case 'sign-auto':\n            return {\n                signDisplay: 'auto',\n            };\n        case 'sign-accounting':\n        case '()':\n            return {\n                currencySign: 'accounting',\n            };\n        case 'sign-always':\n        case '+!':\n            return {\n                signDisplay: 'always',\n            };\n        case 'sign-accounting-always':\n        case '()!':\n            return {\n                signDisplay: 'always',\n                currencySign: 'accounting',\n            };\n        case 'sign-except-zero':\n        case '+?':\n            return {\n                signDisplay: 'exceptZero',\n            };\n        case 'sign-accounting-except-zero':\n        case '()?':\n            return {\n                signDisplay: 'exceptZero',\n                currencySign: 'accounting',\n            };\n        case 'sign-never':\n        case '+_':\n            return {\n                signDisplay: 'never',\n            };\n    }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n    // Engineering\n    var result;\n    if (stem[0] === 'E' && stem[1] === 'E') {\n        result = {\n            notation: 'engineering',\n        };\n        stem = stem.slice(2);\n    }\n    else if (stem[0] === 'E') {\n        result = {\n            notation: 'scientific',\n        };\n        stem = stem.slice(1);\n    }\n    if (result) {\n        var signDisplay = stem.slice(0, 2);\n        if (signDisplay === '+!') {\n            result.signDisplay = 'always';\n            stem = stem.slice(2);\n        }\n        else if (signDisplay === '+?') {\n            result.signDisplay = 'exceptZero';\n            stem = stem.slice(2);\n        }\n        if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n            throw new Error('Malformed concise eng/scientific notation');\n        }\n        result.minimumIntegerDigits = stem.length;\n    }\n    return result;\n}\nfunction parseNotationOptions(opt) {\n    var result = {};\n    var signOpts = parseSign(opt);\n    if (signOpts) {\n        return signOpts;\n    }\n    return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n    var result = {};\n    for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n        var token = tokens_1[_i];\n        switch (token.stem) {\n            case 'percent':\n            case '%':\n                result.style = 'percent';\n                continue;\n            case '%x100':\n                result.style = 'percent';\n                result.scale = 100;\n                continue;\n            case 'currency':\n                result.style = 'currency';\n                result.currency = token.options[0];\n                continue;\n            case 'group-off':\n            case ',_':\n                result.useGrouping = false;\n                continue;\n            case 'precision-integer':\n            case '.':\n                result.maximumFractionDigits = 0;\n                continue;\n            case 'measure-unit':\n            case 'unit':\n                result.style = 'unit';\n                result.unit = icuUnitToEcma(token.options[0]);\n                continue;\n            case 'compact-short':\n            case 'K':\n                result.notation = 'compact';\n                result.compactDisplay = 'short';\n                continue;\n            case 'compact-long':\n            case 'KK':\n                result.notation = 'compact';\n                result.compactDisplay = 'long';\n                continue;\n            case 'scientific':\n                result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n                continue;\n            case 'engineering':\n                result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n                continue;\n            case 'notation-simple':\n                result.notation = 'standard';\n                continue;\n            // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n            case 'unit-width-narrow':\n                result.currencyDisplay = 'narrowSymbol';\n                result.unitDisplay = 'narrow';\n                continue;\n            case 'unit-width-short':\n                result.currencyDisplay = 'code';\n                result.unitDisplay = 'short';\n                continue;\n            case 'unit-width-full-name':\n                result.currencyDisplay = 'name';\n                result.unitDisplay = 'long';\n                continue;\n            case 'unit-width-iso-code':\n                result.currencyDisplay = 'symbol';\n                continue;\n            case 'scale':\n                result.scale = parseFloat(token.options[0]);\n                continue;\n            case 'rounding-mode-floor':\n                result.roundingMode = 'floor';\n                continue;\n            case 'rounding-mode-ceiling':\n                result.roundingMode = 'ceil';\n                continue;\n            case 'rounding-mode-down':\n                result.roundingMode = 'trunc';\n                continue;\n            case 'rounding-mode-up':\n                result.roundingMode = 'expand';\n                continue;\n            case 'rounding-mode-half-even':\n                result.roundingMode = 'halfEven';\n                continue;\n            case 'rounding-mode-half-down':\n                result.roundingMode = 'halfTrunc';\n                continue;\n            case 'rounding-mode-half-up':\n                result.roundingMode = 'halfExpand';\n                continue;\n            // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n            case 'integer-width':\n                if (token.options.length > 1) {\n                    throw new RangeError('integer-width stems only accept a single optional option');\n                }\n                token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n                    if (g1) {\n                        result.minimumIntegerDigits = g2.length;\n                    }\n                    else if (g3 && g4) {\n                        throw new Error('We currently do not support maximum integer digits');\n                    }\n                    else if (g5) {\n                        throw new Error('We currently do not support exact integer digits');\n                    }\n                    return '';\n                });\n                continue;\n        }\n        // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n        if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n            result.minimumIntegerDigits = token.stem.length;\n            continue;\n        }\n        if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n            // Precision\n            // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n            // precision-integer case\n            if (token.options.length > 1) {\n                throw new RangeError('Fraction-precision stems only accept a single optional option');\n            }\n            token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n                // .000* case (before ICU67 it was .000+)\n                if (g2 === '*') {\n                    result.minimumFractionDigits = g1.length;\n                }\n                // .### case\n                else if (g3 && g3[0] === '#') {\n                    result.maximumFractionDigits = g3.length;\n                }\n                // .00## case\n                else if (g4 && g5) {\n                    result.minimumFractionDigits = g4.length;\n                    result.maximumFractionDigits = g4.length + g5.length;\n                }\n                else {\n                    result.minimumFractionDigits = g1.length;\n                    result.maximumFractionDigits = g1.length;\n                }\n                return '';\n            });\n            var opt = token.options[0];\n            // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n            if (opt === 'w') {\n                result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n            }\n            else if (opt) {\n                result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n            }\n            continue;\n        }\n        // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n        if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n            result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n            continue;\n        }\n        var signOpts = parseSign(token.stem);\n        if (signOpts) {\n            result = __assign(__assign({}, result), signOpts);\n        }\n        var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n        if (conciseScientificAndEngineeringOpts) {\n            result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n        }\n    }\n    return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore  \nexport var timeData = {\n    \"001\": [\n        \"H\",\n        \"h\"\n    ],\n    \"419\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"AC\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"AD\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"AE\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"AF\": [\n        \"H\",\n        \"hb\",\n        \"hB\",\n        \"h\"\n    ],\n    \"AG\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"AI\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"AL\": [\n        \"h\",\n        \"H\",\n        \"hB\"\n    ],\n    \"AM\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"AO\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"AR\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"AS\": [\n        \"h\",\n        \"H\"\n    ],\n    \"AT\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"AU\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"AW\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"AX\": [\n        \"H\"\n    ],\n    \"AZ\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"BA\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"BB\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"BD\": [\n        \"h\",\n        \"hB\",\n        \"H\"\n    ],\n    \"BE\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"BF\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"BG\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"BH\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"BI\": [\n        \"H\",\n        \"h\"\n    ],\n    \"BJ\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"BL\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"BM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"BN\": [\n        \"hb\",\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"BO\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"BQ\": [\n        \"H\"\n    ],\n    \"BR\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"BS\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"BT\": [\n        \"h\",\n        \"H\"\n    ],\n    \"BW\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"BY\": [\n        \"H\",\n        \"h\"\n    ],\n    \"BZ\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"CA\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"CC\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"CD\": [\n        \"hB\",\n        \"H\"\n    ],\n    \"CF\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"CG\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"CH\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"CI\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"CK\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"CL\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"CM\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"CN\": [\n        \"H\",\n        \"hB\",\n        \"hb\",\n        \"h\"\n    ],\n    \"CO\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"CP\": [\n        \"H\"\n    ],\n    \"CR\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"CU\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"CV\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"CW\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"CX\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"CY\": [\n        \"h\",\n        \"H\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"CZ\": [\n        \"H\"\n    ],\n    \"DE\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"DG\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"DJ\": [\n        \"h\",\n        \"H\"\n    ],\n    \"DK\": [\n        \"H\"\n    ],\n    \"DM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"DO\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"DZ\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"EA\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"EC\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"EE\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"EG\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"EH\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"ER\": [\n        \"h\",\n        \"H\"\n    ],\n    \"ES\": [\n        \"H\",\n        \"hB\",\n        \"h\",\n        \"hb\"\n    ],\n    \"ET\": [\n        \"hB\",\n        \"hb\",\n        \"h\",\n        \"H\"\n    ],\n    \"FI\": [\n        \"H\"\n    ],\n    \"FJ\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"FK\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"FM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"FO\": [\n        \"H\",\n        \"h\"\n    ],\n    \"FR\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GA\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GB\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"GD\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"GE\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"GF\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GG\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"GH\": [\n        \"h\",\n        \"H\"\n    ],\n    \"GI\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"GL\": [\n        \"H\",\n        \"h\"\n    ],\n    \"GM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"GN\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GP\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GQ\": [\n        \"H\",\n        \"hB\",\n        \"h\",\n        \"hb\"\n    ],\n    \"GR\": [\n        \"h\",\n        \"H\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"GT\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"GU\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"GW\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"GY\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"HK\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"HN\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"HR\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"HU\": [\n        \"H\",\n        \"h\"\n    ],\n    \"IC\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"ID\": [\n        \"H\"\n    ],\n    \"IE\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"IL\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"IM\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"IN\": [\n        \"h\",\n        \"H\"\n    ],\n    \"IO\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"IQ\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"IR\": [\n        \"hB\",\n        \"H\"\n    ],\n    \"IS\": [\n        \"H\"\n    ],\n    \"IT\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"JE\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"JM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"JO\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"JP\": [\n        \"H\",\n        \"K\",\n        \"h\"\n    ],\n    \"KE\": [\n        \"hB\",\n        \"hb\",\n        \"H\",\n        \"h\"\n    ],\n    \"KG\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"KH\": [\n        \"hB\",\n        \"h\",\n        \"H\",\n        \"hb\"\n    ],\n    \"KI\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"KM\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"KN\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"KP\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"KR\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"KW\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"KY\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"KZ\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"LA\": [\n        \"H\",\n        \"hb\",\n        \"hB\",\n        \"h\"\n    ],\n    \"LB\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"LC\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"LI\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"LK\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"LR\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"LS\": [\n        \"h\",\n        \"H\"\n    ],\n    \"LT\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"LU\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"LV\": [\n        \"H\",\n        \"hB\",\n        \"hb\",\n        \"h\"\n    ],\n    \"LY\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"MA\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"MC\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"MD\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"ME\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"MF\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"MG\": [\n        \"H\",\n        \"h\"\n    ],\n    \"MH\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"MK\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"ML\": [\n        \"H\"\n    ],\n    \"MM\": [\n        \"hB\",\n        \"hb\",\n        \"H\",\n        \"h\"\n    ],\n    \"MN\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"MO\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"MP\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"MQ\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"MR\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"MS\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"MT\": [\n        \"H\",\n        \"h\"\n    ],\n    \"MU\": [\n        \"H\",\n        \"h\"\n    ],\n    \"MV\": [\n        \"H\",\n        \"h\"\n    ],\n    \"MW\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"MX\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"MY\": [\n        \"hb\",\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"MZ\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"NA\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"NC\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"NE\": [\n        \"H\"\n    ],\n    \"NF\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"NG\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"NI\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"NL\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"NO\": [\n        \"H\",\n        \"h\"\n    ],\n    \"NP\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"NR\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"NU\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"NZ\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"OM\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"PA\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"PE\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"PF\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"PG\": [\n        \"h\",\n        \"H\"\n    ],\n    \"PH\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"PK\": [\n        \"h\",\n        \"hB\",\n        \"H\"\n    ],\n    \"PL\": [\n        \"H\",\n        \"h\"\n    ],\n    \"PM\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"PN\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"PR\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"PS\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"PT\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"PW\": [\n        \"h\",\n        \"H\"\n    ],\n    \"PY\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"QA\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"RE\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"RO\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"RS\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"RU\": [\n        \"H\"\n    ],\n    \"RW\": [\n        \"H\",\n        \"h\"\n    ],\n    \"SA\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"SB\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"SC\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"SD\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"SE\": [\n        \"H\"\n    ],\n    \"SG\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"SH\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"SI\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"SJ\": [\n        \"H\"\n    ],\n    \"SK\": [\n        \"H\"\n    ],\n    \"SL\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"SM\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"SN\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"SO\": [\n        \"h\",\n        \"H\"\n    ],\n    \"SR\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"SS\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"ST\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"SV\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"SX\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"SY\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"SZ\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"TA\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"TC\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"TD\": [\n        \"h\",\n        \"H\",\n        \"hB\"\n    ],\n    \"TF\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"TG\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"TH\": [\n        \"H\",\n        \"h\"\n    ],\n    \"TJ\": [\n        \"H\",\n        \"h\"\n    ],\n    \"TL\": [\n        \"H\",\n        \"hB\",\n        \"hb\",\n        \"h\"\n    ],\n    \"TM\": [\n        \"H\",\n        \"h\"\n    ],\n    \"TN\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"TO\": [\n        \"h\",\n        \"H\"\n    ],\n    \"TR\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"TT\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"TW\": [\n        \"hB\",\n        \"hb\",\n        \"h\",\n        \"H\"\n    ],\n    \"TZ\": [\n        \"hB\",\n        \"hb\",\n        \"H\",\n        \"h\"\n    ],\n    \"UA\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"UG\": [\n        \"hB\",\n        \"hb\",\n        \"H\",\n        \"h\"\n    ],\n    \"UM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"US\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"UY\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"UZ\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"VA\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"VC\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"VE\": [\n        \"h\",\n        \"H\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"VG\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"VI\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"VN\": [\n        \"H\",\n        \"h\"\n    ],\n    \"VU\": [\n        \"h\",\n        \"H\"\n    ],\n    \"WF\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"WS\": [\n        \"h\",\n        \"H\"\n    ],\n    \"XK\": [\n        \"H\",\n        \"hB\",\n        \"h\"\n    ],\n    \"YE\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"YT\": [\n        \"H\",\n        \"hB\"\n    ],\n    \"ZA\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"ZM\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"ZW\": [\n        \"H\",\n        \"h\"\n    ],\n    \"af-ZA\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"ar-001\": [\n        \"h\",\n        \"hB\",\n        \"hb\",\n        \"H\"\n    ],\n    \"ca-ES\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"en-001\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"en-HK\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"en-IL\": [\n        \"H\",\n        \"h\",\n        \"hb\",\n        \"hB\"\n    ],\n    \"en-MY\": [\n        \"h\",\n        \"hb\",\n        \"H\",\n        \"hB\"\n    ],\n    \"es-BR\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"es-ES\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"es-GQ\": [\n        \"H\",\n        \"h\",\n        \"hB\",\n        \"hb\"\n    ],\n    \"fr-CA\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"gl-ES\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"gu-IN\": [\n        \"hB\",\n        \"hb\",\n        \"h\",\n        \"H\"\n    ],\n    \"hi-IN\": [\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"it-CH\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"it-IT\": [\n        \"H\",\n        \"h\",\n        \"hB\"\n    ],\n    \"kn-IN\": [\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"ml-IN\": [\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"mr-IN\": [\n        \"hB\",\n        \"hb\",\n        \"h\",\n        \"H\"\n    ],\n    \"pa-IN\": [\n        \"hB\",\n        \"hb\",\n        \"h\",\n        \"H\"\n    ],\n    \"ta-IN\": [\n        \"hB\",\n        \"h\",\n        \"hb\",\n        \"H\"\n    ],\n    \"te-IN\": [\n        \"hB\",\n        \"h\",\n        \"H\"\n    ],\n    \"zu-ZA\": [\n        \"H\",\n        \"hB\",\n        \"hb\",\n        \"h\"\n    ]\n};\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n    var skeletonCopy = '';\n    for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n        var patternChar = skeleton.charAt(patternPos);\n        if (patternChar === 'j') {\n            var extraLength = 0;\n            while (patternPos + 1 < skeleton.length &&\n                skeleton.charAt(patternPos + 1) === patternChar) {\n                extraLength++;\n                patternPos++;\n            }\n            var hourLen = 1 + (extraLength & 1);\n            var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n            var dayPeriodChar = 'a';\n            var hourChar = getDefaultHourSymbolFromLocale(locale);\n            if (hourChar == 'H' || hourChar == 'k') {\n                dayPeriodLen = 0;\n            }\n            while (dayPeriodLen-- > 0) {\n                skeletonCopy += dayPeriodChar;\n            }\n            while (hourLen-- > 0) {\n                skeletonCopy = hourChar + skeletonCopy;\n            }\n        }\n        else if (patternChar === 'J') {\n            skeletonCopy += 'H';\n        }\n        else {\n            skeletonCopy += patternChar;\n        }\n    }\n    return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n    var hourCycle = locale.hourCycle;\n    if (hourCycle === undefined &&\n        // @ts-ignore hourCycle(s) is not identified yet\n        locale.hourCycles &&\n        // @ts-ignore\n        locale.hourCycles.length) {\n        // @ts-ignore\n        hourCycle = locale.hourCycles[0];\n    }\n    if (hourCycle) {\n        switch (hourCycle) {\n            case 'h24':\n                return 'k';\n            case 'h23':\n                return 'H';\n            case 'h12':\n                return 'h';\n            case 'h11':\n                return 'K';\n            default:\n                throw new Error('Invalid hourCycle');\n        }\n    }\n    // TODO: Once hourCycle is fully supported remove the following with data generation\n    var languageTag = locale.language;\n    var regionTag;\n    if (languageTag !== 'root') {\n        regionTag = locale.maximize().region;\n    }\n    var hourCycles = timeData[regionTag || ''] ||\n        timeData[languageTag || ''] ||\n        timeData[\"\".concat(languageTag, \"-001\")] ||\n        timeData['001'];\n    return hourCycles[0];\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n    return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith && '_a'.startsWith('a', 1);\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n    ? Number.isSafeInteger\n    : function (n) {\n        return (typeof n === 'number' &&\n            isFinite(n) &&\n            Math.floor(n) === n &&\n            Math.abs(n) <= 0x1fffffffffffff);\n    };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n    var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n    /**\n     * legacy Edge or Xbox One browser\n     * Unicode flag support: supported\n     * Pattern_Syntax support: not supported\n     * See https://github.com/formatjs/formatjs/issues/2822\n     */\n    REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n    REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n    ? // Native\n        function startsWith(s, search, position) {\n            return s.startsWith(search, position);\n        }\n    : // For IE11\n        function startsWith(s, search, position) {\n            return s.slice(position, position + search.length) === search;\n        };\nvar fromCodePoint = hasNativeFromCodePoint\n    ? String.fromCodePoint\n    : // IE11\n        function fromCodePoint() {\n            var codePoints = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                codePoints[_i] = arguments[_i];\n            }\n            var elements = '';\n            var length = codePoints.length;\n            var i = 0;\n            var code;\n            while (length > i) {\n                code = codePoints[i++];\n                if (code > 0x10ffff)\n                    throw RangeError(code + ' is not a valid code point');\n                elements +=\n                    code < 0x10000\n                        ? String.fromCharCode(code)\n                        : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n            }\n            return elements;\n        };\nvar fromEntries = \n// native\nhasNativeFromEntries\n    ? Object.fromEntries\n    : // Ponyfill\n        function fromEntries(entries) {\n            var obj = {};\n            for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n                var _a = entries_1[_i], k = _a[0], v = _a[1];\n                obj[k] = v;\n            }\n            return obj;\n        };\nvar codePointAt = hasNativeCodePointAt\n    ? // Native\n        function codePointAt(s, index) {\n            return s.codePointAt(index);\n        }\n    : // IE 11\n        function codePointAt(s, index) {\n            var size = s.length;\n            if (index < 0 || index >= size) {\n                return undefined;\n            }\n            var first = s.charCodeAt(index);\n            var second;\n            return first < 0xd800 ||\n                first > 0xdbff ||\n                index + 1 === size ||\n                (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n                second > 0xdfff\n                ? first\n                : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n        };\nvar trimStart = hasTrimStart\n    ? // Native\n        function trimStart(s) {\n            return s.trimStart();\n        }\n    : // Ponyfill\n        function trimStart(s) {\n            return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n        };\nvar trimEnd = hasTrimEnd\n    ? // Native\n        function trimEnd(s) {\n            return s.trimEnd();\n        }\n    : // Ponyfill\n        function trimEnd(s) {\n            return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n        };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n    return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n    // Native\n    var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n    matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n        var _a;\n        IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n        var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n        return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n    };\n}\nelse {\n    // IE11\n    matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n        var match = [];\n        while (true) {\n            var c = codePointAt(s, index);\n            if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n                break;\n            }\n            match.push(c);\n            index += c >= 0x10000 ? 2 : 1;\n        }\n        return fromCodePoint.apply(void 0, match);\n    };\n}\nvar Parser = /** @class */ (function () {\n    function Parser(message, options) {\n        if (options === void 0) { options = {}; }\n        this.message = message;\n        this.position = { offset: 0, line: 1, column: 1 };\n        this.ignoreTag = !!options.ignoreTag;\n        this.locale = options.locale;\n        this.requiresOtherClause = !!options.requiresOtherClause;\n        this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n    }\n    Parser.prototype.parse = function () {\n        if (this.offset() !== 0) {\n            throw Error('parser can only be used once');\n        }\n        return this.parseMessage(0, '', false);\n    };\n    Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n        var elements = [];\n        while (!this.isEOF()) {\n            var char = this.char();\n            if (char === 123 /* `{` */) {\n                var result = this.parseArgument(nestingLevel, expectingCloseTag);\n                if (result.err) {\n                    return result;\n                }\n                elements.push(result.val);\n            }\n            else if (char === 125 /* `}` */ && nestingLevel > 0) {\n                break;\n            }\n            else if (char === 35 /* `#` */ &&\n                (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n                var position = this.clonePosition();\n                this.bump();\n                elements.push({\n                    type: TYPE.pound,\n                    location: createLocation(position, this.clonePosition()),\n                });\n            }\n            else if (char === 60 /* `<` */ &&\n                !this.ignoreTag &&\n                this.peek() === 47 // char code for '/'\n            ) {\n                if (expectingCloseTag) {\n                    break;\n                }\n                else {\n                    return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n                }\n            }\n            else if (char === 60 /* `<` */ &&\n                !this.ignoreTag &&\n                _isAlpha(this.peek() || 0)) {\n                var result = this.parseTag(nestingLevel, parentArgType);\n                if (result.err) {\n                    return result;\n                }\n                elements.push(result.val);\n            }\n            else {\n                var result = this.parseLiteral(nestingLevel, parentArgType);\n                if (result.err) {\n                    return result;\n                }\n                elements.push(result.val);\n            }\n        }\n        return { val: elements, err: null };\n    };\n    /**\n     * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n     * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n     * are accepted:\n     *\n     * ```\n     * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"</\" tagName (whitespace)* \">\"\n     * tagName ::= [a-z] (PENChar)*\n     * PENChar ::=\n     *     \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n     *     [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n     *     [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n     * ```\n     *\n     * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n     * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n     * since other tag-based engines like React allow it\n     */\n    Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n        var startPosition = this.clonePosition();\n        this.bump(); // `<`\n        var tagName = this.parseTagName();\n        this.bumpSpace();\n        if (this.bumpIf('/>')) {\n            // Self closing tag\n            return {\n                val: {\n                    type: TYPE.literal,\n                    value: \"<\".concat(tagName, \"/>\"),\n                    location: createLocation(startPosition, this.clonePosition()),\n                },\n                err: null,\n            };\n        }\n        else if (this.bumpIf('>')) {\n            var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n            if (childrenResult.err) {\n                return childrenResult;\n            }\n            var children = childrenResult.val;\n            // Expecting a close tag\n            var endTagStartPosition = this.clonePosition();\n            if (this.bumpIf('</')) {\n                if (this.isEOF() || !_isAlpha(this.char())) {\n                    return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n                }\n                var closingTagNameStartPosition = this.clonePosition();\n                var closingTagName = this.parseTagName();\n                if (tagName !== closingTagName) {\n                    return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n                }\n                this.bumpSpace();\n                if (!this.bumpIf('>')) {\n                    return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n                }\n                return {\n                    val: {\n                        type: TYPE.tag,\n                        value: tagName,\n                        children: children,\n                        location: createLocation(startPosition, this.clonePosition()),\n                    },\n                    err: null,\n                };\n            }\n            else {\n                return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n            }\n        }\n        else {\n            return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n        }\n    };\n    /**\n     * This method assumes that the caller has peeked ahead for the first tag character.\n     */\n    Parser.prototype.parseTagName = function () {\n        var startOffset = this.offset();\n        this.bump(); // the first tag name character\n        while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n            this.bump();\n        }\n        return this.message.slice(startOffset, this.offset());\n    };\n    Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n        var start = this.clonePosition();\n        var value = '';\n        while (true) {\n            var parseQuoteResult = this.tryParseQuote(parentArgType);\n            if (parseQuoteResult) {\n                value += parseQuoteResult;\n                continue;\n            }\n            var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n            if (parseUnquotedResult) {\n                value += parseUnquotedResult;\n                continue;\n            }\n            var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n            if (parseLeftAngleResult) {\n                value += parseLeftAngleResult;\n                continue;\n            }\n            break;\n        }\n        var location = createLocation(start, this.clonePosition());\n        return {\n            val: { type: TYPE.literal, value: value, location: location },\n            err: null,\n        };\n    };\n    Parser.prototype.tryParseLeftAngleBracket = function () {\n        if (!this.isEOF() &&\n            this.char() === 60 /* `<` */ &&\n            (this.ignoreTag ||\n                // If at the opening tag or closing tag position, bail.\n                !_isAlphaOrSlash(this.peek() || 0))) {\n            this.bump(); // `<`\n            return '<';\n        }\n        return null;\n    };\n    /**\n     * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n     * a character that requires quoting (that is, \"only where needed\"), and works the same in\n     * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n     */\n    Parser.prototype.tryParseQuote = function (parentArgType) {\n        if (this.isEOF() || this.char() !== 39 /* `'` */) {\n            return null;\n        }\n        // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n        // Check if is valid escaped character\n        switch (this.peek()) {\n            case 39 /* `'` */:\n                // double quote, should return as a single quote.\n                this.bump();\n                this.bump();\n                return \"'\";\n            // '{', '<', '>', '}'\n            case 123:\n            case 60:\n            case 62:\n            case 125:\n                break;\n            case 35: // '#'\n                if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n                    break;\n                }\n                return null;\n            default:\n                return null;\n        }\n        this.bump(); // apostrophe\n        var codePoints = [this.char()]; // escaped char\n        this.bump();\n        // read chars until the optional closing apostrophe is found\n        while (!this.isEOF()) {\n            var ch = this.char();\n            if (ch === 39 /* `'` */) {\n                if (this.peek() === 39 /* `'` */) {\n                    codePoints.push(39);\n                    // Bump one more time because we need to skip 2 characters.\n                    this.bump();\n                }\n                else {\n                    // Optional closing apostrophe.\n                    this.bump();\n                    break;\n                }\n            }\n            else {\n                codePoints.push(ch);\n            }\n            this.bump();\n        }\n        return fromCodePoint.apply(void 0, codePoints);\n    };\n    Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n        if (this.isEOF()) {\n            return null;\n        }\n        var ch = this.char();\n        if (ch === 60 /* `<` */ ||\n            ch === 123 /* `{` */ ||\n            (ch === 35 /* `#` */ &&\n                (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n            (ch === 125 /* `}` */ && nestingLevel > 0)) {\n            return null;\n        }\n        else {\n            this.bump();\n            return fromCodePoint(ch);\n        }\n    };\n    Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n        var openingBracePosition = this.clonePosition();\n        this.bump(); // `{`\n        this.bumpSpace();\n        if (this.isEOF()) {\n            return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n        }\n        if (this.char() === 125 /* `}` */) {\n            this.bump();\n            return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n        }\n        // argument name\n        var value = this.parseIdentifierIfPossible().value;\n        if (!value) {\n            return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n        }\n        this.bumpSpace();\n        if (this.isEOF()) {\n            return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n        }\n        switch (this.char()) {\n            // Simple argument: `{name}`\n            case 125 /* `}` */: {\n                this.bump(); // `}`\n                return {\n                    val: {\n                        type: TYPE.argument,\n                        // value does not include the opening and closing braces.\n                        value: value,\n                        location: createLocation(openingBracePosition, this.clonePosition()),\n                    },\n                    err: null,\n                };\n            }\n            // Argument with options: `{name, format, ...}`\n            case 44 /* `,` */: {\n                this.bump(); // `,`\n                this.bumpSpace();\n                if (this.isEOF()) {\n                    return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n                }\n                return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n            }\n            default:\n                return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n        }\n    };\n    /**\n     * Advance the parser until the end of the identifier, if it is currently on\n     * an identifier character. Return an empty string otherwise.\n     */\n    Parser.prototype.parseIdentifierIfPossible = function () {\n        var startingPosition = this.clonePosition();\n        var startOffset = this.offset();\n        var value = matchIdentifierAtIndex(this.message, startOffset);\n        var endOffset = startOffset + value.length;\n        this.bumpTo(endOffset);\n        var endPosition = this.clonePosition();\n        var location = createLocation(startingPosition, endPosition);\n        return { value: value, location: location };\n    };\n    Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n        var _a;\n        // Parse this range:\n        // {name, type, style}\n        //        ^---^\n        var typeStartPosition = this.clonePosition();\n        var argType = this.parseIdentifierIfPossible().value;\n        var typeEndPosition = this.clonePosition();\n        switch (argType) {\n            case '':\n                // Expecting a style string number, date, time, plural, selectordinal, or select.\n                return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n            case 'number':\n            case 'date':\n            case 'time': {\n                // Parse this range:\n                // {name, number, style}\n                //              ^-------^\n                this.bumpSpace();\n                var styleAndLocation = null;\n                if (this.bumpIf(',')) {\n                    this.bumpSpace();\n                    var styleStartPosition = this.clonePosition();\n                    var result = this.parseSimpleArgStyleIfPossible();\n                    if (result.err) {\n                        return result;\n                    }\n                    var style = trimEnd(result.val);\n                    if (style.length === 0) {\n                        return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n                    }\n                    var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n                    styleAndLocation = { style: style, styleLocation: styleLocation };\n                }\n                var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n                if (argCloseResult.err) {\n                    return argCloseResult;\n                }\n                var location_1 = createLocation(openingBracePosition, this.clonePosition());\n                // Extract style or skeleton\n                if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n                    // Skeleton starts with `::`.\n                    var skeleton = trimStart(styleAndLocation.style.slice(2));\n                    if (argType === 'number') {\n                        var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n                        if (result.err) {\n                            return result;\n                        }\n                        return {\n                            val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n                            err: null,\n                        };\n                    }\n                    else {\n                        if (skeleton.length === 0) {\n                            return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n                        }\n                        var dateTimePattern = skeleton;\n                        // Get \"best match\" pattern only if locale is passed, if not, let it\n                        // pass as-is where `parseDateTimeSkeleton()` will throw an error\n                        // for unsupported patterns.\n                        if (this.locale) {\n                            dateTimePattern = getBestPattern(skeleton, this.locale);\n                        }\n                        var style = {\n                            type: SKELETON_TYPE.dateTime,\n                            pattern: dateTimePattern,\n                            location: styleAndLocation.styleLocation,\n                            parsedOptions: this.shouldParseSkeletons\n                                ? parseDateTimeSkeleton(dateTimePattern)\n                                : {},\n                        };\n                        var type = argType === 'date' ? TYPE.date : TYPE.time;\n                        return {\n                            val: { type: type, value: value, location: location_1, style: style },\n                            err: null,\n                        };\n                    }\n                }\n                // Regular style or no style.\n                return {\n                    val: {\n                        type: argType === 'number'\n                            ? TYPE.number\n                            : argType === 'date'\n                                ? TYPE.date\n                                : TYPE.time,\n                        value: value,\n                        location: location_1,\n                        style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n                    },\n                    err: null,\n                };\n            }\n            case 'plural':\n            case 'selectordinal':\n            case 'select': {\n                // Parse this range:\n                // {name, plural, options}\n                //              ^---------^\n                var typeEndPosition_1 = this.clonePosition();\n                this.bumpSpace();\n                if (!this.bumpIf(',')) {\n                    return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n                }\n                this.bumpSpace();\n                // Parse offset:\n                // {name, plural, offset:1, options}\n                //                ^-----^\n                //\n                // or the first option:\n                //\n                // {name, plural, one {...} other {...}}\n                //                ^--^\n                var identifierAndLocation = this.parseIdentifierIfPossible();\n                var pluralOffset = 0;\n                if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n                    if (!this.bumpIf(':')) {\n                        return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n                    }\n                    this.bumpSpace();\n                    var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n                    if (result.err) {\n                        return result;\n                    }\n                    // Parse another identifier for option parsing\n                    this.bumpSpace();\n                    identifierAndLocation = this.parseIdentifierIfPossible();\n                    pluralOffset = result.val;\n                }\n                var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n                if (optionsResult.err) {\n                    return optionsResult;\n                }\n                var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n                if (argCloseResult.err) {\n                    return argCloseResult;\n                }\n                var location_2 = createLocation(openingBracePosition, this.clonePosition());\n                if (argType === 'select') {\n                    return {\n                        val: {\n                            type: TYPE.select,\n                            value: value,\n                            options: fromEntries(optionsResult.val),\n                            location: location_2,\n                        },\n                        err: null,\n                    };\n                }\n                else {\n                    return {\n                        val: {\n                            type: TYPE.plural,\n                            value: value,\n                            options: fromEntries(optionsResult.val),\n                            offset: pluralOffset,\n                            pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n                            location: location_2,\n                        },\n                        err: null,\n                    };\n                }\n            }\n            default:\n                return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n        }\n    };\n    Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n        // Parse: {value, number, ::currency/GBP }\n        //\n        if (this.isEOF() || this.char() !== 125 /* `}` */) {\n            return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n        }\n        this.bump(); // `}`\n        return { val: true, err: null };\n    };\n    /**\n     * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n     */\n    Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n        var nestedBraces = 0;\n        var startPosition = this.clonePosition();\n        while (!this.isEOF()) {\n            var ch = this.char();\n            switch (ch) {\n                case 39 /* `'` */: {\n                    // Treat apostrophe as quoting but include it in the style part.\n                    // Find the end of the quoted literal text.\n                    this.bump();\n                    var apostrophePosition = this.clonePosition();\n                    if (!this.bumpUntil(\"'\")) {\n                        return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n                    }\n                    this.bump();\n                    break;\n                }\n                case 123 /* `{` */: {\n                    nestedBraces += 1;\n                    this.bump();\n                    break;\n                }\n                case 125 /* `}` */: {\n                    if (nestedBraces > 0) {\n                        nestedBraces -= 1;\n                    }\n                    else {\n                        return {\n                            val: this.message.slice(startPosition.offset, this.offset()),\n                            err: null,\n                        };\n                    }\n                    break;\n                }\n                default:\n                    this.bump();\n                    break;\n            }\n        }\n        return {\n            val: this.message.slice(startPosition.offset, this.offset()),\n            err: null,\n        };\n    };\n    Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n        var tokens = [];\n        try {\n            tokens = parseNumberSkeletonFromString(skeleton);\n        }\n        catch (e) {\n            return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n        }\n        return {\n            val: {\n                type: SKELETON_TYPE.number,\n                tokens: tokens,\n                location: location,\n                parsedOptions: this.shouldParseSkeletons\n                    ? parseNumberSkeleton(tokens)\n                    : {},\n            },\n            err: null,\n        };\n    };\n    /**\n     * @param nesting_level The current nesting level of messages.\n     *     This can be positive when parsing message fragment in select or plural argument options.\n     * @param parent_arg_type The parent argument's type.\n     * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n     *     the argument. It is a by-product of a previous parsing attempt.\n     * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n     *     between a pair of opening and closing tags. The nested message will not parse beyond\n     *     the closing tag boundary.\n     */\n    Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n        var _a;\n        var hasOtherClause = false;\n        var options = [];\n        var parsedSelectors = new Set();\n        var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n        // Parse:\n        // one {one apple}\n        // ^--^\n        while (true) {\n            if (selector.length === 0) {\n                var startPosition = this.clonePosition();\n                if (parentArgType !== 'select' && this.bumpIf('=')) {\n                    // Try parse `={number}` selector\n                    var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n                    if (result.err) {\n                        return result;\n                    }\n                    selectorLocation = createLocation(startPosition, this.clonePosition());\n                    selector = this.message.slice(startPosition.offset, this.offset());\n                }\n                else {\n                    break;\n                }\n            }\n            // Duplicate selector clauses\n            if (parsedSelectors.has(selector)) {\n                return this.error(parentArgType === 'select'\n                    ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n                    : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n            }\n            if (selector === 'other') {\n                hasOtherClause = true;\n            }\n            // Parse:\n            // one {one apple}\n            //     ^----------^\n            this.bumpSpace();\n            var openingBracePosition = this.clonePosition();\n            if (!this.bumpIf('{')) {\n                return this.error(parentArgType === 'select'\n                    ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n                    : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n            }\n            var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n            if (fragmentResult.err) {\n                return fragmentResult;\n            }\n            var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n            if (argCloseResult.err) {\n                return argCloseResult;\n            }\n            options.push([\n                selector,\n                {\n                    value: fragmentResult.val,\n                    location: createLocation(openingBracePosition, this.clonePosition()),\n                },\n            ]);\n            // Keep track of the existing selectors\n            parsedSelectors.add(selector);\n            // Prep next selector clause.\n            this.bumpSpace();\n            (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n        }\n        if (options.length === 0) {\n            return this.error(parentArgType === 'select'\n                ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n                : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n        }\n        if (this.requiresOtherClause && !hasOtherClause) {\n            return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n        }\n        return { val: options, err: null };\n    };\n    Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n        var sign = 1;\n        var startingPosition = this.clonePosition();\n        if (this.bumpIf('+')) {\n        }\n        else if (this.bumpIf('-')) {\n            sign = -1;\n        }\n        var hasDigits = false;\n        var decimal = 0;\n        while (!this.isEOF()) {\n            var ch = this.char();\n            if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n                hasDigits = true;\n                decimal = decimal * 10 + (ch - 48);\n                this.bump();\n            }\n            else {\n                break;\n            }\n        }\n        var location = createLocation(startingPosition, this.clonePosition());\n        if (!hasDigits) {\n            return this.error(expectNumberError, location);\n        }\n        decimal *= sign;\n        if (!isSafeInteger(decimal)) {\n            return this.error(invalidNumberError, location);\n        }\n        return { val: decimal, err: null };\n    };\n    Parser.prototype.offset = function () {\n        return this.position.offset;\n    };\n    Parser.prototype.isEOF = function () {\n        return this.offset() === this.message.length;\n    };\n    Parser.prototype.clonePosition = function () {\n        // This is much faster than `Object.assign` or spread.\n        return {\n            offset: this.position.offset,\n            line: this.position.line,\n            column: this.position.column,\n        };\n    };\n    /**\n     * Return the code point at the current position of the parser.\n     * Throws if the index is out of bound.\n     */\n    Parser.prototype.char = function () {\n        var offset = this.position.offset;\n        if (offset >= this.message.length) {\n            throw Error('out of bound');\n        }\n        var code = codePointAt(this.message, offset);\n        if (code === undefined) {\n            throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n        }\n        return code;\n    };\n    Parser.prototype.error = function (kind, location) {\n        return {\n            val: null,\n            err: {\n                kind: kind,\n                message: this.message,\n                location: location,\n            },\n        };\n    };\n    /** Bump the parser to the next UTF-16 code unit. */\n    Parser.prototype.bump = function () {\n        if (this.isEOF()) {\n            return;\n        }\n        var code = this.char();\n        if (code === 10 /* '\\n' */) {\n            this.position.line += 1;\n            this.position.column = 1;\n            this.position.offset += 1;\n        }\n        else {\n            this.position.column += 1;\n            // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n            this.position.offset += code < 0x10000 ? 1 : 2;\n        }\n    };\n    /**\n     * If the substring starting at the current position of the parser has\n     * the given prefix, then bump the parser to the character immediately\n     * following the prefix and return true. Otherwise, don't bump the parser\n     * and return false.\n     */\n    Parser.prototype.bumpIf = function (prefix) {\n        if (startsWith(this.message, prefix, this.offset())) {\n            for (var i = 0; i < prefix.length; i++) {\n                this.bump();\n            }\n            return true;\n        }\n        return false;\n    };\n    /**\n     * Bump the parser until the pattern character is found and return `true`.\n     * Otherwise bump to the end of the file and return `false`.\n     */\n    Parser.prototype.bumpUntil = function (pattern) {\n        var currentOffset = this.offset();\n        var index = this.message.indexOf(pattern, currentOffset);\n        if (index >= 0) {\n            this.bumpTo(index);\n            return true;\n        }\n        else {\n            this.bumpTo(this.message.length);\n            return false;\n        }\n    };\n    /**\n     * Bump the parser to the target offset.\n     * If target offset is beyond the end of the input, bump the parser to the end of the input.\n     */\n    Parser.prototype.bumpTo = function (targetOffset) {\n        if (this.offset() > targetOffset) {\n            throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n        }\n        targetOffset = Math.min(targetOffset, this.message.length);\n        while (true) {\n            var offset = this.offset();\n            if (offset === targetOffset) {\n                break;\n            }\n            if (offset > targetOffset) {\n                throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n            }\n            this.bump();\n            if (this.isEOF()) {\n                break;\n            }\n        }\n    };\n    /** advance the parser through all whitespace to the next non-whitespace code unit. */\n    Parser.prototype.bumpSpace = function () {\n        while (!this.isEOF() && _isWhiteSpace(this.char())) {\n            this.bump();\n        }\n    };\n    /**\n     * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n     * If the input has been exhausted, then this returns null.\n     */\n    Parser.prototype.peek = function () {\n        if (this.isEOF()) {\n            return null;\n        }\n        var code = this.char();\n        var offset = this.offset();\n        var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n        return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n    };\n    return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n    return ((codepoint >= 97 && codepoint <= 122) ||\n        (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n    return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n    return (c === 45 /* '-' */ ||\n        c === 46 /* '.' */ ||\n        (c >= 48 && c <= 57) /* 0..9 */ ||\n        c === 95 /* '_' */ ||\n        (c >= 97 && c <= 122) /** a..z */ ||\n        (c >= 65 && c <= 90) /* A..Z */ ||\n        c == 0xb7 ||\n        (c >= 0xc0 && c <= 0xd6) ||\n        (c >= 0xd8 && c <= 0xf6) ||\n        (c >= 0xf8 && c <= 0x37d) ||\n        (c >= 0x37f && c <= 0x1fff) ||\n        (c >= 0x200c && c <= 0x200d) ||\n        (c >= 0x203f && c <= 0x2040) ||\n        (c >= 0x2070 && c <= 0x218f) ||\n        (c >= 0x2c00 && c <= 0x2fef) ||\n        (c >= 0x3001 && c <= 0xd7ff) ||\n        (c >= 0xf900 && c <= 0xfdcf) ||\n        (c >= 0xfdf0 && c <= 0xfffd) ||\n        (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n    return ((c >= 0x0009 && c <= 0x000d) ||\n        c === 0x0020 ||\n        c === 0x0085 ||\n        (c >= 0x200e && c <= 0x200f) ||\n        c === 0x2028 ||\n        c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n    return ((c >= 0x0021 && c <= 0x0023) ||\n        c === 0x0024 ||\n        (c >= 0x0025 && c <= 0x0027) ||\n        c === 0x0028 ||\n        c === 0x0029 ||\n        c === 0x002a ||\n        c === 0x002b ||\n        c === 0x002c ||\n        c === 0x002d ||\n        (c >= 0x002e && c <= 0x002f) ||\n        (c >= 0x003a && c <= 0x003b) ||\n        (c >= 0x003c && c <= 0x003e) ||\n        (c >= 0x003f && c <= 0x0040) ||\n        c === 0x005b ||\n        c === 0x005c ||\n        c === 0x005d ||\n        c === 0x005e ||\n        c === 0x0060 ||\n        c === 0x007b ||\n        c === 0x007c ||\n        c === 0x007d ||\n        c === 0x007e ||\n        c === 0x00a1 ||\n        (c >= 0x00a2 && c <= 0x00a5) ||\n        c === 0x00a6 ||\n        c === 0x00a7 ||\n        c === 0x00a9 ||\n        c === 0x00ab ||\n        c === 0x00ac ||\n        c === 0x00ae ||\n        c === 0x00b0 ||\n        c === 0x00b1 ||\n        c === 0x00b6 ||\n        c === 0x00bb ||\n        c === 0x00bf ||\n        c === 0x00d7 ||\n        c === 0x00f7 ||\n        (c >= 0x2010 && c <= 0x2015) ||\n        (c >= 0x2016 && c <= 0x2017) ||\n        c === 0x2018 ||\n        c === 0x2019 ||\n        c === 0x201a ||\n        (c >= 0x201b && c <= 0x201c) ||\n        c === 0x201d ||\n        c === 0x201e ||\n        c === 0x201f ||\n        (c >= 0x2020 && c <= 0x2027) ||\n        (c >= 0x2030 && c <= 0x2038) ||\n        c === 0x2039 ||\n        c === 0x203a ||\n        (c >= 0x203b && c <= 0x203e) ||\n        (c >= 0x2041 && c <= 0x2043) ||\n        c === 0x2044 ||\n        c === 0x2045 ||\n        c === 0x2046 ||\n        (c >= 0x2047 && c <= 0x2051) ||\n        c === 0x2052 ||\n        c === 0x2053 ||\n        (c >= 0x2055 && c <= 0x205e) ||\n        (c >= 0x2190 && c <= 0x2194) ||\n        (c >= 0x2195 && c <= 0x2199) ||\n        (c >= 0x219a && c <= 0x219b) ||\n        (c >= 0x219c && c <= 0x219f) ||\n        c === 0x21a0 ||\n        (c >= 0x21a1 && c <= 0x21a2) ||\n        c === 0x21a3 ||\n        (c >= 0x21a4 && c <= 0x21a5) ||\n        c === 0x21a6 ||\n        (c >= 0x21a7 && c <= 0x21ad) ||\n        c === 0x21ae ||\n        (c >= 0x21af && c <= 0x21cd) ||\n        (c >= 0x21ce && c <= 0x21cf) ||\n        (c >= 0x21d0 && c <= 0x21d1) ||\n        c === 0x21d2 ||\n        c === 0x21d3 ||\n        c === 0x21d4 ||\n        (c >= 0x21d5 && c <= 0x21f3) ||\n        (c >= 0x21f4 && c <= 0x22ff) ||\n        (c >= 0x2300 && c <= 0x2307) ||\n        c === 0x2308 ||\n        c === 0x2309 ||\n        c === 0x230a ||\n        c === 0x230b ||\n        (c >= 0x230c && c <= 0x231f) ||\n        (c >= 0x2320 && c <= 0x2321) ||\n        (c >= 0x2322 && c <= 0x2328) ||\n        c === 0x2329 ||\n        c === 0x232a ||\n        (c >= 0x232b && c <= 0x237b) ||\n        c === 0x237c ||\n        (c >= 0x237d && c <= 0x239a) ||\n        (c >= 0x239b && c <= 0x23b3) ||\n        (c >= 0x23b4 && c <= 0x23db) ||\n        (c >= 0x23dc && c <= 0x23e1) ||\n        (c >= 0x23e2 && c <= 0x2426) ||\n        (c >= 0x2427 && c <= 0x243f) ||\n        (c >= 0x2440 && c <= 0x244a) ||\n        (c >= 0x244b && c <= 0x245f) ||\n        (c >= 0x2500 && c <= 0x25b6) ||\n        c === 0x25b7 ||\n        (c >= 0x25b8 && c <= 0x25c0) ||\n        c === 0x25c1 ||\n        (c >= 0x25c2 && c <= 0x25f7) ||\n        (c >= 0x25f8 && c <= 0x25ff) ||\n        (c >= 0x2600 && c <= 0x266e) ||\n        c === 0x266f ||\n        (c >= 0x2670 && c <= 0x2767) ||\n        c === 0x2768 ||\n        c === 0x2769 ||\n        c === 0x276a ||\n        c === 0x276b ||\n        c === 0x276c ||\n        c === 0x276d ||\n        c === 0x276e ||\n        c === 0x276f ||\n        c === 0x2770 ||\n        c === 0x2771 ||\n        c === 0x2772 ||\n        c === 0x2773 ||\n        c === 0x2774 ||\n        c === 0x2775 ||\n        (c >= 0x2794 && c <= 0x27bf) ||\n        (c >= 0x27c0 && c <= 0x27c4) ||\n        c === 0x27c5 ||\n        c === 0x27c6 ||\n        (c >= 0x27c7 && c <= 0x27e5) ||\n        c === 0x27e6 ||\n        c === 0x27e7 ||\n        c === 0x27e8 ||\n        c === 0x27e9 ||\n        c === 0x27ea ||\n        c === 0x27eb ||\n        c === 0x27ec ||\n        c === 0x27ed ||\n        c === 0x27ee ||\n        c === 0x27ef ||\n        (c >= 0x27f0 && c <= 0x27ff) ||\n        (c >= 0x2800 && c <= 0x28ff) ||\n        (c >= 0x2900 && c <= 0x2982) ||\n        c === 0x2983 ||\n        c === 0x2984 ||\n        c === 0x2985 ||\n        c === 0x2986 ||\n        c === 0x2987 ||\n        c === 0x2988 ||\n        c === 0x2989 ||\n        c === 0x298a ||\n        c === 0x298b ||\n        c === 0x298c ||\n        c === 0x298d ||\n        c === 0x298e ||\n        c === 0x298f ||\n        c === 0x2990 ||\n        c === 0x2991 ||\n        c === 0x2992 ||\n        c === 0x2993 ||\n        c === 0x2994 ||\n        c === 0x2995 ||\n        c === 0x2996 ||\n        c === 0x2997 ||\n        c === 0x2998 ||\n        (c >= 0x2999 && c <= 0x29d7) ||\n        c === 0x29d8 ||\n        c === 0x29d9 ||\n        c === 0x29da ||\n        c === 0x29db ||\n        (c >= 0x29dc && c <= 0x29fb) ||\n        c === 0x29fc ||\n        c === 0x29fd ||\n        (c >= 0x29fe && c <= 0x2aff) ||\n        (c >= 0x2b00 && c <= 0x2b2f) ||\n        (c >= 0x2b30 && c <= 0x2b44) ||\n        (c >= 0x2b45 && c <= 0x2b46) ||\n        (c >= 0x2b47 && c <= 0x2b4c) ||\n        (c >= 0x2b4d && c <= 0x2b73) ||\n        (c >= 0x2b74 && c <= 0x2b75) ||\n        (c >= 0x2b76 && c <= 0x2b95) ||\n        c === 0x2b96 ||\n        (c >= 0x2b97 && c <= 0x2bff) ||\n        (c >= 0x2e00 && c <= 0x2e01) ||\n        c === 0x2e02 ||\n        c === 0x2e03 ||\n        c === 0x2e04 ||\n        c === 0x2e05 ||\n        (c >= 0x2e06 && c <= 0x2e08) ||\n        c === 0x2e09 ||\n        c === 0x2e0a ||\n        c === 0x2e0b ||\n        c === 0x2e0c ||\n        c === 0x2e0d ||\n        (c >= 0x2e0e && c <= 0x2e16) ||\n        c === 0x2e17 ||\n        (c >= 0x2e18 && c <= 0x2e19) ||\n        c === 0x2e1a ||\n        c === 0x2e1b ||\n        c === 0x2e1c ||\n        c === 0x2e1d ||\n        (c >= 0x2e1e && c <= 0x2e1f) ||\n        c === 0x2e20 ||\n        c === 0x2e21 ||\n        c === 0x2e22 ||\n        c === 0x2e23 ||\n        c === 0x2e24 ||\n        c === 0x2e25 ||\n        c === 0x2e26 ||\n        c === 0x2e27 ||\n        c === 0x2e28 ||\n        c === 0x2e29 ||\n        (c >= 0x2e2a && c <= 0x2e2e) ||\n        c === 0x2e2f ||\n        (c >= 0x2e30 && c <= 0x2e39) ||\n        (c >= 0x2e3a && c <= 0x2e3b) ||\n        (c >= 0x2e3c && c <= 0x2e3f) ||\n        c === 0x2e40 ||\n        c === 0x2e41 ||\n        c === 0x2e42 ||\n        (c >= 0x2e43 && c <= 0x2e4f) ||\n        (c >= 0x2e50 && c <= 0x2e51) ||\n        c === 0x2e52 ||\n        (c >= 0x2e53 && c <= 0x2e7f) ||\n        (c >= 0x3001 && c <= 0x3003) ||\n        c === 0x3008 ||\n        c === 0x3009 ||\n        c === 0x300a ||\n        c === 0x300b ||\n        c === 0x300c ||\n        c === 0x300d ||\n        c === 0x300e ||\n        c === 0x300f ||\n        c === 0x3010 ||\n        c === 0x3011 ||\n        (c >= 0x3012 && c <= 0x3013) ||\n        c === 0x3014 ||\n        c === 0x3015 ||\n        c === 0x3016 ||\n        c === 0x3017 ||\n        c === 0x3018 ||\n        c === 0x3019 ||\n        c === 0x301a ||\n        c === 0x301b ||\n        c === 0x301c ||\n        c === 0x301d ||\n        (c >= 0x301e && c <= 0x301f) ||\n        c === 0x3020 ||\n        c === 0x3030 ||\n        c === 0xfd3e ||\n        c === 0xfd3f ||\n        (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n    els.forEach(function (el) {\n        delete el.location;\n        if (isSelectElement(el) || isPluralElement(el)) {\n            for (var k in el.options) {\n                delete el.options[k].location;\n                pruneLocation(el.options[k].value);\n            }\n        }\n        else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n            delete el.style.location;\n        }\n        else if ((isDateElement(el) || isTimeElement(el)) &&\n            isDateTimeSkeleton(el.style)) {\n            delete el.style.location;\n        }\n        else if (isTagElement(el)) {\n            pruneLocation(el.children);\n        }\n    });\n}\nexport function parse(message, opts) {\n    if (opts === void 0) { opts = {}; }\n    opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n    var result = new Parser(message, opts).parse();\n    if (result.err) {\n        var error = SyntaxError(ErrorKind[result.err.kind]);\n        // @ts-expect-error Assign to error object\n        error.location = result.err.location;\n        // @ts-expect-error Assign to error object\n        error.originalMessage = result.err.message;\n        throw error;\n    }\n    if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n        pruneLocation(result.val);\n    }\n    return result.val;\n}\nexport * from './types';\n// only for testing\nexport var _Parser = Parser;\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n    // When we have a placeholder but no value to format\n    ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n    // When value supplied is invalid\n    ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n    // When we need specific Intl API but it's not available\n    ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n    __extends(FormatError, _super);\n    function FormatError(msg, code, originalMessage) {\n        var _this = _super.call(this, msg) || this;\n        _this.code = code;\n        _this.originalMessage = originalMessage;\n        return _this;\n    }\n    FormatError.prototype.toString = function () {\n        return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n    };\n    return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n    __extends(InvalidValueError, _super);\n    function InvalidValueError(variableId, value, options, originalMessage) {\n        return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n    }\n    return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n    __extends(InvalidValueTypeError, _super);\n    function InvalidValueTypeError(value, type, originalMessage) {\n        return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n    }\n    return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n    __extends(MissingValueError, _super);\n    function MissingValueError(variableId, originalMessage) {\n        return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n    }\n    return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n    PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n    PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n    if (parts.length < 2) {\n        return parts;\n    }\n    return parts.reduce(function (all, part) {\n        var lastPart = all[all.length - 1];\n        if (!lastPart ||\n            lastPart.type !== PART_TYPE.literal ||\n            part.type !== PART_TYPE.literal) {\n            all.push(part);\n        }\n        else {\n            lastPart.value += part.value;\n        }\n        return all;\n    }, []);\n}\nexport function isFormatXMLElementFn(el) {\n    return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n    // Hot path for straight simple msg translations\n    if (els.length === 1 && isLiteralElement(els[0])) {\n        return [\n            {\n                type: PART_TYPE.literal,\n                value: els[0].value,\n            },\n        ];\n    }\n    var result = [];\n    for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n        var el = els_1[_i];\n        // Exit early for string parts.\n        if (isLiteralElement(el)) {\n            result.push({\n                type: PART_TYPE.literal,\n                value: el.value,\n            });\n            continue;\n        }\n        // TODO: should this part be literal type?\n        // Replace `#` in plural rules with the actual numeric value.\n        if (isPoundElement(el)) {\n            if (typeof currentPluralValue === 'number') {\n                result.push({\n                    type: PART_TYPE.literal,\n                    value: formatters.getNumberFormat(locales).format(currentPluralValue),\n                });\n            }\n            continue;\n        }\n        var varName = el.value;\n        // Enforce that all required values are provided by the caller.\n        if (!(values && varName in values)) {\n            throw new MissingValueError(varName, originalMessage);\n        }\n        var value = values[varName];\n        if (isArgumentElement(el)) {\n            if (!value || typeof value === 'string' || typeof value === 'number') {\n                value =\n                    typeof value === 'string' || typeof value === 'number'\n                        ? String(value)\n                        : '';\n            }\n            result.push({\n                type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n                value: value,\n            });\n            continue;\n        }\n        // Recursively format plural and select parts' option — which can be a\n        // nested pattern structure. The choosing of the option to use is\n        // abstracted-by and delegated-to the part helper object.\n        if (isDateElement(el)) {\n            var style = typeof el.style === 'string'\n                ? formats.date[el.style]\n                : isDateTimeSkeleton(el.style)\n                    ? el.style.parsedOptions\n                    : undefined;\n            result.push({\n                type: PART_TYPE.literal,\n                value: formatters\n                    .getDateTimeFormat(locales, style)\n                    .format(value),\n            });\n            continue;\n        }\n        if (isTimeElement(el)) {\n            var style = typeof el.style === 'string'\n                ? formats.time[el.style]\n                : isDateTimeSkeleton(el.style)\n                    ? el.style.parsedOptions\n                    : formats.time.medium;\n            result.push({\n                type: PART_TYPE.literal,\n                value: formatters\n                    .getDateTimeFormat(locales, style)\n                    .format(value),\n            });\n            continue;\n        }\n        if (isNumberElement(el)) {\n            var style = typeof el.style === 'string'\n                ? formats.number[el.style]\n                : isNumberSkeleton(el.style)\n                    ? el.style.parsedOptions\n                    : undefined;\n            if (style && style.scale) {\n                value =\n                    value *\n                        (style.scale || 1);\n            }\n            result.push({\n                type: PART_TYPE.literal,\n                value: formatters\n                    .getNumberFormat(locales, style)\n                    .format(value),\n            });\n            continue;\n        }\n        if (isTagElement(el)) {\n            var children = el.children, value_1 = el.value;\n            var formatFn = values[value_1];\n            if (!isFormatXMLElementFn(formatFn)) {\n                throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n            }\n            var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n            var chunks = formatFn(parts.map(function (p) { return p.value; }));\n            if (!Array.isArray(chunks)) {\n                chunks = [chunks];\n            }\n            result.push.apply(result, chunks.map(function (c) {\n                return {\n                    type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n                    value: c,\n                };\n            }));\n        }\n        if (isSelectElement(el)) {\n            var opt = el.options[value] || el.options.other;\n            if (!opt) {\n                throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n            }\n            result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n            continue;\n        }\n        if (isPluralElement(el)) {\n            var opt = el.options[\"=\".concat(value)];\n            if (!opt) {\n                if (!Intl.PluralRules) {\n                    throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n                }\n                var rule = formatters\n                    .getPluralRules(locales, { type: el.pluralType })\n                    .select(value - (el.offset || 0));\n                opt = el.options[rule] || el.options.other;\n            }\n            if (!opt) {\n                throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n            }\n            result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n            continue;\n        }\n    }\n    return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __rest, __spreadArray } from \"tslib\";\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { parse, } from '@formatjs/icu-messageformat-parser';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n    if (!c2) {\n        return c1;\n    }\n    return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n        all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n        return all;\n    }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n    if (!configs) {\n        return defaultConfig;\n    }\n    return Object.keys(defaultConfig).reduce(function (all, k) {\n        all[k] = mergeConfig(defaultConfig[k], configs[k]);\n        return all;\n    }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n    return {\n        create: function () {\n            return {\n                get: function (key) {\n                    return store[key];\n                },\n                set: function (key, value) {\n                    store[key] = value;\n                },\n            };\n        },\n    };\n}\nfunction createDefaultFormatters(cache) {\n    if (cache === void 0) { cache = {\n        number: {},\n        dateTime: {},\n        pluralRules: {},\n    }; }\n    return {\n        getNumberFormat: memoize(function () {\n            var _a;\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n        }, {\n            cache: createFastMemoizeCache(cache.number),\n            strategy: strategies.variadic,\n        }),\n        getDateTimeFormat: memoize(function () {\n            var _a;\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n        }, {\n            cache: createFastMemoizeCache(cache.dateTime),\n            strategy: strategies.variadic,\n        }),\n        getPluralRules: memoize(function () {\n            var _a;\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n        }, {\n            cache: createFastMemoizeCache(cache.pluralRules),\n            strategy: strategies.variadic,\n        }),\n    };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n    function IntlMessageFormat(message, locales, overrideFormats, opts) {\n        if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n        var _this = this;\n        this.formatterCache = {\n            number: {},\n            dateTime: {},\n            pluralRules: {},\n        };\n        this.format = function (values) {\n            var parts = _this.formatToParts(values);\n            // Hot path for straight simple msg translations\n            if (parts.length === 1) {\n                return parts[0].value;\n            }\n            var result = parts.reduce(function (all, part) {\n                if (!all.length ||\n                    part.type !== PART_TYPE.literal ||\n                    typeof all[all.length - 1] !== 'string') {\n                    all.push(part.value);\n                }\n                else {\n                    all[all.length - 1] += part.value;\n                }\n                return all;\n            }, []);\n            if (result.length <= 1) {\n                return result[0] || '';\n            }\n            return result;\n        };\n        this.formatToParts = function (values) {\n            return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n        };\n        this.resolvedOptions = function () {\n            var _a;\n            return ({\n                locale: ((_a = _this.resolvedLocale) === null || _a === void 0 ? void 0 : _a.toString()) ||\n                    Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n            });\n        };\n        this.getAst = function () { return _this.ast; };\n        // Defined first because it's used to build the format pattern.\n        this.locales = locales;\n        this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);\n        if (typeof message === 'string') {\n            this.message = message;\n            if (!IntlMessageFormat.__parse) {\n                throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n            }\n            var _a = opts || {}, formatters = _a.formatters, parseOpts = __rest(_a, [\"formatters\"]);\n            // Parse string messages into an AST.\n            this.ast = IntlMessageFormat.__parse(message, __assign(__assign({}, parseOpts), { locale: this.resolvedLocale }));\n        }\n        else {\n            this.ast = message;\n        }\n        if (!Array.isArray(this.ast)) {\n            throw new TypeError('A message must be provided as a String or AST.');\n        }\n        // Creates a new object with the specified `formats` merged with the default\n        // formats.\n        this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n        this.formatters =\n            (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n    }\n    Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n        get: function () {\n            if (!IntlMessageFormat.memoizedDefaultLocale) {\n                IntlMessageFormat.memoizedDefaultLocale =\n                    new Intl.NumberFormat().resolvedOptions().locale;\n            }\n            return IntlMessageFormat.memoizedDefaultLocale;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    IntlMessageFormat.memoizedDefaultLocale = null;\n    IntlMessageFormat.resolveLocale = function (locales) {\n        if (typeof Intl.Locale === 'undefined') {\n            return;\n        }\n        var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);\n        if (supportedLocales.length > 0) {\n            return new Intl.Locale(supportedLocales[0]);\n        }\n        return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);\n    };\n    IntlMessageFormat.__parse = parse;\n    // Default format options used as the prototype of the `formats` provided to the\n    // constructor. These are used when constructing the internal Intl.NumberFormat\n    // and Intl.DateTimeFormat instances.\n    IntlMessageFormat.formats = {\n        number: {\n            integer: {\n                maximumFractionDigits: 0,\n            },\n            currency: {\n                style: 'currency',\n            },\n            percent: {\n                style: 'percent',\n            },\n        },\n        date: {\n            short: {\n                month: 'numeric',\n                day: 'numeric',\n                year: '2-digit',\n            },\n            medium: {\n                month: 'short',\n                day: 'numeric',\n                year: 'numeric',\n            },\n            long: {\n                month: 'long',\n                day: 'numeric',\n                year: 'numeric',\n            },\n            full: {\n                weekday: 'long',\n                month: 'long',\n                day: 'numeric',\n                year: 'numeric',\n            },\n        },\n        time: {\n            short: {\n                hour: 'numeric',\n                minute: 'numeric',\n            },\n            medium: {\n                hour: 'numeric',\n                minute: 'numeric',\n                second: 'numeric',\n            },\n            long: {\n                hour: 'numeric',\n                minute: 'numeric',\n                second: 'numeric',\n                timeZoneName: 'short',\n            },\n            full: {\n                hour: 'numeric',\n                minute: 'numeric',\n                second: 'numeric',\n                timeZoneName: 'short',\n            },\n        },\n    };\n    return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { IntlMessageFormat } from './src/core';\nexport * from './src/core';\nexport * from './src/error';\nexport * from './src/formatters';\nexport { IntlMessageFormat };\nexport default IntlMessageFormat;\n",null,null],"names":["IntlMessageFormat"],"mappings":"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QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,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ACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,SAAS,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC;AACpC,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,QAAQ,CAAC,KAAK,MAAM;AACpB,SAAS,CAAC,IA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"}