Difference between revisions of "MediaWiki:Gadget-libPolyfill.js"

From Moegirlpedia
Jump to: navigation, search
(Created page with "// <pre> // 基于Chromium 70.0.3538.0版本和截至2022年1月20日 (四) 10:23 (CST)的全站js内容通过由《金融时报》开发的polyfill.io所提供的分析程序...")
 
m (跨站同步)
(Tag: Bot)
 
Line 1: Line 1:
// <pre>
+
/* <pre> */
// 基于Chromium 70.0.3538.0版本和截至2022年1月20日 (四) 10:23 (CST)的全站js内容通过由《金融时报》开发的polyfill.io所提供的分析程序分析得来
+
/**
/* Polyfill service v3.109.0
+
  * -------------------------------------------------------------------------
  * For detailed credits and licence information see https://github.com/financial-times/polyfill-service.
+
  * !!! DON'T MODIFY THIS PAGE MANUALLY, YOUR CHANGES WILL BE OVERWRITTEN !!!
  *  
+
  * -------------------------------------------------------------------------
* Features requested: Array.from,Array.isArray,Array.prototype.entries,Array.prototype.every,Array.prototype.filter,Array.prototype.find,Array.prototype.forEach,Array.prototype.includes,Array.prototype.indexOf,Array.prototype.keys,Array.prototype.lastIndexOf,Array.prototype.map,Array.prototype.reduce,Array.prototype.sort,Array.prototype.values,ArrayBuffer,ArrayBuffer.isView,Blob,CustomEvent,DataView,Date.now,Date.prototype.toISOString,Float32Array,Float64Array,Function.prototype.bind,Int16Array,Int32Array,Int8Array,IntersectionObserver,JSON,Map,Math.sign,MutationObserver,Number.EPSILON,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.isInteger,Number.isSafeInteger,Object.assign,Object.entries,Object.freeze,Object.fromEntries,Object.getOwnPropertySymbols,Object.setPrototypeOf,Object.values,Promise,Promise.prototype.finally,RegExp.prototype.flags,Set,String.prototype.codePointAt,String.prototype.normalize,String.prototype.trim,Symbol,Symbol.iterator,Symbol.prototype.description,TextDecoder,URL,URLSearchParams,Uint16Array,Uint32Array,Uint8Array,Uint8ClampedArray,WeakMap,WeakSet,XMLHttpRequest,atob,console,document,fetch,getComputedStyle,globalThis,localStorage,modernizr:es5object,modernizr:es6string,requestAnimationFrame
+
  */
*
+
var _addText = '{{GHIACode|page=GHIA:MoegirlPediaInterfaceCodes/blob/master/src/gadgets/libPolyfill/MediaWiki:Gadget-libPolyfill.js|user=[[U:AnnAngela]]|longId=378eaeec797247cfd4acb690a83a1c45d7be96af|shortId=378eaee|message=auto: Gadget-polyfill generator - commit from GitHub Actions}}';
  * - _ESAbstract.Call, License: CC0 (required by "Object.fromEntries", "_ESAbstract.AddEntriesFromIterable", "_ESAbstract.IteratorStep", "_ESAbstract.IteratorNext")
 
* - _ESAbstract.CreateDataProperty, License: CC0 (required by "Object.fromEntries", "_ESAbstract.CreateDataPropertyOrThrow")
 
* - _ESAbstract.CreateDataPropertyOrThrow, License: CC0 (required by "Object.fromEntries")
 
* - _ESAbstract.CreateMethodProperty, License: CC0 (required by "Object.fromEntries")
 
* - _ESAbstract.Get, License: CC0 (required by "Object.fromEntries", "_ESAbstract.AddEntriesFromIterable", "_ESAbstract.IteratorStep", "_ESAbstract.IteratorComplete")
 
* - _ESAbstract.IsCallable, License: CC0 (required by "Object.fromEntries", "_ESAbstract.ToPropertyKey", "_ESAbstract.ToPrimitive", "_ESAbstract.OrdinaryToPrimitive")
 
* - _ESAbstract.RequireObjectCoercible, License: CC0 (required by "Object.fromEntries")
 
* - _ESAbstract.ToBoolean, License: CC0 (required by "Object.fromEntries", "_ESAbstract.AddEntriesFromIterable", "_ESAbstract.IteratorStep", "_ESAbstract.IteratorComplete")
 
* - _ESAbstract.ToObject, License: CC0 (required by "Object.fromEntries", "_ESAbstract.AddEntriesFromIterable", "_ESAbstract.IteratorClose", "_ESAbstract.GetMethod", "_ESAbstract.GetV")
 
* - _ESAbstract.GetV, License: CC0 (required by "Object.fromEntries", "_ESAbstract.AddEntriesFromIterable", "_ESAbstract.IteratorClose", "_ESAbstract.GetMethod")
 
* - _ESAbstract.GetMethod, License: CC0 (required by "Object.fromEntries", "_ESAbstract.AddEntriesFromIterable", "_ESAbstract.IteratorClose")
 
* - _ESAbstract.Type, License: CC0 (required by "Object.fromEntries", "_ESAbstract.AddEntriesFromIterable", "_ESAbstract.IteratorStep", "_ESAbstract.IteratorComplete")
 
* - _ESAbstract.GetIterator, License: CC0 (required by "Object.fromEntries", "_ESAbstract.AddEntriesFromIterable")
 
* - _ESAbstract.IteratorClose, License: CC0 (required by "Object.fromEntries", "_ESAbstract.AddEntriesFromIterable")
 
* - _ESAbstract.IteratorComplete, License: CC0 (required by "Object.fromEntries", "_ESAbstract.AddEntriesFromIterable", "_ESAbstract.IteratorStep")
 
* - _ESAbstract.IteratorNext, License: CC0 (required by "Object.fromEntries", "_ESAbstract.AddEntriesFromIterable", "_ESAbstract.IteratorStep")
 
* - _ESAbstract.IteratorStep, License: CC0 (required by "Object.fromEntries", "_ESAbstract.AddEntriesFromIterable")
 
* - _ESAbstract.IteratorValue, License: CC0 (required by "Object.fromEntries", "_ESAbstract.AddEntriesFromIterable")
 
* - _ESAbstract.AddEntriesFromIterable, License: CC0 (required by "Object.fromEntries")
 
* - _ESAbstract.OrdinaryToPrimitive, License: CC0 (required by "Object.fromEntries", "_ESAbstract.ToPropertyKey", "_ESAbstract.ToPrimitive")
 
* - _ESAbstract.ToPrimitive, License: CC0 (required by "Object.fromEntries", "_ESAbstract.ToPropertyKey", "_ESAbstract.ToString")
 
  * - _ESAbstract.ToString, License: CC0 (required by "Object.fromEntries", "_ESAbstract.ToPropertyKey")
 
* - _ESAbstract.ToPropertyKey, License: CC0 (required by "Object.fromEntries")
 
* - globalThis, License: MIT
 
* - Object.fromEntries, License: CC0
 
*
 
* These features were not recognised:
 
* - ArrayBuffer.isView */
 
  
(function(self, undefined) {
+
"use strict";
 
+
(function (self, undefined) {
// _ESAbstract.Call
+
    function Call(F, V) {
/* global IsCallable */
+
        var argumentsList = arguments.length > 2 ? arguments[2] : [];
// 7.3.12. Call ( F, V [ , argumentsList ] )
+
        if (IsCallable(F) === false) {
function Call(F, V /* [, argumentsList] */) { // eslint-disable-line no-unused-vars
+
            throw new TypeError(Object.prototype.toString.call(F) + 'is not a function.');
    // 1. If argumentsList is not present, set argumentsList to a new empty List.
+
        }
    var argumentsList = arguments.length > 2 ? arguments[2] : [];
+
        return F.apply(V, argumentsList);
    // 2. If IsCallable(F) is false, throw a TypeError exception.
+
    }
     if (IsCallable(F) === false) {
+
     function CreateDataProperty(O, P, V) {
         throw new TypeError(Object.prototype.toString.call(F) + 'is not a function.');
+
        var newDesc = {
 +
            value: V,
 +
            writable: true,
 +
            enumerable: true,
 +
            configurable: true
 +
        };
 +
        try {
 +
            Object.defineProperty(O, P, newDesc);
 +
            return true;
 +
        }
 +
        catch (e) {
 +
            return false;
 +
        }
 +
    }
 +
    function CreateDataPropertyOrThrow(O, P, V) {
 +
         var success = CreateDataProperty(O, P, V);
 +
        if (!success) {
 +
            throw new TypeError('Cannot assign value `' + Object.prototype.toString.call(V) + '` to property `' + Object.prototype.toString.call(P) + '` on object `' + Object.prototype.toString.call(O) + '`');
 +
        }
 +
        return success;
 
     }
 
     }
     // 3. Return ? F.[[Call]](V, argumentsList).
+
     function CreateMethodProperty(O, P, V) {
    return F.apply(V, argumentsList);
+
        var newDesc = {
}
+
            value: V,
 
+
            writable: true,
// _ESAbstract.CreateDataProperty
+
            enumerable: false,
// 7.3.4. CreateDataProperty ( O, P, V )
+
            configurable: true
// NOTE
+
        };
// This abstract operation creates a property whose attributes are set to the same defaults used for properties created by the ECMAScript language assignment operator.
 
// Normally, the property will not already exist. If it does exist and is not configurable or if O is not extensible, [[DefineOwnProperty]] will return false.
 
function CreateDataProperty(O, P, V) { // eslint-disable-line no-unused-vars
 
    // 1. Assert: Type(O) is Object.
 
    // 2. Assert: IsPropertyKey(P) is true.
 
    // 3. Let newDesc be the PropertyDescriptor{ [[Value]]: V, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true }.
 
    var newDesc = {
 
        value: V,
 
        writable: true,
 
        enumerable: true,
 
        configurable: true
 
    };
 
    // 4. Return ? O.[[DefineOwnProperty]](P, newDesc).
 
    try {
 
 
         Object.defineProperty(O, P, newDesc);
 
         Object.defineProperty(O, P, newDesc);
        return true;
 
    } catch (e) {
 
        return false;
 
 
     }
 
     }
}
+
    function Get(O, P) {
 
+
        return O[P];
// _ESAbstract.CreateDataPropertyOrThrow
+
     }
/* global CreateDataProperty */
+
     function IsCallable(argument) {
// 7.3.6. CreateDataPropertyOrThrow ( O, P, V )
+
         return typeof argument === 'function';
function CreateDataPropertyOrThrow(O, P, V) { // eslint-disable-line no-unused-vars
 
    // 1. Assert: Type(O) is Object.
 
    // 2. Assert: IsPropertyKey(P) is true.
 
    // 3. Let success be ? CreateDataProperty(O, P, V).
 
    var success = CreateDataProperty(O, P, V);
 
     // 4. If success is false, throw a TypeError exception.
 
     if (!success) {
 
         throw new TypeError('Cannot assign value `' + Object.prototype.toString.call(V) + '` to property `' + Object.prototype.toString.call(P) + '` on object `' + Object.prototype.toString.call(O) + '`');
 
 
     }
 
     }
     // 5. Return success.
+
     function RequireObjectCoercible(argument) {
    return success;
+
        if (argument === null || argument === undefined) {
}
+
            throw TypeError(Object.prototype.toString.call(argument) + ' is not coercible to Object.');
 
+
        }
// _ESAbstract.CreateMethodProperty
+
        return argument;
// 7.3.5. CreateMethodProperty ( O, P, V )
 
function CreateMethodProperty(O, P, V) { // eslint-disable-line no-unused-vars
 
    // 1. Assert: Type(O) is Object.
 
    // 2. Assert: IsPropertyKey(P) is true.
 
    // 3. Let newDesc be the PropertyDescriptor{[[Value]]: V, [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true}.
 
    var newDesc = {
 
        value: V,
 
        writable: true,
 
        enumerable: false,
 
        configurable: true
 
    };
 
    // 4. Return ? O.[[DefineOwnProperty]](P, newDesc).
 
    Object.defineProperty(O, P, newDesc);
 
}
 
 
 
// _ESAbstract.Get
 
// 7.3.1. Get ( O, P )
 
function Get(O, P) { // eslint-disable-line no-unused-vars
 
    // 1. Assert: Type(O) is Object.
 
    // 2. Assert: IsPropertyKey(P) is true.
 
    // 3. Return ? O.[[Get]](P, O).
 
    return O[P];
 
}
 
 
 
// _ESAbstract.IsCallable
 
// 7.2.3. IsCallable ( argument )
 
function IsCallable(argument) { // eslint-disable-line no-unused-vars
 
    // 1. If Type(argument) is not Object, return false.
 
    // 2. If argument has a [[Call]] internal method, return true.
 
    // 3. Return false.
 
 
 
    // Polyfill.io - Only function objects have a [[Call]] internal method. This means we can simplify this function to check that the argument has a type of function.
 
    return typeof argument === 'function';
 
}
 
 
 
// _ESAbstract.RequireObjectCoercible
 
// 7.2.1. RequireObjectCoercible ( argument )
 
// The abstract operation ToObject converts argument to a value of type Object according to Table 12:
 
// Table 12: ToObject Conversions
 
/*
 
|----------------------------------------------------------------------------------------------------------------------------------------------------|
 
| Argument Type | Result                                                                                                                            |
 
|----------------------------------------------------------------------------------------------------------------------------------------------------|
 
| Undefined    | Throw a TypeError exception.                                                                                                      |
 
| Null          | Throw a TypeError exception.                                                                                                      |
 
| Boolean      | Return argument.                                                                                                                  |
 
| Number        | Return argument.                                                                                                                  |
 
| String        | Return argument.                                                                                                                  |
 
| Symbol        | Return argument.                                                                                                                  |
 
| Object        | Return argument.                                                                                                                  |
 
|----------------------------------------------------------------------------------------------------------------------------------------------------|
 
*/
 
function RequireObjectCoercible(argument) { // eslint-disable-line no-unused-vars
 
    if (argument === null || argument === undefined) {
 
        throw TypeError(Object.prototype.toString.call(argument) + ' is not coercible to Object.');
 
 
     }
 
     }
     return argument;
+
     function ToBoolean(argument) {
}
+
        return Boolean(argument);
 
 
// _ESAbstract.ToBoolean
 
// 7.1.2. ToBoolean ( argument )
 
// The abstract operation ToBoolean converts argument to a value of type Boolean according to Table 9:
 
/*
 
--------------------------------------------------------------------------------------------------------------
 
| Argument Type | Result                                                                                    |
 
--------------------------------------------------------------------------------------------------------------
 
| Undefined    | Return false.                                                                              |
 
| Null          | Return false.                                                                              |
 
| Boolean      | Return argument.                                                                          |
 
| Number        | If argument is +0, -0, or NaN, return false; otherwise return true.                        |
 
| String        | If argument is the empty String (its length is zero), return false; otherwise return true. |
 
| Symbol        | Return true.                                                                              |
 
| Object        | Return true.                                                                              |
 
--------------------------------------------------------------------------------------------------------------
 
*/
 
function ToBoolean(argument) { // eslint-disable-line no-unused-vars
 
    return Boolean(argument);
 
}
 
 
 
// _ESAbstract.ToObject
 
// 7.1.13 ToObject ( argument )
 
// The abstract operation ToObject converts argument to a value of type Object according to Table 12:
 
// Table 12: ToObject Conversions
 
/*
 
|----------------------------------------------------------------------------------------------------------------------------------------------------|
 
| Argument Type | Result                                                                                                                            |
 
|----------------------------------------------------------------------------------------------------------------------------------------------------|
 
| Undefined    | Throw a TypeError exception.                                                                                                      |
 
| Null          | Throw a TypeError exception.                                                                                                      |
 
| Boolean      | Return a new Boolean object whose [[BooleanData]] internal slot is set to argument. See 19.3 for a description of Boolean objects. |
 
| Number        | Return a new Number object whose [[NumberData]] internal slot is set to argument. See 20.1 for a description of Number objects.    |
 
| String        | Return a new String object whose [[StringData]] internal slot is set to argument. See 21.1 for a description of String objects.    |
 
| Symbol        | Return a new Symbol object whose [[SymbolData]] internal slot is set to argument. See 19.4 for a description of Symbol objects.    |
 
| Object        | Return argument.                                                                                                                  |
 
|----------------------------------------------------------------------------------------------------------------------------------------------------|
 
*/
 
function ToObject(argument) { // eslint-disable-line no-unused-vars
 
    if (argument === null || argument === undefined) {
 
        throw TypeError();
 
 
     }
 
     }
     return Object(argument);
+
     function ToObject(argument) {
}
+
        if (argument === null || argument === undefined) {
 
+
            throw TypeError();
// _ESAbstract.GetV
+
        }
/* global ToObject */
+
         return Object(argument);
// 7.3.2 GetV (V, P)
 
function GetV(v, p) { // eslint-disable-line no-unused-vars
 
    // 1. Assert: IsPropertyKey(P) is true.
 
    // 2. Let O be ? ToObject(V).
 
    var o = ToObject(v);
 
    // 3. Return ? O.[[Get]](P, V).
 
    return o[p];
 
}
 
 
 
// _ESAbstract.GetMethod
 
/* global GetV, IsCallable */
 
// 7.3.9. GetMethod ( V, P )
 
function GetMethod(V, P) { // eslint-disable-line no-unused-vars
 
    // 1. Assert: IsPropertyKey(P) is true.
 
    // 2. Let func be ? GetV(V, P).
 
    var func = GetV(V, P);
 
    // 3. If func is either undefined or null, return undefined.
 
    if (func === null || func === undefined) {
 
         return undefined;
 
 
     }
 
     }
     // 4. If IsCallable(func) is false, throw a TypeError exception.
+
     function GetV(v, p) {
    if (IsCallable(func) === false) {
+
         var o = ToObject(v);
         throw new TypeError('Method not callable: ' + P);
+
        return o[p];
 
     }
 
     }
     // 5. Return func.
+
     function GetMethod(V, P) {
    return func;
+
        var func = GetV(V, P);
}
+
         if (func === null || func === undefined) {
 
+
             return undefined;
// _ESAbstract.Type
+
         }
// "Type(x)" is used as shorthand for "the type of x"...
+
         if (IsCallable(func) === false) {
function Type(x) { // eslint-disable-line no-unused-vars
+
             throw new TypeError('Method not callable: ' + P);
    switch (typeof x) {
+
        }
         case 'undefined':
+
        return func;
             return 'undefined';
 
         case 'boolean':
 
            return 'boolean';
 
        case 'number':
 
            return 'number';
 
        case 'string':
 
            return 'string';
 
        case 'symbol':
 
            return 'symbol';
 
         default:
 
            // typeof null is 'object'
 
            if (x === null) return 'null';
 
            // Polyfill.io - This is here because a Symbol polyfill will have a typeof `object`.
 
             if ('Symbol' in self && (x instanceof self.Symbol || x.constructor === self.Symbol)) return 'symbol';
 
 
 
            return 'object';
 
 
     }
 
     }
}
+
    function Type(x) {
 
+
        switch (typeof x) {
// _ESAbstract.GetIterator
+
            case 'undefined':
/* global GetMethod, Symbol, Call, Type, GetV */
+
                return 'undefined';
// 7.4.1. GetIterator ( obj [ , method ] )
+
            case 'boolean':
// The abstract operation GetIterator with argument obj and optional argument method performs the following steps:
+
                return 'boolean';
function GetIterator(obj /*, method */) { // eslint-disable-line no-unused-vars
+
            case 'number':
    // 1. If method is not present, then
+
                return 'number';
        // a. Set method to ? GetMethod(obj, @@iterator).
+
            case 'string':
    var method = arguments.length > 1 ? arguments[1] : GetMethod(obj, Symbol.iterator);
+
                return 'string';
    // 2. Let iterator be ? Call(method, obj).
+
            case 'symbol':
    var iterator = Call(method, obj);
+
                return 'symbol';
    // 3. If Type(iterator) is not Object, throw a TypeError exception.
+
            default:
    if (Type(iterator) !== 'object') {
+
                if (x === null)
        throw new TypeError('bad iterator');
+
                    return 'null';
 +
                if ('Symbol' in self && (x instanceof self.Symbol || x.constructor === self.Symbol))
 +
                    return 'symbol';
 +
                return 'object';
 +
        }
 
     }
 
     }
     // 4. Let nextMethod be ? GetV(iterator, "next").
+
     function GetIterator(obj) {
    var nextMethod = GetV(iterator, "next");
+
        var method = arguments.length > 1 ? arguments[1] : GetMethod(obj, Symbol.iterator);
    // 5. Let iteratorRecord be Record {[[Iterator]]: iterator, [[NextMethod]]: nextMethod, [[Done]]: false}.
+
        var iterator = Call(method, obj);
    var iteratorRecord = Object.create(null);
+
        if (Type(iterator) !== 'object') {
    iteratorRecord['[[Iterator]]'] = iterator;
+
            throw new TypeError('bad iterator');
    iteratorRecord['[[NextMethod]]'] = nextMethod;
+
        }
    iteratorRecord['[[Done]]'] = false;
+
        var nextMethod = GetV(iterator, "next");
    // 6. Return iteratorRecord.
+
        var iteratorRecord = Object.create(null);
    return iteratorRecord;
+
        iteratorRecord['[[Iterator]]'] = iterator;
}
+
        iteratorRecord['[[NextMethod]]'] = nextMethod;
 
+
        iteratorRecord['[[Done]]'] = false;
// _ESAbstract.IteratorClose
+
        return iteratorRecord;
/* global GetMethod, Type, Call */
 
// 7.4.6. IteratorClose ( iteratorRecord, completion )
 
function IteratorClose(iteratorRecord, completion) { // eslint-disable-line no-unused-vars
 
    // 1. Assert: Type(iteratorRecord.[[Iterator]]) is Object.
 
    if (Type(iteratorRecord['[[Iterator]]']) !== 'object') {
 
        throw new Error(Object.prototype.toString.call(iteratorRecord['[[Iterator]]']) + 'is not an Object.');
 
 
     }
 
     }
     // 2. Assert: completion is a Completion Record.
+
     function IteratorClose(iteratorRecord, completion) {
    // Polyfill.io - Ignoring this step as there is no way to check if something is a Completion Record in userland JavaScript.
+
        if (Type(iteratorRecord['[[Iterator]]']) !== 'object') {
 
+
            throw new Error(Object.prototype.toString.call(iteratorRecord['[[Iterator]]']) + 'is not an Object.');
    // 3. Let iterator be iteratorRecord.[[Iterator]].
+
        }
    var iterator = iteratorRecord['[[Iterator]]'];
+
        var iterator = iteratorRecord['[[Iterator]]'];
    // 4. Let return be ? GetMethod(iterator, "return").
+
        var returnMethod = GetMethod(iterator, "return");
    // Polyfill.io - We name it  returnMethod because return is a keyword and can not be used as an identifier (E.G. variable name, function name etc).
+
        if (returnMethod === undefined) {
    var returnMethod = GetMethod(iterator, "return");
+
            return completion;
    // 5. If return is undefined, return Completion(completion).
+
        }
    if (returnMethod === undefined) {
+
        try {
 +
            var innerResult = Call(returnMethod, iterator);
 +
        }
 +
        catch (error) {
 +
            var innerException = error;
 +
        }
 +
        if (completion) {
 +
            return completion;
 +
        }
 +
        if (innerException) {
 +
            throw innerException;
 +
        }
 +
        if (Type(innerResult) !== 'object') {
 +
            throw new TypeError("Iterator's return method returned a non-object.");
 +
        }
 
         return completion;
 
         return completion;
 
     }
 
     }
     // 6. Let innerResult be Call(return, iterator, « »).
+
     function IteratorComplete(iterResult) {
    try {
+
         if (Type(iterResult) !== 'object') {
         var innerResult = Call(returnMethod, iterator);
+
            throw new Error(Object.prototype.toString.call(iterResult) + 'is not an Object.');
    } catch (error) {
+
        }
        var innerException = error;
+
        return ToBoolean(Get(iterResult, "done"));
 
     }
 
     }
     // 7. If completion.[[Type]] is throw, return Completion(completion).
+
     function IteratorNext(iteratorRecord) {
    if (completion) {
+
        if (arguments.length < 2) {
         return completion;
+
            var result = Call(iteratorRecord['[[NextMethod]]'], iteratorRecord['[[Iterator]]']);
 +
        }
 +
        else {
 +
            result = Call(iteratorRecord['[[NextMethod]]'], iteratorRecord['[[Iterator]]'], [arguments[1]]);
 +
        }
 +
        if (Type(result) !== 'object') {
 +
            throw new TypeError('bad iterator');
 +
        }
 +
         return result;
 
     }
 
     }
     // 8. If innerResult.[[Type]] is throw, return Completion(innerResult).
+
     function IteratorStep(iteratorRecord) {
    if (innerException) {
+
        var result = IteratorNext(iteratorRecord);
         throw innerException;
+
        var done = IteratorComplete(result);
 +
        if (done === true) {
 +
            return false;
 +
        }
 +
         return result;
 
     }
 
     }
     // 9. If Type(innerResult.[[Value]]) is not Object, throw a TypeError exception.
+
     function IteratorValue(iterResult) {
    if (Type(innerResult) !== 'object') {
+
        if (Type(iterResult) !== 'object') {
        throw new TypeError("Iterator's return method returned a non-object.");
+
            throw new Error(Object.prototype.toString.call(iterResult) + 'is not an Object.');
 +
        }
 +
        return Get(iterResult, "value");
 
     }
 
     }
     // 10. Return Completion(completion).
+
     var AddEntriesFromIterable = (function () {
    return completion;
+
        var toString = {}.toString;
}
+
        var split = "".split;
 
+
        return function AddEntriesFromIterable(target, iterable, adder) {
// _ESAbstract.IteratorComplete
+
            if (IsCallable(adder) === false) {
/* global Type, ToBoolean, Get */
+
                throw new TypeError("adder is not callable.");
// 7.4.3 IteratorComplete ( iterResult )
+
            }
function IteratorComplete(iterResult) { // eslint-disable-line no-unused-vars
+
            var iteratorRecord = GetIterator(iterable);
    // 1. Assert: Type(iterResult) is Object.
+
            while (true) {
    if (Type(iterResult) !== 'object') {
+
                var next = IteratorStep(iteratorRecord);
         throw new Error(Object.prototype.toString.call(iterResult) + 'is not an Object.');
+
                if (next === false) {
 +
                    return target;
 +
                }
 +
                var nextItem = IteratorValue(next);
 +
                if (Type(nextItem) !== "object") {
 +
                    var error = new TypeError("nextItem is not an object");
 +
                    IteratorClose(iteratorRecord, error);
 +
                    throw error;
 +
                }
 +
                nextItem =
 +
                    (Type(nextItem) === "string" || nextItem instanceof String) &&
 +
                        toString.call(nextItem) == "[object String]"
 +
                        ? split.call(nextItem, "")
 +
                        : nextItem;
 +
                var k;
 +
                try {
 +
                    k = Get(nextItem, "0");
 +
                }
 +
                catch (k) {
 +
                    return IteratorClose(iteratorRecord, k);
 +
                }
 +
                var v;
 +
                try {
 +
                    v = Get(nextItem, "1");
 +
                }
 +
                catch (v) {
 +
                    return IteratorClose(iteratorRecord, v);
 +
                }
 +
                try {
 +
                    Call(adder, target, [k, v]);
 +
                }
 +
                catch (status) {
 +
                    return IteratorClose(iteratorRecord, status);
 +
                }
 +
            }
 +
        };
 +
    })();
 +
    function OrdinaryToPrimitive(O, hint) {
 +
        if (hint === 'string') {
 +
            var methodNames = ['toString', 'valueOf'];
 +
        }
 +
        else {
 +
            methodNames = ['valueOf', 'toString'];
 +
        }
 +
        for (var i = 0; i < methodNames.length; ++i) {
 +
            var name = methodNames[i];
 +
            var method = Get(O, name);
 +
            if (IsCallable(method)) {
 +
                var result = Call(method, O);
 +
                if (Type(result) !== 'object') {
 +
                    return result;
 +
                }
 +
            }
 +
        }
 +
         throw new TypeError('Cannot convert to primitive.');
 
     }
 
     }
     // 2. Return ToBoolean(? Get(iterResult, "done")).
+
     function ToPrimitive(input) {
    return ToBoolean(Get(iterResult, "done"));
+
        var PreferredType = arguments.length > 1 ? arguments[1] : undefined;
}
+
        if (Type(input) === 'object') {
 
+
            if (arguments.length < 2) {
// _ESAbstract.IteratorNext
+
                var hint = 'default';
/* global Call, Type */
+
            }
// 7.4.2. IteratorNext ( iteratorRecord [ , value ] )
+
            else if (PreferredType === String) {
function IteratorNext(iteratorRecord /* [, value] */) { // eslint-disable-line no-unused-vars
+
                hint = 'string';
    // 1. If value is not present, then
+
            }
    if (arguments.length < 2) {
+
            else if (PreferredType === Number) {
        // a. Let result be ? Call(iteratorRecord.[[NextMethod]], iteratorRecord.[[Iterator]], « »).
+
                hint = 'number';
        var result = Call(iteratorRecord['[[NextMethod]]'], iteratorRecord['[[Iterator]]']);
+
            }
    // 2. Else,
+
            var exoticToPrim = typeof self.Symbol === 'function' && typeof self.Symbol.toPrimitive === 'symbol' ? GetMethod(input, self.Symbol.toPrimitive) : undefined;
    } else {
+
            if (exoticToPrim !== undefined) {
        // a. Let result be ? Call(iteratorRecord.[[NextMethod]], iteratorRecord.[[Iterator]], « value »).
+
                var result = Call(exoticToPrim, input, [hint]);
        result = Call(iteratorRecord['[[NextMethod]]'], iteratorRecord['[[Iterator]]'], [arguments[1]]);
+
                if (Type(result) !== 'object') {
 +
                    return result;
 +
                }
 +
                throw new TypeError('Cannot convert exotic object to primitive.');
 +
            }
 +
            if (hint === 'default') {
 +
                hint = 'number';
 +
            }
 +
            return OrdinaryToPrimitive(input, hint);
 +
        }
 +
        return input;
 
     }
 
     }
     // 3. If Type(result) is not Object, throw a TypeError exception.
+
     function ToString(argument) {
    if (Type(result) !== 'object') {
+
        switch (Type(argument)) {
        throw new TypeError('bad iterator');
+
            case 'symbol':
 +
                throw new TypeError('Cannot convert a Symbol value to a string');
 +
            case 'object':
 +
                var primValue = ToPrimitive(argument, String);
 +
                return ToString(primValue);
 +
            default:
 +
                return String(argument);
 +
        }
 
     }
 
     }
     // 4. Return result.
+
     function ToPropertyKey(argument) {
    return result;
+
        var key = ToPrimitive(argument, String);
}
+
        if (Type(key) === 'symbol') {
 
+
            return key;
// _ESAbstract.IteratorStep
+
        }
/* global IteratorNext, IteratorComplete */
+
         return ToString(key);
// 7.4.5. IteratorStep ( iteratorRecord )
 
function IteratorStep(iteratorRecord) { // eslint-disable-line no-unused-vars
 
    // 1. Let result be ? IteratorNext(iteratorRecord).
 
    var result = IteratorNext(iteratorRecord);
 
    // 2. Let done be ? IteratorComplete(result).
 
    var done = IteratorComplete(result);
 
    // 3. If done is true, return false.
 
    if (done === true) {
 
         return false;
 
 
     }
 
     }
     // 4. Return result.
+
     (function () {
    return result;
+
        function isNotFirefoxContentScriptEnviroment(root) {
}
+
            return root && root.Object == Object && root;
 
+
        }
// _ESAbstract.IteratorValue
+
        var freeGlobalThis = isNotFirefoxContentScriptEnviroment(typeof globalThis == "object" && globalThis);
/* global Type, Get */
+
         var freeWindow = isNotFirefoxContentScriptEnviroment(typeof window == "object" && window);
// 7.4.4 IteratorValue ( iterResult )
+
        var freeSelf = isNotFirefoxContentScriptEnviroment(typeof self == "object" && self);
function IteratorValue(iterResult) { // eslint-disable-line no-unused-vars
+
        var freeGlobal = isNotFirefoxContentScriptEnviroment(typeof global == "object" && global);
    // Assert: Type(iterResult) is Object.
+
        var globalThis = freeGlobalThis ||
    if (Type(iterResult) !== 'object') {
+
            freeWindow ||
         throw new Error(Object.prototype.toString.call(iterResult) + 'is not an Object.');
+
            freeSelf ||
    }
+
            freeGlobal ||
    // Return ? Get(iterResult, "value").
+
            Function("return this")();
    return Get(iterResult, "value");
+
        try {
}
+
            Object.defineProperty(globalThis, "globalThis", {
 
+
                configurable: true,
// _ESAbstract.AddEntriesFromIterable
+
                enumerable: false,
/* global IsCallable, GetIterator, IteratorStep, IteratorValue, IteratorClose, Get, Call, Type */
+
                writable: true,
// eslint-disable-next-line no-unused-vars
+
                value: globalThis
var AddEntriesFromIterable = (function() {
+
            });
    var toString = {}.toString;
+
        }
    var split = "".split;
+
        catch (e) {
    // 23.1.1.2 AddEntriesFromIterable ( target, iterable, adder )
+
            globalThis.globalThis = globalThis;
    return function AddEntriesFromIterable(target, iterable, adder) {
+
         }
         // 1. If IsCallable(adder) is false, throw a TypeError exception.
+
    })();
        if (IsCallable(adder) === false) {
+
    (function () {
             throw new TypeError("adder is not callable.");
+
        var __create = Object.create;
 +
        var __defProp = Object.defineProperty;
 +
        var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
 +
        var __getOwnPropNames = Object.getOwnPropertyNames;
 +
        var __getProtoOf = Object.getPrototypeOf;
 +
        var __hasOwnProp = Object.prototype.hasOwnProperty;
 +
        var __markAsModule = function (target) {
 +
             return __defProp(target, "__esModule", { value: true });
 +
        };
 +
        var __commonJS = function (cb, mod) {
 +
            return function __require() {
 +
                return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
 +
            };
 +
        };
 +
        var __reExport = function (target, module, desc) {
 +
            if (module && typeof module === "object" || typeof module === "function")
 +
                for (var keys = __getOwnPropNames(module), i = 0, n = keys.length, key; i < n; i++) {
 +
                    key = keys[i];
 +
                    if (!__hasOwnProp.call(target, key) && key !== "default")
 +
                        __defProp(target, key, { get: function (k) {
 +
                                return module[k];
 +
                            }.bind(null, key), enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable });
 +
                }
 +
            return target;
 +
        };
 +
        var __toModule = function (module) {
 +
            return __reExport(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", module && module.__esModule && "default" in module ? { get: function () {
 +
                    return module["default"];
 +
                }, enumerable: true } : { value: module, enumerable: true })), module);
 +
        };
 +
        var require_tslib = __commonJS({
 +
            "node_modules/tslib/tslib.js": function (exports, module) {
 +
                var __extends2;
 +
                var __assign5;
 +
                var __rest;
 +
                var __decorate;
 +
                var __param;
 +
                var __metadata;
 +
                var __awaiter;
 +
                var __generator;
 +
                var __exportStar;
 +
                var __values;
 +
                var __read;
 +
                var __spread;
 +
                var __spreadArrays;
 +
                var __spreadArray2;
 +
                var __await;
 +
                var __asyncGenerator;
 +
                var __asyncDelegator;
 +
                var __asyncValues;
 +
                var __makeTemplateObject;
 +
                var __importStar;
 +
                var __importDefault;
 +
                var __classPrivateFieldGet;
 +
                var __classPrivateFieldSet;
 +
                var __createBinding;
 +
                (function (factory) {
 +
                    var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
 +
                    if (typeof define === "function" && define.amd) {
 +
                        define("tslib", ["exports"], function (exports2) {
 +
                            factory(createExporter(root, createExporter(exports2)));
 +
                        });
 +
                    }
 +
                    else if (typeof module === "object" && typeof module.exports === "object") {
 +
                        factory(createExporter(root, createExporter(module.exports)));
 +
                    }
 +
                    else {
 +
                        factory(createExporter(root));
 +
                    }
 +
                    function createExporter(exports2, previous) {
 +
                        if (exports2 !== root) {
 +
                            if (typeof Object.create === "function") {
 +
                                Object.defineProperty(exports2, "__esModule", { value: true });
 +
                            }
 +
                            else {
 +
                                exports2.__esModule = true;
 +
                            }
 +
                        }
 +
                        return function (id, v) {
 +
                            return exports2[id] = previous ? previous(id, v) : v;
 +
                        };
 +
                    }
 +
                })(function (exporter) {
 +
                    var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
 +
                        d.__proto__ = b;
 +
                    } || function (d, b) {
 +
                        for (var p in b)
 +
                            if (Object.prototype.hasOwnProperty.call(b, p))
 +
                                d[p] = b[p];
 +
                    };
 +
                    __extends2 = function (d, b) {
 +
                        if (typeof b !== "function" && b !== null)
 +
                            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
 +
                        extendStatics(d, b);
 +
                        function __() {
 +
                            this.constructor = d;
 +
                        }
 +
                        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
 +
                    };
 +
                    __assign5 = Object.assign || function (t) {
 +
                        for (var s, i = 1, n = arguments.length; i < n; i++) {
 +
                            s = arguments[i];
 +
                            for (var p in s)
 +
                                if (Object.prototype.hasOwnProperty.call(s, p))
 +
                                    t[p] = s[p];
 +
                        }
 +
                        return t;
 +
                    };
 +
                    __rest = function (s, e) {
 +
                        var t = {};
 +
                        for (var p in s)
 +
                            if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
 +
                                t[p] = s[p];
 +
                        if (s != null && typeof Object.getOwnPropertySymbols === "function")
 +
                            for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
 +
                                if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
 +
                                    t[p[i]] = s[p[i]];
 +
                            }
 +
                        return t;
 +
                    };
 +
                    __decorate = function (decorators, target, key, desc) {
 +
                        var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
 +
                        if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
 +
                            r = Reflect.decorate(decorators, target, key, desc);
 +
                        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;
 +
                        return c > 3 && r && Object.defineProperty(target, key, r), r;
 +
                    };
 +
                    __param = function (paramIndex, decorator) {
 +
                        return function (target, key) {
 +
                            decorator(target, key, paramIndex);
 +
                        };
 +
                    };
 +
                    __metadata = function (metadataKey, metadataValue) {
 +
                        if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
 +
                            return Reflect.metadata(metadataKey, metadataValue);
 +
                    };
 +
                    __awaiter = function (thisArg, _arguments, P, generator) {
 +
                        function adopt(value) {
 +
                            return value instanceof P ? value : new P(function (resolve) {
 +
                                resolve(value);
 +
                            });
 +
                        }
 +
                        return new (P || (P = Promise))(function (resolve, reject) {
 +
                            function fulfilled(value) {
 +
                                try {
 +
                                    step(generator.next(value));
 +
                                }
 +
                                catch (e) {
 +
                                    reject(e);
 +
                                }
 +
                            }
 +
                            function rejected(value) {
 +
                                try {
 +
                                    step(generator["throw"](value));
 +
                                }
 +
                                catch (e) {
 +
                                    reject(e);
 +
                                }
 +
                            }
 +
                            function step(result) {
 +
                                result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
 +
                            }
 +
                            step((generator = generator.apply(thisArg, _arguments || [])).next());
 +
                        });
 +
                    };
 +
                    __generator = function (thisArg, body) {
 +
                        var _ = { label: 0, sent: function () {
 +
                                if (t[0] & 1)
 +
                                    throw t[1];
 +
                                return t[1];
 +
                            }, trys: [], ops: [] }, f, y, t, g;
 +
                        return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
 +
                            return this;
 +
                        }), g;
 +
                        function verb(n) {
 +
                            return function (v) {
 +
                                return step([n, v]);
 +
                            };
 +
                        }
 +
                        function step(op) {
 +
                            if (f)
 +
                                throw new TypeError("Generator is already executing.");
 +
                            while (_)
 +
                                try {
 +
                                    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;
 +
                                    if (y = 0, t)
 +
                                        op = [op[0] & 2, t.value];
 +
                                    switch (op[0]) {
 +
                                        case 0:
 +
                                        case 1:
 +
                                            t = op;
 +
                                            break;
 +
                                        case 4:
 +
                                            _.label++;
 +
                                            return { value: op[1], done: false };
 +
                                        case 5:
 +
                                            _.label++;
 +
                                            y = op[1];
 +
                                            op = [0];
 +
                                            continue;
 +
                                        case 7:
 +
                                            op = _.ops.pop();
 +
                                            _.trys.pop();
 +
                                            continue;
 +
                                        default:
 +
                                            if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
 +
                                                _ = 0;
 +
                                                continue;
 +
                                            }
 +
                                            if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
 +
                                                _.label = op[1];
 +
                                                break;
 +
                                            }
 +
                                            if (op[0] === 6 && _.label < t[1]) {
 +
                                                _.label = t[1];
 +
                                                t = op;
 +
                                                break;
 +
                                            }
 +
                                            if (t && _.label < t[2]) {
 +
                                                _.label = t[2];
 +
                                                _.ops.push(op);
 +
                                                break;
 +
                                            }
 +
                                            if (t[2])
 +
                                                _.ops.pop();
 +
                                            _.trys.pop();
 +
                                            continue;
 +
                                    }
 +
                                    op = body.call(thisArg, _);
 +
                                }
 +
                                catch (e) {
 +
                                    op = [6, e];
 +
                                    y = 0;
 +
                                }
 +
                                finally {
 +
                                    f = t = 0;
 +
                                }
 +
                            if (op[0] & 5)
 +
                                throw op[1];
 +
                            return { value: op[0] ? op[1] : void 0, done: true };
 +
                        }
 +
                    };
 +
                    __exportStar = function (m, o) {
 +
                        for (var p in m)
 +
                            if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
 +
                                __createBinding(o, m, p);
 +
                    };
 +
                    __createBinding = Object.create ? function (o, m, k, k2) {
 +
                        if (k2 === void 0)
 +
                            k2 = k;
 +
                        Object.defineProperty(o, k2, { enumerable: true, get: function () {
 +
                                return m[k];
 +
                            } });
 +
                    } : function (o, m, k, k2) {
 +
                        if (k2 === void 0)
 +
                            k2 = k;
 +
                        o[k2] = m[k];
 +
                    };
 +
                    __values = function (o) {
 +
                        var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
 +
                        if (m)
 +
                            return m.call(o);
 +
                        if (o && typeof o.length === "number")
 +
                            return {
 +
                                next: function () {
 +
                                    if (o && i >= o.length)
 +
                                        o = void 0;
 +
                                    return { value: o && o[i++], done: !o };
 +
                                }
 +
                            };
 +
                        throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
 +
                    };
 +
                    __read = function (o, n) {
 +
                        var m = typeof Symbol === "function" && o[Symbol.iterator];
 +
                        if (!m)
 +
                            return o;
 +
                        var i = m.call(o), r, ar = [], e;
 +
                        try {
 +
                            while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
 +
                                ar.push(r.value);
 +
                        }
 +
                        catch (error) {
 +
                            e = { error: error };
 +
                        }
 +
                        finally {
 +
                            try {
 +
                                if (r && !r.done && (m = i["return"]))
 +
                                    m.call(i);
 +
                            }
 +
                            finally {
 +
                                if (e)
 +
                                    throw e.error;
 +
                            }
 +
                        }
 +
                        return ar;
 +
                    };
 +
                    __spread = function () {
 +
                        for (var ar = [], i = 0; i < arguments.length; i++)
 +
                            ar = ar.concat(__read(arguments[i]));
 +
                        return ar;
 +
                    };
 +
                    __spreadArrays = function () {
 +
                        for (var s = 0, i = 0, il = arguments.length; i < il; i++)
 +
                            s += arguments[i].length;
 +
                        for (var r = Array(s), k = 0, i = 0; i < il; i++)
 +
                            for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
 +
                                r[k] = a[j];
 +
                        return r;
 +
                    };
 +
                    __spreadArray2 = function (to, from) {
 +
                        for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
 +
                            to[j] = from[i];
 +
                        return to;
 +
                    };
 +
                    __await = function (v) {
 +
                        return this instanceof __await ? (this.v = v, this) : new __await(v);
 +
                    };
 +
                    __asyncGenerator = function (thisArg, _arguments, generator) {
 +
                        if (!Symbol.asyncIterator)
 +
                            throw new TypeError("Symbol.asyncIterator is not defined.");
 +
                        var g = generator.apply(thisArg, _arguments || []), i, q = [];
 +
                        return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
 +
                            return this;
 +
                        }, i;
 +
                        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);
 +
                                    });
 +
                                };
 +
                        }
 +
                        function resume(n, v) {
 +
                            try {
 +
                                step(g[n](v));
 +
                            }
 +
                            catch (e) {
 +
                                settle(q[0][3], e);
 +
                            }
 +
                        }
 +
                        function step(r) {
 +
                            r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
 +
                        }
 +
                        function fulfill(value) {
 +
                            resume("next", value);
 +
                        }
 +
                        function reject(value) {
 +
                            resume("throw", value);
 +
                        }
 +
                        function settle(f, v) {
 +
                            if (f(v), q.shift(), q.length)
 +
                                resume(q[0][0], q[0][1]);
 +
                        }
 +
                    };
 +
                    __asyncDelegator = function (o) {
 +
                        var i, p;
 +
                        return i = {}, verb("next"), verb("throw", function (e) {
 +
                            throw e;
 +
                        }), verb("return"), i[Symbol.iterator] = function () {
 +
                            return this;
 +
                        }, i;
 +
                        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;
 +
                        }
 +
                    };
 +
                    __asyncValues = function (o) {
 +
                        if (!Symbol.asyncIterator)
 +
                            throw new TypeError("Symbol.asyncIterator is not defined.");
 +
                        var m = o[Symbol.asyncIterator], i;
 +
                        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);
 +
                        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);
 +
                                });
 +
                            };
 +
                        }
 +
                        function settle(resolve, reject, d, v) {
 +
                            Promise.resolve(v).then(function (v2) {
 +
                                resolve({ value: v2, done: d });
 +
                            }, reject);
 +
                        }
 +
                    };
 +
                    __makeTemplateObject = function (cooked, raw) {
 +
                        if (Object.defineProperty) {
 +
                            Object.defineProperty(cooked, "raw", { value: raw });
 +
                        }
 +
                        else {
 +
                            cooked.raw = raw;
 +
                        }
 +
                        return cooked;
 +
                    };
 +
                    var __setModuleDefault = Object.create ? function (o, v) {
 +
                        Object.defineProperty(o, "default", { enumerable: true, value: v });
 +
                    } : function (o, v) {
 +
                        o["default"] = v;
 +
                    };
 +
                    __importStar = function (mod) {
 +
                        if (mod && mod.__esModule)
 +
                            return mod;
 +
                        var result = {};
 +
                        if (mod != null) {
 +
                            for (var k in mod)
 +
                                if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
 +
                                    __createBinding(result, mod, k);
 +
                        }
 +
                        __setModuleDefault(result, mod);
 +
                        return result;
 +
                    };
 +
                    __importDefault = function (mod) {
 +
                        return mod && mod.__esModule ? mod : { "default": mod };
 +
                    };
 +
                    __classPrivateFieldGet = function (receiver, state, kind, f) {
 +
                        if (kind === "a" && !f)
 +
                            throw new TypeError("Private accessor was defined without a getter");
 +
                        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");
 +
                        return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
 +
                    };
 +
                    __classPrivateFieldSet = function (receiver, state, value, kind, f) {
 +
                        if (kind === "m")
 +
                            throw new TypeError("Private method is not writable");
 +
                        if (kind === "a" && !f)
 +
                            throw new TypeError("Private accessor was defined without a setter");
 +
                        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");
 +
                        return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
 +
                    };
 +
                    exporter("__extends", __extends2);
 +
                    exporter("__assign", __assign5);
 +
                    exporter("__rest", __rest);
 +
                    exporter("__decorate", __decorate);
 +
                    exporter("__param", __param);
 +
                    exporter("__metadata", __metadata);
 +
                    exporter("__awaiter", __awaiter);
 +
                    exporter("__generator", __generator);
 +
                    exporter("__exportStar", __exportStar);
 +
                    exporter("__createBinding", __createBinding);
 +
                    exporter("__values", __values);
 +
                    exporter("__read", __read);
 +
                    exporter("__spread", __spread);
 +
                    exporter("__spreadArrays", __spreadArrays);
 +
                    exporter("__spreadArray", __spreadArray2);
 +
                    exporter("__await", __await);
 +
                    exporter("__asyncGenerator", __asyncGenerator);
 +
                    exporter("__asyncDelegator", __asyncDelegator);
 +
                    exporter("__asyncValues", __asyncValues);
 +
                    exporter("__makeTemplateObject", __makeTemplateObject);
 +
                    exporter("__importStar", __importStar);
 +
                    exporter("__importDefault", __importDefault);
 +
                    exporter("__classPrivateFieldGet", __classPrivateFieldGet);
 +
                    exporter("__classPrivateFieldSet", __classPrivateFieldSet);
 +
                });
 +
            }
 +
        });
 +
        var require_parser = __commonJS({
 +
            "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/parser.js": function (exports) {
 +
                "use strict";
 +
                Object.defineProperty(exports, "__esModule", { value: true });
 +
                exports.parseUnicodeLocaleId = exports.parseUnicodeLanguageId = exports.isUnicodeVariantSubtag = exports.isUnicodeScriptSubtag = exports.isUnicodeRegionSubtag = exports.isStructurallyValidLanguageTag = exports.isUnicodeLanguageSubtag = exports.SEPARATOR = void 0;
 +
                var tslib_1 = require_tslib();
 +
                var ALPHANUM_1_8 = /^[a-z0-9]{1,8}$/i;
 +
                var ALPHANUM_2_8 = /^[a-z0-9]{2,8}$/i;
 +
                var ALPHANUM_3_8 = /^[a-z0-9]{3,8}$/i;
 +
                var KEY_REGEX = /^[a-z0-9][a-z]$/i;
 +
                var TYPE_REGEX = /^[a-z0-9]{3,8}$/i;
 +
                var ALPHA_4 = /^[a-z]{4}$/i;
 +
                var OTHER_EXTENSION_TYPE = /^[0-9a-svwyz]$/i;
 +
                var UNICODE_REGION_SUBTAG_REGEX = /^([a-z]{2}|[0-9]{3})$/i;
 +
                var UNICODE_VARIANT_SUBTAG_REGEX = /^([a-z0-9]{5,8}|[0-9][a-z0-9]{3})$/i;
 +
                var UNICODE_LANGUAGE_SUBTAG_REGEX = /^([a-z]{2,3}|[a-z]{5,8})$/i;
 +
                var TKEY_REGEX = /^[a-z][0-9]$/i;
 +
                exports.SEPARATOR = "-";
 +
                function isUnicodeLanguageSubtag2(lang) {
 +
                    return UNICODE_LANGUAGE_SUBTAG_REGEX.test(lang);
 +
                }
 +
                exports.isUnicodeLanguageSubtag = isUnicodeLanguageSubtag2;
 +
                function isStructurallyValidLanguageTag2(tag) {
 +
                    try {
 +
                        parseUnicodeLanguageId2(tag.split(exports.SEPARATOR));
 +
                    }
 +
                    catch (e) {
 +
                        return false;
 +
                    }
 +
                    return true;
 +
                }
 +
                exports.isStructurallyValidLanguageTag = isStructurallyValidLanguageTag2;
 +
                function isUnicodeRegionSubtag2(region) {
 +
                    return UNICODE_REGION_SUBTAG_REGEX.test(region);
 +
                }
 +
                exports.isUnicodeRegionSubtag = isUnicodeRegionSubtag2;
 +
                function isUnicodeScriptSubtag2(script) {
 +
                    return ALPHA_4.test(script);
 +
                }
 +
                exports.isUnicodeScriptSubtag = isUnicodeScriptSubtag2;
 +
                function isUnicodeVariantSubtag(variant) {
 +
                    return UNICODE_VARIANT_SUBTAG_REGEX.test(variant);
 +
                }
 +
                exports.isUnicodeVariantSubtag = isUnicodeVariantSubtag;
 +
                function parseUnicodeLanguageId2(chunks) {
 +
                    if (typeof chunks === "string") {
 +
                        chunks = chunks.split(exports.SEPARATOR);
 +
                    }
 +
                    var lang = chunks.shift();
 +
                    if (!lang) {
 +
                        throw new RangeError("Missing unicode_language_subtag");
 +
                    }
 +
                    if (lang === "root") {
 +
                        return { lang: "root", variants: [] };
 +
                    }
 +
                    if (!isUnicodeLanguageSubtag2(lang)) {
 +
                        throw new RangeError("Malformed unicode_language_subtag");
 +
                    }
 +
                    var script;
 +
                    if (chunks.length && isUnicodeScriptSubtag2(chunks[0])) {
 +
                        script = chunks.shift();
 +
                    }
 +
                    var region;
 +
                    if (chunks.length && isUnicodeRegionSubtag2(chunks[0])) {
 +
                        region = chunks.shift();
 +
                    }
 +
                    var variants = {};
 +
                    while (chunks.length && isUnicodeVariantSubtag(chunks[0])) {
 +
                        var variant = chunks.shift();
 +
                        if (variant in variants) {
 +
                            throw new RangeError('Duplicate variant "' + variant + '"');
 +
                        }
 +
                        variants[variant] = 1;
 +
                    }
 +
                    return {
 +
                        lang: lang,
 +
                        script: script,
 +
                        region: region,
 +
                        variants: Object.keys(variants)
 +
                    };
 +
                }
 +
                exports.parseUnicodeLanguageId = parseUnicodeLanguageId2;
 +
                function parseUnicodeExtension(chunks) {
 +
                    var keywords = [];
 +
                    var keyword;
 +
                    while (chunks.length && (keyword = parseKeyword(chunks))) {
 +
                        keywords.push(keyword);
 +
                    }
 +
                    if (keywords.length) {
 +
                        return {
 +
                            type: "u",
 +
                            keywords: keywords,
 +
                            attributes: []
 +
                        };
 +
                    }
 +
                    var attributes = [];
 +
                    while (chunks.length && ALPHANUM_3_8.test(chunks[0])) {
 +
                        attributes.push(chunks.shift());
 +
                    }
 +
                    while (chunks.length && (keyword = parseKeyword(chunks))) {
 +
                        keywords.push(keyword);
 +
                    }
 +
                    if (keywords.length || attributes.length) {
 +
                        return {
 +
                            type: "u",
 +
                            attributes: attributes,
 +
                            keywords: keywords
 +
                        };
 +
                    }
 +
                    throw new RangeError("Malformed unicode_extension");
 +
                }
 +
                function parseKeyword(chunks) {
 +
                    var key;
 +
                    if (!KEY_REGEX.test(chunks[0])) {
 +
                        return;
 +
                    }
 +
                    key = chunks.shift();
 +
                    var type = [];
 +
                    while (chunks.length && TYPE_REGEX.test(chunks[0])) {
 +
                        type.push(chunks.shift());
 +
                    }
 +
                    var value = "";
 +
                    if (type.length) {
 +
                        value = type.join(exports.SEPARATOR);
 +
                    }
 +
                    return [key, value];
 +
                }
 +
                function parseTransformedExtension(chunks) {
 +
                    var lang;
 +
                    try {
 +
                        lang = parseUnicodeLanguageId2(chunks);
 +
                    }
 +
                    catch (e) {
 +
                    }
 +
                    var fields = [];
 +
                    while (chunks.length && TKEY_REGEX.test(chunks[0])) {
 +
                        var key = chunks.shift();
 +
                        var value = [];
 +
                        while (chunks.length && ALPHANUM_3_8.test(chunks[0])) {
 +
                            value.push(chunks.shift());
 +
                        }
 +
                        if (!value.length) {
 +
                            throw new RangeError('Missing tvalue for tkey "' + key + '"');
 +
                        }
 +
                        fields.push([key, value.join(exports.SEPARATOR)]);
 +
                    }
 +
                    if (fields.length) {
 +
                        return {
 +
                            type: "t",
 +
                            fields: fields,
 +
                            lang: lang
 +
                        };
 +
                    }
 +
                    throw new RangeError("Malformed transformed_extension");
 +
                }
 +
                function parsePuExtension(chunks) {
 +
                    var exts = [];
 +
                    while (chunks.length && ALPHANUM_1_8.test(chunks[0])) {
 +
                        exts.push(chunks.shift());
 +
                    }
 +
                    if (exts.length) {
 +
                        return {
 +
                            type: "x",
 +
                            value: exts.join(exports.SEPARATOR)
 +
                        };
 +
                    }
 +
                    throw new RangeError("Malformed private_use_extension");
 +
                }
 +
                function parseOtherExtensionValue(chunks) {
 +
                    var exts = [];
 +
                    while (chunks.length && ALPHANUM_2_8.test(chunks[0])) {
 +
                        exts.push(chunks.shift());
 +
                    }
 +
                    if (exts.length) {
 +
                        return exts.join(exports.SEPARATOR);
 +
                    }
 +
                    return "";
 +
                }
 +
                function parseExtensions(chunks) {
 +
                    if (!chunks.length) {
 +
                        return { extensions: [] };
 +
                    }
 +
                    var extensions = [];
 +
                    var unicodeExtension;
 +
                    var transformedExtension;
 +
                    var puExtension;
 +
                    var otherExtensionMap = {};
 +
                    do {
 +
                        var type = chunks.shift();
 +
                        switch (type) {
 +
                            case "u":
 +
                            case "U":
 +
                                if (unicodeExtension) {
 +
                                    throw new RangeError("There can only be 1 -u- extension");
 +
                                }
 +
                                unicodeExtension = parseUnicodeExtension(chunks);
 +
                                extensions.push(unicodeExtension);
 +
                                break;
 +
                            case "t":
 +
                            case "T":
 +
                                if (transformedExtension) {
 +
                                    throw new RangeError("There can only be 1 -t- extension");
 +
                                }
 +
                                transformedExtension = parseTransformedExtension(chunks);
 +
                                extensions.push(transformedExtension);
 +
                                break;
 +
                            case "x":
 +
                            case "X":
 +
                                if (puExtension) {
 +
                                    throw new RangeError("There can only be 1 -x- extension");
 +
                                }
 +
                                puExtension = parsePuExtension(chunks);
 +
                                extensions.push(puExtension);
 +
                                break;
 +
                            default:
 +
                                if (!OTHER_EXTENSION_TYPE.test(type)) {
 +
                                    throw new RangeError("Malformed extension type");
 +
                                }
 +
                                if (type in otherExtensionMap) {
 +
                                    throw new RangeError("There can only be 1 -" + type + "- extension");
 +
                                }
 +
                                var extension = {
 +
                                    type: type,
 +
                                    value: parseOtherExtensionValue(chunks)
 +
                                };
 +
                                otherExtensionMap[extension.type] = extension;
 +
                                extensions.push(extension);
 +
                                break;
 +
                        }
 +
                    } while (chunks.length);
 +
                    return { extensions: extensions };
 +
                }
 +
                function parseUnicodeLocaleId2(locale) {
 +
                    var chunks = locale.split(exports.SEPARATOR);
 +
                    var lang = parseUnicodeLanguageId2(chunks);
 +
                    return tslib_1.__assign({ lang: lang }, parseExtensions(chunks));
 +
                }
 +
                exports.parseUnicodeLocaleId = parseUnicodeLocaleId2;
 +
            }
 +
        });
 +
        var require_emitter = __commonJS({
 +
            "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/emitter.js": function (exports) {
 +
                "use strict";
 +
                Object.defineProperty(exports, "__esModule", { value: true });
 +
                exports.emitUnicodeLocaleId = exports.emitUnicodeLanguageId = void 0;
 +
                var tslib_1 = require_tslib();
 +
                function emitUnicodeLanguageId2(lang) {
 +
                    if (!lang) {
 +
                        return "";
 +
                    }
 +
                    return tslib_1.__spreadArray([lang.lang, lang.script, lang.region], lang.variants || []).filter(Boolean).join("-");
 +
                }
 +
                exports.emitUnicodeLanguageId = emitUnicodeLanguageId2;
 +
                function emitUnicodeLocaleId2(_a) {
 +
                    var lang = _a.lang, extensions = _a.extensions;
 +
                    var chunks = [emitUnicodeLanguageId2(lang)];
 +
                    for (var _i = 0, extensions_1 = extensions; _i < extensions_1.length; _i++) {
 +
                        var ext = extensions_1[_i];
 +
                        chunks.push(ext.type);
 +
                        switch (ext.type) {
 +
                            case "u":
 +
                                chunks.push.apply(chunks, tslib_1.__spreadArray(tslib_1.__spreadArray([], ext.attributes), ext.keywords.reduce(function (all, kv) {
 +
                                    return all.concat(kv);
 +
                                }, [])));
 +
                                break;
 +
                            case "t":
 +
                                chunks.push.apply(chunks, tslib_1.__spreadArray([emitUnicodeLanguageId2(ext.lang)], ext.fields.reduce(function (all, kv) {
 +
                                    return all.concat(kv);
 +
                                }, [])));
 +
                                break;
 +
                            default:
 +
                                chunks.push(ext.value);
 +
                                break;
 +
                        }
 +
                    }
 +
                    return chunks.filter(Boolean).join("-");
 +
                }
 +
                exports.emitUnicodeLocaleId = emitUnicodeLocaleId2;
 +
            }
 +
        });
 +
        var require_aliases = __commonJS({
 +
            "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/data/aliases.js": function (exports) {
 +
                "use strict";
 +
                Object.defineProperty(exports, "__esModule", { value: true });
 +
                exports.variantAlias = exports.scriptAlias = exports.territoryAlias = exports.languageAlias = void 0;
 +
                exports.languageAlias = {
 +
                    "aa-saaho": "ssy",
 +
                    "aam": "aas",
 +
                    "aar": "aa",
 +
                    "abk": "ab",
 +
                    "adp": "dz",
 +
                    "afr": "af",
 +
                    "agp": "apf",
 +
                    "ais": "ami",
 +
                    "aju": "jrb",
 +
                    "aka": "ak",
 +
                    "alb": "sq",
 +
                    "als": "sq",
 +
                    "amh": "am",
 +
                    "ara": "ar",
 +
                    "arb": "ar",
 +
                    "arg": "an",
 +
                    "arm": "hy",
 +
                    "art-lojban": "jbo",
 +
                    "asd": "snz",
 +
                    "asm": "as",
 +
                    "aue": "ktz",
 +
                    "ava": "av",
 +
                    "ave": "ae",
 +
                    "aym": "ay",
 +
                    "ayr": "ay",
 +
                    "ayx": "nun",
 +
                    "aze": "az",
 +
                    "azj": "az",
 +
                    "bak": "ba",
 +
                    "bam": "bm",
 +
                    "baq": "eu",
 +
                    "baz": "nvo",
 +
                    "bcc": "bal",
 +
                    "bcl": "bik",
 +
                    "bel": "be",
 +
                    "ben": "bn",
 +
                    "bgm": "bcg",
 +
                    "bh": "bho",
 +
                    "bhk": "fbl",
 +
                    "bih": "bho",
 +
                    "bis": "bi",
 +
                    "bjd": "drl",
 +
                    "bjq": "bzc",
 +
                    "bkb": "ebk",
 +
                    "bod": "bo",
 +
                    "bos": "bs",
 +
                    "bre": "br",
 +
                    "btb": "beb",
 +
                    "bul": "bg",
 +
                    "bur": "my",
 +
                    "bxk": "luy",
 +
                    "bxr": "bua",
 +
                    "cat": "ca",
 +
                    "ccq": "rki",
 +
                    "cel-gaulish": "xtg",
 +
                    "ces": "cs",
 +
                    "cha": "ch",
 +
                    "che": "ce",
 +
                    "chi": "zh",
 +
                    "chu": "cu",
 +
                    "chv": "cv",
 +
                    "cjr": "mom",
 +
                    "cka": "cmr",
 +
                    "cld": "syr",
 +
                    "cmk": "xch",
 +
                    "cmn": "zh",
 +
                    "cnr": "sr-ME",
 +
                    "cor": "kw",
 +
                    "cos": "co",
 +
                    "coy": "pij",
 +
                    "cqu": "quh",
 +
                    "cre": "cr",
 +
                    "cwd": "cr",
 +
                    "cym": "cy",
 +
                    "cze": "cs",
 +
                    "daf": "dnj",
 +
                    "dan": "da",
 +
                    "dap": "njz",
 +
                    "deu": "de",
 +
                    "dgo": "doi",
 +
                    "dhd": "mwr",
 +
                    "dik": "din",
 +
                    "diq": "zza",
 +
                    "dit": "dif",
 +
                    "div": "dv",
 +
                    "djl": "dze",
 +
                    "dkl": "aqd",
 +
                    "drh": "mn",
 +
                    "drr": "kzk",
 +
                    "drw": "fa-AF",
 +
                    "dud": "uth",
 +
                    "duj": "dwu",
 +
                    "dut": "nl",
 +
                    "dwl": "dbt",
 +
                    "dzo": "dz",
 +
                    "ekk": "et",
 +
                    "ell": "el",
 +
                    "elp": "amq",
 +
                    "emk": "man",
 +
                    "en-GB-oed": "en-GB-oxendict",
 +
                    "eng": "en",
 +
                    "epo": "eo",
 +
                    "esk": "ik",
 +
                    "est": "et",
 +
                    "eus": "eu",
 +
                    "ewe": "ee",
 +
                    "fao": "fo",
 +
                    "fas": "fa",
 +
                    "fat": "ak",
 +
                    "fij": "fj",
 +
                    "fin": "fi",
 +
                    "fra": "fr",
 +
                    "fre": "fr",
 +
                    "fry": "fy",
 +
                    "fuc": "ff",
 +
                    "ful": "ff",
 +
                    "gav": "dev",
 +
                    "gaz": "om",
 +
                    "gbc": "wny",
 +
                    "gbo": "grb",
 +
                    "geo": "ka",
 +
                    "ger": "de",
 +
                    "gfx": "vaj",
 +
                    "ggn": "gvr",
 +
                    "ggo": "esg",
 +
                    "ggr": "gtu",
 +
                    "gio": "aou",
 +
                    "gla": "gd",
 +
                    "gle": "ga",
 +
                    "glg": "gl",
 +
                    "gli": "kzk",
 +
                    "glv": "gv",
 +
                    "gno": "gon",
 +
                    "gre": "el",
 +
                    "grn": "gn",
 +
                    "gti": "nyc",
 +
                    "gug": "gn",
 +
                    "guj": "gu",
 +
                    "guv": "duz",
 +
                    "gya": "gba",
 +
                    "hat": "ht",
 +
                    "hau": "ha",
 +
                    "hbs": "sr-Latn",
 +
                    "hdn": "hai",
 +
                    "hea": "hmn",
 +
                    "heb": "he",
 +
                    "her": "hz",
 +
                    "him": "srx",
 +
                    "hin": "hi",
 +
                    "hmo": "ho",
 +
                    "hrr": "jal",
 +
                    "hrv": "hr",
 +
                    "hun": "hu",
 +
                    "hy-arevmda": "hyw",
 +
                    "hye": "hy",
 +
                    "i-ami": "ami",
 +
                    "i-bnn": "bnn",
 +
                    "i-default": "en-x-i-default",
 +
                    "i-enochian": "und-x-i-enochian",
 +
                    "i-hak": "hak",
 +
                    "i-klingon": "tlh",
 +
                    "i-lux": "lb",
 +
                    "i-mingo": "see-x-i-mingo",
 +
                    "i-navajo": "nv",
 +
                    "i-pwn": "pwn",
 +
                    "i-tao": "tao",
 +
                    "i-tay": "tay",
 +
                    "i-tsu": "tsu",
 +
                    "ibi": "opa",
 +
                    "ibo": "ig",
 +
                    "ice": "is",
 +
                    "ido": "io",
 +
                    "iii": "ii",
 +
                    "ike": "iu",
 +
                    "iku": "iu",
 +
                    "ile": "ie",
 +
                    "ill": "ilm",
 +
                    "ilw": "gal",
 +
                    "in": "id",
 +
                    "ina": "ia",
 +
                    "ind": "id",
 +
                    "ipk": "ik",
 +
                    "isl": "is",
 +
                    "ita": "it",
 +
                    "iw": "he",
 +
                    "izi": "eza",
 +
                    "jar": "jgk",
 +
                    "jav": "jv",
 +
                    "jeg": "oyb",
 +
                    "ji": "yi",
 +
                    "jpn": "ja",
 +
                    "jw": "jv",
 +
                    "kal": "kl",
 +
                    "kan": "kn",
 +
                    "kas": "ks",
 +
                    "kat": "ka",
 +
                    "kau": "kr",
 +
                    "kaz": "kk",
 +
                    "kdv": "zkd",
 +
                    "kgc": "tdf",
 +
                    "kgd": "ncq",
 +
                    "kgh": "kml",
 +
                    "khk": "mn",
 +
                    "khm": "km",
 +
                    "kik": "ki",
 +
                    "kin": "rw",
 +
                    "kir": "ky",
 +
                    "kmr": "ku",
 +
                    "knc": "kr",
 +
                    "kng": "kg",
 +
                    "knn": "kok",
 +
                    "koj": "kwv",
 +
                    "kom": "kv",
 +
                    "kon": "kg",
 +
                    "kor": "ko",
 +
                    "kpp": "jkm",
 +
                    "kpv": "kv",
 +
                    "krm": "bmf",
 +
                    "ktr": "dtp",
 +
                    "kua": "kj",
 +
                    "kur": "ku",
 +
                    "kvs": "gdj",
 +
                    "kwq": "yam",
 +
                    "kxe": "tvd",
 +
                    "kxl": "kru",
 +
                    "kzh": "dgl",
 +
                    "kzj": "dtp",
 +
                    "kzt": "dtp",
 +
                    "lao": "lo",
 +
                    "lat": "la",
 +
                    "lav": "lv",
 +
                    "lbk": "bnc",
 +
                    "leg": "enl",
 +
                    "lii": "raq",
 +
                    "lim": "li",
 +
                    "lin": "ln",
 +
                    "lit": "lt",
 +
                    "llo": "ngt",
 +
                    "lmm": "rmx",
 +
                    "ltz": "lb",
 +
                    "lub": "lu",
 +
                    "lug": "lg",
 +
                    "lvs": "lv",
 +
                    "mac": "mk",
 +
                    "mah": "mh",
 +
                    "mal": "ml",
 +
                    "mao": "mi",
 +
                    "mar": "mr",
 +
                    "may": "ms",
 +
                    "meg": "cir",
 +
                    "mgx": "jbk",
 +
                    "mhr": "chm",
 +
                    "mkd": "mk",
 +
                    "mlg": "mg",
 +
                    "mlt": "mt",
 +
                    "mnk": "man",
 +
                    "mnt": "wnn",
 +
                    "mo": "ro",
 +
                    "mof": "xnt",
 +
                    "mol": "ro",
 +
                    "mon": "mn",
 +
                    "mri": "mi",
 +
                    "msa": "ms",
 +
                    "mst": "mry",
 +
                    "mup": "raj",
 +
                    "mwd": "dmw",
 +
                    "mwj": "vaj",
 +
                    "mya": "my",
 +
                    "myd": "aog",
 +
                    "myt": "mry",
 +
                    "nad": "xny",
 +
                    "nau": "na",
 +
                    "nav": "nv",
 +
                    "nbf": "nru",
 +
                    "nbl": "nr",
 +
                    "nbx": "ekc",
 +
                    "ncp": "kdz",
 +
                    "nde": "nd",
 +
                    "ndo": "ng",
 +
                    "nep": "ne",
 +
                    "nld": "nl",
 +
                    "nln": "azd",
 +
                    "nlr": "nrk",
 +
                    "nno": "nn",
 +
                    "nns": "nbr",
 +
                    "nnx": "ngv",
 +
                    "no-bok": "nb",
 +
                    "no-bokmal": "nb",
 +
                    "no-nyn": "nn",
 +
                    "no-nynorsk": "nn",
 +
                    "nob": "nb",
 +
                    "noo": "dtd",
 +
                    "nor": "no",
 +
                    "npi": "ne",
 +
                    "nts": "pij",
 +
                    "nxu": "bpp",
 +
                    "nya": "ny",
 +
                    "oci": "oc",
 +
                    "ojg": "oj",
 +
                    "oji": "oj",
 +
                    "ori": "or",
 +
                    "orm": "om",
 +
                    "ory": "or",
 +
                    "oss": "os",
 +
                    "oun": "vaj",
 +
                    "pan": "pa",
 +
                    "pbu": "ps",
 +
                    "pcr": "adx",
 +
                    "per": "fa",
 +
                    "pes": "fa",
 +
                    "pli": "pi",
 +
                    "plt": "mg",
 +
                    "pmc": "huw",
 +
                    "pmu": "phr",
 +
                    "pnb": "lah",
 +
                    "pol": "pl",
 +
                    "por": "pt",
 +
                    "ppa": "bfy",
 +
                    "ppr": "lcq",
 +
                    "prs": "fa-AF",
 +
                    "pry": "prt",
 +
                    "pus": "ps",
 +
                    "puz": "pub",
 +
                    "que": "qu",
 +
                    "quz": "qu",
 +
                    "rmr": "emx",
 +
                    "rmy": "rom",
 +
                    "roh": "rm",
 +
                    "ron": "ro",
 +
                    "rum": "ro",
 +
                    "run": "rn",
 +
                    "rus": "ru",
 +
                    "sag": "sg",
 +
                    "san": "sa",
 +
                    "sap": "aqt",
 +
                    "sca": "hle",
 +
                    "scc": "sr",
 +
                    "scr": "hr",
 +
                    "sgl": "isk",
 +
                    "sgn-BE-FR": "sfb",
 +
                    "sgn-BE-NL": "vgt",
 +
                    "sgn-BR": "bzs",
 +
                    "sgn-CH-DE": "sgg",
 +
                    "sgn-CO": "csn",
 +
                    "sgn-DE": "gsg",
 +
                    "sgn-DK": "dsl",
 +
                    "sgn-ES": "ssp",
 +
                    "sgn-FR": "fsl",
 +
                    "sgn-GB": "bfi",
 +
                    "sgn-GR": "gss",
 +
                    "sgn-IE": "isg",
 +
                    "sgn-IT": "ise",
 +
                    "sgn-JP": "jsl",
 +
                    "sgn-MX": "mfs",
 +
                    "sgn-NI": "ncs",
 +
                    "sgn-NL": "dse",
 +
                    "sgn-NO": "nsi",
 +
                    "sgn-PT": "psr",
 +
                    "sgn-SE": "swl",
 +
                    "sgn-US": "ase",
 +
                    "sgn-ZA": "sfs",
 +
                    "sh": "sr-Latn",
 +
                    "sin": "si",
 +
                    "skk": "oyb",
 +
                    "slk": "sk",
 +
                    "slo": "sk",
 +
                    "slv": "sl",
 +
                    "sme": "se",
 +
                    "smo": "sm",
 +
                    "sna": "sn",
 +
                    "snd": "sd",
 +
                    "som": "so",
 +
                    "sot": "st",
 +
                    "spa": "es",
 +
                    "spy": "kln",
 +
                    "sqi": "sq",
 +
                    "src": "sc",
 +
                    "srd": "sc",
 +
                    "srp": "sr",
 +
                    "ssw": "ss",
 +
                    "sul": "sgd",
 +
                    "sum": "ulw",
 +
                    "sun": "su",
 +
                    "swa": "sw",
 +
                    "swc": "sw-CD",
 +
                    "swe": "sv",
 +
                    "swh": "sw",
 +
                    "tah": "ty",
 +
                    "tam": "ta",
 +
                    "tat": "tt",
 +
                    "tdu": "dtp",
 +
                    "tel": "te",
 +
                    "tgg": "bjp",
 +
                    "tgk": "tg",
 +
                    "tgl": "fil",
 +
                    "tha": "th",
 +
                    "thc": "tpo",
 +
                    "thw": "ola",
 +
                    "thx": "oyb",
 +
                    "tib": "bo",
 +
                    "tid": "itd",
 +
                    "tie": "ras",
 +
                    "tir": "ti",
 +
                    "tkk": "twm",
 +
                    "tl": "fil",
 +
                    "tlw": "weo",
 +
                    "tmp": "tyj",
 +
                    "tne": "kak",
 +
                    "tnf": "fa-AF",
 +
                    "ton": "to",
 +
                    "tsf": "taj",
 +
                    "tsn": "tn",
 +
                    "tso": "ts",
 +
                    "ttq": "tmh",
 +
                    "tuk": "tk",
 +
                    "tur": "tr",
 +
                    "tw": "ak",
 +
                    "twi": "ak",
 +
                    "uig": "ug",
 +
                    "ukr": "uk",
 +
                    "umu": "del",
 +
                    "und-aaland": "und-AX",
 +
                    "und-arevela": "und",
 +
                    "und-arevmda": "und",
 +
                    "und-bokmal": "und",
 +
                    "und-hakka": "und",
 +
                    "und-hepburn-heploc": "und-alalc97",
 +
                    "und-lojban": "und",
 +
                    "und-nynorsk": "und",
 +
                    "und-saaho": "und",
 +
                    "und-xiang": "und",
 +
                    "unp": "wro",
 +
                    "uok": "ema",
 +
                    "urd": "ur",
 +
                    "uzb": "uz",
 +
                    "uzn": "uz",
 +
                    "ven": "ve",
 +
                    "vie": "vi",
 +
                    "vol": "vo",
 +
                    "wel": "cy",
 +
                    "wgw": "wgb",
 +
                    "wit": "nol",
 +
                    "wiw": "nwo",
 +
                    "wln": "wa",
 +
                    "wol": "wo",
 +
                    "xba": "cax",
 +
                    "xho": "xh",
 +
                    "xia": "acn",
 +
                    "xkh": "waw",
 +
                    "xpe": "kpe",
 +
                    "xrq": "dmw",
 +
                    "xsj": "suj",
 +
                    "xsl": "den",
 +
                    "ybd": "rki",
 +
                    "ydd": "yi",
 +
                    "yen": "ynq",
 +
                    "yid": "yi",
 +
                    "yiy": "yrm",
 +
                    "yma": "lrr",
 +
                    "ymt": "mtm",
 +
                    "yor": "yo",
 +
                    "yos": "zom",
 +
                    "yuu": "yug",
 +
                    "zai": "zap",
 +
                    "zh-cmn": "zh",
 +
                    "zh-cmn-Hans": "zh-Hans",
 +
                    "zh-cmn-Hant": "zh-Hant",
 +
                    "zh-gan": "gan",
 +
                    "zh-guoyu": "zh",
 +
                    "zh-hakka": "hak",
 +
                    "zh-min": "nan-x-zh-min",
 +
                    "zh-min-nan": "nan",
 +
                    "zh-wuu": "wuu",
 +
                    "zh-xiang": "hsn",
 +
                    "zh-yue": "yue",
 +
                    "zha": "za",
 +
                    "zho": "zh",
 +
                    "zir": "scv",
 +
                    "zsm": "ms",
 +
                    "zul": "zu",
 +
                    "zyb": "za"
 +
                };
 +
                exports.territoryAlias = {
 +
                    "100": "BG",
 +
                    "104": "MM",
 +
                    "108": "BI",
 +
                    "112": "BY",
 +
                    "116": "KH",
 +
                    "120": "CM",
 +
                    "124": "CA",
 +
                    "132": "CV",
 +
                    "136": "KY",
 +
                    "140": "CF",
 +
                    "144": "LK",
 +
                    "148": "TD",
 +
                    "152": "CL",
 +
                    "156": "CN",
 +
                    "158": "TW",
 +
                    "162": "CX",
 +
                    "166": "CC",
 +
                    "170": "CO",
 +
                    "172": "RU AM AZ BY GE KG KZ MD TJ TM UA UZ",
 +
                    "174": "KM",
 +
                    "175": "YT",
 +
                    "178": "CG",
 +
                    "180": "CD",
 +
                    "184": "CK",
 +
                    "188": "CR",
 +
                    "191": "HR",
 +
                    "192": "CU",
 +
                    "196": "CY",
 +
                    "200": "CZ SK",
 +
                    "203": "CZ",
 +
                    "204": "BJ",
 +
                    "208": "DK",
 +
                    "212": "DM",
 +
                    "214": "DO",
 +
                    "218": "EC",
 +
                    "222": "SV",
 +
                    "226": "GQ",
 +
                    "230": "ET",
 +
                    "231": "ET",
 +
                    "232": "ER",
 +
                    "233": "EE",
 +
                    "234": "FO",
 +
                    "238": "FK",
 +
                    "239": "GS",
 +
                    "242": "FJ",
 +
                    "246": "FI",
 +
                    "248": "AX",
 +
                    "249": "FR",
 +
                    "250": "FR",
 +
                    "254": "GF",
 +
                    "258": "PF",
 +
                    "260": "TF",
 +
                    "262": "DJ",
 +
                    "266": "GA",
 +
                    "268": "GE",
 +
                    "270": "GM",
 +
                    "275": "PS",
 +
                    "276": "DE",
 +
                    "278": "DE",
 +
                    "280": "DE",
 +
                    "288": "GH",
 +
                    "292": "GI",
 +
                    "296": "KI",
 +
                    "300": "GR",
 +
                    "304": "GL",
 +
                    "308": "GD",
 +
                    "312": "GP",
 +
                    "316": "GU",
 +
                    "320": "GT",
 +
                    "324": "GN",
 +
                    "328": "GY",
 +
                    "332": "HT",
 +
                    "334": "HM",
 +
                    "336": "VA",
 +
                    "340": "HN",
 +
                    "344": "HK",
 +
                    "348": "HU",
 +
                    "352": "IS",
 +
                    "356": "IN",
 +
                    "360": "ID",
 +
                    "364": "IR",
 +
                    "368": "IQ",
 +
                    "372": "IE",
 +
                    "376": "IL",
 +
                    "380": "IT",
 +
                    "384": "CI",
 +
                    "388": "JM",
 +
                    "392": "JP",
 +
                    "398": "KZ",
 +
                    "400": "JO",
 +
                    "404": "KE",
 +
                    "408": "KP",
 +
                    "410": "KR",
 +
                    "414": "KW",
 +
                    "417": "KG",
 +
                    "418": "LA",
 +
                    "422": "LB",
 +
                    "426": "LS",
 +
                    "428": "LV",
 +
                    "430": "LR",
 +
                    "434": "LY",
 +
                    "438": "LI",
 +
                    "440": "LT",
 +
                    "442": "LU",
 +
                    "446": "MO",
 +
                    "450": "MG",
 +
                    "454": "MW",
 +
                    "458": "MY",
 +
                    "462": "MV",
 +
                    "466": "ML",
 +
                    "470": "MT",
 +
                    "474": "MQ",
 +
                    "478": "MR",
 +
                    "480": "MU",
 +
                    "484": "MX",
 +
                    "492": "MC",
 +
                    "496": "MN",
 +
                    "498": "MD",
 +
                    "499": "ME",
 +
                    "500": "MS",
 +
                    "504": "MA",
 +
                    "508": "MZ",
 +
                    "512": "OM",
 +
                    "516": "NA",
 +
                    "520": "NR",
 +
                    "524": "NP",
 +
                    "528": "NL",
 +
                    "530": "CW SX BQ",
 +
                    "531": "CW",
 +
                    "532": "CW SX BQ",
 +
                    "533": "AW",
 +
                    "534": "SX",
 +
                    "535": "BQ",
 +
                    "536": "SA IQ",
 +
                    "540": "NC",
 +
                    "548": "VU",
 +
                    "554": "NZ",
 +
                    "558": "NI",
 +
                    "562": "NE",
 +
                    "566": "NG",
 +
                    "570": "NU",
 +
                    "574": "NF",
 +
                    "578": "NO",
 +
                    "580": "MP",
 +
                    "581": "UM",
 +
                    "582": "FM MH MP PW",
 +
                    "583": "FM",
 +
                    "584": "MH",
 +
                    "585": "PW",
 +
                    "586": "PK",
 +
                    "591": "PA",
 +
                    "598": "PG",
 +
                    "600": "PY",
 +
                    "604": "PE",
 +
                    "608": "PH",
 +
                    "612": "PN",
 +
                    "616": "PL",
 +
                    "620": "PT",
 +
                    "624": "GW",
 +
                    "626": "TL",
 +
                    "630": "PR",
 +
                    "634": "QA",
 +
                    "638": "RE",
 +
                    "642": "RO",
 +
                    "643": "RU",
 +
                    "646": "RW",
 +
                    "652": "BL",
 +
                    "654": "SH",
 +
                    "659": "KN",
 +
                    "660": "AI",
 +
                    "662": "LC",
 +
                    "663": "MF",
 +
                    "666": "PM",
 +
                    "670": "VC",
 +
                    "674": "SM",
 +
                    "678": "ST",
 +
                    "682": "SA",
 +
                    "686": "SN",
 +
                    "688": "RS",
 +
                    "690": "SC",
 +
                    "694": "SL",
 +
                    "702": "SG",
 +
                    "703": "SK",
 +
                    "704": "VN",
 +
                    "705": "SI",
 +
                    "706": "SO",
 +
                    "710": "ZA",
 +
                    "716": "ZW",
 +
                    "720": "YE",
 +
                    "724": "ES",
 +
                    "728": "SS",
 +
                    "729": "SD",
 +
                    "732": "EH",
 +
                    "736": "SD",
 +
                    "740": "SR",
 +
                    "744": "SJ",
 +
                    "748": "SZ",
 +
                    "752": "SE",
 +
                    "756": "CH",
 +
                    "760": "SY",
 +
                    "762": "TJ",
 +
                    "764": "TH",
 +
                    "768": "TG",
 +
                    "772": "TK",
 +
                    "776": "TO",
 +
                    "780": "TT",
 +
                    "784": "AE",
 +
                    "788": "TN",
 +
                    "792": "TR",
 +
                    "795": "TM",
 +
                    "796": "TC",
 +
                    "798": "TV",
 +
                    "800": "UG",
 +
                    "804": "UA",
 +
                    "807": "MK",
 +
                    "810": "RU AM AZ BY EE GE KZ KG LV LT MD TJ TM UA UZ",
 +
                    "818": "EG",
 +
                    "826": "GB",
 +
                    "830": "JE GG",
 +
                    "831": "GG",
 +
                    "832": "JE",
 +
                    "833": "IM",
 +
                    "834": "TZ",
 +
                    "840": "US",
 +
                    "850": "VI",
 +
                    "854": "BF",
 +
                    "858": "UY",
 +
                    "860": "UZ",
 +
                    "862": "VE",
 +
                    "876": "WF",
 +
                    "882": "WS",
 +
                    "886": "YE",
 +
                    "887": "YE",
 +
                    "890": "RS ME SI HR MK BA",
 +
                    "891": "RS ME",
 +
                    "894": "ZM",
 +
                    "958": "AA",
 +
                    "959": "QM",
 +
                    "960": "QN",
 +
                    "962": "QP",
 +
                    "963": "QQ",
 +
                    "964": "QR",
 +
                    "965": "QS",
 +
                    "966": "QT",
 +
                    "967": "EU",
 +
                    "968": "QV",
 +
                    "969": "QW",
 +
                    "970": "QX",
 +
                    "971": "QY",
 +
                    "972": "QZ",
 +
                    "973": "XA",
 +
                    "974": "XB",
 +
                    "975": "XC",
 +
                    "976": "XD",
 +
                    "977": "XE",
 +
                    "978": "XF",
 +
                    "979": "XG",
 +
                    "980": "XH",
 +
                    "981": "XI",
 +
                    "982": "XJ",
 +
                    "983": "XK",
 +
                    "984": "XL",
 +
                    "985": "XM",
 +
                    "986": "XN",
 +
                    "987": "XO",
 +
                    "988": "XP",
 +
                    "989": "XQ",
 +
                    "990": "XR",
 +
                    "991": "XS",
 +
                    "992": "XT",
 +
                    "993": "XU",
 +
                    "994": "XV",
 +
                    "995": "XW",
 +
                    "996": "XX",
 +
                    "997": "XY",
 +
                    "998": "XZ",
 +
                    "999": "ZZ",
 +
                    "004": "AF",
 +
                    "008": "AL",
 +
                    "010": "AQ",
 +
                    "012": "DZ",
 +
                    "016": "AS",
 +
                    "020": "AD",
 +
                    "024": "AO",
 +
                    "028": "AG",
 +
                    "031": "AZ",
 +
                    "032": "AR",
 +
                    "036": "AU",
 +
                    "040": "AT",
 +
                    "044": "BS",
 +
                    "048": "BH",
 +
                    "050": "BD",
 +
                    "051": "AM",
 +
                    "052": "BB",
 +
                    "056": "BE",
 +
                    "060": "BM",
 +
                    "062": "034 143",
 +
                    "064": "BT",
 +
                    "068": "BO",
 +
                    "070": "BA",
 +
                    "072": "BW",
 +
                    "074": "BV",
 +
                    "076": "BR",
 +
                    "084": "BZ",
 +
                    "086": "IO",
 +
                    "090": "SB",
 +
                    "092": "VG",
 +
                    "096": "BN",
 +
                    "AAA": "AA",
 +
                    "ABW": "AW",
 +
                    "AFG": "AF",
 +
                    "AGO": "AO",
 +
                    "AIA": "AI",
 +
                    "ALA": "AX",
 +
                    "ALB": "AL",
 +
                    "AN": "CW SX BQ",
 +
                    "AND": "AD",
 +
                    "ANT": "CW SX BQ",
 +
                    "ARE": "AE",
 +
                    "ARG": "AR",
 +
                    "ARM": "AM",
 +
                    "ASC": "AC",
 +
                    "ASM": "AS",
 +
                    "ATA": "AQ",
 +
                    "ATF": "TF",
 +
                    "ATG": "AG",
 +
                    "AUS": "AU",
 +
                    "AUT": "AT",
 +
                    "AZE": "AZ",
 +
                    "BDI": "BI",
 +
                    "BEL": "BE",
 +
                    "BEN": "BJ",
 +
                    "BES": "BQ",
 +
                    "BFA": "BF",
 +
                    "BGD": "BD",
 +
                    "BGR": "BG",
 +
                    "BHR": "BH",
 +
                    "BHS": "BS",
 +
                    "BIH": "BA",
 +
                    "BLM": "BL",
 +
                    "BLR": "BY",
 +
                    "BLZ": "BZ",
 +
                    "BMU": "BM",
 +
                    "BOL": "BO",
 +
                    "BRA": "BR",
 +
                    "BRB": "BB",
 +
                    "BRN": "BN",
 +
                    "BTN": "BT",
 +
                    "BU": "MM",
 +
                    "BUR": "MM",
 +
                    "BVT": "BV",
 +
                    "BWA": "BW",
 +
                    "CAF": "CF",
 +
                    "CAN": "CA",
 +
                    "CCK": "CC",
 +
                    "CHE": "CH",
 +
                    "CHL": "CL",
 +
                    "CHN": "CN",
 +
                    "CIV": "CI",
 +
                    "CMR": "CM",
 +
                    "COD": "CD",
 +
                    "COG": "CG",
 +
                    "COK": "CK",
 +
                    "COL": "CO",
 +
                    "COM": "KM",
 +
                    "CPT": "CP",
 +
                    "CPV": "CV",
 +
                    "CRI": "CR",
 +
                    "CS": "RS ME",
 +
                    "CT": "KI",
 +
                    "CUB": "CU",
 +
                    "CUW": "CW",
 +
                    "CXR": "CX",
 +
                    "CYM": "KY",
 +
                    "CYP": "CY",
 +
                    "CZE": "CZ",
 +
                    "DD": "DE",
 +
                    "DDR": "DE",
 +
                    "DEU": "DE",
 +
                    "DGA": "DG",
 +
                    "DJI": "DJ",
 +
                    "DMA": "DM",
 +
                    "DNK": "DK",
 +
                    "DOM": "DO",
 +
                    "DY": "BJ",
 +
                    "DZA": "DZ",
 +
                    "ECU": "EC",
 +
                    "EGY": "EG",
 +
                    "ERI": "ER",
 +
                    "ESH": "EH",
 +
                    "ESP": "ES",
 +
                    "EST": "EE",
 +
                    "ETH": "ET",
 +
                    "FIN": "FI",
 +
                    "FJI": "FJ",
 +
                    "FLK": "FK",
 +
                    "FQ": "AQ TF",
 +
                    "FRA": "FR",
 +
                    "FRO": "FO",
 +
                    "FSM": "FM",
 +
                    "FX": "FR",
 +
                    "FXX": "FR",
 +
                    "GAB": "GA",
 +
                    "GBR": "GB",
 +
                    "GEO": "GE",
 +
                    "GGY": "GG",
 +
                    "GHA": "GH",
 +
                    "GIB": "GI",
 +
                    "GIN": "GN",
 +
                    "GLP": "GP",
 +
                    "GMB": "GM",
 +
                    "GNB": "GW",
 +
                    "GNQ": "GQ",
 +
                    "GRC": "GR",
 +
                    "GRD": "GD",
 +
                    "GRL": "GL",
 +
                    "GTM": "GT",
 +
                    "GUF": "GF",
 +
                    "GUM": "GU",
 +
                    "GUY": "GY",
 +
                    "HKG": "HK",
 +
                    "HMD": "HM",
 +
                    "HND": "HN",
 +
                    "HRV": "HR",
 +
                    "HTI": "HT",
 +
                    "HUN": "HU",
 +
                    "HV": "BF",
 +
                    "IDN": "ID",
 +
                    "IMN": "IM",
 +
                    "IND": "IN",
 +
                    "IOT": "IO",
 +
                    "IRL": "IE",
 +
                    "IRN": "IR",
 +
                    "IRQ": "IQ",
 +
                    "ISL": "IS",
 +
                    "ISR": "IL",
 +
                    "ITA": "IT",
 +
                    "JAM": "JM",
 +
                    "JEY": "JE",
 +
                    "JOR": "JO",
 +
                    "JPN": "JP",
 +
                    "JT": "UM",
 +
                    "KAZ": "KZ",
 +
                    "KEN": "KE",
 +
                    "KGZ": "KG",
 +
                    "KHM": "KH",
 +
                    "KIR": "KI",
 +
                    "KNA": "KN",
 +
                    "KOR": "KR",
 +
                    "KWT": "KW",
 +
                    "LAO": "LA",
 +
                    "LBN": "LB",
 +
                    "LBR": "LR",
 +
                    "LBY": "LY",
 +
                    "LCA": "LC",
 +
                    "LIE": "LI",
 +
                    "LKA": "LK",
 +
                    "LSO": "LS",
 +
                    "LTU": "LT",
 +
                    "LUX": "LU",
 +
                    "LVA": "LV",
 +
                    "MAC": "MO",
 +
                    "MAF": "MF",
 +
                    "MAR": "MA",
 +
                    "MCO": "MC",
 +
                    "MDA": "MD",
 +
                    "MDG": "MG",
 +
                    "MDV": "MV",
 +
                    "MEX": "MX",
 +
                    "MHL": "MH",
 +
                    "MI": "UM",
 +
                    "MKD": "MK",
 +
                    "MLI": "ML",
 +
                    "MLT": "MT",
 +
                    "MMR": "MM",
 +
                    "MNE": "ME",
 +
                    "MNG": "MN",
 +
                    "MNP": "MP",
 +
                    "MOZ": "MZ",
 +
                    "MRT": "MR",
 +
                    "MSR": "MS",
 +
                    "MTQ": "MQ",
 +
                    "MUS": "MU",
 +
                    "MWI": "MW",
 +
                    "MYS": "MY",
 +
                    "MYT": "YT",
 +
                    "NAM": "NA",
 +
                    "NCL": "NC",
 +
                    "NER": "NE",
 +
                    "NFK": "NF",
 +
                    "NGA": "NG",
 +
                    "NH": "VU",
 +
                    "NIC": "NI",
 +
                    "NIU": "NU",
 +
                    "NLD": "NL",
 +
                    "NOR": "NO",
 +
                    "NPL": "NP",
 +
                    "NQ": "AQ",
 +
                    "NRU": "NR",
 +
                    "NT": "SA IQ",
 +
                    "NTZ": "SA IQ",
 +
                    "NZL": "NZ",
 +
                    "OMN": "OM",
 +
                    "PAK": "PK",
 +
                    "PAN": "PA",
 +
                    "PC": "FM MH MP PW",
 +
                    "PCN": "PN",
 +
                    "PER": "PE",
 +
                    "PHL": "PH",
 +
                    "PLW": "PW",
 +
                    "PNG": "PG",
 +
                    "POL": "PL",
 +
                    "PRI": "PR",
 +
                    "PRK": "KP",
 +
                    "PRT": "PT",
 +
                    "PRY": "PY",
 +
                    "PSE": "PS",
 +
                    "PU": "UM",
 +
                    "PYF": "PF",
 +
                    "PZ": "PA",
 +
                    "QAT": "QA",
 +
                    "QMM": "QM",
 +
                    "QNN": "QN",
 +
                    "QPP": "QP",
 +
                    "QQQ": "QQ",
 +
                    "QRR": "QR",
 +
                    "QSS": "QS",
 +
                    "QTT": "QT",
 +
                    "QU": "EU",
 +
                    "QUU": "EU",
 +
                    "QVV": "QV",
 +
                    "QWW": "QW",
 +
                    "QXX": "QX",
 +
                    "QYY": "QY",
 +
                    "QZZ": "QZ",
 +
                    "REU": "RE",
 +
                    "RH": "ZW",
 +
                    "ROU": "RO",
 +
                    "RUS": "RU",
 +
                    "RWA": "RW",
 +
                    "SAU": "SA",
 +
                    "SCG": "RS ME",
 +
                    "SDN": "SD",
 +
                    "SEN": "SN",
 +
                    "SGP": "SG",
 +
                    "SGS": "GS",
 +
                    "SHN": "SH",
 +
                    "SJM": "SJ",
 +
                    "SLB": "SB",
 +
                    "SLE": "SL",
 +
                    "SLV": "SV",
 +
                    "SMR": "SM",
 +
                    "SOM": "SO",
 +
                    "SPM": "PM",
 +
                    "SRB": "RS",
 +
                    "SSD": "SS",
 +
                    "STP": "ST",
 +
                    "SU": "RU AM AZ BY EE GE KZ KG LV LT MD TJ TM UA UZ",
 +
                    "SUN": "RU AM AZ BY EE GE KZ KG LV LT MD TJ TM UA UZ",
 +
                    "SUR": "SR",
 +
                    "SVK": "SK",
 +
                    "SVN": "SI",
 +
                    "SWE": "SE",
 +
                    "SWZ": "SZ",
 +
                    "SXM": "SX",
 +
                    "SYC": "SC",
 +
                    "SYR": "SY",
 +
                    "TAA": "TA",
 +
                    "TCA": "TC",
 +
                    "TCD": "TD",
 +
                    "TGO": "TG",
 +
                    "THA": "TH",
 +
                    "TJK": "TJ",
 +
                    "TKL": "TK",
 +
                    "TKM": "TM",
 +
                    "TLS": "TL",
 +
                    "TMP": "TL",
 +
                    "TON": "TO",
 +
                    "TP": "TL",
 +
                    "TTO": "TT",
 +
                    "TUN": "TN",
 +
                    "TUR": "TR",
 +
                    "TUV": "TV",
 +
                    "TWN": "TW",
 +
                    "TZA": "TZ",
 +
                    "UGA": "UG",
 +
                    "UK": "GB",
 +
                    "UKR": "UA",
 +
                    "UMI": "UM",
 +
                    "URY": "UY",
 +
                    "USA": "US",
 +
                    "UZB": "UZ",
 +
                    "VAT": "VA",
 +
                    "VCT": "VC",
 +
                    "VD": "VN",
 +
                    "VEN": "VE",
 +
                    "VGB": "VG",
 +
                    "VIR": "VI",
 +
                    "VNM": "VN",
 +
                    "VUT": "VU",
 +
                    "WK": "UM",
 +
                    "WLF": "WF",
 +
                    "WSM": "WS",
 +
                    "XAA": "XA",
 +
                    "XBB": "XB",
 +
                    "XCC": "XC",
 +
                    "XDD": "XD",
 +
                    "XEE": "XE",
 +
                    "XFF": "XF",
 +
                    "XGG": "XG",
 +
                    "XHH": "XH",
 +
                    "XII": "XI",
 +
                    "XJJ": "XJ",
 +
                    "XKK": "XK",
 +
                    "XLL": "XL",
 +
                    "XMM": "XM",
 +
                    "XNN": "XN",
 +
                    "XOO": "XO",
 +
                    "XPP": "XP",
 +
                    "XQQ": "XQ",
 +
                    "XRR": "XR",
 +
                    "XSS": "XS",
 +
                    "XTT": "XT",
 +
                    "XUU": "XU",
 +
                    "XVV": "XV",
 +
                    "XWW": "XW",
 +
                    "XXX": "XX",
 +
                    "XYY": "XY",
 +
                    "XZZ": "XZ",
 +
                    "YD": "YE",
 +
                    "YEM": "YE",
 +
                    "YMD": "YE",
 +
                    "YU": "RS ME",
 +
                    "YUG": "RS ME",
 +
                    "ZAF": "ZA",
 +
                    "ZAR": "CD",
 +
                    "ZMB": "ZM",
 +
                    "ZR": "CD",
 +
                    "ZWE": "ZW",
 +
                    "ZZZ": "ZZ"
 +
                };
 +
                exports.scriptAlias = {
 +
                    "Qaai": "Zinh"
 +
                };
 +
                exports.variantAlias = {
 +
                    "heploc": "alalc97",
 +
                    "polytoni": "polyton"
 +
                };
 +
            }
 +
        });
 +
        var require_likelySubtags = __commonJS({
 +
            "node_modules/cldr-core/supplemental/likelySubtags.json": function (exports, module) {
 +
                module.exports = {
 +
                    supplemental: {
 +
                        version: {
 +
                            _unicodeVersion: "13.0.0",
 +
                            _cldrVersion: "39"
 +
                        },
 +
                        likelySubtags: {
 +
                            aa: "aa-Latn-ET",
 +
                            aai: "aai-Latn-ZZ",
 +
                            aak: "aak-Latn-ZZ",
 +
                            aau: "aau-Latn-ZZ",
 +
                            ab: "ab-Cyrl-GE",
 +
                            abi: "abi-Latn-ZZ",
 +
                            abq: "abq-Cyrl-ZZ",
 +
                            abr: "abr-Latn-GH",
 +
                            abt: "abt-Latn-ZZ",
 +
                            aby: "aby-Latn-ZZ",
 +
                            acd: "acd-Latn-ZZ",
 +
                            ace: "ace-Latn-ID",
 +
                            ach: "ach-Latn-UG",
 +
                            ada: "ada-Latn-GH",
 +
                            ade: "ade-Latn-ZZ",
 +
                            adj: "adj-Latn-ZZ",
 +
                            adp: "adp-Tibt-BT",
 +
                            ady: "ady-Cyrl-RU",
 +
                            adz: "adz-Latn-ZZ",
 +
                            ae: "ae-Avst-IR",
 +
                            aeb: "aeb-Arab-TN",
 +
                            aey: "aey-Latn-ZZ",
 +
                            af: "af-Latn-ZA",
 +
                            agc: "agc-Latn-ZZ",
 +
                            agd: "agd-Latn-ZZ",
 +
                            agg: "agg-Latn-ZZ",
 +
                            agm: "agm-Latn-ZZ",
 +
                            ago: "ago-Latn-ZZ",
 +
                            agq: "agq-Latn-CM",
 +
                            aha: "aha-Latn-ZZ",
 +
                            ahl: "ahl-Latn-ZZ",
 +
                            aho: "aho-Ahom-IN",
 +
                            ajg: "ajg-Latn-ZZ",
 +
                            ak: "ak-Latn-GH",
 +
                            akk: "akk-Xsux-IQ",
 +
                            ala: "ala-Latn-ZZ",
 +
                            ali: "ali-Latn-ZZ",
 +
                            aln: "aln-Latn-XK",
 +
                            alt: "alt-Cyrl-RU",
 +
                            am: "am-Ethi-ET",
 +
                            amm: "amm-Latn-ZZ",
 +
                            amn: "amn-Latn-ZZ",
 +
                            amo: "amo-Latn-NG",
 +
                            amp: "amp-Latn-ZZ",
 +
                            an: "an-Latn-ES",
 +
                            anc: "anc-Latn-ZZ",
 +
                            ank: "ank-Latn-ZZ",
 +
                            ann: "ann-Latn-ZZ",
 +
                            any: "any-Latn-ZZ",
 +
                            aoj: "aoj-Latn-ZZ",
 +
                            aom: "aom-Latn-ZZ",
 +
                            aoz: "aoz-Latn-ID",
 +
                            apc: "apc-Arab-ZZ",
 +
                            apd: "apd-Arab-TG",
 +
                            ape: "ape-Latn-ZZ",
 +
                            apr: "apr-Latn-ZZ",
 +
                            aps: "aps-Latn-ZZ",
 +
                            apz: "apz-Latn-ZZ",
 +
                            ar: "ar-Arab-EG",
 +
                            arc: "arc-Armi-IR",
 +
                            "arc-Nbat": "arc-Nbat-JO",
 +
                            "arc-Palm": "arc-Palm-SY",
 +
                            arh: "arh-Latn-ZZ",
 +
                            arn: "arn-Latn-CL",
 +
                            aro: "aro-Latn-BO",
 +
                            arq: "arq-Arab-DZ",
 +
                            ars: "ars-Arab-SA",
 +
                            ary: "ary-Arab-MA",
 +
                            arz: "arz-Arab-EG",
 +
                            as: "as-Beng-IN",
 +
                            asa: "asa-Latn-TZ",
 +
                            ase: "ase-Sgnw-US",
 +
                            asg: "asg-Latn-ZZ",
 +
                            aso: "aso-Latn-ZZ",
 +
                            ast: "ast-Latn-ES",
 +
                            ata: "ata-Latn-ZZ",
 +
                            atg: "atg-Latn-ZZ",
 +
                            atj: "atj-Latn-CA",
 +
                            auy: "auy-Latn-ZZ",
 +
                            av: "av-Cyrl-RU",
 +
                            avl: "avl-Arab-ZZ",
 +
                            avn: "avn-Latn-ZZ",
 +
                            avt: "avt-Latn-ZZ",
 +
                            avu: "avu-Latn-ZZ",
 +
                            awa: "awa-Deva-IN",
 +
                            awb: "awb-Latn-ZZ",
 +
                            awo: "awo-Latn-ZZ",
 +
                            awx: "awx-Latn-ZZ",
 +
                            ay: "ay-Latn-BO",
 +
                            ayb: "ayb-Latn-ZZ",
 +
                            az: "az-Latn-AZ",
 +
                            "az-Arab": "az-Arab-IR",
 +
                            "az-IQ": "az-Arab-IQ",
 +
                            "az-IR": "az-Arab-IR",
 +
                            "az-RU": "az-Cyrl-RU",
 +
                            ba: "ba-Cyrl-RU",
 +
                            bal: "bal-Arab-PK",
 +
                            ban: "ban-Latn-ID",
 +
                            bap: "bap-Deva-NP",
 +
                            bar: "bar-Latn-AT",
 +
                            bas: "bas-Latn-CM",
 +
                            bav: "bav-Latn-ZZ",
 +
                            bax: "bax-Bamu-CM",
 +
                            bba: "bba-Latn-ZZ",
 +
                            bbb: "bbb-Latn-ZZ",
 +
                            bbc: "bbc-Latn-ID",
 +
                            bbd: "bbd-Latn-ZZ",
 +
                            bbj: "bbj-Latn-CM",
 +
                            bbp: "bbp-Latn-ZZ",
 +
                            bbr: "bbr-Latn-ZZ",
 +
                            bcf: "bcf-Latn-ZZ",
 +
                            bch: "bch-Latn-ZZ",
 +
                            bci: "bci-Latn-CI",
 +
                            bcm: "bcm-Latn-ZZ",
 +
                            bcn: "bcn-Latn-ZZ",
 +
                            bco: "bco-Latn-ZZ",
 +
                            bcq: "bcq-Ethi-ZZ",
 +
                            bcu: "bcu-Latn-ZZ",
 +
                            bdd: "bdd-Latn-ZZ",
 +
                            be: "be-Cyrl-BY",
 +
                            bef: "bef-Latn-ZZ",
 +
                            beh: "beh-Latn-ZZ",
 +
                            bej: "bej-Arab-SD",
 +
                            bem: "bem-Latn-ZM",
 +
                            bet: "bet-Latn-ZZ",
 +
                            bew: "bew-Latn-ID",
 +
                            bex: "bex-Latn-ZZ",
 +
                            bez: "bez-Latn-TZ",
 +
                            bfd: "bfd-Latn-CM",
 +
                            bfq: "bfq-Taml-IN",
 +
                            bft: "bft-Arab-PK",
 +
                            bfy: "bfy-Deva-IN",
 +
                            bg: "bg-Cyrl-BG",
 +
                            bgc: "bgc-Deva-IN",
 +
                            bgn: "bgn-Arab-PK",
 +
                            bgx: "bgx-Grek-TR",
 +
                            bhb: "bhb-Deva-IN",
 +
                            bhg: "bhg-Latn-ZZ",
 +
                            bhi: "bhi-Deva-IN",
 +
                            bhl: "bhl-Latn-ZZ",
 +
                            bho: "bho-Deva-IN",
 +
                            bhy: "bhy-Latn-ZZ",
 +
                            bi: "bi-Latn-VU",
 +
                            bib: "bib-Latn-ZZ",
 +
                            big: "big-Latn-ZZ",
 +
                            bik: "bik-Latn-PH",
 +
                            bim: "bim-Latn-ZZ",
 +
                            bin: "bin-Latn-NG",
 +
                            bio: "bio-Latn-ZZ",
 +
                            biq: "biq-Latn-ZZ",
 +
                            bjh: "bjh-Latn-ZZ",
 +
                            bji: "bji-Ethi-ZZ",
 +
                            bjj: "bjj-Deva-IN",
 +
                            bjn: "bjn-Latn-ID",
 +
                            bjo: "bjo-Latn-ZZ",
 +
                            bjr: "bjr-Latn-ZZ",
 +
                            bjt: "bjt-Latn-SN",
 +
                            bjz: "bjz-Latn-ZZ",
 +
                            bkc: "bkc-Latn-ZZ",
 +
                            bkm: "bkm-Latn-CM",
 +
                            bkq: "bkq-Latn-ZZ",
 +
                            bku: "bku-Latn-PH",
 +
                            bkv: "bkv-Latn-ZZ",
 +
                            blt: "blt-Tavt-VN",
 +
                            bm: "bm-Latn-ML",
 +
                            bmh: "bmh-Latn-ZZ",
 +
                            bmk: "bmk-Latn-ZZ",
 +
                            bmq: "bmq-Latn-ML",
 +
                            bmu: "bmu-Latn-ZZ",
 +
                            bn: "bn-Beng-BD",
 +
                            bng: "bng-Latn-ZZ",
 +
                            bnm: "bnm-Latn-ZZ",
 +
                            bnp: "bnp-Latn-ZZ",
 +
                            bo: "bo-Tibt-CN",
 +
                            boj: "boj-Latn-ZZ",
 +
                            bom: "bom-Latn-ZZ",
 +
                            bon: "bon-Latn-ZZ",
 +
                            bpy: "bpy-Beng-IN",
 +
                            bqc: "bqc-Latn-ZZ",
 +
                            bqi: "bqi-Arab-IR",
 +
                            bqp: "bqp-Latn-ZZ",
 +
                            bqv: "bqv-Latn-CI",
 +
                            br: "br-Latn-FR",
 +
                            bra: "bra-Deva-IN",
 +
                            brh: "brh-Arab-PK",
 +
                            brx: "brx-Deva-IN",
 +
                            brz: "brz-Latn-ZZ",
 +
                            bs: "bs-Latn-BA",
 +
                            bsj: "bsj-Latn-ZZ",
 +
                            bsq: "bsq-Bass-LR",
 +
                            bss: "bss-Latn-CM",
 +
                            bst: "bst-Ethi-ZZ",
 +
                            bto: "bto-Latn-PH",
 +
                            btt: "btt-Latn-ZZ",
 +
                            btv: "btv-Deva-PK",
 +
                            bua: "bua-Cyrl-RU",
 +
                            buc: "buc-Latn-YT",
 +
                            bud: "bud-Latn-ZZ",
 +
                            bug: "bug-Latn-ID",
 +
                            buk: "buk-Latn-ZZ",
 +
                            bum: "bum-Latn-CM",
 +
                            buo: "buo-Latn-ZZ",
 +
                            bus: "bus-Latn-ZZ",
 +
                            buu: "buu-Latn-ZZ",
 +
                            bvb: "bvb-Latn-GQ",
 +
                            bwd: "bwd-Latn-ZZ",
 +
                            bwr: "bwr-Latn-ZZ",
 +
                            bxh: "bxh-Latn-ZZ",
 +
                            bye: "bye-Latn-ZZ",
 +
                            byn: "byn-Ethi-ER",
 +
                            byr: "byr-Latn-ZZ",
 +
                            bys: "bys-Latn-ZZ",
 +
                            byv: "byv-Latn-CM",
 +
                            byx: "byx-Latn-ZZ",
 +
                            bza: "bza-Latn-ZZ",
 +
                            bze: "bze-Latn-ML",
 +
                            bzf: "bzf-Latn-ZZ",
 +
                            bzh: "bzh-Latn-ZZ",
 +
                            bzw: "bzw-Latn-ZZ",
 +
                            ca: "ca-Latn-ES",
 +
                            cad: "cad-Latn-US",
 +
                            can: "can-Latn-ZZ",
 +
                            cbj: "cbj-Latn-ZZ",
 +
                            cch: "cch-Latn-NG",
 +
                            ccp: "ccp-Cakm-BD",
 +
                            ce: "ce-Cyrl-RU",
 +
                            ceb: "ceb-Latn-PH",
 +
                            cfa: "cfa-Latn-ZZ",
 +
                            cgg: "cgg-Latn-UG",
 +
                            ch: "ch-Latn-GU",
 +
                            chk: "chk-Latn-FM",
 +
                            chm: "chm-Cyrl-RU",
 +
                            cho: "cho-Latn-US",
 +
                            chp: "chp-Latn-CA",
 +
                            chr: "chr-Cher-US",
 +
                            cic: "cic-Latn-US",
 +
                            cja: "cja-Arab-KH",
 +
                            cjm: "cjm-Cham-VN",
 +
                            cjv: "cjv-Latn-ZZ",
 +
                            ckb: "ckb-Arab-IQ",
 +
                            ckl: "ckl-Latn-ZZ",
 +
                            cko: "cko-Latn-ZZ",
 +
                            cky: "cky-Latn-ZZ",
 +
                            cla: "cla-Latn-ZZ",
 +
                            cme: "cme-Latn-ZZ",
 +
                            cmg: "cmg-Soyo-MN",
 +
                            co: "co-Latn-FR",
 +
                            cop: "cop-Copt-EG",
 +
                            cps: "cps-Latn-PH",
 +
                            cr: "cr-Cans-CA",
 +
                            crh: "crh-Cyrl-UA",
 +
                            crj: "crj-Cans-CA",
 +
                            crk: "crk-Cans-CA",
 +
                            crl: "crl-Cans-CA",
 +
                            crm: "crm-Cans-CA",
 +
                            crs: "crs-Latn-SC",
 +
                            cs: "cs-Latn-CZ",
 +
                            csb: "csb-Latn-PL",
 +
                            csw: "csw-Cans-CA",
 +
                            ctd: "ctd-Pauc-MM",
 +
                            cu: "cu-Cyrl-RU",
 +
                            "cu-Glag": "cu-Glag-BG",
 +
                            cv: "cv-Cyrl-RU",
 +
                            cy: "cy-Latn-GB",
 +
                            da: "da-Latn-DK",
 +
                            dad: "dad-Latn-ZZ",
 +
                            daf: "daf-Latn-CI",
 +
                            dag: "dag-Latn-ZZ",
 +
                            dah: "dah-Latn-ZZ",
 +
                            dak: "dak-Latn-US",
 +
                            dar: "dar-Cyrl-RU",
 +
                            dav: "dav-Latn-KE",
 +
                            dbd: "dbd-Latn-ZZ",
 +
                            dbq: "dbq-Latn-ZZ",
 +
                            dcc: "dcc-Arab-IN",
 +
                            ddn: "ddn-Latn-ZZ",
 +
                            de: "de-Latn-DE",
 +
                            ded: "ded-Latn-ZZ",
 +
                            den: "den-Latn-CA",
 +
                            dga: "dga-Latn-ZZ",
 +
                            dgh: "dgh-Latn-ZZ",
 +
                            dgi: "dgi-Latn-ZZ",
 +
                            dgl: "dgl-Arab-ZZ",
 +
                            dgr: "dgr-Latn-CA",
 +
                            dgz: "dgz-Latn-ZZ",
 +
                            dia: "dia-Latn-ZZ",
 +
                            dje: "dje-Latn-NE",
 +
                            dmf: "dmf-Medf-NG",
 +
                            dnj: "dnj-Latn-CI",
 +
                            dob: "dob-Latn-ZZ",
 +
                            doi: "doi-Deva-IN",
 +
                            dop: "dop-Latn-ZZ",
 +
                            dow: "dow-Latn-ZZ",
 +
                            drh: "drh-Mong-CN",
 +
                            dri: "dri-Latn-ZZ",
 +
                            drs: "drs-Ethi-ZZ",
 +
                            dsb: "dsb-Latn-DE",
 +
                            dtm: "dtm-Latn-ML",
 +
                            dtp: "dtp-Latn-MY",
 +
                            dts: "dts-Latn-ZZ",
 +
                            dty: "dty-Deva-NP",
 +
                            dua: "dua-Latn-CM",
 +
                            duc: "duc-Latn-ZZ",
 +
                            dud: "dud-Latn-ZZ",
 +
                            dug: "dug-Latn-ZZ",
 +
                            dv: "dv-Thaa-MV",
 +
                            dva: "dva-Latn-ZZ",
 +
                            dww: "dww-Latn-ZZ",
 +
                            dyo: "dyo-Latn-SN",
 +
                            dyu: "dyu-Latn-BF",
 +
                            dz: "dz-Tibt-BT",
 +
                            dzg: "dzg-Latn-ZZ",
 +
                            ebu: "ebu-Latn-KE",
 +
                            ee: "ee-Latn-GH",
 +
                            efi: "efi-Latn-NG",
 +
                            egl: "egl-Latn-IT",
 +
                            egy: "egy-Egyp-EG",
 +
                            eka: "eka-Latn-ZZ",
 +
                            eky: "eky-Kali-MM",
 +
                            el: "el-Grek-GR",
 +
                            ema: "ema-Latn-ZZ",
 +
                            emi: "emi-Latn-ZZ",
 +
                            en: "en-Latn-US",
 +
                            "en-Shaw": "en-Shaw-GB",
 +
                            enn: "enn-Latn-ZZ",
 +
                            enq: "enq-Latn-ZZ",
 +
                            eo: "eo-Latn-001",
 +
                            eri: "eri-Latn-ZZ",
 +
                            es: "es-Latn-ES",
 +
                            esg: "esg-Gonm-IN",
 +
                            esu: "esu-Latn-US",
 +
                            et: "et-Latn-EE",
 +
                            etr: "etr-Latn-ZZ",
 +
                            ett: "ett-Ital-IT",
 +
                            etu: "etu-Latn-ZZ",
 +
                            etx: "etx-Latn-ZZ",
 +
                            eu: "eu-Latn-ES",
 +
                            ewo: "ewo-Latn-CM",
 +
                            ext: "ext-Latn-ES",
 +
                            eza: "eza-Latn-ZZ",
 +
                            fa: "fa-Arab-IR",
 +
                            faa: "faa-Latn-ZZ",
 +
                            fab: "fab-Latn-ZZ",
 +
                            fag: "fag-Latn-ZZ",
 +
                            fai: "fai-Latn-ZZ",
 +
                            fan: "fan-Latn-GQ",
 +
                            ff: "ff-Latn-SN",
 +
                            "ff-Adlm": "ff-Adlm-GN",
 +
                            ffi: "ffi-Latn-ZZ",
 +
                            ffm: "ffm-Latn-ML",
 +
                            fi: "fi-Latn-FI",
 +
                            fia: "fia-Arab-SD",
 +
                            fil: "fil-Latn-PH",
 +
                            fit: "fit-Latn-SE",
 +
                            fj: "fj-Latn-FJ",
 +
                            flr: "flr-Latn-ZZ",
 +
                            fmp: "fmp-Latn-ZZ",
 +
                            fo: "fo-Latn-FO",
 +
                            fod: "fod-Latn-ZZ",
 +
                            fon: "fon-Latn-BJ",
 +
                            "for": "for-Latn-ZZ",
 +
                            fpe: "fpe-Latn-ZZ",
 +
                            fqs: "fqs-Latn-ZZ",
 +
                            fr: "fr-Latn-FR",
 +
                            frc: "frc-Latn-US",
 +
                            frp: "frp-Latn-FR",
 +
                            frr: "frr-Latn-DE",
 +
                            frs: "frs-Latn-DE",
 +
                            fub: "fub-Arab-CM",
 +
                            fud: "fud-Latn-WF",
 +
                            fue: "fue-Latn-ZZ",
 +
                            fuf: "fuf-Latn-GN",
 +
                            fuh: "fuh-Latn-ZZ",
 +
                            fuq: "fuq-Latn-NE",
 +
                            fur: "fur-Latn-IT",
 +
                            fuv: "fuv-Latn-NG",
 +
                            fuy: "fuy-Latn-ZZ",
 +
                            fvr: "fvr-Latn-SD",
 +
                            fy: "fy-Latn-NL",
 +
                            ga: "ga-Latn-IE",
 +
                            gaa: "gaa-Latn-GH",
 +
                            gaf: "gaf-Latn-ZZ",
 +
                            gag: "gag-Latn-MD",
 +
                            gah: "gah-Latn-ZZ",
 +
                            gaj: "gaj-Latn-ZZ",
 +
                            gam: "gam-Latn-ZZ",
 +
                            gan: "gan-Hans-CN",
 +
                            gaw: "gaw-Latn-ZZ",
 +
                            gay: "gay-Latn-ID",
 +
                            gba: "gba-Latn-ZZ",
 +
                            gbf: "gbf-Latn-ZZ",
 +
                            gbm: "gbm-Deva-IN",
 +
                            gby: "gby-Latn-ZZ",
 +
                            gbz: "gbz-Arab-IR",
 +
                            gcr: "gcr-Latn-GF",
 +
                            gd: "gd-Latn-GB",
 +
                            gde: "gde-Latn-ZZ",
 +
                            gdn: "gdn-Latn-ZZ",
 +
                            gdr: "gdr-Latn-ZZ",
 +
                            geb: "geb-Latn-ZZ",
 +
                            gej: "gej-Latn-ZZ",
 +
                            gel: "gel-Latn-ZZ",
 +
                            gez: "gez-Ethi-ET",
 +
                            gfk: "gfk-Latn-ZZ",
 +
                            ggn: "ggn-Deva-NP",
 +
                            ghs: "ghs-Latn-ZZ",
 +
                            gil: "gil-Latn-KI",
 +
                            gim: "gim-Latn-ZZ",
 +
                            gjk: "gjk-Arab-PK",
 +
                            gjn: "gjn-Latn-ZZ",
 +
                            gju: "gju-Arab-PK",
 +
                            gkn: "gkn-Latn-ZZ",
 +
                            gkp: "gkp-Latn-ZZ",
 +
                            gl: "gl-Latn-ES",
 +
                            glk: "glk-Arab-IR",
 +
                            gmm: "gmm-Latn-ZZ",
 +
                            gmv: "gmv-Ethi-ZZ",
 +
                            gn: "gn-Latn-PY",
 +
                            gnd: "gnd-Latn-ZZ",
 +
                            gng: "gng-Latn-ZZ",
 +
                            god: "god-Latn-ZZ",
 +
                            gof: "gof-Ethi-ZZ",
 +
                            goi: "goi-Latn-ZZ",
 +
                            gom: "gom-Deva-IN",
 +
                            gon: "gon-Telu-IN",
 +
                            gor: "gor-Latn-ID",
 +
                            gos: "gos-Latn-NL",
 +
                            got: "got-Goth-UA",
 +
                            grb: "grb-Latn-ZZ",
 +
                            grc: "grc-Cprt-CY",
 +
                            "grc-Linb": "grc-Linb-GR",
 +
                            grt: "grt-Beng-IN",
 +
                            grw: "grw-Latn-ZZ",
 +
                            gsw: "gsw-Latn-CH",
 +
                            gu: "gu-Gujr-IN",
 +
                            gub: "gub-Latn-BR",
 +
                            guc: "guc-Latn-CO",
 +
                            gud: "gud-Latn-ZZ",
 +
                            gur: "gur-Latn-GH",
 +
                            guw: "guw-Latn-ZZ",
 +
                            gux: "gux-Latn-ZZ",
 +
                            guz: "guz-Latn-KE",
 +
                            gv: "gv-Latn-IM",
 +
                            gvf: "gvf-Latn-ZZ",
 +
                            gvr: "gvr-Deva-NP",
 +
                            gvs: "gvs-Latn-ZZ",
 +
                            gwc: "gwc-Arab-ZZ",
 +
                            gwi: "gwi-Latn-CA",
 +
                            gwt: "gwt-Arab-ZZ",
 +
                            gyi: "gyi-Latn-ZZ",
 +
                            ha: "ha-Latn-NG",
 +
                            "ha-CM": "ha-Arab-CM",
 +
                            "ha-SD": "ha-Arab-SD",
 +
                            hag: "hag-Latn-ZZ",
 +
                            hak: "hak-Hans-CN",
 +
                            ham: "ham-Latn-ZZ",
 +
                            haw: "haw-Latn-US",
 +
                            haz: "haz-Arab-AF",
 +
                            hbb: "hbb-Latn-ZZ",
 +
                            hdy: "hdy-Ethi-ZZ",
 +
                            he: "he-Hebr-IL",
 +
                            hhy: "hhy-Latn-ZZ",
 +
                            hi: "hi-Deva-IN",
 +
                            hia: "hia-Latn-ZZ",
 +
                            hif: "hif-Latn-FJ",
 +
                            hig: "hig-Latn-ZZ",
 +
                            hih: "hih-Latn-ZZ",
 +
                            hil: "hil-Latn-PH",
 +
                            hla: "hla-Latn-ZZ",
 +
                            hlu: "hlu-Hluw-TR",
 +
                            hmd: "hmd-Plrd-CN",
 +
                            hmt: "hmt-Latn-ZZ",
 +
                            hnd: "hnd-Arab-PK",
 +
                            hne: "hne-Deva-IN",
 +
                            hnj: "hnj-Hmng-LA",
 +
                            hnn: "hnn-Latn-PH",
 +
                            hno: "hno-Arab-PK",
 +
                            ho: "ho-Latn-PG",
 +
                            hoc: "hoc-Deva-IN",
 +
                            hoj: "hoj-Deva-IN",
 +
                            hot: "hot-Latn-ZZ",
 +
                            hr: "hr-Latn-HR",
 +
                            hsb: "hsb-Latn-DE",
 +
                            hsn: "hsn-Hans-CN",
 +
                            ht: "ht-Latn-HT",
 +
                            hu: "hu-Latn-HU",
 +
                            hui: "hui-Latn-ZZ",
 +
                            hy: "hy-Armn-AM",
 +
                            hz: "hz-Latn-NA",
 +
                            ia: "ia-Latn-001",
 +
                            ian: "ian-Latn-ZZ",
 +
                            iar: "iar-Latn-ZZ",
 +
                            iba: "iba-Latn-MY",
 +
                            ibb: "ibb-Latn-NG",
 +
                            iby: "iby-Latn-ZZ",
 +
                            ica: "ica-Latn-ZZ",
 +
                            ich: "ich-Latn-ZZ",
 +
                            id: "id-Latn-ID",
 +
                            idd: "idd-Latn-ZZ",
 +
                            idi: "idi-Latn-ZZ",
 +
                            idu: "idu-Latn-ZZ",
 +
                            ife: "ife-Latn-TG",
 +
                            ig: "ig-Latn-NG",
 +
                            igb: "igb-Latn-ZZ",
 +
                            ige: "ige-Latn-ZZ",
 +
                            ii: "ii-Yiii-CN",
 +
                            ijj: "ijj-Latn-ZZ",
 +
                            ik: "ik-Latn-US",
 +
                            ikk: "ikk-Latn-ZZ",
 +
                            ikt: "ikt-Latn-CA",
 +
                            ikw: "ikw-Latn-ZZ",
 +
                            ikx: "ikx-Latn-ZZ",
 +
                            ilo: "ilo-Latn-PH",
 +
                            imo: "imo-Latn-ZZ",
 +
                            "in": "in-Latn-ID",
 +
                            inh: "inh-Cyrl-RU",
 +
                            io: "io-Latn-001",
 +
                            iou: "iou-Latn-ZZ",
 +
                            iri: "iri-Latn-ZZ",
 +
                            is: "is-Latn-IS",
 +
                            it: "it-Latn-IT",
 +
                            iu: "iu-Cans-CA",
 +
                            iw: "iw-Hebr-IL",
 +
                            iwm: "iwm-Latn-ZZ",
 +
                            iws: "iws-Latn-ZZ",
 +
                            izh: "izh-Latn-RU",
 +
                            izi: "izi-Latn-ZZ",
 +
                            ja: "ja-Jpan-JP",
 +
                            jab: "jab-Latn-ZZ",
 +
                            jam: "jam-Latn-JM",
 +
                            jar: "jar-Latn-ZZ",
 +
                            jbo: "jbo-Latn-001",
 +
                            jbu: "jbu-Latn-ZZ",
 +
                            jen: "jen-Latn-ZZ",
 +
                            jgk: "jgk-Latn-ZZ",
 +
                            jgo: "jgo-Latn-CM",
 +
                            ji: "ji-Hebr-UA",
 +
                            jib: "jib-Latn-ZZ",
 +
                            jmc: "jmc-Latn-TZ",
 +
                            jml: "jml-Deva-NP",
 +
                            jra: "jra-Latn-ZZ",
 +
                            jut: "jut-Latn-DK",
 +
                            jv: "jv-Latn-ID",
 +
                            jw: "jw-Latn-ID",
 +
                            ka: "ka-Geor-GE",
 +
                            kaa: "kaa-Cyrl-UZ",
 +
                            kab: "kab-Latn-DZ",
 +
                            kac: "kac-Latn-MM",
 +
                            kad: "kad-Latn-ZZ",
 +
                            kai: "kai-Latn-ZZ",
 +
                            kaj: "kaj-Latn-NG",
 +
                            kam: "kam-Latn-KE",
 +
                            kao: "kao-Latn-ML",
 +
                            kbd: "kbd-Cyrl-RU",
 +
                            kbm: "kbm-Latn-ZZ",
 +
                            kbp: "kbp-Latn-ZZ",
 +
                            kbq: "kbq-Latn-ZZ",
 +
                            kbx: "kbx-Latn-ZZ",
 +
                            kby: "kby-Arab-NE",
 +
                            kcg: "kcg-Latn-NG",
 +
                            kck: "kck-Latn-ZW",
 +
                            kcl: "kcl-Latn-ZZ",
 +
                            kct: "kct-Latn-ZZ",
 +
                            kde: "kde-Latn-TZ",
 +
                            kdh: "kdh-Arab-TG",
 +
                            kdl: "kdl-Latn-ZZ",
 +
                            kdt: "kdt-Thai-TH",
 +
                            kea: "kea-Latn-CV",
 +
                            ken: "ken-Latn-CM",
 +
                            kez: "kez-Latn-ZZ",
 +
                            kfo: "kfo-Latn-CI",
 +
                            kfr: "kfr-Deva-IN",
 +
                            kfy: "kfy-Deva-IN",
 +
                            kg: "kg-Latn-CD",
 +
                            kge: "kge-Latn-ID",
 +
                            kgf: "kgf-Latn-ZZ",
 +
                            kgp: "kgp-Latn-BR",
 +
                            kha: "kha-Latn-IN",
 +
                            khb: "khb-Talu-CN",
 +
                            khn: "khn-Deva-IN",
 +
                            khq: "khq-Latn-ML",
 +
                            khs: "khs-Latn-ZZ",
 +
                            kht: "kht-Mymr-IN",
 +
                            khw: "khw-Arab-PK",
 +
                            khz: "khz-Latn-ZZ",
 +
                            ki: "ki-Latn-KE",
 +
                            kij: "kij-Latn-ZZ",
 +
                            kiu: "kiu-Latn-TR",
 +
                            kiw: "kiw-Latn-ZZ",
 +
                            kj: "kj-Latn-NA",
 +
                            kjd: "kjd-Latn-ZZ",
 +
                            kjg: "kjg-Laoo-LA",
 +
                            kjs: "kjs-Latn-ZZ",
 +
                            kjy: "kjy-Latn-ZZ",
 +
                            kk: "kk-Cyrl-KZ",
 +
                            "kk-AF": "kk-Arab-AF",
 +
                            "kk-Arab": "kk-Arab-CN",
 +
                            "kk-CN": "kk-Arab-CN",
 +
                            "kk-IR": "kk-Arab-IR",
 +
                            "kk-MN": "kk-Arab-MN",
 +
                            kkc: "kkc-Latn-ZZ",
 +
                            kkj: "kkj-Latn-CM",
 +
                            kl: "kl-Latn-GL",
 +
                            kln: "kln-Latn-KE",
 +
                            klq: "klq-Latn-ZZ",
 +
                            klt: "klt-Latn-ZZ",
 +
                            klx: "klx-Latn-ZZ",
 +
                            km: "km-Khmr-KH",
 +
                            kmb: "kmb-Latn-AO",
 +
                            kmh: "kmh-Latn-ZZ",
 +
                            kmo: "kmo-Latn-ZZ",
 +
                            kms: "kms-Latn-ZZ",
 +
                            kmu: "kmu-Latn-ZZ",
 +
                            kmw: "kmw-Latn-ZZ",
 +
                            kn: "kn-Knda-IN",
 +
                            knf: "knf-Latn-GW",
 +
                            knp: "knp-Latn-ZZ",
 +
                            ko: "ko-Kore-KR",
 +
                            koi: "koi-Cyrl-RU",
 +
                            kok: "kok-Deva-IN",
 +
                            kol: "kol-Latn-ZZ",
 +
                            kos: "kos-Latn-FM",
 +
                            koz: "koz-Latn-ZZ",
 +
                            kpe: "kpe-Latn-LR",
 +
                            kpf: "kpf-Latn-ZZ",
 +
                            kpo: "kpo-Latn-ZZ",
 +
                            kpr: "kpr-Latn-ZZ",
 +
                            kpx: "kpx-Latn-ZZ",
 +
                            kqb: "kqb-Latn-ZZ",
 +
                            kqf: "kqf-Latn-ZZ",
 +
                            kqs: "kqs-Latn-ZZ",
 +
                            kqy: "kqy-Ethi-ZZ",
 +
                            kr: "kr-Latn-ZZ",
 +
                            krc: "krc-Cyrl-RU",
 +
                            kri: "kri-Latn-SL",
 +
                            krj: "krj-Latn-PH",
 +
                            krl: "krl-Latn-RU",
 +
                            krs: "krs-Latn-ZZ",
 +
                            kru: "kru-Deva-IN",
 +
                            ks: "ks-Arab-IN",
 +
                            ksb: "ksb-Latn-TZ",
 +
                            ksd: "ksd-Latn-ZZ",
 +
                            ksf: "ksf-Latn-CM",
 +
                            ksh: "ksh-Latn-DE",
 +
                            ksj: "ksj-Latn-ZZ",
 +
                            ksr: "ksr-Latn-ZZ",
 +
                            ktb: "ktb-Ethi-ZZ",
 +
                            ktm: "ktm-Latn-ZZ",
 +
                            kto: "kto-Latn-ZZ",
 +
                            ktr: "ktr-Latn-MY",
 +
                            ku: "ku-Latn-TR",
 +
                            "ku-Arab": "ku-Arab-IQ",
 +
                            "ku-LB": "ku-Arab-LB",
 +
                            "ku-Yezi": "ku-Yezi-GE",
 +
                            kub: "kub-Latn-ZZ",
 +
                            kud: "kud-Latn-ZZ",
 +
                            kue: "kue-Latn-ZZ",
 +
                            kuj: "kuj-Latn-ZZ",
 +
                            kum: "kum-Cyrl-RU",
 +
                            kun: "kun-Latn-ZZ",
 +
                            kup: "kup-Latn-ZZ",
 +
                            kus: "kus-Latn-ZZ",
 +
                            kv: "kv-Cyrl-RU",
 +
                            kvg: "kvg-Latn-ZZ",
 +
                            kvr: "kvr-Latn-ID",
 +
                            kvx: "kvx-Arab-PK",
 +
                            kw: "kw-Latn-GB",
 +
                            kwj: "kwj-Latn-ZZ",
 +
                            kwo: "kwo-Latn-ZZ",
 +
                            kwq: "kwq-Latn-ZZ",
 +
                            kxa: "kxa-Latn-ZZ",
 +
                            kxc: "kxc-Ethi-ZZ",
 +
                            kxe: "kxe-Latn-ZZ",
 +
                            kxl: "kxl-Deva-IN",
 +
                            kxm: "kxm-Thai-TH",
 +
                            kxp: "kxp-Arab-PK",
 +
                            kxw: "kxw-Latn-ZZ",
 +
                            kxz: "kxz-Latn-ZZ",
 +
                            ky: "ky-Cyrl-KG",
 +
                            "ky-Arab": "ky-Arab-CN",
 +
                            "ky-CN": "ky-Arab-CN",
 +
                            "ky-Latn": "ky-Latn-TR",
 +
                            "ky-TR": "ky-Latn-TR",
 +
                            kye: "kye-Latn-ZZ",
 +
                            kyx: "kyx-Latn-ZZ",
 +
                            kzh: "kzh-Arab-ZZ",
 +
                            kzj: "kzj-Latn-MY",
 +
                            kzr: "kzr-Latn-ZZ",
 +
                            kzt: "kzt-Latn-MY",
 +
                            la: "la-Latn-VA",
 +
                            lab: "lab-Lina-GR",
 +
                            lad: "lad-Hebr-IL",
 +
                            lag: "lag-Latn-TZ",
 +
                            lah: "lah-Arab-PK",
 +
                            laj: "laj-Latn-UG",
 +
                            las: "las-Latn-ZZ",
 +
                            lb: "lb-Latn-LU",
 +
                            lbe: "lbe-Cyrl-RU",
 +
                            lbu: "lbu-Latn-ZZ",
 +
                            lbw: "lbw-Latn-ID",
 +
                            lcm: "lcm-Latn-ZZ",
 +
                            lcp: "lcp-Thai-CN",
 +
                            ldb: "ldb-Latn-ZZ",
 +
                            led: "led-Latn-ZZ",
 +
                            lee: "lee-Latn-ZZ",
 +
                            lem: "lem-Latn-ZZ",
 +
                            lep: "lep-Lepc-IN",
 +
                            leq: "leq-Latn-ZZ",
 +
                            leu: "leu-Latn-ZZ",
 +
                            lez: "lez-Cyrl-RU",
 +
                            lg: "lg-Latn-UG",
 +
                            lgg: "lgg-Latn-ZZ",
 +
                            li: "li-Latn-NL",
 +
                            lia: "lia-Latn-ZZ",
 +
                            lid: "lid-Latn-ZZ",
 +
                            lif: "lif-Deva-NP",
 +
                            "lif-Limb": "lif-Limb-IN",
 +
                            lig: "lig-Latn-ZZ",
 +
                            lih: "lih-Latn-ZZ",
 +
                            lij: "lij-Latn-IT",
 +
                            lis: "lis-Lisu-CN",
 +
                            ljp: "ljp-Latn-ID",
 +
                            lki: "lki-Arab-IR",
 +
                            lkt: "lkt-Latn-US",
 +
                            lle: "lle-Latn-ZZ",
 +
                            lln: "lln-Latn-ZZ",
 +
                            lmn: "lmn-Telu-IN",
 +
                            lmo: "lmo-Latn-IT",
 +
                            lmp: "lmp-Latn-ZZ",
 +
                            ln: "ln-Latn-CD",
 +
                            lns: "lns-Latn-ZZ",
 +
                            lnu: "lnu-Latn-ZZ",
 +
                            lo: "lo-Laoo-LA",
 +
                            loj: "loj-Latn-ZZ",
 +
                            lok: "lok-Latn-ZZ",
 +
                            lol: "lol-Latn-CD",
 +
                            lor: "lor-Latn-ZZ",
 +
                            los: "los-Latn-ZZ",
 +
                            loz: "loz-Latn-ZM",
 +
                            lrc: "lrc-Arab-IR",
 +
                            lt: "lt-Latn-LT",
 +
                            ltg: "ltg-Latn-LV",
 +
                            lu: "lu-Latn-CD",
 +
                            lua: "lua-Latn-CD",
 +
                            luo: "luo-Latn-KE",
 +
                            luy: "luy-Latn-KE",
 +
                            luz: "luz-Arab-IR",
 +
                            lv: "lv-Latn-LV",
 +
                            lwl: "lwl-Thai-TH",
 +
                            lzh: "lzh-Hans-CN",
 +
                            lzz: "lzz-Latn-TR",
 +
                            mad: "mad-Latn-ID",
 +
                            maf: "maf-Latn-CM",
 +
                            mag: "mag-Deva-IN",
 +
                            mai: "mai-Deva-IN",
 +
                            mak: "mak-Latn-ID",
 +
                            man: "man-Latn-GM",
 +
                            "man-GN": "man-Nkoo-GN",
 +
                            "man-Nkoo": "man-Nkoo-GN",
 +
                            mas: "mas-Latn-KE",
 +
                            maw: "maw-Latn-ZZ",
 +
                            maz: "maz-Latn-MX",
 +
                            mbh: "mbh-Latn-ZZ",
 +
                            mbo: "mbo-Latn-ZZ",
 +
                            mbq: "mbq-Latn-ZZ",
 +
                            mbu: "mbu-Latn-ZZ",
 +
                            mbw: "mbw-Latn-ZZ",
 +
                            mci: "mci-Latn-ZZ",
 +
                            mcp: "mcp-Latn-ZZ",
 +
                            mcq: "mcq-Latn-ZZ",
 +
                            mcr: "mcr-Latn-ZZ",
 +
                            mcu: "mcu-Latn-ZZ",
 +
                            mda: "mda-Latn-ZZ",
 +
                            mde: "mde-Arab-ZZ",
 +
                            mdf: "mdf-Cyrl-RU",
 +
                            mdh: "mdh-Latn-PH",
 +
                            mdj: "mdj-Latn-ZZ",
 +
                            mdr: "mdr-Latn-ID",
 +
                            mdx: "mdx-Ethi-ZZ",
 +
                            med: "med-Latn-ZZ",
 +
                            mee: "mee-Latn-ZZ",
 +
                            mek: "mek-Latn-ZZ",
 +
                            men: "men-Latn-SL",
 +
                            mer: "mer-Latn-KE",
 +
                            met: "met-Latn-ZZ",
 +
                            meu: "meu-Latn-ZZ",
 +
                            mfa: "mfa-Arab-TH",
 +
                            mfe: "mfe-Latn-MU",
 +
                            mfn: "mfn-Latn-ZZ",
 +
                            mfo: "mfo-Latn-ZZ",
 +
                            mfq: "mfq-Latn-ZZ",
 +
                            mg: "mg-Latn-MG",
 +
                            mgh: "mgh-Latn-MZ",
 +
                            mgl: "mgl-Latn-ZZ",
 +
                            mgo: "mgo-Latn-CM",
 +
                            mgp: "mgp-Deva-NP",
 +
                            mgy: "mgy-Latn-TZ",
 +
                            mh: "mh-Latn-MH",
 +
                            mhi: "mhi-Latn-ZZ",
 +
                            mhl: "mhl-Latn-ZZ",
 +
                            mi: "mi-Latn-NZ",
 +
                            mif: "mif-Latn-ZZ",
 +
                            min: "min-Latn-ID",
 +
                            miw: "miw-Latn-ZZ",
 +
                            mk: "mk-Cyrl-MK",
 +
                            mki: "mki-Arab-ZZ",
 +
                            mkl: "mkl-Latn-ZZ",
 +
                            mkp: "mkp-Latn-ZZ",
 +
                            mkw: "mkw-Latn-ZZ",
 +
                            ml: "ml-Mlym-IN",
 +
                            mle: "mle-Latn-ZZ",
 +
                            mlp: "mlp-Latn-ZZ",
 +
                            mls: "mls-Latn-SD",
 +
                            mmo: "mmo-Latn-ZZ",
 +
                            mmu: "mmu-Latn-ZZ",
 +
                            mmx: "mmx-Latn-ZZ",
 +
                            mn: "mn-Cyrl-MN",
 +
                            "mn-CN": "mn-Mong-CN",
 +
                            "mn-Mong": "mn-Mong-CN",
 +
                            mna: "mna-Latn-ZZ",
 +
                            mnf: "mnf-Latn-ZZ",
 +
                            mni: "mni-Beng-IN",
 +
                            mnw: "mnw-Mymr-MM",
 +
                            mo: "mo-Latn-RO",
 +
                            moa: "moa-Latn-ZZ",
 +
                            moe: "moe-Latn-CA",
 +
                            moh: "moh-Latn-CA",
 +
                            mos: "mos-Latn-BF",
 +
                            mox: "mox-Latn-ZZ",
 +
                            mpp: "mpp-Latn-ZZ",
 +
                            mps: "mps-Latn-ZZ",
 +
                            mpt: "mpt-Latn-ZZ",
 +
                            mpx: "mpx-Latn-ZZ",
 +
                            mql: "mql-Latn-ZZ",
 +
                            mr: "mr-Deva-IN",
 +
                            mrd: "mrd-Deva-NP",
 +
                            mrj: "mrj-Cyrl-RU",
 +
                            mro: "mro-Mroo-BD",
 +
                            ms: "ms-Latn-MY",
 +
                            "ms-CC": "ms-Arab-CC",
 +
                            mt: "mt-Latn-MT",
 +
                            mtc: "mtc-Latn-ZZ",
 +
                            mtf: "mtf-Latn-ZZ",
 +
                            mti: "mti-Latn-ZZ",
 +
                            mtr: "mtr-Deva-IN",
 +
                            mua: "mua-Latn-CM",
 +
                            mur: "mur-Latn-ZZ",
 +
                            mus: "mus-Latn-US",
 +
                            mva: "mva-Latn-ZZ",
 +
                            mvn: "mvn-Latn-ZZ",
 +
                            mvy: "mvy-Arab-PK",
 +
                            mwk: "mwk-Latn-ML",
 +
                            mwr: "mwr-Deva-IN",
 +
                            mwv: "mwv-Latn-ID",
 +
                            mww: "mww-Hmnp-US",
 +
                            mxc: "mxc-Latn-ZW",
 +
                            mxm: "mxm-Latn-ZZ",
 +
                            my: "my-Mymr-MM",
 +
                            myk: "myk-Latn-ZZ",
 +
                            mym: "mym-Ethi-ZZ",
 +
                            myv: "myv-Cyrl-RU",
 +
                            myw: "myw-Latn-ZZ",
 +
                            myx: "myx-Latn-UG",
 +
                            myz: "myz-Mand-IR",
 +
                            mzk: "mzk-Latn-ZZ",
 +
                            mzm: "mzm-Latn-ZZ",
 +
                            mzn: "mzn-Arab-IR",
 +
                            mzp: "mzp-Latn-ZZ",
 +
                            mzw: "mzw-Latn-ZZ",
 +
                            mzz: "mzz-Latn-ZZ",
 +
                            na: "na-Latn-NR",
 +
                            nac: "nac-Latn-ZZ",
 +
                            naf: "naf-Latn-ZZ",
 +
                            nak: "nak-Latn-ZZ",
 +
                            nan: "nan-Hans-CN",
 +
                            nap: "nap-Latn-IT",
 +
                            naq: "naq-Latn-NA",
 +
                            nas: "nas-Latn-ZZ",
 +
                            nb: "nb-Latn-NO",
 +
                            nca: "nca-Latn-ZZ",
 +
                            nce: "nce-Latn-ZZ",
 +
                            ncf: "ncf-Latn-ZZ",
 +
                            nch: "nch-Latn-MX",
 +
                            nco: "nco-Latn-ZZ",
 +
                            ncu: "ncu-Latn-ZZ",
 +
                            nd: "nd-Latn-ZW",
 +
                            ndc: "ndc-Latn-MZ",
 +
                            nds: "nds-Latn-DE",
 +
                            ne: "ne-Deva-NP",
 +
                            neb: "neb-Latn-ZZ",
 +
                            "new": "new-Deva-NP",
 +
                            nex: "nex-Latn-ZZ",
 +
                            nfr: "nfr-Latn-ZZ",
 +
                            ng: "ng-Latn-NA",
 +
                            nga: "nga-Latn-ZZ",
 +
                            ngb: "ngb-Latn-ZZ",
 +
                            ngl: "ngl-Latn-MZ",
 +
                            nhb: "nhb-Latn-ZZ",
 +
                            nhe: "nhe-Latn-MX",
 +
                            nhw: "nhw-Latn-MX",
 +
                            nif: "nif-Latn-ZZ",
 +
                            nii: "nii-Latn-ZZ",
 +
                            nij: "nij-Latn-ID",
 +
                            nin: "nin-Latn-ZZ",
 +
                            niu: "niu-Latn-NU",
 +
                            niy: "niy-Latn-ZZ",
 +
                            niz: "niz-Latn-ZZ",
 +
                            njo: "njo-Latn-IN",
 +
                            nkg: "nkg-Latn-ZZ",
 +
                            nko: "nko-Latn-ZZ",
 +
                            nl: "nl-Latn-NL",
 +
                            nmg: "nmg-Latn-CM",
 +
                            nmz: "nmz-Latn-ZZ",
 +
                            nn: "nn-Latn-NO",
 +
                            nnf: "nnf-Latn-ZZ",
 +
                            nnh: "nnh-Latn-CM",
 +
                            nnk: "nnk-Latn-ZZ",
 +
                            nnm: "nnm-Latn-ZZ",
 +
                            nnp: "nnp-Wcho-IN",
 +
                            no: "no-Latn-NO",
 +
                            nod: "nod-Lana-TH",
 +
                            noe: "noe-Deva-IN",
 +
                            non: "non-Runr-SE",
 +
                            nop: "nop-Latn-ZZ",
 +
                            nou: "nou-Latn-ZZ",
 +
                            nqo: "nqo-Nkoo-GN",
 +
                            nr: "nr-Latn-ZA",
 +
                            nrb: "nrb-Latn-ZZ",
 +
                            nsk: "nsk-Cans-CA",
 +
                            nsn: "nsn-Latn-ZZ",
 +
                            nso: "nso-Latn-ZA",
 +
                            nss: "nss-Latn-ZZ",
 +
                            ntm: "ntm-Latn-ZZ",
 +
                            ntr: "ntr-Latn-ZZ",
 +
                            nui: "nui-Latn-ZZ",
 +
                            nup: "nup-Latn-ZZ",
 +
                            nus: "nus-Latn-SS",
 +
                            nuv: "nuv-Latn-ZZ",
 +
                            nux: "nux-Latn-ZZ",
 +
                            nv: "nv-Latn-US",
 +
                            nwb: "nwb-Latn-ZZ",
 +
                            nxq: "nxq-Latn-CN",
 +
                            nxr: "nxr-Latn-ZZ",
 +
                            ny: "ny-Latn-MW",
 +
                            nym: "nym-Latn-TZ",
 +
                            nyn: "nyn-Latn-UG",
 +
                            nzi: "nzi-Latn-GH",
 +
                            oc: "oc-Latn-FR",
 +
                            ogc: "ogc-Latn-ZZ",
 +
                            okr: "okr-Latn-ZZ",
 +
                            okv: "okv-Latn-ZZ",
 +
                            om: "om-Latn-ET",
 +
                            ong: "ong-Latn-ZZ",
 +
                            onn: "onn-Latn-ZZ",
 +
                            ons: "ons-Latn-ZZ",
 +
                            opm: "opm-Latn-ZZ",
 +
                            or: "or-Orya-IN",
 +
                            oro: "oro-Latn-ZZ",
 +
                            oru: "oru-Arab-ZZ",
 +
                            os: "os-Cyrl-GE",
 +
                            osa: "osa-Osge-US",
 +
                            ota: "ota-Arab-ZZ",
 +
                            otk: "otk-Orkh-MN",
 +
                            ozm: "ozm-Latn-ZZ",
 +
                            pa: "pa-Guru-IN",
 +
                            "pa-Arab": "pa-Arab-PK",
 +
                            "pa-PK": "pa-Arab-PK",
 +
                            pag: "pag-Latn-PH",
 +
                            pal: "pal-Phli-IR",
 +
                            "pal-Phlp": "pal-Phlp-CN",
 +
                            pam: "pam-Latn-PH",
 +
                            pap: "pap-Latn-AW",
 +
                            pau: "pau-Latn-PW",
 +
                            pbi: "pbi-Latn-ZZ",
 +
                            pcd: "pcd-Latn-FR",
 +
                            pcm: "pcm-Latn-NG",
 +
                            pdc: "pdc-Latn-US",
 +
                            pdt: "pdt-Latn-CA",
 +
                            ped: "ped-Latn-ZZ",
 +
                            peo: "peo-Xpeo-IR",
 +
                            pex: "pex-Latn-ZZ",
 +
                            pfl: "pfl-Latn-DE",
 +
                            phl: "phl-Arab-ZZ",
 +
                            phn: "phn-Phnx-LB",
 +
                            pil: "pil-Latn-ZZ",
 +
                            pip: "pip-Latn-ZZ",
 +
                            pka: "pka-Brah-IN",
 +
                            pko: "pko-Latn-KE",
 +
                            pl: "pl-Latn-PL",
 +
                            pla: "pla-Latn-ZZ",
 +
                            pms: "pms-Latn-IT",
 +
                            png: "png-Latn-ZZ",
 +
                            pnn: "pnn-Latn-ZZ",
 +
                            pnt: "pnt-Grek-GR",
 +
                            pon: "pon-Latn-FM",
 +
                            ppa: "ppa-Deva-IN",
 +
                            ppo: "ppo-Latn-ZZ",
 +
                            pra: "pra-Khar-PK",
 +
                            prd: "prd-Arab-IR",
 +
                            prg: "prg-Latn-001",
 +
                            ps: "ps-Arab-AF",
 +
                            pss: "pss-Latn-ZZ",
 +
                            pt: "pt-Latn-BR",
 +
                            ptp: "ptp-Latn-ZZ",
 +
                            puu: "puu-Latn-GA",
 +
                            pwa: "pwa-Latn-ZZ",
 +
                            qu: "qu-Latn-PE",
 +
                            quc: "quc-Latn-GT",
 +
                            qug: "qug-Latn-EC",
 +
                            rai: "rai-Latn-ZZ",
 +
                            raj: "raj-Deva-IN",
 +
                            rao: "rao-Latn-ZZ",
 +
                            rcf: "rcf-Latn-RE",
 +
                            rej: "rej-Latn-ID",
 +
                            rel: "rel-Latn-ZZ",
 +
                            res: "res-Latn-ZZ",
 +
                            rgn: "rgn-Latn-IT",
 +
                            rhg: "rhg-Arab-MM",
 +
                            ria: "ria-Latn-IN",
 +
                            rif: "rif-Tfng-MA",
 +
                            "rif-NL": "rif-Latn-NL",
 +
                            rjs: "rjs-Deva-NP",
 +
                            rkt: "rkt-Beng-BD",
 +
                            rm: "rm-Latn-CH",
 +
                            rmf: "rmf-Latn-FI",
 +
                            rmo: "rmo-Latn-CH",
 +
                            rmt: "rmt-Arab-IR",
 +
                            rmu: "rmu-Latn-SE",
 +
                            rn: "rn-Latn-BI",
 +
                            rna: "rna-Latn-ZZ",
 +
                            rng: "rng-Latn-MZ",
 +
                            ro: "ro-Latn-RO",
 +
                            rob: "rob-Latn-ID",
 +
                            rof: "rof-Latn-TZ",
 +
                            roo: "roo-Latn-ZZ",
 +
                            rro: "rro-Latn-ZZ",
 +
                            rtm: "rtm-Latn-FJ",
 +
                            ru: "ru-Cyrl-RU",
 +
                            rue: "rue-Cyrl-UA",
 +
                            rug: "rug-Latn-SB",
 +
                            rw: "rw-Latn-RW",
 +
                            rwk: "rwk-Latn-TZ",
 +
                            rwo: "rwo-Latn-ZZ",
 +
                            ryu: "ryu-Kana-JP",
 +
                            sa: "sa-Deva-IN",
 +
                            saf: "saf-Latn-GH",
 +
                            sah: "sah-Cyrl-RU",
 +
                            saq: "saq-Latn-KE",
 +
                            sas: "sas-Latn-ID",
 +
                            sat: "sat-Olck-IN",
 +
                            sav: "sav-Latn-SN",
 +
                            saz: "saz-Saur-IN",
 +
                            sba: "sba-Latn-ZZ",
 +
                            sbe: "sbe-Latn-ZZ",
 +
                            sbp: "sbp-Latn-TZ",
 +
                            sc: "sc-Latn-IT",
 +
                            sck: "sck-Deva-IN",
 +
                            scl: "scl-Arab-ZZ",
 +
                            scn: "scn-Latn-IT",
 +
                            sco: "sco-Latn-GB",
 +
                            scs: "scs-Latn-CA",
 +
                            sd: "sd-Arab-PK",
 +
                            "sd-Deva": "sd-Deva-IN",
 +
                            "sd-Khoj": "sd-Khoj-IN",
 +
                            "sd-Sind": "sd-Sind-IN",
 +
                            sdc: "sdc-Latn-IT",
 +
                            sdh: "sdh-Arab-IR",
 +
                            se: "se-Latn-NO",
 +
                            sef: "sef-Latn-CI",
 +
                            seh: "seh-Latn-MZ",
 +
                            sei: "sei-Latn-MX",
 +
                            ses: "ses-Latn-ML",
 +
                            sg: "sg-Latn-CF",
 +
                            sga: "sga-Ogam-IE",
 +
                            sgs: "sgs-Latn-LT",
 +
                            sgw: "sgw-Ethi-ZZ",
 +
                            sgz: "sgz-Latn-ZZ",
 +
                            shi: "shi-Tfng-MA",
 +
                            shk: "shk-Latn-ZZ",
 +
                            shn: "shn-Mymr-MM",
 +
                            shu: "shu-Arab-ZZ",
 +
                            si: "si-Sinh-LK",
 +
                            sid: "sid-Latn-ET",
 +
                            sig: "sig-Latn-ZZ",
 +
                            sil: "sil-Latn-ZZ",
 +
                            sim: "sim-Latn-ZZ",
 +
                            sjr: "sjr-Latn-ZZ",
 +
                            sk: "sk-Latn-SK",
 +
                            skc: "skc-Latn-ZZ",
 +
                            skr: "skr-Arab-PK",
 +
                            sks: "sks-Latn-ZZ",
 +
                            sl: "sl-Latn-SI",
 +
                            sld: "sld-Latn-ZZ",
 +
                            sli: "sli-Latn-PL",
 +
                            sll: "sll-Latn-ZZ",
 +
                            sly: "sly-Latn-ID",
 +
                            sm: "sm-Latn-WS",
 +
                            sma: "sma-Latn-SE",
 +
                            smj: "smj-Latn-SE",
 +
                            smn: "smn-Latn-FI",
 +
                            smp: "smp-Samr-IL",
 +
                            smq: "smq-Latn-ZZ",
 +
                            sms: "sms-Latn-FI",
 +
                            sn: "sn-Latn-ZW",
 +
                            snc: "snc-Latn-ZZ",
 +
                            snk: "snk-Latn-ML",
 +
                            snp: "snp-Latn-ZZ",
 +
                            snx: "snx-Latn-ZZ",
 +
                            sny: "sny-Latn-ZZ",
 +
                            so: "so-Latn-SO",
 +
                            sog: "sog-Sogd-UZ",
 +
                            sok: "sok-Latn-ZZ",
 +
                            soq: "soq-Latn-ZZ",
 +
                            sou: "sou-Thai-TH",
 +
                            soy: "soy-Latn-ZZ",
 +
                            spd: "spd-Latn-ZZ",
 +
                            spl: "spl-Latn-ZZ",
 +
                            sps: "sps-Latn-ZZ",
 +
                            sq: "sq-Latn-AL",
 +
                            sr: "sr-Cyrl-RS",
 +
                            "sr-ME": "sr-Latn-ME",
 +
                            "sr-RO": "sr-Latn-RO",
 +
                            "sr-RU": "sr-Latn-RU",
 +
                            "sr-TR": "sr-Latn-TR",
 +
                            srb: "srb-Sora-IN",
 +
                            srn: "srn-Latn-SR",
 +
                            srr: "srr-Latn-SN",
 +
                            srx: "srx-Deva-IN",
 +
                            ss: "ss-Latn-ZA",
 +
                            ssd: "ssd-Latn-ZZ",
 +
                            ssg: "ssg-Latn-ZZ",
 +
                            ssy: "ssy-Latn-ER",
 +
                            st: "st-Latn-ZA",
 +
                            stk: "stk-Latn-ZZ",
 +
                            stq: "stq-Latn-DE",
 +
                            su: "su-Latn-ID",
 +
                            sua: "sua-Latn-ZZ",
 +
                            sue: "sue-Latn-ZZ",
 +
                            suk: "suk-Latn-TZ",
 +
                            sur: "sur-Latn-ZZ",
 +
                            sus: "sus-Latn-GN",
 +
                            sv: "sv-Latn-SE",
 +
                            sw: "sw-Latn-TZ",
 +
                            swb: "swb-Arab-YT",
 +
                            swc: "swc-Latn-CD",
 +
                            swg: "swg-Latn-DE",
 +
                            swp: "swp-Latn-ZZ",
 +
                            swv: "swv-Deva-IN",
 +
                            sxn: "sxn-Latn-ID",
 +
                            sxw: "sxw-Latn-ZZ",
 +
                            syl: "syl-Beng-BD",
 +
                            syr: "syr-Syrc-IQ",
 +
                            szl: "szl-Latn-PL",
 +
                            ta: "ta-Taml-IN",
 +
                            taj: "taj-Deva-NP",
 +
                            tal: "tal-Latn-ZZ",
 +
                            tan: "tan-Latn-ZZ",
 +
                            taq: "taq-Latn-ZZ",
 +
                            tbc: "tbc-Latn-ZZ",
 +
                            tbd: "tbd-Latn-ZZ",
 +
                            tbf: "tbf-Latn-ZZ",
 +
                            tbg: "tbg-Latn-ZZ",
 +
                            tbo: "tbo-Latn-ZZ",
 +
                            tbw: "tbw-Latn-PH",
 +
                            tbz: "tbz-Latn-ZZ",
 +
                            tci: "tci-Latn-ZZ",
 +
                            tcy: "tcy-Knda-IN",
 +
                            tdd: "tdd-Tale-CN",
 +
                            tdg: "tdg-Deva-NP",
 +
                            tdh: "tdh-Deva-NP",
 +
                            tdu: "tdu-Latn-MY",
 +
                            te: "te-Telu-IN",
 +
                            ted: "ted-Latn-ZZ",
 +
                            tem: "tem-Latn-SL",
 +
                            teo: "teo-Latn-UG",
 +
                            tet: "tet-Latn-TL",
 +
                            tfi: "tfi-Latn-ZZ",
 +
                            tg: "tg-Cyrl-TJ",
 +
                            "tg-Arab": "tg-Arab-PK",
 +
                            "tg-PK": "tg-Arab-PK",
 +
                            tgc: "tgc-Latn-ZZ",
 +
                            tgo: "tgo-Latn-ZZ",
 +
                            tgu: "tgu-Latn-ZZ",
 +
                            th: "th-Thai-TH",
 +
                            thl: "thl-Deva-NP",
 +
                            thq: "thq-Deva-NP",
 +
                            thr: "thr-Deva-NP",
 +
                            ti: "ti-Ethi-ET",
 +
                            tif: "tif-Latn-ZZ",
 +
                            tig: "tig-Ethi-ER",
 +
                            tik: "tik-Latn-ZZ",
 +
                            tim: "tim-Latn-ZZ",
 +
                            tio: "tio-Latn-ZZ",
 +
                            tiv: "tiv-Latn-NG",
 +
                            tk: "tk-Latn-TM",
 +
                            tkl: "tkl-Latn-TK",
 +
                            tkr: "tkr-Latn-AZ",
 +
                            tkt: "tkt-Deva-NP",
 +
                            tl: "tl-Latn-PH",
 +
                            tlf: "tlf-Latn-ZZ",
 +
                            tlx: "tlx-Latn-ZZ",
 +
                            tly: "tly-Latn-AZ",
 +
                            tmh: "tmh-Latn-NE",
 +
                            tmy: "tmy-Latn-ZZ",
 +
                            tn: "tn-Latn-ZA",
 +
                            tnh: "tnh-Latn-ZZ",
 +
                            to: "to-Latn-TO",
 +
                            tof: "tof-Latn-ZZ",
 +
                            tog: "tog-Latn-MW",
 +
                            toq: "toq-Latn-ZZ",
 +
                            tpi: "tpi-Latn-PG",
 +
                            tpm: "tpm-Latn-ZZ",
 +
                            tpz: "tpz-Latn-ZZ",
 +
                            tqo: "tqo-Latn-ZZ",
 +
                            tr: "tr-Latn-TR",
 +
                            tru: "tru-Latn-TR",
 +
                            trv: "trv-Latn-TW",
 +
                            trw: "trw-Arab-PK",
 +
                            ts: "ts-Latn-ZA",
 +
                            tsd: "tsd-Grek-GR",
 +
                            tsf: "tsf-Deva-NP",
 +
                            tsg: "tsg-Latn-PH",
 +
                            tsj: "tsj-Tibt-BT",
 +
                            tsw: "tsw-Latn-ZZ",
 +
                            tt: "tt-Cyrl-RU",
 +
                            ttd: "ttd-Latn-ZZ",
 +
                            tte: "tte-Latn-ZZ",
 +
                            ttj: "ttj-Latn-UG",
 +
                            ttr: "ttr-Latn-ZZ",
 +
                            tts: "tts-Thai-TH",
 +
                            ttt: "ttt-Latn-AZ",
 +
                            tuh: "tuh-Latn-ZZ",
 +
                            tul: "tul-Latn-ZZ",
 +
                            tum: "tum-Latn-MW",
 +
                            tuq: "tuq-Latn-ZZ",
 +
                            tvd: "tvd-Latn-ZZ",
 +
                            tvl: "tvl-Latn-TV",
 +
                            tvu: "tvu-Latn-ZZ",
 +
                            twh: "twh-Latn-ZZ",
 +
                            twq: "twq-Latn-NE",
 +
                            txg: "txg-Tang-CN",
 +
                            ty: "ty-Latn-PF",
 +
                            tya: "tya-Latn-ZZ",
 +
                            tyv: "tyv-Cyrl-RU",
 +
                            tzm: "tzm-Latn-MA",
 +
                            ubu: "ubu-Latn-ZZ",
 +
                            udi: "udi-Aghb-RU",
 +
                            udm: "udm-Cyrl-RU",
 +
                            ug: "ug-Arab-CN",
 +
                            "ug-Cyrl": "ug-Cyrl-KZ",
 +
                            "ug-KZ": "ug-Cyrl-KZ",
 +
                            "ug-MN": "ug-Cyrl-MN",
 +
                            uga: "uga-Ugar-SY",
 +
                            uk: "uk-Cyrl-UA",
 +
                            uli: "uli-Latn-FM",
 +
                            umb: "umb-Latn-AO",
 +
                            und: "en-Latn-US",
 +
                            "und-002": "en-Latn-NG",
 +
                            "und-003": "en-Latn-US",
 +
                            "und-005": "pt-Latn-BR",
 +
                            "und-009": "en-Latn-AU",
 +
                            "und-011": "en-Latn-NG",
 +
                            "und-013": "es-Latn-MX",
 +
                            "und-014": "sw-Latn-TZ",
 +
                            "und-015": "ar-Arab-EG",
 +
                            "und-017": "sw-Latn-CD",
 +
                            "und-018": "en-Latn-ZA",
 +
                            "und-019": "en-Latn-US",
 +
                            "und-021": "en-Latn-US",
 +
                            "und-029": "es-Latn-CU",
 +
                            "und-030": "zh-Hans-CN",
 +
                            "und-034": "hi-Deva-IN",
 +
                            "und-035": "id-Latn-ID",
 +
                            "und-039": "it-Latn-IT",
 +
                            "und-053": "en-Latn-AU",
 +
                            "und-054": "en-Latn-PG",
 +
                            "und-057": "en-Latn-GU",
 +
                            "und-061": "sm-Latn-WS",
 +
                            "und-142": "zh-Hans-CN",
 +
                            "und-143": "uz-Latn-UZ",
 +
                            "und-145": "ar-Arab-SA",
 +
                            "und-150": "ru-Cyrl-RU",
 +
                            "und-151": "ru-Cyrl-RU",
 +
                            "und-154": "en-Latn-GB",
 +
                            "und-155": "de-Latn-DE",
 +
                            "und-202": "en-Latn-NG",
 +
                            "und-419": "es-Latn-419",
 +
                            "und-AD": "ca-Latn-AD",
 +
                            "und-Adlm": "ff-Adlm-GN",
 +
                            "und-AE": "ar-Arab-AE",
 +
                            "und-AF": "fa-Arab-AF",
 +
                            "und-Aghb": "udi-Aghb-RU",
 +
                            "und-Ahom": "aho-Ahom-IN",
 +
                            "und-AL": "sq-Latn-AL",
 +
                            "und-AM": "hy-Armn-AM",
 +
                            "und-AO": "pt-Latn-AO",
 +
                            "und-AQ": "und-Latn-AQ",
 +
                            "und-AR": "es-Latn-AR",
 +
                            "und-Arab": "ar-Arab-EG",
 +
                            "und-Arab-CC": "ms-Arab-CC",
 +
                            "und-Arab-CN": "ug-Arab-CN",
 +
                            "und-Arab-GB": "ks-Arab-GB",
 +
                            "und-Arab-ID": "ms-Arab-ID",
 +
                            "und-Arab-IN": "ur-Arab-IN",
 +
                            "und-Arab-KH": "cja-Arab-KH",
 +
                            "und-Arab-MM": "rhg-Arab-MM",
 +
                            "und-Arab-MN": "kk-Arab-MN",
 +
                            "und-Arab-MU": "ur-Arab-MU",
 +
                            "und-Arab-NG": "ha-Arab-NG",
 +
                            "und-Arab-PK": "ur-Arab-PK",
 +
                            "und-Arab-TG": "apd-Arab-TG",
 +
                            "und-Arab-TH": "mfa-Arab-TH",
 +
                            "und-Arab-TJ": "fa-Arab-TJ",
 +
                            "und-Arab-TR": "az-Arab-TR",
 +
                            "und-Arab-YT": "swb-Arab-YT",
 +
                            "und-Armi": "arc-Armi-IR",
 +
                            "und-Armn": "hy-Armn-AM",
 +
                            "und-AS": "sm-Latn-AS",
 +
                            "und-AT": "de-Latn-AT",
 +
                            "und-Avst": "ae-Avst-IR",
 +
                            "und-AW": "nl-Latn-AW",
 +
                            "und-AX": "sv-Latn-AX",
 +
                            "und-AZ": "az-Latn-AZ",
 +
                            "und-BA": "bs-Latn-BA",
 +
                            "und-Bali": "ban-Bali-ID",
 +
                            "und-Bamu": "bax-Bamu-CM",
 +
                            "und-Bass": "bsq-Bass-LR",
 +
                            "und-Batk": "bbc-Batk-ID",
 +
                            "und-BD": "bn-Beng-BD",
 +
                            "und-BE": "nl-Latn-BE",
 +
                            "und-Beng": "bn-Beng-BD",
 +
                            "und-BF": "fr-Latn-BF",
 +
                            "und-BG": "bg-Cyrl-BG",
 +
                            "und-BH": "ar-Arab-BH",
 +
                            "und-Bhks": "sa-Bhks-IN",
 +
                            "und-BI": "rn-Latn-BI",
 +
                            "und-BJ": "fr-Latn-BJ",
 +
                            "und-BL": "fr-Latn-BL",
 +
                            "und-BN": "ms-Latn-BN",
 +
                            "und-BO": "es-Latn-BO",
 +
                            "und-Bopo": "zh-Bopo-TW",
 +
                            "und-BQ": "pap-Latn-BQ",
 +
                            "und-BR": "pt-Latn-BR",
 +
                            "und-Brah": "pka-Brah-IN",
 +
                            "und-Brai": "fr-Brai-FR",
 +
                            "und-BT": "dz-Tibt-BT",
 +
                            "und-Bugi": "bug-Bugi-ID",
 +
                            "und-Buhd": "bku-Buhd-PH",
 +
                            "und-BV": "und-Latn-BV",
 +
                            "und-BY": "be-Cyrl-BY",
 +
                            "und-Cakm": "ccp-Cakm-BD",
 +
                            "und-Cans": "cr-Cans-CA",
 +
                            "und-Cari": "xcr-Cari-TR",
 +
                            "und-CD": "sw-Latn-CD",
 +
                            "und-CF": "fr-Latn-CF",
 +
                            "und-CG": "fr-Latn-CG",
 +
                            "und-CH": "de-Latn-CH",
 +
                            "und-Cham": "cjm-Cham-VN",
 +
                            "und-Cher": "chr-Cher-US",
 +
                            "und-Chrs": "xco-Chrs-UZ",
 +
                            "und-CI": "fr-Latn-CI",
 +
                            "und-CL": "es-Latn-CL",
 +
                            "und-CM": "fr-Latn-CM",
 +
                            "und-CN": "zh-Hans-CN",
 +
                            "und-CO": "es-Latn-CO",
 +
                            "und-Copt": "cop-Copt-EG",
 +
                            "und-CP": "und-Latn-CP",
 +
                            "und-Cprt": "grc-Cprt-CY",
 +
                            "und-CR": "es-Latn-CR",
 +
                            "und-CU": "es-Latn-CU",
 +
                            "und-CV": "pt-Latn-CV",
 +
                            "und-CW": "pap-Latn-CW",
 +
                            "und-CY": "el-Grek-CY",
 +
                            "und-Cyrl": "ru-Cyrl-RU",
 +
                            "und-Cyrl-AL": "mk-Cyrl-AL",
 +
                            "und-Cyrl-BA": "sr-Cyrl-BA",
 +
                            "und-Cyrl-GE": "os-Cyrl-GE",
 +
                            "und-Cyrl-GR": "mk-Cyrl-GR",
 +
                            "und-Cyrl-MD": "uk-Cyrl-MD",
 +
                            "und-Cyrl-RO": "bg-Cyrl-RO",
 +
                            "und-Cyrl-SK": "uk-Cyrl-SK",
 +
                            "und-Cyrl-TR": "kbd-Cyrl-TR",
 +
                            "und-Cyrl-XK": "sr-Cyrl-XK",
 +
                            "und-CZ": "cs-Latn-CZ",
 +
                            "und-DE": "de-Latn-DE",
 +
                            "und-Deva": "hi-Deva-IN",
 +
                            "und-Deva-BT": "ne-Deva-BT",
 +
                            "und-Deva-FJ": "hif-Deva-FJ",
 +
                            "und-Deva-MU": "bho-Deva-MU",
 +
                            "und-Deva-PK": "btv-Deva-PK",
 +
                            "und-Diak": "dv-Diak-MV",
 +
                            "und-DJ": "aa-Latn-DJ",
 +
                            "und-DK": "da-Latn-DK",
 +
                            "und-DO": "es-Latn-DO",
 +
                            "und-Dogr": "doi-Dogr-IN",
 +
                            "und-Dupl": "fr-Dupl-FR",
 +
                            "und-DZ": "ar-Arab-DZ",
 +
                            "und-EA": "es-Latn-EA",
 +
                            "und-EC": "es-Latn-EC",
 +
                            "und-EE": "et-Latn-EE",
 +
                            "und-EG": "ar-Arab-EG",
 +
                            "und-Egyp": "egy-Egyp-EG",
 +
                            "und-EH": "ar-Arab-EH",
 +
                            "und-Elba": "sq-Elba-AL",
 +
                            "und-Elym": "arc-Elym-IR",
 +
                            "und-ER": "ti-Ethi-ER",
 +
                            "und-ES": "es-Latn-ES",
 +
                            "und-ET": "am-Ethi-ET",
 +
                            "und-Ethi": "am-Ethi-ET",
 +
                            "und-EU": "en-Latn-IE",
 +
                            "und-EZ": "de-Latn-EZ",
 +
                            "und-FI": "fi-Latn-FI",
 +
                            "und-FO": "fo-Latn-FO",
 +
                            "und-FR": "fr-Latn-FR",
 +
                            "und-GA": "fr-Latn-GA",
 +
                            "und-GE": "ka-Geor-GE",
 +
                            "und-Geor": "ka-Geor-GE",
 +
                            "und-GF": "fr-Latn-GF",
 +
                            "und-GH": "ak-Latn-GH",
 +
                            "und-GL": "kl-Latn-GL",
 +
                            "und-Glag": "cu-Glag-BG",
 +
                            "und-GN": "fr-Latn-GN",
 +
                            "und-Gong": "wsg-Gong-IN",
 +
                            "und-Gonm": "esg-Gonm-IN",
 +
                            "und-Goth": "got-Goth-UA",
 +
                            "und-GP": "fr-Latn-GP",
 +
                            "und-GQ": "es-Latn-GQ",
 +
                            "und-GR": "el-Grek-GR",
 +
                            "und-Gran": "sa-Gran-IN",
 +
                            "und-Grek": "el-Grek-GR",
 +
                            "und-Grek-TR": "bgx-Grek-TR",
 +
                            "und-GS": "und-Latn-GS",
 +
                            "und-GT": "es-Latn-GT",
 +
                            "und-Gujr": "gu-Gujr-IN",
 +
                            "und-Guru": "pa-Guru-IN",
 +
                            "und-GW": "pt-Latn-GW",
 +
                            "und-Hanb": "zh-Hanb-TW",
 +
                            "und-Hang": "ko-Hang-KR",
 +
                            "und-Hani": "zh-Hani-CN",
 +
                            "und-Hano": "hnn-Hano-PH",
 +
                            "und-Hans": "zh-Hans-CN",
 +
                            "und-Hant": "zh-Hant-TW",
 +
                            "und-Hebr": "he-Hebr-IL",
 +
                            "und-Hebr-CA": "yi-Hebr-CA",
 +
                            "und-Hebr-GB": "yi-Hebr-GB",
 +
                            "und-Hebr-SE": "yi-Hebr-SE",
 +
                            "und-Hebr-UA": "yi-Hebr-UA",
 +
                            "und-Hebr-US": "yi-Hebr-US",
 +
                            "und-Hira": "ja-Hira-JP",
 +
                            "und-HK": "zh-Hant-HK",
 +
                            "und-Hluw": "hlu-Hluw-TR",
 +
                            "und-HM": "und-Latn-HM",
 +
                            "und-Hmng": "hnj-Hmng-LA",
 +
                            "und-Hmnp": "mww-Hmnp-US",
 +
                            "und-HN": "es-Latn-HN",
 +
                            "und-HR": "hr-Latn-HR",
 +
                            "und-HT": "ht-Latn-HT",
 +
                            "und-HU": "hu-Latn-HU",
 +
                            "und-Hung": "hu-Hung-HU",
 +
                            "und-IC": "es-Latn-IC",
 +
                            "und-ID": "id-Latn-ID",
 +
                            "und-IL": "he-Hebr-IL",
 +
                            "und-IN": "hi-Deva-IN",
 +
                            "und-IQ": "ar-Arab-IQ",
 +
                            "und-IR": "fa-Arab-IR",
 +
                            "und-IS": "is-Latn-IS",
 +
                            "und-IT": "it-Latn-IT",
 +
                            "und-Ital": "ett-Ital-IT",
 +
                            "und-Jamo": "ko-Jamo-KR",
 +
                            "und-Java": "jv-Java-ID",
 +
                            "und-JO": "ar-Arab-JO",
 +
                            "und-JP": "ja-Jpan-JP",
 +
                            "und-Jpan": "ja-Jpan-JP",
 +
                            "und-Kali": "eky-Kali-MM",
 +
                            "und-Kana": "ja-Kana-JP",
 +
                            "und-KE": "sw-Latn-KE",
 +
                            "und-KG": "ky-Cyrl-KG",
 +
                            "und-KH": "km-Khmr-KH",
 +
                            "und-Khar": "pra-Khar-PK",
 +
                            "und-Khmr": "km-Khmr-KH",
 +
                            "und-Khoj": "sd-Khoj-IN",
 +
                            "und-Kits": "zkt-Kits-CN",
 +
                            "und-KM": "ar-Arab-KM",
 +
                            "und-Knda": "kn-Knda-IN",
 +
                            "und-Kore": "ko-Kore-KR",
 +
                            "und-KP": "ko-Kore-KP",
 +
                            "und-KR": "ko-Kore-KR",
 +
                            "und-Kthi": "bho-Kthi-IN",
 +
                            "und-KW": "ar-Arab-KW",
 +
                            "und-KZ": "ru-Cyrl-KZ",
 +
                            "und-LA": "lo-Laoo-LA",
 +
                            "und-Lana": "nod-Lana-TH",
 +
                            "und-Laoo": "lo-Laoo-LA",
 +
                            "und-Latn-AF": "tk-Latn-AF",
 +
                            "und-Latn-AM": "ku-Latn-AM",
 +
                            "und-Latn-CN": "za-Latn-CN",
 +
                            "und-Latn-CY": "tr-Latn-CY",
 +
                            "und-Latn-DZ": "fr-Latn-DZ",
 +
                            "und-Latn-ET": "en-Latn-ET",
 +
                            "und-Latn-GE": "ku-Latn-GE",
 +
                            "und-Latn-IR": "tk-Latn-IR",
 +
                            "und-Latn-KM": "fr-Latn-KM",
 +
                            "und-Latn-MA": "fr-Latn-MA",
 +
                            "und-Latn-MK": "sq-Latn-MK",
 +
                            "und-Latn-MM": "kac-Latn-MM",
 +
                            "und-Latn-MO": "pt-Latn-MO",
 +
                            "und-Latn-MR": "fr-Latn-MR",
 +
                            "und-Latn-RU": "krl-Latn-RU",
 +
                            "und-Latn-SY": "fr-Latn-SY",
 +
                            "und-Latn-TN": "fr-Latn-TN",
 +
                            "und-Latn-TW": "trv-Latn-TW",
 +
                            "und-Latn-UA": "pl-Latn-UA",
 +
                            "und-LB": "ar-Arab-LB",
 +
                            "und-Lepc": "lep-Lepc-IN",
 +
                            "und-LI": "de-Latn-LI",
 +
                            "und-Limb": "lif-Limb-IN",
 +
                            "und-Lina": "lab-Lina-GR",
 +
                            "und-Linb": "grc-Linb-GR",
 +
                            "und-Lisu": "lis-Lisu-CN",
 +
                            "und-LK": "si-Sinh-LK",
 +
                            "und-LS": "st-Latn-LS",
 +
                            "und-LT": "lt-Latn-LT",
 +
                            "und-LU": "fr-Latn-LU",
 +
                            "und-LV": "lv-Latn-LV",
 +
                            "und-LY": "ar-Arab-LY",
 +
                            "und-Lyci": "xlc-Lyci-TR",
 +
                            "und-Lydi": "xld-Lydi-TR",
 +
                            "und-MA": "ar-Arab-MA",
 +
                            "und-Mahj": "hi-Mahj-IN",
 +
                            "und-Maka": "mak-Maka-ID",
 +
                            "und-Mand": "myz-Mand-IR",
 +
                            "und-Mani": "xmn-Mani-CN",
 +
                            "und-Marc": "bo-Marc-CN",
 +
                            "und-MC": "fr-Latn-MC",
 +
                            "und-MD": "ro-Latn-MD",
 +
                            "und-ME": "sr-Latn-ME",
 +
                            "und-Medf": "dmf-Medf-NG",
 +
                            "und-Mend": "men-Mend-SL",
 +
                            "und-Merc": "xmr-Merc-SD",
 +
                            "und-Mero": "xmr-Mero-SD",
 +
                            "und-MF": "fr-Latn-MF",
 +
                            "und-MG": "mg-Latn-MG",
 +
                            "und-MK": "mk-Cyrl-MK",
 +
                            "und-ML": "bm-Latn-ML",
 +
                            "und-Mlym": "ml-Mlym-IN",
 +
                            "und-MM": "my-Mymr-MM",
 +
                            "und-MN": "mn-Cyrl-MN",
 +
                            "und-MO": "zh-Hant-MO",
 +
                            "und-Modi": "mr-Modi-IN",
 +
                            "und-Mong": "mn-Mong-CN",
 +
                            "und-MQ": "fr-Latn-MQ",
 +
                            "und-MR": "ar-Arab-MR",
 +
                            "und-Mroo": "mro-Mroo-BD",
 +
                            "und-MT": "mt-Latn-MT",
 +
                            "und-Mtei": "mni-Mtei-IN",
 +
                            "und-MU": "mfe-Latn-MU",
 +
                            "und-Mult": "skr-Mult-PK",
 +
                            "und-MV": "dv-Thaa-MV",
 +
                            "und-MX": "es-Latn-MX",
 +
                            "und-MY": "ms-Latn-MY",
 +
                            "und-Mymr": "my-Mymr-MM",
 +
                            "und-Mymr-IN": "kht-Mymr-IN",
 +
                            "und-Mymr-TH": "mnw-Mymr-TH",
 +
                            "und-MZ": "pt-Latn-MZ",
 +
                            "und-NA": "af-Latn-NA",
 +
                            "und-Nand": "sa-Nand-IN",
 +
                            "und-Narb": "xna-Narb-SA",
 +
                            "und-Nbat": "arc-Nbat-JO",
 +
                            "und-NC": "fr-Latn-NC",
 +
                            "und-NE": "ha-Latn-NE",
 +
                            "und-Newa": "new-Newa-NP",
 +
                            "und-NI": "es-Latn-NI",
 +
                            "und-Nkoo": "man-Nkoo-GN",
 +
                            "und-NL": "nl-Latn-NL",
 +
                            "und-NO": "nb-Latn-NO",
 +
                            "und-NP": "ne-Deva-NP",
 +
                            "und-Nshu": "zhx-Nshu-CN",
 +
                            "und-Ogam": "sga-Ogam-IE",
 +
                            "und-Olck": "sat-Olck-IN",
 +
                            "und-OM": "ar-Arab-OM",
 +
                            "und-Orkh": "otk-Orkh-MN",
 +
                            "und-Orya": "or-Orya-IN",
 +
                            "und-Osge": "osa-Osge-US",
 +
                            "und-Osma": "so-Osma-SO",
 +
                            "und-PA": "es-Latn-PA",
 +
                            "und-Palm": "arc-Palm-SY",
 +
                            "und-Pauc": "ctd-Pauc-MM",
 +
                            "und-PE": "es-Latn-PE",
 +
                            "und-Perm": "kv-Perm-RU",
 +
                            "und-PF": "fr-Latn-PF",
 +
                            "und-PG": "tpi-Latn-PG",
 +
                            "und-PH": "fil-Latn-PH",
 +
                            "und-Phag": "lzh-Phag-CN",
 +
                            "und-Phli": "pal-Phli-IR",
 +
                            "und-Phlp": "pal-Phlp-CN",
 +
                            "und-Phnx": "phn-Phnx-LB",
 +
                            "und-PK": "ur-Arab-PK",
 +
                            "und-PL": "pl-Latn-PL",
 +
                            "und-Plrd": "hmd-Plrd-CN",
 +
                            "und-PM": "fr-Latn-PM",
 +
                            "und-PR": "es-Latn-PR",
 +
                            "und-Prti": "xpr-Prti-IR",
 +
                            "und-PS": "ar-Arab-PS",
 +
                            "und-PT": "pt-Latn-PT",
 +
                            "und-PW": "pau-Latn-PW",
 +
                            "und-PY": "gn-Latn-PY",
 +
                            "und-QA": "ar-Arab-QA",
 +
                            "und-QO": "en-Latn-DG",
 +
                            "und-RE": "fr-Latn-RE",
 +
                            "und-Rjng": "rej-Rjng-ID",
 +
                            "und-RO": "ro-Latn-RO",
 +
                            "und-Rohg": "rhg-Rohg-MM",
 +
                            "und-RS": "sr-Cyrl-RS",
 +
                            "und-RU": "ru-Cyrl-RU",
 +
                            "und-Runr": "non-Runr-SE",
 +
                            "und-RW": "rw-Latn-RW",
 +
                            "und-SA": "ar-Arab-SA",
 +
                            "und-Samr": "smp-Samr-IL",
 +
                            "und-Sarb": "xsa-Sarb-YE",
 +
                            "und-Saur": "saz-Saur-IN",
 +
                            "und-SC": "fr-Latn-SC",
 +
                            "und-SD": "ar-Arab-SD",
 +
                            "und-SE": "sv-Latn-SE",
 +
                            "und-Sgnw": "ase-Sgnw-US",
 +
                            "und-Shaw": "en-Shaw-GB",
 +
                            "und-Shrd": "sa-Shrd-IN",
 +
                            "und-SI": "sl-Latn-SI",
 +
                            "und-Sidd": "sa-Sidd-IN",
 +
                            "und-Sind": "sd-Sind-IN",
 +
                            "und-Sinh": "si-Sinh-LK",
 +
                            "und-SJ": "nb-Latn-SJ",
 +
                            "und-SK": "sk-Latn-SK",
 +
                            "und-SM": "it-Latn-SM",
 +
                            "und-SN": "fr-Latn-SN",
 +
                            "und-SO": "so-Latn-SO",
 +
                            "und-Sogd": "sog-Sogd-UZ",
 +
                            "und-Sogo": "sog-Sogo-UZ",
 +
                            "und-Sora": "srb-Sora-IN",
 +
                            "und-Soyo": "cmg-Soyo-MN",
 +
                            "und-SR": "nl-Latn-SR",
 +
                            "und-ST": "pt-Latn-ST",
 +
                            "und-Sund": "su-Sund-ID",
 +
                            "und-SV": "es-Latn-SV",
 +
                            "und-SY": "ar-Arab-SY",
 +
                            "und-Sylo": "syl-Sylo-BD",
 +
                            "und-Syrc": "syr-Syrc-IQ",
 +
                            "und-Tagb": "tbw-Tagb-PH",
 +
                            "und-Takr": "doi-Takr-IN",
 +
                            "und-Tale": "tdd-Tale-CN",
 +
                            "und-Talu": "khb-Talu-CN",
 +
                            "und-Taml": "ta-Taml-IN",
 +
                            "und-Tang": "txg-Tang-CN",
 +
                            "und-Tavt": "blt-Tavt-VN",
 +
                            "und-TD": "fr-Latn-TD",
 +
                            "und-Telu": "te-Telu-IN",
 +
                            "und-TF": "fr-Latn-TF",
 +
                            "und-Tfng": "zgh-Tfng-MA",
 +
                            "und-TG": "fr-Latn-TG",
 +
                            "und-Tglg": "fil-Tglg-PH",
 +
                            "und-TH": "th-Thai-TH",
 +
                            "und-Thaa": "dv-Thaa-MV",
 +
                            "und-Thai": "th-Thai-TH",
 +
                            "und-Thai-CN": "lcp-Thai-CN",
 +
                            "und-Thai-KH": "kdt-Thai-KH",
 +
                            "und-Thai-LA": "kdt-Thai-LA",
 +
                            "und-Tibt": "bo-Tibt-CN",
 +
                            "und-Tirh": "mai-Tirh-IN",
 +
                            "und-TJ": "tg-Cyrl-TJ",
 +
                            "und-TK": "tkl-Latn-TK",
 +
                            "und-TL": "pt-Latn-TL",
 +
                            "und-TM": "tk-Latn-TM",
 +
                            "und-TN": "ar-Arab-TN",
 +
                            "und-TO": "to-Latn-TO",
 +
                            "und-TR": "tr-Latn-TR",
 +
                            "und-TV": "tvl-Latn-TV",
 +
                            "und-TW": "zh-Hant-TW",
 +
                            "und-TZ": "sw-Latn-TZ",
 +
                            "und-UA": "uk-Cyrl-UA",
 +
                            "und-UG": "sw-Latn-UG",
 +
                            "und-Ugar": "uga-Ugar-SY",
 +
                            "und-UY": "es-Latn-UY",
 +
                            "und-UZ": "uz-Latn-UZ",
 +
                            "und-VA": "it-Latn-VA",
 +
                            "und-Vaii": "vai-Vaii-LR",
 +
                            "und-VE": "es-Latn-VE",
 +
                            "und-VN": "vi-Latn-VN",
 +
                            "und-VU": "bi-Latn-VU",
 +
                            "und-Wara": "hoc-Wara-IN",
 +
                            "und-Wcho": "nnp-Wcho-IN",
 +
                            "und-WF": "fr-Latn-WF",
 +
                            "und-WS": "sm-Latn-WS",
 +
                            "und-XK": "sq-Latn-XK",
 +
                            "und-Xpeo": "peo-Xpeo-IR",
 +
                            "und-Xsux": "akk-Xsux-IQ",
 +
                            "und-YE": "ar-Arab-YE",
 +
                            "und-Yezi": "ku-Yezi-GE",
 +
                            "und-Yiii": "ii-Yiii-CN",
 +
                            "und-YT": "fr-Latn-YT",
 +
                            "und-Zanb": "cmg-Zanb-MN",
 +
                            "und-ZW": "sn-Latn-ZW",
 +
                            unr: "unr-Beng-IN",
 +
                            "unr-Deva": "unr-Deva-NP",
 +
                            "unr-NP": "unr-Deva-NP",
 +
                            unx: "unx-Beng-IN",
 +
                            uok: "uok-Latn-ZZ",
 +
                            ur: "ur-Arab-PK",
 +
                            uri: "uri-Latn-ZZ",
 +
                            urt: "urt-Latn-ZZ",
 +
                            urw: "urw-Latn-ZZ",
 +
                            usa: "usa-Latn-ZZ",
 +
                            uth: "uth-Latn-ZZ",
 +
                            utr: "utr-Latn-ZZ",
 +
                            uvh: "uvh-Latn-ZZ",
 +
                            uvl: "uvl-Latn-ZZ",
 +
                            uz: "uz-Latn-UZ",
 +
                            "uz-AF": "uz-Arab-AF",
 +
                            "uz-Arab": "uz-Arab-AF",
 +
                            "uz-CN": "uz-Cyrl-CN",
 +
                            vag: "vag-Latn-ZZ",
 +
                            vai: "vai-Vaii-LR",
 +
                            van: "van-Latn-ZZ",
 +
                            ve: "ve-Latn-ZA",
 +
                            vec: "vec-Latn-IT",
 +
                            vep: "vep-Latn-RU",
 +
                            vi: "vi-Latn-VN",
 +
                            vic: "vic-Latn-SX",
 +
                            viv: "viv-Latn-ZZ",
 +
                            vls: "vls-Latn-BE",
 +
                            vmf: "vmf-Latn-DE",
 +
                            vmw: "vmw-Latn-MZ",
 +
                            vo: "vo-Latn-001",
 +
                            vot: "vot-Latn-RU",
 +
                            vro: "vro-Latn-EE",
 +
                            vun: "vun-Latn-TZ",
 +
                            vut: "vut-Latn-ZZ",
 +
                            wa: "wa-Latn-BE",
 +
                            wae: "wae-Latn-CH",
 +
                            waj: "waj-Latn-ZZ",
 +
                            wal: "wal-Ethi-ET",
 +
                            wan: "wan-Latn-ZZ",
 +
                            war: "war-Latn-PH",
 +
                            wbp: "wbp-Latn-AU",
 +
                            wbq: "wbq-Telu-IN",
 +
                            wbr: "wbr-Deva-IN",
 +
                            wci: "wci-Latn-ZZ",
 +
                            wer: "wer-Latn-ZZ",
 +
                            wgi: "wgi-Latn-ZZ",
 +
                            whg: "whg-Latn-ZZ",
 +
                            wib: "wib-Latn-ZZ",
 +
                            wiu: "wiu-Latn-ZZ",
 +
                            wiv: "wiv-Latn-ZZ",
 +
                            wja: "wja-Latn-ZZ",
 +
                            wji: "wji-Latn-ZZ",
 +
                            wls: "wls-Latn-WF",
 +
                            wmo: "wmo-Latn-ZZ",
 +
                            wnc: "wnc-Latn-ZZ",
 +
                            wni: "wni-Arab-KM",
 +
                            wnu: "wnu-Latn-ZZ",
 +
                            wo: "wo-Latn-SN",
 +
                            wob: "wob-Latn-ZZ",
 +
                            wos: "wos-Latn-ZZ",
 +
                            wrs: "wrs-Latn-ZZ",
 +
                            wsg: "wsg-Gong-IN",
 +
                            wsk: "wsk-Latn-ZZ",
 +
                            wtm: "wtm-Deva-IN",
 +
                            wuu: "wuu-Hans-CN",
 +
                            wuv: "wuv-Latn-ZZ",
 +
                            wwa: "wwa-Latn-ZZ",
 +
                            xav: "xav-Latn-BR",
 +
                            xbi: "xbi-Latn-ZZ",
 +
                            xco: "xco-Chrs-UZ",
 +
                            xcr: "xcr-Cari-TR",
 +
                            xes: "xes-Latn-ZZ",
 +
                            xh: "xh-Latn-ZA",
 +
                            xla: "xla-Latn-ZZ",
 +
                            xlc: "xlc-Lyci-TR",
 +
                            xld: "xld-Lydi-TR",
 +
                            xmf: "xmf-Geor-GE",
 +
                            xmn: "xmn-Mani-CN",
 +
                            xmr: "xmr-Merc-SD",
 +
                            xna: "xna-Narb-SA",
 +
                            xnr: "xnr-Deva-IN",
 +
                            xog: "xog-Latn-UG",
 +
                            xon: "xon-Latn-ZZ",
 +
                            xpr: "xpr-Prti-IR",
 +
                            xrb: "xrb-Latn-ZZ",
 +
                            xsa: "xsa-Sarb-YE",
 +
                            xsi: "xsi-Latn-ZZ",
 +
                            xsm: "xsm-Latn-ZZ",
 +
                            xsr: "xsr-Deva-NP",
 +
                            xwe: "xwe-Latn-ZZ",
 +
                            yam: "yam-Latn-ZZ",
 +
                            yao: "yao-Latn-MZ",
 +
                            yap: "yap-Latn-FM",
 +
                            yas: "yas-Latn-ZZ",
 +
                            yat: "yat-Latn-ZZ",
 +
                            yav: "yav-Latn-CM",
 +
                            yay: "yay-Latn-ZZ",
 +
                            yaz: "yaz-Latn-ZZ",
 +
                            yba: "yba-Latn-ZZ",
 +
                            ybb: "ybb-Latn-CM",
 +
                            yby: "yby-Latn-ZZ",
 +
                            yer: "yer-Latn-ZZ",
 +
                            ygr: "ygr-Latn-ZZ",
 +
                            ygw: "ygw-Latn-ZZ",
 +
                            yi: "yi-Hebr-001",
 +
                            yko: "yko-Latn-ZZ",
 +
                            yle: "yle-Latn-ZZ",
 +
                            ylg: "ylg-Latn-ZZ",
 +
                            yll: "yll-Latn-ZZ",
 +
                            yml: "yml-Latn-ZZ",
 +
                            yo: "yo-Latn-NG",
 +
                            yon: "yon-Latn-ZZ",
 +
                            yrb: "yrb-Latn-ZZ",
 +
                            yre: "yre-Latn-ZZ",
 +
                            yrl: "yrl-Latn-BR",
 +
                            yss: "yss-Latn-ZZ",
 +
                            yua: "yua-Latn-MX",
 +
                            yue: "yue-Hant-HK",
 +
                            "yue-CN": "yue-Hans-CN",
 +
                            "yue-Hans": "yue-Hans-CN",
 +
                            yuj: "yuj-Latn-ZZ",
 +
                            yut: "yut-Latn-ZZ",
 +
                            yuw: "yuw-Latn-ZZ",
 +
                            za: "za-Latn-CN",
 +
                            zag: "zag-Latn-SD",
 +
                            zdj: "zdj-Arab-KM",
 +
                            zea: "zea-Latn-NL",
 +
                            zgh: "zgh-Tfng-MA",
 +
                            zh: "zh-Hans-CN",
 +
                            "zh-AU": "zh-Hant-AU",
 +
                            "zh-BN": "zh-Hant-BN",
 +
                            "zh-Bopo": "zh-Bopo-TW",
 +
                            "zh-GB": "zh-Hant-GB",
 +
                            "zh-GF": "zh-Hant-GF",
 +
                            "zh-Hanb": "zh-Hanb-TW",
 +
                            "zh-Hant": "zh-Hant-TW",
 +
                            "zh-HK": "zh-Hant-HK",
 +
                            "zh-ID": "zh-Hant-ID",
 +
                            "zh-MO": "zh-Hant-MO",
 +
                            "zh-PA": "zh-Hant-PA",
 +
                            "zh-PF": "zh-Hant-PF",
 +
                            "zh-PH": "zh-Hant-PH",
 +
                            "zh-SR": "zh-Hant-SR",
 +
                            "zh-TH": "zh-Hant-TH",
 +
                            "zh-TW": "zh-Hant-TW",
 +
                            "zh-US": "zh-Hant-US",
 +
                            "zh-VN": "zh-Hant-VN",
 +
                            zhx: "zhx-Nshu-CN",
 +
                            zia: "zia-Latn-ZZ",
 +
                            zkt: "zkt-Kits-CN",
 +
                            zlm: "zlm-Latn-TG",
 +
                            zmi: "zmi-Latn-MY",
 +
                            zne: "zne-Latn-ZZ",
 +
                            zu: "zu-Latn-ZA",
 +
                            zza: "zza-Latn-TR"
 +
                        }
 +
                    }
 +
                };
 +
            }
 +
        });
 +
        var require_canonicalizer = __commonJS({
 +
            "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/canonicalizer.js": function (exports) {
 +
                "use strict";
 +
                Object.defineProperty(exports, "__esModule", { value: true });
 +
                exports.canonicalizeUnicodeLocaleId = exports.canonicalizeUnicodeLanguageId = void 0;
 +
                var tslib_1 = require_tslib();
 +
                var aliases_1 = require_aliases();
 +
                var parser_1 = require_parser();
 +
                var likelySubtags2 = tslib_1.__importStar(require_likelySubtags());
 +
                var emitter_1 = require_emitter();
 +
                function canonicalizeAttrs(strs) {
 +
                    return Object.keys(strs.reduce(function (all, str) {
 +
                        all[str.toLowerCase()] = 1;
 +
                        return all;
 +
                    }, {})).sort();
 +
                }
 +
                function canonicalizeKVs(arr) {
 +
                    var all = {};
 +
                    var result = [];
 +
                    for (var _i = 0, arr_1 = arr; _i < arr_1.length; _i++) {
 +
                        var kv = arr_1[_i];
 +
                        if (kv[0] in all) {
 +
                            continue;
 +
                        }
 +
                        all[kv[0]] = 1;
 +
                        if (!kv[1] || kv[1] === "true") {
 +
                            result.push([kv[0].toLowerCase()]);
 +
                        }
 +
                        else {
 +
                            result.push([kv[0].toLowerCase(), kv[1].toLowerCase()]);
 +
                        }
 +
                    }
 +
                    return result.sort(compareKV);
 +
                }
 +
                function compareKV(t1, t2) {
 +
                    return t1[0] < t2[0] ? -1 : t1[0] > t2[0] ? 1 : 0;
 +
                }
 +
                function compareExtension(e1, e2) {
 +
                    return e1.type < e2.type ? -1 : e1.type > e2.type ? 1 : 0;
 +
                }
 +
                function mergeVariants(v1, v2) {
 +
                    var result = tslib_1.__spreadArray([], v1);
 +
                    for (var _i = 0, v2_1 = v2; _i < v2_1.length; _i++) {
 +
                        var v = v2_1[_i];
 +
                        if (v1.indexOf(v) < 0) {
 +
                            result.push(v);
 +
                        }
 +
                    }
 +
                    return result;
 +
                }
 +
                function canonicalizeUnicodeLanguageId(unicodeLanguageId) {
 +
                    var finalLangAst = unicodeLanguageId;
 +
                    if (unicodeLanguageId.variants.length) {
 +
                        var replacedLang_1 = "";
 +
                        for (var _i = 0, _a = unicodeLanguageId.variants; _i < _a.length; _i++) {
 +
                            var variant = _a[_i];
 +
                            if (replacedLang_1 = aliases_1.languageAlias[emitter_1.emitUnicodeLanguageId({
 +
                                lang: unicodeLanguageId.lang,
 +
                                variants: [variant]
 +
                            })]) {
 +
                                var replacedLangAst = parser_1.parseUnicodeLanguageId(replacedLang_1.split(parser_1.SEPARATOR));
 +
                                finalLangAst = {
 +
                                    lang: replacedLangAst.lang,
 +
                                    script: finalLangAst.script || replacedLangAst.script,
 +
                                    region: finalLangAst.region || replacedLangAst.region,
 +
                                    variants: mergeVariants(finalLangAst.variants, replacedLangAst.variants)
 +
                                };
 +
                                break;
 +
                            }
 +
                        }
 +
                    }
 +
                    if (finalLangAst.script && finalLangAst.region) {
 +
                        var replacedLang_2 = aliases_1.languageAlias[emitter_1.emitUnicodeLanguageId({
 +
                            lang: finalLangAst.lang,
 +
                            script: finalLangAst.script,
 +
                            region: finalLangAst.region,
 +
                            variants: []
 +
                        })];
 +
                        if (replacedLang_2) {
 +
                            var replacedLangAst = parser_1.parseUnicodeLanguageId(replacedLang_2.split(parser_1.SEPARATOR));
 +
                            finalLangAst = {
 +
                                lang: replacedLangAst.lang,
 +
                                script: replacedLangAst.script,
 +
                                region: replacedLangAst.region,
 +
                                variants: finalLangAst.variants
 +
                            };
 +
                        }
 +
                    }
 +
                    if (finalLangAst.region) {
 +
                        var replacedLang_3 = aliases_1.languageAlias[emitter_1.emitUnicodeLanguageId({
 +
                            lang: finalLangAst.lang,
 +
                            region: finalLangAst.region,
 +
                            variants: []
 +
                        })];
 +
                        if (replacedLang_3) {
 +
                            var replacedLangAst = parser_1.parseUnicodeLanguageId(replacedLang_3.split(parser_1.SEPARATOR));
 +
                            finalLangAst = {
 +
                                lang: replacedLangAst.lang,
 +
                                script: finalLangAst.script || replacedLangAst.script,
 +
                                region: replacedLangAst.region,
 +
                                variants: finalLangAst.variants
 +
                            };
 +
                        }
 +
                    }
 +
                    var replacedLang = aliases_1.languageAlias[emitter_1.emitUnicodeLanguageId({
 +
                        lang: finalLangAst.lang,
 +
                        variants: []
 +
                    })];
 +
                    if (replacedLang) {
 +
                        var replacedLangAst = parser_1.parseUnicodeLanguageId(replacedLang.split(parser_1.SEPARATOR));
 +
                        finalLangAst = {
 +
                            lang: replacedLangAst.lang,
 +
                            script: finalLangAst.script || replacedLangAst.script,
 +
                            region: finalLangAst.region || replacedLangAst.region,
 +
                            variants: finalLangAst.variants
 +
                        };
 +
                    }
 +
                    if (finalLangAst.region) {
 +
                        var region = finalLangAst.region.toUpperCase();
 +
                        var regionAlias = aliases_1.territoryAlias[region];
 +
                        var replacedRegion = void 0;
 +
                        if (regionAlias) {
 +
                            var regions = regionAlias.split(" ");
 +
                            replacedRegion = regions[0];
 +
                            var likelySubtag = likelySubtags2.supplemental.likelySubtags[emitter_1.emitUnicodeLanguageId({
 +
                                lang: finalLangAst.lang,
 +
                                script: finalLangAst.script,
 +
                                variants: []
 +
                            })];
 +
                            if (likelySubtag) {
 +
                                var likelyRegion = parser_1.parseUnicodeLanguageId(likelySubtag.split(parser_1.SEPARATOR)).region;
 +
                                if (likelyRegion && regions.indexOf(likelyRegion) > -1) {
 +
                                    replacedRegion = likelyRegion;
 +
                                }
 +
                            }
 +
                        }
 +
                        if (replacedRegion) {
 +
                            finalLangAst.region = replacedRegion;
 +
                        }
 +
                        finalLangAst.region = finalLangAst.region.toUpperCase();
 +
                    }
 +
                    if (finalLangAst.script) {
 +
                        finalLangAst.script = finalLangAst.script[0].toUpperCase() + finalLangAst.script.slice(1).toLowerCase();
 +
                        if (aliases_1.scriptAlias[finalLangAst.script]) {
 +
                            finalLangAst.script = aliases_1.scriptAlias[finalLangAst.script];
 +
                        }
 +
                    }
 +
                    if (finalLangAst.variants.length) {
 +
                        for (var i = 0; i < finalLangAst.variants.length; i++) {
 +
                            var variant = finalLangAst.variants[i].toLowerCase();
 +
                            if (aliases_1.variantAlias[variant]) {
 +
                                var alias = aliases_1.variantAlias[variant];
 +
                                if (parser_1.isUnicodeVariantSubtag(alias)) {
 +
                                    finalLangAst.variants[i] = alias;
 +
                                }
 +
                                else if (parser_1.isUnicodeLanguageSubtag(alias)) {
 +
                                    finalLangAst.lang = alias;
 +
                                }
 +
                            }
 +
                        }
 +
                        finalLangAst.variants.sort();
 +
                    }
 +
                    return finalLangAst;
 +
                }
 +
                exports.canonicalizeUnicodeLanguageId = canonicalizeUnicodeLanguageId;
 +
                function canonicalizeUnicodeLocaleId(locale) {
 +
                    locale.lang = canonicalizeUnicodeLanguageId(locale.lang);
 +
                    if (locale.extensions) {
 +
                        for (var _i = 0, _a = locale.extensions; _i < _a.length; _i++) {
 +
                            var extension = _a[_i];
 +
                            switch (extension.type) {
 +
                                case "u":
 +
                                    extension.keywords = canonicalizeKVs(extension.keywords);
 +
                                    if (extension.attributes) {
 +
                                        extension.attributes = canonicalizeAttrs(extension.attributes);
 +
                                    }
 +
                                    break;
 +
                                case "t":
 +
                                    if (extension.lang) {
 +
                                        extension.lang = canonicalizeUnicodeLanguageId(extension.lang);
 +
                                    }
 +
                                    extension.fields = canonicalizeKVs(extension.fields);
 +
                                    break;
 +
                                default:
 +
                                    extension.value = extension.value.toLowerCase();
 +
                                    break;
 +
                            }
 +
                        }
 +
                        locale.extensions.sort(compareExtension);
 +
                    }
 +
                    return locale;
 +
                }
 +
                exports.canonicalizeUnicodeLocaleId = canonicalizeUnicodeLocaleId;
 +
            }
 +
        });
 +
        var require_types = __commonJS({
 +
            "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/types.js": function (exports) {
 +
                "use strict";
 +
                Object.defineProperty(exports, "__esModule", { value: true });
 +
            }
 +
        });
 +
        var require_intl_getcanonicallocales = __commonJS({
 +
            "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/index.js": function (exports) {
 +
                "use strict";
 +
                Object.defineProperty(exports, "__esModule", { value: true });
 +
                exports.isUnicodeLanguageSubtag = exports.isUnicodeScriptSubtag = exports.isUnicodeRegionSubtag = exports.isStructurallyValidLanguageTag = exports.parseUnicodeLanguageId = exports.parseUnicodeLocaleId = exports.getCanonicalLocales = void 0;
 +
                var tslib_1 = require_tslib();
 +
                var parser_1 = require_parser();
 +
                var emitter_1 = require_emitter();
 +
                var canonicalizer_1 = require_canonicalizer();
 +
                function CanonicalizeLocaleList2(locales) {
 +
                    if (locales === void 0) {
 +
                        return [];
 +
                    }
 +
                    var seen = [];
 +
                    if (typeof locales === "string") {
 +
                        locales = [locales];
 +
                    }
 +
                    for (var _i = 0, locales_1 = locales; _i < locales_1.length; _i++) {
 +
                        var locale = locales_1[_i];
 +
                        var canonicalizedTag = emitter_1.emitUnicodeLocaleId(canonicalizer_1.canonicalizeUnicodeLocaleId(parser_1.parseUnicodeLocaleId(locale)));
 +
                        if (seen.indexOf(canonicalizedTag) < 0) {
 +
                            seen.push(canonicalizedTag);
 +
                        }
 +
                    }
 +
                    return seen;
 +
                }
 +
                function getCanonicalLocales(locales) {
 +
                    return CanonicalizeLocaleList2(locales);
 +
                }
 +
                exports.getCanonicalLocales = getCanonicalLocales;
 +
                var parser_2 = require_parser();
 +
                Object.defineProperty(exports, "parseUnicodeLocaleId", { enumerable: true, get: function () {
 +
                        return parser_2.parseUnicodeLocaleId;
 +
                    } });
 +
                Object.defineProperty(exports, "parseUnicodeLanguageId", { enumerable: true, get: function () {
 +
                        return parser_2.parseUnicodeLanguageId;
 +
                    } });
 +
                Object.defineProperty(exports, "isStructurallyValidLanguageTag", { enumerable: true, get: function () {
 +
                        return parser_2.isStructurallyValidLanguageTag;
 +
                    } });
 +
                Object.defineProperty(exports, "isUnicodeRegionSubtag", { enumerable: true, get: function () {
 +
                        return parser_2.isUnicodeRegionSubtag;
 +
                    } });
 +
                Object.defineProperty(exports, "isUnicodeScriptSubtag", { enumerable: true, get: function () {
 +
                        return parser_2.isUnicodeScriptSubtag;
 +
                    } });
 +
                Object.defineProperty(exports, "isUnicodeLanguageSubtag", { enumerable: true, get: function () {
 +
                        return parser_2.isUnicodeLanguageSubtag;
 +
                    } });
 +
                tslib_1.__exportStar(require_types(), exports);
 +
                tslib_1.__exportStar(require_emitter(), exports);
 +
            }
 +
        });
 +
        var import_tslib5 = __toModule(require_tslib());
 +
        var import_tslib2 = __toModule(require_tslib());
 +
        function invariant(condition, message, Err) {
 +
            if (Err === void 0) {
 +
                Err = Error;
 +
            }
 +
            if (!condition) {
 +
                throw new Err(message);
 +
            }
 +
        }
 +
        var import_tslib = __toModule(require_tslib());
 +
        var RangePatternType;
 +
        (function (RangePatternType2) {
 +
            RangePatternType2["startRange"] = "startRange";
 +
            RangePatternType2["shared"] = "shared";
 +
            RangePatternType2["endRange"] = "endRange";
 +
        })(RangePatternType || (RangePatternType = {}));
 +
        function ToString(o) {
 +
            if (typeof o === "symbol") {
 +
                throw TypeError("Cannot convert a Symbol value to a string");
 +
            }
 +
            return String(o);
 +
        }
 +
        function ToObject(arg) {
 +
            if (arg == null) {
 +
                throw new TypeError("undefined/null cannot be converted to object");
 +
            }
 +
            return Object(arg);
 +
        }
 +
        function SameValue(x, y) {
 +
            if (Object.is) {
 +
                return Object.is(x, y);
 +
            }
 +
            if (x === y) {
 +
                return x !== 0 || 1 / x === 1 / y;
 +
            }
 +
            return x !== x && y !== y;
 +
        }
 +
        var MINUTES_PER_HOUR = 60;
 +
        var SECONDS_PER_MINUTE = 60;
 +
        var MS_PER_SECOND = 1e3;
 +
        var MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;
 +
        var MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;
 +
        function CoerceOptionsToObject(options) {
 +
            if (typeof options === "undefined") {
 +
                return Object.create(null);
 +
            }
 +
            return ToObject(options);
 +
        }
 +
        var import_tslib3 = __toModule(require_tslib());
 +
        function GetOption(opts, prop, type, values, fallback) {
 +
            if (typeof opts !== "object") {
 +
                throw new TypeError("Options must be an object");
 +
            }
 +
            var value = opts[prop];
 +
            if (value !== void 0) {
 +
                if (type !== "boolean" && type !== "string") {
 +
                    throw new TypeError("invalid type");
 +
                }
 +
                if (type === "boolean") {
 +
                    value = Boolean(value);
 +
                }
 +
                if (type === "string") {
 +
                    value = ToString(value);
 +
                }
 +
                if (values !== void 0 && !values.filter(function (val) {
 +
                    return val == value;
 +
                }).length) {
 +
                    throw new RangeError(value + " is not within " + values.join(", "));
 +
                }
 +
                return value;
 +
            }
 +
            return fallback;
 +
        }
 +
        var SANCTIONED_UNITS = [
 +
            "angle-degree",
 +
            "area-acre",
 +
            "area-hectare",
 +
            "concentr-percent",
 +
            "digital-bit",
 +
            "digital-byte",
 +
            "digital-gigabit",
 +
            "digital-gigabyte",
 +
            "digital-kilobit",
 +
            "digital-kilobyte",
 +
            "digital-megabit",
 +
            "digital-megabyte",
 +
            "digital-petabyte",
 +
            "digital-terabit",
 +
            "digital-terabyte",
 +
            "duration-day",
 +
            "duration-hour",
 +
            "duration-millisecond",
 +
            "duration-minute",
 +
            "duration-month",
 +
            "duration-second",
 +
            "duration-week",
 +
            "duration-year",
 +
            "length-centimeter",
 +
            "length-foot",
 +
            "length-inch",
 +
            "length-kilometer",
 +
            "length-meter",
 +
            "length-mile-scandinavian",
 +
            "length-mile",
 +
            "length-millimeter",
 +
            "length-yard",
 +
            "mass-gram",
 +
            "mass-kilogram",
 +
            "mass-ounce",
 +
            "mass-pound",
 +
            "mass-stone",
 +
            "temperature-celsius",
 +
            "temperature-fahrenheit",
 +
            "volume-fluid-ounce",
 +
            "volume-gallon",
 +
            "volume-liter",
 +
            "volume-milliliter"
 +
        ];
 +
        function removeUnitNamespace(unit) {
 +
            return unit.slice(unit.indexOf("-") + 1);
 +
        }
 +
        var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace);
 +
        var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/;
 +
        var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source);
 +
        var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$");
 +
        var import_tslib4 = __toModule(require_tslib());
 +
        var MissingLocaleDataError = function (_super) {
 +
            (0, import_tslib4.__extends)(MissingLocaleDataError2, _super);
 +
            function MissingLocaleDataError2() {
 +
                var _this = _super !== null && _super.apply(this, arguments) || this;
 +
                _this.type = "MISSING_LOCALE_DATA";
 +
                return _this;
 +
            }
 +
            return MissingLocaleDataError2;
 +
        }(Error);
 +
        var import_intl_getcanonicallocales = __toModule(require_intl_getcanonicallocales());
 +
        var likelySubtagsData = __toModule(require_likelySubtags());
 +
        var internalSlotMap = new WeakMap();
 +
        function getInternalSlots(x) {
 +
            var internalSlots = internalSlotMap.get(x);
 +
            if (!internalSlots) {
 +
                internalSlots = Object.create(null);
 +
                internalSlotMap.set(x, internalSlots);
 +
            }
 +
            return internalSlots;
 +
        }
 +
        var likelySubtags = likelySubtagsData.supplemental.likelySubtags;
 +
        var RELEVANT_EXTENSION_KEYS = ["ca", "co", "hc", "kf", "kn", "nu"];
 +
        var UNICODE_TYPE_REGEX = /^[a-z0-9]{3,8}(-[a-z0-9]{3,8})*$/i;
 +
        function applyOptionsToTag(tag, options) {
 +
            invariant(typeof tag === "string", "language tag must be a string");
 +
            invariant((0, import_intl_getcanonicallocales.isStructurallyValidLanguageTag)(tag), "malformed language tag", RangeError);
 +
            var language = GetOption(options, "language", "string", void 0, void 0);
 +
            if (language !== void 0) {
 +
                invariant((0, import_intl_getcanonicallocales.isUnicodeLanguageSubtag)(language), "Malformed unicode_language_subtag", RangeError);
 +
            }
 +
            var script = GetOption(options, "script", "string", void 0, void 0);
 +
            if (script !== void 0) {
 +
                invariant((0, import_intl_getcanonicallocales.isUnicodeScriptSubtag)(script), "Malformed unicode_script_subtag", RangeError);
 +
            }
 +
            var region = GetOption(options, "region", "string", void 0, void 0);
 +
            if (region !== void 0) {
 +
                invariant((0, import_intl_getcanonicallocales.isUnicodeRegionSubtag)(region), "Malformed unicode_region_subtag", RangeError);
 +
            }
 +
            var languageId = (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(tag);
 +
            if (language !== void 0) {
 +
                languageId.lang = language;
 +
            }
 +
            if (script !== void 0) {
 +
                languageId.script = script;
 +
            }
 +
            if (region !== void 0) {
 +
                languageId.region = region;
 +
            }
 +
            return Intl.getCanonicalLocales((0, import_intl_getcanonicallocales.emitUnicodeLocaleId)((0, import_tslib5.__assign)((0, import_tslib5.__assign)({}, (0, import_intl_getcanonicallocales.parseUnicodeLocaleId)(tag)), { lang: languageId })))[0];
 +
        }
 +
        function applyUnicodeExtensionToTag(tag, options, relevantExtensionKeys) {
 +
            var unicodeExtension;
 +
            var keywords = [];
 +
            var ast = (0, import_intl_getcanonicallocales.parseUnicodeLocaleId)(tag);
 +
            for (var _i = 0, _a = ast.extensions; _i < _a.length; _i++) {
 +
                var ext = _a[_i];
 +
                if (ext.type === "u") {
 +
                    unicodeExtension = ext;
 +
                    if (Array.isArray(ext.keywords))
 +
                        keywords = ext.keywords;
 +
                }
 +
            }
 +
            var result = Object.create(null);
 +
            for (var _b = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _b < relevantExtensionKeys_1.length; _b++) {
 +
                var key = relevantExtensionKeys_1[_b];
 +
                var value = void 0, entry = void 0;
 +
                for (var _c = 0, keywords_1 = keywords; _c < keywords_1.length; _c++) {
 +
                    var keyword = keywords_1[_c];
 +
                    if (keyword[0] === key) {
 +
                        entry = keyword;
 +
                        value = entry[1];
 +
                    }
 +
                }
 +
                invariant(key in options, key + " must be in options");
 +
                var optionsValue = options[key];
 +
                if (optionsValue !== void 0) {
 +
                    invariant(typeof optionsValue === "string", "Value for " + key + " must be a string");
 +
                    value = optionsValue;
 +
                    if (entry) {
 +
                        entry[1] = value;
 +
                    }
 +
                    else {
 +
                        keywords.push([key, value]);
 +
                    }
 +
                }
 +
                result[key] = value;
 +
            }
 +
            if (!unicodeExtension) {
 +
                if (keywords.length) {
 +
                    ast.extensions.push({
 +
                        type: "u",
 +
                        keywords: keywords,
 +
                        attributes: []
 +
                    });
 +
                }
 +
            }
 +
            else {
 +
                unicodeExtension.keywords = keywords;
 +
            }
 +
            result.locale = Intl.getCanonicalLocales((0, import_intl_getcanonicallocales.emitUnicodeLocaleId)(ast))[0];
 +
            return result;
 +
        }
 +
        function mergeUnicodeLanguageId(lang, script, region, variants, replacement) {
 +
            if (variants === void 0) {
 +
                variants = [];
 +
            }
 +
            if (!replacement) {
 +
                return {
 +
                    lang: lang || "und",
 +
                    script: script,
 +
                    region: region,
 +
                    variants: variants
 +
                };
 +
            }
 +
            return {
 +
                lang: !lang || lang === "und" ? replacement.lang : lang,
 +
                script: script || replacement.script,
 +
                region: region || replacement.region,
 +
                variants: (0, import_tslib5.__spreadArray)((0, import_tslib5.__spreadArray)([], variants), replacement.variants)
 +
            };
 +
        }
 +
        function addLikelySubtags(tag) {
 +
            var ast = (0, import_intl_getcanonicallocales.parseUnicodeLocaleId)(tag);
 +
            var unicodeLangId = ast.lang;
 +
            var lang = unicodeLangId.lang, script = unicodeLangId.script, region = unicodeLangId.region, variants = unicodeLangId.variants;
 +
            if (script && region) {
 +
                var match_1 = likelySubtags[(0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({ lang: lang, script: script, region: region, variants: [] })];
 +
                if (match_1) {
 +
                    var parts_1 = (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(match_1);
 +
                    ast.lang = mergeUnicodeLanguageId(void 0, void 0, void 0, variants, parts_1);
 +
                    return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)(ast);
 +
                }
 +
            }
 +
            if (script) {
 +
                var match_2 = likelySubtags[(0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({ lang: lang, script: script, variants: [] })];
 +
                if (match_2) {
 +
                    var parts_2 = (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(match_2);
 +
                    ast.lang = mergeUnicodeLanguageId(void 0, void 0, region, variants, parts_2);
 +
                    return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)(ast);
 +
                }
 +
            }
 +
            if (region) {
 +
                var match_3 = likelySubtags[(0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({ lang: lang, region: region, variants: [] })];
 +
                if (match_3) {
 +
                    var parts_3 = (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(match_3);
 +
                    ast.lang = mergeUnicodeLanguageId(void 0, script, void 0, variants, parts_3);
 +
                    return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)(ast);
 +
                }
 +
            }
 +
            var match = likelySubtags[lang] || likelySubtags[(0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({ lang: "und", script: script, variants: [] })];
 +
            if (!match) {
 +
                throw new Error("No match for addLikelySubtags");
 +
            }
 +
            var parts = (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(match);
 +
            ast.lang = mergeUnicodeLanguageId(void 0, script, region, variants, parts);
 +
            return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)(ast);
 +
        }
 +
        function removeLikelySubtags(tag) {
 +
            var maxLocale = addLikelySubtags(tag);
 +
            if (!maxLocale) {
 +
                return tag;
 +
            }
 +
            maxLocale = (0, import_intl_getcanonicallocales.emitUnicodeLanguageId)((0, import_tslib5.__assign)((0, import_tslib5.__assign)({}, (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(maxLocale)), { variants: [] }));
 +
            var ast = (0, import_intl_getcanonicallocales.parseUnicodeLocaleId)(tag);
 +
            var _a = ast.lang, lang = _a.lang, script = _a.script, region = _a.region, variants = _a.variants;
 +
            var trial = addLikelySubtags((0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({ lang: lang, variants: [] }));
 +
            if (trial === maxLocale) {
 +
                return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)((0, import_tslib5.__assign)((0, import_tslib5.__assign)({}, ast), { lang: mergeUnicodeLanguageId(lang, void 0, void 0, variants) }));
 +
            }
 +
            if (region) {
 +
                var trial_1 = addLikelySubtags((0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({ lang: lang, region: region, variants: [] }));
 +
                if (trial_1 === maxLocale) {
 +
                    return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)((0, import_tslib5.__assign)((0, import_tslib5.__assign)({}, ast), { lang: mergeUnicodeLanguageId(lang, void 0, region, variants) }));
 +
                }
 +
            }
 +
            if (script) {
 +
                var trial_2 = addLikelySubtags((0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({ lang: lang, script: script, variants: [] }));
 +
                if (trial_2 === maxLocale) {
 +
                    return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)((0, import_tslib5.__assign)((0, import_tslib5.__assign)({}, ast), { lang: mergeUnicodeLanguageId(lang, script, void 0, variants) }));
 +
                }
 +
            }
 +
            return tag;
 
         }
 
         }
         // 2. Assert: iterable is present, and is neither undefined nor null.
+
         var Locale = function () {
        // 3. Let iteratorRecord be ? GetIterator(iterable).
+
            function Locale2(tag, opts) {
        var iteratorRecord = GetIterator(iterable);
+
                var newTarget = this && this instanceof Locale2 ? this.constructor : void 0;
        // 4. Repeat,
+
                if (!newTarget) {
        // eslint-disable-next-line no-constant-condition
+
                    throw new TypeError("Intl.Locale must be called with 'new'");
        while (true) {
+
                }
            // a. Let next be ? IteratorStep(iteratorRecord).
+
                var relevantExtensionKeys = Locale2.relevantExtensionKeys;
            var next = IteratorStep(iteratorRecord);
+
                var internalSlotsList = [
            // b. If next is false, return target.
+
                    "initializedLocale",
            if (next === false) {
+
                    "locale",
                 return target;
+
                    "calendar",
 +
                    "collation",
 +
                    "hourCycle",
 +
                    "numberingSystem"
 +
                ];
 +
                if (relevantExtensionKeys.indexOf("kf") > -1) {
 +
                    internalSlotsList.push("caseFirst");
 +
                }
 +
                if (relevantExtensionKeys.indexOf("kn") > -1) {
 +
                    internalSlotsList.push("numeric");
 +
                }
 +
                if (tag === void 0) {
 +
                    throw new TypeError("First argument to Intl.Locale constructor can't be empty or missing");
 +
                }
 +
                if (typeof tag !== "string" && typeof tag !== "object") {
 +
                    throw new TypeError("tag must be a string or object");
 +
                }
 +
                var internalSlots;
 +
                if (typeof tag === "object" && (internalSlots = getInternalSlots(tag)) && internalSlots.initializedLocale) {
 +
                    tag = internalSlots.locale;
 +
                }
 +
                else {
 +
                    tag = tag.toString();
 +
                }
 +
                internalSlots = getInternalSlots(this);
 +
                var options = CoerceOptionsToObject(opts);
 +
                tag = applyOptionsToTag(tag, options);
 +
                var opt = Object.create(null);
 +
                var calendar = GetOption(options, "calendar", "string", void 0, void 0);
 +
                if (calendar !== void 0) {
 +
                    if (!UNICODE_TYPE_REGEX.test(calendar)) {
 +
                        throw new RangeError("invalid calendar");
 +
                    }
 +
                }
 +
                opt.ca = calendar;
 +
                var collation = GetOption(options, "collation", "string", void 0, void 0);
 +
                if (collation !== void 0) {
 +
                    if (!UNICODE_TYPE_REGEX.test(collation)) {
 +
                        throw new RangeError("invalid collation");
 +
                    }
 +
                }
 +
                opt.co = collation;
 +
                var hc = GetOption(options, "hourCycle", "string", ["h11", "h12", "h23", "h24"], void 0);
 +
                opt.hc = hc;
 +
                var kf = GetOption(options, "caseFirst", "string", ["upper", "lower", "false"], void 0);
 +
                opt.kf = kf;
 +
                var _kn = GetOption(options, "numeric", "boolean", void 0, void 0);
 +
                var kn;
 +
                if (_kn !== void 0) {
 +
                    kn = String(_kn);
 +
                }
 +
                opt.kn = kn;
 +
                var numberingSystem = GetOption(options, "numberingSystem", "string", void 0, void 0);
 +
                if (numberingSystem !== void 0) {
 +
                    if (!UNICODE_TYPE_REGEX.test(numberingSystem)) {
 +
                        throw new RangeError("Invalid numberingSystem");
 +
                    }
 +
                }
 +
                opt.nu = numberingSystem;
 +
                var r = applyUnicodeExtensionToTag(tag, opt, relevantExtensionKeys);
 +
                internalSlots.locale = r.locale;
 +
                internalSlots.calendar = r.ca;
 +
                internalSlots.collation = r.co;
 +
                internalSlots.hourCycle = r.hc;
 +
                if (relevantExtensionKeys.indexOf("kf") > -1) {
 +
                    internalSlots.caseFirst = r.kf;
 +
                }
 +
                if (relevantExtensionKeys.indexOf("kn") > -1) {
 +
                    internalSlots.numeric = SameValue(r.kn, "true");
 +
                }
 +
                 internalSlots.numberingSystem = r.nu;
 
             }
 
             }
             // c. Let nextItem be ? IteratorValue(next).
+
             Locale2.prototype.maximize = function () {
             var nextItem = IteratorValue(next);
+
                var locale = getInternalSlots(this).locale;
             // d. If Type(nextItem) is not Object, then
+
                try {
             if (Type(nextItem) !== "object") {
+
                    var maximizedLocale = addLikelySubtags(locale);
                 // i. Let error be ThrowCompletion(a newly created TypeError object).
+
                    return new Locale2(maximizedLocale);
                 var error = new TypeError("nextItem is not an object");
+
                }
                 // ii. Return ? IteratorClose(iteratorRecord, error).
+
                catch (e) {
                 IteratorClose(iteratorRecord, error);
+
                    return new Locale2(locale);
                 throw error;
+
                }
 +
             };
 +
            Locale2.prototype.minimize = function () {
 +
                var locale = getInternalSlots(this).locale;
 +
                try {
 +
                    var minimizedLocale = removeLikelySubtags(locale);
 +
                    return new Locale2(minimizedLocale);
 +
                }
 +
                catch (e) {
 +
                    return new Locale2(locale);
 +
                }
 +
            };
 +
             Locale2.prototype.toString = function () {
 +
                return getInternalSlots(this).locale;
 +
            };
 +
            Object.defineProperty(Locale2.prototype, "baseName", {
 +
                get: function () {
 +
                    var locale = getInternalSlots(this).locale;
 +
                    return (0, import_intl_getcanonicallocales.emitUnicodeLanguageId)((0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(locale));
 +
                },
 +
                enumerable: false,
 +
                configurable: true
 +
             });
 +
            Object.defineProperty(Locale2.prototype, "calendar", {
 +
                get: function () {
 +
                    return getInternalSlots(this).calendar;
 +
                },
 +
                enumerable: false,
 +
                configurable: true
 +
            });
 +
            Object.defineProperty(Locale2.prototype, "collation", {
 +
                get: function () {
 +
                    return getInternalSlots(this).collation;
 +
                },
 +
                enumerable: false,
 +
                configurable: true
 +
            });
 +
            Object.defineProperty(Locale2.prototype, "hourCycle", {
 +
                get: function () {
 +
                    return getInternalSlots(this).hourCycle;
 +
                },
 +
                enumerable: false,
 +
                configurable: true
 +
            });
 +
            Object.defineProperty(Locale2.prototype, "caseFirst", {
 +
                get: function () {
 +
                    return getInternalSlots(this).caseFirst;
 +
                },
 +
                enumerable: false,
 +
                configurable: true
 +
            });
 +
            Object.defineProperty(Locale2.prototype, "numeric", {
 +
                get: function () {
 +
                    return getInternalSlots(this).numeric;
 +
                },
 +
                enumerable: false,
 +
                 configurable: true
 +
            });
 +
            Object.defineProperty(Locale2.prototype, "numberingSystem", {
 +
                get: function () {
 +
                    return getInternalSlots(this).numberingSystem;
 +
                },
 +
                 enumerable: false,
 +
                configurable: true
 +
            });
 +
            Object.defineProperty(Locale2.prototype, "language", {
 +
                get: function () {
 +
                    var locale = getInternalSlots(this).locale;
 +
                    return (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(locale).lang;
 +
                },
 +
                enumerable: false,
 +
                configurable: true
 +
            });
 +
            Object.defineProperty(Locale2.prototype, "script", {
 +
                get: function () {
 +
                    var locale = getInternalSlots(this).locale;
 +
                    return (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(locale).script;
 +
                 },
 +
                enumerable: false,
 +
                configurable: true
 +
            });
 +
            Object.defineProperty(Locale2.prototype, "region", {
 +
                get: function () {
 +
                    var locale = getInternalSlots(this).locale;
 +
                    return (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(locale).region;
 +
                 },
 +
                enumerable: false,
 +
                configurable: true
 +
            });
 +
            Locale2.relevantExtensionKeys = RELEVANT_EXTENSION_KEYS;
 +
            return Locale2;
 +
        }();
 +
        try {
 +
            if (typeof Symbol !== "undefined") {
 +
                Object.defineProperty(Locale.prototype, Symbol.toStringTag, {
 +
                    value: "Intl.Locale",
 +
                    writable: false,
 +
                    enumerable: false,
 +
                    configurable: true
 +
                 });
 
             }
 
             }
             // Polyfill.io fallback for non-array-like strings which exist in some ES3 user-agents (IE 8)
+
             Object.defineProperty(Locale.prototype.constructor, "length", {
            nextItem =
+
                value: 1,
                 (Type(nextItem) === "string" || nextItem instanceof String) &&
+
                writable: false,
                 toString.call(nextItem) == "[object String]"
+
                 enumerable: false,
                    ? split.call(nextItem, "")
+
                 configurable: true
                    : nextItem;
+
            });
            var k;
+
        }
 +
        catch (e) {
 +
        }
 +
        function hasIntlGetCanonicalLocalesBug() {
 
             try {
 
             try {
                 // e. Let k be Get(nextItem, "0").
+
                 return new Intl.Locale("und-x-private").toString() === "x-private";
                 k = Get(nextItem, "0");
+
            }
                 // eslint-disable-next-line no-catch-shadow
+
            catch (e) {
             } catch (k) {
+
                return true;
                 // f. If k is an abrupt completion, return ? IteratorClose(iteratorRecord, k).
+
            }
                 return IteratorClose(iteratorRecord, k);
+
        }
 +
        function shouldPolyfill() {
 +
            return typeof Intl === "undefined" || !("Locale" in Intl) || hasIntlGetCanonicalLocalesBug();
 +
        }
 +
        if (shouldPolyfill()) {
 +
            Object.defineProperty(Intl, "Locale", {
 +
                value: Locale,
 +
                writable: true,
 +
                enumerable: false,
 +
                configurable: true
 +
            });
 +
        }
 +
    })();
 +
    (function () {
 +
        var extendStatics = function (d, b) {
 +
            extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d2, b2) {
 +
                d2.__proto__ = b2;
 +
            } || function (d2, b2) {
 +
                for (var p in b2)
 +
                    if (Object.prototype.hasOwnProperty.call(b2, p))
 +
                        d2[p] = b2[p];
 +
            };
 +
            return extendStatics(d, b);
 +
        };
 +
        function __extends(d, b) {
 +
            if (typeof b !== "function" && b !== null)
 +
                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
 +
            extendStatics(d, b);
 +
            function __() {
 +
                this.constructor = d;
 +
            }
 +
            d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
 +
        }
 +
        var __assign = function () {
 +
            __assign = Object.assign || function __assign2(t) {
 +
                for (var s, i = 1, n = arguments.length; i < n; i++) {
 +
                    s = arguments[i];
 +
                    for (var p in s)
 +
                        if (Object.prototype.hasOwnProperty.call(s, p))
 +
                            t[p] = s[p];
 +
                }
 +
                return t;
 +
            };
 +
            return __assign.apply(this, arguments);
 +
        };
 +
        function setInternalSlot(map, pl, field, value) {
 +
            if (!map.get(pl)) {
 +
                map.set(pl, Object.create(null));
 +
            }
 +
            var slots = map.get(pl);
 +
            slots[field] = value;
 +
        }
 +
        function getInternalSlot(map, pl, field) {
 +
            return getMultiInternalSlots(map, pl, field)[field];
 +
        }
 +
        function getMultiInternalSlots(map, pl) {
 +
            var fields = [];
 +
            for (var _i = 2; _i < arguments.length; _i++) {
 +
                fields[_i - 2] = arguments[_i];
 +
            }
 +
            var slots = map.get(pl);
 +
            if (!slots) {
 +
                throw new TypeError(pl + " InternalSlot has not been initialized");
 +
            }
 +
            return fields.reduce(function (all, f) {
 +
                all[f] = slots[f];
 +
                return all;
 +
            }, Object.create(null));
 +
        }
 +
        function isLiteralPart(patternPart) {
 +
            return patternPart.type === "literal";
 +
        }
 +
        var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;
 +
        function invariant(condition, message, Err) {
 +
            if (Err === void 0) {
 +
                Err = Error;
 +
            }
 +
            if (!condition) {
 +
                throw new Err(message);
 +
            }
 +
        }
 +
        var RangePatternType;
 +
        (function (RangePatternType2) {
 +
            RangePatternType2["startRange"] = "startRange";
 +
            RangePatternType2["shared"] = "shared";
 +
            RangePatternType2["endRange"] = "endRange";
 +
        })(RangePatternType || (RangePatternType = {}));
 +
        function CanonicalizeLocaleList(locales) {
 +
            return Intl.getCanonicalLocales(locales);
 +
        }
 +
        function ToString(o) {
 +
            if (typeof o === "symbol") {
 +
                throw TypeError("Cannot convert a Symbol value to a string");
 +
            }
 +
            return String(o);
 +
        }
 +
        function ToObject(arg) {
 +
            if (arg == null) {
 +
                throw new TypeError("undefined/null cannot be converted to object");
 +
            }
 +
            return Object(arg);
 +
        }
 +
        var MINUTES_PER_HOUR = 60;
 +
        var SECONDS_PER_MINUTE = 60;
 +
        var MS_PER_SECOND = 1e3;
 +
        var MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;
 +
        var MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;
 +
        function PartitionPattern(pattern) {
 +
            var result = [];
 +
            var beginIndex = pattern.indexOf("{");
 +
            var endIndex = 0;
 +
            var nextIndex = 0;
 +
            var length = pattern.length;
 +
            while (beginIndex < pattern.length && beginIndex > -1) {
 +
                endIndex = pattern.indexOf("}", beginIndex);
 +
                invariant(endIndex > beginIndex, "Invalid pattern " + pattern);
 +
                if (beginIndex > nextIndex) {
 +
                    result.push({
 +
                        type: "literal",
 +
                        value: pattern.substring(nextIndex, beginIndex)
 +
                    });
 +
                }
 +
                result.push({
 +
                    type: pattern.substring(beginIndex + 1, endIndex),
 +
                    value: void 0
 +
                });
 +
                nextIndex = endIndex + 1;
 +
                beginIndex = pattern.indexOf("{", nextIndex);
 +
            }
 +
            if (nextIndex < length) {
 +
                result.push({
 +
                    type: "literal",
 +
                    value: pattern.substring(nextIndex, length)
 +
                });
 +
            }
 +
            return result;
 +
        }
 +
        function GetOption(opts, prop, type, values, fallback) {
 +
            if (typeof opts !== "object") {
 +
                throw new TypeError("Options must be an object");
 +
            }
 +
            var value = opts[prop];
 +
            if (value !== void 0) {
 +
                if (type !== "boolean" && type !== "string") {
 +
                    throw new TypeError("invalid type");
 +
                }
 +
                if (type === "boolean") {
 +
                    value = Boolean(value);
 +
                }
 +
                if (type === "string") {
 +
                    value = ToString(value);
 +
                }
 +
                if (values !== void 0 && !values.filter(function (val) {
 +
                    return val == value;
 +
                }).length) {
 +
                    throw new RangeError(value + " is not within " + values.join(", "));
 +
                }
 +
                return value;
 +
            }
 +
            return fallback;
 +
        }
 +
        function BestAvailableLocale(availableLocales, locale) {
 +
            var candidate = locale;
 +
            while (true) {
 +
                if (availableLocales.has(candidate)) {
 +
                    return candidate;
 +
                }
 +
                var pos = candidate.lastIndexOf("-");
 +
                if (!~pos) {
 +
                    return void 0;
 +
                }
 +
                if (pos >= 2 && candidate[pos - 2] === "-") {
 +
                    pos -= 2;
 +
                }
 +
                candidate = candidate.slice(0, pos);
 +
            }
 +
        }
 +
        function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {
 +
            var result = { locale: "" };
 +
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
 +
                var locale = requestedLocales_1[_i];
 +
                var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
 +
                var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
 +
                if (availableLocale) {
 +
                    result.locale = availableLocale;
 +
                    if (locale !== noExtensionLocale) {
 +
                        result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);
 +
                    }
 +
                    return result;
 +
                }
 +
            }
 +
            result.locale = getDefaultLocale();
 +
            return result;
 +
        }
 +
        function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {
 +
            var minimizedAvailableLocaleMap = {};
 +
            var minimizedAvailableLocales = new Set();
 +
            availableLocales.forEach(function (locale2) {
 +
                var minimizedLocale = new Intl.Locale(locale2).minimize().toString();
 +
                minimizedAvailableLocaleMap[minimizedLocale] = locale2;
 +
                minimizedAvailableLocales.add(minimizedLocale);
 +
            });
 +
            var foundLocale;
 +
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
 +
                var l = requestedLocales_1[_i];
 +
                if (foundLocale) {
 +
                    break;
 +
                }
 +
                var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
 +
                if (availableLocales.has(noExtensionLocale)) {
 +
                    foundLocale = noExtensionLocale;
 +
                    break;
 +
                }
 +
                if (minimizedAvailableLocales.has(noExtensionLocale)) {
 +
                    foundLocale = minimizedAvailableLocaleMap[noExtensionLocale];
 +
                    break;
 +
                }
 +
                var locale = new Intl.Locale(noExtensionLocale);
 +
                var maximizedRequestedLocale = locale.maximize().toString();
 +
                var minimizedRequestedLocale = locale.minimize().toString();
 +
                if (minimizedAvailableLocales.has(minimizedRequestedLocale)) {
 +
                    foundLocale = minimizedAvailableLocaleMap[minimizedRequestedLocale];
 +
                    break;
 +
                }
 +
                foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale);
 +
            }
 +
            return {
 +
                locale: foundLocale || getDefaultLocale()
 +
            };
 +
        }
 +
        function UnicodeExtensionValue(extension, key) {
 +
            invariant(key.length === 2, "key must have 2 elements");
 +
            var size = extension.length;
 +
            var searchValue = "-" + key + "-";
 +
            var pos = extension.indexOf(searchValue);
 +
            if (pos !== -1) {
 +
                var start = pos + 4;
 +
                var end = start;
 +
                var k = start;
 +
                var done = false;
 +
                while (!done) {
 +
                    var e = extension.indexOf("-", k);
 +
                    var len = void 0;
 +
                    if (e === -1) {
 +
                        len = size - k;
 +
                    }
 +
                    else {
 +
                        len = e - k;
 +
                    }
 +
                    if (len === 2) {
 +
                        done = true;
 +
                    }
 +
                    else if (e === -1) {
 +
                        end = size;
 +
                        done = true;
 +
                    }
 +
                    else {
 +
                        end = e;
 +
                        k = e + 1;
 +
                    }
 +
                }
 +
                return extension.slice(start, end);
 +
            }
 +
            searchValue = "-" + key;
 +
            pos = extension.indexOf(searchValue);
 +
            if (pos !== -1 && pos + 3 === size) {
 +
                return "";
 +
            }
 +
            return void 0;
 +
        }
 +
        function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {
 +
            var matcher = options.localeMatcher;
 +
            var r;
 +
            if (matcher === "lookup") {
 +
                r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale);
 +
            }
 +
            else {
 +
                r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale);
 +
            }
 +
            var foundLocale = r.locale;
 +
            var result = { locale: "", dataLocale: foundLocale };
 +
            var supportedExtension = "-u";
 +
            for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {
 +
                var key = relevantExtensionKeys_1[_i];
 +
                invariant(foundLocale in localeData, "Missing locale data for " + foundLocale);
 +
                var foundLocaleData = localeData[foundLocale];
 +
                invariant(typeof foundLocaleData === "object" && foundLocaleData !== null, "locale data " + key + " must be an object");
 +
                var keyLocaleData = foundLocaleData[key];
 +
                invariant(Array.isArray(keyLocaleData), "keyLocaleData for " + key + " must be an array");
 +
                var value = keyLocaleData[0];
 +
                invariant(typeof value === "string" || value === null, "value must be string or null but got " + typeof value + " in key " + key);
 +
                var supportedExtensionAddition = "";
 +
                if (r.extension) {
 +
                    var requestedValue = UnicodeExtensionValue(r.extension, key);
 +
                    if (requestedValue !== void 0) {
 +
                        if (requestedValue !== "") {
 +
                            if (~keyLocaleData.indexOf(requestedValue)) {
 +
                                value = requestedValue;
 +
                                supportedExtensionAddition = "-" + key + "-" + value;
 +
                            }
 +
                        }
 +
                        else if (~requestedValue.indexOf("true")) {
 +
                            value = "true";
 +
                            supportedExtensionAddition = "-" + key;
 +
                        }
 +
                    }
 +
                 }
 +
                if (key in options) {
 +
                    var optionsValue = options[key];
 +
                    invariant(typeof optionsValue === "string" || typeof optionsValue === "undefined" || optionsValue === null, "optionsValue must be String, Undefined or Null");
 +
                    if (~keyLocaleData.indexOf(optionsValue)) {
 +
                        if (optionsValue !== value) {
 +
                            value = optionsValue;
 +
                            supportedExtensionAddition = "";
 +
                        }
 +
                    }
 +
                }
 +
                result[key] = value;
 +
                supportedExtension += supportedExtensionAddition;
 +
            }
 +
            if (supportedExtension.length > 2) {
 +
                var privateIndex = foundLocale.indexOf("-x-");
 +
                if (privateIndex === -1) {
 +
                    foundLocale = foundLocale + supportedExtension;
 +
                }
 +
                else {
 +
                    var preExtension = foundLocale.slice(0, privateIndex);
 +
                    var postExtension = foundLocale.slice(privateIndex, foundLocale.length);
 +
                    foundLocale = preExtension + supportedExtension + postExtension;
 +
                }
 +
                foundLocale = Intl.getCanonicalLocales(foundLocale)[0];
 +
            }
 +
            result.locale = foundLocale;
 +
            return result;
 +
        }
 +
        function GetOptionsObject(options) {
 +
            if (typeof options === "undefined") {
 +
                return Object.create(null);
 +
            }
 +
            if (typeof options === "object") {
 +
                 return options;
 +
            }
 +
            throw new TypeError("Options must be an object");
 +
        }
 +
        var SANCTIONED_UNITS = [
 +
            "angle-degree",
 +
            "area-acre",
 +
            "area-hectare",
 +
            "concentr-percent",
 +
            "digital-bit",
 +
            "digital-byte",
 +
            "digital-gigabit",
 +
            "digital-gigabyte",
 +
            "digital-kilobit",
 +
            "digital-kilobyte",
 +
            "digital-megabit",
 +
            "digital-megabyte",
 +
            "digital-petabyte",
 +
            "digital-terabit",
 +
            "digital-terabyte",
 +
            "duration-day",
 +
            "duration-hour",
 +
            "duration-millisecond",
 +
            "duration-minute",
 +
            "duration-month",
 +
            "duration-second",
 +
            "duration-week",
 +
            "duration-year",
 +
            "length-centimeter",
 +
            "length-foot",
 +
            "length-inch",
 +
            "length-kilometer",
 +
            "length-meter",
 +
            "length-mile-scandinavian",
 +
            "length-mile",
 +
            "length-millimeter",
 +
            "length-yard",
 +
            "mass-gram",
 +
            "mass-kilogram",
 +
            "mass-ounce",
 +
            "mass-pound",
 +
            "mass-stone",
 +
            "temperature-celsius",
 +
            "temperature-fahrenheit",
 +
            "volume-fluid-ounce",
 +
            "volume-gallon",
 +
            "volume-liter",
 +
            "volume-milliliter"
 +
        ];
 +
        function removeUnitNamespace(unit) {
 +
            return unit.slice(unit.indexOf("-") + 1);
 +
        }
 +
        var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace);
 +
        var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/;
 +
        var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source);
 +
        var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$");
 +
        function LookupSupportedLocales(availableLocales, requestedLocales) {
 +
            var subset = [];
 +
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
 +
                var locale = requestedLocales_1[_i];
 +
                var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
 +
                var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
 +
                if (availableLocale) {
 +
                    subset.push(availableLocale);
 +
                }
 +
            }
 +
            return subset;
 +
        }
 +
        function SupportedLocales(availableLocales, requestedLocales, options) {
 +
            var matcher = "best fit";
 +
            if (options !== void 0) {
 +
                options = ToObject(options);
 +
                matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit");
 +
             }
 +
            if (matcher === "best fit") {
 +
                return LookupSupportedLocales(availableLocales, requestedLocales);
 +
            }
 +
            return LookupSupportedLocales(availableLocales, requestedLocales);
 +
        }
 +
        var MissingLocaleDataError = function (_super) {
 +
            __extends(MissingLocaleDataError2, _super);
 +
            function MissingLocaleDataError2() {
 +
                var _this = _super !== null && _super.apply(this, arguments) || this;
 +
                _this.type = "MISSING_LOCALE_DATA";
 +
                return _this;
 +
            }
 +
            return MissingLocaleDataError2;
 +
        }(Error);
 +
        function validateInstance(instance, method) {
 +
            if (!(instance instanceof ListFormat)) {
 +
                throw new TypeError("Method Intl.ListFormat.prototype." + method + " called on incompatible receiver " + String(instance));
 +
            }
 +
        }
 +
        function stringListFromIterable(list) {
 +
            if (list === void 0) {
 +
                return [];
 +
            }
 +
            var result = [];
 +
            for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
 +
                 var el = list_1[_i];
 +
                if (typeof el !== "string") {
 +
                    throw new TypeError("array list[" + list.indexOf(el) + "] is not type String");
 +
                }
 +
                result.push(el);
 +
            }
 +
            return result;
 +
        }
 +
        function createPartsFromList(internalSlotMap, lf, list) {
 +
            var size = list.length;
 +
            if (size === 0) {
 +
                return [];
 +
            }
 +
            if (size === 2) {
 +
                var pattern = getInternalSlot(internalSlotMap, lf, "templatePair");
 +
                var first = { type: "element", value: list[0] };
 +
                var second = { type: "element", value: list[1] };
 +
                 return deconstructPattern(pattern, { "0": first, "1": second });
 
             }
 
             }
             var v;
+
             var last = {
             try {
+
                type: "element",
                 // g. Let v be Get(nextItem, "1").
+
                value: list[size - 1]
                 v = Get(nextItem, "1");
+
            };
                 // eslint-disable-next-line no-catch-shadow
+
            var parts = last;
            } catch (v) {
+
            var i = size - 2;
                 // h. If v is an abrupt completion, return ? IteratorClose(iteratorRecord, v).
+
             while (i >= 0) {
                 return IteratorClose(iteratorRecord, v);
+
                 var pattern = void 0;
 +
                if (i === 0) {
 +
                    pattern = getInternalSlot(internalSlotMap, lf, "templateStart");
 +
                }
 +
                 else if (i < size - 2) {
 +
                    pattern = getInternalSlot(internalSlotMap, lf, "templateMiddle");
 +
                 }
 +
                else {
 +
                    pattern = getInternalSlot(internalSlotMap, lf, "templateEnd");
 +
                }
 +
                var head = { type: "element", value: list[i] };
 +
                 parts = deconstructPattern(pattern, { "0": head, "1": parts });
 +
                 i--;
 
             }
 
             }
             try {
+
             return parts;
                // i. Let status be Call(adder, target, « k.[[Value]], v.[[Value]] »).
+
        }
                 Call(adder, target, [k, v]);
+
        function deconstructPattern(pattern, placeables) {
                // eslint-disable-next-line no-catch-shadow
+
            var patternParts = PartitionPattern(pattern);
            } catch (status) {
+
            var result = [];
                // j. If status is an abrupt completion, return ? IteratorClose(iteratorRecord, status).
+
            for (var _i = 0, patternParts_1 = patternParts; _i < patternParts_1.length; _i++) {
                return IteratorClose(iteratorRecord, status);
+
                var patternPart = patternParts_1[_i];
 +
                var part = patternPart.type;
 +
                if (isLiteralPart(patternPart)) {
 +
                    result.push({
 +
                        type: "literal",
 +
                        value: patternPart.value
 +
                    });
 +
                }
 +
                 else {
 +
                    invariant(part in placeables, part + " is missing from placables");
 +
                    var subst = placeables[part];
 +
                    if (Array.isArray(subst)) {
 +
                        result.push.apply(result, subst);
 +
                    }
 +
                    else {
 +
                        result.push(subst);
 +
                    }
 +
                }
 
             }
 
             }
 +
            return result;
 
         }
 
         }
    };
+
        var ListFormat = function () {
})();
+
            function ListFormat2(locales, options) {
 
+
                var newTarget = this && this instanceof ListFormat2 ? this.constructor : void 0;
// _ESAbstract.OrdinaryToPrimitive
+
                if (!newTarget) {
/* global Get, IsCallable, Call, Type */
+
                    throw new TypeError("Intl.ListFormat must be called with 'new'");
// 7.1.1.1. OrdinaryToPrimitive ( O, hint )
+
                }
function OrdinaryToPrimitive(O, hint) { // eslint-disable-line no-unused-vars
+
                setInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "initializedListFormat", true);
    // 1. Assert: Type(O) is Object.
+
                var requestedLocales = CanonicalizeLocaleList(locales);
    // 2. Assert: Type(hint) is String and its value is either "string" or "number".
+
                var opt = Object.create(null);
    // 3. If hint is "string", then
+
                var opts = GetOptionsObject(options);
    if (hint === 'string') {
+
                var matcher = GetOption(opts, "localeMatcher", "string", ["best fit", "lookup"], "best fit");
        // a. Let methodNames be « "toString", "valueOf" ».
+
                opt.localeMatcher = matcher;
        var methodNames = ['toString', 'valueOf'];
+
                var localeData = ListFormat2.localeData;
        // 4. Else,
+
                var r = ResolveLocale(ListFormat2.availableLocales, requestedLocales, opt, ListFormat2.relevantExtensionKeys, localeData, ListFormat2.getDefaultLocale);
    } else {
+
                setInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "locale", r.locale);
        // a. Let methodNames be « "valueOf", "toString" ».
+
                var type = GetOption(opts, "type", "string", ["conjunction", "disjunction", "unit"], "conjunction");
        methodNames = ['valueOf', 'toString'];
+
                setInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "type", type);
    }
+
                var style = GetOption(opts, "style", "string", ["long", "short", "narrow"], "long");
    // 5. For each name in methodNames in List order, do
+
                setInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "style", style);
    for (var i = 0; i < methodNames.length; ++i) {
+
                var dataLocale = r.dataLocale;
        var name = methodNames[i];
+
                var dataLocaleData = localeData[dataLocale];
        // a. Let method be ? Get(O, name).
+
                invariant(!!dataLocaleData, "Missing locale data for " + dataLocale);
        var method = Get(O, name);
+
                var dataLocaleTypes = dataLocaleData[type];
        // b. If IsCallable(method) is true, then
+
                var templates = dataLocaleTypes[style];
        if (IsCallable(method)) {
+
                setInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "templatePair", templates.pair);
            // i. Let result be ? Call(method, O).
+
                setInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "templateStart", templates.start);
            var result = Call(method, O);
+
                setInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "templateMiddle", templates.middle);
            // ii. If Type(result) is not Object, return result.
+
                setInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "templateEnd", templates.end);
            if (Type(result) !== 'object') {
+
            }
 +
            ListFormat2.prototype.format = function (elements) {
 +
                validateInstance(this, "format");
 +
                var result = "";
 +
                var parts = createPartsFromList(ListFormat2.__INTERNAL_SLOT_MAP__, this, stringListFromIterable(elements));
 +
                if (!Array.isArray(parts)) {
 +
                    return parts.value;
 +
                }
 +
                for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
 +
                    var p = parts_1[_i];
 +
                    result += p.value;
 +
                }
 +
                return result;
 +
            };
 +
            ListFormat2.prototype.formatToParts = function (elements) {
 +
                validateInstance(this, "format");
 +
                var parts = createPartsFromList(ListFormat2.__INTERNAL_SLOT_MAP__, this, stringListFromIterable(elements));
 +
                if (!Array.isArray(parts)) {
 +
                    return [parts];
 +
                }
 +
                var result = [];
 +
                for (var _i = 0, parts_2 = parts; _i < parts_2.length; _i++) {
 +
                    var part = parts_2[_i];
 +
                    result.push(__assign({}, part));
 +
                }
 
                 return result;
 
                 return result;
 +
            };
 +
            ListFormat2.prototype.resolvedOptions = function () {
 +
                validateInstance(this, "resolvedOptions");
 +
                return {
 +
                    locale: getInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "locale"),
 +
                    type: getInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "type"),
 +
                    style: getInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "style")
 +
                };
 +
            };
 +
            ListFormat2.supportedLocalesOf = function (locales, options) {
 +
                return SupportedLocales(ListFormat2.availableLocales, CanonicalizeLocaleList(locales), options);
 +
            };
 +
            ListFormat2.__addLocaleData = function () {
 +
                var data = [];
 +
                for (var _i = 0; _i < arguments.length; _i++) {
 +
                    data[_i] = arguments[_i];
 +
                }
 +
                for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {
 +
                    var _b = data_1[_a], d = _b.data, locale = _b.locale;
 +
                    var minimizedLocale = new Intl.Locale(locale).minimize().toString();
 +
                    ListFormat2.localeData[locale] = ListFormat2.localeData[minimizedLocale] = d;
 +
                    ListFormat2.availableLocales.add(minimizedLocale);
 +
                    ListFormat2.availableLocales.add(locale);
 +
                    if (!ListFormat2.__defaultLocale) {
 +
                        ListFormat2.__defaultLocale = minimizedLocale;
 +
                    }
 +
                }
 +
            };
 +
            ListFormat2.getDefaultLocale = function () {
 +
                return ListFormat2.__defaultLocale;
 +
            };
 +
            ListFormat2.localeData = {};
 +
            ListFormat2.availableLocales = new Set();
 +
            ListFormat2.__defaultLocale = "";
 +
            ListFormat2.relevantExtensionKeys = [];
 +
            ListFormat2.polyfilled = true;
 +
            ListFormat2.__INTERNAL_SLOT_MAP__ = new WeakMap();
 +
            return ListFormat2;
 +
        }();
 +
        var lib_default = ListFormat;
 +
        try {
 +
            if (typeof Symbol !== "undefined") {
 +
                Object.defineProperty(ListFormat.prototype, Symbol.toStringTag, {
 +
                    value: "Intl.ListFormat",
 +
                    writable: false,
 +
                    enumerable: false,
 +
                    configurable: true
 +
                });
 +
            }
 +
            Object.defineProperty(ListFormat.prototype.constructor, "length", {
 +
                value: 0,
 +
                writable: false,
 +
                enumerable: false,
 +
                configurable: true
 +
            });
 +
            Object.defineProperty(ListFormat.supportedLocalesOf, "length", {
 +
                value: 1,
 +
                writable: false,
 +
                enumerable: false,
 +
                configurable: true
 +
            });
 +
        }
 +
        catch (e) {
 +
        }
 +
        function shouldPolyfill() {
 +
            return typeof Intl === "undefined" || !("ListFormat" in Intl);
 +
        }
 +
        if (shouldPolyfill()) {
 +
            Object.defineProperty(Intl, "ListFormat", {
 +
                value: lib_default,
 +
                writable: true,
 +
                enumerable: false,
 +
                configurable: true
 +
            });
 +
        }
 +
    })();
 +
    (function () {
 +
        var __defProp = Object.defineProperty;
 +
        var __export = function (target, all) {
 +
            for (var name in all)
 +
                __defProp(target, name, { get: all[name], enumerable: true });
 +
        };
 +
        var extendStatics = function (d, b) {
 +
            extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d2, b2) {
 +
                d2.__proto__ = b2;
 +
            } || function (d2, b2) {
 +
                for (var p in b2)
 +
                    if (Object.prototype.hasOwnProperty.call(b2, p))
 +
                        d2[p] = b2[p];
 +
            };
 +
            return extendStatics(d, b);
 +
        };
 +
        function __extends(d, b) {
 +
            if (typeof b !== "function" && b !== null)
 +
                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
 +
            extendStatics(d, b);
 +
            function __() {
 +
                this.constructor = d;
 +
            }
 +
            d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
 +
        }
 +
        function getMagnitude(x) {
 +
            return Math.floor(Math.log(x) * Math.LOG10E);
 +
        }
 +
        function repeat(s, times) {
 +
            if (typeof s.repeat === "function") {
 +
                return s.repeat(times);
 +
            }
 +
            var arr = new Array(times);
 +
            for (var i = 0; i < arr.length; i++) {
 +
                arr[i] = s;
 +
            }
 +
            return arr.join("");
 +
        }
 +
        function defineProperty(target, name, _a) {
 +
            var value = _a.value;
 +
            Object.defineProperty(target, name, {
 +
                configurable: true,
 +
                enumerable: false,
 +
                writable: true,
 +
                value: value
 +
            });
 +
        }
 +
        var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;
 +
        function invariant(condition, message, Err) {
 +
            if (Err === void 0) {
 +
                Err = Error;
 +
            }
 +
            if (!condition) {
 +
                throw new Err(message);
 +
            }
 +
        }
 +
        var RangePatternType;
 +
        (function (RangePatternType2) {
 +
            RangePatternType2["startRange"] = "startRange";
 +
            RangePatternType2["shared"] = "shared";
 +
            RangePatternType2["endRange"] = "endRange";
 +
        })(RangePatternType || (RangePatternType = {}));
 +
        function CanonicalizeLocaleList(locales) {
 +
            return Intl.getCanonicalLocales(locales);
 +
        }
 +
        function ToString(o) {
 +
            if (typeof o === "symbol") {
 +
                throw TypeError("Cannot convert a Symbol value to a string");
 +
            }
 +
            return String(o);
 +
        }
 +
        function ToNumber(val) {
 +
            if (val === void 0) {
 +
                return NaN;
 +
            }
 +
            if (val === null) {
 +
                return 0;
 +
            }
 +
            if (typeof val === "boolean") {
 +
                return val ? 1 : 0;
 +
            }
 +
            if (typeof val === "number") {
 +
                return val;
 +
            }
 +
            if (typeof val === "symbol" || typeof val === "bigint") {
 +
                throw new TypeError("Cannot convert symbol/bigint to number");
 +
            }
 +
            return Number(val);
 +
        }
 +
        function ToObject(arg) {
 +
            if (arg == null) {
 +
                throw new TypeError("undefined/null cannot be converted to object");
 +
            }
 +
            return Object(arg);
 +
        }
 +
        function SameValue(x, y) {
 +
            if (Object.is) {
 +
                return Object.is(x, y);
 +
            }
 +
            if (x === y) {
 +
                return x !== 0 || 1 / x === 1 / y;
 +
            }
 +
            return x !== x && y !== y;
 +
        }
 +
        function ArrayCreate(len) {
 +
            return new Array(len);
 +
        }
 +
        function HasOwnProperty(o, prop) {
 +
            return Object.prototype.hasOwnProperty.call(o, prop);
 +
        }
 +
        var MINUTES_PER_HOUR = 60;
 +
        var SECONDS_PER_MINUTE = 60;
 +
        var MS_PER_SECOND = 1e3;
 +
        var MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;
 +
        var MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;
 +
        function IsCallable(fn) {
 +
            return typeof fn === "function";
 +
        }
 +
        function OrdinaryHasInstance(C, O, internalSlots) {
 +
            if (!IsCallable(C)) {
 +
                return false;
 +
            }
 +
            if (internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction) {
 +
                var BC = internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction;
 +
                return O instanceof BC;
 +
            }
 +
            if (typeof O !== "object") {
 +
                return false;
 +
            }
 +
            var P = C.prototype;
 +
            if (typeof P !== "object") {
 +
                throw new TypeError("OrdinaryHasInstance called on an object with an invalid prototype property.");
 +
            }
 +
            return Object.prototype.isPrototypeOf.call(P, O);
 +
        }
 +
        function CoerceOptionsToObject(options) {
 +
            if (typeof options === "undefined") {
 +
                return Object.create(null);
 +
            }
 +
            return ToObject(options);
 +
        }
 +
        function GetOption(opts, prop, type, values, fallback) {
 +
            if (typeof opts !== "object") {
 +
                throw new TypeError("Options must be an object");
 +
            }
 +
            var value = opts[prop];
 +
            if (value !== void 0) {
 +
                if (type !== "boolean" && type !== "string") {
 +
                    throw new TypeError("invalid type");
 +
                }
 +
                if (type === "boolean") {
 +
                    value = Boolean(value);
 +
                }
 +
                if (type === "string") {
 +
                    value = ToString(value);
 +
                }
 +
                if (values !== void 0 && !values.filter(function (val) {
 +
                    return val == value;
 +
                }).length) {
 +
                    throw new RangeError(value + " is not within " + values.join(", "));
 +
                }
 +
                return value;
 +
            }
 +
            return fallback;
 +
        }
 +
        function BestAvailableLocale(availableLocales, locale) {
 +
            var candidate = locale;
 +
            while (true) {
 +
                if (availableLocales.has(candidate)) {
 +
                    return candidate;
 +
                }
 +
                var pos = candidate.lastIndexOf("-");
 +
                if (!~pos) {
 +
                    return void 0;
 +
                }
 +
                if (pos >= 2 && candidate[pos - 2] === "-") {
 +
                    pos -= 2;
 +
                }
 +
                candidate = candidate.slice(0, pos);
 +
            }
 +
        }
 +
        function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {
 +
            var result = { locale: "" };
 +
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
 +
                var locale = requestedLocales_1[_i];
 +
                var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
 +
                var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
 +
                if (availableLocale) {
 +
                    result.locale = availableLocale;
 +
                    if (locale !== noExtensionLocale) {
 +
                        result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);
 +
                    }
 +
                    return result;
 +
                }
 +
            }
 +
            result.locale = getDefaultLocale();
 +
            return result;
 +
        }
 +
        function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {
 +
            var minimizedAvailableLocaleMap = {};
 +
            var minimizedAvailableLocales = new Set();
 +
            availableLocales.forEach(function (locale2) {
 +
                var minimizedLocale = new Intl.Locale(locale2).minimize().toString();
 +
                minimizedAvailableLocaleMap[minimizedLocale] = locale2;
 +
                minimizedAvailableLocales.add(minimizedLocale);
 +
            });
 +
            var foundLocale;
 +
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
 +
                var l = requestedLocales_1[_i];
 +
                if (foundLocale) {
 +
                    break;
 +
                }
 +
                var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
 +
                if (availableLocales.has(noExtensionLocale)) {
 +
                    foundLocale = noExtensionLocale;
 +
                    break;
 +
                }
 +
                if (minimizedAvailableLocales.has(noExtensionLocale)) {
 +
                    foundLocale = minimizedAvailableLocaleMap[noExtensionLocale];
 +
                    break;
 +
                }
 +
                var locale = new Intl.Locale(noExtensionLocale);
 +
                var maximizedRequestedLocale = locale.maximize().toString();
 +
                var minimizedRequestedLocale = locale.minimize().toString();
 +
                if (minimizedAvailableLocales.has(minimizedRequestedLocale)) {
 +
                    foundLocale = minimizedAvailableLocaleMap[minimizedRequestedLocale];
 +
                    break;
 +
                }
 +
                foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale);
 +
            }
 +
            return {
 +
                locale: foundLocale || getDefaultLocale()
 +
            };
 +
        }
 +
        function UnicodeExtensionValue(extension, key) {
 +
            invariant(key.length === 2, "key must have 2 elements");
 +
            var size = extension.length;
 +
            var searchValue = "-" + key + "-";
 +
            var pos = extension.indexOf(searchValue);
 +
            if (pos !== -1) {
 +
                var start = pos + 4;
 +
                var end = start;
 +
                var k = start;
 +
                var done = false;
 +
                while (!done) {
 +
                    var e = extension.indexOf("-", k);
 +
                    var len = void 0;
 +
                    if (e === -1) {
 +
                        len = size - k;
 +
                    }
 +
                    else {
 +
                        len = e - k;
 +
                    }
 +
                    if (len === 2) {
 +
                        done = true;
 +
                    }
 +
                    else if (e === -1) {
 +
                        end = size;
 +
                        done = true;
 +
                    }
 +
                    else {
 +
                        end = e;
 +
                        k = e + 1;
 +
                    }
 +
                }
 +
                return extension.slice(start, end);
 +
            }
 +
            searchValue = "-" + key;
 +
            pos = extension.indexOf(searchValue);
 +
            if (pos !== -1 && pos + 3 === size) {
 +
                return "";
 +
            }
 +
            return void 0;
 +
        }
 +
        function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {
 +
            var matcher = options.localeMatcher;
 +
            var r;
 +
            if (matcher === "lookup") {
 +
                r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale);
 +
            }
 +
            else {
 +
                r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale);
 +
            }
 +
            var foundLocale = r.locale;
 +
            var result = { locale: "", dataLocale: foundLocale };
 +
            var supportedExtension = "-u";
 +
            for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {
 +
                var key = relevantExtensionKeys_1[_i];
 +
                invariant(foundLocale in localeData, "Missing locale data for " + foundLocale);
 +
                var foundLocaleData = localeData[foundLocale];
 +
                invariant(typeof foundLocaleData === "object" && foundLocaleData !== null, "locale data " + key + " must be an object");
 +
                var keyLocaleData = foundLocaleData[key];
 +
                invariant(Array.isArray(keyLocaleData), "keyLocaleData for " + key + " must be an array");
 +
                var value = keyLocaleData[0];
 +
                invariant(typeof value === "string" || value === null, "value must be string or null but got " + typeof value + " in key " + key);
 +
                var supportedExtensionAddition = "";
 +
                if (r.extension) {
 +
                    var requestedValue = UnicodeExtensionValue(r.extension, key);
 +
                    if (requestedValue !== void 0) {
 +
                        if (requestedValue !== "") {
 +
                            if (~keyLocaleData.indexOf(requestedValue)) {
 +
                                value = requestedValue;
 +
                                supportedExtensionAddition = "-" + key + "-" + value;
 +
                            }
 +
                        }
 +
                        else if (~requestedValue.indexOf("true")) {
 +
                            value = "true";
 +
                            supportedExtensionAddition = "-" + key;
 +
                        }
 +
                    }
 +
                }
 +
                if (key in options) {
 +
                    var optionsValue = options[key];
 +
                    invariant(typeof optionsValue === "string" || typeof optionsValue === "undefined" || optionsValue === null, "optionsValue must be String, Undefined or Null");
 +
                    if (~keyLocaleData.indexOf(optionsValue)) {
 +
                        if (optionsValue !== value) {
 +
                            value = optionsValue;
 +
                            supportedExtensionAddition = "";
 +
                        }
 +
                    }
 +
                }
 +
                result[key] = value;
 +
                supportedExtension += supportedExtensionAddition;
 +
            }
 +
            if (supportedExtension.length > 2) {
 +
                var privateIndex = foundLocale.indexOf("-x-");
 +
                if (privateIndex === -1) {
 +
                    foundLocale = foundLocale + supportedExtension;
 +
                }
 +
                else {
 +
                    var preExtension = foundLocale.slice(0, privateIndex);
 +
                    var postExtension = foundLocale.slice(privateIndex, foundLocale.length);
 +
                    foundLocale = preExtension + supportedExtension + postExtension;
 +
                }
 +
                foundLocale = Intl.getCanonicalLocales(foundLocale)[0];
 +
            }
 +
            result.locale = foundLocale;
 +
            return result;
 +
        }
 +
        function DefaultNumberOption(val, min, max, fallback) {
 +
            if (val !== void 0) {
 +
                val = Number(val);
 +
                if (isNaN(val) || val < min || val > max) {
 +
                    throw new RangeError(val + " is outside of range [" + min + ", " + max + "]");
 +
                }
 +
                return Math.floor(val);
 +
            }
 +
            return fallback;
 +
        }
 +
        function GetNumberOption(options, property, minimum, maximum, fallback) {
 +
            var val = options[property];
 +
            return DefaultNumberOption(val, minimum, maximum, fallback);
 +
        }
 +
        function toUpperCase(str) {
 +
            return str.replace(/([a-z])/g, function (_, c) {
 +
                return c.toUpperCase();
 +
            });
 +
        }
 +
        var NOT_A_Z_REGEX = /[^A-Z]/;
 +
        function IsWellFormedCurrencyCode(currency) {
 +
            currency = toUpperCase(currency);
 +
            if (currency.length !== 3) {
 +
                return false;
 +
            }
 +
            if (NOT_A_Z_REGEX.test(currency)) {
 +
                return false;
 +
            }
 +
            return true;
 +
        }
 +
        var SANCTIONED_UNITS = [
 +
            "angle-degree",
 +
            "area-acre",
 +
            "area-hectare",
 +
            "concentr-percent",
 +
            "digital-bit",
 +
            "digital-byte",
 +
            "digital-gigabit",
 +
            "digital-gigabyte",
 +
            "digital-kilobit",
 +
            "digital-kilobyte",
 +
            "digital-megabit",
 +
            "digital-megabyte",
 +
            "digital-petabyte",
 +
            "digital-terabit",
 +
            "digital-terabyte",
 +
            "duration-day",
 +
            "duration-hour",
 +
            "duration-millisecond",
 +
            "duration-minute",
 +
            "duration-month",
 +
            "duration-second",
 +
            "duration-week",
 +
            "duration-year",
 +
            "length-centimeter",
 +
            "length-foot",
 +
            "length-inch",
 +
            "length-kilometer",
 +
            "length-meter",
 +
            "length-mile-scandinavian",
 +
            "length-mile",
 +
            "length-millimeter",
 +
            "length-yard",
 +
            "mass-gram",
 +
            "mass-kilogram",
 +
            "mass-ounce",
 +
            "mass-pound",
 +
            "mass-stone",
 +
            "temperature-celsius",
 +
            "temperature-fahrenheit",
 +
            "volume-fluid-ounce",
 +
            "volume-gallon",
 +
            "volume-liter",
 +
            "volume-milliliter"
 +
        ];
 +
        function removeUnitNamespace(unit) {
 +
            return unit.slice(unit.indexOf("-") + 1);
 +
        }
 +
        var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace);
 +
        function IsSanctionedSimpleUnitIdentifier(unitIdentifier) {
 +
            return SIMPLE_UNITS.indexOf(unitIdentifier) > -1;
 +
        }
 +
        function toLowerCase(str) {
 +
            return str.replace(/([A-Z])/g, function (_, c) {
 +
                return c.toLowerCase();
 +
            });
 +
        }
 +
        function IsWellFormedUnitIdentifier(unit) {
 +
            unit = toLowerCase(unit);
 +
            if (IsSanctionedSimpleUnitIdentifier(unit)) {
 +
                return true;
 +
            }
 +
            var units = unit.split("-per-");
 +
            if (units.length !== 2) {
 +
                return false;
 +
            }
 +
            var numerator = units[0], denominator = units[1];
 +
            if (!IsSanctionedSimpleUnitIdentifier(numerator) || !IsSanctionedSimpleUnitIdentifier(denominator)) {
 +
                return false;
 +
            }
 +
            return true;
 +
        }
 +
        function ComputeExponentForMagnitude(numberFormat, magnitude, _a) {
 +
            var getInternalSlots2 = _a.getInternalSlots;
 +
            var internalSlots = getInternalSlots2(numberFormat);
 +
            var notation = internalSlots.notation, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem;
 +
            switch (notation) {
 +
                case "standard":
 +
                    return 0;
 +
                case "scientific":
 +
                    return magnitude;
 +
                case "engineering":
 +
                    return Math.floor(magnitude / 3) * 3;
 +
                default: {
 +
                    var compactDisplay = internalSlots.compactDisplay, style = internalSlots.style, currencyDisplay = internalSlots.currencyDisplay;
 +
                    var thresholdMap = void 0;
 +
                    if (style === "currency" && currencyDisplay !== "name") {
 +
                        var currency = dataLocaleData.numbers.currency[numberingSystem] || dataLocaleData.numbers.currency[dataLocaleData.numbers.nu[0]];
 +
                        thresholdMap = currency.short;
 +
                    }
 +
                    else {
 +
                        var decimal = dataLocaleData.numbers.decimal[numberingSystem] || dataLocaleData.numbers.decimal[dataLocaleData.numbers.nu[0]];
 +
                        thresholdMap = compactDisplay === "long" ? decimal.long : decimal.short;
 +
                    }
 +
                    if (!thresholdMap) {
 +
                        return 0;
 +
                    }
 +
                    var num = String(Math.pow(10, magnitude));
 +
                    var thresholds = Object.keys(thresholdMap);
 +
                    if (num < thresholds[0]) {
 +
                        return 0;
 +
                    }
 +
                    if (num > thresholds[thresholds.length - 1]) {
 +
                        return thresholds[thresholds.length - 1].length - 1;
 +
                    }
 +
                    var i = thresholds.indexOf(num);
 +
                    if (i === -1) {
 +
                        return 0;
 +
                    }
 +
                    var magnitudeKey = thresholds[i];
 +
                    var compactPattern = thresholdMap[magnitudeKey].other;
 +
                    if (compactPattern === "0") {
 +
                        return 0;
 +
                    }
 +
                    return magnitudeKey.length - thresholdMap[magnitudeKey].other.match(/0+/)[0].length;
 +
                }
 +
            }
 +
        }
 +
        function ToRawPrecision(x, minPrecision, maxPrecision) {
 +
            var p = maxPrecision;
 +
            var m;
 +
            var e;
 +
            var xFinal;
 +
            if (x === 0) {
 +
                m = repeat("0", p);
 +
                e = 0;
 +
                xFinal = 0;
 +
            }
 +
            else {
 +
                var xToString = x.toString();
 +
                var xToStringExponentIndex = xToString.indexOf("e");
 +
                var _a = xToString.split("e"), xToStringMantissa = _a[0], xToStringExponent = _a[1];
 +
                var xToStringMantissaWithoutDecimalPoint = xToStringMantissa.replace(".", "");
 +
                if (xToStringExponentIndex >= 0 && xToStringMantissaWithoutDecimalPoint.length <= p) {
 +
                    e = +xToStringExponent;
 +
                    m = xToStringMantissaWithoutDecimalPoint + repeat("0", p - xToStringMantissaWithoutDecimalPoint.length);
 +
                    xFinal = x;
 +
                }
 +
                else {
 +
                    e = getMagnitude(x);
 +
                    var decimalPlaceOffset = e - p + 1;
 +
                    var n = Math.round(adjustDecimalPlace(x, decimalPlaceOffset));
 +
                    if (adjustDecimalPlace(n, p - 1) >= 10) {
 +
                        e = e + 1;
 +
                        n = Math.floor(n / 10);
 +
                    }
 +
                    m = n.toString();
 +
                    xFinal = adjustDecimalPlace(n, p - 1 - e);
 +
                }
 +
            }
 +
            var int;
 +
            if (e >= p - 1) {
 +
                m = m + repeat("0", e - p + 1);
 +
                int = e + 1;
 +
            }
 +
            else if (e >= 0) {
 +
                m = m.slice(0, e + 1) + "." + m.slice(e + 1);
 +
                int = e + 1;
 +
            }
 +
            else {
 +
                m = "0." + repeat("0", -e - 1) + m;
 +
                int = 1;
 +
            }
 +
            if (m.indexOf(".") >= 0 && maxPrecision > minPrecision) {
 +
                var cut = maxPrecision - minPrecision;
 +
                while (cut > 0 && m[m.length - 1] === "0") {
 +
                    m = m.slice(0, -1);
 +
                    cut--;
 +
                }
 +
                if (m[m.length - 1] === ".") {
 +
                    m = m.slice(0, -1);
 +
                }
 +
            }
 +
            return { formattedString: m, roundedNumber: xFinal, integerDigitsCount: int };
 +
            function adjustDecimalPlace(x2, magnitude) {
 +
                return magnitude < 0 ? x2 * Math.pow(10, -magnitude) : x2 / Math.pow(10, magnitude);
 +
            }
 +
        }
 +
        function ToRawFixed(x, minFraction, maxFraction) {
 +
            var f = maxFraction;
 +
            var n = Math.round(x * Math.pow(10, f));
 +
            var xFinal = n / Math.pow(10, f);
 +
            var m;
 +
            if (n < 1e21) {
 +
                m = n.toString();
 +
            }
 +
            else {
 +
                m = n.toString();
 +
                var _a = m.split("e"), mantissa = _a[0], exponent = _a[1];
 +
                m = mantissa.replace(".", "");
 +
                m = m + repeat("0", Math.max(+exponent - m.length + 1, 0));
 +
            }
 +
            var int;
 +
            if (f !== 0) {
 +
                var k = m.length;
 +
                if (k <= f) {
 +
                    var z = repeat("0", f + 1 - k);
 +
                    m = z + m;
 +
                    k = f + 1;
 +
                }
 +
                var a = m.slice(0, k - f);
 +
                var b = m.slice(k - f);
 +
                m = a + "." + b;
 +
                int = a.length;
 +
            }
 +
            else {
 +
                int = m.length;
 +
            }
 +
            var cut = maxFraction - minFraction;
 +
            while (cut > 0 && m[m.length - 1] === "0") {
 +
                m = m.slice(0, -1);
 +
                cut--;
 +
            }
 +
            if (m[m.length - 1] === ".") {
 +
                m = m.slice(0, -1);
 +
            }
 +
            return { formattedString: m, roundedNumber: xFinal, integerDigitsCount: int };
 +
        }
 +
        function FormatNumericToString(intlObject, x) {
 +
            var isNegative = x < 0 || SameValue(x, -0);
 +
            if (isNegative) {
 +
                x = -x;
 +
            }
 +
            var result;
 +
            var rourndingType = intlObject.roundingType;
 +
            switch (rourndingType) {
 +
                case "significantDigits":
 +
                    result = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits);
 +
                    break;
 +
                case "fractionDigits":
 +
                    result = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits);
 +
                    break;
 +
                default:
 +
                    result = ToRawPrecision(x, 1, 2);
 +
                    if (result.integerDigitsCount > 1) {
 +
                        result = ToRawFixed(x, 0, 0);
 +
                    }
 +
                    break;
 +
            }
 +
            x = result.roundedNumber;
 +
            var string = result.formattedString;
 +
            var int = result.integerDigitsCount;
 +
            var minInteger = intlObject.minimumIntegerDigits;
 +
            if (int < minInteger) {
 +
                var forwardZeros = repeat("0", minInteger - int);
 +
                string = forwardZeros + string;
 +
            }
 +
            if (isNegative) {
 +
                x = -x;
 +
            }
 +
            return { roundedNumber: x, formattedString: string };
 +
        }
 +
        function ComputeExponent(numberFormat, x, _a) {
 +
            var getInternalSlots2 = _a.getInternalSlots;
 +
            if (x === 0) {
 +
                return [0, 0];
 +
            }
 +
            if (x < 0) {
 +
                x = -x;
 +
            }
 +
            var magnitude = getMagnitude(x);
 +
            var exponent = ComputeExponentForMagnitude(numberFormat, magnitude, {
 +
                getInternalSlots: getInternalSlots2
 +
            });
 +
            x = exponent < 0 ? x * Math.pow(10, -exponent) : x / Math.pow(10, exponent);
 +
            var formatNumberResult = FormatNumericToString(getInternalSlots2(numberFormat), x);
 +
            if (formatNumberResult.roundedNumber === 0) {
 +
                return [exponent, magnitude];
 +
            }
 +
            var newMagnitude = getMagnitude(formatNumberResult.roundedNumber);
 +
            if (newMagnitude === magnitude - exponent) {
 +
                return [exponent, magnitude];
 +
            }
 +
            return [
 +
                ComputeExponentForMagnitude(numberFormat, magnitude + 1, {
 +
                    getInternalSlots: getInternalSlots2
 +
                }),
 +
                magnitude + 1
 +
            ];
 +
        }
 +
        function CurrencyDigits(c, _a) {
 +
            var currencyDigitsData = _a.currencyDigitsData;
 +
            return HasOwnProperty(currencyDigitsData, c) ? currencyDigitsData[c] : 2;
 +
        }
 +
        var digit_mapping_exports = {};
 +
        __export(digit_mapping_exports, {
 +
            adlm: function () {
 +
                return adlm;
 +
            },
 +
            ahom: function () {
 +
                return ahom;
 +
            },
 +
            arab: function () {
 +
                return arab;
 +
            },
 +
            arabext: function () {
 +
                return arabext;
 +
            },
 +
            bali: function () {
 +
                return bali;
 +
            },
 +
            beng: function () {
 +
                return beng;
 +
            },
 +
            bhks: function () {
 +
                return bhks;
 +
            },
 +
            brah: function () {
 +
                return brah;
 +
            },
 +
            cakm: function () {
 +
                return cakm;
 +
            },
 +
            cham: function () {
 +
                return cham;
 +
            },
 +
            "default": function () {
 +
                return digit_mapping_default;
 +
            },
 +
            deva: function () {
 +
                return deva;
 +
            },
 +
            diak: function () {
 +
                return diak;
 +
            },
 +
            fullwide: function () {
 +
                return fullwide;
 +
            },
 +
            gong: function () {
 +
                return gong;
 +
            },
 +
            gonm: function () {
 +
                return gonm;
 +
            },
 +
            gujr: function () {
 +
                return gujr;
 +
            },
 +
            guru: function () {
 +
                return guru;
 +
            },
 +
            hanidec: function () {
 +
                return hanidec;
 +
            },
 +
            hmng: function () {
 +
                return hmng;
 +
            },
 +
            hmnp: function () {
 +
                return hmnp;
 +
            },
 +
            java: function () {
 +
                return java;
 +
            },
 +
            kali: function () {
 +
                return kali;
 +
            },
 +
            khmr: function () {
 +
                return khmr;
 +
            },
 +
            knda: function () {
 +
                return knda;
 +
            },
 +
            lana: function () {
 +
                return lana;
 +
            },
 +
            lanatham: function () {
 +
                return lanatham;
 +
            },
 +
            laoo: function () {
 +
                return laoo;
 +
            },
 +
            lepc: function () {
 +
                return lepc;
 +
            },
 +
            limb: function () {
 +
                return limb;
 +
            },
 +
            mathbold: function () {
 +
                return mathbold;
 +
            },
 +
            mathdbl: function () {
 +
                return mathdbl;
 +
            },
 +
            mathmono: function () {
 +
                return mathmono;
 +
            },
 +
            mathsanb: function () {
 +
                return mathsanb;
 +
            },
 +
            mathsans: function () {
 +
                return mathsans;
 +
            },
 +
            mlym: function () {
 +
                return mlym;
 +
            },
 +
            modi: function () {
 +
                return modi;
 +
            },
 +
            mong: function () {
 +
                return mong;
 +
            },
 +
            mroo: function () {
 +
                return mroo;
 +
            },
 +
            mtei: function () {
 +
                return mtei;
 +
            },
 +
            mymr: function () {
 +
                return mymr;
 +
            },
 +
            mymrshan: function () {
 +
                return mymrshan;
 +
            },
 +
            mymrtlng: function () {
 +
                return mymrtlng;
 +
            },
 +
            newa: function () {
 +
                return newa;
 +
            },
 +
            nkoo: function () {
 +
                return nkoo;
 +
            },
 +
            olck: function () {
 +
                return olck;
 +
            },
 +
            orya: function () {
 +
                return orya;
 +
            },
 +
            osma: function () {
 +
                return osma;
 +
            },
 +
            rohg: function () {
 +
                return rohg;
 +
            },
 +
            saur: function () {
 +
                return saur;
 +
            },
 +
            segment: function () {
 +
                return segment;
 +
            },
 +
            shrd: function () {
 +
                return shrd;
 +
            },
 +
            sind: function () {
 +
                return sind;
 +
            },
 +
            sinh: function () {
 +
                return sinh;
 +
            },
 +
            sora: function () {
 +
                return sora;
 +
            },
 +
            sund: function () {
 +
                return sund;
 +
            },
 +
            takr: function () {
 +
                return takr;
 +
            },
 +
            talu: function () {
 +
                return talu;
 +
            },
 +
            tamldec: function () {
 +
                return tamldec;
 +
            },
 +
            telu: function () {
 +
                return telu;
 +
            },
 +
            thai: function () {
 +
                return thai;
 +
            },
 +
            tibt: function () {
 +
                return tibt;
 +
            },
 +
            tirh: function () {
 +
                return tirh;
 +
            },
 +
            vaii: function () {
 +
                return vaii;
 +
            },
 +
            wara: function () {
 +
                return wara;
 +
            },
 +
            wcho: function () {
 +
                return wcho;
 +
            }
 +
        });
 +
        var adlm = ["\uD83A\uDD50", "\uD83A\uDD51", "\uD83A\uDD52", "\uD83A\uDD53", "\uD83A\uDD54", "\uD83A\uDD55", "\uD83A\uDD56", "\uD83A\uDD57", "\uD83A\uDD58", "\uD83A\uDD59"];
 +
        var ahom = ["\uD805\uDF30", "\uD805\uDF31", "\uD805\uDF32", "\uD805\uDF33", "\uD805\uDF34", "\uD805\uDF35", "\uD805\uDF36", "\uD805\uDF37", "\uD805\uDF38", "\uD805\uDF39"];
 +
        var arab = ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"];
 +
        var arabext = ["\u06F0", "\u06F1", "\u06F2", "\u06F3", "\u06F4", "\u06F5", "\u06F6", "\u06F7", "\u06F8", "\u06F9"];
 +
        var bali = ["\u1B50", "\u1B51", "\u1B52", "\u1B53", "\u1B54", "\u1B55", "\u1B56", "\u1B57", "\u1B58", "\u1B59"];
 +
        var beng = ["\u09E6", "\u09E7", "\u09E8", "\u09E9", "\u09EA", "\u09EB", "\u09EC", "\u09ED", "\u09EE", "\u09EF"];
 +
        var bhks = ["\uD807\uDC50", "\uD807\uDC51", "\uD807\uDC52", "\uD807\uDC53", "\uD807\uDC54", "\uD807\uDC55", "\uD807\uDC56", "\uD807\uDC57", "\uD807\uDC58", "\uD807\uDC59"];
 +
        var brah = ["\uD804\uDC66", "\uD804\uDC67", "\uD804\uDC68", "\uD804\uDC69", "\uD804\uDC6A", "\uD804\uDC6B", "\uD804\uDC6C", "\uD804\uDC6D", "\uD804\uDC6E", "\uD804\uDC6F"];
 +
        var cakm = ["\uD804\uDD36", "\uD804\uDD37", "\uD804\uDD38", "\uD804\uDD39", "\uD804\uDD3A", "\uD804\uDD3B", "\uD804\uDD3C", "\uD804\uDD3D", "\uD804\uDD3E", "\uD804\uDD3F"];
 +
        var cham = ["\uAA50", "\uAA51", "\uAA52", "\uAA53", "\uAA54", "\uAA55", "\uAA56", "\uAA57", "\uAA58", "\uAA59"];
 +
        var deva = ["\u0966", "\u0967", "\u0968", "\u0969", "\u096A", "\u096B", "\u096C", "\u096D", "\u096E", "\u096F"];
 +
        var diak = ["\uD806\uDD50", "\uD806\uDD51", "\uD806\uDD52", "\uD806\uDD53", "\uD806\uDD54", "\uD806\uDD55", "\uD806\uDD56", "\uD806\uDD57", "\uD806\uDD58", "\uD806\uDD59"];
 +
        var fullwide = ["\uFF10", "\uFF11", "\uFF12", "\uFF13", "\uFF14", "\uFF15", "\uFF16", "\uFF17", "\uFF18", "\uFF19"];
 +
        var gong = ["\uD807\uDDA0", "\uD807\uDDA1", "\uD807\uDDA2", "\uD807\uDDA3", "\uD807\uDDA4", "\uD807\uDDA5", "\uD807\uDDA6", "\uD807\uDDA7", "\uD807\uDDA8", "\uD807\uDDA9"];
 +
        var gonm = ["\uD807\uDD50", "\uD807\uDD51", "\uD807\uDD52", "\uD807\uDD53", "\uD807\uDD54", "\uD807\uDD55", "\uD807\uDD56", "\uD807\uDD57", "\uD807\uDD58", "\uD807\uDD59"];
 +
        var gujr = ["\u0AE6", "\u0AE7", "\u0AE8", "\u0AE9", "\u0AEA", "\u0AEB", "\u0AEC", "\u0AED", "\u0AEE", "\u0AEF"];
 +
        var guru = ["\u0A66", "\u0A67", "\u0A68", "\u0A69", "\u0A6A", "\u0A6B", "\u0A6C", "\u0A6D", "\u0A6E", "\u0A6F"];
 +
        var hanidec = ["\u3007", "\u4E00", "\u4E8C", "\u4E09", "\u56DB", "\u4E94", "\u516D", "\u4E03", "\u516B", "\u4E5D"];
 +
        var hmng = ["\uD81A\uDF50", "\uD81A\uDF51", "\uD81A\uDF52", "\uD81A\uDF53", "\uD81A\uDF54", "\uD81A\uDF55", "\uD81A\uDF56", "\uD81A\uDF57", "\uD81A\uDF58", "\uD81A\uDF59"];
 +
        var hmnp = ["\uD838\uDD40", "\uD838\uDD41", "\uD838\uDD42", "\uD838\uDD43", "\uD838\uDD44", "\uD838\uDD45", "\uD838\uDD46", "\uD838\uDD47", "\uD838\uDD48", "\uD838\uDD49"];
 +
        var java = ["\uA9D0", "\uA9D1", "\uA9D2", "\uA9D3", "\uA9D4", "\uA9D5", "\uA9D6", "\uA9D7", "\uA9D8", "\uA9D9"];
 +
        var kali = ["\uA900", "\uA901", "\uA902", "\uA903", "\uA904", "\uA905", "\uA906", "\uA907", "\uA908", "\uA909"];
 +
        var khmr = ["\u17E0", "\u17E1", "\u17E2", "\u17E3", "\u17E4", "\u17E5", "\u17E6", "\u17E7", "\u17E8", "\u17E9"];
 +
        var knda = ["\u0CE6", "\u0CE7", "\u0CE8", "\u0CE9", "\u0CEA", "\u0CEB", "\u0CEC", "\u0CED", "\u0CEE", "\u0CEF"];
 +
        var lana = ["\u1A80", "\u1A81", "\u1A82", "\u1A83", "\u1A84", "\u1A85", "\u1A86", "\u1A87", "\u1A88", "\u1A89"];
 +
        var lanatham = ["\u1A90", "\u1A91", "\u1A92", "\u1A93", "\u1A94", "\u1A95", "\u1A96", "\u1A97", "\u1A98", "\u1A99"];
 +
        var laoo = ["\u0ED0", "\u0ED1", "\u0ED2", "\u0ED3", "\u0ED4", "\u0ED5", "\u0ED6", "\u0ED7", "\u0ED8", "\u0ED9"];
 +
        var lepc = ["\u1A90", "\u1A91", "\u1A92", "\u1A93", "\u1A94", "\u1A95", "\u1A96", "\u1A97", "\u1A98", "\u1A99"];
 +
        var limb = ["\u1946", "\u1947", "\u1948", "\u1949", "\u194A", "\u194B", "\u194C", "\u194D", "\u194E", "\u194F"];
 +
        var mathbold = ["\uD835\uDFCE", "\uD835\uDFCF", "\uD835\uDFD0", "\uD835\uDFD1", "\uD835\uDFD2", "\uD835\uDFD3", "\uD835\uDFD4", "\uD835\uDFD5", "\uD835\uDFD6", "\uD835\uDFD7"];
 +
        var mathdbl = ["\uD835\uDFD8", "\uD835\uDFD9", "\uD835\uDFDA", "\uD835\uDFDB", "\uD835\uDFDC", "\uD835\uDFDD", "\uD835\uDFDE", "\uD835\uDFDF", "\uD835\uDFE0", "\uD835\uDFE1"];
 +
        var mathmono = ["\uD835\uDFF6", "\uD835\uDFF7", "\uD835\uDFF8", "\uD835\uDFF9", "\uD835\uDFFA", "\uD835\uDFFB", "\uD835\uDFFC", "\uD835\uDFFD", "\uD835\uDFFE", "\uD835\uDFFF"];
 +
        var mathsanb = ["\uD835\uDFEC", "\uD835\uDFED", "\uD835\uDFEE", "\uD835\uDFEF", "\uD835\uDFF0", "\uD835\uDFF1", "\uD835\uDFF2", "\uD835\uDFF3", "\uD835\uDFF4", "\uD835\uDFF5"];
 +
        var mathsans = ["\uD835\uDFE2", "\uD835\uDFE3", "\uD835\uDFE4", "\uD835\uDFE5", "\uD835\uDFE6", "\uD835\uDFE7", "\uD835\uDFE8", "\uD835\uDFE9", "\uD835\uDFEA", "\uD835\uDFEB"];
 +
        var mlym = ["\u0D66", "\u0D67", "\u0D68", "\u0D69", "\u0D6A", "\u0D6B", "\u0D6C", "\u0D6D", "\u0D6E", "\u0D6F"];
 +
        var modi = ["\uD805\uDE50", "\uD805\uDE51", "\uD805\uDE52", "\uD805\uDE53", "\uD805\uDE54", "\uD805\uDE55", "\uD805\uDE56", "\uD805\uDE57", "\uD805\uDE58", "\uD805\uDE59"];
 +
        var mong = ["\u1810", "\u1811", "\u1812", "\u1813", "\u1814", "\u1815", "\u1816", "\u1817", "\u1818", "\u1819"];
 +
        var mroo = ["\uD81A\uDE60", "\uD81A\uDE61", "\uD81A\uDE62", "\uD81A\uDE63", "\uD81A\uDE64", "\uD81A\uDE65", "\uD81A\uDE66", "\uD81A\uDE67", "\uD81A\uDE68", "\uD81A\uDE69"];
 +
        var mtei = ["\uABF0", "\uABF1", "\uABF2", "\uABF3", "\uABF4", "\uABF5", "\uABF6", "\uABF7", "\uABF8", "\uABF9"];
 +
        var mymr = ["\u1040", "\u1041", "\u1042", "\u1043", "\u1044", "\u1045", "\u1046", "\u1047", "\u1048", "\u1049"];
 +
        var mymrshan = ["\u1090", "\u1091", "\u1092", "\u1093", "\u1094", "\u1095", "\u1096", "\u1097", "\u1098", "\u1099"];
 +
        var mymrtlng = ["\uA9F0", "\uA9F1", "\uA9F2", "\uA9F3", "\uA9F4", "\uA9F5", "\uA9F6", "\uA9F7", "\uA9F8", "\uA9F9"];
 +
        var newa = ["\uD805\uDC50", "\uD805\uDC51", "\uD805\uDC52", "\uD805\uDC53", "\uD805\uDC54", "\uD805\uDC55", "\uD805\uDC56", "\uD805\uDC57", "\uD805\uDC58", "\uD805\uDC59"];
 +
        var nkoo = ["\u07C0", "\u07C1", "\u07C2", "\u07C3", "\u07C4", "\u07C5", "\u07C6", "\u07C7", "\u07C8", "\u07C9"];
 +
        var olck = ["\u1C50", "\u1C51", "\u1C52", "\u1C53", "\u1C54", "\u1C55", "\u1C56", "\u1C57", "\u1C58", "\u1C59"];
 +
        var orya = ["\u0B66", "\u0B67", "\u0B68", "\u0B69", "\u0B6A", "\u0B6B", "\u0B6C", "\u0B6D", "\u0B6E", "\u0B6F"];
 +
        var osma = ["\uD801\uDCA0", "\uD801\uDCA1", "\uD801\uDCA2", "\uD801\uDCA3", "\uD801\uDCA4", "\uD801\uDCA5", "\uD801\uDCA6", "\uD801\uDCA7", "\uD801\uDCA8", "\uD801\uDCA9"];
 +
        var rohg = ["\uD803\uDD30", "\uD803\uDD31", "\uD803\uDD32", "\uD803\uDD33", "\uD803\uDD34", "\uD803\uDD35", "\uD803\uDD36", "\uD803\uDD37", "\uD803\uDD38", "\uD803\uDD39"];
 +
        var saur = ["\uA8D0", "\uA8D1", "\uA8D2", "\uA8D3", "\uA8D4", "\uA8D5", "\uA8D6", "\uA8D7", "\uA8D8", "\uA8D9"];
 +
        var segment = ["\uD83E\uDFF0", "\uD83E\uDFF1", "\uD83E\uDFF2", "\uD83E\uDFF3", "\uD83E\uDFF4", "\uD83E\uDFF5", "\uD83E\uDFF6", "\uD83E\uDFF7", "\uD83E\uDFF8", "\uD83E\uDFF9"];
 +
        var shrd = ["\uD804\uDDD0", "\uD804\uDDD1", "\uD804\uDDD2", "\uD804\uDDD3", "\uD804\uDDD4", "\uD804\uDDD5", "\uD804\uDDD6", "\uD804\uDDD7", "\uD804\uDDD8", "\uD804\uDDD9"];
 +
        var sind = ["\uD804\uDEF0", "\uD804\uDEF1", "\uD804\uDEF2", "\uD804\uDEF3", "\uD804\uDEF4", "\uD804\uDEF5", "\uD804\uDEF6", "\uD804\uDEF7", "\uD804\uDEF8", "\uD804\uDEF9"];
 +
        var sinh = ["\u0DE6", "\u0DE7", "\u0DE8", "\u0DE9", "\u0DEA", "\u0DEB", "\u0DEC", "\u0DED", "\u0DEE", "\u0DEF"];
 +
        var sora = ["\uD804\uDCF0", "\uD804\uDCF1", "\uD804\uDCF2", "\uD804\uDCF3", "\uD804\uDCF4", "\uD804\uDCF5", "\uD804\uDCF6", "\uD804\uDCF7", "\uD804\uDCF8", "\uD804\uDCF9"];
 +
        var sund = ["\u1BB0", "\u1BB1", "\u1BB2", "\u1BB3", "\u1BB4", "\u1BB5", "\u1BB6", "\u1BB7", "\u1BB8", "\u1BB9"];
 +
        var takr = ["\uD805\uDEC0", "\uD805\uDEC1", "\uD805\uDEC2", "\uD805\uDEC3", "\uD805\uDEC4", "\uD805\uDEC5", "\uD805\uDEC6", "\uD805\uDEC7", "\uD805\uDEC8", "\uD805\uDEC9"];
 +
        var talu = ["\u19D0", "\u19D1", "\u19D2", "\u19D3", "\u19D4", "\u19D5", "\u19D6", "\u19D7", "\u19D8", "\u19D9"];
 +
        var tamldec = ["\u0BE6", "\u0BE7", "\u0BE8", "\u0BE9", "\u0BEA", "\u0BEB", "\u0BEC", "\u0BED", "\u0BEE", "\u0BEF"];
 +
        var telu = ["\u0C66", "\u0C67", "\u0C68", "\u0C69", "\u0C6A", "\u0C6B", "\u0C6C", "\u0C6D", "\u0C6E", "\u0C6F"];
 +
        var thai = ["\u0E50", "\u0E51", "\u0E52", "\u0E53", "\u0E54", "\u0E55", "\u0E56", "\u0E57", "\u0E58", "\u0E59"];
 +
        var tibt = ["\u0F20", "\u0F21", "\u0F22", "\u0F23", "\u0F24", "\u0F25", "\u0F26", "\u0F27", "\u0F28", "\u0F29"];
 +
        var tirh = ["\uD805\uDCD0", "\uD805\uDCD1", "\uD805\uDCD2", "\uD805\uDCD3", "\uD805\uDCD4", "\uD805\uDCD5", "\uD805\uDCD6", "\uD805\uDCD7", "\uD805\uDCD8", "\uD805\uDCD9"];
 +
        var vaii = ["\u1620", "\u1621", "\u1622", "\u1623", "\u1624", "\u1625", "\u1626", "\u1627", "\u1628", "\u1629"];
 +
        var wara = ["\uD806\uDCE0", "\uD806\uDCE1", "\uD806\uDCE2", "\uD806\uDCE3", "\uD806\uDCE4", "\uD806\uDCE5", "\uD806\uDCE6", "\uD806\uDCE7", "\uD806\uDCE8", "\uD806\uDCE9"];
 +
        var wcho = ["\uD838\uDEF0", "\uD838\uDEF1", "\uD838\uDEF2", "\uD838\uDEF3", "\uD838\uDEF4", "\uD838\uDEF5", "\uD838\uDEF6", "\uD838\uDEF7", "\uD838\uDEF8", "\uD838\uDEF9"];
 +
        var digit_mapping_default = { adlm: adlm, ahom: ahom, arab: arab, arabext: arabext, bali: bali, beng: beng, bhks: bhks, brah: brah, cakm: cakm, cham: cham, deva: deva, diak: diak, fullwide: fullwide, gong: gong, gonm: gonm, gujr: gujr, guru: guru, hanidec: hanidec, hmng: hmng, hmnp: hmnp, java: java, kali: kali, khmr: khmr, knda: knda, lana: lana, lanatham: lanatham, laoo: laoo, lepc: lepc, limb: limb, mathbold: mathbold, mathdbl: mathdbl, mathmono: mathmono, mathsanb: mathsanb, mathsans: mathsans, mlym: mlym, modi: modi, mong: mong, mroo: mroo, mtei: mtei, mymr: mymr, mymrshan: mymrshan, mymrtlng: mymrtlng, newa: newa, nkoo: nkoo, olck: olck, orya: orya, osma: osma, rohg: rohg, saur: saur, segment: segment, shrd: shrd, sind: sind, sinh: sinh, sora: sora, sund: sund, takr: takr, talu: talu, tamldec: tamldec, telu: telu, thai: thai, tibt: tibt, tirh: tirh, vaii: vaii, wara: wara, wcho: wcho };
 +
        var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/;
 +
        var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source);
 +
        var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$");
 +
        var CLDR_NUMBER_PATTERN = /[#0](?:[\.,][#0]+)*/g;
 +
        function formatToParts(numberResult, data, pl, options) {
 +
            var sign = numberResult.sign, exponent = numberResult.exponent, magnitude = numberResult.magnitude;
 +
            var notation = options.notation, style = options.style, numberingSystem = options.numberingSystem;
 +
            var defaultNumberingSystem = data.numbers.nu[0];
 +
            var compactNumberPattern = null;
 +
            if (notation === "compact" && magnitude) {
 +
                compactNumberPattern = getCompactDisplayPattern(numberResult, pl, data, style, options.compactDisplay, options.currencyDisplay, numberingSystem);
 +
            }
 +
            var nonNameCurrencyPart;
 +
            if (style === "currency" && options.currencyDisplay !== "name") {
 +
                var byCurrencyDisplay = data.currencies[options.currency];
 +
                if (byCurrencyDisplay) {
 +
                    switch (options.currencyDisplay) {
 +
                        case "code":
 +
                            nonNameCurrencyPart = options.currency;
 +
                            break;
 +
                        case "symbol":
 +
                            nonNameCurrencyPart = byCurrencyDisplay.symbol;
 +
                            break;
 +
                        default:
 +
                            nonNameCurrencyPart = byCurrencyDisplay.narrow;
 +
                            break;
 +
                    }
 +
                }
 +
                else {
 +
                    nonNameCurrencyPart = options.currency;
 +
                }
 +
            }
 +
            var numberPattern;
 +
            if (!compactNumberPattern) {
 +
                if (style === "decimal" || style === "unit" || style === "currency" && options.currencyDisplay === "name") {
 +
                    var decimalData = data.numbers.decimal[numberingSystem] || data.numbers.decimal[defaultNumberingSystem];
 +
                    numberPattern = getPatternForSign(decimalData.standard, sign);
 +
                }
 +
                else if (style === "currency") {
 +
                    var currencyData = data.numbers.currency[numberingSystem] || data.numbers.currency[defaultNumberingSystem];
 +
                    numberPattern = getPatternForSign(currencyData[options.currencySign], sign);
 +
                }
 +
                else {
 +
                    var percentPattern = data.numbers.percent[numberingSystem] || data.numbers.percent[defaultNumberingSystem];
 +
                    numberPattern = getPatternForSign(percentPattern, sign);
 +
                }
 +
            }
 +
            else {
 +
                numberPattern = compactNumberPattern;
 +
            }
 +
            var decimalNumberPattern = CLDR_NUMBER_PATTERN.exec(numberPattern)[0];
 +
            numberPattern = numberPattern.replace(CLDR_NUMBER_PATTERN, "{0}").replace(/'(.)'/g, "$1");
 +
            if (style === "currency" && options.currencyDisplay !== "name") {
 +
                var currencyData = data.numbers.currency[numberingSystem] || data.numbers.currency[defaultNumberingSystem];
 +
                var afterCurrency = currencyData.currencySpacing.afterInsertBetween;
 +
                if (afterCurrency && !S_DOLLAR_UNICODE_REGEX.test(nonNameCurrencyPart)) {
 +
                    numberPattern = numberPattern.replace("\xA4{0}", "\xA4" + afterCurrency + "{0}");
 +
                }
 +
                var beforeCurrency = currencyData.currencySpacing.beforeInsertBetween;
 +
                if (beforeCurrency && !CARET_S_UNICODE_REGEX.test(nonNameCurrencyPart)) {
 +
                    numberPattern = numberPattern.replace("{0}\xA4", "{0}" + beforeCurrency + "\xA4");
 +
                }
 +
            }
 +
            var numberPatternParts = numberPattern.split(/({c:[^}]+}|\{0\}|[¤%\-\+])/g);
 +
            var numberParts = [];
 +
            var symbols = data.numbers.symbols[numberingSystem] || data.numbers.symbols[defaultNumberingSystem];
 +
            for (var _i = 0, numberPatternParts_1 = numberPatternParts; _i < numberPatternParts_1.length; _i++) {
 +
                var part = numberPatternParts_1[_i];
 +
                if (!part) {
 +
                    continue;
 +
                }
 +
                switch (part) {
 +
                    case "{0}": {
 +
                        numberParts.push.apply(numberParts, paritionNumberIntoParts(symbols, numberResult, notation, exponent, numberingSystem, !compactNumberPattern && options.useGrouping, decimalNumberPattern));
 +
                        break;
 +
                    }
 +
                    case "-":
 +
                        numberParts.push({ type: "minusSign", value: symbols.minusSign });
 +
                        break;
 +
                    case "+":
 +
                        numberParts.push({ type: "plusSign", value: symbols.plusSign });
 +
                        break;
 +
                    case "%":
 +
                        numberParts.push({ type: "percentSign", value: symbols.percentSign });
 +
                        break;
 +
                    case "\xA4":
 +
                        numberParts.push({ type: "currency", value: nonNameCurrencyPart });
 +
                        break;
 +
                    default:
 +
                        if (/^\{c:/.test(part)) {
 +
                            numberParts.push({
 +
                                type: "compact",
 +
                                value: part.substring(3, part.length - 1)
 +
                            });
 +
                        }
 +
                        else {
 +
                            numberParts.push({ type: "literal", value: part });
 +
                        }
 +
                        break;
 +
                }
 +
            }
 +
            switch (style) {
 +
                case "currency": {
 +
                    if (options.currencyDisplay === "name") {
 +
                        var unitPattern = (data.numbers.currency[numberingSystem] || data.numbers.currency[defaultNumberingSystem]).unitPattern;
 +
                        var unitName = void 0;
 +
                        var currencyNameData = data.currencies[options.currency];
 +
                        if (currencyNameData) {
 +
                            unitName = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), currencyNameData.displayName);
 +
                        }
 +
                        else {
 +
                            unitName = options.currency;
 +
                        }
 +
                        var unitPatternParts = unitPattern.split(/(\{[01]\})/g);
 +
                        var result = [];
 +
                        for (var _a = 0, unitPatternParts_1 = unitPatternParts; _a < unitPatternParts_1.length; _a++) {
 +
                            var part = unitPatternParts_1[_a];
 +
                            switch (part) {
 +
                                case "{0}":
 +
                                    result.push.apply(result, numberParts);
 +
                                    break;
 +
                                case "{1}":
 +
                                    result.push({ type: "currency", value: unitName });
 +
                                    break;
 +
                                default:
 +
                                    if (part) {
 +
                                        result.push({ type: "literal", value: part });
 +
                                    }
 +
                                    break;
 +
                            }
 +
                        }
 +
                        return result;
 +
                    }
 +
                    else {
 +
                        return numberParts;
 +
                    }
 +
                }
 +
                case "unit": {
 +
                    var unit = options.unit, unitDisplay = options.unitDisplay;
 +
                    var unitData = data.units.simple[unit];
 +
                    var unitPattern = void 0;
 +
                    if (unitData) {
 +
                        unitPattern = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), data.units.simple[unit][unitDisplay]);
 +
                    }
 +
                    else {
 +
                        var _b = unit.split("-per-"), numeratorUnit = _b[0], denominatorUnit = _b[1];
 +
                        unitData = data.units.simple[numeratorUnit];
 +
                        var numeratorUnitPattern = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), data.units.simple[numeratorUnit][unitDisplay]);
 +
                        var perUnitPattern = data.units.simple[denominatorUnit].perUnit[unitDisplay];
 +
                        if (perUnitPattern) {
 +
                            unitPattern = perUnitPattern.replace("{0}", numeratorUnitPattern);
 +
                        }
 +
                        else {
 +
                            var perPattern = data.units.compound.per[unitDisplay];
 +
                            var denominatorPattern = selectPlural(pl, 1, data.units.simple[denominatorUnit][unitDisplay]);
 +
                            unitPattern = unitPattern = perPattern.replace("{0}", numeratorUnitPattern).replace("{1}", denominatorPattern.replace("{0}", ""));
 +
                        }
 +
                    }
 +
                    var result = [];
 +
                    for (var _c = 0, _d = unitPattern.split(/(\s*\{0\}\s*)/); _c < _d.length; _c++) {
 +
                        var part = _d[_c];
 +
                        var interpolateMatch = /^(\s*)\{0\}(\s*)$/.exec(part);
 +
                        if (interpolateMatch) {
 +
                            if (interpolateMatch[1]) {
 +
                                result.push({ type: "literal", value: interpolateMatch[1] });
 +
                            }
 +
                            result.push.apply(result, numberParts);
 +
                            if (interpolateMatch[2]) {
 +
                                result.push({ type: "literal", value: interpolateMatch[2] });
 +
                            }
 +
                        }
 +
                        else if (part) {
 +
                            result.push({ type: "unit", value: part });
 +
                        }
 +
                    }
 +
                    return result;
 +
                }
 +
                default:
 +
                    return numberParts;
 +
            }
 +
        }
 +
        function paritionNumberIntoParts(symbols, numberResult, notation, exponent, numberingSystem, useGrouping, decimalNumberPattern) {
 +
            var result = [];
 +
            var n = numberResult.formattedString, x = numberResult.roundedNumber;
 +
            if (isNaN(x)) {
 +
                return [{ type: "nan", value: n }];
 +
            }
 +
            else if (!isFinite(x)) {
 +
                return [{ type: "infinity", value: n }];
 +
            }
 +
            var digitReplacementTable = digit_mapping_exports[numberingSystem];
 +
            if (digitReplacementTable) {
 +
                n = n.replace(/\d/g, function (digit) {
 +
                    return digitReplacementTable[+digit] || digit;
 +
                });
 +
            }
 +
            var decimalSepIndex = n.indexOf(".");
 +
            var integer;
 +
            var fraction;
 +
            if (decimalSepIndex > 0) {
 +
                integer = n.slice(0, decimalSepIndex);
 +
                fraction = n.slice(decimalSepIndex + 1);
 +
            }
 +
            else {
 +
                integer = n;
 +
            }
 +
            if (useGrouping && (notation !== "compact" || x >= 1e4)) {
 +
                var groupSepSymbol = symbols.group;
 +
                var groups = [];
 +
                var integerNumberPattern = decimalNumberPattern.split(".")[0];
 +
                var patternGroups = integerNumberPattern.split(",");
 +
                var primaryGroupingSize = 3;
 +
                var secondaryGroupingSize = 3;
 +
                if (patternGroups.length > 1) {
 +
                    primaryGroupingSize = patternGroups[patternGroups.length - 1].length;
 +
                }
 +
                if (patternGroups.length > 2) {
 +
                    secondaryGroupingSize = patternGroups[patternGroups.length - 2].length;
 +
                }
 +
                var i = integer.length - primaryGroupingSize;
 +
                if (i > 0) {
 +
                    groups.push(integer.slice(i, i + primaryGroupingSize));
 +
                    for (i -= secondaryGroupingSize; i > 0; i -= secondaryGroupingSize) {
 +
                        groups.push(integer.slice(i, i + secondaryGroupingSize));
 +
                    }
 +
                    groups.push(integer.slice(0, i + secondaryGroupingSize));
 +
                }
 +
                else {
 +
                    groups.push(integer);
 +
                }
 +
                while (groups.length > 0) {
 +
                    var integerGroup = groups.pop();
 +
                    result.push({ type: "integer", value: integerGroup });
 +
                    if (groups.length > 0) {
 +
                        result.push({ type: "group", value: groupSepSymbol });
 +
                    }
 +
                }
 +
            }
 +
            else {
 +
                result.push({ type: "integer", value: integer });
 +
            }
 +
            if (fraction !== void 0) {
 +
                result.push({ type: "decimal", value: symbols.decimal }, { type: "fraction", value: fraction });
 +
            }
 +
            if ((notation === "scientific" || notation === "engineering") && isFinite(x)) {
 +
                result.push({ type: "exponentSeparator", value: symbols.exponential });
 +
                if (exponent < 0) {
 +
                    result.push({ type: "exponentMinusSign", value: symbols.minusSign });
 +
                    exponent = -exponent;
 +
                }
 +
                var exponentResult = ToRawFixed(exponent, 0, 0);
 +
                result.push({
 +
                    type: "exponentInteger",
 +
                    value: exponentResult.formattedString
 +
                });
 +
            }
 +
            return result;
 +
        }
 +
        function getPatternForSign(pattern, sign) {
 +
            if (pattern.indexOf(";") < 0) {
 +
                pattern = pattern + ";-" + pattern;
 +
            }
 +
            var _a = pattern.split(";"), zeroPattern = _a[0], negativePattern = _a[1];
 +
            switch (sign) {
 +
                case 0:
 +
                    return zeroPattern;
 +
                case -1:
 +
                    return negativePattern;
 +
                default:
 +
                    return negativePattern.indexOf("-") >= 0 ? negativePattern.replace(/-/g, "+") : "+" + zeroPattern;
 +
            }
 +
        }
 +
        function getCompactDisplayPattern(numberResult, pl, data, style, compactDisplay, currencyDisplay, numberingSystem) {
 +
            var _a;
 +
            var roundedNumber = numberResult.roundedNumber, sign = numberResult.sign, magnitude = numberResult.magnitude;
 +
            var magnitudeKey = String(Math.pow(10, magnitude));
 +
            var defaultNumberingSystem = data.numbers.nu[0];
 +
            var pattern;
 +
            if (style === "currency" && currencyDisplay !== "name") {
 +
                var byNumberingSystem = data.numbers.currency;
 +
                var currencyData = byNumberingSystem[numberingSystem] || byNumberingSystem[defaultNumberingSystem];
 +
                var compactPluralRules = (_a = currencyData.short) === null || _a === void 0 ? void 0 : _a[magnitudeKey];
 +
                if (!compactPluralRules) {
 +
                    return null;
 +
                }
 +
                pattern = selectPlural(pl, roundedNumber, compactPluralRules);
 +
            }
 +
            else {
 +
                var byNumberingSystem = data.numbers.decimal;
 +
                var byCompactDisplay = byNumberingSystem[numberingSystem] || byNumberingSystem[defaultNumberingSystem];
 +
                var compactPlaralRule = byCompactDisplay[compactDisplay][magnitudeKey];
 +
                if (!compactPlaralRule) {
 +
                    return null;
 +
                }
 +
                pattern = selectPlural(pl, roundedNumber, compactPlaralRule);
 +
            }
 +
            if (pattern === "0") {
 +
                return null;
 +
            }
 +
            pattern = getPatternForSign(pattern, sign).replace(/([^\s;\-\+\d¤]+)/g, "{c:$1}").replace(/0+/, "0");
 +
            return pattern;
 +
        }
 +
        function selectPlural(pl, x, rules) {
 +
            return rules[pl.select(x)] || rules.other;
 +
        }
 +
        function PartitionNumberPattern(numberFormat, x, _a) {
 +
            var _b;
 +
            var getInternalSlots2 = _a.getInternalSlots;
 +
            var internalSlots = getInternalSlots2(numberFormat);
 +
            var pl = internalSlots.pl, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem;
 +
            var symbols = dataLocaleData.numbers.symbols[numberingSystem] || dataLocaleData.numbers.symbols[dataLocaleData.numbers.nu[0]];
 +
            var magnitude = 0;
 +
            var exponent = 0;
 +
            var n;
 +
            if (isNaN(x)) {
 +
                n = symbols.nan;
 +
            }
 +
            else if (!isFinite(x)) {
 +
                n = symbols.infinity;
 +
            }
 +
            else {
 +
                if (internalSlots.style === "percent") {
 +
                    x *= 100;
 +
                }
 +
                ;
 +
                _b = ComputeExponent(numberFormat, x, {
 +
                    getInternalSlots: getInternalSlots2
 +
                }), exponent = _b[0], magnitude = _b[1];
 +
                x = exponent < 0 ? x * Math.pow(10, -exponent) : x / Math.pow(10, exponent);
 +
                var formatNumberResult = FormatNumericToString(internalSlots, x);
 +
                n = formatNumberResult.formattedString;
 +
                x = formatNumberResult.roundedNumber;
 
             }
 
             }
 +
            var sign;
 +
            var signDisplay = internalSlots.signDisplay;
 +
            switch (signDisplay) {
 +
                case "never":
 +
                    sign = 0;
 +
                    break;
 +
                case "auto":
 +
                    if (SameValue(x, 0) || x > 0 || isNaN(x)) {
 +
                        sign = 0;
 +
                    }
 +
                    else {
 +
                        sign = -1;
 +
                    }
 +
                    break;
 +
                case "always":
 +
                    if (SameValue(x, 0) || x > 0 || isNaN(x)) {
 +
                        sign = 1;
 +
                    }
 +
                    else {
 +
                        sign = -1;
 +
                    }
 +
                    break;
 +
                default:
 +
                    if (x === 0 || isNaN(x)) {
 +
                        sign = 0;
 +
                    }
 +
                    else if (x > 0) {
 +
                        sign = 1;
 +
                    }
 +
                    else {
 +
                        sign = -1;
 +
                    }
 +
            }
 +
            return formatToParts({ roundedNumber: x, formattedString: n, exponent: exponent, magnitude: magnitude, sign: sign }, internalSlots.dataLocaleData, pl, internalSlots);
 
         }
 
         }
    }
+
        function FormatNumericToParts(nf, x, implDetails) {
    // 6. Throw a TypeError exception.
+
            var parts = PartitionNumberPattern(nf, x, implDetails);
    throw new TypeError('Cannot convert to primitive.');
+
            var result = ArrayCreate(0);
}
+
            for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
 
+
                var part = parts_1[_i];
// _ESAbstract.ToPrimitive
+
                result.push({
/* global Type, GetMethod, Call, OrdinaryToPrimitive */
+
                    type: part.type,
// 7.1.1. ToPrimitive ( input [ , PreferredType ] )
+
                    value: part.value
function ToPrimitive(input /* [, PreferredType] */) { // eslint-disable-line no-unused-vars
+
                });
    var PreferredType = arguments.length > 1 ? arguments[1] : undefined;
+
            }
    // 1. Assert: input is an ECMAScript language value.
+
            return result;
    // 2. If Type(input) is Object, then
+
        }
    if (Type(input) === 'object') {
+
        function SetNumberFormatUnitOptions(nf, options, _a) {
        // a. If PreferredType is not present, let hint be "default".
+
            if (options === void 0) {
         if (arguments.length < 2) {
+
                options = Object.create(null);
             var hint = 'default';
+
            }
             // b. Else if PreferredType is hint String, let hint be "string".
+
            var getInternalSlots2 = _a.getInternalSlots;
        } else if (PreferredType === String) {
+
            var internalSlots = getInternalSlots2(nf);
             hint = 'string';
+
            var style = GetOption(options, "style", "string", ["decimal", "percent", "currency", "unit"], "decimal");
             // c. Else PreferredType is hint Number, let hint be "number".
+
            internalSlots.style = style;
         } else if (PreferredType === Number) {
+
            var currency = GetOption(options, "currency", "string", void 0, void 0);
             hint = 'number';
+
            if (currency !== void 0 && !IsWellFormedCurrencyCode(currency)) {
 +
                throw RangeError("Malformed currency code");
 +
            }
 +
            if (style === "currency" && currency === void 0) {
 +
                throw TypeError("currency cannot be undefined");
 +
            }
 +
            var currencyDisplay = GetOption(options, "currencyDisplay", "string", ["code", "symbol", "narrowSymbol", "name"], "symbol");
 +
            var currencySign = GetOption(options, "currencySign", "string", ["standard", "accounting"], "standard");
 +
            var unit = GetOption(options, "unit", "string", void 0, void 0);
 +
            if (unit !== void 0 && !IsWellFormedUnitIdentifier(unit)) {
 +
                throw RangeError("Invalid unit argument for Intl.NumberFormat()");
 +
            }
 +
            if (style === "unit" && unit === void 0) {
 +
                throw TypeError("unit cannot be undefined");
 +
            }
 +
            var unitDisplay = GetOption(options, "unitDisplay", "string", ["short", "narrow", "long"], "short");
 +
            if (style === "currency") {
 +
                internalSlots.currency = currency.toUpperCase();
 +
                internalSlots.currencyDisplay = currencyDisplay;
 +
                internalSlots.currencySign = currencySign;
 +
            }
 +
            if (style === "unit") {
 +
                internalSlots.unit = unit;
 +
                internalSlots.unitDisplay = unitDisplay;
 +
            }
 +
        }
 +
        function SetNumberFormatDigitOptions(internalSlots, opts, mnfdDefault, mxfdDefault, notation) {
 +
            var mnid = GetNumberOption(opts, "minimumIntegerDigits", 1, 21, 1);
 +
            var mnfd = opts.minimumFractionDigits;
 +
            var mxfd = opts.maximumFractionDigits;
 +
            var mnsd = opts.minimumSignificantDigits;
 +
            var mxsd = opts.maximumSignificantDigits;
 +
            internalSlots.minimumIntegerDigits = mnid;
 +
            if (mnsd !== void 0 || mxsd !== void 0) {
 +
                internalSlots.roundingType = "significantDigits";
 +
                mnsd = DefaultNumberOption(mnsd, 1, 21, 1);
 +
                mxsd = DefaultNumberOption(mxsd, mnsd, 21, 21);
 +
                internalSlots.minimumSignificantDigits = mnsd;
 +
                internalSlots.maximumSignificantDigits = mxsd;
 +
            }
 +
            else if (mnfd !== void 0 || mxfd !== void 0) {
 +
                internalSlots.roundingType = "fractionDigits";
 +
                mnfd = DefaultNumberOption(mnfd, 0, 20, mnfdDefault);
 +
                var mxfdActualDefault = Math.max(mnfd, mxfdDefault);
 +
                mxfd = DefaultNumberOption(mxfd, mnfd, 20, mxfdActualDefault);
 +
                internalSlots.minimumFractionDigits = mnfd;
 +
                internalSlots.maximumFractionDigits = mxfd;
 +
            }
 +
            else if (notation === "compact") {
 +
                internalSlots.roundingType = "compactRounding";
 +
            }
 +
            else {
 +
                internalSlots.roundingType = "fractionDigits";
 +
                internalSlots.minimumFractionDigits = mnfdDefault;
 +
                internalSlots.maximumFractionDigits = mxfdDefault;
 +
            }
 +
        }
 +
        function InitializeNumberFormat(nf, locales, opts, _a) {
 +
            var getInternalSlots2 = _a.getInternalSlots, localeData = _a.localeData, availableLocales = _a.availableLocales, numberingSystemNames2 = _a.numberingSystemNames, getDefaultLocale = _a.getDefaultLocale, currencyDigitsData = _a.currencyDigitsData;
 +
            var requestedLocales = CanonicalizeLocaleList(locales);
 +
            var options = CoerceOptionsToObject(opts);
 +
            var opt = Object.create(null);
 +
            var matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit");
 +
            opt.localeMatcher = matcher;
 +
            var numberingSystem = GetOption(options, "numberingSystem", "string", void 0, void 0);
 +
            if (numberingSystem !== void 0 && numberingSystemNames2.indexOf(numberingSystem) < 0) {
 +
                throw RangeError("Invalid numberingSystems: " + numberingSystem);
 +
            }
 +
            opt.nu = numberingSystem;
 +
            var r = ResolveLocale(availableLocales, requestedLocales, opt, ["nu"], localeData, getDefaultLocale);
 +
            var dataLocaleData = localeData[r.dataLocale];
 +
            invariant(!!dataLocaleData, "Missing locale data for " + r.dataLocale);
 +
            var internalSlots = getInternalSlots2(nf);
 +
            internalSlots.locale = r.locale;
 +
            internalSlots.dataLocale = r.dataLocale;
 +
            internalSlots.numberingSystem = r.nu;
 +
            internalSlots.dataLocaleData = dataLocaleData;
 +
            SetNumberFormatUnitOptions(nf, options, { getInternalSlots: getInternalSlots2 });
 +
            var style = internalSlots.style;
 +
            var mnfdDefault;
 +
            var mxfdDefault;
 +
            if (style === "currency") {
 +
                var currency = internalSlots.currency;
 +
                var cDigits = CurrencyDigits(currency, { currencyDigitsData: currencyDigitsData });
 +
                mnfdDefault = cDigits;
 +
                mxfdDefault = cDigits;
 +
            }
 +
            else {
 +
                mnfdDefault = 0;
 +
                mxfdDefault = style === "percent" ? 0 : 3;
 +
            }
 +
            var notation = GetOption(options, "notation", "string", ["standard", "scientific", "engineering", "compact"], "standard");
 +
            internalSlots.notation = notation;
 +
            SetNumberFormatDigitOptions(internalSlots, options, mnfdDefault, mxfdDefault, notation);
 +
            var compactDisplay = GetOption(options, "compactDisplay", "string", ["short", "long"], "short");
 +
            if (notation === "compact") {
 +
                internalSlots.compactDisplay = compactDisplay;
 +
            }
 +
            var useGrouping = GetOption(options, "useGrouping", "boolean", void 0, true);
 +
            internalSlots.useGrouping = useGrouping;
 +
            var signDisplay = GetOption(options, "signDisplay", "string", ["auto", "never", "always", "exceptZero"], "auto");
 +
            internalSlots.signDisplay = signDisplay;
 +
            return nf;
 +
        }
 +
         function LookupSupportedLocales(availableLocales, requestedLocales) {
 +
            var subset = [];
 +
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
 +
                var locale = requestedLocales_1[_i];
 +
                var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
 +
                var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
 +
                if (availableLocale) {
 +
                    subset.push(availableLocale);
 +
                }
 +
            }
 +
            return subset;
 +
        }
 +
        function SupportedLocales(availableLocales, requestedLocales, options) {
 +
             var matcher = "best fit";
 +
             if (options !== void 0) {
 +
                options = ToObject(options);
 +
                matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit");
 +
            }
 +
            if (matcher === "best fit") {
 +
                return LookupSupportedLocales(availableLocales, requestedLocales);
 +
             }
 +
            return LookupSupportedLocales(availableLocales, requestedLocales);
 +
        }
 +
        var MissingLocaleDataError = function (_super) {
 +
            __extends(MissingLocaleDataError2, _super);
 +
             function MissingLocaleDataError2() {
 +
                var _this = _super !== null && _super.apply(this, arguments) || this;
 +
                _this.type = "MISSING_LOCALE_DATA";
 +
                return _this;
 +
            }
 +
            return MissingLocaleDataError2;
 +
        }(Error);
 +
        var currency_digits_exports = {};
 +
         __export(currency_digits_exports, {
 +
            ADP: function () {
 +
                return ADP;
 +
            },
 +
            AFN: function () {
 +
                return AFN;
 +
            },
 +
            ALL: function () {
 +
                return ALL;
 +
            },
 +
            AMD: function () {
 +
                return AMD;
 +
            },
 +
            BHD: function () {
 +
                return BHD;
 +
            },
 +
            BIF: function () {
 +
                return BIF;
 +
            },
 +
            BYN: function () {
 +
                return BYN;
 +
            },
 +
            BYR: function () {
 +
                return BYR;
 +
            },
 +
            CAD: function () {
 +
                return CAD;
 +
            },
 +
            CHF: function () {
 +
                return CHF;
 +
            },
 +
            CLF: function () {
 +
                return CLF;
 +
            },
 +
            CLP: function () {
 +
                return CLP;
 +
            },
 +
            COP: function () {
 +
                return COP;
 +
            },
 +
            CRC: function () {
 +
                return CRC;
 +
            },
 +
            CZK: function () {
 +
                return CZK;
 +
            },
 +
            DEFAULT: function () {
 +
                return DEFAULT;
 +
            },
 +
            DJF: function () {
 +
                return DJF;
 +
            },
 +
            DKK: function () {
 +
                return DKK;
 +
            },
 +
            ESP: function () {
 +
                return ESP;
 +
            },
 +
            GNF: function () {
 +
                return GNF;
 +
            },
 +
            GYD: function () {
 +
                return GYD;
 +
            },
 +
            HUF: function () {
 +
                return HUF;
 +
            },
 +
            IDR: function () {
 +
                return IDR;
 +
            },
 +
            IQD: function () {
 +
                return IQD;
 +
            },
 +
            IRR: function () {
 +
                return IRR;
 +
            },
 +
            ISK: function () {
 +
                return ISK;
 +
            },
 +
            ITL: function () {
 +
                return ITL;
 +
            },
 +
            JOD: function () {
 +
                return JOD;
 +
            },
 +
            JPY: function () {
 +
                return JPY;
 +
            },
 +
            KMF: function () {
 +
                return KMF;
 +
            },
 +
            KPW: function () {
 +
                return KPW;
 +
            },
 +
            KRW: function () {
 +
                return KRW;
 +
            },
 +
            KWD: function () {
 +
                return KWD;
 +
            },
 +
            LAK: function () {
 +
                return LAK;
 +
            },
 +
            LBP: function () {
 +
                return LBP;
 +
            },
 +
            LUF: function () {
 +
                return LUF;
 +
            },
 +
            LYD: function () {
 +
                return LYD;
 +
            },
 +
            MGA: function () {
 +
                return MGA;
 +
            },
 +
            MGF: function () {
 +
                return MGF;
 +
            },
 +
            MMK: function () {
 +
                return MMK;
 +
            },
 +
            MNT: function () {
 +
                return MNT;
 +
            },
 +
            MRO: function () {
 +
                return MRO;
 +
            },
 +
            MUR: function () {
 +
                return MUR;
 +
            },
 +
            NOK: function () {
 +
                return NOK;
 +
            },
 +
            OMR: function () {
 +
                return OMR;
 +
            },
 +
            PKR: function () {
 +
                return PKR;
 +
            },
 +
            PYG: function () {
 +
                return PYG;
 +
            },
 +
            RSD: function () {
 +
                return RSD;
 +
            },
 +
            RWF: function () {
 +
                return RWF;
 +
            },
 +
            SEK: function () {
 +
                return SEK;
 +
            },
 +
            SLL: function () {
 +
                return SLL;
 +
            },
 +
            SOS: function () {
 +
                return SOS;
 +
            },
 +
            STD: function () {
 +
                return STD;
 +
            },
 +
            SYP: function () {
 +
                return SYP;
 +
            },
 +
            TMM: function () {
 +
                return TMM;
 +
            },
 +
            TND: function () {
 +
                return TND;
 +
            },
 +
            TRL: function () {
 +
                return TRL;
 +
            },
 +
            TWD: function () {
 +
                return TWD;
 +
            },
 +
            TZS: function () {
 +
                return TZS;
 +
            },
 +
            UGX: function () {
 +
                return UGX;
 +
            },
 +
            UYI: function () {
 +
                return UYI;
 +
            },
 +
            UYW: function () {
 +
                return UYW;
 +
            },
 +
            UZS: function () {
 +
                return UZS;
 +
            },
 +
            VEF: function () {
 +
                return VEF;
 +
            },
 +
            VND: function () {
 +
                return VND;
 +
            },
 +
            VUV: function () {
 +
                return VUV;
 +
            },
 +
            XAF: function () {
 +
                return XAF;
 +
            },
 +
            XOF: function () {
 +
                return XOF;
 +
            },
 +
            XPF: function () {
 +
                return XPF;
 +
            },
 +
            YER: function () {
 +
                return YER;
 +
            },
 +
            ZMK: function () {
 +
                return ZMK;
 +
            },
 +
            ZWD: function () {
 +
                return ZWD;
 +
            },
 +
            "default": function () {
 +
                return currency_digits_default;
 +
            }
 +
        });
 +
        var ADP = 0;
 +
        var AFN = 0;
 +
        var ALL = 0;
 +
        var AMD = 2;
 +
        var BHD = 3;
 +
        var BIF = 0;
 +
        var BYN = 2;
 +
        var BYR = 0;
 +
        var CAD = 2;
 +
        var CHF = 2;
 +
        var CLF = 4;
 +
        var CLP = 0;
 +
        var COP = 2;
 +
        var CRC = 2;
 +
        var CZK = 2;
 +
        var DEFAULT = 2;
 +
        var DJF = 0;
 +
        var DKK = 2;
 +
        var ESP = 0;
 +
        var GNF = 0;
 +
        var GYD = 2;
 +
        var HUF = 2;
 +
        var IDR = 2;
 +
        var IQD = 0;
 +
        var IRR = 0;
 +
        var ISK = 0;
 +
        var ITL = 0;
 +
        var JOD = 3;
 +
        var JPY = 0;
 +
        var KMF = 0;
 +
        var KPW = 0;
 +
        var KRW = 0;
 +
        var KWD = 3;
 +
        var LAK = 0;
 +
        var LBP = 0;
 +
        var LUF = 0;
 +
        var LYD = 3;
 +
        var MGA = 0;
 +
        var MGF = 0;
 +
        var MMK = 0;
 +
        var MNT = 2;
 +
        var MRO = 0;
 +
        var MUR = 2;
 +
        var NOK = 2;
 +
        var OMR = 3;
 +
        var PKR = 2;
 +
        var PYG = 0;
 +
        var RSD = 0;
 +
        var RWF = 0;
 +
        var SEK = 2;
 +
        var SLL = 0;
 +
        var SOS = 0;
 +
        var STD = 0;
 +
        var SYP = 0;
 +
        var TMM = 0;
 +
        var TND = 3;
 +
        var TRL = 0;
 +
        var TWD = 2;
 +
        var TZS = 2;
 +
        var UGX = 0;
 +
        var UYI = 0;
 +
        var UYW = 4;
 +
        var UZS = 2;
 +
        var VEF = 2;
 +
        var VND = 0;
 +
        var VUV = 0;
 +
        var XAF = 0;
 +
        var XOF = 0;
 +
        var XPF = 0;
 +
        var YER = 0;
 +
        var ZMK = 0;
 +
        var ZWD = 0;
 +
        var currency_digits_default = { ADP: ADP, AFN: AFN, ALL: ALL, AMD: AMD, BHD: BHD, BIF: BIF, BYN: BYN, BYR: BYR, CAD: CAD, CHF: CHF, CLF: CLF, CLP: CLP, COP: COP, CRC: CRC, CZK: CZK, DEFAULT: DEFAULT, DJF: DJF, DKK: DKK, ESP: ESP, GNF: GNF, GYD: GYD, HUF: HUF, IDR: IDR, IQD: IQD, IRR: IRR, ISK: ISK, ITL: ITL, JOD: JOD, JPY: JPY, KMF: KMF, KPW: KPW, KRW: KRW, KWD: KWD, LAK: LAK, LBP: LBP, LUF: LUF, LYD: LYD, MGA: MGA, MGF: MGF, MMK: MMK, MNT: MNT, MRO: MRO, MUR: MUR, NOK: NOK, OMR: OMR, PKR: PKR, PYG: PYG, RSD: RSD, RWF: RWF, SEK: SEK, SLL: SLL, SOS: SOS, STD: STD, SYP: SYP, TMM: TMM, TND: TND, TRL: TRL, TWD: TWD, TZS: TZS, UGX: UGX, UYI: UYI, UYW: UYW, UZS: UZS, VEF: VEF, VND: VND, VUV: VUV, XAF: XAF, XOF: XOF, XPF: XPF, YER: YER, ZMK: ZMK, ZWD: ZWD };
 +
        var names = ["adlm", "ahom", "arab", "arabext", "armn", "armnlow", "bali", "beng", "bhks", "brah", "cakm", "cham", "cyrl", "deva", "diak", "ethi", "fullwide", "geor", "gong", "gonm", "grek", "greklow", "gujr", "guru", "hanidays", "hanidec", "hans", "hansfin", "hant", "hantfin", "hebr", "hmng", "hmnp", "java", "jpan", "jpanfin", "jpanyear", "kali", "khmr", "knda", "lana", "lanatham", "laoo", "latn", "lepc", "limb", "mathbold", "mathdbl", "mathmono", "mathsanb", "mathsans", "mlym", "modi", "mong", "mroo", "mtei", "mymr", "mymrshan", "mymrtlng", "newa", "nkoo", "olck", "orya", "osma", "rohg", "roman", "romanlow", "saur", "segment", "shrd", "sind", "sinh", "sora", "sund", "takr", "talu", "taml", "tamldec", "telu", "thai", "tibt", "tirh", "vaii", "wara", "wcho"];
 +
        var internalSlotMap = new WeakMap();
 +
        function getInternalSlots(x) {
 +
             var internalSlots = internalSlotMap.get(x);
 +
            if (!internalSlots) {
 +
                internalSlots = Object.create(null);
 +
                internalSlotMap.set(x, internalSlots);
 +
            }
 +
            return internalSlots;
 
         }
 
         }
         // d. Let exoticToPrim be ? GetMethod(input, @@toPrimitive).
+
         var numberingSystemNames = names;
         var exoticToPrim = typeof self.Symbol === 'function' && typeof self.Symbol.toPrimitive === 'symbol' ? GetMethod(input, self.Symbol.toPrimitive) : undefined;
+
         var RESOLVED_OPTIONS_KEYS = [
        // e. If exoticToPrim is not undefined, then
+
            "locale",
        if (exoticToPrim !== undefined) {
+
            "numberingSystem",
             // i. Let result be ? Call(exoticToPrim, input, « hint »).
+
            "style",
             var result = Call(exoticToPrim, input, [hint]);
+
            "currency",
            // ii. If Type(result) is not Object, return result.
+
            "currencyDisplay",
             if (Type(result) !== 'object') {
+
            "currencySign",
                 return result;
+
            "unit",
 +
            "unitDisplay",
 +
            "minimumIntegerDigits",
 +
            "minimumFractionDigits",
 +
            "maximumFractionDigits",
 +
            "minimumSignificantDigits",
 +
             "maximumSignificantDigits",
 +
            "useGrouping",
 +
             "notation",
 +
            "compactDisplay",
 +
            "signDisplay"
 +
        ];
 +
        var NumberFormat = function (locales, options) {
 +
             if (!this || !OrdinaryHasInstance(NumberFormat, this)) {
 +
                 return new NumberFormat(locales, options);
 
             }
 
             }
             // iii. Throw a TypeError exception.
+
             InitializeNumberFormat(this, locales, options, {
             throw new TypeError('Cannot convert exotic object to primitive.');
+
                getInternalSlots: getInternalSlots,
 +
                localeData: NumberFormat.localeData,
 +
                availableLocales: NumberFormat.availableLocales,
 +
                getDefaultLocale: NumberFormat.getDefaultLocale,
 +
                currencyDigitsData: currency_digits_exports,
 +
                numberingSystemNames: numberingSystemNames
 +
            });
 +
            var internalSlots = getInternalSlots(this);
 +
            var dataLocale = internalSlots.dataLocale;
 +
             var dataLocaleData = NumberFormat.localeData[dataLocale];
 +
            invariant(dataLocaleData !== void 0, "Cannot load locale-dependent data for " + dataLocale + ".");
 +
            internalSlots.pl = new Intl.PluralRules(dataLocale, {
 +
                minimumFractionDigits: internalSlots.minimumFractionDigits,
 +
                maximumFractionDigits: internalSlots.maximumFractionDigits,
 +
                minimumIntegerDigits: internalSlots.minimumIntegerDigits,
 +
                minimumSignificantDigits: internalSlots.minimumSignificantDigits,
 +
                maximumSignificantDigits: internalSlots.maximumSignificantDigits
 +
            });
 +
            return this;
 +
        };
 +
        function formatToParts2(x) {
 +
            return FormatNumericToParts(this, toNumeric(x), {
 +
                getInternalSlots: getInternalSlots
 +
            });
 +
        }
 +
        try {
 +
            Object.defineProperty(formatToParts2, "name", {
 +
                value: "formatToParts",
 +
                enumerable: false,
 +
                writable: false,
 +
                configurable: true
 +
            });
 
         }
 
         }
         // f. If hint is "default", set hint to "number".
+
         catch (e) {
        if (hint === 'default') {
 
            hint = 'number';
 
 
         }
 
         }
         // g. Return ? OrdinaryToPrimitive(input, hint).
+
         defineProperty(NumberFormat.prototype, "formatToParts", {
        return OrdinaryToPrimitive(input, hint);
+
            value: formatToParts2
    }
+
        });
    // 3. Return input
+
        defineProperty(NumberFormat.prototype, "resolvedOptions", {
    return input;
+
            value: function resolvedOptions() {
}
+
                if (typeof this !== "object" || !OrdinaryHasInstance(NumberFormat, this)) {
 
+
                    throw TypeError("Method Intl.NumberFormat.prototype.resolvedOptions called on incompatible receiver");
// _ESAbstract.ToString
+
                }
/* global Type, ToPrimitive */
+
                var internalSlots = getInternalSlots(this);
// 7.1.12. ToString ( argument )
+
                var ro = {};
// The abstract operation ToString converts argument to a value of type String according to Table 11:
+
                for (var _i = 0, RESOLVED_OPTIONS_KEYS_1 = RESOLVED_OPTIONS_KEYS; _i < RESOLVED_OPTIONS_KEYS_1.length; _i++) {
// Table 11: ToString Conversions
+
                    var key = RESOLVED_OPTIONS_KEYS_1[_i];
/*
+
                    var value = internalSlots[key];
|---------------|--------------------------------------------------------|
+
                    if (value !== void 0) {
| Argument Type | Result                                                |
+
                        ro[key] = value;
|---------------|--------------------------------------------------------|
+
                    }
| Undefined    | Return "undefined".                                   |
+
                }
|---------------|--------------------------------------------------------|
+
                return ro;
| Null            | Return "null".                                        |
+
            }
|---------------|--------------------------------------------------------|
+
         });
| Boolean      | If argument is true, return "true".                    |
+
         var formatDescriptor = {
|              | If argument is false, return "false".                  |
+
            enumerable: false,
|---------------|--------------------------------------------------------|
 
| Number        | Return NumberToString(argument).                      |
 
|---------------|--------------------------------------------------------|
 
| String        | Return argument.                                      |
 
|---------------|--------------------------------------------------------|
 
| Symbol        | Throw a TypeError exception.                          |
 
|---------------|--------------------------------------------------------|
 
| Object        | Apply the following steps:                             |
 
|              | Let primValue be ? ToPrimitive(argument, hint String). |
 
|              | Return ? ToString(primValue).                          |
 
|---------------|--------------------------------------------------------|
 
*/
 
function ToString(argument) { // eslint-disable-line no-unused-vars
 
    switch(Type(argument)) {
 
        case 'symbol':
 
            throw new TypeError('Cannot convert a Symbol value to a string');
 
        case 'object':
 
            var primValue = ToPrimitive(argument, String);
 
            return ToString(primValue); // eslint-disable-line no-unused-vars
 
        default:
 
            return String(argument);
 
    }
 
}
 
 
 
// _ESAbstract.ToPropertyKey
 
/* globals ToPrimitive, Type, ToString */
 
// 7.1.14. ToPropertyKey ( argument )
 
function ToPropertyKey(argument) { // eslint-disable-line no-unused-vars
 
    // 1. Let key be ? ToPrimitive(argument, hint String).
 
    var key = ToPrimitive(argument, String);
 
    // 2. If Type(key) is Symbol, then
 
    if (Type(key) === 'symbol') {
 
        // a. Return key.
 
        return key;
 
    }
 
    // 3. Return ! ToString(key).
 
    return ToString(key);
 
}
 
 
 
// globalThis
 
// 18.1.1 globalThis
 
(function() {
 
 
 
    /*
 
         polyfill.io - This code ensures that the referenced object is not an
 
        object which is not infact the global object. This is needed because
 
        the Firefox Content Script environment does some funky stuff
 
        such as creating a frozen `self` global object which is not the same
 
        `self` global object that is used in browser environments.
 
        https://developer.mozilla.org/en-US/docs/Archive/Add-ons/Add-on_SDK/Guides/Content_Scripts/self
 
 
 
        As well as the above, Firefox Content Scripts run in a secure sandbox
 
        which returns `[object Opaque]` when accessing globals such as Object
 
        instead of the actual global Object object.
 
        https://developer.mozilla.org/en-US/docs/Mozilla/Tech/Xray_vision#Xrays_for_JavaScript_objects
 
    */
 
    function isNotFirefoxContentScriptEnviroment(root) {
 
        return root && root.Object == Object && root;
 
    }
 
 
 
    var freeGlobalThis = isNotFirefoxContentScriptEnviroment(
 
        typeof globalThis == "object" && globalThis
 
    );
 
    var freeWindow = isNotFirefoxContentScriptEnviroment(
 
         typeof window == "object" && window
 
    );
 
    var freeSelf = isNotFirefoxContentScriptEnviroment(
 
        typeof self == "object" && self
 
    );
 
    var freeGlobal = isNotFirefoxContentScriptEnviroment(
 
        typeof global == "object" && global // eslint-disable-line no-undef
 
    );
 
 
 
    var globalThis =
 
        // Modern browsers which already have globalThis but are running this polyfill anyway.
 
        freeGlobalThis ||
 
        // All browsers which are running the polyfill in their main thread.
 
        freeWindow ||
 
        // All browsers which are running the polyfill in a Worker environment such as Web Workers or Service Workers.
 
        freeSelf ||
 
        // NodeJS
 
        freeGlobal ||
 
        // Everything else so long as they are not running with a Content Security Policy which forbids using `Function`.
 
        // If you reach here and have CSP forbidding `Function`, please open an issue on https://github.com/Financial-Times/polyfill-library
 
        Function("return this")();
 
 
 
    // Export the object
 
    try {
 
        Object.defineProperty(globalThis, "globalThis", {
 
 
             configurable: true,
 
             configurable: true,
 +
            get: function () {
 +
                if (typeof this !== "object" || !OrdinaryHasInstance(NumberFormat, this)) {
 +
                    throw TypeError("Intl.NumberFormat format property accessor called on incompatible receiver");
 +
                }
 +
                var internalSlots = getInternalSlots(this);
 +
                var numberFormat = this;
 +
                var boundFormat = internalSlots.boundFormat;
 +
                if (boundFormat === void 0) {
 +
                    boundFormat = function (value) {
 +
                        var x = toNumeric(value);
 +
                        return numberFormat.formatToParts(x).map(function (x2) {
 +
                            return x2.value;
 +
                        }).join("");
 +
                    };
 +
                    try {
 +
                        Object.defineProperty(boundFormat, "name", {
 +
                            configurable: true,
 +
                            enumerable: false,
 +
                            writable: false,
 +
                            value: ""
 +
                        });
 +
                    }
 +
                    catch (e) {
 +
                    }
 +
                    internalSlots.boundFormat = boundFormat;
 +
                }
 +
                return boundFormat;
 +
            }
 +
        };
 +
        try {
 +
            Object.defineProperty(formatDescriptor.get, "name", {
 +
                configurable: true,
 +
                enumerable: false,
 +
                writable: false,
 +
                value: "get format"
 +
            });
 +
        }
 +
        catch (e) {
 +
        }
 +
        Object.defineProperty(NumberFormat.prototype, "format", formatDescriptor);
 +
        defineProperty(NumberFormat, "supportedLocalesOf", {
 +
            value: function supportedLocalesOf(locales, options) {
 +
                return SupportedLocales(NumberFormat.availableLocales, CanonicalizeLocaleList(locales), options);
 +
            }
 +
        });
 +
        NumberFormat.__addLocaleData = function __addLocaleData() {
 +
            var data = [];
 +
            for (var _i = 0; _i < arguments.length; _i++) {
 +
                data[_i] = arguments[_i];
 +
            }
 +
            for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {
 +
                var _b = data_1[_a], d = _b.data, locale = _b.locale;
 +
                var minimizedLocale = new Intl.Locale(locale).minimize().toString();
 +
                NumberFormat.localeData[locale] = NumberFormat.localeData[minimizedLocale] = d;
 +
                NumberFormat.availableLocales.add(minimizedLocale);
 +
                NumberFormat.availableLocales.add(locale);
 +
                if (!NumberFormat.__defaultLocale) {
 +
                    NumberFormat.__defaultLocale = minimizedLocale;
 +
                }
 +
            }
 +
        };
 +
        NumberFormat.__addUnitData = function __addUnitData(locale, unitsData) {
 +
            var _a = NumberFormat.localeData, _b = locale, existingData = _a[_b];
 +
            if (!existingData) {
 +
                throw new Error('Locale data for "' + locale + '" has not been loaded in NumberFormat. \nPlease __addLocaleData before adding additional unit data');
 +
            }
 +
            for (var unit in unitsData.simple) {
 +
                existingData.units.simple[unit] = unitsData.simple[unit];
 +
            }
 +
            for (var unit in unitsData.compound) {
 +
                existingData.units.compound[unit] = unitsData.compound[unit];
 +
            }
 +
        };
 +
        NumberFormat.__defaultLocale = "";
 +
        NumberFormat.localeData = {};
 +
        NumberFormat.availableLocales = new Set();
 +
        NumberFormat.getDefaultLocale = function () {
 +
            return NumberFormat.__defaultLocale;
 +
        };
 +
        NumberFormat.polyfilled = true;
 +
        function toNumeric(val) {
 +
            if (typeof val === "bigint") {
 +
                return val;
 +
            }
 +
            return ToNumber(val);
 +
        }
 +
        try {
 +
            if (typeof Symbol !== "undefined") {
 +
                Object.defineProperty(NumberFormat.prototype, Symbol.toStringTag, {
 +
                    configurable: true,
 +
                    enumerable: false,
 +
                    writable: false,
 +
                    value: "Intl.NumberFormat"
 +
                });
 +
            }
 +
            Object.defineProperty(NumberFormat.prototype.constructor, "length", {
 +
                configurable: true,
 +
                enumerable: false,
 +
                writable: false,
 +
                value: 0
 +
            });
 +
            Object.defineProperty(NumberFormat.supportedLocalesOf, "length", {
 +
                configurable: true,
 +
                enumerable: false,
 +
                writable: false,
 +
                value: 1
 +
            });
 +
            Object.defineProperty(NumberFormat, "prototype", {
 +
                configurable: false,
 +
                enumerable: false,
 +
                writable: false,
 +
                value: NumberFormat.prototype
 +
            });
 +
        }
 +
        catch (e) {
 +
        }
 +
        function toLocaleString(x, locales, options) {
 +
            var numberFormat = new NumberFormat(locales, options);
 +
            return numberFormat.format(x);
 +
        }
 +
        function onlySupportsEn() {
 +
            return !Intl.NumberFormat.polyfilled && !Intl.NumberFormat.supportedLocalesOf(["es"]).length;
 +
        }
 +
        function supportsES2020() {
 +
            try {
 +
                var s = new Intl.NumberFormat("en", {
 +
                    style: "unit",
 +
                    unit: "bit",
 +
                    unitDisplay: "long",
 +
                    notation: "scientific"
 +
                }).format(1e4);
 +
                if (s !== "1E4 bits") {
 +
                    return false;
 +
                }
 +
            }
 +
            catch (e) {
 +
                return false;
 +
            }
 +
            return true;
 +
        }
 +
        function shouldPolyfill() {
 +
            return typeof Intl === "undefined" || !("NumberFormat" in Intl) || !supportsES2020() || onlySupportsEn();
 +
        }
 +
        if (shouldPolyfill()) {
 +
            defineProperty(Intl, "NumberFormat", { value: NumberFormat });
 +
            defineProperty(Number.prototype, "toLocaleString", {
 +
                value: function toLocaleString2(locales, options) {
 +
                    return toLocaleString(this, locales, options);
 +
                }
 +
            });
 +
        }
 +
    })();
 +
    (function () {
 +
        var extendStatics = function (d, b) {
 +
            extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d2, b2) {
 +
                d2.__proto__ = b2;
 +
            } || function (d2, b2) {
 +
                for (var p in b2)
 +
                    if (Object.prototype.hasOwnProperty.call(b2, p))
 +
                        d2[p] = b2[p];
 +
            };
 +
            return extendStatics(d, b);
 +
        };
 +
        function __extends(d, b) {
 +
            if (typeof b !== "function" && b !== null)
 +
                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
 +
            extendStatics(d, b);
 +
            function __() {
 +
                this.constructor = d;
 +
            }
 +
            d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
 +
        }
 +
        var __assign = function () {
 +
            __assign = Object.assign || function __assign2(t) {
 +
                for (var s, i = 1, n = arguments.length; i < n; i++) {
 +
                    s = arguments[i];
 +
                    for (var p in s)
 +
                        if (Object.prototype.hasOwnProperty.call(s, p))
 +
                            t[p] = s[p];
 +
                }
 +
                return t;
 +
            };
 +
            return __assign.apply(this, arguments);
 +
        };
 +
        function __rest(s, e) {
 +
            var t = {};
 +
            for (var p in s)
 +
                if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
 +
                    t[p] = s[p];
 +
            if (s != null && typeof Object.getOwnPropertySymbols === "function")
 +
                for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
 +
                    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
 +
                        t[p[i]] = s[p[i]];
 +
                }
 +
            return t;
 +
        }
 +
        function defineProperty(target, name, _a) {
 +
            var value = _a.value;
 +
            Object.defineProperty(target, name, {
 +
                configurable: true,
 +
                enumerable: false,
 +
                writable: true,
 +
                value: value
 +
            });
 +
        }
 +
        var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;
 +
        function invariant(condition, message, Err) {
 +
            if (Err === void 0) {
 +
                Err = Error;
 +
            }
 +
            if (!condition) {
 +
                throw new Err(message);
 +
            }
 +
        }
 +
        var DATE_TIME_PROPS = [
 +
            "weekday",
 +
            "era",
 +
            "year",
 +
            "month",
 +
            "day",
 +
            "hour",
 +
            "minute",
 +
            "second",
 +
            "timeZoneName"
 +
        ];
 +
        var removalPenalty = 120;
 +
        var additionPenalty = 20;
 +
        var differentNumericTypePenalty = 15;
 +
        var longLessPenalty = 8;
 +
        var longMorePenalty = 6;
 +
        var shortLessPenalty = 6;
 +
        var shortMorePenalty = 3;
 +
        var RangePatternType;
 +
        (function (RangePatternType2) {
 +
            RangePatternType2["startRange"] = "startRange";
 +
            RangePatternType2["shared"] = "shared";
 +
            RangePatternType2["endRange"] = "endRange";
 +
        })(RangePatternType || (RangePatternType = {}));
 +
        var 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;
 +
        var expPatternTrimmer = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
 +
        function matchSkeletonPattern(match, result) {
 +
            var len = match.length;
 +
            switch (match[0]) {
 +
                case "G":
 +
                    result.era = len === 4 ? "long" : len === 5 ? "narrow" : "short";
 +
                    return "{era}";
 +
                case "y":
 +
                case "Y":
 +
                case "u":
 +
                case "U":
 +
                case "r":
 +
                    result.year = len === 2 ? "2-digit" : "numeric";
 +
                    return "{year}";
 +
                case "q":
 +
                case "Q":
 +
                    throw new RangeError("`w/Q` (quarter) patterns are not supported");
 +
                case "M":
 +
                case "L":
 +
                    result.month = ["numeric", "2-digit", "short", "long", "narrow"][len - 1];
 +
                    return "{month}";
 +
                case "w":
 +
                case "W":
 +
                    throw new RangeError("`w/W` (week of year) patterns are not supported");
 +
                case "d":
 +
                    result.day = ["numeric", "2-digit"][len - 1];
 +
                    return "{day}";
 +
                case "D":
 +
                case "F":
 +
                case "g":
 +
                    result.day = "numeric";
 +
                    return "{day}";
 +
                case "E":
 +
                    result.weekday = len === 4 ? "long" : len === 5 ? "narrow" : "short";
 +
                    return "{weekday}";
 +
                case "e":
 +
                    result.weekday = [
 +
                        void 0,
 +
                        void 0,
 +
                        "short",
 +
                        "long",
 +
                        "narrow",
 +
                        "short"
 +
                    ][len - 1];
 +
                    return "{weekday}";
 +
                case "c":
 +
                    result.weekday = [
 +
                        void 0,
 +
                        void 0,
 +
                        "short",
 +
                        "long",
 +
                        "narrow",
 +
                        "short"
 +
                    ][len - 1];
 +
                    return "{weekday}";
 +
                case "a":
 +
                case "b":
 +
                case "B":
 +
                    result.hour12 = true;
 +
                    return "{ampm}";
 +
                case "h":
 +
                    result.hour = ["numeric", "2-digit"][len - 1];
 +
                    result.hour12 = true;
 +
                    return "{hour}";
 +
                case "H":
 +
                    result.hour = ["numeric", "2-digit"][len - 1];
 +
                    return "{hour}";
 +
                case "K":
 +
                    result.hour = ["numeric", "2-digit"][len - 1];
 +
                    result.hour12 = true;
 +
                    return "{hour}";
 +
                case "k":
 +
                    result.hour = ["numeric", "2-digit"][len - 1];
 +
                    return "{hour}";
 +
                case "j":
 +
                case "J":
 +
                case "C":
 +
                    throw new RangeError("`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead");
 +
                case "m":
 +
                    result.minute = ["numeric", "2-digit"][len - 1];
 +
                    return "{minute}";
 +
                case "s":
 +
                    result.second = ["numeric", "2-digit"][len - 1];
 +
                    return "{second}";
 +
                case "S":
 +
                case "A":
 +
                    result.second = "numeric";
 +
                    return "{second}";
 +
                case "z":
 +
                case "Z":
 +
                case "O":
 +
                case "v":
 +
                case "V":
 +
                case "X":
 +
                case "x":
 +
                    result.timeZoneName = len < 4 ? "short" : "long";
 +
                    return "{timeZoneName}";
 +
            }
 +
            return "";
 +
        }
 +
        function skeletonTokenToTable2(c) {
 +
            switch (c) {
 +
                case "G":
 +
                    return "era";
 +
                case "y":
 +
                case "Y":
 +
                case "u":
 +
                case "U":
 +
                case "r":
 +
                    return "year";
 +
                case "M":
 +
                case "L":
 +
                    return "month";
 +
                case "d":
 +
                case "D":
 +
                case "F":
 +
                case "g":
 +
                    return "day";
 +
                case "a":
 +
                case "b":
 +
                case "B":
 +
                    return "ampm";
 +
                case "h":
 +
                case "H":
 +
                case "K":
 +
                case "k":
 +
                    return "hour";
 +
                case "m":
 +
                    return "minute";
 +
                case "s":
 +
                case "S":
 +
                case "A":
 +
                    return "second";
 +
                default:
 +
                    throw new RangeError("Invalid range pattern token");
 +
            }
 +
        }
 +
        function processDateTimePattern(pattern, result) {
 +
            var literals = [];
 +
            var pattern12 = pattern.replace(/'{2}/g, "{apostrophe}").replace(/'(.*?)'/g, function (_, literal) {
 +
                literals.push(literal);
 +
                return "$$" + (literals.length - 1) + "$$";
 +
            }).replace(DATE_TIME_REGEX, function (m) {
 +
                return matchSkeletonPattern(m, result || {});
 +
            });
 +
            if (literals.length) {
 +
                pattern12 = pattern12.replace(/\$\$(\d+)\$\$/g, function (_, i) {
 +
                    return literals[+i];
 +
                }).replace(/\{apostrophe\}/g, "'");
 +
            }
 +
            return [
 +
                pattern12.replace(/([\s\uFEFF\xA0])\{ampm\}([\s\uFEFF\xA0])/, "$1").replace("{ampm}", "").replace(expPatternTrimmer, ""),
 +
                pattern12
 +
            ];
 +
        }
 +
        function parseDateTimeSkeleton(skeleton, rawPattern, rangePatterns, intervalFormatFallback) {
 +
            if (rawPattern === void 0) {
 +
                rawPattern = skeleton;
 +
            }
 +
            var result = {
 +
                pattern: "",
 +
                pattern12: "",
 +
                skeleton: skeleton,
 +
                rawPattern: rawPattern,
 +
                rangePatterns: {},
 +
                rangePatterns12: {}
 +
            };
 +
            if (rangePatterns) {
 +
                for (var k in rangePatterns) {
 +
                    var key = skeletonTokenToTable2(k);
 +
                    var rawPattern_1 = rangePatterns[k];
 +
                    var intervalResult = {
 +
                        patternParts: []
 +
                    };
 +
                    var _a = processDateTimePattern(rawPattern_1, intervalResult), pattern_1 = _a[0], pattern12_1 = _a[1];
 +
                    result.rangePatterns[key] = __assign(__assign({}, intervalResult), { patternParts: splitRangePattern(pattern_1) });
 +
                    result.rangePatterns12[key] = __assign(__assign({}, intervalResult), { patternParts: splitRangePattern(pattern12_1) });
 +
                }
 +
            }
 +
            else if (intervalFormatFallback) {
 +
                var patternParts = splitFallbackRangePattern(intervalFormatFallback);
 +
                result.rangePatterns["default"] = {
 +
                    patternParts: patternParts
 +
                };
 +
                result.rangePatterns12["default"] = {
 +
                    patternParts: patternParts
 +
                };
 +
            }
 +
            skeleton.replace(DATE_TIME_REGEX, function (m) {
 +
                return matchSkeletonPattern(m, result);
 +
            });
 +
            var _b = processDateTimePattern(rawPattern), pattern = _b[0], pattern12 = _b[1];
 +
            result.pattern = pattern;
 +
            result.pattern12 = pattern12;
 +
            return result;
 +
        }
 +
        function splitFallbackRangePattern(pattern) {
 +
            var parts = pattern.split(/(\{[0|1]\})/g).filter(Boolean);
 +
            return parts.map(function (pattern2) {
 +
                switch (pattern2) {
 +
                    case "{0}":
 +
                        return {
 +
                            source: RangePatternType.startRange,
 +
                            pattern: pattern2
 +
                        };
 +
                    case "{1}":
 +
                        return {
 +
                            source: RangePatternType.endRange,
 +
                            pattern: pattern2
 +
                        };
 +
                    default:
 +
                        return {
 +
                            source: RangePatternType.shared,
 +
                            pattern: pattern2
 +
                        };
 +
                }
 +
            });
 +
        }
 +
        function splitRangePattern(pattern) {
 +
            var PART_REGEX = /\{(.*?)\}/g;
 +
            var parts = {};
 +
            var match;
 +
            var splitIndex = 0;
 +
            while (match = PART_REGEX.exec(pattern)) {
 +
                if (!(match[0] in parts)) {
 +
                    parts[match[0]] = match.index;
 +
                }
 +
                else {
 +
                    splitIndex = match.index;
 +
                    break;
 +
                }
 +
            }
 +
            if (!splitIndex) {
 +
                return [
 +
                    {
 +
                        source: RangePatternType.startRange,
 +
                        pattern: pattern
 +
                    }
 +
                ];
 +
            }
 +
            return [
 +
                {
 +
                    source: RangePatternType.startRange,
 +
                    pattern: pattern.slice(0, splitIndex)
 +
                },
 +
                {
 +
                    source: RangePatternType.endRange,
 +
                    pattern: pattern.slice(splitIndex)
 +
                }
 +
            ];
 +
        }
 +
        function isNumericType(t) {
 +
            return t === "numeric" || t === "2-digit";
 +
        }
 +
        function bestFitFormatMatcherScore(options, format) {
 +
            var score = 0;
 +
            if (options.hour12 && !format.hour12) {
 +
                score -= removalPenalty;
 +
            }
 +
            else if (!options.hour12 && format.hour12) {
 +
                score -= additionPenalty;
 +
            }
 +
            for (var _i = 0, DATE_TIME_PROPS_1 = DATE_TIME_PROPS; _i < DATE_TIME_PROPS_1.length; _i++) {
 +
                var prop = DATE_TIME_PROPS_1[_i];
 +
                var optionsProp = options[prop];
 +
                var formatProp = format[prop];
 +
                if (optionsProp === void 0 && formatProp !== void 0) {
 +
                    score -= additionPenalty;
 +
                }
 +
                else if (optionsProp !== void 0 && formatProp === void 0) {
 +
                    score -= removalPenalty;
 +
                }
 +
                else if (optionsProp !== formatProp) {
 +
                    if (isNumericType(optionsProp) !== isNumericType(formatProp)) {
 +
                        score -= differentNumericTypePenalty;
 +
                    }
 +
                    else {
 +
                        var values = ["2-digit", "numeric", "narrow", "short", "long"];
 +
                        var optionsPropIndex = values.indexOf(optionsProp);
 +
                        var formatPropIndex = values.indexOf(formatProp);
 +
                        var delta = Math.max(-2, Math.min(formatPropIndex - optionsPropIndex, 2));
 +
                        if (delta === 2) {
 +
                            score -= longMorePenalty;
 +
                        }
 +
                        else if (delta === 1) {
 +
                            score -= shortMorePenalty;
 +
                        }
 +
                        else if (delta === -1) {
 +
                            score -= shortLessPenalty;
 +
                        }
 +
                        else if (delta === -2) {
 +
                            score -= longLessPenalty;
 +
                        }
 +
                    }
 +
                }
 +
            }
 +
            return score;
 +
        }
 +
        function BestFitFormatMatcher(options, formats) {
 +
            var bestScore = -Infinity;
 +
            var bestFormat = formats[0];
 +
            invariant(Array.isArray(formats), "formats should be a list of things");
 +
            for (var _i = 0, formats_1 = formats; _i < formats_1.length; _i++) {
 +
                var format = formats_1[_i];
 +
                var score = bestFitFormatMatcherScore(options, format);
 +
                if (score > bestScore) {
 +
                    bestScore = score;
 +
                    bestFormat = format;
 +
                }
 +
            }
 +
            var skeletonFormat = __assign({}, bestFormat);
 +
            var patternFormat = { rawPattern: bestFormat.rawPattern };
 +
            processDateTimePattern(bestFormat.rawPattern, patternFormat);
 +
            for (var prop in skeletonFormat) {
 +
                var skeletonValue = skeletonFormat[prop];
 +
                var patternValue = patternFormat[prop];
 +
                var requestedValue = options[prop];
 +
                if (prop === "minute" || prop === "second") {
 +
                    continue;
 +
                }
 +
                if (!requestedValue) {
 +
                    continue;
 +
                }
 +
                if (isNumericType(patternValue) && !isNumericType(requestedValue)) {
 +
                    continue;
 +
                }
 +
                if (skeletonValue === requestedValue) {
 +
                    continue;
 +
                }
 +
                patternFormat[prop] = requestedValue;
 +
            }
 +
            patternFormat.pattern = skeletonFormat.pattern;
 +
            patternFormat.pattern12 = skeletonFormat.pattern12;
 +
            patternFormat.skeleton = skeletonFormat.skeleton;
 +
            patternFormat.rangePatterns = skeletonFormat.rangePatterns;
 +
            patternFormat.rangePatterns12 = skeletonFormat.rangePatterns12;
 +
            return patternFormat;
 +
        }
 +
        function CanonicalizeLocaleList(locales) {
 +
            return Intl.getCanonicalLocales(locales);
 +
        }
 +
        function CanonicalizeTimeZoneName(tz, _a) {
 +
            var tzData = _a.tzData, uppercaseLinks = _a.uppercaseLinks;
 +
            var uppercasedTz = tz.toUpperCase();
 +
            var uppercasedZones = Object.keys(tzData).reduce(function (all, z) {
 +
                all[z.toUpperCase()] = z;
 +
                return all;
 +
            }, {});
 +
            var ianaTimeZone = uppercaseLinks[uppercasedTz] || uppercasedZones[uppercasedTz];
 +
            if (ianaTimeZone === "Etc/UTC" || ianaTimeZone === "Etc/GMT") {
 +
                return "UTC";
 +
            }
 +
            return ianaTimeZone;
 +
        }
 +
        function ToString(o) {
 +
            if (typeof o === "symbol") {
 +
                throw TypeError("Cannot convert a Symbol value to a string");
 +
            }
 +
            return String(o);
 +
        }
 +
        function ToNumber(val) {
 +
            if (val === void 0) {
 +
                return NaN;
 +
            }
 +
            if (val === null) {
 +
                return 0;
 +
            }
 +
            if (typeof val === "boolean") {
 +
                return val ? 1 : 0;
 +
            }
 +
            if (typeof val === "number") {
 +
                return val;
 +
            }
 +
            if (typeof val === "symbol" || typeof val === "bigint") {
 +
                throw new TypeError("Cannot convert symbol/bigint to number");
 +
            }
 +
            return Number(val);
 +
        }
 +
        function ToInteger(n) {
 +
            var number = ToNumber(n);
 +
            if (isNaN(number) || SameValue(number, -0)) {
 +
                return 0;
 +
            }
 +
            if (isFinite(number)) {
 +
                return number;
 +
            }
 +
            var integer = Math.floor(Math.abs(number));
 +
            if (number < 0) {
 +
                integer = -integer;
 +
            }
 +
            if (SameValue(integer, -0)) {
 +
                return 0;
 +
            }
 +
            return integer;
 +
        }
 +
        function TimeClip(time) {
 +
            if (!isFinite(time)) {
 +
                return NaN;
 +
            }
 +
            if (Math.abs(time) > 8.64 * 1e15) {
 +
                return NaN;
 +
            }
 +
            return ToInteger(time);
 +
        }
 +
        function ToObject(arg) {
 +
            if (arg == null) {
 +
                throw new TypeError("undefined/null cannot be converted to object");
 +
            }
 +
            return Object(arg);
 +
        }
 +
        function SameValue(x, y) {
 +
            if (Object.is) {
 +
                return Object.is(x, y);
 +
            }
 +
            if (x === y) {
 +
                return x !== 0 || 1 / x === 1 / y;
 +
            }
 +
            return x !== x && y !== y;
 +
        }
 +
        function ArrayCreate(len) {
 +
            return new Array(len);
 +
        }
 +
        function Type(x) {
 +
            if (x === null) {
 +
                return "Null";
 +
            }
 +
            if (typeof x === "undefined") {
 +
                return "Undefined";
 +
            }
 +
            if (typeof x === "function" || typeof x === "object") {
 +
                return "Object";
 +
            }
 +
            if (typeof x === "number") {
 +
                return "Number";
 +
            }
 +
            if (typeof x === "boolean") {
 +
                return "Boolean";
 +
            }
 +
            if (typeof x === "string") {
 +
                return "String";
 +
            }
 +
            if (typeof x === "symbol") {
 +
                return "Symbol";
 +
            }
 +
            if (typeof x === "bigint") {
 +
                return "BigInt";
 +
            }
 +
        }
 +
        var MS_PER_DAY = 864e5;
 +
        function mod(x, y) {
 +
            return x - Math.floor(x / y) * y;
 +
        }
 +
        function Day(t) {
 +
            return Math.floor(t / MS_PER_DAY);
 +
        }
 +
        function WeekDay(t) {
 +
            return mod(Day(t) + 4, 7);
 +
        }
 +
        function DayFromYear(y) {
 +
            return Date.UTC(y, 0) / MS_PER_DAY;
 +
        }
 +
        function YearFromTime(t) {
 +
            return new Date(t).getUTCFullYear();
 +
        }
 +
        function DaysInYear(y) {
 +
            if (y % 4 !== 0) {
 +
                return 365;
 +
            }
 +
            if (y % 100 !== 0) {
 +
                return 366;
 +
            }
 +
            if (y % 400 !== 0) {
 +
                return 365;
 +
            }
 +
            return 366;
 +
        }
 +
        function DayWithinYear(t) {
 +
            return Day(t) - DayFromYear(YearFromTime(t));
 +
        }
 +
        function InLeapYear(t) {
 +
            return DaysInYear(YearFromTime(t)) === 365 ? 0 : 1;
 +
        }
 +
        function MonthFromTime(t) {
 +
            var dwy = DayWithinYear(t);
 +
            var leap = InLeapYear(t);
 +
            if (dwy >= 0 && dwy < 31) {
 +
                return 0;
 +
            }
 +
            if (dwy < 59 + leap) {
 +
                return 1;
 +
            }
 +
            if (dwy < 90 + leap) {
 +
                return 2;
 +
            }
 +
            if (dwy < 120 + leap) {
 +
                return 3;
 +
            }
 +
            if (dwy < 151 + leap) {
 +
                return 4;
 +
            }
 +
            if (dwy < 181 + leap) {
 +
                return 5;
 +
            }
 +
            if (dwy < 212 + leap) {
 +
                return 6;
 +
            }
 +
            if (dwy < 243 + leap) {
 +
                return 7;
 +
            }
 +
            if (dwy < 273 + leap) {
 +
                return 8;
 +
            }
 +
            if (dwy < 304 + leap) {
 +
                return 9;
 +
            }
 +
            if (dwy < 334 + leap) {
 +
                return 10;
 +
            }
 +
            if (dwy < 365 + leap) {
 +
                return 11;
 +
            }
 +
            throw new Error("Invalid time");
 +
        }
 +
        function DateFromTime(t) {
 +
            var dwy = DayWithinYear(t);
 +
            var mft = MonthFromTime(t);
 +
            var leap = InLeapYear(t);
 +
            if (mft === 0) {
 +
                return dwy + 1;
 +
            }
 +
            if (mft === 1) {
 +
                return dwy - 30;
 +
            }
 +
            if (mft === 2) {
 +
                return dwy - 58 - leap;
 +
            }
 +
            if (mft === 3) {
 +
                return dwy - 89 - leap;
 +
            }
 +
            if (mft === 4) {
 +
                return dwy - 119 - leap;
 +
            }
 +
            if (mft === 5) {
 +
                return dwy - 150 - leap;
 +
            }
 +
            if (mft === 6) {
 +
                return dwy - 180 - leap;
 +
            }
 +
            if (mft === 7) {
 +
                return dwy - 211 - leap;
 +
            }
 +
            if (mft === 8) {
 +
                return dwy - 242 - leap;
 +
            }
 +
            if (mft === 9) {
 +
                return dwy - 272 - leap;
 +
            }
 +
            if (mft === 10) {
 +
                return dwy - 303 - leap;
 +
            }
 +
            if (mft === 11) {
 +
                return dwy - 333 - leap;
 +
            }
 +
            throw new Error("Invalid time");
 +
        }
 +
        var HOURS_PER_DAY = 24;
 +
        var MINUTES_PER_HOUR = 60;
 +
        var SECONDS_PER_MINUTE = 60;
 +
        var MS_PER_SECOND = 1e3;
 +
        var MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;
 +
        var MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;
 +
        function HourFromTime(t) {
 +
            return mod(Math.floor(t / MS_PER_HOUR), HOURS_PER_DAY);
 +
        }
 +
        function MinFromTime(t) {
 +
            return mod(Math.floor(t / MS_PER_MINUTE), MINUTES_PER_HOUR);
 +
        }
 +
        function SecFromTime(t) {
 +
            return mod(Math.floor(t / MS_PER_SECOND), SECONDS_PER_MINUTE);
 +
        }
 +
        function IsCallable(fn) {
 +
            return typeof fn === "function";
 +
        }
 +
        function OrdinaryHasInstance(C, O, internalSlots) {
 +
            if (!IsCallable(C)) {
 +
                return false;
 +
            }
 +
            if (internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction) {
 +
                var BC = internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction;
 +
                return O instanceof BC;
 +
            }
 +
            if (typeof O !== "object") {
 +
                return false;
 +
            }
 +
            var P = C.prototype;
 +
            if (typeof P !== "object") {
 +
                throw new TypeError("OrdinaryHasInstance called on an object with an invalid prototype property.");
 +
            }
 +
            return Object.prototype.isPrototypeOf.call(P, O);
 +
        }
 +
        function msFromTime(t) {
 +
            return mod(t, MS_PER_SECOND);
 +
        }
 +
        function BasicFormatMatcher(options, formats) {
 +
            var bestScore = -Infinity;
 +
            var bestFormat = formats[0];
 +
            invariant(Array.isArray(formats), "formats should be a list of things");
 +
            for (var _i = 0, formats_1 = formats; _i < formats_1.length; _i++) {
 +
                var format = formats_1[_i];
 +
                var score = 0;
 +
                for (var _a = 0, DATE_TIME_PROPS_1 = DATE_TIME_PROPS; _a < DATE_TIME_PROPS_1.length; _a++) {
 +
                    var prop = DATE_TIME_PROPS_1[_a];
 +
                    var optionsProp = options[prop];
 +
                    var formatProp = format[prop];
 +
                    if (optionsProp === void 0 && formatProp !== void 0) {
 +
                        score -= additionPenalty;
 +
                    }
 +
                    else if (optionsProp !== void 0 && formatProp === void 0) {
 +
                        score -= removalPenalty;
 +
                    }
 +
                    else if (optionsProp !== formatProp) {
 +
                        var values = void 0;
 +
                        if (prop === "fractionalSecondDigits") {
 +
                            values = [1, 2, 3];
 +
                        }
 +
                        else {
 +
                            values = ["2-digit", "numeric", "narrow", "short", "long"];
 +
                        }
 +
                        var optionsPropIndex = values.indexOf(optionsProp);
 +
                        var formatPropIndex = values.indexOf(formatProp);
 +
                        var delta = Math.max(-2, Math.min(formatPropIndex - optionsPropIndex, 2));
 +
                        if (delta === 2) {
 +
                            score -= longMorePenalty;
 +
                        }
 +
                        else if (delta === 1) {
 +
                            score -= shortMorePenalty;
 +
                        }
 +
                        else if (delta === -1) {
 +
                            score -= shortLessPenalty;
 +
                        }
 +
                        else if (delta === -2) {
 +
                            score -= longLessPenalty;
 +
                        }
 +
                    }
 +
                }
 +
                if (score > bestScore) {
 +
                    bestScore = score;
 +
                    bestFormat = format;
 +
                }
 +
            }
 +
            return __assign({}, bestFormat);
 +
        }
 +
        function DateTimeStyleFormat(dateStyle, timeStyle, dataLocaleData) {
 +
            var dateFormat, timeFormat;
 +
            if (timeStyle !== void 0) {
 +
                invariant(timeStyle === "full" || timeStyle === "long" || timeStyle === "medium" || timeStyle === "short", "invalid timeStyle");
 +
                timeFormat = dataLocaleData.timeFormat[timeStyle];
 +
            }
 +
            if (dateStyle !== void 0) {
 +
                invariant(dateStyle === "full" || dateStyle === "long" || dateStyle === "medium" || dateStyle === "short", "invalid dateStyle");
 +
                dateFormat = dataLocaleData.dateFormat[dateStyle];
 +
            }
 +
            if (dateStyle !== void 0 && timeStyle !== void 0) {
 +
                var format = {};
 +
                for (var field in dateFormat) {
 +
                    if (field !== "pattern") {
 +
                        format[field] = dateFormat[field];
 +
                    }
 +
                }
 +
                for (var field in timeFormat) {
 +
                    if (field !== "pattern" && field !== "pattern12") {
 +
                        format[field] = timeFormat[field];
 +
                    }
 +
                }
 +
                var connector = dataLocaleData.dateTimeFormat[dateStyle];
 +
                var pattern = connector.replace("{0}", timeFormat.pattern).replace("{1}", dateFormat.pattern);
 +
                format.pattern = pattern;
 +
                if ("pattern12" in timeFormat) {
 +
                    var pattern12 = connector.replace("{0}", timeFormat.pattern12).replace("{1}", dateFormat.pattern);
 +
                    format.pattern12 = pattern12;
 +
                }
 +
                return format;
 +
            }
 +
            if (timeStyle !== void 0) {
 +
                return timeFormat;
 +
            }
 +
            invariant(dateStyle !== void 0, "dateStyle should not be undefined");
 +
            return dateFormat;
 +
        }
 +
        function getApplicableZoneData(t, timeZone, tzData) {
 +
            var _a;
 +
            var zoneData = tzData[timeZone];
 +
            if (!zoneData) {
 +
                return [0, false];
 +
            }
 +
            var i = 0;
 +
            var offset = 0;
 +
            var dst = false;
 +
            for (; i <= zoneData.length; i++) {
 +
                if (i === zoneData.length || zoneData[i][0] * 1e3 > t) {
 +
                    ;
 +
                    _a = zoneData[i - 1], offset = _a[2], dst = _a[3];
 +
                    break;
 +
                }
 +
            }
 +
            return [offset * 1e3, dst];
 +
        }
 +
        function ToLocalTime(t, calendar, timeZone, _a) {
 +
            var tzData = _a.tzData;
 +
            invariant(Type(t) === "Number", "invalid time");
 +
            invariant(calendar === "gregory", "We only support Gregory calendar right now");
 +
            var _b = getApplicableZoneData(t, timeZone, tzData), timeZoneOffset = _b[0], inDST = _b[1];
 +
            var tz = t + timeZoneOffset;
 +
            var year = YearFromTime(tz);
 +
            return {
 +
                weekday: WeekDay(tz),
 +
                era: year < 0 ? "BC" : "AD",
 +
                year: year,
 +
                relatedYear: void 0,
 +
                yearName: void 0,
 +
                month: MonthFromTime(tz),
 +
                day: DateFromTime(tz),
 +
                hour: HourFromTime(tz),
 +
                minute: MinFromTime(tz),
 +
                second: SecFromTime(tz),
 +
                millisecond: msFromTime(tz),
 +
                inDST: inDST,
 +
                timeZoneOffset: timeZoneOffset
 +
            };
 +
        }
 +
        function pad(n) {
 +
            if (n < 10) {
 +
                return "0" + n;
 +
            }
 +
            return String(n);
 +
        }
 +
        function offsetToGmtString(gmtFormat, hourFormat, offsetInMs, style) {
 +
            var offsetInMinutes = Math.floor(offsetInMs / 6e4);
 +
            var mins = Math.abs(offsetInMinutes) % 60;
 +
            var hours = Math.floor(Math.abs(offsetInMinutes) / 60);
 +
            var _a = hourFormat.split(";"), positivePattern = _a[0], negativePattern = _a[1];
 +
            var offsetStr = "";
 +
            var pattern = offsetInMs < 0 ? negativePattern : positivePattern;
 +
            if (style === "long") {
 +
                offsetStr = pattern.replace("HH", pad(hours)).replace("H", String(hours)).replace("mm", pad(mins)).replace("m", String(mins));
 +
            }
 +
            else if (mins || hours) {
 +
                if (!mins) {
 +
                    pattern = pattern.replace(/:?m+/, "");
 +
                }
 +
                offsetStr = pattern.replace(/H+/, String(hours)).replace(/m+/, String(mins));
 +
            }
 +
            return gmtFormat.replace("{0}", offsetStr);
 +
        }
 +
        function FormatDateTimePattern(dtf, patternParts, x, _a) {
 +
            var getInternalSlots2 = _a.getInternalSlots, localeData = _a.localeData, getDefaultTimeZone = _a.getDefaultTimeZone, tzData = _a.tzData;
 +
            x = TimeClip(x);
 +
            var internalSlots = getInternalSlots2(dtf);
 +
            var dataLocale = internalSlots.dataLocale;
 +
            var dataLocaleData = localeData[dataLocale];
 +
            var locale = internalSlots.locale;
 +
            var nfOptions = Object.create(null);
 +
            nfOptions.useGrouping = false;
 +
            var nf = new Intl.NumberFormat(locale, nfOptions);
 +
            var nf2Options = Object.create(null);
 +
            nf2Options.minimumIntegerDigits = 2;
 +
            nf2Options.useGrouping = false;
 +
            var nf2 = new Intl.NumberFormat(locale, nf2Options);
 +
            var fractionalSecondDigits = internalSlots.fractionalSecondDigits;
 +
            var nf3;
 +
            if (fractionalSecondDigits !== void 0) {
 +
                var nf3Options = Object.create(null);
 +
                nf3Options.minimumIntegerDigits = fractionalSecondDigits;
 +
                nf3Options.useGrouping = false;
 +
                nf3 = new Intl.NumberFormat(locale, nf3Options);
 +
            }
 +
            var tm = ToLocalTime(x, internalSlots.calendar, internalSlots.timeZone, { tzData: tzData });
 +
            var result = [];
 +
            for (var _i = 0, patternParts_1 = patternParts; _i < patternParts_1.length; _i++) {
 +
                var patternPart = patternParts_1[_i];
 +
                var p = patternPart.type;
 +
                if (p === "literal") {
 +
                    result.push({
 +
                        type: "literal",
 +
                        value: patternPart.value
 +
                    });
 +
                }
 +
                else if (p === "fractionalSecondDigits") {
 +
                    var v = Math.floor(tm.millisecond * Math.pow(10, (fractionalSecondDigits || 0) - 3));
 +
                    result.push({
 +
                        type: "fractionalSecond",
 +
                        value: nf3.format(v)
 +
                    });
 +
                }
 +
                else if (DATE_TIME_PROPS.indexOf(p) > -1) {
 +
                    var fv = "";
 +
                    var f = internalSlots[p];
 +
                    var v = tm[p];
 +
                    if (p === "year" && v <= 0) {
 +
                        v = 1 - v;
 +
                    }
 +
                    if (p === "month") {
 +
                        v++;
 +
                    }
 +
                    var hourCycle = internalSlots.hourCycle;
 +
                    if (p === "hour" && (hourCycle === "h11" || hourCycle === "h12")) {
 +
                        v = v % 12;
 +
                        if (v === 0 && hourCycle === "h12") {
 +
                            v = 12;
 +
                        }
 +
                    }
 +
                    if (p === "hour" && hourCycle === "h24") {
 +
                        if (v === 0) {
 +
                            v = 24;
 +
                        }
 +
                    }
 +
                    if (f === "numeric") {
 +
                        fv = nf.format(v);
 +
                    }
 +
                    else if (f === "2-digit") {
 +
                        fv = nf2.format(v);
 +
                        if (fv.length > 2) {
 +
                            fv = fv.slice(fv.length - 2, fv.length);
 +
                        }
 +
                    }
 +
                    else if (f === "narrow" || f === "short" || f === "long") {
 +
                        if (p === "era") {
 +
                            fv = dataLocaleData[p][f][v];
 +
                        }
 +
                        else if (p === "timeZoneName") {
 +
                            var timeZoneName = dataLocaleData.timeZoneName, gmtFormat = dataLocaleData.gmtFormat, hourFormat = dataLocaleData.hourFormat;
 +
                            var timeZone = internalSlots.timeZone || getDefaultTimeZone();
 +
                            var timeZoneData = timeZoneName[timeZone];
 +
                            if (timeZoneData && timeZoneData[f]) {
 +
                                fv = timeZoneData[f][+tm.inDST];
 +
                            }
 +
                            else {
 +
                                fv = offsetToGmtString(gmtFormat, hourFormat, tm.timeZoneOffset, f);
 +
                            }
 +
                        }
 +
                        else if (p === "month") {
 +
                            fv = dataLocaleData.month[f][v - 1];
 +
                        }
 +
                        else {
 +
                            fv = dataLocaleData[p][f][v];
 +
                        }
 +
                    }
 +
                    result.push({
 +
                        type: p,
 +
                        value: fv
 +
                    });
 +
                }
 +
                else if (p === "ampm") {
 +
                    var v = tm.hour;
 +
                    var fv = void 0;
 +
                    if (v > 11) {
 +
                        fv = dataLocaleData.pm;
 +
                    }
 +
                    else {
 +
                        fv = dataLocaleData.am;
 +
                    }
 +
                    result.push({
 +
                        type: "dayPeriod",
 +
                        value: fv
 +
                    });
 +
                }
 +
                else if (p === "relatedYear") {
 +
                    var v = tm.relatedYear;
 +
                    var fv = nf.format(v);
 +
                    result.push({
 +
                        type: "relatedYear",
 +
                        value: fv
 +
                    });
 +
                }
 +
                else if (p === "yearName") {
 +
                    var v = tm.yearName;
 +
                    var fv = nf.format(v);
 +
                    result.push({
 +
                        type: "yearName",
 +
                        value: fv
 +
                    });
 +
                }
 +
            }
 +
            return result;
 +
        }
 +
        function PartitionPattern(pattern) {
 +
            var result = [];
 +
            var beginIndex = pattern.indexOf("{");
 +
            var endIndex = 0;
 +
            var nextIndex = 0;
 +
            var length = pattern.length;
 +
            while (beginIndex < pattern.length && beginIndex > -1) {
 +
                endIndex = pattern.indexOf("}", beginIndex);
 +
                invariant(endIndex > beginIndex, "Invalid pattern " + pattern);
 +
                if (beginIndex > nextIndex) {
 +
                    result.push({
 +
                        type: "literal",
 +
                        value: pattern.substring(nextIndex, beginIndex)
 +
                    });
 +
                }
 +
                result.push({
 +
                    type: pattern.substring(beginIndex + 1, endIndex),
 +
                    value: void 0
 +
                });
 +
                nextIndex = endIndex + 1;
 +
                beginIndex = pattern.indexOf("{", nextIndex);
 +
            }
 +
            if (nextIndex < length) {
 +
                result.push({
 +
                    type: "literal",
 +
                    value: pattern.substring(nextIndex, length)
 +
                });
 +
            }
 +
            return result;
 +
        }
 +
        function PartitionDateTimePattern(dtf, x, implDetails) {
 +
            x = TimeClip(x);
 +
            if (isNaN(x)) {
 +
                throw new RangeError("invalid time");
 +
            }
 +
            var getInternalSlots2 = implDetails.getInternalSlots;
 +
            var internalSlots = getInternalSlots2(dtf);
 +
            var pattern = internalSlots.pattern;
 +
            return FormatDateTimePattern(dtf, PartitionPattern(pattern), x, implDetails);
 +
        }
 +
        function FormatDateTime(dtf, x, implDetails) {
 +
            var parts = PartitionDateTimePattern(dtf, x, implDetails);
 +
            var result = "";
 +
            for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
 +
                var part = parts_1[_i];
 +
                result += part.value;
 +
            }
 +
            return result;
 +
        }
 +
        var TABLE_2_FIELDS = [
 +
            "era",
 +
            "year",
 +
            "month",
 +
            "day",
 +
            "ampm",
 +
            "hour",
 +
            "minute",
 +
            "second",
 +
            "fractionalSecondDigits"
 +
        ];
 +
        function PartitionDateTimeRangePattern(dtf, x, y, implDetails) {
 +
            x = TimeClip(x);
 +
            if (isNaN(x)) {
 +
                throw new RangeError("Invalid start time");
 +
            }
 +
            y = TimeClip(y);
 +
            if (isNaN(y)) {
 +
                throw new RangeError("Invalid end time");
 +
            }
 +
            var getInternalSlots2 = implDetails.getInternalSlots, tzData = implDetails.tzData;
 +
            var internalSlots = getInternalSlots2(dtf);
 +
            var tm1 = ToLocalTime(x, internalSlots.calendar, internalSlots.timeZone, { tzData: tzData });
 +
            var tm2 = ToLocalTime(y, internalSlots.calendar, internalSlots.timeZone, { tzData: tzData });
 +
            var pattern = internalSlots.pattern, rangePatterns = internalSlots.rangePatterns;
 +
            var rangePattern;
 +
            var dateFieldsPracticallyEqual = true;
 +
            var patternContainsLargerDateField = false;
 +
            for (var _i = 0, TABLE_2_FIELDS_1 = TABLE_2_FIELDS; _i < TABLE_2_FIELDS_1.length; _i++) {
 +
                var fieldName = TABLE_2_FIELDS_1[_i];
 +
                if (dateFieldsPracticallyEqual && !patternContainsLargerDateField) {
 +
                    if (fieldName === "ampm") {
 +
                        var rp = rangePatterns.ampm;
 +
                        if (rangePattern !== void 0 && rp === void 0) {
 +
                            patternContainsLargerDateField = true;
 +
                        }
 +
                        else {
 +
                            var v1 = tm1.hour;
 +
                            var v2 = tm2.hour;
 +
                            if (v1 > 11 && v2 < 11 || v1 < 11 && v2 > 11) {
 +
                                dateFieldsPracticallyEqual = false;
 +
                            }
 +
                            rangePattern = rp;
 +
                        }
 +
                    }
 +
                    else if (fieldName === "fractionalSecondDigits") {
 +
                        var fractionalSecondDigits = internalSlots.fractionalSecondDigits;
 +
                        if (fractionalSecondDigits === void 0) {
 +
                            fractionalSecondDigits = 3;
 +
                        }
 +
                        var v1 = Math.floor(tm1.millisecond * Math.pow(10, fractionalSecondDigits - 3));
 +
                        var v2 = Math.floor(tm2.millisecond * Math.pow(10, fractionalSecondDigits - 3));
 +
                        if (v1 !== v2) {
 +
                            dateFieldsPracticallyEqual = false;
 +
                        }
 +
                    }
 +
                    else {
 +
                        var rp = rangePatterns[fieldName];
 +
                        if (rangePattern !== void 0 && rp === void 0) {
 +
                            patternContainsLargerDateField = true;
 +
                        }
 +
                        else {
 +
                            var v1 = tm1[fieldName];
 +
                            var v2 = tm2[fieldName];
 +
                            if (!SameValue(v1, v2)) {
 +
                                dateFieldsPracticallyEqual = false;
 +
                            }
 +
                            rangePattern = rp;
 +
                        }
 +
                    }
 +
                }
 +
            }
 +
            if (dateFieldsPracticallyEqual) {
 +
                var result_2 = FormatDateTimePattern(dtf, PartitionPattern(pattern), x, implDetails);
 +
                for (var _a = 0, result_1 = result_2; _a < result_1.length; _a++) {
 +
                    var r = result_1[_a];
 +
                    r.source = RangePatternType.shared;
 +
                }
 +
                return result_2;
 +
            }
 +
            var result = [];
 +
            if (rangePattern === void 0) {
 +
                rangePattern = rangePatterns["default"];
 +
                for (var _b = 0, _c = rangePattern.patternParts; _b < _c.length; _b++) {
 +
                    var patternPart = _c[_b];
 +
                    if (patternPart.pattern === "{0}" || patternPart.pattern === "{1}") {
 +
                        patternPart.pattern = pattern;
 +
                    }
 +
                }
 +
            }
 +
            for (var _d = 0, _e = rangePattern.patternParts; _d < _e.length; _d++) {
 +
                var rangePatternPart = _e[_d];
 +
                var source = rangePatternPart.source, pattern_1 = rangePatternPart.pattern;
 +
                var z = void 0;
 +
                if (source === RangePatternType.startRange || source === RangePatternType.shared) {
 +
                    z = x;
 +
                }
 +
                else {
 +
                    z = y;
 +
                }
 +
                var patternParts = PartitionPattern(pattern_1);
 +
                var partResult = FormatDateTimePattern(dtf, patternParts, z, implDetails);
 +
                for (var _f = 0, partResult_1 = partResult; _f < partResult_1.length; _f++) {
 +
                    var r = partResult_1[_f];
 +
                    r.source = source;
 +
                }
 +
                result = result.concat(partResult);
 +
            }
 +
            return result;
 +
        }
 +
        function FormatDateTimeRange(dtf, x, y, implDetails) {
 +
            var parts = PartitionDateTimeRangePattern(dtf, x, y, implDetails);
 +
            var result = "";
 +
            for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
 +
                var part = parts_1[_i];
 +
                result += part.value;
 +
            }
 +
            return result;
 +
        }
 +
        function FormatDateTimeRangeToParts(dtf, x, y, implDetails) {
 +
            var parts = PartitionDateTimeRangePattern(dtf, x, y, implDetails);
 +
            var result = new Array(0);
 +
            for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
 +
                var part = parts_1[_i];
 +
                result.push({
 +
                    type: part.type,
 +
                    value: part.value,
 +
                    source: part.source
 +
                });
 +
            }
 +
            return result;
 +
        }
 +
        function FormatDateTimeToParts(dtf, x, implDetails) {
 +
            var parts = PartitionDateTimePattern(dtf, x, implDetails);
 +
            var result = ArrayCreate(0);
 +
            for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
 +
                var part = parts_1[_i];
 +
                result.push({
 +
                    type: part.type,
 +
                    value: part.value
 +
                });
 +
            }
 +
            return result;
 +
        }
 +
        function ToDateTimeOptions(options, required, defaults) {
 +
            if (options === void 0) {
 +
                options = null;
 +
            }
 +
            else {
 +
                options = ToObject(options);
 +
            }
 +
            options = Object.create(options);
 +
            var needDefaults = true;
 +
            if (required === "date" || required === "any") {
 +
                for (var _i = 0, _a = ["weekday", "year", "month", "day"]; _i < _a.length; _i++) {
 +
                    var prop = _a[_i];
 +
                    var value = options[prop];
 +
                    if (value !== void 0) {
 +
                        needDefaults = false;
 +
                    }
 +
                }
 +
            }
 +
            if (required === "time" || required === "any") {
 +
                for (var _b = 0, _c = [
 +
                    "dayPeriod",
 +
                    "hour",
 +
                    "minute",
 +
                    "second",
 +
                    "fractionalSecondDigits"
 +
                ]; _b < _c.length; _b++) {
 +
                    var prop = _c[_b];
 +
                    var value = options[prop];
 +
                    if (value !== void 0) {
 +
                        needDefaults = false;
 +
                    }
 +
                }
 +
            }
 +
            if (options.dateStyle !== void 0 || options.timeStyle !== void 0) {
 +
                needDefaults = false;
 +
            }
 +
            if (required === "date" && options.timeStyle) {
 +
                throw new TypeError("Intl.DateTimeFormat date was required but timeStyle was included");
 +
            }
 +
            if (required === "time" && options.dateStyle) {
 +
                throw new TypeError("Intl.DateTimeFormat time was required but dateStyle was included");
 +
            }
 +
            if (needDefaults && (defaults === "date" || defaults === "all")) {
 +
                for (var _d = 0, _e = ["year", "month", "day"]; _d < _e.length; _d++) {
 +
                    var prop = _e[_d];
 +
                    options[prop] = "numeric";
 +
                }
 +
            }
 +
            if (needDefaults && (defaults === "time" || defaults === "all")) {
 +
                for (var _f = 0, _g = ["hour", "minute", "second"]; _f < _g.length; _f++) {
 +
                    var prop = _g[_f];
 +
                    options[prop] = "numeric";
 +
                }
 +
            }
 +
            return options;
 +
        }
 +
        function GetOption(opts, prop, type, values, fallback) {
 +
            if (typeof opts !== "object") {
 +
                throw new TypeError("Options must be an object");
 +
            }
 +
            var value = opts[prop];
 +
            if (value !== void 0) {
 +
                if (type !== "boolean" && type !== "string") {
 +
                    throw new TypeError("invalid type");
 +
                }
 +
                if (type === "boolean") {
 +
                    value = Boolean(value);
 +
                }
 +
                if (type === "string") {
 +
                    value = ToString(value);
 +
                }
 +
                if (values !== void 0 && !values.filter(function (val) {
 +
                    return val == value;
 +
                }).length) {
 +
                    throw new RangeError(value + " is not within " + values.join(", "));
 +
                }
 +
                return value;
 +
            }
 +
            return fallback;
 +
        }
 +
        function BestAvailableLocale(availableLocales, locale) {
 +
            var candidate = locale;
 +
            while (true) {
 +
                if (availableLocales.has(candidate)) {
 +
                    return candidate;
 +
                }
 +
                var pos = candidate.lastIndexOf("-");
 +
                if (!~pos) {
 +
                    return void 0;
 +
                }
 +
                if (pos >= 2 && candidate[pos - 2] === "-") {
 +
                    pos -= 2;
 +
                }
 +
                candidate = candidate.slice(0, pos);
 +
            }
 +
        }
 +
        function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {
 +
            var result = { locale: "" };
 +
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
 +
                var locale = requestedLocales_1[_i];
 +
                var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
 +
                var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
 +
                if (availableLocale) {
 +
                    result.locale = availableLocale;
 +
                    if (locale !== noExtensionLocale) {
 +
                        result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);
 +
                    }
 +
                    return result;
 +
                }
 +
            }
 +
            result.locale = getDefaultLocale();
 +
            return result;
 +
        }
 +
        function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {
 +
            var minimizedAvailableLocaleMap = {};
 +
            var minimizedAvailableLocales = new Set();
 +
            availableLocales.forEach(function (locale2) {
 +
                var minimizedLocale = new Intl.Locale(locale2).minimize().toString();
 +
                minimizedAvailableLocaleMap[minimizedLocale] = locale2;
 +
                minimizedAvailableLocales.add(minimizedLocale);
 +
            });
 +
            var foundLocale;
 +
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
 +
                var l = requestedLocales_1[_i];
 +
                if (foundLocale) {
 +
                    break;
 +
                }
 +
                var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
 +
                if (availableLocales.has(noExtensionLocale)) {
 +
                    foundLocale = noExtensionLocale;
 +
                    break;
 +
                }
 +
                if (minimizedAvailableLocales.has(noExtensionLocale)) {
 +
                    foundLocale = minimizedAvailableLocaleMap[noExtensionLocale];
 +
                    break;
 +
                }
 +
                var locale = new Intl.Locale(noExtensionLocale);
 +
                var maximizedRequestedLocale = locale.maximize().toString();
 +
                var minimizedRequestedLocale = locale.minimize().toString();
 +
                if (minimizedAvailableLocales.has(minimizedRequestedLocale)) {
 +
                    foundLocale = minimizedAvailableLocaleMap[minimizedRequestedLocale];
 +
                    break;
 +
                }
 +
                foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale);
 +
            }
 +
            return {
 +
                locale: foundLocale || getDefaultLocale()
 +
            };
 +
        }
 +
        function UnicodeExtensionValue(extension, key) {
 +
            invariant(key.length === 2, "key must have 2 elements");
 +
            var size = extension.length;
 +
            var searchValue = "-" + key + "-";
 +
            var pos = extension.indexOf(searchValue);
 +
            if (pos !== -1) {
 +
                var start = pos + 4;
 +
                var end = start;
 +
                var k = start;
 +
                var done = false;
 +
                while (!done) {
 +
                    var e = extension.indexOf("-", k);
 +
                    var len = void 0;
 +
                    if (e === -1) {
 +
                        len = size - k;
 +
                    }
 +
                    else {
 +
                        len = e - k;
 +
                    }
 +
                    if (len === 2) {
 +
                        done = true;
 +
                    }
 +
                    else if (e === -1) {
 +
                        end = size;
 +
                        done = true;
 +
                    }
 +
                    else {
 +
                        end = e;
 +
                        k = e + 1;
 +
                    }
 +
                }
 +
                return extension.slice(start, end);
 +
            }
 +
            searchValue = "-" + key;
 +
            pos = extension.indexOf(searchValue);
 +
            if (pos !== -1 && pos + 3 === size) {
 +
                return "";
 +
            }
 +
            return void 0;
 +
        }
 +
        function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {
 +
            var matcher = options.localeMatcher;
 +
            var r;
 +
            if (matcher === "lookup") {
 +
                r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale);
 +
            }
 +
            else {
 +
                r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale);
 +
            }
 +
            var foundLocale = r.locale;
 +
            var result = { locale: "", dataLocale: foundLocale };
 +
            var supportedExtension = "-u";
 +
            for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {
 +
                var key = relevantExtensionKeys_1[_i];
 +
                invariant(foundLocale in localeData, "Missing locale data for " + foundLocale);
 +
                var foundLocaleData = localeData[foundLocale];
 +
                invariant(typeof foundLocaleData === "object" && foundLocaleData !== null, "locale data " + key + " must be an object");
 +
                var keyLocaleData = foundLocaleData[key];
 +
                invariant(Array.isArray(keyLocaleData), "keyLocaleData for " + key + " must be an array");
 +
                var value = keyLocaleData[0];
 +
                invariant(typeof value === "string" || value === null, "value must be string or null but got " + typeof value + " in key " + key);
 +
                var supportedExtensionAddition = "";
 +
                if (r.extension) {
 +
                    var requestedValue = UnicodeExtensionValue(r.extension, key);
 +
                    if (requestedValue !== void 0) {
 +
                        if (requestedValue !== "") {
 +
                            if (~keyLocaleData.indexOf(requestedValue)) {
 +
                                value = requestedValue;
 +
                                supportedExtensionAddition = "-" + key + "-" + value;
 +
                            }
 +
                        }
 +
                        else if (~requestedValue.indexOf("true")) {
 +
                            value = "true";
 +
                            supportedExtensionAddition = "-" + key;
 +
                        }
 +
                    }
 +
                }
 +
                if (key in options) {
 +
                    var optionsValue = options[key];
 +
                    invariant(typeof optionsValue === "string" || typeof optionsValue === "undefined" || optionsValue === null, "optionsValue must be String, Undefined or Null");
 +
                    if (~keyLocaleData.indexOf(optionsValue)) {
 +
                        if (optionsValue !== value) {
 +
                            value = optionsValue;
 +
                            supportedExtensionAddition = "";
 +
                        }
 +
                    }
 +
                }
 +
                result[key] = value;
 +
                supportedExtension += supportedExtensionAddition;
 +
            }
 +
            if (supportedExtension.length > 2) {
 +
                var privateIndex = foundLocale.indexOf("-x-");
 +
                if (privateIndex === -1) {
 +
                    foundLocale = foundLocale + supportedExtension;
 +
                }
 +
                else {
 +
                    var preExtension = foundLocale.slice(0, privateIndex);
 +
                    var postExtension = foundLocale.slice(privateIndex, foundLocale.length);
 +
                    foundLocale = preExtension + supportedExtension + postExtension;
 +
                }
 +
                foundLocale = Intl.getCanonicalLocales(foundLocale)[0];
 +
            }
 +
            result.locale = foundLocale;
 +
            return result;
 +
        }
 +
        function IsValidTimeZoneName(tz, _a) {
 +
            var tzData = _a.tzData, uppercaseLinks = _a.uppercaseLinks;
 +
            var uppercasedTz = tz.toUpperCase();
 +
            var zoneNames = new Set();
 +
            Object.keys(tzData).map(function (z) {
 +
                return z.toUpperCase();
 +
            }).forEach(function (z) {
 +
                return zoneNames.add(z);
 +
            });
 +
            return zoneNames.has(uppercasedTz) || uppercasedTz in uppercaseLinks;
 +
        }
 +
        function DefaultNumberOption(val, min, max, fallback) {
 +
            if (val !== void 0) {
 +
                val = Number(val);
 +
                if (isNaN(val) || val < min || val > max) {
 +
                    throw new RangeError(val + " is outside of range [" + min + ", " + max + "]");
 +
                }
 +
                return Math.floor(val);
 +
            }
 +
            return fallback;
 +
        }
 +
        function GetNumberOption(options, property, minimum, maximum, fallback) {
 +
            var val = options[property];
 +
            return DefaultNumberOption(val, minimum, maximum, fallback);
 +
        }
 +
        function isTimeRelated(opt) {
 +
            for (var _i = 0, _a = ["hour", "minute", "second"]; _i < _a.length; _i++) {
 +
                var prop = _a[_i];
 +
                var value = opt[prop];
 +
                if (value !== void 0) {
 +
                    return true;
 +
                }
 +
            }
 +
            return false;
 +
        }
 +
        function resolveHourCycle(hc, hcDefault, hour12) {
 +
            if (hc == null) {
 +
                hc = hcDefault;
 +
            }
 +
            if (hour12 !== void 0) {
 +
                if (hour12) {
 +
                    if (hcDefault === "h11" || hcDefault === "h23") {
 +
                        hc = "h11";
 +
                    }
 +
                    else {
 +
                        hc = "h12";
 +
                    }
 +
                }
 +
                else {
 +
                    invariant(!hour12, "hour12 must not be set");
 +
                    if (hcDefault === "h11" || hcDefault === "h23") {
 +
                        hc = "h23";
 +
                    }
 +
                    else {
 +
                        hc = "h24";
 +
                    }
 +
                }
 +
            }
 +
            return hc;
 +
        }
 +
        var TYPE_REGEX = /^[a-z0-9]{3,8}$/i;
 +
        function InitializeDateTimeFormat(dtf, locales, opts, _a) {
 +
            var getInternalSlots2 = _a.getInternalSlots, availableLocales = _a.availableLocales, localeData = _a.localeData, getDefaultLocale = _a.getDefaultLocale, getDefaultTimeZone = _a.getDefaultTimeZone, relevantExtensionKeys = _a.relevantExtensionKeys, tzData = _a.tzData, uppercaseLinks = _a.uppercaseLinks;
 +
            var requestedLocales = CanonicalizeLocaleList(locales);
 +
            var options = ToDateTimeOptions(opts, "any", "date");
 +
            var opt = Object.create(null);
 +
            var matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit");
 +
            opt.localeMatcher = matcher;
 +
            var calendar = GetOption(options, "calendar", "string", void 0, void 0);
 +
            if (calendar !== void 0 && !TYPE_REGEX.test(calendar)) {
 +
                throw new RangeError("Malformed calendar");
 +
            }
 +
            var internalSlots = getInternalSlots2(dtf);
 +
            opt.ca = calendar;
 +
            var numberingSystem = GetOption(options, "numberingSystem", "string", void 0, void 0);
 +
            if (numberingSystem !== void 0 && !TYPE_REGEX.test(numberingSystem)) {
 +
                throw new RangeError("Malformed numbering system");
 +
            }
 +
            opt.nu = numberingSystem;
 +
            var hour12 = GetOption(options, "hour12", "boolean", void 0, void 0);
 +
            var hourCycle = GetOption(options, "hourCycle", "string", ["h11", "h12", "h23", "h24"], void 0);
 +
            if (hour12 !== void 0) {
 +
                hourCycle = null;
 +
            }
 +
            opt.hc = hourCycle;
 +
            var r = ResolveLocale(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale);
 +
            internalSlots.locale = r.locale;
 +
            calendar = r.ca;
 +
            internalSlots.calendar = calendar;
 +
            internalSlots.hourCycle = r.hc;
 +
            internalSlots.numberingSystem = r.nu;
 +
            var dataLocale = r.dataLocale;
 +
            internalSlots.dataLocale = dataLocale;
 +
            var timeZone = options.timeZone;
 +
            if (timeZone !== void 0) {
 +
                timeZone = String(timeZone);
 +
                if (!IsValidTimeZoneName(timeZone, { tzData: tzData, uppercaseLinks: uppercaseLinks })) {
 +
                    throw new RangeError("Invalid timeZoneName");
 +
                }
 +
                timeZone = CanonicalizeTimeZoneName(timeZone, { tzData: tzData, uppercaseLinks: uppercaseLinks });
 +
            }
 +
            else {
 +
                timeZone = getDefaultTimeZone();
 +
            }
 +
            internalSlots.timeZone = timeZone;
 +
            opt = Object.create(null);
 +
            opt.weekday = GetOption(options, "weekday", "string", ["narrow", "short", "long"], void 0);
 +
            opt.era = GetOption(options, "era", "string", ["narrow", "short", "long"], void 0);
 +
            opt.year = GetOption(options, "year", "string", ["2-digit", "numeric"], void 0);
 +
            opt.month = GetOption(options, "month", "string", ["2-digit", "numeric", "narrow", "short", "long"], void 0);
 +
            opt.day = GetOption(options, "day", "string", ["2-digit", "numeric"], void 0);
 +
            opt.hour = GetOption(options, "hour", "string", ["2-digit", "numeric"], void 0);
 +
            opt.minute = GetOption(options, "minute", "string", ["2-digit", "numeric"], void 0);
 +
            opt.second = GetOption(options, "second", "string", ["2-digit", "numeric"], void 0);
 +
            opt.timeZoneName = GetOption(options, "timeZoneName", "string", ["short", "long"], void 0);
 +
            opt.fractionalSecondDigits = GetNumberOption(options, "fractionalSecondDigits", 1, 3, void 0);
 +
            var dataLocaleData = localeData[dataLocale];
 +
            invariant(!!dataLocaleData, "Missing locale data for " + dataLocale);
 +
            var formats = dataLocaleData.formats[calendar];
 +
            if (!formats) {
 +
                throw new RangeError('Calendar "' + calendar + '" is not supported. Try setting "calendar" to 1 of the following: ' + Object.keys(dataLocaleData.formats).join(", "));
 +
            }
 +
            var formatMatcher = GetOption(options, "formatMatcher", "string", ["basic", "best fit"], "best fit");
 +
            var dateStyle = GetOption(options, "dateStyle", "string", ["full", "long", "medium", "short"], void 0);
 +
            internalSlots.dateStyle = dateStyle;
 +
            var timeStyle = GetOption(options, "timeStyle", "string", ["full", "long", "medium", "short"], void 0);
 +
            internalSlots.timeStyle = timeStyle;
 +
            var bestFormat;
 +
            if (dateStyle === void 0 && timeStyle === void 0) {
 +
                if (formatMatcher === "basic") {
 +
                    bestFormat = BasicFormatMatcher(opt, formats);
 +
                }
 +
                else {
 +
                    if (isTimeRelated(opt)) {
 +
                        var hc = resolveHourCycle(internalSlots.hourCycle, dataLocaleData.hourCycle, hour12);
 +
                        opt.hour12 = hc === "h11" || hc === "h12";
 +
                    }
 +
                    bestFormat = BestFitFormatMatcher(opt, formats);
 +
                }
 +
            }
 +
            else {
 +
                for (var _i = 0, DATE_TIME_PROPS_1 = DATE_TIME_PROPS; _i < DATE_TIME_PROPS_1.length; _i++) {
 +
                    var prop = DATE_TIME_PROPS_1[_i];
 +
                    var p = opt[prop];
 +
                    if (p !== void 0) {
 +
                        throw new TypeError("Intl.DateTimeFormat can't set option " + prop + " when " + (dateStyle ? "dateStyle" : "timeStyle") + " is used");
 +
                    }
 +
                }
 +
                bestFormat = DateTimeStyleFormat(dateStyle, timeStyle, dataLocaleData);
 +
            }
 +
            internalSlots.format = bestFormat;
 +
            for (var prop in opt) {
 +
                var p = bestFormat[prop];
 +
                if (p !== void 0) {
 +
                    internalSlots[prop] = p;
 +
                }
 +
            }
 +
            var pattern;
 +
            var rangePatterns;
 +
            if (internalSlots.hour !== void 0) {
 +
                var hc = resolveHourCycle(internalSlots.hourCycle, dataLocaleData.hourCycle, hour12);
 +
                internalSlots.hourCycle = hc;
 +
                if (hc === "h11" || hc === "h12") {
 +
                    pattern = bestFormat.pattern12;
 +
                    rangePatterns = bestFormat.rangePatterns12;
 +
                }
 +
                else {
 +
                    pattern = bestFormat.pattern;
 +
                    rangePatterns = bestFormat.rangePatterns;
 +
                }
 +
            }
 +
            else {
 +
                internalSlots.hourCycle = void 0;
 +
                pattern = bestFormat.pattern;
 +
                rangePatterns = bestFormat.rangePatterns;
 +
            }
 +
            internalSlots.pattern = pattern;
 +
            internalSlots.rangePatterns = rangePatterns;
 +
            return dtf;
 +
        }
 +
        var SANCTIONED_UNITS = [
 +
            "angle-degree",
 +
            "area-acre",
 +
            "area-hectare",
 +
            "concentr-percent",
 +
            "digital-bit",
 +
            "digital-byte",
 +
            "digital-gigabit",
 +
            "digital-gigabyte",
 +
            "digital-kilobit",
 +
            "digital-kilobyte",
 +
            "digital-megabit",
 +
            "digital-megabyte",
 +
            "digital-petabyte",
 +
            "digital-terabit",
 +
            "digital-terabyte",
 +
            "duration-day",
 +
            "duration-hour",
 +
            "duration-millisecond",
 +
            "duration-minute",
 +
            "duration-month",
 +
            "duration-second",
 +
            "duration-week",
 +
            "duration-year",
 +
            "length-centimeter",
 +
            "length-foot",
 +
            "length-inch",
 +
            "length-kilometer",
 +
            "length-meter",
 +
            "length-mile-scandinavian",
 +
            "length-mile",
 +
            "length-millimeter",
 +
            "length-yard",
 +
            "mass-gram",
 +
            "mass-kilogram",
 +
            "mass-ounce",
 +
            "mass-pound",
 +
            "mass-stone",
 +
            "temperature-celsius",
 +
            "temperature-fahrenheit",
 +
            "volume-fluid-ounce",
 +
            "volume-gallon",
 +
            "volume-liter",
 +
            "volume-milliliter"
 +
        ];
 +
        function removeUnitNamespace(unit) {
 +
            return unit.slice(unit.indexOf("-") + 1);
 +
        }
 +
        var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace);
 +
        var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/;
 +
        var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source);
 +
        var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$");
 +
        function LookupSupportedLocales(availableLocales, requestedLocales) {
 +
            var subset = [];
 +
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
 +
                var locale = requestedLocales_1[_i];
 +
                var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
 +
                var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
 +
                if (availableLocale) {
 +
                    subset.push(availableLocale);
 +
                }
 +
            }
 +
            return subset;
 +
        }
 +
        function SupportedLocales(availableLocales, requestedLocales, options) {
 +
            var matcher = "best fit";
 +
            if (options !== void 0) {
 +
                options = ToObject(options);
 +
                matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit");
 +
            }
 +
            if (matcher === "best fit") {
 +
                return LookupSupportedLocales(availableLocales, requestedLocales);
 +
            }
 +
            return LookupSupportedLocales(availableLocales, requestedLocales);
 +
        }
 +
        var MissingLocaleDataError = function (_super) {
 +
            __extends(MissingLocaleDataError2, _super);
 +
            function MissingLocaleDataError2() {
 +
                var _this = _super !== null && _super.apply(this, arguments) || this;
 +
                _this.type = "MISSING_LOCALE_DATA";
 +
                return _this;
 +
            }
 +
            return MissingLocaleDataError2;
 +
        }(Error);
 +
        var internalSlotMap = new WeakMap();
 +
        function getInternalSlots(x) {
 +
            var internalSlots = internalSlotMap.get(x);
 +
            if (!internalSlots) {
 +
                internalSlots = Object.create(null);
 +
                internalSlotMap.set(x, internalSlots);
 +
            }
 +
            return internalSlots;
 +
        }
 +
        var links_default = {
 +
            "Africa/Asmera": "Africa/Nairobi",
 +
            "Africa/Timbuktu": "Africa/Abidjan",
 +
            "America/Argentina/ComodRivadavia": "America/Argentina/Catamarca",
 +
            "America/Atka": "America/Adak",
 +
            "America/Buenos_Aires": "America/Argentina/Buenos_Aires",
 +
            "America/Catamarca": "America/Argentina/Catamarca",
 +
            "America/Coral_Harbour": "America/Atikokan",
 +
            "America/Cordoba": "America/Argentina/Cordoba",
 +
            "America/Ensenada": "America/Tijuana",
 +
            "America/Fort_Wayne": "America/Indiana/Indianapolis",
 +
            "America/Godthab": "America/Nuuk",
 +
            "America/Indianapolis": "America/Indiana/Indianapolis",
 +
            "America/Jujuy": "America/Argentina/Jujuy",
 +
            "America/Knox_IN": "America/Indiana/Knox",
 +
            "America/Louisville": "America/Kentucky/Louisville",
 +
            "America/Mendoza": "America/Argentina/Mendoza",
 +
            "America/Montreal": "America/Toronto",
 +
            "America/Porto_Acre": "America/Rio_Branco",
 +
            "America/Rosario": "America/Argentina/Cordoba",
 +
            "America/Santa_Isabel": "America/Tijuana",
 +
            "America/Shiprock": "America/Denver",
 +
            "America/Virgin": "America/Port_of_Spain",
 +
            "Antarctica/South_Pole": "Pacific/Auckland",
 +
            "Asia/Ashkhabad": "Asia/Ashgabat",
 +
            "Asia/Calcutta": "Asia/Kolkata",
 +
            "Asia/Chongqing": "Asia/Shanghai",
 +
            "Asia/Chungking": "Asia/Shanghai",
 +
            "Asia/Dacca": "Asia/Dhaka",
 +
            "Asia/Harbin": "Asia/Shanghai",
 +
            "Asia/Kashgar": "Asia/Urumqi",
 +
            "Asia/Katmandu": "Asia/Kathmandu",
 +
            "Asia/Macao": "Asia/Macau",
 +
            "Asia/Rangoon": "Asia/Yangon",
 +
            "Asia/Saigon": "Asia/Ho_Chi_Minh",
 +
            "Asia/Tel_Aviv": "Asia/Jerusalem",
 +
            "Asia/Thimbu": "Asia/Thimphu",
 +
            "Asia/Ujung_Pandang": "Asia/Makassar",
 +
            "Asia/Ulan_Bator": "Asia/Ulaanbaatar",
 +
            "Atlantic/Faeroe": "Atlantic/Faroe",
 +
            "Atlantic/Jan_Mayen": "Europe/Oslo",
 +
            "Australia/ACT": "Australia/Sydney",
 +
            "Australia/Canberra": "Australia/Sydney",
 +
            "Australia/Currie": "Australia/Hobart",
 +
            "Australia/LHI": "Australia/Lord_Howe",
 +
            "Australia/NSW": "Australia/Sydney",
 +
            "Australia/North": "Australia/Darwin",
 +
            "Australia/Queensland": "Australia/Brisbane",
 +
            "Australia/South": "Australia/Adelaide",
 +
            "Australia/Tasmania": "Australia/Hobart",
 +
            "Australia/Victoria": "Australia/Melbourne",
 +
            "Australia/West": "Australia/Perth",
 +
            "Australia/Yancowinna": "Australia/Broken_Hill",
 +
            "Brazil/Acre": "America/Rio_Branco",
 +
            "Brazil/DeNoronha": "America/Noronha",
 +
            "Brazil/East": "America/Sao_Paulo",
 +
            "Brazil/West": "America/Manaus",
 +
            "Canada/Atlantic": "America/Halifax",
 +
            "Canada/Central": "America/Winnipeg",
 +
            "Canada/Eastern": "America/Toronto",
 +
            "Canada/Mountain": "America/Edmonton",
 +
            "Canada/Newfoundland": "America/St_Johns",
 +
            "Canada/Pacific": "America/Vancouver",
 +
            "Canada/Saskatchewan": "America/Regina",
 +
            "Canada/Yukon": "America/Whitehorse",
 +
            "Chile/Continental": "America/Santiago",
 +
            "Chile/EasterIsland": "Pacific/Easter",
 +
            "Cuba": "America/Havana",
 +
            "Egypt": "Africa/Cairo",
 +
            "Eire": "Europe/Dublin",
 +
            "Etc/UCT": "Etc/UTC",
 +
            "Europe/Belfast": "Europe/London",
 +
            "Europe/Tiraspol": "Europe/Chisinau",
 +
            "GB": "Europe/London",
 +
            "GB-Eire": "Europe/London",
 +
            "GMT+0": "Etc/GMT",
 +
            "GMT-0": "Etc/GMT",
 +
            "GMT0": "Etc/GMT",
 +
            "Greenwich": "Etc/GMT",
 +
            "Hongkong": "Asia/Hong_Kong",
 +
            "Iceland": "Atlantic/Reykjavik",
 +
            "Iran": "Asia/Tehran",
 +
            "Israel": "Asia/Jerusalem",
 +
            "Jamaica": "America/Jamaica",
 +
            "Japan": "Asia/Tokyo",
 +
            "Kwajalein": "Pacific/Kwajalein",
 +
            "Libya": "Africa/Tripoli",
 +
            "Mexico/BajaNorte": "America/Tijuana",
 +
            "Mexico/BajaSur": "America/Mazatlan",
 +
            "Mexico/General": "America/Mexico_City",
 +
            "NZ": "Pacific/Auckland",
 +
            "NZ-CHAT": "Pacific/Chatham",
 +
            "Navajo": "America/Denver",
 +
            "PRC": "Asia/Shanghai",
 +
            "Pacific/Johnston": "Pacific/Honolulu",
 +
            "Pacific/Ponape": "Pacific/Pohnpei",
 +
            "Pacific/Samoa": "Pacific/Pago_Pago",
 +
            "Pacific/Truk": "Pacific/Chuuk",
 +
            "Pacific/Yap": "Pacific/Chuuk",
 +
            "Poland": "Europe/Warsaw",
 +
            "Portugal": "Europe/Lisbon",
 +
            "ROC": "Asia/Taipei",
 +
            "ROK": "Asia/Seoul",
 +
            "Singapore": "Asia/Singapore",
 +
            "Turkey": "Europe/Istanbul",
 +
            "UCT": "Etc/UTC",
 +
            "US/Alaska": "America/Anchorage",
 +
            "US/Aleutian": "America/Adak",
 +
            "US/Arizona": "America/Phoenix",
 +
            "US/Central": "America/Chicago",
 +
            "US/East-Indiana": "America/Indiana/Indianapolis",
 +
            "US/Eastern": "America/New_York",
 +
            "US/Hawaii": "Pacific/Honolulu",
 +
            "US/Indiana-Starke": "America/Indiana/Knox",
 +
            "US/Michigan": "America/Detroit",
 +
            "US/Mountain": "America/Denver",
 +
            "US/Pacific": "America/Los_Angeles",
 +
            "US/Samoa": "Pacific/Pago_Pago",
 +
            "UTC": "Etc/UTC",
 +
            "Universal": "Etc/UTC",
 +
            "W-SU": "Europe/Moscow",
 +
            "Zulu": "Etc/UTC"
 +
        };
 +
        function unpack(data) {
 +
            var abbrvs = data.abbrvs.split("|");
 +
            var offsets = data.offsets.split("|").map(function (n) {
 +
                return parseInt(n, 36);
 +
            });
 +
            var packedZones = data.zones;
 +
            var zones = {};
 +
            for (var _i = 0, packedZones_1 = packedZones; _i < packedZones_1.length; _i++) {
 +
                var d = packedZones_1[_i];
 +
                var _a = d.split("|"), zone = _a[0], zoneData = _a.slice(1);
 +
                zones[zone] = zoneData.map(function (z) {
 +
                    return z.split(",");
 +
                }).map(function (_a2) {
 +
                    var ts = _a2[0], abbrvIndex = _a2[1], offsetIndex = _a2[2], dst = _a2[3];
 +
                    return [
 +
                        ts === "" ? -Infinity : parseInt(ts, 36),
 +
                        abbrvs[+abbrvIndex],
 +
                        offsets[+offsetIndex],
 +
                        dst === "1"
 +
                    ];
 +
                });
 +
            }
 +
            return zones;
 +
        }
 +
        var UPPERCASED_LINKS = Object.keys(links_default).reduce(function (all, l) {
 +
            all[l.toUpperCase()] = links_default[l];
 +
            return all;
 +
        }, {});
 +
        var RESOLVED_OPTIONS_KEYS = [
 +
            "locale",
 +
            "calendar",
 +
            "numberingSystem",
 +
            "dateStyle",
 +
            "timeStyle",
 +
            "timeZone",
 +
            "hourCycle",
 +
            "weekday",
 +
            "era",
 +
            "year",
 +
            "month",
 +
            "day",
 +
            "hour",
 +
            "minute",
 +
            "second",
 +
            "timeZoneName"
 +
        ];
 +
        var formatDescriptor = {
 
             enumerable: false,
 
             enumerable: false,
             writable: true,
+
             configurable: true,
             value: globalThis
+
            get: function () {
 +
                if (typeof this !== "object" || !OrdinaryHasInstance(DateTimeFormat, this)) {
 +
                    throw TypeError("Intl.DateTimeFormat format property accessor called on incompatible receiver");
 +
                }
 +
                var internalSlots = getInternalSlots(this);
 +
                var dtf = this;
 +
                var boundFormat = internalSlots.boundFormat;
 +
                if (boundFormat === void 0) {
 +
                    boundFormat = function (date) {
 +
                        var x;
 +
                        if (date === void 0) {
 +
                            x = Date.now();
 +
                        }
 +
                        else {
 +
                            x = Number(date);
 +
                        }
 +
                        return FormatDateTime(dtf, x, {
 +
                            getInternalSlots: getInternalSlots,
 +
                            localeData: DateTimeFormat.localeData,
 +
                            tzData: DateTimeFormat.tzData,
 +
                            getDefaultTimeZone: DateTimeFormat.getDefaultTimeZone
 +
                        });
 +
                    };
 +
                    try {
 +
                        Object.defineProperty(boundFormat, "name", {
 +
                            configurable: true,
 +
                            enumerable: false,
 +
                            writable: false,
 +
                            value: ""
 +
                        });
 +
                    }
 +
                    catch (e) {
 +
                    }
 +
                    internalSlots.boundFormat = boundFormat;
 +
                }
 +
                return boundFormat;
 +
            }
 +
        };
 +
        try {
 +
            Object.defineProperty(formatDescriptor.get, "name", {
 +
                configurable: true,
 +
                enumerable: false,
 +
                writable: false,
 +
                value: "get format"
 +
            });
 +
        }
 +
        catch (e) {
 +
        }
 +
        var DateTimeFormat = function (locales, options) {
 +
            if (!this || !OrdinaryHasInstance(DateTimeFormat, this)) {
 +
                return new DateTimeFormat(locales, options);
 +
            }
 +
            InitializeDateTimeFormat(this, locales, options, {
 +
                tzData: DateTimeFormat.tzData,
 +
                uppercaseLinks: UPPERCASED_LINKS,
 +
                availableLocales: DateTimeFormat.availableLocales,
 +
                relevantExtensionKeys: DateTimeFormat.relevantExtensionKeys,
 +
                getDefaultLocale: DateTimeFormat.getDefaultLocale,
 +
                getDefaultTimeZone: DateTimeFormat.getDefaultTimeZone,
 +
                getInternalSlots: getInternalSlots,
 +
                localeData: DateTimeFormat.localeData
 +
            });
 +
            var internalSlots = getInternalSlots(this);
 +
            var dataLocale = internalSlots.dataLocale;
 +
            var dataLocaleData = DateTimeFormat.localeData[dataLocale];
 +
            invariant(dataLocaleData !== void 0, "Cannot load locale-dependent data for " + dataLocale + ".");
 +
        };
 +
        defineProperty(DateTimeFormat, "supportedLocalesOf", {
 +
            value: function supportedLocalesOf(locales, options) {
 +
                return SupportedLocales(DateTimeFormat.availableLocales, CanonicalizeLocaleList(locales), options);
 +
            }
 +
        });
 +
        defineProperty(DateTimeFormat.prototype, "resolvedOptions", {
 +
            value: function resolvedOptions() {
 +
                if (typeof this !== "object" || !OrdinaryHasInstance(DateTimeFormat, this)) {
 +
                    throw TypeError("Method Intl.DateTimeFormat.prototype.resolvedOptions called on incompatible receiver");
 +
                }
 +
                var internalSlots = getInternalSlots(this);
 +
                var ro = {};
 +
                for (var _i = 0, RESOLVED_OPTIONS_KEYS_1 = RESOLVED_OPTIONS_KEYS; _i < RESOLVED_OPTIONS_KEYS_1.length; _i++) {
 +
                    var key = RESOLVED_OPTIONS_KEYS_1[_i];
 +
                    var value = internalSlots[key];
 +
                    if (key === "hourCycle") {
 +
                        var hour12 = value === "h11" || value === "h12" ? true : value === "h23" || value === "h24" ? false : void 0;
 +
                        if (hour12 !== void 0) {
 +
                            ro.hour12 = hour12;
 +
                        }
 +
                    }
 +
                    if (DATE_TIME_PROPS.indexOf(key) > -1) {
 +
                        if (internalSlots.dateStyle !== void 0 || internalSlots.timeStyle !== void 0) {
 +
                            value = void 0;
 +
                        }
 +
                    }
 +
                    if (value !== void 0) {
 +
                        ro[key] = value;
 +
                    }
 +
                }
 +
                return ro;
 +
            }
 +
        });
 +
        defineProperty(DateTimeFormat.prototype, "formatToParts", {
 +
             value: function formatToParts2(date) {
 +
                if (date === void 0) {
 +
                    date = Date.now();
 +
                }
 +
                else {
 +
                    date = ToNumber(date);
 +
                }
 +
                return FormatDateTimeToParts(this, date, {
 +
                    getInternalSlots: getInternalSlots,
 +
                    localeData: DateTimeFormat.localeData,
 +
                    tzData: DateTimeFormat.tzData,
 +
                    getDefaultTimeZone: DateTimeFormat.getDefaultTimeZone
 +
                });
 +
            }
 +
        });
 +
        defineProperty(DateTimeFormat.prototype, "formatRangeToParts", {
 +
            value: function formatRangeToParts(startDate, endDate) {
 +
                var dtf = this;
 +
                if (typeof dtf !== "object") {
 +
                    throw new TypeError();
 +
                }
 +
                if (startDate === void 0 || endDate === void 0) {
 +
                    throw new TypeError("startDate/endDate cannot be undefined");
 +
                }
 +
                var x = ToNumber(startDate);
 +
                var y = ToNumber(endDate);
 +
                return FormatDateTimeRangeToParts(dtf, x, y, {
 +
                    getInternalSlots: getInternalSlots,
 +
                    localeData: DateTimeFormat.localeData,
 +
                    tzData: DateTimeFormat.tzData,
 +
                    getDefaultTimeZone: DateTimeFormat.getDefaultTimeZone
 +
                });
 +
            }
 +
        });
 +
        defineProperty(DateTimeFormat.prototype, "formatRange", {
 +
            value: function formatRange(startDate, endDate) {
 +
                var dtf = this;
 +
                if (typeof dtf !== "object") {
 +
                    throw new TypeError();
 +
                }
 +
                if (startDate === void 0 || endDate === void 0) {
 +
                    throw new TypeError("startDate/endDate cannot be undefined");
 +
                }
 +
                var x = ToNumber(startDate);
 +
                var y = ToNumber(endDate);
 +
                return FormatDateTimeRange(dtf, x, y, {
 +
                    getInternalSlots: getInternalSlots,
 +
                    localeData: DateTimeFormat.localeData,
 +
                    tzData: DateTimeFormat.tzData,
 +
                    getDefaultTimeZone: DateTimeFormat.getDefaultTimeZone
 +
                });
 +
            }
 
         });
 
         });
    } catch (e) {
+
        var DEFAULT_TIMEZONE = "UTC";
         // IE8 throws an error here if we set enumerable to false.
+
        DateTimeFormat.__setDefaultTimeZone = function (timeZone) {
         // More info on table 2: https://msdn.microsoft.com/en-us/library/dd229916(v=vs.85).aspx
+
            if (timeZone !== void 0) {
        globalThis.globalThis = globalThis;
+
                timeZone = String(timeZone);
 +
                if (!IsValidTimeZoneName(timeZone, {
 +
                    tzData: DateTimeFormat.tzData,
 +
                    uppercaseLinks: UPPERCASED_LINKS
 +
                })) {
 +
                    throw new RangeError("Invalid timeZoneName");
 +
                }
 +
                timeZone = CanonicalizeTimeZoneName(timeZone, {
 +
                    tzData: DateTimeFormat.tzData,
 +
                    uppercaseLinks: UPPERCASED_LINKS
 +
                });
 +
            }
 +
            else {
 +
                timeZone = DEFAULT_TIMEZONE;
 +
            }
 +
            DateTimeFormat.__defaultTimeZone = timeZone;
 +
        };
 +
        DateTimeFormat.relevantExtensionKeys = ["nu", "ca", "hc"];
 +
        DateTimeFormat.__defaultTimeZone = DEFAULT_TIMEZONE;
 +
        DateTimeFormat.getDefaultTimeZone = function () {
 +
            return DateTimeFormat.__defaultTimeZone;
 +
        };
 +
        DateTimeFormat.__addLocaleData = function __addLocaleData() {
 +
            var data = [];
 +
            for (var _i = 0; _i < arguments.length; _i++) {
 +
                data[_i] = arguments[_i];
 +
            }
 +
            var _loop_1 = function (d2, locale2) {
 +
                var dateFormat = d2.dateFormat, timeFormat = d2.timeFormat, dateTimeFormat = d2.dateTimeFormat, formats = d2.formats, intervalFormats = d2.intervalFormats, rawData = __rest(d2, ["dateFormat", "timeFormat", "dateTimeFormat", "formats", "intervalFormats"]);
 +
                var processedData = __assign(__assign({}, rawData), { dateFormat: {
 +
                        full: parseDateTimeSkeleton(dateFormat.full),
 +
                        long: parseDateTimeSkeleton(dateFormat.long),
 +
                        medium: parseDateTimeSkeleton(dateFormat.medium),
 +
                        short: parseDateTimeSkeleton(dateFormat.short)
 +
                    }, timeFormat: {
 +
                        full: parseDateTimeSkeleton(timeFormat.full),
 +
                        long: parseDateTimeSkeleton(timeFormat.long),
 +
                        medium: parseDateTimeSkeleton(timeFormat.medium),
 +
                        short: parseDateTimeSkeleton(timeFormat.short)
 +
                    }, dateTimeFormat: {
 +
                        full: parseDateTimeSkeleton(dateTimeFormat.full).pattern,
 +
                        long: parseDateTimeSkeleton(dateTimeFormat.long).pattern,
 +
                        medium: parseDateTimeSkeleton(dateTimeFormat.medium).pattern,
 +
                        short: parseDateTimeSkeleton(dateTimeFormat.short).pattern
 +
                    }, formats: {} });
 +
                var _loop_2 = function (calendar2) {
 +
                    processedData.formats[calendar2] = Object.keys(formats[calendar2]).map(function (skeleton) {
 +
                        return parseDateTimeSkeleton(skeleton, formats[calendar2][skeleton], intervalFormats[skeleton], intervalFormats.intervalFormatFallback);
 +
                    });
 +
                };
 +
                for (var calendar in formats) {
 +
                    _loop_2(calendar);
 +
                }
 +
                var minimizedLocale = new Intl.Locale(locale2).minimize().toString();
 +
                DateTimeFormat.localeData[locale2] = DateTimeFormat.localeData[minimizedLocale] = processedData;
 +
                DateTimeFormat.availableLocales.add(locale2);
 +
                DateTimeFormat.availableLocales.add(minimizedLocale);
 +
                if (!DateTimeFormat.__defaultLocale) {
 +
                    DateTimeFormat.__defaultLocale = minimizedLocale;
 +
                }
 +
            };
 +
            for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {
 +
                var _b = data_1[_a], d = _b.data, locale = _b.locale;
 +
                _loop_1(d, locale);
 +
            }
 +
        };
 +
        Object.defineProperty(DateTimeFormat.prototype, "format", formatDescriptor);
 +
        DateTimeFormat.__defaultLocale = "";
 +
        DateTimeFormat.localeData = {};
 +
        DateTimeFormat.availableLocales = new Set();
 +
        DateTimeFormat.getDefaultLocale = function () {
 +
            return DateTimeFormat.__defaultLocale;
 +
        };
 +
        DateTimeFormat.polyfilled = true;
 +
        DateTimeFormat.tzData = {};
 +
        DateTimeFormat.__addTZData = function (d) {
 +
            DateTimeFormat.tzData = unpack(d);
 +
        };
 +
        try {
 +
            if (typeof Symbol !== "undefined") {
 +
                Object.defineProperty(DateTimeFormat.prototype, Symbol.toStringTag, {
 +
                    value: "Intl.DateTimeFormat",
 +
                    writable: false,
 +
                    enumerable: false,
 +
                    configurable: true
 +
                });
 +
            }
 +
            Object.defineProperty(DateTimeFormat.prototype.constructor, "length", {
 +
                value: 1,
 +
                writable: false,
 +
                enumerable: false,
 +
                configurable: true
 +
            });
 +
        }
 +
        catch (e) {
 +
        }
 +
        function supportsDateStyle() {
 +
            try {
 +
                return !!new Intl.DateTimeFormat(void 0, {
 +
                    dateStyle: "short"
 +
                }).resolvedOptions().dateStyle;
 +
            }
 +
            catch (e) {
 +
                return false;
 +
            }
 +
        }
 +
        function hasChromeLt71Bug() {
 +
            try {
 +
                return new Intl.DateTimeFormat("en", {
 +
                    hourCycle: "h11",
 +
                    hour: "numeric"
 +
                }).formatToParts(0)[2].type !== "dayPeriod";
 +
            }
 +
            catch (e) {
 +
                return false;
 +
            }
 +
        }
 +
        function hasUnthrownDateTimeStyleBug() {
 +
            try {
 +
                return !!new Intl.DateTimeFormat("en", {
 +
                    dateStyle: "short",
 +
                    hour: "numeric"
 +
                }).format(new Date(0));
 +
            }
 +
            catch (e) {
 +
                return false;
 +
            }
 +
         }
 +
        function shouldPolyfill() {
 +
            return !("DateTimeFormat" in Intl) || !("formatToParts" in Intl.DateTimeFormat.prototype) || !("formatRange" in Intl.DateTimeFormat.prototype) || hasChromeLt71Bug() || hasUnthrownDateTimeStyleBug() || !supportsDateStyle();
 +
        }
 +
        function toLocaleString(x, locales, options) {
 +
            var dtf = new DateTimeFormat(locales, options);
 +
            return dtf.format(x);
 +
        }
 +
        function toLocaleDateString(x, locales, options) {
 +
            var dtf = new DateTimeFormat(locales, ToDateTimeOptions(options, "date", "date"));
 +
            return dtf.format(x);
 +
        }
 +
        function toLocaleTimeString(x, locales, options) {
 +
            var dtf = new DateTimeFormat(locales, ToDateTimeOptions(options, "time", "time"));
 +
            return dtf.format(x);
 +
        }
 +
        if (shouldPolyfill()) {
 +
            defineProperty(Intl, "DateTimeFormat", { value: DateTimeFormat });
 +
            defineProperty(Date.prototype, "toLocaleString", {
 +
                value: function toLocaleString2(locales, options) {
 +
                    return toLocaleString(this, locales, options);
 +
                }
 +
            });
 +
            defineProperty(Date.prototype, "toLocaleDateString", {
 +
                value: function toLocaleDateString2(locales, options) {
 +
                    return toLocaleDateString(this, locales, options);
 +
                }
 +
            });
 +
            defineProperty(Date.prototype, "toLocaleTimeString", {
 +
                value: function toLocaleTimeString2(locales, options) {
 +
                    return toLocaleTimeString(this, locales, options);
 +
                }
 +
            });
 +
        }
 +
    })();
 +
    if (Intl.NumberFormat && typeof Intl.NumberFormat.__addLocaleData === 'function') {
 +
         Intl.NumberFormat.__addLocaleData({ "data": { "units": { "simple": { "degree": { "long": { "other": "{0} degrees", "one": "{0} degree" }, "short": { "other": "{0} deg" }, "narrow": { "other": "{0}°" }, "perUnit": {} }, "hectare": { "long": { "other": "{0} hectares", "one": "{0} hectare" }, "short": { "other": "{0} ha" }, "narrow": { "other": "{0}ha" }, "perUnit": {} }, "acre": { "long": { "other": "{0} acres", "one": "{0} acre" }, "short": { "other": "{0} ac" }, "narrow": { "other": "{0}ac" }, "perUnit": {} }, "percent": { "long": { "other": "{0} percent" }, "short": { "other": "{0}%" }, "narrow": { "other": "{0}%" }, "perUnit": {} }, "liter-per-kilometer": { "long": { "other": "{0} liters per kilometer", "one": "{0} liter per kilometer" }, "short": { "other": "{0} L/km" }, "narrow": { "other": "{0}L/km" }, "perUnit": {} }, "mile-per-gallon": { "long": { "other": "{0} miles per gallon", "one": "{0} mile per gallon" }, "short": { "other": "{0} mpg" }, "narrow": { "other": "{0}mpg" }, "perUnit": {} }, "petabyte": { "long": { "other": "{0} petabytes", "one": "{0} petabyte" }, "short": { "other": "{0} PB" }, "narrow": { "other": "{0}PB" }, "perUnit": {} }, "terabyte": { "long": { "other": "{0} terabytes", "one": "{0} terabyte" }, "short": { "other": "{0} TB" }, "narrow": { "other": "{0}TB" }, "perUnit": {} }, "terabit": { "long": { "other": "{0} terabits", "one": "{0} terabit" }, "short": { "other": "{0} Tb" }, "narrow": { "other": "{0}Tb" }, "perUnit": {} }, "gigabyte": { "long": { "other": "{0} gigabytes", "one": "{0} gigabyte" }, "short": { "other": "{0} GB" }, "narrow": { "other": "{0}GB" }, "perUnit": {} }, "gigabit": { "long": { "other": "{0} gigabits", "one": "{0} gigabit" }, "short": { "other": "{0} Gb" }, "narrow": { "other": "{0}Gb" }, "perUnit": {} }, "megabyte": { "long": { "other": "{0} megabytes", "one": "{0} megabyte" }, "short": { "other": "{0} MB" }, "narrow": { "other": "{0}MB" }, "perUnit": {} }, "megabit": { "long": { "other": "{0} megabits", "one": "{0} megabit" }, "short": { "other": "{0} Mb" }, "narrow": { "other": "{0}Mb" }, "perUnit": {} }, "kilobyte": { "long": { "other": "{0} kilobytes", "one": "{0} kilobyte" }, "short": { "other": "{0} kB" }, "narrow": { "other": "{0}kB" }, "perUnit": {} }, "kilobit": { "long": { "other": "{0} kilobits", "one": "{0} kilobit" }, "short": { "other": "{0} kb" }, "narrow": { "other": "{0}kb" }, "perUnit": {} }, "byte": { "long": { "other": "{0} bytes", "one": "{0} byte" }, "short": { "other": "{0} byte" }, "narrow": { "other": "{0}B" }, "perUnit": {} }, "bit": { "long": { "other": "{0} bits", "one": "{0} bit" }, "short": { "other": "{0} bit" }, "narrow": { "other": "{0}bit" }, "perUnit": {} }, "year": { "long": { "other": "{0} years", "one": "{0} year" }, "short": { "other": "{0} yrs", "one": "{0} yr" }, "narrow": { "other": "{0}y" }, "perUnit": { "long": "{0} per year", "short": "{0}/y", "narrow": "{0}/y" } }, "month": { "long": { "other": "{0} months", "one": "{0} month" }, "short": { "other": "{0} mths", "one": "{0} mth" }, "narrow": { "other": "{0}m" }, "perUnit": { "long": "{0} per month", "short": "{0}/m", "narrow": "{0}/m" } }, "week": { "long": { "other": "{0} weeks", "one": "{0} week" }, "short": { "other": "{0} wks", "one": "{0} wk" }, "narrow": { "other": "{0}w" }, "perUnit": { "long": "{0} per week", "short": "{0}/w", "narrow": "{0}/w" } }, "day": { "long": { "other": "{0} days", "one": "{0} day" }, "short": { "other": "{0} days", "one": "{0} day" }, "narrow": { "other": "{0}d" }, "perUnit": { "long": "{0} per day", "short": "{0}/d", "narrow": "{0}/d" } }, "hour": { "long": { "other": "{0} hours", "one": "{0} hour" }, "short": { "other": "{0} hr" }, "narrow": { "other": "{0}h" }, "perUnit": { "long": "{0} per hour", "short": "{0}/h", "narrow": "{0}/h" } }, "minute": { "long": { "other": "{0} minutes", "one": "{0} minute" }, "short": { "other": "{0} min" }, "narrow": { "other": "{0}m" }, "perUnit": { "long": "{0} per minute", "short": "{0}/min", "narrow": "{0}/min" } }, "second": { "long": { "other": "{0} seconds", "one": "{0} second" }, "short": { "other": "{0} sec" }, "narrow": { "other": "{0}s" }, "perUnit": { "long": "{0} per second", "short": "{0}/s", "narrow": "{0}/s" } }, "millisecond": { "long": { "other": "{0} milliseconds", "one": "{0} millisecond" }, "short": { "other": "{0} ms" }, "narrow": { "other": "{0}ms" }, "perUnit": {} }, "kilometer": { "long": { "other": "{0} kilometers", "one": "{0} kilometer" }, "short": { "other": "{0} km" }, "narrow": { "other": "{0}km" }, "perUnit": { "long": "{0} per kilometer", "short": "{0}/km", "narrow": "{0}/km" } }, "meter": { "long": { "other": "{0} meters", "one": "{0} meter" }, "short": { "other": "{0} m" }, "narrow": { "other": "{0}m" }, "perUnit": { "long": "{0} per meter", "short": "{0}/m", "narrow": "{0}/m" } }, "centimeter": { "long": { "other": "{0} centimeters", "one": "{0} centimeter" }, "short": { "other": "{0} cm" }, "narrow": { "other": "{0}cm" }, "perUnit": { "long": "{0} per centimeter", "short": "{0}/cm", "narrow": "{0}/cm" } }, "millimeter": { "long": { "other": "{0} millimeters", "one": "{0} millimeter" }, "short": { "other": "{0} mm" }, "narrow": { "other": "{0}mm" }, "perUnit": {} }, "mile": { "long": { "other": "{0} miles", "one": "{0} mile" }, "short": { "other": "{0} mi" }, "narrow": { "other": "{0}mi" }, "perUnit": {} }, "yard": { "long": { "other": "{0} yards", "one": "{0} yard" }, "short": { "other": "{0} yd" }, "narrow": { "other": "{0}yd" }, "perUnit": {} }, "foot": { "long": { "other": "{0} feet", "one": "{0} foot" }, "short": { "other": "{0} ft" }, "narrow": { "other": "{0}′" }, "perUnit": { "long": "{0} per foot", "short": "{0}/ft", "narrow": "{0}/ft" } }, "inch": { "long": { "other": "{0} inches", "one": "{0} inch" }, "short": { "other": "{0} in" }, "narrow": { "other": "{0}″" }, "perUnit": { "long": "{0} per inch", "short": "{0}/in", "narrow": "{0}/in" } }, "mile-scandinavian": { "long": { "other": "{0} miles-scandinavian", "one": "{0} mile-scandinavian" }, "short": { "other": "{0} smi" }, "narrow": { "other": "{0}smi" }, "perUnit": {} }, "kilogram": { "long": { "other": "{0} kilograms", "one": "{0} kilogram" }, "short": { "other": "{0} kg" }, "narrow": { "other": "{0}kg" }, "perUnit": { "long": "{0} per kilogram", "short": "{0}/kg", "narrow": "{0}/kg" } }, "gram": { "long": { "other": "{0} grams", "one": "{0} gram" }, "short": { "other": "{0} g" }, "narrow": { "other": "{0}g" }, "perUnit": { "long": "{0} per gram", "short": "{0}/g", "narrow": "{0}/g" } }, "stone": { "long": { "other": "{0} stones", "one": "{0} stone" }, "short": { "other": "{0} st" }, "narrow": { "other": "{0}st" }, "perUnit": {} }, "pound": { "long": { "other": "{0} pounds", "one": "{0} pound" }, "short": { "other": "{0} lb" }, "narrow": { "other": "{0}#" }, "perUnit": { "long": "{0} per pound", "short": "{0}/lb", "narrow": "{0}/lb" } }, "ounce": { "long": { "other": "{0} ounces", "one": "{0} ounce" }, "short": { "other": "{0} oz" }, "narrow": { "other": "{0}oz" }, "perUnit": { "long": "{0} per ounce", "short": "{0}/oz", "narrow": "{0}/oz" } }, "kilometer-per-hour": { "long": { "other": "{0} kilometers per hour", "one": "{0} kilometer per hour" }, "short": { "other": "{0} km/h" }, "narrow": { "other": "{0}km/h" }, "perUnit": {} }, "meter-per-second": { "long": { "other": "{0} meters per second", "one": "{0} meter per second" }, "short": { "other": "{0} m/s" }, "narrow": { "other": "{0}m/s" }, "perUnit": {} }, "mile-per-hour": { "long": { "other": "{0} miles per hour", "one": "{0} mile per hour" }, "short": { "other": "{0} mph" }, "narrow": { "other": "{0}mph" }, "perUnit": {} }, "celsius": { "long": { "other": "{0} degrees Celsius", "one": "{0} degree Celsius" }, "short": { "other": "{0}°C" }, "narrow": { "other": "{0}°C" }, "perUnit": {} }, "fahrenheit": { "long": { "other": "{0} degrees Fahrenheit", "one": "{0} degree Fahrenheit" }, "short": { "other": "{0}°F" }, "narrow": { "other": "{0}°" }, "perUnit": {} }, "liter": { "long": { "other": "{0} liters", "one": "{0} liter" }, "short": { "other": "{0} L" }, "narrow": { "other": "{0}L" }, "perUnit": { "long": "{0} per liter", "short": "{0}/L", "narrow": "{0}/L" } }, "milliliter": { "long": { "other": "{0} milliliters", "one": "{0} milliliter" }, "short": { "other": "{0} mL" }, "narrow": { "other": "{0}mL" }, "perUnit": {} }, "gallon": { "long": { "other": "{0} gallons", "one": "{0} gallon" }, "short": { "other": "{0} gal" }, "narrow": { "other": "{0}gal" }, "perUnit": { "long": "{0} per gallon", "short": "{0}/gal US", "narrow": "{0}/gal" } }, "fluid-ounce": { "long": { "other": "{0} fluid ounces", "one": "{0} fluid ounce" }, "short": { "other": "{0} fl oz" }, "narrow": { "other": "{0}fl oz" }, "perUnit": {} } }, "compound": { "per": { "long": "{0} per {1}", "short": "{0}/{1}", "narrow": "{0}/{1}" } } }, "currencies": { "ADP": { "displayName": { "other": "Andorran pesetas", "one": "Andorran peseta" }, "symbol": "ADP", "narrow": "ADP" }, "AED": { "displayName": { "other": "UAE dirhams", "one": "UAE dirham" }, "symbol": "AED", "narrow": "AED" }, "AFA": { "displayName": { "other": "Afghan afghanis (1927–2002)", "one": "Afghan afghani (1927–2002)" }, "symbol": "AFA", "narrow": "AFA" }, "AFN": { "displayName": { "other": "Afghan Afghanis", "one": "Afghan Afghani" }, "symbol": "AFN", "narrow": "؋" }, "ALK": { "displayName": { "other": "Albanian lekë (1946–1965)", "one": "Albanian lek (1946–1965)" }, "symbol": "ALK", "narrow": "ALK" }, "ALL": { "displayName": { "other": "Albanian lekë", "one": "Albanian lek" }, "symbol": "ALL", "narrow": "ALL" }, "AMD": { "displayName": { "other": "Armenian drams", "one": "Armenian dram" }, "symbol": "AMD", "narrow": "֏" }, "ANG": { "displayName": { "other": "Netherlands Antillean guilders", "one": "Netherlands Antillean guilder" }, "symbol": "ANG", "narrow": "ANG" }, "AOA": { "displayName": { "other": "Angolan kwanzas", "one": "Angolan kwanza" }, "symbol": "AOA", "narrow": "Kz" }, "AOK": { "displayName": { "other": "Angolan kwanzas (1977–1991)", "one": "Angolan kwanza (1977–1991)" }, "symbol": "AOK", "narrow": "AOK" }, "AON": { "displayName": { "other": "Angolan new kwanzas (1990–2000)", "one": "Angolan new kwanza (1990–2000)" }, "symbol": "AON", "narrow": "AON" }, "AOR": { "displayName": { "other": "Angolan readjusted kwanzas (1995–1999)", "one": "Angolan readjusted kwanza (1995–1999)" }, "symbol": "AOR", "narrow": "AOR" }, "ARA": { "displayName": { "other": "Argentine australs", "one": "Argentine austral" }, "symbol": "ARA", "narrow": "ARA" }, "ARL": { "displayName": { "other": "Argentine pesos ley (1970–1983)", "one": "Argentine peso ley (1970–1983)" }, "symbol": "ARL", "narrow": "ARL" }, "ARM": { "displayName": { "other": "Argentine pesos (1881–1970)", "one": "Argentine peso (1881–1970)" }, "symbol": "ARM", "narrow": "ARM" }, "ARP": { "displayName": { "other": "Argentine pesos (1983–1985)", "one": "Argentine peso (1983–1985)" }, "symbol": "ARP", "narrow": "ARP" }, "ARS": { "displayName": { "other": "Argentine pesos", "one": "Argentine peso" }, "symbol": "ARS", "narrow": "$" }, "ATS": { "displayName": { "other": "Austrian schillings", "one": "Austrian schilling" }, "symbol": "ATS", "narrow": "ATS" }, "AUD": { "displayName": { "other": "Australian dollars", "one": "Australian dollar" }, "symbol": "A$", "narrow": "$" }, "AWG": { "displayName": { "other": "Aruban florin" }, "symbol": "AWG", "narrow": "AWG" }, "AZM": { "displayName": { "other": "Azerbaijani manats (1993–2006)", "one": "Azerbaijani manat (1993–2006)" }, "symbol": "AZM", "narrow": "AZM" }, "AZN": { "displayName": { "other": "Azerbaijani manats", "one": "Azerbaijani manat" }, "symbol": "AZN", "narrow": "₼" }, "BAD": { "displayName": { "other": "Bosnia-Herzegovina dinars (1992–1994)", "one": "Bosnia-Herzegovina dinar (1992–1994)" }, "symbol": "BAD", "narrow": "BAD" }, "BAM": { "displayName": { "other": "Bosnia-Herzegovina convertible marks", "one": "Bosnia-Herzegovina convertible mark" }, "symbol": "BAM", "narrow": "KM" }, "BAN": { "displayName": { "other": "Bosnia-Herzegovina new dinars (1994–1997)", "one": "Bosnia-Herzegovina new dinar (1994–1997)" }, "symbol": "BAN", "narrow": "BAN" }, "BBD": { "displayName": { "other": "Barbadian dollars", "one": "Barbadian dollar" }, "symbol": "BBD", "narrow": "$" }, "BDT": { "displayName": { "other": "Bangladeshi takas", "one": "Bangladeshi taka" }, "symbol": "BDT", "narrow": "৳" }, "BEC": { "displayName": { "other": "Belgian francs (convertible)", "one": "Belgian franc (convertible)" }, "symbol": "BEC", "narrow": "BEC" }, "BEF": { "displayName": { "other": "Belgian francs", "one": "Belgian franc" }, "symbol": "BEF", "narrow": "BEF" }, "BEL": { "displayName": { "other": "Belgian francs (financial)", "one": "Belgian franc (financial)" }, "symbol": "BEL", "narrow": "BEL" }, "BGL": { "displayName": { "other": "Bulgarian hard leva", "one": "Bulgarian hard lev" }, "symbol": "BGL", "narrow": "BGL" }, "BGM": { "displayName": { "other": "Bulgarian socialist leva", "one": "Bulgarian socialist lev" }, "symbol": "BGM", "narrow": "BGM" }, "BGN": { "displayName": { "other": "Bulgarian leva", "one": "Bulgarian lev" }, "symbol": "BGN", "narrow": "BGN" }, "BGO": { "displayName": { "other": "Bulgarian leva (1879–1952)", "one": "Bulgarian lev (1879–1952)" }, "symbol": "BGO", "narrow": "BGO" }, "BHD": { "displayName": { "other": "Bahraini dinars", "one": "Bahraini dinar" }, "symbol": "BHD", "narrow": "BHD" }, "BIF": { "displayName": { "other": "Burundian francs", "one": "Burundian franc" }, "symbol": "BIF", "narrow": "BIF" }, "BMD": { "displayName": { "other": "Bermudan dollars", "one": "Bermudan dollar" }, "symbol": "BMD", "narrow": "$" }, "BND": { "displayName": { "other": "Brunei dollars", "one": "Brunei dollar" }, "symbol": "BND", "narrow": "$" }, "BOB": { "displayName": { "other": "Bolivian bolivianos", "one": "Bolivian boliviano" }, "symbol": "BOB", "narrow": "Bs" }, "BOL": { "displayName": { "other": "Bolivian bolivianos (1863–1963)", "one": "Bolivian boliviano (1863–1963)" }, "symbol": "BOL", "narrow": "BOL" }, "BOP": { "displayName": { "other": "Bolivian pesos", "one": "Bolivian peso" }, "symbol": "BOP", "narrow": "BOP" }, "BOV": { "displayName": { "other": "Bolivian mvdols", "one": "Bolivian mvdol" }, "symbol": "BOV", "narrow": "BOV" }, "BRB": { "displayName": { "other": "Brazilian new cruzeiros (1967–1986)", "one": "Brazilian new cruzeiro (1967–1986)" }, "symbol": "BRB", "narrow": "BRB" }, "BRC": { "displayName": { "other": "Brazilian cruzados (1986–1989)", "one": "Brazilian cruzado (1986–1989)" }, "symbol": "BRC", "narrow": "BRC" }, "BRE": { "displayName": { "other": "Brazilian cruzeiros (1990–1993)", "one": "Brazilian cruzeiro (1990–1993)" }, "symbol": "BRE", "narrow": "BRE" }, "BRL": { "displayName": { "other": "Brazilian reals", "one": "Brazilian real" }, "symbol": "R$", "narrow": "R$" }, "BRN": { "displayName": { "other": "Brazilian new cruzados (1989–1990)", "one": "Brazilian new cruzado (1989–1990)" }, "symbol": "BRN", "narrow": "BRN" }, "BRR": { "displayName": { "other": "Brazilian cruzeiros (1993–1994)", "one": "Brazilian cruzeiro (1993–1994)" }, "symbol": "BRR", "narrow": "BRR" }, "BRZ": { "displayName": { "other": "Brazilian cruzeiros (1942–1967)", "one": "Brazilian cruzeiro (1942–1967)" }, "symbol": "BRZ", "narrow": "BRZ" }, "BSD": { "displayName": { "other": "Bahamian dollars", "one": "Bahamian dollar" }, "symbol": "BSD", "narrow": "$" }, "BTN": { "displayName": { "other": "Bhutanese ngultrums", "one": "Bhutanese ngultrum" }, "symbol": "BTN", "narrow": "BTN" }, "BUK": { "displayName": { "other": "Burmese kyats", "one": "Burmese kyat" }, "symbol": "BUK", "narrow": "BUK" }, "BWP": { "displayName": { "other": "Botswanan pulas", "one": "Botswanan pula" }, "symbol": "BWP", "narrow": "P" }, "BYB": { "displayName": { "other": "Belarusian rubles (1994–1999)", "one": "Belarusian ruble (1994–1999)" }, "symbol": "BYB", "narrow": "BYB" }, "BYN": { "displayName": { "other": "Belarusian rubles", "one": "Belarusian ruble" }, "symbol": "BYN", "narrow": "р." }, "BYR": { "displayName": { "other": "Belarusian rubles (2000–2016)", "one": "Belarusian ruble (2000–2016)" }, "symbol": "BYR", "narrow": "BYR" }, "BZD": { "displayName": { "other": "Belize dollars", "one": "Belize dollar" }, "symbol": "BZD", "narrow": "$" }, "CAD": { "displayName": { "other": "Canadian dollars", "one": "Canadian dollar" }, "symbol": "CA$", "narrow": "$" }, "CDF": { "displayName": { "other": "Congolese francs", "one": "Congolese franc" }, "symbol": "CDF", "narrow": "CDF" }, "CHE": { "displayName": { "other": "WIR euros", "one": "WIR euro" }, "symbol": "CHE", "narrow": "CHE" }, "CHF": { "displayName": { "other": "Swiss francs", "one": "Swiss franc" }, "symbol": "CHF", "narrow": "CHF" }, "CHW": { "displayName": { "other": "WIR francs", "one": "WIR franc" }, "symbol": "CHW", "narrow": "CHW" }, "CLE": { "displayName": { "other": "Chilean escudos", "one": "Chilean escudo" }, "symbol": "CLE", "narrow": "CLE" }, "CLF": { "displayName": { "other": "Chilean units of account (UF)", "one": "Chilean unit of account (UF)" }, "symbol": "CLF", "narrow": "CLF" }, "CLP": { "displayName": { "other": "Chilean pesos", "one": "Chilean peso" }, "symbol": "CLP", "narrow": "$" }, "CNH": { "displayName": { "other": "Chinese yuan (offshore)" }, "symbol": "CNH", "narrow": "CNH" }, "CNX": { "displayName": { "other": "Chinese People’s Bank dollars", "one": "Chinese People’s Bank dollar" }, "symbol": "CNX", "narrow": "CNX" }, "CNY": { "displayName": { "other": "Chinese yuan" }, "symbol": "CN¥", "narrow": "¥" }, "COP": { "displayName": { "other": "Colombian pesos", "one": "Colombian peso" }, "symbol": "COP", "narrow": "$" }, "COU": { "displayName": { "other": "Colombian real value units", "one": "Colombian real value unit" }, "symbol": "COU", "narrow": "COU" }, "CRC": { "displayName": { "other": "Costa Rican colóns", "one": "Costa Rican colón" }, "symbol": "CRC", "narrow": "₡" }, "CSD": { "displayName": { "other": "Serbian dinars (2002–2006)", "one": "Serbian dinar (2002–2006)" }, "symbol": "CSD", "narrow": "CSD" }, "CSK": { "displayName": { "other": "Czechoslovak hard korunas", "one": "Czechoslovak hard koruna" }, "symbol": "CSK", "narrow": "CSK" }, "CUC": { "displayName": { "other": "Cuban convertible pesos", "one": "Cuban convertible peso" }, "symbol": "CUC", "narrow": "$" }, "CUP": { "displayName": { "other": "Cuban pesos", "one": "Cuban peso" }, "symbol": "CUP", "narrow": "$" }, "CVE": { "displayName": { "other": "Cape Verdean escudos", "one": "Cape Verdean escudo" }, "symbol": "CVE", "narrow": "CVE" }, "CYP": { "displayName": { "other": "Cypriot pounds", "one": "Cypriot pound" }, "symbol": "CYP", "narrow": "CYP" }, "CZK": { "displayName": { "other": "Czech korunas", "one": "Czech koruna" }, "symbol": "CZK", "narrow": "Kč" }, "DDM": { "displayName": { "other": "East German marks", "one": "East German mark" }, "symbol": "DDM", "narrow": "DDM" }, "DEM": { "displayName": { "other": "German marks", "one": "German mark" }, "symbol": "DEM", "narrow": "DEM" }, "DJF": { "displayName": { "other": "Djiboutian francs", "one": "Djiboutian franc" }, "symbol": "DJF", "narrow": "DJF" }, "DKK": { "displayName": { "other": "Danish kroner", "one": "Danish krone" }, "symbol": "DKK", "narrow": "kr" }, "DOP": { "displayName": { "other": "Dominican pesos", "one": "Dominican peso" }, "symbol": "DOP", "narrow": "$" }, "DZD": { "displayName": { "other": "Algerian dinars", "one": "Algerian dinar" }, "symbol": "DZD", "narrow": "DZD" }, "ECS": { "displayName": { "other": "Ecuadorian sucres", "one": "Ecuadorian sucre" }, "symbol": "ECS", "narrow": "ECS" }, "ECV": { "displayName": { "other": "Ecuadorian units of constant value", "one": "Ecuadorian unit of constant value" }, "symbol": "ECV", "narrow": "ECV" }, "EEK": { "displayName": { "other": "Estonian kroons", "one": "Estonian kroon" }, "symbol": "EEK", "narrow": "EEK" }, "EGP": { "displayName": { "other": "Egyptian pounds", "one": "Egyptian pound" }, "symbol": "EGP", "narrow": "E£" }, "ERN": { "displayName": { "other": "Eritrean nakfas", "one": "Eritrean nakfa" }, "symbol": "ERN", "narrow": "ERN" }, "ESA": { "displayName": { "other": "Spanish pesetas (A account)", "one": "Spanish peseta (A account)" }, "symbol": "ESA", "narrow": "ESA" }, "ESB": { "displayName": { "other": "Spanish pesetas (convertible account)", "one": "Spanish peseta (convertible account)" }, "symbol": "ESB", "narrow": "ESB" }, "ESP": { "displayName": { "other": "Spanish pesetas", "one": "Spanish peseta" }, "symbol": "ESP", "narrow": "₧" }, "ETB": { "displayName": { "other": "Ethiopian birrs", "one": "Ethiopian birr" }, "symbol": "ETB", "narrow": "ETB" }, "EUR": { "displayName": { "other": "euros", "one": "euro" }, "symbol": "€", "narrow": "€" }, "FIM": { "displayName": { "other": "Finnish markkas", "one": "Finnish markka" }, "symbol": "FIM", "narrow": "FIM" }, "FJD": { "displayName": { "other": "Fijian dollars", "one": "Fijian dollar" }, "symbol": "FJD", "narrow": "$" }, "FKP": { "displayName": { "other": "Falkland Islands pounds", "one": "Falkland Islands pound" }, "symbol": "FKP", "narrow": "£" }, "FRF": { "displayName": { "other": "French francs", "one": "French franc" }, "symbol": "FRF", "narrow": "FRF" }, "GBP": { "displayName": { "other": "British pounds", "one": "British pound" }, "symbol": "£", "narrow": "£" }, "GEK": { "displayName": { "other": "Georgian kupon larits", "one": "Georgian kupon larit" }, "symbol": "GEK", "narrow": "GEK" }, "GEL": { "displayName": { "other": "Georgian laris", "one": "Georgian lari" }, "symbol": "GEL", "narrow": "₾" }, "GHC": { "displayName": { "other": "Ghanaian cedis (1979–2007)", "one": "Ghanaian cedi (1979–2007)" }, "symbol": "GHC", "narrow": "GHC" }, "GHS": { "displayName": { "other": "Ghanaian cedis", "one": "Ghanaian cedi" }, "symbol": "GHS", "narrow": "GH₵" }, "GIP": { "displayName": { "other": "Gibraltar pounds", "one": "Gibraltar pound" }, "symbol": "GIP", "narrow": "£" }, "GMD": { "displayName": { "other": "Gambian dalasis", "one": "Gambian dalasi" }, "symbol": "GMD", "narrow": "GMD" }, "GNF": { "displayName": { "other": "Guinean francs", "one": "Guinean franc" }, "symbol": "GNF", "narrow": "FG" }, "GNS": { "displayName": { "other": "Guinean sylis", "one": "Guinean syli" }, "symbol": "GNS", "narrow": "GNS" }, "GQE": { "displayName": { "other": "Equatorial Guinean ekwele" }, "symbol": "GQE", "narrow": "GQE" }, "GRD": { "displayName": { "other": "Greek drachmas", "one": "Greek drachma" }, "symbol": "GRD", "narrow": "GRD" }, "GTQ": { "displayName": { "other": "Guatemalan quetzals", "one": "Guatemalan quetzal" }, "symbol": "GTQ", "narrow": "Q" }, "GWE": { "displayName": { "other": "Portuguese Guinea escudos", "one": "Portuguese Guinea escudo" }, "symbol": "GWE", "narrow": "GWE" }, "GWP": { "displayName": { "other": "Guinea-Bissau pesos", "one": "Guinea-Bissau peso" }, "symbol": "GWP", "narrow": "GWP" }, "GYD": { "displayName": { "other": "Guyanaese dollars", "one": "Guyanaese dollar" }, "symbol": "GYD", "narrow": "$" }, "HKD": { "displayName": { "other": "Hong Kong dollars", "one": "Hong Kong dollar" }, "symbol": "HK$", "narrow": "$" }, "HNL": { "displayName": { "other": "Honduran lempiras", "one": "Honduran lempira" }, "symbol": "HNL", "narrow": "L" }, "HRD": { "displayName": { "other": "Croatian dinars", "one": "Croatian dinar" }, "symbol": "HRD", "narrow": "HRD" }, "HRK": { "displayName": { "other": "Croatian kunas", "one": "Croatian kuna" }, "symbol": "HRK", "narrow": "kn" }, "HTG": { "displayName": { "other": "Haitian gourdes", "one": "Haitian gourde" }, "symbol": "HTG", "narrow": "HTG" }, "HUF": { "displayName": { "other": "Hungarian forints", "one": "Hungarian forint" }, "symbol": "HUF", "narrow": "Ft" }, "IDR": { "displayName": { "other": "Indonesian rupiahs", "one": "Indonesian rupiah" }, "symbol": "IDR", "narrow": "Rp" }, "IEP": { "displayName": { "other": "Irish pounds", "one": "Irish pound" }, "symbol": "IEP", "narrow": "IEP" }, "ILP": { "displayName": { "other": "Israeli pounds", "one": "Israeli pound" }, "symbol": "ILP", "narrow": "ILP" }, "ILR": { "displayName": { "other": "Israeli shekels (1980–1985)", "one": "Israeli shekel (1980–1985)" }, "symbol": "ILR", "narrow": "ILR" }, "ILS": { "displayName": { "other": "Israeli new shekels", "one": "Israeli new shekel" }, "symbol": "₪", "narrow": "₪" }, "INR": { "displayName": { "other": "Indian rupees", "one": "Indian rupee" }, "symbol": "₹", "narrow": "₹" }, "IQD": { "displayName": { "other": "Iraqi dinars", "one": "Iraqi dinar" }, "symbol": "IQD", "narrow": "IQD" }, "IRR": { "displayName": { "other": "Iranian rials", "one": "Iranian rial" }, "symbol": "IRR", "narrow": "IRR" }, "ISJ": { "displayName": { "other": "Icelandic krónur (1918–1981)", "one": "Icelandic króna (1918–1981)" }, "symbol": "ISJ", "narrow": "ISJ" }, "ISK": { "displayName": { "other": "Icelandic krónur", "one": "Icelandic króna" }, "symbol": "ISK", "narrow": "kr" }, "ITL": { "displayName": { "other": "Italian liras", "one": "Italian lira" }, "symbol": "ITL", "narrow": "ITL" }, "JMD": { "displayName": { "other": "Jamaican dollars", "one": "Jamaican dollar" }, "symbol": "JMD", "narrow": "$" }, "JOD": { "displayName": { "other": "Jordanian dinars", "one": "Jordanian dinar" }, "symbol": "JOD", "narrow": "JOD" }, "JPY": { "displayName": { "other": "Japanese yen" }, "symbol": "¥", "narrow": "¥" }, "KES": { "displayName": { "other": "Kenyan shillings", "one": "Kenyan shilling" }, "symbol": "KES", "narrow": "KES" }, "KGS": { "displayName": { "other": "Kyrgystani soms", "one": "Kyrgystani som" }, "symbol": "KGS", "narrow": "KGS" }, "KHR": { "displayName": { "other": "Cambodian riels", "one": "Cambodian riel" }, "symbol": "KHR", "narrow": "៛" }, "KMF": { "displayName": { "other": "Comorian francs", "one": "Comorian franc" }, "symbol": "KMF", "narrow": "CF" }, "KPW": { "displayName": { "other": "North Korean won" }, "symbol": "KPW", "narrow": "₩" }, "KRH": { "displayName": { "other": "South Korean hwan (1953–1962)" }, "symbol": "KRH", "narrow": "KRH" }, "KRO": { "displayName": { "other": "South Korean won (1945–1953)" }, "symbol": "KRO", "narrow": "KRO" }, "KRW": { "displayName": { "other": "South Korean won" }, "symbol": "₩", "narrow": "₩" }, "KWD": { "displayName": { "other": "Kuwaiti dinars", "one": "Kuwaiti dinar" }, "symbol": "KWD", "narrow": "KWD" }, "KYD": { "displayName": { "other": "Cayman Islands dollars", "one": "Cayman Islands dollar" }, "symbol": "KYD", "narrow": "$" }, "KZT": { "displayName": { "other": "Kazakhstani tenges", "one": "Kazakhstani tenge" }, "symbol": "KZT", "narrow": "₸" }, "LAK": { "displayName": { "other": "Laotian kips", "one": "Laotian kip" }, "symbol": "LAK", "narrow": "₭" }, "LBP": { "displayName": { "other": "Lebanese pounds", "one": "Lebanese pound" }, "symbol": "LBP", "narrow": "L£" }, "LKR": { "displayName": { "other": "Sri Lankan rupees", "one": "Sri Lankan rupee" }, "symbol": "LKR", "narrow": "Rs" }, "LRD": { "displayName": { "other": "Liberian dollars", "one": "Liberian dollar" }, "symbol": "LRD", "narrow": "$" }, "LSL": { "displayName": { "other": "Lesotho lotis", "one": "Lesotho loti" }, "symbol": "LSL", "narrow": "LSL" }, "LTL": { "displayName": { "other": "Lithuanian litai", "one": "Lithuanian litas" }, "symbol": "LTL", "narrow": "Lt" }, "LTT": { "displayName": { "other": "Lithuanian talonases", "one": "Lithuanian talonas" }, "symbol": "LTT", "narrow": "LTT" }, "LUC": { "displayName": { "other": "Luxembourgian convertible francs", "one": "Luxembourgian convertible franc" }, "symbol": "LUC", "narrow": "LUC" }, "LUF": { "displayName": { "other": "Luxembourgian francs", "one": "Luxembourgian franc" }, "symbol": "LUF", "narrow": "LUF" }, "LUL": { "displayName": { "other": "Luxembourg financial francs", "one": "Luxembourg financial franc" }, "symbol": "LUL", "narrow": "LUL" }, "LVL": { "displayName": { "other": "Latvian lati", "one": "Latvian lats" }, "symbol": "LVL", "narrow": "Ls" }, "LVR": { "displayName": { "other": "Latvian rubles", "one": "Latvian ruble" }, "symbol": "LVR", "narrow": "LVR" }, "LYD": { "displayName": { "other": "Libyan dinars", "one": "Libyan dinar" }, "symbol": "LYD", "narrow": "LYD" }, "MAD": { "displayName": { "other": "Moroccan dirhams", "one": "Moroccan dirham" }, "symbol": "MAD", "narrow": "MAD" }, "MAF": { "displayName": { "other": "Moroccan francs", "one": "Moroccan franc" }, "symbol": "MAF", "narrow": "MAF" }, "MCF": { "displayName": { "other": "Monegasque francs", "one": "Monegasque franc" }, "symbol": "MCF", "narrow": "MCF" }, "MDC": { "displayName": { "other": "Moldovan cupon" }, "symbol": "MDC", "narrow": "MDC" }, "MDL": { "displayName": { "other": "Moldovan lei", "one": "Moldovan leu" }, "symbol": "MDL", "narrow": "MDL" }, "MGA": { "displayName": { "other": "Malagasy ariaries", "one": "Malagasy ariary" }, "symbol": "MGA", "narrow": "Ar" }, "MGF": { "displayName": { "other": "Malagasy francs", "one": "Malagasy franc" }, "symbol": "MGF", "narrow": "MGF" }, "MKD": { "displayName": { "other": "Macedonian denari", "one": "Macedonian denar" }, "symbol": "MKD", "narrow": "MKD" }, "MKN": { "displayName": { "other": "Macedonian denari (1992–1993)", "one": "Macedonian denar (1992–1993)" }, "symbol": "MKN", "narrow": "MKN" }, "MLF": { "displayName": { "other": "Malian francs", "one": "Malian franc" }, "symbol": "MLF", "narrow": "MLF" }, "MMK": { "displayName": { "other": "Myanmar kyats", "one": "Myanmar kyat" }, "symbol": "MMK", "narrow": "K" }, "MNT": { "displayName": { "other": "Mongolian tugriks", "one": "Mongolian tugrik" }, "symbol": "MNT", "narrow": "₮" }, "MOP": { "displayName": { "other": "Macanese patacas", "one": "Macanese pataca" }, "symbol": "MOP", "narrow": "MOP" }, "MRO": { "displayName": { "other": "Mauritanian ouguiyas (1973–2017)", "one": "Mauritanian ouguiya (1973–2017)" }, "symbol": "MRO", "narrow": "MRO" }, "MRU": { "displayName": { "other": "Mauritanian ouguiyas", "one": "Mauritanian ouguiya" }, "symbol": "MRU", "narrow": "MRU" }, "MTL": { "displayName": { "other": "Maltese lira" }, "symbol": "MTL", "narrow": "MTL" }, "MTP": { "displayName": { "other": "Maltese pounds", "one": "Maltese pound" }, "symbol": "MTP", "narrow": "MTP" }, "MUR": { "displayName": { "other": "Mauritian rupees", "one": "Mauritian rupee" }, "symbol": "MUR", "narrow": "Rs" }, "MVP": { "displayName": { "other": "Maldivian rupees (1947–1981)", "one": "Maldivian rupee (1947–1981)" }, "symbol": "MVP", "narrow": "MVP" }, "MVR": { "displayName": { "other": "Maldivian rufiyaas", "one": "Maldivian rufiyaa" }, "symbol": "MVR", "narrow": "MVR" }, "MWK": { "displayName": { "other": "Malawian kwachas", "one": "Malawian kwacha" }, "symbol": "MWK", "narrow": "MWK" }, "MXN": { "displayName": { "other": "Mexican pesos", "one": "Mexican peso" }, "symbol": "MX$", "narrow": "$" }, "MXP": { "displayName": { "other": "Mexican silver pesos (1861–1992)", "one": "Mexican silver peso (1861–1992)" }, "symbol": "MXP", "narrow": "MXP" }, "MXV": { "displayName": { "other": "Mexican investment units", "one": "Mexican investment unit" }, "symbol": "MXV", "narrow": "MXV" }, "MYR": { "displayName": { "other": "Malaysian ringgits", "one": "Malaysian ringgit" }, "symbol": "MYR", "narrow": "RM" }, "MZE": { "displayName": { "other": "Mozambican escudos", "one": "Mozambican escudo" }, "symbol": "MZE", "narrow": "MZE" }, "MZM": { "displayName": { "other": "Mozambican meticals (1980–2006)", "one": "Mozambican metical (1980–2006)" }, "symbol": "MZM", "narrow": "MZM" }, "MZN": { "displayName": { "other": "Mozambican meticals", "one": "Mozambican metical" }, "symbol": "MZN", "narrow": "MZN" }, "NAD": { "displayName": { "other": "Namibian dollars", "one": "Namibian dollar" }, "symbol": "NAD", "narrow": "$" }, "NGN": { "displayName": { "other": "Nigerian nairas", "one": "Nigerian naira" }, "symbol": "NGN", "narrow": "₦" }, "NIC": { "displayName": { "other": "Nicaraguan córdobas (1988–1991)", "one": "Nicaraguan córdoba (1988–1991)" }, "symbol": "NIC", "narrow": "NIC" }, "NIO": { "displayName": { "other": "Nicaraguan córdobas", "one": "Nicaraguan córdoba" }, "symbol": "NIO", "narrow": "C$" }, "NLG": { "displayName": { "other": "Dutch guilders", "one": "Dutch guilder" }, "symbol": "NLG", "narrow": "NLG" }, "NOK": { "displayName": { "other": "Norwegian kroner", "one": "Norwegian krone" }, "symbol": "NOK", "narrow": "kr" }, "NPR": { "displayName": { "other": "Nepalese rupees", "one": "Nepalese rupee" }, "symbol": "NPR", "narrow": "Rs" }, "NZD": { "displayName": { "other": "New Zealand dollars", "one": "New Zealand dollar" }, "symbol": "NZ$", "narrow": "$" }, "OMR": { "displayName": { "other": "Omani rials", "one": "Omani rial" }, "symbol": "OMR", "narrow": "OMR" }, "PAB": { "displayName": { "other": "Panamanian balboas", "one": "Panamanian balboa" }, "symbol": "PAB", "narrow": "PAB" }, "PEI": { "displayName": { "other": "Peruvian intis", "one": "Peruvian inti" }, "symbol": "PEI", "narrow": "PEI" }, "PEN": { "displayName": { "other": "Peruvian soles", "one": "Peruvian sol" }, "symbol": "PEN", "narrow": "PEN" }, "PES": { "displayName": { "other": "Peruvian soles (1863–1965)", "one": "Peruvian sol (1863–1965)" }, "symbol": "PES", "narrow": "PES" }, "PGK": { "displayName": { "other": "Papua New Guinean kina" }, "symbol": "PGK", "narrow": "PGK" }, "PHP": { "displayName": { "other": "Philippine pisos", "one": "Philippine piso" }, "symbol": "₱", "narrow": "₱" }, "PKR": { "displayName": { "other": "Pakistani rupees", "one": "Pakistani rupee" }, "symbol": "PKR", "narrow": "Rs" }, "PLN": { "displayName": { "other": "Polish zlotys", "one": "Polish zloty" }, "symbol": "PLN", "narrow": "zł" }, "PLZ": { "displayName": { "other": "Polish zlotys (PLZ)", "one": "Polish zloty (PLZ)" }, "symbol": "PLZ", "narrow": "PLZ" }, "PTE": { "displayName": { "other": "Portuguese escudos", "one": "Portuguese escudo" }, "symbol": "PTE", "narrow": "PTE" }, "PYG": { "displayName": { "other": "Paraguayan guaranis", "one": "Paraguayan guarani" }, "symbol": "PYG", "narrow": "₲" }, "QAR": { "displayName": { "other": "Qatari rials", "one": "Qatari rial" }, "symbol": "QAR", "narrow": "QAR" }, "RHD": { "displayName": { "other": "Rhodesian dollars", "one": "Rhodesian dollar" }, "symbol": "RHD", "narrow": "RHD" }, "ROL": { "displayName": { "other": "Romanian Lei (1952–2006)", "one": "Romanian leu (1952–2006)" }, "symbol": "ROL", "narrow": "ROL" }, "RON": { "displayName": { "other": "Romanian lei", "one": "Romanian leu" }, "symbol": "RON", "narrow": "lei" }, "RSD": { "displayName": { "other": "Serbian dinars", "one": "Serbian dinar" }, "symbol": "RSD", "narrow": "RSD" }, "RUB": { "displayName": { "other": "Russian rubles", "one": "Russian ruble" }, "symbol": "RUB", "narrow": "₽" }, "RUR": { "displayName": { "other": "Russian rubles (1991–1998)", "one": "Russian ruble (1991–1998)" }, "symbol": "RUR", "narrow": "р." }, "RWF": { "displayName": { "other": "Rwandan francs", "one": "Rwandan franc" }, "symbol": "RWF", "narrow": "RF" }, "SAR": { "displayName": { "other": "Saudi riyals", "one": "Saudi riyal" }, "symbol": "SAR", "narrow": "SAR" }, "SBD": { "displayName": { "other": "Solomon Islands dollars", "one": "Solomon Islands dollar" }, "symbol": "SBD", "narrow": "$" }, "SCR": { "displayName": { "other": "Seychellois rupees", "one": "Seychellois rupee" }, "symbol": "SCR", "narrow": "SCR" }, "SDD": { "displayName": { "other": "Sudanese dinars (1992–2007)", "one": "Sudanese dinar (1992–2007)" }, "symbol": "SDD", "narrow": "SDD" }, "SDG": { "displayName": { "other": "Sudanese pounds", "one": "Sudanese pound" }, "symbol": "SDG", "narrow": "SDG" }, "SDP": { "displayName": { "other": "Sudanese pounds (1957–1998)", "one": "Sudanese pound (1957–1998)" }, "symbol": "SDP", "narrow": "SDP" }, "SEK": { "displayName": { "other": "Swedish kronor", "one": "Swedish krona" }, "symbol": "SEK", "narrow": "kr" }, "SGD": { "displayName": { "other": "Singapore dollars", "one": "Singapore dollar" }, "symbol": "SGD", "narrow": "$" }, "SHP": { "displayName": { "other": "St. Helena pounds", "one": "St. Helena pound" }, "symbol": "SHP", "narrow": "£" }, "SIT": { "displayName": { "other": "Slovenian tolars", "one": "Slovenian tolar" }, "symbol": "SIT", "narrow": "SIT" }, "SKK": { "displayName": { "other": "Slovak korunas", "one": "Slovak koruna" }, "symbol": "SKK", "narrow": "SKK" }, "SLL": { "displayName": { "other": "Sierra Leonean leones", "one": "Sierra Leonean leone" }, "symbol": "SLL", "narrow": "SLL" }, "SOS": { "displayName": { "other": "Somali shillings", "one": "Somali shilling" }, "symbol": "SOS", "narrow": "SOS" }, "SRD": { "displayName": { "other": "Surinamese dollars", "one": "Surinamese dollar" }, "symbol": "SRD", "narrow": "$" }, "SRG": { "displayName": { "other": "Surinamese guilders", "one": "Surinamese guilder" }, "symbol": "SRG", "narrow": "SRG" }, "SSP": { "displayName": { "other": "South Sudanese pounds", "one": "South Sudanese pound" }, "symbol": "SSP", "narrow": "£" }, "STD": { "displayName": { "other": "São Tomé & Príncipe dobras (1977–2017)", "one": "São Tomé & Príncipe dobra (1977–2017)" }, "symbol": "STD", "narrow": "STD" }, "STN": { "displayName": { "other": "São Tomé & Príncipe dobras", "one": "São Tomé & Príncipe dobra" }, "symbol": "STN", "narrow": "Db" }, "SUR": { "displayName": { "other": "Soviet roubles", "one": "Soviet rouble" }, "symbol": "SUR", "narrow": "SUR" }, "SVC": { "displayName": { "other": "Salvadoran colones", "one": "Salvadoran colón" }, "symbol": "SVC", "narrow": "SVC" }, "SYP": { "displayName": { "other": "Syrian pounds", "one": "Syrian pound" }, "symbol": "SYP", "narrow": "£" }, "SZL": { "displayName": { "other": "Swazi emalangeni", "one": "Swazi lilangeni" }, "symbol": "SZL", "narrow": "SZL" }, "THB": { "displayName": { "other": "Thai baht" }, "symbol": "THB", "narrow": "฿" }, "TJR": { "displayName": { "other": "Tajikistani rubles", "one": "Tajikistani ruble" }, "symbol": "TJR", "narrow": "TJR" }, "TJS": { "displayName": { "other": "Tajikistani somonis", "one": "Tajikistani somoni" }, "symbol": "TJS", "narrow": "TJS" }, "TMM": { "displayName": { "other": "Turkmenistani manat (1993–2009)" }, "symbol": "TMM", "narrow": "TMM" }, "TMT": { "displayName": { "other": "Turkmenistani manat" }, "symbol": "TMT", "narrow": "TMT" }, "TND": { "displayName": { "other": "Tunisian dinars", "one": "Tunisian dinar" }, "symbol": "TND", "narrow": "TND" }, "TOP": { "displayName": { "other": "Tongan paʻanga" }, "symbol": "TOP", "narrow": "T$" }, "TPE": { "displayName": { "other": "Timorese escudos", "one": "Timorese escudo" }, "symbol": "TPE", "narrow": "TPE" }, "TRL": { "displayName": { "other": "Turkish Lira (1922–2005)", "one": "Turkish lira (1922–2005)" }, "symbol": "TRL", "narrow": "TRL" }, "TRY": { "displayName": { "other": "Turkish Lira", "one": "Turkish lira" }, "symbol": "TRY", "narrow": "₺" }, "TTD": { "displayName": { "other": "Trinidad & Tobago dollars", "one": "Trinidad & Tobago dollar" }, "symbol": "TTD", "narrow": "$" }, "TWD": { "displayName": { "other": "New Taiwan dollars", "one": "New Taiwan dollar" }, "symbol": "NT$", "narrow": "$" }, "TZS": { "displayName": { "other": "Tanzanian shillings", "one": "Tanzanian shilling" }, "symbol": "TZS", "narrow": "TZS" }, "UAH": { "displayName": { "other": "Ukrainian hryvnias", "one": "Ukrainian hryvnia" }, "symbol": "UAH", "narrow": "₴" }, "UAK": { "displayName": { "other": "Ukrainian karbovantsiv", "one": "Ukrainian karbovanets" }, "symbol": "UAK", "narrow": "UAK" }, "UGS": { "displayName": { "other": "Ugandan shillings (1966–1987)", "one": "Ugandan shilling (1966–1987)" }, "symbol": "UGS", "narrow": "UGS" }, "UGX": { "displayName": { "other": "Ugandan shillings", "one": "Ugandan shilling" }, "symbol": "UGX", "narrow": "UGX" }, "USD": { "displayName": { "other": "US dollars", "one": "US dollar" }, "symbol": "$", "narrow": "$" }, "USN": { "displayName": { "other": "US dollars (next day)", "one": "US dollar (next day)" }, "symbol": "USN", "narrow": "USN" }, "USS": { "displayName": { "other": "US dollars (same day)", "one": "US dollar (same day)" }, "symbol": "USS", "narrow": "USS" }, "UYI": { "displayName": { "other": "Uruguayan pesos (indexed units)", "one": "Uruguayan peso (indexed units)" }, "symbol": "UYI", "narrow": "UYI" }, "UYP": { "displayName": { "other": "Uruguayan pesos (1975–1993)", "one": "Uruguayan peso (1975–1993)" }, "symbol": "UYP", "narrow": "UYP" }, "UYU": { "displayName": { "other": "Uruguayan pesos", "one": "Uruguayan peso" }, "symbol": "UYU", "narrow": "$" }, "UYW": { "displayName": { "other": "Uruguayan nominal wage index units", "one": "Uruguayan nominal wage index unit" }, "symbol": "UYW", "narrow": "UYW" }, "UZS": { "displayName": { "other": "Uzbekistani som" }, "symbol": "UZS", "narrow": "UZS" }, "VEB": { "displayName": { "other": "Venezuelan bolívars (1871–2008)", "one": "Venezuelan bolívar (1871–2008)" }, "symbol": "VEB", "narrow": "VEB" }, "VEF": { "displayName": { "other": "Venezuelan bolívars (2008–2018)", "one": "Venezuelan bolívar (2008–2018)" }, "symbol": "VEF", "narrow": "Bs" }, "VES": { "displayName": { "other": "Venezuelan bolívars", "one": "Venezuelan bolívar" }, "symbol": "VES", "narrow": "VES" }, "VND": { "displayName": { "other": "Vietnamese dong" }, "symbol": "₫", "narrow": "₫" }, "VNN": { "displayName": { "other": "Vietnamese dong (1978–1985)" }, "symbol": "VNN", "narrow": "VNN" }, "VUV": { "displayName": { "other": "Vanuatu vatus", "one": "Vanuatu vatu" }, "symbol": "VUV", "narrow": "VUV" }, "WST": { "displayName": { "other": "Samoan tala" }, "symbol": "WST", "narrow": "WST" }, "XAF": { "displayName": { "other": "Central African CFA francs", "one": "Central African CFA franc" }, "symbol": "FCFA", "narrow": "FCFA" }, "XAG": { "displayName": { "other": "troy ounces of silver", "one": "troy ounce of silver" }, "symbol": "XAG", "narrow": "XAG" }, "XAU": { "displayName": { "other": "troy ounces of gold", "one": "troy ounce of gold" }, "symbol": "XAU", "narrow": "XAU" }, "XBA": { "displayName": { "other": "European composite units", "one": "European composite unit" }, "symbol": "XBA", "narrow": "XBA" }, "XBB": { "displayName": { "other": "European monetary units", "one": "European monetary unit" }, "symbol": "XBB", "narrow": "XBB" }, "XBC": { "displayName": { "other": "European units of account (XBC)", "one": "European unit of account (XBC)" }, "symbol": "XBC", "narrow": "XBC" }, "XBD": { "displayName": { "other": "European units of account (XBD)", "one": "European unit of account (XBD)" }, "symbol": "XBD", "narrow": "XBD" }, "XCD": { "displayName": { "other": "East Caribbean dollars", "one": "East Caribbean dollar" }, "symbol": "EC$", "narrow": "$" }, "XDR": { "displayName": { "other": "special drawing rights" }, "symbol": "XDR", "narrow": "XDR" }, "XEU": { "displayName": { "other": "European currency units", "one": "European currency unit" }, "symbol": "XEU", "narrow": "XEU" }, "XFO": { "displayName": { "other": "French gold francs", "one": "French gold franc" }, "symbol": "XFO", "narrow": "XFO" }, "XFU": { "displayName": { "other": "French UIC-francs", "one": "French UIC-franc" }, "symbol": "XFU", "narrow": "XFU" }, "XOF": { "displayName": { "other": "West African CFA francs", "one": "West African CFA franc" }, "symbol": "F CFA", "narrow": "F CFA" }, "XPD": { "displayName": { "other": "troy ounces of palladium", "one": "troy ounce of palladium" }, "symbol": "XPD", "narrow": "XPD" }, "XPF": { "displayName": { "other": "CFP francs", "one": "CFP franc" }, "symbol": "CFPF", "narrow": "CFPF" }, "XPT": { "displayName": { "other": "troy ounces of platinum", "one": "troy ounce of platinum" }, "symbol": "XPT", "narrow": "XPT" }, "XRE": { "displayName": { "other": "RINET Funds units", "one": "RINET Funds unit" }, "symbol": "XRE", "narrow": "XRE" }, "XSU": { "displayName": { "other": "Sucres", "one": "Sucre" }, "symbol": "XSU", "narrow": "XSU" }, "XTS": { "displayName": { "other": "Testing Currency units", "one": "Testing Currency unit" }, "symbol": "XTS", "narrow": "XTS" }, "XUA": { "displayName": { "other": "ADB units of account", "one": "ADB unit of account" }, "symbol": "XUA", "narrow": "XUA" }, "XXX": { "displayName": { "other": "(unknown currency)", "one": "(unknown unit of currency)" }, "symbol": "¤", "narrow": "¤" }, "YDD": { "displayName": { "other": "Yemeni dinars", "one": "Yemeni dinar" }, "symbol": "YDD", "narrow": "YDD" }, "YER": { "displayName": { "other": "Yemeni rials", "one": "Yemeni rial" }, "symbol": "YER", "narrow": "YER" }, "YUD": { "displayName": { "other": "Yugoslavian hard dinars (1966–1990)", "one": "Yugoslavian hard dinar (1966–1990)" }, "symbol": "YUD", "narrow": "YUD" }, "YUM": { "displayName": { "other": "Yugoslavian new dinars (1994–2002)", "one": "Yugoslavian new dinar (1994–2002)" }, "symbol": "YUM", "narrow": "YUM" }, "YUN": { "displayName": { "other": "Yugoslavian convertible dinars (1990–1992)", "one": "Yugoslavian convertible dinar (1990–1992)" }, "symbol": "YUN", "narrow": "YUN" }, "YUR": { "displayName": { "other": "Yugoslavian reformed dinars (1992–1993)", "one": "Yugoslavian reformed dinar (1992–1993)" }, "symbol": "YUR", "narrow": "YUR" }, "ZAL": { "displayName": { "other": "South African rands (financial)", "one": "South African rand (financial)" }, "symbol": "ZAL", "narrow": "ZAL" }, "ZAR": { "displayName": { "other": "South African rand" }, "symbol": "ZAR", "narrow": "R" }, "ZMK": { "displayName": { "other": "Zambian kwachas (1968–2012)", "one": "Zambian kwacha (1968–2012)" }, "symbol": "ZMK", "narrow": "ZMK" }, "ZMW": { "displayName": { "other": "Zambian kwachas", "one": "Zambian kwacha" }, "symbol": "ZMW", "narrow": "ZK" }, "ZRN": { "displayName": { "other": "Zairean new zaires (1993–1998)", "one": "Zairean new zaire (1993–1998)" }, "symbol": "ZRN", "narrow": "ZRN" }, "ZRZ": { "displayName": { "other": "Zairean zaires (1971–1993)", "one": "Zairean zaire (1971–1993)" }, "symbol": "ZRZ", "narrow": "ZRZ" }, "ZWD": { "displayName": { "other": "Zimbabwean dollars (1980–2008)", "one": "Zimbabwean dollar (1980–2008)" }, "symbol": "ZWD", "narrow": "ZWD" }, "ZWL": { "displayName": { "other": "Zimbabwean dollars (2009)", "one": "Zimbabwean dollar (2009)" }, "symbol": "ZWL", "narrow": "ZWL" }, "ZWR": { "displayName": { "other": "Zimbabwean dollars (2008)", "one": "Zimbabwean dollar (2008)" }, "symbol": "ZWR", "narrow": "ZWR" } }, "numbers": { "nu": ["latn"], "symbols": { "latn": { "decimal": ".", "group": ",", "list": ";", "percentSign": "%", "plusSign": "+", "minusSign": "-", "approximatelySign": "~", "exponential": "E", "superscriptingExponent": "×", "perMille": "‰", "infinity": "∞", "nan": "NaN", "timeSeparator": ":" } }, "percent": { "latn": "#,##0%" }, "decimal": { "latn": { "standard": "#,##0.###", "long": { "1000": { "other": "0 thousand" }, "10000": { "other": "00 thousand" }, "100000": { "other": "000 thousand" }, "1000000": { "other": "0 million" }, "10000000": { "other": "00 million" }, "100000000": { "other": "000 million" }, "1000000000": { "other": "0 billion" }, "10000000000": { "other": "00 billion" }, "100000000000": { "other": "000 billion" }, "1000000000000": { "other": "0 trillion" }, "10000000000000": { "other": "00 trillion" }, "100000000000000": { "other": "000 trillion" } }, "short": { "1000": { "other": "0K" }, "10000": { "other": "00K" }, "100000": { "other": "000K" }, "1000000": { "other": "0M" }, "10000000": { "other": "00M" }, "100000000": { "other": "000M" }, "1000000000": { "other": "0B" }, "10000000000": { "other": "00B" }, "100000000000": { "other": "000B" }, "1000000000000": { "other": "0T" }, "10000000000000": { "other": "00T" }, "100000000000000": { "other": "000T" } } } }, "currency": { "latn": { "currencySpacing": { "beforeInsertBetween": " ", "afterInsertBetween": " " }, "standard": "¤#,##0.00", "accounting": "¤#,##0.00;(¤#,##0.00)", "unitPattern": "{0} {1}", "short": { "1000": { "other": "¤0K" }, "10000": { "other": "¤00K" }, "100000": { "other": "¤000K" }, "1000000": { "other": "¤0M" }, "10000000": { "other": "¤00M" }, "100000000": { "other": "¤000M" }, "1000000000": { "other": "¤0B" }, "10000000000": { "other": "¤00B" }, "100000000000": { "other": "¤000B" }, "1000000000000": { "other": "¤0T" }, "10000000000000": { "other": "¤00T" }, "100000000000000": { "other": "¤000T" } } } } }, "nu": ["latn"] }, "locale": "en" });
 
     }
 
     }
})();
+
    if (Intl.DateTimeFormat && typeof Intl.DateTimeFormat.__addLocaleData === 'function') {
 
+
        Intl.DateTimeFormat.__addLocaleData({ "data": { "am": "AM", "pm": "PM", "weekday": { "narrow": ["S", "M", "T", "W", "T", "F", "S"], "short": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], "long": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] }, "era": { "narrow": { "BC": "B", "AD": "A" }, "short": { "BC": "BC", "AD": "AD" }, "long": { "BC": "Before Christ", "AD": "Anno Domini" } }, "month": { "narrow": ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], "short": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], "long": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] }, "timeZoneName": { "America/Rio_Branco": { "long": ["Acre Standard Time", "Acre Summer Time"] }, "Asia/Kabul": { "long": ["Afghanistan Time", "Afghanistan Time"] }, "Africa/Maputo": { "long": ["Central Africa Time", "Central Africa Time"] }, "Africa/Bujumbura": { "long": ["Central Africa Time", "Central Africa Time"] }, "Africa/Gaborone": { "long": ["Central Africa Time", "Central Africa Time"] }, "Africa/Lubumbashi": { "long": ["Central Africa Time", "Central Africa Time"] }, "Africa/Blantyre": { "long": ["Central Africa Time", "Central Africa Time"] }, "Africa/Kigali": { "long": ["Central Africa Time", "Central Africa Time"] }, "Africa/Lusaka": { "long": ["Central Africa Time", "Central Africa Time"] }, "Africa/Harare": { "long": ["Central Africa Time", "Central Africa Time"] }, "Africa/Nairobi": { "long": ["East Africa Time", "East Africa Time"] }, "Africa/Djibouti": { "long": ["East Africa Time", "East Africa Time"] }, "Africa/Asmera": { "long": ["East Africa Time", "East Africa Time"] }, "Africa/Addis_Ababa": { "long": ["East Africa Time", "East Africa Time"] }, "Indian/Comoro": { "long": ["East Africa Time", "East Africa Time"] }, "Indian/Antananarivo": { "long": ["East Africa Time", "East Africa Time"] }, "Africa/Mogadishu": { "long": ["East Africa Time", "East Africa Time"] }, "Africa/Dar_es_Salaam": { "long": ["East Africa Time", "East Africa Time"] }, "Africa/Kampala": { "long": ["East Africa Time", "East Africa Time"] }, "Indian/Mayotte": { "long": ["East Africa Time", "East Africa Time"] }, "Africa/Johannesburg": { "long": ["South Africa Standard Time", "South Africa Standard Time"] }, "Africa/Maseru": { "long": ["South Africa Standard Time", "South Africa Standard Time"] }, "Africa/Mbabane": { "long": ["South Africa Standard Time", "South Africa Standard Time"] }, "Africa/Lagos": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Luanda": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Porto-Novo": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Kinshasa": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Bangui": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Brazzaville": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Douala": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Libreville": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Malabo": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Niamey": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Ndjamena": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Asia/Aqtobe": { "long": ["West Kazakhstan Time", "West Kazakhstan Time"] }, "America/Juneau": { "long": ["Alaska Standard Time", "Alaska Daylight Time"], "short": ["AKST", "AKDT"] }, "Asia/Almaty": { "long": ["East Kazakhstan Time", "East Kazakhstan Time"] }, "America/Manaus": { "long": ["Amazon Standard Time", "Amazon Summer Time"] }, "America/Chicago": { "long": ["Central Standard Time", "Central Daylight Time"], "short": ["CST", "CDT"] }, "America/Belize": { "long": ["Central Standard Time", "Central Daylight Time"], "short": ["CST", "CDT"] }, "America/Winnipeg": { "long": ["Central Standard Time", "Central Daylight Time"], "short": ["CST", "CDT"] }, "America/Costa_Rica": { "long": ["Central Standard Time", "Central Daylight Time"], "short": ["CST", "CDT"] }, "America/Guatemala": { "long": ["Central Standard Time", "Central Daylight Time"], "short": ["CST", "CDT"] }, "America/Tegucigalpa": { "long": ["Central Standard Time", "Central Daylight Time"], "short": ["CST", "CDT"] }, "America/Mexico_City": { "long": ["Central Standard Time", "Central Daylight Time"], "short": ["CST", "CDT"] }, "America/El_Salvador": { "long": ["Central Standard Time", "Central Daylight Time"], "short": ["CST", "CDT"] }, "America/New_York": { "long": ["Eastern Standard Time", "Eastern Daylight Time"], "short": ["EST", "EDT"] }, "America/Nassau": { "long": ["Eastern Standard Time", "Eastern Daylight Time"], "short": ["EST", "EDT"] }, "America/Toronto": { "long": ["Eastern Standard Time", "Eastern Daylight Time"], "short": ["EST", "EDT"] }, "America/Port-au-Prince": { "long": ["Eastern Standard Time", "Eastern Daylight Time"], "short": ["EST", "EDT"] }, "America/Jamaica": { "long": ["Eastern Standard Time", "Eastern Daylight Time"], "short": ["EST", "EDT"] }, "America/Cayman": { "long": ["Eastern Standard Time", "Eastern Daylight Time"], "short": ["EST", "EDT"] }, "America/Panama": { "long": ["Eastern Standard Time", "Eastern Daylight Time"], "short": ["EST", "EDT"] }, "America/Denver": { "long": ["Mountain Standard Time", "Mountain Daylight Time"], "short": ["MST", "MDT"] }, "America/Edmonton": { "long": ["Mountain Standard Time", "Mountain Daylight Time"], "short": ["MST", "MDT"] }, "America/Hermosillo": { "long": ["Mountain Standard Time", "Mountain Daylight Time"], "short": ["MST", "MDT"] }, "America/Los_Angeles": { "long": ["Pacific Standard Time", "Pacific Daylight Time"], "short": ["PST", "PDT"] }, "America/Vancouver": { "long": ["Pacific Standard Time", "Pacific Daylight Time"], "short": ["PST", "PDT"] }, "America/Tijuana": { "long": ["Pacific Standard Time", "Pacific Daylight Time"], "short": ["PST", "PDT"] }, "Asia/Anadyr": { "long": ["Anadyr Standard Time", "Anadyr Summer Time"] }, "Pacific/Apia": { "long": ["Apia Standard Time", "Apia Daylight Time"] }, "Asia/Riyadh": { "long": ["Arabian Standard Time", "Arabian Daylight Time"] }, "Asia/Bahrain": { "long": ["Arabian Standard Time", "Arabian Daylight Time"] }, "Asia/Baghdad": { "long": ["Arabian Standard Time", "Arabian Daylight Time"] }, "Asia/Kuwait": { "long": ["Arabian Standard Time", "Arabian Daylight Time"] }, "Asia/Qatar": { "long": ["Arabian Standard Time", "Arabian Daylight Time"] }, "Asia/Aden": { "long": ["Arabian Standard Time", "Arabian Daylight Time"] }, "America/Buenos_Aires": { "long": ["Argentina Standard Time", "Argentina Summer Time"] }, "America/Argentina/San_Luis": { "long": ["Western Argentina Standard Time", "Western Argentina Summer Time"] }, "Asia/Ashgabat": { "long": ["Turkmenistan Standard Time", "Turkmenistan Summer Time"] }, "America/Halifax": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Antigua": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Anguilla": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Aruba": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Barbados": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "Atlantic/Bermuda": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Kralendijk": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Curacao": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Dominica": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Grenada": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Thule": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Guadeloupe": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/St_Kitts": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/St_Lucia": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Marigot": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Martinique": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Montserrat": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Puerto_Rico": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Lower_Princes": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Port_of_Spain": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/St_Vincent": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Tortola": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/St_Thomas": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "Australia/Adelaide": { "long": ["Australian Central Standard Time", "Australian Central Daylight Time"] }, "Australia/Eucla": { "long": ["Australian Central Western Standard Time", "Australian Central Western Daylight Time"] }, "Australia/Sydney": { "long": ["Australian Eastern Standard Time", "Australian Eastern Daylight Time"] }, "Australia/Perth": { "long": ["Australian Western Standard Time", "Australian Western Daylight Time"] }, "Atlantic/Azores": { "long": ["Azores Standard Time", "Azores Summer Time"] }, "Asia/Thimphu": { "long": ["Bhutan Time", "Bhutan Time"] }, "America/La_Paz": { "long": ["Bolivia Time", "Bolivia Time"] }, "Asia/Kuching": { "long": ["Malaysia Time", "Malaysia Time"] }, "America/Sao_Paulo": { "long": ["Brasilia Standard Time", "Brasilia Summer Time"] }, "Europe/London": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Asia/Brunei": { "long": ["Brunei Darussalam Time", "Brunei Darussalam Time"] }, "Atlantic/Cape_Verde": { "long": ["Cape Verde Standard Time", "Cape Verde Summer Time"] }, "Antarctica/Casey": { "long": ["Casey Time", "Casey Time"] }, "Pacific/Saipan": { "long": ["North Mariana Islands Time", "North Mariana Islands Time"] }, "Pacific/Guam": { "long": ["Guam Standard Time", "Guam Standard Time"] }, "Pacific/Chatham": { "long": ["Chatham Standard Time", "Chatham Daylight Time"] }, "America/Santiago": { "long": ["Chile Standard Time", "Chile Summer Time"] }, "Asia/Shanghai": { "long": ["China Standard Time", "China Daylight Time"] }, "Asia/Choibalsan": { "long": ["Choibalsan Standard Time", "Choibalsan Summer Time"] }, "Indian/Christmas": { "long": ["Christmas Island Time", "Christmas Island Time"] }, "Indian/Cocos": { "long": ["Cocos Islands Time", "Cocos Islands Time"] }, "America/Bogota": { "long": ["Colombia Standard Time", "Colombia Summer Time"] }, "Pacific/Rarotonga": { "long": ["Cook Islands Standard Time", "Cook Islands Half Summer Time"] }, "America/Havana": { "long": ["Cuba Standard Time", "Cuba Daylight Time"] }, "Antarctica/Davis": { "long": ["Davis Time", "Davis Time"] }, "Antarctica/DumontDUrville": { "long": ["Dumont-d’Urville Time", "Dumont-d’Urville Time"] }, "Asia/Dushanbe": { "long": ["Tajikistan Time", "Tajikistan Time"] }, "America/Paramaribo": { "long": ["Suriname Time", "Suriname Time"] }, "Asia/Dili": { "long": ["East Timor Time", "East Timor Time"] }, "Pacific/Easter": { "long": ["Easter Island Standard Time", "Easter Island Summer Time"] }, "America/Guayaquil": { "long": ["Ecuador Time", "Ecuador Time"] }, "Europe/Paris": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Andorra": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Tirane": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Vienna": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Sarajevo": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Brussels": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Zurich": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Prague": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Berlin": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Copenhagen": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Madrid": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Gibraltar": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Zagreb": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Budapest": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Rome": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Vaduz": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Luxembourg": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Monaco": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Podgorica": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Skopje": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Malta": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Amsterdam": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Oslo": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Warsaw": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Belgrade": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Stockholm": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Ljubljana": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Arctic/Longyearbyen": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Bratislava": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/San_Marino": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Africa/Tunis": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Vatican": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Bucharest": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Europe/Mariehamn": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Europe/Sofia": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Asia/Nicosia": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Africa/Cairo": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Europe/Helsinki": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Europe/Athens": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Asia/Amman": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Asia/Beirut": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Asia/Damascus": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Europe/Minsk": { "long": ["Further-eastern European Time", "Further-eastern European Time"] }, "Europe/Kaliningrad": { "long": ["Further-eastern European Time", "Further-eastern European Time"] }, "Atlantic/Canary": { "long": ["Western European Standard Time", "Western European Summer Time"] }, "Atlantic/Faeroe": { "long": ["Western European Standard Time", "Western European Summer Time"] }, "Atlantic/Stanley": { "long": ["Falkland Islands Standard Time", "Falkland Islands Summer Time"] }, "Pacific/Fiji": { "long": ["Fiji Standard Time", "Fiji Summer Time"] }, "America/Cayenne": { "long": ["French Guiana Time", "French Guiana Time"] }, "Indian/Kerguelen": { "long": ["French Southern & Antarctic Time", "French Southern & Antarctic Time"] }, "Asia/Bishkek": { "long": ["Kyrgyzstan Time", "Kyrgyzstan Time"] }, "Pacific/Galapagos": { "long": ["Galapagos Time", "Galapagos Time"] }, "Pacific/Gambier": { "long": ["Gambier Time", "Gambier Time"] }, "Pacific/Tarawa": { "long": ["Gilbert Islands Time", "Gilbert Islands Time"] }, "Atlantic/Reykjavik": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Ouagadougou": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Abidjan": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Accra": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Banjul": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Conakry": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Bamako": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Nouakchott": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Atlantic/St_Helena": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Freetown": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Dakar": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Lome": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "America/Scoresbysund": { "long": ["East Greenland Standard Time", "East Greenland Summer Time"] }, "America/Godthab": { "long": ["West Greenland Standard Time", "West Greenland Summer Time"] }, "Asia/Dubai": { "long": ["Gulf Standard Time", "Gulf Standard Time"] }, "Asia/Muscat": { "long": ["Gulf Standard Time", "Gulf Standard Time"] }, "America/Guyana": { "long": ["Guyana Time", "Guyana Time"] }, "Pacific/Honolulu": { "long": ["Hawaii-Aleutian Standard Time", "Hawaii-Aleutian Daylight Time"], "short": ["HAST", "HADT"] }, "Asia/Hong_Kong": { "long": ["Hong Kong Standard Time", "Hong Kong Summer Time"] }, "Asia/Hovd": { "long": ["Hovd Standard Time", "Hovd Summer Time"] }, "Asia/Calcutta": { "long": ["India Standard Time", "India Standard Time"] }, "Asia/Colombo": { "long": ["Lanka Time", "Lanka Time"] }, "Indian/Chagos": { "long": ["Indian Ocean Time", "Indian Ocean Time"] }, "Asia/Bangkok": { "long": ["Indochina Time", "Indochina Time"] }, "Asia/Phnom_Penh": { "long": ["Indochina Time", "Indochina Time"] }, "Asia/Vientiane": { "long": ["Indochina Time", "Indochina Time"] }, "Asia/Makassar": { "long": ["Central Indonesia Time", "Central Indonesia Time"] }, "Asia/Jayapura": { "long": ["Eastern Indonesia Time", "Eastern Indonesia Time"] }, "Asia/Jakarta": { "long": ["Western Indonesia Time", "Western Indonesia Time"] }, "Asia/Tehran": { "long": ["Iran Standard Time", "Iran Daylight Time"] }, "Asia/Irkutsk": { "long": ["Irkutsk Standard Time", "Irkutsk Summer Time"] }, "Asia/Jerusalem": { "long": ["Israel Standard Time", "Israel Daylight Time"] }, "Asia/Tokyo": { "long": ["Japan Standard Time", "Japan Daylight Time"] }, "Asia/Kamchatka": { "long": ["Petropavlovsk-Kamchatski Standard Time", "Petropavlovsk-Kamchatski Summer Time"] }, "Asia/Karachi": { "long": ["Pakistan Standard Time", "Pakistan Summer Time"] }, "Asia/Qyzylorda": { "long": ["Qyzylorda Standard Time", "Qyzylorda Summer Time"] }, "Asia/Seoul": { "long": ["Korean Standard Time", "Korean Daylight Time"] }, "Pacific/Kosrae": { "long": ["Kosrae Time", "Kosrae Time"] }, "Asia/Krasnoyarsk": { "long": ["Krasnoyarsk Standard Time", "Krasnoyarsk Summer Time"] }, "Europe/Samara": { "long": ["Samara Standard Time", "Samara Summer Time"] }, "Pacific/Kiritimati": { "long": ["Line Islands Time", "Line Islands Time"] }, "Australia/Lord_Howe": { "long": ["Lord Howe Standard Time", "Lord Howe Daylight Time"] }, "Asia/Macau": { "long": ["Macao Standard Time", "Macao Summer Time"] }, "Antarctica/Macquarie": { "long": ["Macquarie Island Time", "Macquarie Island Time"] }, "Asia/Magadan": { "long": ["Magadan Standard Time", "Magadan Summer Time"] }, "Indian/Maldives": { "long": ["Maldives Time", "Maldives Time"] }, "Pacific/Marquesas": { "long": ["Marquesas Time", "Marquesas Time"] }, "Pacific/Majuro": { "long": ["Marshall Islands Time", "Marshall Islands Time"] }, "Indian/Mauritius": { "long": ["Mauritius Standard Time", "Mauritius Summer Time"] }, "Antarctica/Mawson": { "long": ["Mawson Time", "Mawson Time"] }, "America/Santa_Isabel": { "long": ["Northwest Mexico Standard Time", "Northwest Mexico Daylight Time"] }, "America/Mazatlan": { "long": ["Mexican Pacific Standard Time", "Mexican Pacific Daylight Time"] }, "Asia/Ulaanbaatar": { "long": ["Ulaanbaatar Standard Time", "Ulaanbaatar Summer Time"] }, "Europe/Moscow": { "long": ["Moscow Standard Time", "Moscow Summer Time"] }, "Asia/Rangoon": { "long": ["Myanmar Time", "Myanmar Time"] }, "Pacific/Nauru": { "long": ["Nauru Time", "Nauru Time"] }, "Asia/Katmandu": { "long": ["Nepal Time", "Nepal Time"] }, "Pacific/Noumea": { "long": ["New Caledonia Standard Time", "New Caledonia Summer Time"] }, "Pacific/Auckland": { "long": ["New Zealand Standard Time", "New Zealand Daylight Time"] }, "Antarctica/McMurdo": { "long": ["New Zealand Standard Time", "New Zealand Daylight Time"] }, "America/St_Johns": { "long": ["Newfoundland Standard Time", "Newfoundland Daylight Time"] }, "Pacific/Niue": { "long": ["Niue Time", "Niue Time"] }, "Pacific/Norfolk": { "long": ["Norfolk Island Standard Time", "Norfolk Island Daylight Time"] }, "America/Noronha": { "long": ["Fernando de Noronha Standard Time", "Fernando de Noronha Summer Time"] }, "Asia/Novosibirsk": { "long": ["Novosibirsk Standard Time", "Novosibirsk Summer Time"] }, "Asia/Omsk": { "long": ["Omsk Standard Time", "Omsk Summer Time"] }, "Pacific/Palau": { "long": ["Palau Time", "Palau Time"] }, "Pacific/Port_Moresby": { "long": ["Papua New Guinea Time", "Papua New Guinea Time"] }, "America/Asuncion": { "long": ["Paraguay Standard Time", "Paraguay Summer Time"] }, "America/Lima": { "long": ["Peru Standard Time", "Peru Summer Time"] }, "Asia/Manila": { "long": ["Philippine Standard Time", "Philippine Summer Time"] }, "Pacific/Enderbury": { "long": ["Phoenix Islands Time", "Phoenix Islands Time"] }, "America/Miquelon": { "long": ["St. Pierre & Miquelon Standard Time", "St. Pierre & Miquelon Daylight Time"] }, "Pacific/Pitcairn": { "long": ["Pitcairn Time", "Pitcairn Time"] }, "Pacific/Ponape": { "long": ["Ponape Time", "Ponape Time"] }, "Asia/Pyongyang": { "long": ["Pyongyang Time", "Pyongyang Time"] }, "Indian/Reunion": { "long": ["Réunion Time", "Réunion Time"] }, "Antarctica/Rothera": { "long": ["Rothera Time", "Rothera Time"] }, "Asia/Sakhalin": { "long": ["Sakhalin Standard Time", "Sakhalin Summer Time"] }, "Pacific/Pago_Pago": { "long": ["Samoa Standard Time", "Samoa Daylight Time"] }, "Indian/Mahe": { "long": ["Seychelles Time", "Seychelles Time"] }, "Asia/Singapore": { "long": ["Singapore Standard Time", "Singapore Standard Time"] }, "Pacific/Guadalcanal": { "long": ["Solomon Islands Time", "Solomon Islands Time"] }, "Atlantic/South_Georgia": { "long": ["South Georgia Time", "South Georgia Time"] }, "Asia/Yekaterinburg": { "long": ["Yekaterinburg Standard Time", "Yekaterinburg Summer Time"] }, "Antarctica/Syowa": { "long": ["Syowa Time", "Syowa Time"] }, "Pacific/Tahiti": { "long": ["Tahiti Time", "Tahiti Time"] }, "Asia/Taipei": { "long": ["Taipei Standard Time", "Taipei Daylight Time"] }, "Asia/Tashkent": { "long": ["Uzbekistan Standard Time", "Uzbekistan Summer Time"] }, "Pacific/Fakaofo": { "long": ["Tokelau Time", "Tokelau Time"] }, "Pacific/Tongatapu": { "long": ["Tonga Standard Time", "Tonga Summer Time"] }, "Pacific/Truk": { "long": ["Chuuk Time", "Chuuk Time"] }, "Pacific/Funafuti": { "long": ["Tuvalu Time", "Tuvalu Time"] }, "America/Montevideo": { "long": ["Uruguay Standard Time", "Uruguay Summer Time"] }, "Pacific/Efate": { "long": ["Vanuatu Standard Time", "Vanuatu Summer Time"] }, "America/Caracas": { "long": ["Venezuela Time", "Venezuela Time"] }, "Asia/Vladivostok": { "long": ["Vladivostok Standard Time", "Vladivostok Summer Time"] }, "Europe/Volgograd": { "long": ["Volgograd Standard Time", "Volgograd Summer Time"] }, "Antarctica/Vostok": { "long": ["Vostok Time", "Vostok Time"] }, "Pacific/Wake": { "long": ["Wake Island Time", "Wake Island Time"] }, "Pacific/Wallis": { "long": ["Wallis & Futuna Time", "Wallis & Futuna Time"] }, "Asia/Yakutsk": { "long": ["Yakutsk Standard Time", "Yakutsk Summer Time"] }, "UTC": { "long": ["Coordinated Universal Time", "Coordinated Universal Time"], "short": ["UTC", "UTC"] } }, "gmtFormat": "GMT{0}", "hourFormat": "+HH:mm;-HH:mm", "dateFormat": { "full": "EEEE, MMMM d, y", "long": "MMMM d, y", "medium": "MMM d, y", "short": "M/d/yy" }, "timeFormat": { "full": "h:mm:ss a zzzz", "long": "h:mm:ss a z", "medium": "h:mm:ss a", "short": "h:mm a" }, "dateTimeFormat": { "full": "{1} 'at' {0}", "long": "{1} 'at' {0}", "medium": "{1}, {0}", "short": "{1}, {0}" }, "formats": { "gregory": { "Bh": "h B", "Bhm": "h:mm B", "Bhms": "h:mm:ss B", "d": "d", "E": "ccc", "EBhm": "E h:mm B", "EBhms": "E h:mm:ss B", "Ed": "d E", "Ehm": "E h:mm a", "EHm": "E HH:mm", "Ehms": "E h:mm:ss a", "EHms": "E HH:mm:ss", "Gy": "y G", "GyMMM": "MMM y G", "GyMMMd": "MMM d, y G", "GyMMMEd": "E, MMM d, y G", "h": "h a", "H": "HH", "hm": "h:mm a", "Hm": "HH:mm", "hms": "h:mm:ss a", "Hms": "HH:mm:ss", "hmsv": "h:mm:ss a v", "Hmsv": "HH:mm:ss v", "hmv": "h:mm a v", "Hmv": "HH:mm v", "M": "L", "Md": "M/d", "MEd": "E, M/d", "MMM": "LLL", "MMMd": "MMM d", "MMMEd": "E, MMM d", "MMMMd": "MMMM d", "ms": "mm:ss", "y": "y", "yM": "M/y", "yMd": "M/d/y", "yMEd": "E, M/d/y", "yMMM": "MMM y", "yMMMd": "MMM d, y", "yMMMEd": "E, MMM d, y", "yMMMM": "MMMM y", "EEEE, MMMM d, y": "EEEE, MMMM d, y", "MMMM d, y": "MMMM d, y", "MMM d, y": "MMM d, y", "M/d/yy": "M/d/yy", "h:mm:ss a zzzz": "h:mm:ss a zzzz", "h:mm:ss a z": "h:mm:ss a z", "h:mm:ss a": "h:mm:ss a", "h:mm a": "h:mm a", "EEEE, MMMM d, y 'at' h:mm:ss a zzzz": "EEEE, MMMM d, y 'at' h:mm:ss a zzzz", "MMMM d, y 'at' h:mm:ss a zzzz": "MMMM d, y 'at' h:mm:ss a zzzz", "MMM d, y, h:mm:ss a zzzz": "MMM d, y, h:mm:ss a zzzz", "M/d/yy, h:mm:ss a zzzz": "M/d/yy, h:mm:ss a zzzz", "d, h:mm:ss a zzzz": "d, h:mm:ss a zzzz", "E, h:mm:ss a zzzz": "ccc, h:mm:ss a zzzz", "Ed, h:mm:ss a zzzz": "d E, h:mm:ss a zzzz", "Gy, h:mm:ss a zzzz": "y G, h:mm:ss a zzzz", "GyMMM, h:mm:ss a zzzz": "MMM y G, h:mm:ss a zzzz", "GyMMMd, h:mm:ss a zzzz": "MMM d, y G, h:mm:ss a zzzz", "GyMMMEd, h:mm:ss a zzzz": "E, MMM d, y G, h:mm:ss a zzzz", "M, h:mm:ss a zzzz": "L, h:mm:ss a zzzz", "Md, h:mm:ss a zzzz": "M/d, h:mm:ss a zzzz", "MEd, h:mm:ss a zzzz": "E, M/d, h:mm:ss a zzzz", "MMM, h:mm:ss a zzzz": "LLL, h:mm:ss a zzzz", "MMMd, h:mm:ss a zzzz": "MMM d, h:mm:ss a zzzz", "MMMEd, h:mm:ss a zzzz": "E, MMM d, h:mm:ss a zzzz", "MMMMd 'at' h:mm:ss a zzzz": "MMMM d 'at' h:mm:ss a zzzz", "y, h:mm:ss a zzzz": "y, h:mm:ss a zzzz", "yM, h:mm:ss a zzzz": "M/y, h:mm:ss a zzzz", "yMd, h:mm:ss a zzzz": "M/d/y, h:mm:ss a zzzz", "yMEd, h:mm:ss a zzzz": "E, M/d/y, h:mm:ss a zzzz", "yMMM, h:mm:ss a zzzz": "MMM y, h:mm:ss a zzzz", "yMMMd, h:mm:ss a zzzz": "MMM d, y, h:mm:ss a zzzz", "yMMMEd, h:mm:ss a zzzz": "E, MMM d, y, h:mm:ss a zzzz", "yMMMM 'at' h:mm:ss a zzzz": "MMMM y 'at' h:mm:ss a zzzz", "EEEE, MMMM d, y 'at' h:mm:ss a z": "EEEE, MMMM d, y 'at' h:mm:ss a z", "MMMM d, y 'at' h:mm:ss a z": "MMMM d, y 'at' h:mm:ss a z", "MMM d, y, h:mm:ss a z": "MMM d, y, h:mm:ss a z", "M/d/yy, h:mm:ss a z": "M/d/yy, h:mm:ss a z", "d, h:mm:ss a z": "d, h:mm:ss a z", "E, h:mm:ss a z": "ccc, h:mm:ss a z", "Ed, h:mm:ss a z": "d E, h:mm:ss a z", "Gy, h:mm:ss a z": "y G, h:mm:ss a z", "GyMMM, h:mm:ss a z": "MMM y G, h:mm:ss a z", "GyMMMd, h:mm:ss a z": "MMM d, y G, h:mm:ss a z", "GyMMMEd, h:mm:ss a z": "E, MMM d, y G, h:mm:ss a z", "M, h:mm:ss a z": "L, h:mm:ss a z", "Md, h:mm:ss a z": "M/d, h:mm:ss a z", "MEd, h:mm:ss a z": "E, M/d, h:mm:ss a z", "MMM, h:mm:ss a z": "LLL, h:mm:ss a z", "MMMd, h:mm:ss a z": "MMM d, h:mm:ss a z", "MMMEd, h:mm:ss a z": "E, MMM d, h:mm:ss a z", "MMMMd 'at' h:mm:ss a z": "MMMM d 'at' h:mm:ss a z", "y, h:mm:ss a z": "y, h:mm:ss a z", "yM, h:mm:ss a z": "M/y, h:mm:ss a z", "yMd, h:mm:ss a z": "M/d/y, h:mm:ss a z", "yMEd, h:mm:ss a z": "E, M/d/y, h:mm:ss a z", "yMMM, h:mm:ss a z": "MMM y, h:mm:ss a z", "yMMMd, h:mm:ss a z": "MMM d, y, h:mm:ss a z", "yMMMEd, h:mm:ss a z": "E, MMM d, y, h:mm:ss a z", "yMMMM 'at' h:mm:ss a z": "MMMM y 'at' h:mm:ss a z", "EEEE, MMMM d, y 'at' h:mm:ss a": "EEEE, MMMM d, y 'at' h:mm:ss a", "MMMM d, y 'at' h:mm:ss a": "MMMM d, y 'at' h:mm:ss a", "MMM d, y, h:mm:ss a": "MMM d, y, h:mm:ss a", "M/d/yy, h:mm:ss a": "M/d/yy, h:mm:ss a", "d, h:mm:ss a": "d, h:mm:ss a", "E, h:mm:ss a": "ccc, h:mm:ss a", "Ed, h:mm:ss a": "d E, h:mm:ss a", "Gy, h:mm:ss a": "y G, h:mm:ss a", "GyMMM, h:mm:ss a": "MMM y G, h:mm:ss a", "GyMMMd, h:mm:ss a": "MMM d, y G, h:mm:ss a", "GyMMMEd, h:mm:ss a": "E, MMM d, y G, h:mm:ss a", "M, h:mm:ss a": "L, h:mm:ss a", "Md, h:mm:ss a": "M/d, h:mm:ss a", "MEd, h:mm:ss a": "E, M/d, h:mm:ss a", "MMM, h:mm:ss a": "LLL, h:mm:ss a", "MMMd, h:mm:ss a": "MMM d, h:mm:ss a", "MMMEd, h:mm:ss a": "E, MMM d, h:mm:ss a", "MMMMd 'at' h:mm:ss a": "MMMM d 'at' h:mm:ss a", "y, h:mm:ss a": "y, h:mm:ss a", "yM, h:mm:ss a": "M/y, h:mm:ss a", "yMd, h:mm:ss a": "M/d/y, h:mm:ss a", "yMEd, h:mm:ss a": "E, M/d/y, h:mm:ss a", "yMMM, h:mm:ss a": "MMM y, h:mm:ss a", "yMMMd, h:mm:ss a": "MMM d, y, h:mm:ss a", "yMMMEd, h:mm:ss a": "E, MMM d, y, h:mm:ss a", "yMMMM 'at' h:mm:ss a": "MMMM y 'at' h:mm:ss a", "EEEE, MMMM d, y 'at' h:mm a": "EEEE, MMMM d, y 'at' h:mm a", "MMMM d, y 'at' h:mm a": "MMMM d, y 'at' h:mm a", "MMM d, y, h:mm a": "MMM d, y, h:mm a", "M/d/yy, h:mm a": "M/d/yy, h:mm a", "d, h:mm a": "d, h:mm a", "E, h:mm a": "ccc, h:mm a", "Ed, h:mm a": "d E, h:mm a", "Gy, h:mm a": "y G, h:mm a", "GyMMM, h:mm a": "MMM y G, h:mm a", "GyMMMd, h:mm a": "MMM d, y G, h:mm a", "GyMMMEd, h:mm a": "E, MMM d, y G, h:mm a", "M, h:mm a": "L, h:mm a", "Md, h:mm a": "M/d, h:mm a", "MEd, h:mm a": "E, M/d, h:mm a", "MMM, h:mm a": "LLL, h:mm a", "MMMd, h:mm a": "MMM d, h:mm a", "MMMEd, h:mm a": "E, MMM d, h:mm a", "MMMMd 'at' h:mm a": "MMMM d 'at' h:mm a", "y, h:mm a": "y, h:mm a", "yM, h:mm a": "M/y, h:mm a", "yMd, h:mm a": "M/d/y, h:mm a", "yMEd, h:mm a": "E, M/d/y, h:mm a", "yMMM, h:mm a": "MMM y, h:mm a", "yMMMd, h:mm a": "MMM d, y, h:mm a", "yMMMEd, h:mm a": "E, MMM d, y, h:mm a", "yMMMM 'at' h:mm a": "MMMM y 'at' h:mm a", "EEEE, MMMM d, y 'at' Bh": "EEEE, MMMM d, y 'at' h B", "MMMM d, y 'at' Bh": "MMMM d, y 'at' h B", "MMM d, y, Bh": "MMM d, y, h B", "M/d/yy, Bh": "M/d/yy, h B", "d, Bh": "d, h B", "E, Bh": "ccc, h B", "Ed, Bh": "d E, h B", "Gy, Bh": "y G, h B", "GyMMM, Bh": "MMM y G, h B", "GyMMMd, Bh": "MMM d, y G, h B", "GyMMMEd, Bh": "E, MMM d, y G, h B", "M, Bh": "L, h B", "Md, Bh": "M/d, h B", "MEd, Bh": "E, M/d, h B", "MMM, Bh": "LLL, h B", "MMMd, Bh": "MMM d, h B", "MMMEd, Bh": "E, MMM d, h B", "MMMMd 'at' Bh": "MMMM d 'at' h B", "y, Bh": "y, h B", "yM, Bh": "M/y, h B", "yMd, Bh": "M/d/y, h B", "yMEd, Bh": "E, M/d/y, h B", "yMMM, Bh": "MMM y, h B", "yMMMd, Bh": "MMM d, y, h B", "yMMMEd, Bh": "E, MMM d, y, h B", "yMMMM 'at' Bh": "MMMM y 'at' h B", "EEEE, MMMM d, y 'at' Bhm": "EEEE, MMMM d, y 'at' h:mm B", "MMMM d, y 'at' Bhm": "MMMM d, y 'at' h:mm B", "MMM d, y, Bhm": "MMM d, y, h:mm B", "M/d/yy, Bhm": "M/d/yy, h:mm B", "d, Bhm": "d, h:mm B", "E, Bhm": "ccc, h:mm B", "Ed, Bhm": "d E, h:mm B", "Gy, Bhm": "y G, h:mm B", "GyMMM, Bhm": "MMM y G, h:mm B", "GyMMMd, Bhm": "MMM d, y G, h:mm B", "GyMMMEd, Bhm": "E, MMM d, y G, h:mm B", "M, Bhm": "L, h:mm B", "Md, Bhm": "M/d, h:mm B", "MEd, Bhm": "E, M/d, h:mm B", "MMM, Bhm": "LLL, h:mm B", "MMMd, Bhm": "MMM d, h:mm B", "MMMEd, Bhm": "E, MMM d, h:mm B", "MMMMd 'at' Bhm": "MMMM d 'at' h:mm B", "y, Bhm": "y, h:mm B", "yM, Bhm": "M/y, h:mm B", "yMd, Bhm": "M/d/y, h:mm B", "yMEd, Bhm": "E, M/d/y, h:mm B", "yMMM, Bhm": "MMM y, h:mm B", "yMMMd, Bhm": "MMM d, y, h:mm B", "yMMMEd, Bhm": "E, MMM d, y, h:mm B", "yMMMM 'at' Bhm": "MMMM y 'at' h:mm B", "EEEE, MMMM d, y 'at' Bhms": "EEEE, MMMM d, y 'at' h:mm:ss B", "MMMM d, y 'at' Bhms": "MMMM d, y 'at' h:mm:ss B", "MMM d, y, Bhms": "MMM d, y, h:mm:ss B", "M/d/yy, Bhms": "M/d/yy, h:mm:ss B", "d, Bhms": "d, h:mm:ss B", "E, Bhms": "ccc, h:mm:ss B", "Ed, Bhms": "d E, h:mm:ss B", "Gy, Bhms": "y G, h:mm:ss B", "GyMMM, Bhms": "MMM y G, h:mm:ss B", "GyMMMd, Bhms": "MMM d, y G, h:mm:ss B", "GyMMMEd, Bhms": "E, MMM d, y G, h:mm:ss B", "M, Bhms": "L, h:mm:ss B", "Md, Bhms": "M/d, h:mm:ss B", "MEd, Bhms": "E, M/d, h:mm:ss B", "MMM, Bhms": "LLL, h:mm:ss B", "MMMd, Bhms": "MMM d, h:mm:ss B", "MMMEd, Bhms": "E, MMM d, h:mm:ss B", "MMMMd 'at' Bhms": "MMMM d 'at' h:mm:ss B", "y, Bhms": "y, h:mm:ss B", "yM, Bhms": "M/y, h:mm:ss B", "yMd, Bhms": "M/d/y, h:mm:ss B", "yMEd, Bhms": "E, M/d/y, h:mm:ss B", "yMMM, Bhms": "MMM y, h:mm:ss B", "yMMMd, Bhms": "MMM d, y, h:mm:ss B", "yMMMEd, Bhms": "E, MMM d, y, h:mm:ss B", "yMMMM 'at' Bhms": "MMMM y 'at' h:mm:ss B", "EEEE, MMMM d, y 'at' h": "EEEE, MMMM d, y 'at' h a", "MMMM d, y 'at' h": "MMMM d, y 'at' h a", "MMM d, y, h": "MMM d, y, h a", "M/d/yy, h": "M/d/yy, h a", "d, h": "d, h a", "E, h": "ccc, h a", "Ed, h": "d E, h a", "Gy, h": "y G, h a", "GyMMM, h": "MMM y G, h a", "GyMMMd, h": "MMM d, y G, h a", "GyMMMEd, h": "E, MMM d, y G, h a", "M, h": "L, h a", "Md, h": "M/d, h a", "MEd, h": "E, M/d, h a", "MMM, h": "LLL, h a", "MMMd, h": "MMM d, h a", "MMMEd, h": "E, MMM d, h a", "MMMMd 'at' h": "MMMM d 'at' h a", "y, h": "y, h a", "yM, h": "M/y, h a", "yMd, h": "M/d/y, h a", "yMEd, h": "E, M/d/y, h a", "yMMM, h": "MMM y, h a", "yMMMd, h": "MMM d, y, h a", "yMMMEd, h": "E, MMM d, y, h a", "yMMMM 'at' h": "MMMM y 'at' h a", "EEEE, MMMM d, y 'at' H": "EEEE, MMMM d, y 'at' HH", "MMMM d, y 'at' H": "MMMM d, y 'at' HH", "MMM d, y, H": "MMM d, y, HH", "M/d/yy, H": "M/d/yy, HH", "d, H": "d, HH", "E, H": "ccc, HH", "Ed, H": "d E, HH", "Gy, H": "y G, HH", "GyMMM, H": "MMM y G, HH", "GyMMMd, H": "MMM d, y G, HH", "GyMMMEd, H": "E, MMM d, y G, HH", "M, H": "L, HH", "Md, H": "M/d, HH", "MEd, H": "E, M/d, HH", "MMM, H": "LLL, HH", "MMMd, H": "MMM d, HH", "MMMEd, H": "E, MMM d, HH", "MMMMd 'at' H": "MMMM d 'at' HH", "y, H": "y, HH", "yM, H": "M/y, HH", "yMd, H": "M/d/y, HH", "yMEd, H": "E, M/d/y, HH", "yMMM, H": "MMM y, HH", "yMMMd, H": "MMM d, y, HH", "yMMMEd, H": "E, MMM d, y, HH", "yMMMM 'at' H": "MMMM y 'at' HH", "EEEE, MMMM d, y 'at' hm": "EEEE, MMMM d, y 'at' h:mm a", "MMMM d, y 'at' hm": "MMMM d, y 'at' h:mm a", "MMM d, y, hm": "MMM d, y, h:mm a", "M/d/yy, hm": "M/d/yy, h:mm a", "d, hm": "d, h:mm a", "E, hm": "ccc, h:mm a", "Ed, hm": "d E, h:mm a", "Gy, hm": "y G, h:mm a", "GyMMM, hm": "MMM y G, h:mm a", "GyMMMd, hm": "MMM d, y G, h:mm a", "GyMMMEd, hm": "E, MMM d, y G, h:mm a", "M, hm": "L, h:mm a", "Md, hm": "M/d, h:mm a", "MEd, hm": "E, M/d, h:mm a", "MMM, hm": "LLL, h:mm a", "MMMd, hm": "MMM d, h:mm a", "MMMEd, hm": "E, MMM d, h:mm a", "MMMMd 'at' hm": "MMMM d 'at' h:mm a", "y, hm": "y, h:mm a", "yM, hm": "M/y, h:mm a", "yMd, hm": "M/d/y, h:mm a", "yMEd, hm": "E, M/d/y, h:mm a", "yMMM, hm": "MMM y, h:mm a", "yMMMd, hm": "MMM d, y, h:mm a", "yMMMEd, hm": "E, MMM d, y, h:mm a", "yMMMM 'at' hm": "MMMM y 'at' h:mm a", "EEEE, MMMM d, y 'at' Hm": "EEEE, MMMM d, y 'at' HH:mm", "MMMM d, y 'at' Hm": "MMMM d, y 'at' HH:mm", "MMM d, y, Hm": "MMM d, y, HH:mm", "M/d/yy, Hm": "M/d/yy, HH:mm", "d, Hm": "d, HH:mm", "E, Hm": "ccc, HH:mm", "Ed, Hm": "d E, HH:mm", "Gy, Hm": "y G, HH:mm", "GyMMM, Hm": "MMM y G, HH:mm", "GyMMMd, Hm": "MMM d, y G, HH:mm", "GyMMMEd, Hm": "E, MMM d, y G, HH:mm", "M, Hm": "L, HH:mm", "Md, Hm": "M/d, HH:mm", "MEd, Hm": "E, M/d, HH:mm", "MMM, Hm": "LLL, HH:mm", "MMMd, Hm": "MMM d, HH:mm", "MMMEd, Hm": "E, MMM d, HH:mm", "MMMMd 'at' Hm": "MMMM d 'at' HH:mm", "y, Hm": "y, HH:mm", "yM, Hm": "M/y, HH:mm", "yMd, Hm": "M/d/y, HH:mm", "yMEd, Hm": "E, M/d/y, HH:mm", "yMMM, Hm": "MMM y, HH:mm", "yMMMd, Hm": "MMM d, y, HH:mm", "yMMMEd, Hm": "E, MMM d, y, HH:mm", "yMMMM 'at' Hm": "MMMM y 'at' HH:mm", "EEEE, MMMM d, y 'at' hms": "EEEE, MMMM d, y 'at' h:mm:ss a", "MMMM d, y 'at' hms": "MMMM d, y 'at' h:mm:ss a", "MMM d, y, hms": "MMM d, y, h:mm:ss a", "M/d/yy, hms": "M/d/yy, h:mm:ss a", "d, hms": "d, h:mm:ss a", "E, hms": "ccc, h:mm:ss a", "Ed, hms": "d E, h:mm:ss a", "Gy, hms": "y G, h:mm:ss a", "GyMMM, hms": "MMM y G, h:mm:ss a", "GyMMMd, hms": "MMM d, y G, h:mm:ss a", "GyMMMEd, hms": "E, MMM d, y G, h:mm:ss a", "M, hms": "L, h:mm:ss a", "Md, hms": "M/d, h:mm:ss a", "MEd, hms": "E, M/d, h:mm:ss a", "MMM, hms": "LLL, h:mm:ss a", "MMMd, hms": "MMM d, h:mm:ss a", "MMMEd, hms": "E, MMM d, h:mm:ss a", "MMMMd 'at' hms": "MMMM d 'at' h:mm:ss a", "y, hms": "y, h:mm:ss a", "yM, hms": "M/y, h:mm:ss a", "yMd, hms": "M/d/y, h:mm:ss a", "yMEd, hms": "E, M/d/y, h:mm:ss a", "yMMM, hms": "MMM y, h:mm:ss a", "yMMMd, hms": "MMM d, y, h:mm:ss a", "yMMMEd, hms": "E, MMM d, y, h:mm:ss a", "yMMMM 'at' hms": "MMMM y 'at' h:mm:ss a", "EEEE, MMMM d, y 'at' Hms": "EEEE, MMMM d, y 'at' HH:mm:ss", "MMMM d, y 'at' Hms": "MMMM d, y 'at' HH:mm:ss", "MMM d, y, Hms": "MMM d, y, HH:mm:ss", "M/d/yy, Hms": "M/d/yy, HH:mm:ss", "d, Hms": "d, HH:mm:ss", "E, Hms": "ccc, HH:mm:ss", "Ed, Hms": "d E, HH:mm:ss", "Gy, Hms": "y G, HH:mm:ss", "GyMMM, Hms": "MMM y G, HH:mm:ss", "GyMMMd, Hms": "MMM d, y G, HH:mm:ss", "GyMMMEd, Hms": "E, MMM d, y G, HH:mm:ss", "M, Hms": "L, HH:mm:ss", "Md, Hms": "M/d, HH:mm:ss", "MEd, Hms": "E, M/d, HH:mm:ss", "MMM, Hms": "LLL, HH:mm:ss", "MMMd, Hms": "MMM d, HH:mm:ss", "MMMEd, Hms": "E, MMM d, HH:mm:ss", "MMMMd 'at' Hms": "MMMM d 'at' HH:mm:ss", "y, Hms": "y, HH:mm:ss", "yM, Hms": "M/y, HH:mm:ss", "yMd, Hms": "M/d/y, HH:mm:ss", "yMEd, Hms": "E, M/d/y, HH:mm:ss", "yMMM, Hms": "MMM y, HH:mm:ss", "yMMMd, Hms": "MMM d, y, HH:mm:ss", "yMMMEd, Hms": "E, MMM d, y, HH:mm:ss", "yMMMM 'at' Hms": "MMMM y 'at' HH:mm:ss", "EEEE, MMMM d, y 'at' hmsv": "EEEE, MMMM d, y 'at' h:mm:ss a v", "MMMM d, y 'at' hmsv": "MMMM d, y 'at' h:mm:ss a v", "MMM d, y, hmsv": "MMM d, y, h:mm:ss a v", "M/d/yy, hmsv": "M/d/yy, h:mm:ss a v", "d, hmsv": "d, h:mm:ss a v", "E, hmsv": "ccc, h:mm:ss a v", "Ed, hmsv": "d E, h:mm:ss a v", "Gy, hmsv": "y G, h:mm:ss a v", "GyMMM, hmsv": "MMM y G, h:mm:ss a v", "GyMMMd, hmsv": "MMM d, y G, h:mm:ss a v", "GyMMMEd, hmsv": "E, MMM d, y G, h:mm:ss a v", "M, hmsv": "L, h:mm:ss a v", "Md, hmsv": "M/d, h:mm:ss a v", "MEd, hmsv": "E, M/d, h:mm:ss a v", "MMM, hmsv": "LLL, h:mm:ss a v", "MMMd, hmsv": "MMM d, h:mm:ss a v", "MMMEd, hmsv": "E, MMM d, h:mm:ss a v", "MMMMd 'at' hmsv": "MMMM d 'at' h:mm:ss a v", "y, hmsv": "y, h:mm:ss a v", "yM, hmsv": "M/y, h:mm:ss a v", "yMd, hmsv": "M/d/y, h:mm:ss a v", "yMEd, hmsv": "E, M/d/y, h:mm:ss a v", "yMMM, hmsv": "MMM y, h:mm:ss a v", "yMMMd, hmsv": "MMM d, y, h:mm:ss a v", "yMMMEd, hmsv": "E, MMM d, y, h:mm:ss a v", "yMMMM 'at' hmsv": "MMMM y 'at' h:mm:ss a v", "EEEE, MMMM d, y 'at' Hmsv": "EEEE, MMMM d, y 'at' HH:mm:ss v", "MMMM d, y 'at' Hmsv": "MMMM d, y 'at' HH:mm:ss v", "MMM d, y, Hmsv": "MMM d, y, HH:mm:ss v", "M/d/yy, Hmsv": "M/d/yy, HH:mm:ss v", "d, Hmsv": "d, HH:mm:ss v", "E, Hmsv": "ccc, HH:mm:ss v", "Ed, Hmsv": "d E, HH:mm:ss v", "Gy, Hmsv": "y G, HH:mm:ss v", "GyMMM, Hmsv": "MMM y G, HH:mm:ss v", "GyMMMd, Hmsv": "MMM d, y G, HH:mm:ss v", "GyMMMEd, Hmsv": "E, MMM d, y G, HH:mm:ss v", "M, Hmsv": "L, HH:mm:ss v", "Md, Hmsv": "M/d, HH:mm:ss v", "MEd, Hmsv": "E, M/d, HH:mm:ss v", "MMM, Hmsv": "LLL, HH:mm:ss v", "MMMd, Hmsv": "MMM d, HH:mm:ss v", "MMMEd, Hmsv": "E, MMM d, HH:mm:ss v", "MMMMd 'at' Hmsv": "MMMM d 'at' HH:mm:ss v", "y, Hmsv": "y, HH:mm:ss v", "yM, Hmsv": "M/y, HH:mm:ss v", "yMd, Hmsv": "M/d/y, HH:mm:ss v", "yMEd, Hmsv": "E, M/d/y, HH:mm:ss v", "yMMM, Hmsv": "MMM y, HH:mm:ss v", "yMMMd, Hmsv": "MMM d, y, HH:mm:ss v", "yMMMEd, Hmsv": "E, MMM d, y, HH:mm:ss v", "yMMMM 'at' Hmsv": "MMMM y 'at' HH:mm:ss v", "EEEE, MMMM d, y 'at' hmv": "EEEE, MMMM d, y 'at' h:mm a v", "MMMM d, y 'at' hmv": "MMMM d, y 'at' h:mm a v", "MMM d, y, hmv": "MMM d, y, h:mm a v", "M/d/yy, hmv": "M/d/yy, h:mm a v", "d, hmv": "d, h:mm a v", "E, hmv": "ccc, h:mm a v", "Ed, hmv": "d E, h:mm a v", "Gy, hmv": "y G, h:mm a v", "GyMMM, hmv": "MMM y G, h:mm a v", "GyMMMd, hmv": "MMM d, y G, h:mm a v", "GyMMMEd, hmv": "E, MMM d, y G, h:mm a v", "M, hmv": "L, h:mm a v", "Md, hmv": "M/d, h:mm a v", "MEd, hmv": "E, M/d, h:mm a v", "MMM, hmv": "LLL, h:mm a v", "MMMd, hmv": "MMM d, h:mm a v", "MMMEd, hmv": "E, MMM d, h:mm a v", "MMMMd 'at' hmv": "MMMM d 'at' h:mm a v", "y, hmv": "y, h:mm a v", "yM, hmv": "M/y, h:mm a v", "yMd, hmv": "M/d/y, h:mm a v", "yMEd, hmv": "E, M/d/y, h:mm a v", "yMMM, hmv": "MMM y, h:mm a v", "yMMMd, hmv": "MMM d, y, h:mm a v", "yMMMEd, hmv": "E, MMM d, y, h:mm a v", "yMMMM 'at' hmv": "MMMM y 'at' h:mm a v", "EEEE, MMMM d, y 'at' Hmv": "EEEE, MMMM d, y 'at' HH:mm v", "MMMM d, y 'at' Hmv": "MMMM d, y 'at' HH:mm v", "MMM d, y, Hmv": "MMM d, y, HH:mm v", "M/d/yy, Hmv": "M/d/yy, HH:mm v", "d, Hmv": "d, HH:mm v", "E, Hmv": "ccc, HH:mm v", "Ed, Hmv": "d E, HH:mm v", "Gy, Hmv": "y G, HH:mm v", "GyMMM, Hmv": "MMM y G, HH:mm v", "GyMMMd, Hmv": "MMM d, y G, HH:mm v", "GyMMMEd, Hmv": "E, MMM d, y G, HH:mm v", "M, Hmv": "L, HH:mm v", "Md, Hmv": "M/d, HH:mm v", "MEd, Hmv": "E, M/d, HH:mm v", "MMM, Hmv": "LLL, HH:mm v", "MMMd, Hmv": "MMM d, HH:mm v", "MMMEd, Hmv": "E, MMM d, HH:mm v", "MMMMd 'at' Hmv": "MMMM d 'at' HH:mm v", "y, Hmv": "y, HH:mm v", "yM, Hmv": "M/y, HH:mm v", "yMd, Hmv": "M/d/y, HH:mm v", "yMEd, Hmv": "E, M/d/y, HH:mm v", "yMMM, Hmv": "MMM y, HH:mm v", "yMMMd, Hmv": "MMM d, y, HH:mm v", "yMMMEd, Hmv": "E, MMM d, y, HH:mm v", "yMMMM 'at' Hmv": "MMMM y 'at' HH:mm v", "EEEE, MMMM d, y 'at' ms": "EEEE, MMMM d, y 'at' mm:ss", "MMMM d, y 'at' ms": "MMMM d, y 'at' mm:ss", "MMM d, y, ms": "MMM d, y, mm:ss", "M/d/yy, ms": "M/d/yy, mm:ss", "d, ms": "d, mm:ss", "E, ms": "ccc, mm:ss", "Ed, ms": "d E, mm:ss", "Gy, ms": "y G, mm:ss", "GyMMM, ms": "MMM y G, mm:ss", "GyMMMd, ms": "MMM d, y G, mm:ss", "GyMMMEd, ms": "E, MMM d, y G, mm:ss", "M, ms": "L, mm:ss", "Md, ms": "M/d, mm:ss", "MEd, ms": "E, M/d, mm:ss", "MMM, ms": "LLL, mm:ss", "MMMd, ms": "MMM d, mm:ss", "MMMEd, ms": "E, MMM d, mm:ss", "MMMMd 'at' ms": "MMMM d 'at' mm:ss", "y, ms": "y, mm:ss", "yM, ms": "M/y, mm:ss", "yMd, ms": "M/d/y, mm:ss", "yMEd, ms": "E, M/d/y, mm:ss", "yMMM, ms": "MMM y, mm:ss", "yMMMd, ms": "MMM d, y, mm:ss", "yMMMEd, ms": "E, MMM d, y, mm:ss", "yMMMM 'at' ms": "MMMM y 'at' mm:ss" } }, "intervalFormats": { "intervalFormatFallback": "{0} – {1}", "Bh": { "B": "h B – h B", "h": "h – h B" }, "Bhm": { "B": "h:mm B – h:mm B", "h": "h:mm – h:mm B", "m": "h:mm – h:mm B" }, "d": { "d": "d – d" }, "Gy": { "G": "y G – y G", "y": "y – y G" }, "GyM": { "G": "M/y GGGGG – M/y GGGGG", "M": "M/y – M/y GGGGG", "y": "M/y – M/y GGGGG" }, "GyMd": { "d": "M/d/y – M/d/y GGGGG", "G": "M/d/y GGGGG – M/d/y GGGGG", "M": "M/d/y – M/d/y GGGGG", "y": "M/d/y – M/d/y GGGGG" }, "GyMEd": { "d": "E, M/d/y – E, M/d/y GGGGG", "G": "E, M/d/y GGGGG – E, M/d/y GGGGG", "M": "E, M/d/y – E, M/d/y GGGGG", "y": "E, M/d/y – E, M/d/y GGGGG" }, "GyMMM": { "G": "MMM y G – MMM y G", "M": "MMM – MMM y G", "y": "MMM y – MMM y G" }, "GyMMMd": { "d": "MMM d – d, y G", "G": "MMM d, y G – MMM d, y G", "M": "MMM d – MMM d, y G", "y": "MMM d, y – MMM d, y G" }, "GyMMMEd": { "d": "E, MMM d – E, MMM d, y G", "G": "E, MMM d, y G – E, MMM d, y G", "M": "E, MMM d – E, MMM d, y G", "y": "E, MMM d, y – E, MMM d, y G" }, "h": { "a": "h a – h a", "h": "h – h a" }, "H": { "H": "HH – HH" }, "hm": { "a": "h:mm a – h:mm a", "h": "h:mm – h:mm a", "m": "h:mm – h:mm a" }, "Hm": { "H": "HH:mm – HH:mm", "m": "HH:mm – HH:mm" }, "hmv": { "a": "h:mm a – h:mm a v", "h": "h:mm – h:mm a v", "m": "h:mm – h:mm a v" }, "Hmv": { "H": "HH:mm – HH:mm v", "m": "HH:mm – HH:mm v" }, "hv": { "a": "h a – h a v", "h": "h – h a v" }, "Hv": { "H": "HH – HH v" }, "M": { "M": "M – M" }, "Md": { "d": "M/d – M/d", "M": "M/d – M/d" }, "MEd": { "d": "E, M/d – E, M/d", "M": "E, M/d – E, M/d" }, "MMM": { "M": "MMM – MMM" }, "MMMd": { "d": "MMM d – d", "M": "MMM d – MMM d" }, "MMMEd": { "d": "E, MMM d – E, MMM d", "M": "E, MMM d – E, MMM d" }, "y": { "y": "y – y" }, "yM": { "M": "M/y – M/y", "y": "M/y – M/y" }, "yMd": { "d": "M/d/y – M/d/y", "M": "M/d/y – M/d/y", "y": "M/d/y – M/d/y" }, "yMEd": { "d": "E, M/d/y – E, M/d/y", "M": "E, M/d/y – E, M/d/y", "y": "E, M/d/y – E, M/d/y" }, "yMMM": { "M": "MMM – MMM y", "y": "MMM y – MMM y" }, "yMMMd": { "d": "MMM d – d, y", "M": "MMM d – MMM d, y", "y": "MMM d, y – MMM d, y" }, "yMMMEd": { "d": "E, MMM d – E, MMM d, y", "M": "E, MMM d – E, MMM d, y", "y": "E, MMM d, y – E, MMM d, y" }, "yMMMM": { "M": "MMMM – MMMM y", "y": "MMMM y – MMMM y" } }, "hourCycle": "h12", "nu": ["latn"], "ca": ["gregory"], "hc": ["h12", "", "h23", ""] }, "locale": "en" });
// Object.fromEntries
+
    }
/* global CreateMethodProperty, RequireObjectCoercible, ToPropertyKey, CreateDataPropertyOrThrow, AddEntriesFromIterable */
+
    (function () {
 +
        var extendStatics = function (d, b) {
 +
            extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d2, b2) {
 +
                d2.__proto__ = b2;
 +
            } || function (d2, b2) {
 +
                for (var p in b2)
 +
                    if (Object.prototype.hasOwnProperty.call(b2, p))
 +
                        d2[p] = b2[p];
 +
            };
 +
            return extendStatics(d, b);
 +
        };
 +
        function __extends(d, b) {
 +
            if (typeof b !== "function" && b !== null)
 +
                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
 +
            extendStatics(d, b);
 +
            function __() {
 +
                this.constructor = d;
 +
            }
 +
            d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
 +
        }
 +
        var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;
 +
        function invariant(condition, message, Err) {
 +
            if (Err === void 0) {
 +
                Err = Error;
 +
            }
 +
            if (!condition) {
 +
                throw new Err(message);
 +
            }
 +
        }
 +
        var RangePatternType;
 +
        (function (RangePatternType2) {
 +
            RangePatternType2["startRange"] = "startRange";
 +
            RangePatternType2["shared"] = "shared";
 +
            RangePatternType2["endRange"] = "endRange";
 +
        })(RangePatternType || (RangePatternType = {}));
 +
        function CanonicalizeLocaleList(locales) {
 +
            return Intl.getCanonicalLocales(locales);
 +
        }
 +
        function ToString(o) {
 +
            if (typeof o === "symbol") {
 +
                throw TypeError("Cannot convert a Symbol value to a string");
 +
            }
 +
            return String(o);
 +
        }
 +
        function ToObject(arg) {
 +
            if (arg == null) {
 +
                throw new TypeError("undefined/null cannot be converted to object");
 +
            }
 +
            return Object(arg);
 +
        }
 +
        function SameValue(x, y) {
 +
            if (Object.is) {
 +
                return Object.is(x, y);
 +
            }
 +
            if (x === y) {
 +
                return x !== 0 || 1 / x === 1 / y;
 +
            }
 +
            return x !== x && y !== y;
 +
        }
 +
        function Type(x) {
 +
            if (x === null) {
 +
                return "Null";
 +
            }
 +
            if (typeof x === "undefined") {
 +
                return "Undefined";
 +
            }
 +
            if (typeof x === "function" || typeof x === "object") {
 +
                return "Object";
 +
            }
 +
            if (typeof x === "number") {
 +
                return "Number";
 +
            }
 +
            if (typeof x === "boolean") {
 +
                return "Boolean";
 +
            }
 +
            if (typeof x === "string") {
 +
                return "String";
 +
            }
 +
            if (typeof x === "symbol") {
 +
                return "Symbol";
 +
            }
 +
            if (typeof x === "bigint") {
 +
                return "BigInt";
 +
            }
 +
        }
 +
        var MINUTES_PER_HOUR = 60;
 +
        var SECONDS_PER_MINUTE = 60;
 +
        var MS_PER_SECOND = 1e3;
 +
        var MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;
 +
        var MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;
 +
        function CoerceOptionsToObject(options) {
 +
            if (typeof options === "undefined") {
 +
                return Object.create(null);
 +
            }
 +
            return ToObject(options);
 +
        }
 +
        function PartitionPattern(pattern) {
 +
            var result = [];
 +
            var beginIndex = pattern.indexOf("{");
 +
            var endIndex = 0;
 +
            var nextIndex = 0;
 +
            var length = pattern.length;
 +
            while (beginIndex < pattern.length && beginIndex > -1) {
 +
                endIndex = pattern.indexOf("}", beginIndex);
 +
                invariant(endIndex > beginIndex, "Invalid pattern " + pattern);
 +
                if (beginIndex > nextIndex) {
 +
                    result.push({
 +
                        type: "literal",
 +
                        value: pattern.substring(nextIndex, beginIndex)
 +
                    });
 +
                }
 +
                result.push({
 +
                    type: pattern.substring(beginIndex + 1, endIndex),
 +
                    value: void 0
 +
                });
 +
                nextIndex = endIndex + 1;
 +
                beginIndex = pattern.indexOf("{", nextIndex);
 +
            }
 +
            if (nextIndex < length) {
 +
                result.push({
 +
                    type: "literal",
 +
                    value: pattern.substring(nextIndex, length)
 +
                });
 +
            }
 +
            return result;
 +
        }
 +
        function GetOption(opts, prop, type, values, fallback) {
 +
            if (typeof opts !== "object") {
 +
                throw new TypeError("Options must be an object");
 +
            }
 +
            var value = opts[prop];
 +
            if (value !== void 0) {
 +
                if (type !== "boolean" && type !== "string") {
 +
                    throw new TypeError("invalid type");
 +
                }
 +
                if (type === "boolean") {
 +
                    value = Boolean(value);
 +
                }
 +
                if (type === "string") {
 +
                    value = ToString(value);
 +
                }
 +
                if (values !== void 0 && !values.filter(function (val) {
 +
                    return val == value;
 +
                }).length) {
 +
                    throw new RangeError(value + " is not within " + values.join(", "));
 +
                }
 +
                return value;
 +
            }
 +
            return fallback;
 +
        }
 +
        function BestAvailableLocale(availableLocales, locale) {
 +
            var candidate = locale;
 +
            while (true) {
 +
                if (availableLocales.has(candidate)) {
 +
                    return candidate;
 +
                }
 +
                var pos = candidate.lastIndexOf("-");
 +
                if (!~pos) {
 +
                    return void 0;
 +
                }
 +
                if (pos >= 2 && candidate[pos - 2] === "-") {
 +
                    pos -= 2;
 +
                }
 +
                candidate = candidate.slice(0, pos);
 +
            }
 +
        }
 +
        function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {
 +
            var result = { locale: "" };
 +
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
 +
                var locale = requestedLocales_1[_i];
 +
                var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
 +
                var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
 +
                if (availableLocale) {
 +
                    result.locale = availableLocale;
 +
                    if (locale !== noExtensionLocale) {
 +
                        result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);
 +
                    }
 +
                    return result;
 +
                }
 +
            }
 +
            result.locale = getDefaultLocale();
 +
            return result;
 +
        }
 +
        function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {
 +
            var minimizedAvailableLocaleMap = {};
 +
            var minimizedAvailableLocales = new Set();
 +
            availableLocales.forEach(function (locale2) {
 +
                var minimizedLocale = new Intl.Locale(locale2).minimize().toString();
 +
                minimizedAvailableLocaleMap[minimizedLocale] = locale2;
 +
                minimizedAvailableLocales.add(minimizedLocale);
 +
            });
 +
            var foundLocale;
 +
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
 +
                var l = requestedLocales_1[_i];
 +
                if (foundLocale) {
 +
                    break;
 +
                }
 +
                var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
 +
                if (availableLocales.has(noExtensionLocale)) {
 +
                    foundLocale = noExtensionLocale;
 +
                    break;
 +
                }
 +
                if (minimizedAvailableLocales.has(noExtensionLocale)) {
 +
                    foundLocale = minimizedAvailableLocaleMap[noExtensionLocale];
 +
                    break;
 +
                }
 +
                var locale = new Intl.Locale(noExtensionLocale);
 +
                var maximizedRequestedLocale = locale.maximize().toString();
 +
                var minimizedRequestedLocale = locale.minimize().toString();
 +
                if (minimizedAvailableLocales.has(minimizedRequestedLocale)) {
 +
                    foundLocale = minimizedAvailableLocaleMap[minimizedRequestedLocale];
 +
                    break;
 +
                }
 +
                foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale);
 +
            }
 +
            return {
 +
                locale: foundLocale || getDefaultLocale()
 +
            };
 +
        }
 +
        function UnicodeExtensionValue(extension, key) {
 +
            invariant(key.length === 2, "key must have 2 elements");
 +
            var size = extension.length;
 +
            var searchValue = "-" + key + "-";
 +
            var pos = extension.indexOf(searchValue);
 +
            if (pos !== -1) {
 +
                var start = pos + 4;
 +
                var end = start;
 +
                var k = start;
 +
                var done = false;
 +
                while (!done) {
 +
                    var e = extension.indexOf("-", k);
 +
                    var len = void 0;
 +
                    if (e === -1) {
 +
                        len = size - k;
 +
                    }
 +
                    else {
 +
                        len = e - k;
 +
                    }
 +
                    if (len === 2) {
 +
                        done = true;
 +
                    }
 +
                    else if (e === -1) {
 +
                        end = size;
 +
                        done = true;
 +
                    }
 +
                    else {
 +
                        end = e;
 +
                        k = e + 1;
 +
                    }
 +
                }
 +
                return extension.slice(start, end);
 +
            }
 +
            searchValue = "-" + key;
 +
            pos = extension.indexOf(searchValue);
 +
            if (pos !== -1 && pos + 3 === size) {
 +
                return "";
 +
            }
 +
            return void 0;
 +
        }
 +
        function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {
 +
            var matcher = options.localeMatcher;
 +
            var r;
 +
            if (matcher === "lookup") {
 +
                r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale);
 +
            }
 +
            else {
 +
                r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale);
 +
            }
 +
            var foundLocale = r.locale;
 +
            var result = { locale: "", dataLocale: foundLocale };
 +
            var supportedExtension = "-u";
 +
            for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {
 +
                var key = relevantExtensionKeys_1[_i];
 +
                invariant(foundLocale in localeData, "Missing locale data for " + foundLocale);
 +
                var foundLocaleData = localeData[foundLocale];
 +
                invariant(typeof foundLocaleData === "object" && foundLocaleData !== null, "locale data " + key + " must be an object");
 +
                var keyLocaleData = foundLocaleData[key];
 +
                invariant(Array.isArray(keyLocaleData), "keyLocaleData for " + key + " must be an array");
 +
                var value = keyLocaleData[0];
 +
                invariant(typeof value === "string" || value === null, "value must be string or null but got " + typeof value + " in key " + key);
 +
                var supportedExtensionAddition = "";
 +
                if (r.extension) {
 +
                    var requestedValue = UnicodeExtensionValue(r.extension, key);
 +
                    if (requestedValue !== void 0) {
 +
                        if (requestedValue !== "") {
 +
                            if (~keyLocaleData.indexOf(requestedValue)) {
 +
                                value = requestedValue;
 +
                                supportedExtensionAddition = "-" + key + "-" + value;
 +
                            }
 +
                        }
 +
                        else if (~requestedValue.indexOf("true")) {
 +
                            value = "true";
 +
                            supportedExtensionAddition = "-" + key;
 +
                        }
 +
                    }
 +
                }
 +
                if (key in options) {
 +
                    var optionsValue = options[key];
 +
                    invariant(typeof optionsValue === "string" || typeof optionsValue === "undefined" || optionsValue === null, "optionsValue must be String, Undefined or Null");
 +
                    if (~keyLocaleData.indexOf(optionsValue)) {
 +
                        if (optionsValue !== value) {
 +
                            value = optionsValue;
 +
                            supportedExtensionAddition = "";
 +
                        }
 +
                    }
 +
                }
 +
                result[key] = value;
 +
                supportedExtension += supportedExtensionAddition;
 +
            }
 +
            if (supportedExtension.length > 2) {
 +
                var privateIndex = foundLocale.indexOf("-x-");
 +
                if (privateIndex === -1) {
 +
                    foundLocale = foundLocale + supportedExtension;
 +
                }
 +
                else {
 +
                    var preExtension = foundLocale.slice(0, privateIndex);
 +
                    var postExtension = foundLocale.slice(privateIndex, foundLocale.length);
 +
                    foundLocale = preExtension + supportedExtension + postExtension;
 +
                }
 +
                foundLocale = Intl.getCanonicalLocales(foundLocale)[0];
 +
            }
 +
            result.locale = foundLocale;
 +
            return result;
 +
        }
 +
        var SANCTIONED_UNITS = [
 +
            "angle-degree",
 +
            "area-acre",
 +
            "area-hectare",
 +
            "concentr-percent",
 +
            "digital-bit",
 +
            "digital-byte",
 +
            "digital-gigabit",
 +
            "digital-gigabyte",
 +
            "digital-kilobit",
 +
            "digital-kilobyte",
 +
            "digital-megabit",
 +
            "digital-megabyte",
 +
            "digital-petabyte",
 +
            "digital-terabit",
 +
            "digital-terabyte",
 +
            "duration-day",
 +
            "duration-hour",
 +
            "duration-millisecond",
 +
            "duration-minute",
 +
            "duration-month",
 +
            "duration-second",
 +
            "duration-week",
 +
            "duration-year",
 +
            "length-centimeter",
 +
            "length-foot",
 +
            "length-inch",
 +
            "length-kilometer",
 +
            "length-meter",
 +
            "length-mile-scandinavian",
 +
            "length-mile",
 +
            "length-millimeter",
 +
            "length-yard",
 +
            "mass-gram",
 +
            "mass-kilogram",
 +
            "mass-ounce",
 +
            "mass-pound",
 +
            "mass-stone",
 +
            "temperature-celsius",
 +
            "temperature-fahrenheit",
 +
            "volume-fluid-ounce",
 +
            "volume-gallon",
 +
            "volume-liter",
 +
            "volume-milliliter"
 +
        ];
 +
        function removeUnitNamespace(unit) {
 +
            return unit.slice(unit.indexOf("-") + 1);
 +
        }
 +
        var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace);
 +
        var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/;
 +
        var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source);
 +
        var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$");
 +
        function SingularRelativeTimeUnit(unit) {
 +
            invariant(Type(unit) === "String", "unit must be a string");
 +
            if (unit === "seconds")
 +
                return "second";
 +
            if (unit === "minutes")
 +
                return "minute";
 +
            if (unit === "hours")
 +
                return "hour";
 +
            if (unit === "days")
 +
                return "day";
 +
            if (unit === "weeks")
 +
                return "week";
 +
            if (unit === "months")
 +
                return "month";
 +
            if (unit === "quarters")
 +
                return "quarter";
 +
            if (unit === "years")
 +
                return "year";
 +
            if (unit !== "second" && unit !== "minute" && unit !== "hour" && unit !== "day" && unit !== "week" && unit !== "month" && unit !== "quarter" && unit !== "year") {
 +
                throw new RangeError("invalid unit");
 +
            }
 +
            return unit;
 +
        }
 +
        function MakePartsList(pattern, unit, parts) {
 +
            var patternParts = PartitionPattern(pattern);
 +
            var result = [];
 +
            for (var _i = 0, patternParts_1 = patternParts; _i < patternParts_1.length; _i++) {
 +
                var patternPart = patternParts_1[_i];
 +
                if (patternPart.type === "literal") {
 +
                    result.push({
 +
                        type: "literal",
 +
                        value: patternPart.value
 +
                    });
 +
                }
 +
                else {
 +
                    invariant(patternPart.type === "0", "Malformed pattern " + pattern);
 +
                    for (var _a = 0, parts_1 = parts; _a < parts_1.length; _a++) {
 +
                        var part = parts_1[_a];
 +
                        result.push({
 +
                            type: part.type,
 +
                            value: part.value,
 +
                            unit: unit
 +
                        });
 +
                    }
 +
                }
 +
            }
 +
            return result;
 +
        }
 +
        function PartitionRelativeTimePattern(rtf, value, unit, _a) {
 +
            var getInternalSlots2 = _a.getInternalSlots;
 +
            invariant(Type(value) === "Number", "value must be number, instead got " + typeof value, TypeError);
 +
            invariant(Type(unit) === "String", "unit must be number, instead got " + typeof value, TypeError);
 +
            if (isNaN(value) || !isFinite(value)) {
 +
                throw new RangeError("Invalid value " + value);
 +
            }
 +
            var resolvedUnit = SingularRelativeTimeUnit(unit);
 +
            var _b = getInternalSlots2(rtf), fields = _b.fields, style = _b.style, numeric = _b.numeric, pluralRules = _b.pluralRules, numberFormat = _b.numberFormat;
 +
            var entry = resolvedUnit;
 +
            if (style === "short") {
 +
                entry = resolvedUnit + "-short";
 +
            }
 +
            else if (style === "narrow") {
 +
                entry = resolvedUnit + "-narrow";
 +
            }
 +
            if (!(entry in fields)) {
 +
                entry = resolvedUnit;
 +
            }
 +
            var patterns = fields[entry];
 +
            if (numeric === "auto") {
 +
                if (ToString(value) in patterns) {
 +
                    return [
 +
                        {
 +
                            type: "literal",
 +
                            value: patterns[ToString(value)]
 +
                        }
 +
                    ];
 +
                }
 +
            }
 +
            var tl = "future";
 +
            if (SameValue(value, -0) || value < 0) {
 +
                tl = "past";
 +
            }
 +
            var po = patterns[tl];
 +
            var fv = typeof numberFormat.formatToParts === "function" ? numberFormat.formatToParts(Math.abs(value)) : [
 +
                {
 +
                    type: "literal",
 +
                    value: numberFormat.format(Math.abs(value)),
 +
                    unit: unit
 +
                }
 +
            ];
 +
            var pr = pluralRules.select(value);
 +
            var pattern = po[pr];
 +
            return MakePartsList(pattern, resolvedUnit, fv);
 +
        }
 +
        var NUMBERING_SYSTEM_REGEX = /^[a-z0-9]{3,8}(-[a-z0-9]{3,8})*$/i;
 +
        function InitializeRelativeTimeFormat(rtf, locales, options, _a) {
 +
            var getInternalSlots2 = _a.getInternalSlots, availableLocales = _a.availableLocales, relevantExtensionKeys = _a.relevantExtensionKeys, localeData = _a.localeData, getDefaultLocale = _a.getDefaultLocale;
 +
            var internalSlots = getInternalSlots2(rtf);
 +
            internalSlots.initializedRelativeTimeFormat = true;
 +
            var requestedLocales = CanonicalizeLocaleList(locales);
 +
            var opt = Object.create(null);
 +
            var opts = CoerceOptionsToObject(options);
 +
            var matcher = GetOption(opts, "localeMatcher", "string", ["best fit", "lookup"], "best fit");
 +
            opt.localeMatcher = matcher;
 +
            var numberingSystem = GetOption(opts, "numberingSystem", "string", void 0, void 0);
 +
            if (numberingSystem !== void 0) {
 +
                if (!NUMBERING_SYSTEM_REGEX.test(numberingSystem)) {
 +
                    throw new RangeError("Invalid numbering system " + numberingSystem);
 +
                }
 +
            }
 +
            opt.nu = numberingSystem;
 +
            var r = ResolveLocale(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale);
 +
            var locale = r.locale, nu = r.nu;
 +
            internalSlots.locale = locale;
 +
            internalSlots.style = GetOption(opts, "style", "string", ["long", "narrow", "short"], "long");
 +
            internalSlots.numeric = GetOption(opts, "numeric", "string", ["always", "auto"], "always");
 +
            var fields = localeData[r.dataLocale];
 +
            invariant(!!fields, "Missing locale data for " + r.dataLocale);
 +
            internalSlots.fields = fields;
 +
            internalSlots.numberFormat = new Intl.NumberFormat(locales);
 +
            internalSlots.pluralRules = new Intl.PluralRules(locales);
 +
            internalSlots.numberingSystem = nu;
 +
            return rtf;
 +
        }
 +
        function LookupSupportedLocales(availableLocales, requestedLocales) {
 +
            var subset = [];
 +
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
 +
                var locale = requestedLocales_1[_i];
 +
                var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
 +
                var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
 +
                if (availableLocale) {
 +
                    subset.push(availableLocale);
 +
                }
 +
            }
 +
            return subset;
 +
        }
 +
        function SupportedLocales(availableLocales, requestedLocales, options) {
 +
            var matcher = "best fit";
 +
            if (options !== void 0) {
 +
                options = ToObject(options);
 +
                matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit");
 +
            }
 +
            if (matcher === "best fit") {
 +
                return LookupSupportedLocales(availableLocales, requestedLocales);
 +
            }
 +
            return LookupSupportedLocales(availableLocales, requestedLocales);
 +
        }
 +
        var MissingLocaleDataError = function (_super) {
 +
            __extends(MissingLocaleDataError2, _super);
 +
            function MissingLocaleDataError2() {
 +
                var _this = _super !== null && _super.apply(this, arguments) || this;
 +
                _this.type = "MISSING_LOCALE_DATA";
 +
                return _this;
 +
            }
 +
            return MissingLocaleDataError2;
 +
        }(Error);
 +
        var internalSlotMap = new WeakMap();
 +
        function getInternalSlots(x) {
 +
            var internalSlots = internalSlotMap.get(x);
 +
            if (!internalSlots) {
 +
                internalSlots = Object.create(null);
 +
                internalSlotMap.set(x, internalSlots);
 +
            }
 +
            return internalSlots;
 +
        }
 +
        var RelativeTimeFormat = function () {
 +
            function RelativeTimeFormat2(locales, options) {
 +
                var newTarget = this && this instanceof RelativeTimeFormat2 ? this.constructor : void 0;
 +
                if (!newTarget) {
 +
                    throw new TypeError("Intl.RelativeTimeFormat must be called with 'new'");
 +
                }
 +
                return InitializeRelativeTimeFormat(this, locales, options, {
 +
                    getInternalSlots: getInternalSlots,
 +
                    availableLocales: RelativeTimeFormat2.availableLocales,
 +
                    relevantExtensionKeys: RelativeTimeFormat2.relevantExtensionKeys,
 +
                    localeData: RelativeTimeFormat2.localeData,
 +
                    getDefaultLocale: RelativeTimeFormat2.getDefaultLocale
 +
                });
 +
            }
 +
            RelativeTimeFormat2.prototype.format = function (value, unit) {
 +
                if (typeof this !== "object") {
 +
                    throw new TypeError("format was called on a non-object");
 +
                }
 +
                var internalSlots = getInternalSlots(this);
 +
                if (!internalSlots.initializedRelativeTimeFormat) {
 +
                    throw new TypeError("format was called on a invalid context");
 +
                }
 +
                return PartitionRelativeTimePattern(this, Number(value), ToString(unit), {
 +
                    getInternalSlots: getInternalSlots
 +
                }).map(function (el) {
 +
                    return el.value;
 +
                }).join("");
 +
            };
 +
            RelativeTimeFormat2.prototype.formatToParts = function (value, unit) {
 +
                if (typeof this !== "object") {
 +
                    throw new TypeError("formatToParts was called on a non-object");
 +
                }
 +
                var internalSlots = getInternalSlots(this);
 +
                if (!internalSlots.initializedRelativeTimeFormat) {
 +
                    throw new TypeError("formatToParts was called on a invalid context");
 +
                }
 +
                return PartitionRelativeTimePattern(this, Number(value), ToString(unit), { getInternalSlots: getInternalSlots });
 +
            };
 +
            RelativeTimeFormat2.prototype.resolvedOptions = function () {
 +
                if (typeof this !== "object") {
 +
                    throw new TypeError("resolvedOptions was called on a non-object");
 +
                }
 +
                var internalSlots = getInternalSlots(this);
 +
                if (!internalSlots.initializedRelativeTimeFormat) {
 +
                    throw new TypeError("resolvedOptions was called on a invalid context");
 +
                }
 +
                return {
 +
                    locale: internalSlots.locale,
 +
                    style: internalSlots.style,
 +
                    numeric: internalSlots.numeric,
 +
                    numberingSystem: internalSlots.numberingSystem
 +
                };
 +
            };
 +
            RelativeTimeFormat2.supportedLocalesOf = function (locales, options) {
 +
                return SupportedLocales(RelativeTimeFormat2.availableLocales, CanonicalizeLocaleList(locales), options);
 +
            };
 +
            RelativeTimeFormat2.__addLocaleData = function () {
 +
                var data = [];
 +
                for (var _i = 0; _i < arguments.length; _i++) {
 +
                    data[_i] = arguments[_i];
 +
                }
 +
                for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {
 +
                    var _b = data_1[_a], d = _b.data, locale = _b.locale;
 +
                    var minimizedLocale = new Intl.Locale(locale).minimize().toString();
 +
                    RelativeTimeFormat2.localeData[locale] = RelativeTimeFormat2.localeData[minimizedLocale] = d;
 +
                    RelativeTimeFormat2.availableLocales.add(minimizedLocale);
 +
                    RelativeTimeFormat2.availableLocales.add(locale);
 +
                    if (!RelativeTimeFormat2.__defaultLocale) {
 +
                        RelativeTimeFormat2.__defaultLocale = minimizedLocale;
 +
                    }
 +
                }
 +
            };
 +
            RelativeTimeFormat2.getDefaultLocale = function () {
 +
                return RelativeTimeFormat2.__defaultLocale;
 +
            };
 +
            RelativeTimeFormat2.localeData = {};
 +
            RelativeTimeFormat2.availableLocales = new Set();
 +
            RelativeTimeFormat2.__defaultLocale = "";
 +
            RelativeTimeFormat2.relevantExtensionKeys = ["nu"];
 +
            RelativeTimeFormat2.polyfilled = true;
 +
            return RelativeTimeFormat2;
 +
        }();
 +
        var lib_default = RelativeTimeFormat;
 +
        try {
 +
            if (typeof Symbol !== "undefined") {
 +
                Object.defineProperty(RelativeTimeFormat.prototype, Symbol.toStringTag, {
 +
                    value: "Intl.RelativeTimeFormat",
 +
                    writable: false,
 +
                    enumerable: false,
 +
                    configurable: true
 +
                });
 +
            }
 +
            Object.defineProperty(RelativeTimeFormat.prototype.constructor, "length", {
 +
                value: 0,
 +
                writable: false,
 +
                enumerable: false,
 +
                configurable: true
 +
            });
 +
            Object.defineProperty(RelativeTimeFormat.supportedLocalesOf, "length", {
 +
                value: 1,
 +
                writable: false,
 +
                enumerable: false,
 +
                configurable: true
 +
            });
 +
        }
 +
        catch (e) {
 +
        }
 +
        function shouldPolyfill() {
 +
            return typeof Intl === "undefined" || !("RelativeTimeFormat" in Intl);
 +
        }
 +
        if (shouldPolyfill()) {
 +
            Object.defineProperty(Intl, "RelativeTimeFormat", {
 +
                value: lib_default,
 +
                writable: true,
 +
                enumerable: false,
 +
                configurable: true
 +
            });
 +
        }
 +
    })();
 +
    CreateMethodProperty(Object, 'fromEntries', function fromEntries(iterable) {
 +
        RequireObjectCoercible(iterable);
 +
        var obj = {};
 +
        var adder = function (key, value) {
 +
            var O = this;
 +
            var propertyKey = ToPropertyKey(key);
 +
            CreateDataPropertyOrThrow(O, propertyKey, value);
 +
        };
 +
        return AddEntriesFromIterable(obj, iterable, adder);
 +
    });
 +
    (function (global) {
 +
        global.URL.prototype.toJSON = function toJSON() {
 +
            return this.href;
 +
        };
 +
    }(self));
 +
})('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
  
// 19.1.2.5 Object.fromEntries ( iterable )
+
/* </pre> */
CreateMethodProperty(Object, 'fromEntries', function fromEntries(iterable) {
 
    // 1. Perform ? RequireObjectCoercible(iterable).
 
    RequireObjectCoercible(iterable);
 
    // 2. Let obj be ObjectCreate(%ObjectPrototype%).
 
    var obj = {};
 
    // 3. Assert: obj is an extensible ordinary object with no own properties.
 
    // 4. Let stepsDefine be the algorithm steps defined in CreateDataPropertyOnObject Functions.
 
    // 5. Let adder be CreateBuiltinFunction(stepsDefine, « »).
 
    var adder = function (key, value) {
 
        // Let O be the this value.
 
        var O = this;
 
        // Assert: Type(O) is Object.
 
        // Assert: O is an extensible ordinary object.
 
        // Let propertyKey be ? ToPropertyKey(key).
 
        var propertyKey = ToPropertyKey(key);
 
        // Perform ! CreateDataPropertyOrThrow(O, propertyKey, value).
 
        CreateDataPropertyOrThrow(O, propertyKey, value);
 
    };
 
    // 6. Return ? AddEntriesFromIterable(obj, iterable, adder).
 
    return AddEntriesFromIterable(obj, iterable, adder);
 
});
 
})
 
('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
 
// </pre>
 

Latest revision as of 18:15, 5 September 2022

/* <pre> */
/**
 * -------------------------------------------------------------------------
 * !!! DON'T MODIFY THIS PAGE MANUALLY, YOUR CHANGES WILL BE OVERWRITTEN !!!
 * -------------------------------------------------------------------------
 */
var _addText = '{{GHIACode|page=GHIA:MoegirlPediaInterfaceCodes/blob/master/src/gadgets/libPolyfill/MediaWiki:Gadget-libPolyfill.js|user=[[U:AnnAngela]]|longId=378eaeec797247cfd4acb690a83a1c45d7be96af|shortId=378eaee|message=auto: Gadget-polyfill generator - commit from GitHub Actions}}';

"use strict";
(function (self, undefined) {
    function Call(F, V) {
        var argumentsList = arguments.length > 2 ? arguments[2] : [];
        if (IsCallable(F) === false) {
            throw new TypeError(Object.prototype.toString.call(F) + 'is not a function.');
        }
        return F.apply(V, argumentsList);
    }
    function CreateDataProperty(O, P, V) {
        var newDesc = {
            value: V,
            writable: true,
            enumerable: true,
            configurable: true
        };
        try {
            Object.defineProperty(O, P, newDesc);
            return true;
        }
        catch (e) {
            return false;
        }
    }
    function CreateDataPropertyOrThrow(O, P, V) {
        var success = CreateDataProperty(O, P, V);
        if (!success) {
            throw new TypeError('Cannot assign value `' + Object.prototype.toString.call(V) + '` to property `' + Object.prototype.toString.call(P) + '` on object `' + Object.prototype.toString.call(O) + '`');
        }
        return success;
    }
    function CreateMethodProperty(O, P, V) {
        var newDesc = {
            value: V,
            writable: true,
            enumerable: false,
            configurable: true
        };
        Object.defineProperty(O, P, newDesc);
    }
    function Get(O, P) {
        return O[P];
    }
    function IsCallable(argument) {
        return typeof argument === 'function';
    }
    function RequireObjectCoercible(argument) {
        if (argument === null || argument === undefined) {
            throw TypeError(Object.prototype.toString.call(argument) + ' is not coercible to Object.');
        }
        return argument;
    }
    function ToBoolean(argument) {
        return Boolean(argument);
    }
    function ToObject(argument) {
        if (argument === null || argument === undefined) {
            throw TypeError();
        }
        return Object(argument);
    }
    function GetV(v, p) {
        var o = ToObject(v);
        return o[p];
    }
    function GetMethod(V, P) {
        var func = GetV(V, P);
        if (func === null || func === undefined) {
            return undefined;
        }
        if (IsCallable(func) === false) {
            throw new TypeError('Method not callable: ' + P);
        }
        return func;
    }
    function Type(x) {
        switch (typeof x) {
            case 'undefined':
                return 'undefined';
            case 'boolean':
                return 'boolean';
            case 'number':
                return 'number';
            case 'string':
                return 'string';
            case 'symbol':
                return 'symbol';
            default:
                if (x === null)
                    return 'null';
                if ('Symbol' in self && (x instanceof self.Symbol || x.constructor === self.Symbol))
                    return 'symbol';
                return 'object';
        }
    }
    function GetIterator(obj) {
        var method = arguments.length > 1 ? arguments[1] : GetMethod(obj, Symbol.iterator);
        var iterator = Call(method, obj);
        if (Type(iterator) !== 'object') {
            throw new TypeError('bad iterator');
        }
        var nextMethod = GetV(iterator, "next");
        var iteratorRecord = Object.create(null);
        iteratorRecord['[[Iterator]]'] = iterator;
        iteratorRecord['[[NextMethod]]'] = nextMethod;
        iteratorRecord['[[Done]]'] = false;
        return iteratorRecord;
    }
    function IteratorClose(iteratorRecord, completion) {
        if (Type(iteratorRecord['[[Iterator]]']) !== 'object') {
            throw new Error(Object.prototype.toString.call(iteratorRecord['[[Iterator]]']) + 'is not an Object.');
        }
        var iterator = iteratorRecord['[[Iterator]]'];
        var returnMethod = GetMethod(iterator, "return");
        if (returnMethod === undefined) {
            return completion;
        }
        try {
            var innerResult = Call(returnMethod, iterator);
        }
        catch (error) {
            var innerException = error;
        }
        if (completion) {
            return completion;
        }
        if (innerException) {
            throw innerException;
        }
        if (Type(innerResult) !== 'object') {
            throw new TypeError("Iterator's return method returned a non-object.");
        }
        return completion;
    }
    function IteratorComplete(iterResult) {
        if (Type(iterResult) !== 'object') {
            throw new Error(Object.prototype.toString.call(iterResult) + 'is not an Object.');
        }
        return ToBoolean(Get(iterResult, "done"));
    }
    function IteratorNext(iteratorRecord) {
        if (arguments.length < 2) {
            var result = Call(iteratorRecord['[[NextMethod]]'], iteratorRecord['[[Iterator]]']);
        }
        else {
            result = Call(iteratorRecord['[[NextMethod]]'], iteratorRecord['[[Iterator]]'], [arguments[1]]);
        }
        if (Type(result) !== 'object') {
            throw new TypeError('bad iterator');
        }
        return result;
    }
    function IteratorStep(iteratorRecord) {
        var result = IteratorNext(iteratorRecord);
        var done = IteratorComplete(result);
        if (done === true) {
            return false;
        }
        return result;
    }
    function IteratorValue(iterResult) {
        if (Type(iterResult) !== 'object') {
            throw new Error(Object.prototype.toString.call(iterResult) + 'is not an Object.');
        }
        return Get(iterResult, "value");
    }
    var AddEntriesFromIterable = (function () {
        var toString = {}.toString;
        var split = "".split;
        return function AddEntriesFromIterable(target, iterable, adder) {
            if (IsCallable(adder) === false) {
                throw new TypeError("adder is not callable.");
            }
            var iteratorRecord = GetIterator(iterable);
            while (true) {
                var next = IteratorStep(iteratorRecord);
                if (next === false) {
                    return target;
                }
                var nextItem = IteratorValue(next);
                if (Type(nextItem) !== "object") {
                    var error = new TypeError("nextItem is not an object");
                    IteratorClose(iteratorRecord, error);
                    throw error;
                }
                nextItem =
                    (Type(nextItem) === "string" || nextItem instanceof String) &&
                        toString.call(nextItem) == "[object String]"
                        ? split.call(nextItem, "")
                        : nextItem;
                var k;
                try {
                    k = Get(nextItem, "0");
                }
                catch (k) {
                    return IteratorClose(iteratorRecord, k);
                }
                var v;
                try {
                    v = Get(nextItem, "1");
                }
                catch (v) {
                    return IteratorClose(iteratorRecord, v);
                }
                try {
                    Call(adder, target, [k, v]);
                }
                catch (status) {
                    return IteratorClose(iteratorRecord, status);
                }
            }
        };
    })();
    function OrdinaryToPrimitive(O, hint) {
        if (hint === 'string') {
            var methodNames = ['toString', 'valueOf'];
        }
        else {
            methodNames = ['valueOf', 'toString'];
        }
        for (var i = 0; i < methodNames.length; ++i) {
            var name = methodNames[i];
            var method = Get(O, name);
            if (IsCallable(method)) {
                var result = Call(method, O);
                if (Type(result) !== 'object') {
                    return result;
                }
            }
        }
        throw new TypeError('Cannot convert to primitive.');
    }
    function ToPrimitive(input) {
        var PreferredType = arguments.length > 1 ? arguments[1] : undefined;
        if (Type(input) === 'object') {
            if (arguments.length < 2) {
                var hint = 'default';
            }
            else if (PreferredType === String) {
                hint = 'string';
            }
            else if (PreferredType === Number) {
                hint = 'number';
            }
            var exoticToPrim = typeof self.Symbol === 'function' && typeof self.Symbol.toPrimitive === 'symbol' ? GetMethod(input, self.Symbol.toPrimitive) : undefined;
            if (exoticToPrim !== undefined) {
                var result = Call(exoticToPrim, input, [hint]);
                if (Type(result) !== 'object') {
                    return result;
                }
                throw new TypeError('Cannot convert exotic object to primitive.');
            }
            if (hint === 'default') {
                hint = 'number';
            }
            return OrdinaryToPrimitive(input, hint);
        }
        return input;
    }
    function ToString(argument) {
        switch (Type(argument)) {
            case 'symbol':
                throw new TypeError('Cannot convert a Symbol value to a string');
            case 'object':
                var primValue = ToPrimitive(argument, String);
                return ToString(primValue);
            default:
                return String(argument);
        }
    }
    function ToPropertyKey(argument) {
        var key = ToPrimitive(argument, String);
        if (Type(key) === 'symbol') {
            return key;
        }
        return ToString(key);
    }
    (function () {
        function isNotFirefoxContentScriptEnviroment(root) {
            return root && root.Object == Object && root;
        }
        var freeGlobalThis = isNotFirefoxContentScriptEnviroment(typeof globalThis == "object" && globalThis);
        var freeWindow = isNotFirefoxContentScriptEnviroment(typeof window == "object" && window);
        var freeSelf = isNotFirefoxContentScriptEnviroment(typeof self == "object" && self);
        var freeGlobal = isNotFirefoxContentScriptEnviroment(typeof global == "object" && global);
        var globalThis = freeGlobalThis ||
            freeWindow ||
            freeSelf ||
            freeGlobal ||
            Function("return this")();
        try {
            Object.defineProperty(globalThis, "globalThis", {
                configurable: true,
                enumerable: false,
                writable: true,
                value: globalThis
            });
        }
        catch (e) {
            globalThis.globalThis = globalThis;
        }
    })();
    (function () {
        var __create = Object.create;
        var __defProp = Object.defineProperty;
        var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
        var __getOwnPropNames = Object.getOwnPropertyNames;
        var __getProtoOf = Object.getPrototypeOf;
        var __hasOwnProp = Object.prototype.hasOwnProperty;
        var __markAsModule = function (target) {
            return __defProp(target, "__esModule", { value: true });
        };
        var __commonJS = function (cb, mod) {
            return function __require() {
                return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
            };
        };
        var __reExport = function (target, module, desc) {
            if (module && typeof module === "object" || typeof module === "function")
                for (var keys = __getOwnPropNames(module), i = 0, n = keys.length, key; i < n; i++) {
                    key = keys[i];
                    if (!__hasOwnProp.call(target, key) && key !== "default")
                        __defProp(target, key, { get: function (k) {
                                return module[k];
                            }.bind(null, key), enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable });
                }
            return target;
        };
        var __toModule = function (module) {
            return __reExport(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", module && module.__esModule && "default" in module ? { get: function () {
                    return module["default"];
                }, enumerable: true } : { value: module, enumerable: true })), module);
        };
        var require_tslib = __commonJS({
            "node_modules/tslib/tslib.js": function (exports, module) {
                var __extends2;
                var __assign5;
                var __rest;
                var __decorate;
                var __param;
                var __metadata;
                var __awaiter;
                var __generator;
                var __exportStar;
                var __values;
                var __read;
                var __spread;
                var __spreadArrays;
                var __spreadArray2;
                var __await;
                var __asyncGenerator;
                var __asyncDelegator;
                var __asyncValues;
                var __makeTemplateObject;
                var __importStar;
                var __importDefault;
                var __classPrivateFieldGet;
                var __classPrivateFieldSet;
                var __createBinding;
                (function (factory) {
                    var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
                    if (typeof define === "function" && define.amd) {
                        define("tslib", ["exports"], function (exports2) {
                            factory(createExporter(root, createExporter(exports2)));
                        });
                    }
                    else if (typeof module === "object" && typeof module.exports === "object") {
                        factory(createExporter(root, createExporter(module.exports)));
                    }
                    else {
                        factory(createExporter(root));
                    }
                    function createExporter(exports2, previous) {
                        if (exports2 !== root) {
                            if (typeof Object.create === "function") {
                                Object.defineProperty(exports2, "__esModule", { value: true });
                            }
                            else {
                                exports2.__esModule = true;
                            }
                        }
                        return function (id, v) {
                            return exports2[id] = previous ? previous(id, v) : v;
                        };
                    }
                })(function (exporter) {
                    var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
                        d.__proto__ = b;
                    } || function (d, b) {
                        for (var p in b)
                            if (Object.prototype.hasOwnProperty.call(b, p))
                                d[p] = b[p];
                    };
                    __extends2 = function (d, b) {
                        if (typeof b !== "function" && b !== null)
                            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                        extendStatics(d, b);
                        function __() {
                            this.constructor = d;
                        }
                        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
                    };
                    __assign5 = Object.assign || function (t) {
                        for (var s, i = 1, n = arguments.length; i < n; i++) {
                            s = arguments[i];
                            for (var p in s)
                                if (Object.prototype.hasOwnProperty.call(s, p))
                                    t[p] = s[p];
                        }
                        return t;
                    };
                    __rest = function (s, e) {
                        var t = {};
                        for (var p in s)
                            if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
                                t[p] = s[p];
                        if (s != null && typeof Object.getOwnPropertySymbols === "function")
                            for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
                                if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
                                    t[p[i]] = s[p[i]];
                            }
                        return t;
                    };
                    __decorate = function (decorators, target, key, desc) {
                        var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
                        if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
                            r = Reflect.decorate(decorators, target, key, desc);
                        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;
                        return c > 3 && r && Object.defineProperty(target, key, r), r;
                    };
                    __param = function (paramIndex, decorator) {
                        return function (target, key) {
                            decorator(target, key, paramIndex);
                        };
                    };
                    __metadata = function (metadataKey, metadataValue) {
                        if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
                            return Reflect.metadata(metadataKey, metadataValue);
                    };
                    __awaiter = function (thisArg, _arguments, P, generator) {
                        function adopt(value) {
                            return value instanceof P ? value : new P(function (resolve) {
                                resolve(value);
                            });
                        }
                        return new (P || (P = Promise))(function (resolve, reject) {
                            function fulfilled(value) {
                                try {
                                    step(generator.next(value));
                                }
                                catch (e) {
                                    reject(e);
                                }
                            }
                            function rejected(value) {
                                try {
                                    step(generator["throw"](value));
                                }
                                catch (e) {
                                    reject(e);
                                }
                            }
                            function step(result) {
                                result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                            }
                            step((generator = generator.apply(thisArg, _arguments || [])).next());
                        });
                    };
                    __generator = function (thisArg, body) {
                        var _ = { label: 0, sent: function () {
                                if (t[0] & 1)
                                    throw t[1];
                                return t[1];
                            }, trys: [], ops: [] }, f, y, t, g;
                        return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
                            return this;
                        }), g;
                        function verb(n) {
                            return function (v) {
                                return step([n, v]);
                            };
                        }
                        function step(op) {
                            if (f)
                                throw new TypeError("Generator is already executing.");
                            while (_)
                                try {
                                    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;
                                    if (y = 0, t)
                                        op = [op[0] & 2, t.value];
                                    switch (op[0]) {
                                        case 0:
                                        case 1:
                                            t = op;
                                            break;
                                        case 4:
                                            _.label++;
                                            return { value: op[1], done: false };
                                        case 5:
                                            _.label++;
                                            y = op[1];
                                            op = [0];
                                            continue;
                                        case 7:
                                            op = _.ops.pop();
                                            _.trys.pop();
                                            continue;
                                        default:
                                            if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                                                _ = 0;
                                                continue;
                                            }
                                            if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                                                _.label = op[1];
                                                break;
                                            }
                                            if (op[0] === 6 && _.label < t[1]) {
                                                _.label = t[1];
                                                t = op;
                                                break;
                                            }
                                            if (t && _.label < t[2]) {
                                                _.label = t[2];
                                                _.ops.push(op);
                                                break;
                                            }
                                            if (t[2])
                                                _.ops.pop();
                                            _.trys.pop();
                                            continue;
                                    }
                                    op = body.call(thisArg, _);
                                }
                                catch (e) {
                                    op = [6, e];
                                    y = 0;
                                }
                                finally {
                                    f = t = 0;
                                }
                            if (op[0] & 5)
                                throw op[1];
                            return { value: op[0] ? op[1] : void 0, done: true };
                        }
                    };
                    __exportStar = function (m, o) {
                        for (var p in m)
                            if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
                                __createBinding(o, m, p);
                    };
                    __createBinding = Object.create ? function (o, m, k, k2) {
                        if (k2 === void 0)
                            k2 = k;
                        Object.defineProperty(o, k2, { enumerable: true, get: function () {
                                return m[k];
                            } });
                    } : function (o, m, k, k2) {
                        if (k2 === void 0)
                            k2 = k;
                        o[k2] = m[k];
                    };
                    __values = function (o) {
                        var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
                        if (m)
                            return m.call(o);
                        if (o && typeof o.length === "number")
                            return {
                                next: function () {
                                    if (o && i >= o.length)
                                        o = void 0;
                                    return { value: o && o[i++], done: !o };
                                }
                            };
                        throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
                    };
                    __read = function (o, n) {
                        var m = typeof Symbol === "function" && o[Symbol.iterator];
                        if (!m)
                            return o;
                        var i = m.call(o), r, ar = [], e;
                        try {
                            while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
                                ar.push(r.value);
                        }
                        catch (error) {
                            e = { error: error };
                        }
                        finally {
                            try {
                                if (r && !r.done && (m = i["return"]))
                                    m.call(i);
                            }
                            finally {
                                if (e)
                                    throw e.error;
                            }
                        }
                        return ar;
                    };
                    __spread = function () {
                        for (var ar = [], i = 0; i < arguments.length; i++)
                            ar = ar.concat(__read(arguments[i]));
                        return ar;
                    };
                    __spreadArrays = function () {
                        for (var s = 0, i = 0, il = arguments.length; i < il; i++)
                            s += arguments[i].length;
                        for (var r = Array(s), k = 0, i = 0; i < il; i++)
                            for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
                                r[k] = a[j];
                        return r;
                    };
                    __spreadArray2 = function (to, from) {
                        for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
                            to[j] = from[i];
                        return to;
                    };
                    __await = function (v) {
                        return this instanceof __await ? (this.v = v, this) : new __await(v);
                    };
                    __asyncGenerator = function (thisArg, _arguments, generator) {
                        if (!Symbol.asyncIterator)
                            throw new TypeError("Symbol.asyncIterator is not defined.");
                        var g = generator.apply(thisArg, _arguments || []), i, q = [];
                        return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
                            return this;
                        }, i;
                        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);
                                    });
                                };
                        }
                        function resume(n, v) {
                            try {
                                step(g[n](v));
                            }
                            catch (e) {
                                settle(q[0][3], e);
                            }
                        }
                        function step(r) {
                            r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
                        }
                        function fulfill(value) {
                            resume("next", value);
                        }
                        function reject(value) {
                            resume("throw", value);
                        }
                        function settle(f, v) {
                            if (f(v), q.shift(), q.length)
                                resume(q[0][0], q[0][1]);
                        }
                    };
                    __asyncDelegator = function (o) {
                        var i, p;
                        return i = {}, verb("next"), verb("throw", function (e) {
                            throw e;
                        }), verb("return"), i[Symbol.iterator] = function () {
                            return this;
                        }, i;
                        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;
                        }
                    };
                    __asyncValues = function (o) {
                        if (!Symbol.asyncIterator)
                            throw new TypeError("Symbol.asyncIterator is not defined.");
                        var m = o[Symbol.asyncIterator], i;
                        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);
                        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);
                                });
                            };
                        }
                        function settle(resolve, reject, d, v) {
                            Promise.resolve(v).then(function (v2) {
                                resolve({ value: v2, done: d });
                            }, reject);
                        }
                    };
                    __makeTemplateObject = function (cooked, raw) {
                        if (Object.defineProperty) {
                            Object.defineProperty(cooked, "raw", { value: raw });
                        }
                        else {
                            cooked.raw = raw;
                        }
                        return cooked;
                    };
                    var __setModuleDefault = Object.create ? function (o, v) {
                        Object.defineProperty(o, "default", { enumerable: true, value: v });
                    } : function (o, v) {
                        o["default"] = v;
                    };
                    __importStar = function (mod) {
                        if (mod && mod.__esModule)
                            return mod;
                        var result = {};
                        if (mod != null) {
                            for (var k in mod)
                                if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
                                    __createBinding(result, mod, k);
                        }
                        __setModuleDefault(result, mod);
                        return result;
                    };
                    __importDefault = function (mod) {
                        return mod && mod.__esModule ? mod : { "default": mod };
                    };
                    __classPrivateFieldGet = function (receiver, state, kind, f) {
                        if (kind === "a" && !f)
                            throw new TypeError("Private accessor was defined without a getter");
                        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");
                        return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
                    };
                    __classPrivateFieldSet = function (receiver, state, value, kind, f) {
                        if (kind === "m")
                            throw new TypeError("Private method is not writable");
                        if (kind === "a" && !f)
                            throw new TypeError("Private accessor was defined without a setter");
                        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");
                        return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
                    };
                    exporter("__extends", __extends2);
                    exporter("__assign", __assign5);
                    exporter("__rest", __rest);
                    exporter("__decorate", __decorate);
                    exporter("__param", __param);
                    exporter("__metadata", __metadata);
                    exporter("__awaiter", __awaiter);
                    exporter("__generator", __generator);
                    exporter("__exportStar", __exportStar);
                    exporter("__createBinding", __createBinding);
                    exporter("__values", __values);
                    exporter("__read", __read);
                    exporter("__spread", __spread);
                    exporter("__spreadArrays", __spreadArrays);
                    exporter("__spreadArray", __spreadArray2);
                    exporter("__await", __await);
                    exporter("__asyncGenerator", __asyncGenerator);
                    exporter("__asyncDelegator", __asyncDelegator);
                    exporter("__asyncValues", __asyncValues);
                    exporter("__makeTemplateObject", __makeTemplateObject);
                    exporter("__importStar", __importStar);
                    exporter("__importDefault", __importDefault);
                    exporter("__classPrivateFieldGet", __classPrivateFieldGet);
                    exporter("__classPrivateFieldSet", __classPrivateFieldSet);
                });
            }
        });
        var require_parser = __commonJS({
            "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/parser.js": function (exports) {
                "use strict";
                Object.defineProperty(exports, "__esModule", { value: true });
                exports.parseUnicodeLocaleId = exports.parseUnicodeLanguageId = exports.isUnicodeVariantSubtag = exports.isUnicodeScriptSubtag = exports.isUnicodeRegionSubtag = exports.isStructurallyValidLanguageTag = exports.isUnicodeLanguageSubtag = exports.SEPARATOR = void 0;
                var tslib_1 = require_tslib();
                var ALPHANUM_1_8 = /^[a-z0-9]{1,8}$/i;
                var ALPHANUM_2_8 = /^[a-z0-9]{2,8}$/i;
                var ALPHANUM_3_8 = /^[a-z0-9]{3,8}$/i;
                var KEY_REGEX = /^[a-z0-9][a-z]$/i;
                var TYPE_REGEX = /^[a-z0-9]{3,8}$/i;
                var ALPHA_4 = /^[a-z]{4}$/i;
                var OTHER_EXTENSION_TYPE = /^[0-9a-svwyz]$/i;
                var UNICODE_REGION_SUBTAG_REGEX = /^([a-z]{2}|[0-9]{3})$/i;
                var UNICODE_VARIANT_SUBTAG_REGEX = /^([a-z0-9]{5,8}|[0-9][a-z0-9]{3})$/i;
                var UNICODE_LANGUAGE_SUBTAG_REGEX = /^([a-z]{2,3}|[a-z]{5,8})$/i;
                var TKEY_REGEX = /^[a-z][0-9]$/i;
                exports.SEPARATOR = "-";
                function isUnicodeLanguageSubtag2(lang) {
                    return UNICODE_LANGUAGE_SUBTAG_REGEX.test(lang);
                }
                exports.isUnicodeLanguageSubtag = isUnicodeLanguageSubtag2;
                function isStructurallyValidLanguageTag2(tag) {
                    try {
                        parseUnicodeLanguageId2(tag.split(exports.SEPARATOR));
                    }
                    catch (e) {
                        return false;
                    }
                    return true;
                }
                exports.isStructurallyValidLanguageTag = isStructurallyValidLanguageTag2;
                function isUnicodeRegionSubtag2(region) {
                    return UNICODE_REGION_SUBTAG_REGEX.test(region);
                }
                exports.isUnicodeRegionSubtag = isUnicodeRegionSubtag2;
                function isUnicodeScriptSubtag2(script) {
                    return ALPHA_4.test(script);
                }
                exports.isUnicodeScriptSubtag = isUnicodeScriptSubtag2;
                function isUnicodeVariantSubtag(variant) {
                    return UNICODE_VARIANT_SUBTAG_REGEX.test(variant);
                }
                exports.isUnicodeVariantSubtag = isUnicodeVariantSubtag;
                function parseUnicodeLanguageId2(chunks) {
                    if (typeof chunks === "string") {
                        chunks = chunks.split(exports.SEPARATOR);
                    }
                    var lang = chunks.shift();
                    if (!lang) {
                        throw new RangeError("Missing unicode_language_subtag");
                    }
                    if (lang === "root") {
                        return { lang: "root", variants: [] };
                    }
                    if (!isUnicodeLanguageSubtag2(lang)) {
                        throw new RangeError("Malformed unicode_language_subtag");
                    }
                    var script;
                    if (chunks.length && isUnicodeScriptSubtag2(chunks[0])) {
                        script = chunks.shift();
                    }
                    var region;
                    if (chunks.length && isUnicodeRegionSubtag2(chunks[0])) {
                        region = chunks.shift();
                    }
                    var variants = {};
                    while (chunks.length && isUnicodeVariantSubtag(chunks[0])) {
                        var variant = chunks.shift();
                        if (variant in variants) {
                            throw new RangeError('Duplicate variant "' + variant + '"');
                        }
                        variants[variant] = 1;
                    }
                    return {
                        lang: lang,
                        script: script,
                        region: region,
                        variants: Object.keys(variants)
                    };
                }
                exports.parseUnicodeLanguageId = parseUnicodeLanguageId2;
                function parseUnicodeExtension(chunks) {
                    var keywords = [];
                    var keyword;
                    while (chunks.length && (keyword = parseKeyword(chunks))) {
                        keywords.push(keyword);
                    }
                    if (keywords.length) {
                        return {
                            type: "u",
                            keywords: keywords,
                            attributes: []
                        };
                    }
                    var attributes = [];
                    while (chunks.length && ALPHANUM_3_8.test(chunks[0])) {
                        attributes.push(chunks.shift());
                    }
                    while (chunks.length && (keyword = parseKeyword(chunks))) {
                        keywords.push(keyword);
                    }
                    if (keywords.length || attributes.length) {
                        return {
                            type: "u",
                            attributes: attributes,
                            keywords: keywords
                        };
                    }
                    throw new RangeError("Malformed unicode_extension");
                }
                function parseKeyword(chunks) {
                    var key;
                    if (!KEY_REGEX.test(chunks[0])) {
                        return;
                    }
                    key = chunks.shift();
                    var type = [];
                    while (chunks.length && TYPE_REGEX.test(chunks[0])) {
                        type.push(chunks.shift());
                    }
                    var value = "";
                    if (type.length) {
                        value = type.join(exports.SEPARATOR);
                    }
                    return [key, value];
                }
                function parseTransformedExtension(chunks) {
                    var lang;
                    try {
                        lang = parseUnicodeLanguageId2(chunks);
                    }
                    catch (e) {
                    }
                    var fields = [];
                    while (chunks.length && TKEY_REGEX.test(chunks[0])) {
                        var key = chunks.shift();
                        var value = [];
                        while (chunks.length && ALPHANUM_3_8.test(chunks[0])) {
                            value.push(chunks.shift());
                        }
                        if (!value.length) {
                            throw new RangeError('Missing tvalue for tkey "' + key + '"');
                        }
                        fields.push([key, value.join(exports.SEPARATOR)]);
                    }
                    if (fields.length) {
                        return {
                            type: "t",
                            fields: fields,
                            lang: lang
                        };
                    }
                    throw new RangeError("Malformed transformed_extension");
                }
                function parsePuExtension(chunks) {
                    var exts = [];
                    while (chunks.length && ALPHANUM_1_8.test(chunks[0])) {
                        exts.push(chunks.shift());
                    }
                    if (exts.length) {
                        return {
                            type: "x",
                            value: exts.join(exports.SEPARATOR)
                        };
                    }
                    throw new RangeError("Malformed private_use_extension");
                }
                function parseOtherExtensionValue(chunks) {
                    var exts = [];
                    while (chunks.length && ALPHANUM_2_8.test(chunks[0])) {
                        exts.push(chunks.shift());
                    }
                    if (exts.length) {
                        return exts.join(exports.SEPARATOR);
                    }
                    return "";
                }
                function parseExtensions(chunks) {
                    if (!chunks.length) {
                        return { extensions: [] };
                    }
                    var extensions = [];
                    var unicodeExtension;
                    var transformedExtension;
                    var puExtension;
                    var otherExtensionMap = {};
                    do {
                        var type = chunks.shift();
                        switch (type) {
                            case "u":
                            case "U":
                                if (unicodeExtension) {
                                    throw new RangeError("There can only be 1 -u- extension");
                                }
                                unicodeExtension = parseUnicodeExtension(chunks);
                                extensions.push(unicodeExtension);
                                break;
                            case "t":
                            case "T":
                                if (transformedExtension) {
                                    throw new RangeError("There can only be 1 -t- extension");
                                }
                                transformedExtension = parseTransformedExtension(chunks);
                                extensions.push(transformedExtension);
                                break;
                            case "x":
                            case "X":
                                if (puExtension) {
                                    throw new RangeError("There can only be 1 -x- extension");
                                }
                                puExtension = parsePuExtension(chunks);
                                extensions.push(puExtension);
                                break;
                            default:
                                if (!OTHER_EXTENSION_TYPE.test(type)) {
                                    throw new RangeError("Malformed extension type");
                                }
                                if (type in otherExtensionMap) {
                                    throw new RangeError("There can only be 1 -" + type + "- extension");
                                }
                                var extension = {
                                    type: type,
                                    value: parseOtherExtensionValue(chunks)
                                };
                                otherExtensionMap[extension.type] = extension;
                                extensions.push(extension);
                                break;
                        }
                    } while (chunks.length);
                    return { extensions: extensions };
                }
                function parseUnicodeLocaleId2(locale) {
                    var chunks = locale.split(exports.SEPARATOR);
                    var lang = parseUnicodeLanguageId2(chunks);
                    return tslib_1.__assign({ lang: lang }, parseExtensions(chunks));
                }
                exports.parseUnicodeLocaleId = parseUnicodeLocaleId2;
            }
        });
        var require_emitter = __commonJS({
            "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/emitter.js": function (exports) {
                "use strict";
                Object.defineProperty(exports, "__esModule", { value: true });
                exports.emitUnicodeLocaleId = exports.emitUnicodeLanguageId = void 0;
                var tslib_1 = require_tslib();
                function emitUnicodeLanguageId2(lang) {
                    if (!lang) {
                        return "";
                    }
                    return tslib_1.__spreadArray([lang.lang, lang.script, lang.region], lang.variants || []).filter(Boolean).join("-");
                }
                exports.emitUnicodeLanguageId = emitUnicodeLanguageId2;
                function emitUnicodeLocaleId2(_a) {
                    var lang = _a.lang, extensions = _a.extensions;
                    var chunks = [emitUnicodeLanguageId2(lang)];
                    for (var _i = 0, extensions_1 = extensions; _i < extensions_1.length; _i++) {
                        var ext = extensions_1[_i];
                        chunks.push(ext.type);
                        switch (ext.type) {
                            case "u":
                                chunks.push.apply(chunks, tslib_1.__spreadArray(tslib_1.__spreadArray([], ext.attributes), ext.keywords.reduce(function (all, kv) {
                                    return all.concat(kv);
                                }, [])));
                                break;
                            case "t":
                                chunks.push.apply(chunks, tslib_1.__spreadArray([emitUnicodeLanguageId2(ext.lang)], ext.fields.reduce(function (all, kv) {
                                    return all.concat(kv);
                                }, [])));
                                break;
                            default:
                                chunks.push(ext.value);
                                break;
                        }
                    }
                    return chunks.filter(Boolean).join("-");
                }
                exports.emitUnicodeLocaleId = emitUnicodeLocaleId2;
            }
        });
        var require_aliases = __commonJS({
            "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/data/aliases.js": function (exports) {
                "use strict";
                Object.defineProperty(exports, "__esModule", { value: true });
                exports.variantAlias = exports.scriptAlias = exports.territoryAlias = exports.languageAlias = void 0;
                exports.languageAlias = {
                    "aa-saaho": "ssy",
                    "aam": "aas",
                    "aar": "aa",
                    "abk": "ab",
                    "adp": "dz",
                    "afr": "af",
                    "agp": "apf",
                    "ais": "ami",
                    "aju": "jrb",
                    "aka": "ak",
                    "alb": "sq",
                    "als": "sq",
                    "amh": "am",
                    "ara": "ar",
                    "arb": "ar",
                    "arg": "an",
                    "arm": "hy",
                    "art-lojban": "jbo",
                    "asd": "snz",
                    "asm": "as",
                    "aue": "ktz",
                    "ava": "av",
                    "ave": "ae",
                    "aym": "ay",
                    "ayr": "ay",
                    "ayx": "nun",
                    "aze": "az",
                    "azj": "az",
                    "bak": "ba",
                    "bam": "bm",
                    "baq": "eu",
                    "baz": "nvo",
                    "bcc": "bal",
                    "bcl": "bik",
                    "bel": "be",
                    "ben": "bn",
                    "bgm": "bcg",
                    "bh": "bho",
                    "bhk": "fbl",
                    "bih": "bho",
                    "bis": "bi",
                    "bjd": "drl",
                    "bjq": "bzc",
                    "bkb": "ebk",
                    "bod": "bo",
                    "bos": "bs",
                    "bre": "br",
                    "btb": "beb",
                    "bul": "bg",
                    "bur": "my",
                    "bxk": "luy",
                    "bxr": "bua",
                    "cat": "ca",
                    "ccq": "rki",
                    "cel-gaulish": "xtg",
                    "ces": "cs",
                    "cha": "ch",
                    "che": "ce",
                    "chi": "zh",
                    "chu": "cu",
                    "chv": "cv",
                    "cjr": "mom",
                    "cka": "cmr",
                    "cld": "syr",
                    "cmk": "xch",
                    "cmn": "zh",
                    "cnr": "sr-ME",
                    "cor": "kw",
                    "cos": "co",
                    "coy": "pij",
                    "cqu": "quh",
                    "cre": "cr",
                    "cwd": "cr",
                    "cym": "cy",
                    "cze": "cs",
                    "daf": "dnj",
                    "dan": "da",
                    "dap": "njz",
                    "deu": "de",
                    "dgo": "doi",
                    "dhd": "mwr",
                    "dik": "din",
                    "diq": "zza",
                    "dit": "dif",
                    "div": "dv",
                    "djl": "dze",
                    "dkl": "aqd",
                    "drh": "mn",
                    "drr": "kzk",
                    "drw": "fa-AF",
                    "dud": "uth",
                    "duj": "dwu",
                    "dut": "nl",
                    "dwl": "dbt",
                    "dzo": "dz",
                    "ekk": "et",
                    "ell": "el",
                    "elp": "amq",
                    "emk": "man",
                    "en-GB-oed": "en-GB-oxendict",
                    "eng": "en",
                    "epo": "eo",
                    "esk": "ik",
                    "est": "et",
                    "eus": "eu",
                    "ewe": "ee",
                    "fao": "fo",
                    "fas": "fa",
                    "fat": "ak",
                    "fij": "fj",
                    "fin": "fi",
                    "fra": "fr",
                    "fre": "fr",
                    "fry": "fy",
                    "fuc": "ff",
                    "ful": "ff",
                    "gav": "dev",
                    "gaz": "om",
                    "gbc": "wny",
                    "gbo": "grb",
                    "geo": "ka",
                    "ger": "de",
                    "gfx": "vaj",
                    "ggn": "gvr",
                    "ggo": "esg",
                    "ggr": "gtu",
                    "gio": "aou",
                    "gla": "gd",
                    "gle": "ga",
                    "glg": "gl",
                    "gli": "kzk",
                    "glv": "gv",
                    "gno": "gon",
                    "gre": "el",
                    "grn": "gn",
                    "gti": "nyc",
                    "gug": "gn",
                    "guj": "gu",
                    "guv": "duz",
                    "gya": "gba",
                    "hat": "ht",
                    "hau": "ha",
                    "hbs": "sr-Latn",
                    "hdn": "hai",
                    "hea": "hmn",
                    "heb": "he",
                    "her": "hz",
                    "him": "srx",
                    "hin": "hi",
                    "hmo": "ho",
                    "hrr": "jal",
                    "hrv": "hr",
                    "hun": "hu",
                    "hy-arevmda": "hyw",
                    "hye": "hy",
                    "i-ami": "ami",
                    "i-bnn": "bnn",
                    "i-default": "en-x-i-default",
                    "i-enochian": "und-x-i-enochian",
                    "i-hak": "hak",
                    "i-klingon": "tlh",
                    "i-lux": "lb",
                    "i-mingo": "see-x-i-mingo",
                    "i-navajo": "nv",
                    "i-pwn": "pwn",
                    "i-tao": "tao",
                    "i-tay": "tay",
                    "i-tsu": "tsu",
                    "ibi": "opa",
                    "ibo": "ig",
                    "ice": "is",
                    "ido": "io",
                    "iii": "ii",
                    "ike": "iu",
                    "iku": "iu",
                    "ile": "ie",
                    "ill": "ilm",
                    "ilw": "gal",
                    "in": "id",
                    "ina": "ia",
                    "ind": "id",
                    "ipk": "ik",
                    "isl": "is",
                    "ita": "it",
                    "iw": "he",
                    "izi": "eza",
                    "jar": "jgk",
                    "jav": "jv",
                    "jeg": "oyb",
                    "ji": "yi",
                    "jpn": "ja",
                    "jw": "jv",
                    "kal": "kl",
                    "kan": "kn",
                    "kas": "ks",
                    "kat": "ka",
                    "kau": "kr",
                    "kaz": "kk",
                    "kdv": "zkd",
                    "kgc": "tdf",
                    "kgd": "ncq",
                    "kgh": "kml",
                    "khk": "mn",
                    "khm": "km",
                    "kik": "ki",
                    "kin": "rw",
                    "kir": "ky",
                    "kmr": "ku",
                    "knc": "kr",
                    "kng": "kg",
                    "knn": "kok",
                    "koj": "kwv",
                    "kom": "kv",
                    "kon": "kg",
                    "kor": "ko",
                    "kpp": "jkm",
                    "kpv": "kv",
                    "krm": "bmf",
                    "ktr": "dtp",
                    "kua": "kj",
                    "kur": "ku",
                    "kvs": "gdj",
                    "kwq": "yam",
                    "kxe": "tvd",
                    "kxl": "kru",
                    "kzh": "dgl",
                    "kzj": "dtp",
                    "kzt": "dtp",
                    "lao": "lo",
                    "lat": "la",
                    "lav": "lv",
                    "lbk": "bnc",
                    "leg": "enl",
                    "lii": "raq",
                    "lim": "li",
                    "lin": "ln",
                    "lit": "lt",
                    "llo": "ngt",
                    "lmm": "rmx",
                    "ltz": "lb",
                    "lub": "lu",
                    "lug": "lg",
                    "lvs": "lv",
                    "mac": "mk",
                    "mah": "mh",
                    "mal": "ml",
                    "mao": "mi",
                    "mar": "mr",
                    "may": "ms",
                    "meg": "cir",
                    "mgx": "jbk",
                    "mhr": "chm",
                    "mkd": "mk",
                    "mlg": "mg",
                    "mlt": "mt",
                    "mnk": "man",
                    "mnt": "wnn",
                    "mo": "ro",
                    "mof": "xnt",
                    "mol": "ro",
                    "mon": "mn",
                    "mri": "mi",
                    "msa": "ms",
                    "mst": "mry",
                    "mup": "raj",
                    "mwd": "dmw",
                    "mwj": "vaj",
                    "mya": "my",
                    "myd": "aog",
                    "myt": "mry",
                    "nad": "xny",
                    "nau": "na",
                    "nav": "nv",
                    "nbf": "nru",
                    "nbl": "nr",
                    "nbx": "ekc",
                    "ncp": "kdz",
                    "nde": "nd",
                    "ndo": "ng",
                    "nep": "ne",
                    "nld": "nl",
                    "nln": "azd",
                    "nlr": "nrk",
                    "nno": "nn",
                    "nns": "nbr",
                    "nnx": "ngv",
                    "no-bok": "nb",
                    "no-bokmal": "nb",
                    "no-nyn": "nn",
                    "no-nynorsk": "nn",
                    "nob": "nb",
                    "noo": "dtd",
                    "nor": "no",
                    "npi": "ne",
                    "nts": "pij",
                    "nxu": "bpp",
                    "nya": "ny",
                    "oci": "oc",
                    "ojg": "oj",
                    "oji": "oj",
                    "ori": "or",
                    "orm": "om",
                    "ory": "or",
                    "oss": "os",
                    "oun": "vaj",
                    "pan": "pa",
                    "pbu": "ps",
                    "pcr": "adx",
                    "per": "fa",
                    "pes": "fa",
                    "pli": "pi",
                    "plt": "mg",
                    "pmc": "huw",
                    "pmu": "phr",
                    "pnb": "lah",
                    "pol": "pl",
                    "por": "pt",
                    "ppa": "bfy",
                    "ppr": "lcq",
                    "prs": "fa-AF",
                    "pry": "prt",
                    "pus": "ps",
                    "puz": "pub",
                    "que": "qu",
                    "quz": "qu",
                    "rmr": "emx",
                    "rmy": "rom",
                    "roh": "rm",
                    "ron": "ro",
                    "rum": "ro",
                    "run": "rn",
                    "rus": "ru",
                    "sag": "sg",
                    "san": "sa",
                    "sap": "aqt",
                    "sca": "hle",
                    "scc": "sr",
                    "scr": "hr",
                    "sgl": "isk",
                    "sgn-BE-FR": "sfb",
                    "sgn-BE-NL": "vgt",
                    "sgn-BR": "bzs",
                    "sgn-CH-DE": "sgg",
                    "sgn-CO": "csn",
                    "sgn-DE": "gsg",
                    "sgn-DK": "dsl",
                    "sgn-ES": "ssp",
                    "sgn-FR": "fsl",
                    "sgn-GB": "bfi",
                    "sgn-GR": "gss",
                    "sgn-IE": "isg",
                    "sgn-IT": "ise",
                    "sgn-JP": "jsl",
                    "sgn-MX": "mfs",
                    "sgn-NI": "ncs",
                    "sgn-NL": "dse",
                    "sgn-NO": "nsi",
                    "sgn-PT": "psr",
                    "sgn-SE": "swl",
                    "sgn-US": "ase",
                    "sgn-ZA": "sfs",
                    "sh": "sr-Latn",
                    "sin": "si",
                    "skk": "oyb",
                    "slk": "sk",
                    "slo": "sk",
                    "slv": "sl",
                    "sme": "se",
                    "smo": "sm",
                    "sna": "sn",
                    "snd": "sd",
                    "som": "so",
                    "sot": "st",
                    "spa": "es",
                    "spy": "kln",
                    "sqi": "sq",
                    "src": "sc",
                    "srd": "sc",
                    "srp": "sr",
                    "ssw": "ss",
                    "sul": "sgd",
                    "sum": "ulw",
                    "sun": "su",
                    "swa": "sw",
                    "swc": "sw-CD",
                    "swe": "sv",
                    "swh": "sw",
                    "tah": "ty",
                    "tam": "ta",
                    "tat": "tt",
                    "tdu": "dtp",
                    "tel": "te",
                    "tgg": "bjp",
                    "tgk": "tg",
                    "tgl": "fil",
                    "tha": "th",
                    "thc": "tpo",
                    "thw": "ola",
                    "thx": "oyb",
                    "tib": "bo",
                    "tid": "itd",
                    "tie": "ras",
                    "tir": "ti",
                    "tkk": "twm",
                    "tl": "fil",
                    "tlw": "weo",
                    "tmp": "tyj",
                    "tne": "kak",
                    "tnf": "fa-AF",
                    "ton": "to",
                    "tsf": "taj",
                    "tsn": "tn",
                    "tso": "ts",
                    "ttq": "tmh",
                    "tuk": "tk",
                    "tur": "tr",
                    "tw": "ak",
                    "twi": "ak",
                    "uig": "ug",
                    "ukr": "uk",
                    "umu": "del",
                    "und-aaland": "und-AX",
                    "und-arevela": "und",
                    "und-arevmda": "und",
                    "und-bokmal": "und",
                    "und-hakka": "und",
                    "und-hepburn-heploc": "und-alalc97",
                    "und-lojban": "und",
                    "und-nynorsk": "und",
                    "und-saaho": "und",
                    "und-xiang": "und",
                    "unp": "wro",
                    "uok": "ema",
                    "urd": "ur",
                    "uzb": "uz",
                    "uzn": "uz",
                    "ven": "ve",
                    "vie": "vi",
                    "vol": "vo",
                    "wel": "cy",
                    "wgw": "wgb",
                    "wit": "nol",
                    "wiw": "nwo",
                    "wln": "wa",
                    "wol": "wo",
                    "xba": "cax",
                    "xho": "xh",
                    "xia": "acn",
                    "xkh": "waw",
                    "xpe": "kpe",
                    "xrq": "dmw",
                    "xsj": "suj",
                    "xsl": "den",
                    "ybd": "rki",
                    "ydd": "yi",
                    "yen": "ynq",
                    "yid": "yi",
                    "yiy": "yrm",
                    "yma": "lrr",
                    "ymt": "mtm",
                    "yor": "yo",
                    "yos": "zom",
                    "yuu": "yug",
                    "zai": "zap",
                    "zh-cmn": "zh",
                    "zh-cmn-Hans": "zh-Hans",
                    "zh-cmn-Hant": "zh-Hant",
                    "zh-gan": "gan",
                    "zh-guoyu": "zh",
                    "zh-hakka": "hak",
                    "zh-min": "nan-x-zh-min",
                    "zh-min-nan": "nan",
                    "zh-wuu": "wuu",
                    "zh-xiang": "hsn",
                    "zh-yue": "yue",
                    "zha": "za",
                    "zho": "zh",
                    "zir": "scv",
                    "zsm": "ms",
                    "zul": "zu",
                    "zyb": "za"
                };
                exports.territoryAlias = {
                    "100": "BG",
                    "104": "MM",
                    "108": "BI",
                    "112": "BY",
                    "116": "KH",
                    "120": "CM",
                    "124": "CA",
                    "132": "CV",
                    "136": "KY",
                    "140": "CF",
                    "144": "LK",
                    "148": "TD",
                    "152": "CL",
                    "156": "CN",
                    "158": "TW",
                    "162": "CX",
                    "166": "CC",
                    "170": "CO",
                    "172": "RU AM AZ BY GE KG KZ MD TJ TM UA UZ",
                    "174": "KM",
                    "175": "YT",
                    "178": "CG",
                    "180": "CD",
                    "184": "CK",
                    "188": "CR",
                    "191": "HR",
                    "192": "CU",
                    "196": "CY",
                    "200": "CZ SK",
                    "203": "CZ",
                    "204": "BJ",
                    "208": "DK",
                    "212": "DM",
                    "214": "DO",
                    "218": "EC",
                    "222": "SV",
                    "226": "GQ",
                    "230": "ET",
                    "231": "ET",
                    "232": "ER",
                    "233": "EE",
                    "234": "FO",
                    "238": "FK",
                    "239": "GS",
                    "242": "FJ",
                    "246": "FI",
                    "248": "AX",
                    "249": "FR",
                    "250": "FR",
                    "254": "GF",
                    "258": "PF",
                    "260": "TF",
                    "262": "DJ",
                    "266": "GA",
                    "268": "GE",
                    "270": "GM",
                    "275": "PS",
                    "276": "DE",
                    "278": "DE",
                    "280": "DE",
                    "288": "GH",
                    "292": "GI",
                    "296": "KI",
                    "300": "GR",
                    "304": "GL",
                    "308": "GD",
                    "312": "GP",
                    "316": "GU",
                    "320": "GT",
                    "324": "GN",
                    "328": "GY",
                    "332": "HT",
                    "334": "HM",
                    "336": "VA",
                    "340": "HN",
                    "344": "HK",
                    "348": "HU",
                    "352": "IS",
                    "356": "IN",
                    "360": "ID",
                    "364": "IR",
                    "368": "IQ",
                    "372": "IE",
                    "376": "IL",
                    "380": "IT",
                    "384": "CI",
                    "388": "JM",
                    "392": "JP",
                    "398": "KZ",
                    "400": "JO",
                    "404": "KE",
                    "408": "KP",
                    "410": "KR",
                    "414": "KW",
                    "417": "KG",
                    "418": "LA",
                    "422": "LB",
                    "426": "LS",
                    "428": "LV",
                    "430": "LR",
                    "434": "LY",
                    "438": "LI",
                    "440": "LT",
                    "442": "LU",
                    "446": "MO",
                    "450": "MG",
                    "454": "MW",
                    "458": "MY",
                    "462": "MV",
                    "466": "ML",
                    "470": "MT",
                    "474": "MQ",
                    "478": "MR",
                    "480": "MU",
                    "484": "MX",
                    "492": "MC",
                    "496": "MN",
                    "498": "MD",
                    "499": "ME",
                    "500": "MS",
                    "504": "MA",
                    "508": "MZ",
                    "512": "OM",
                    "516": "NA",
                    "520": "NR",
                    "524": "NP",
                    "528": "NL",
                    "530": "CW SX BQ",
                    "531": "CW",
                    "532": "CW SX BQ",
                    "533": "AW",
                    "534": "SX",
                    "535": "BQ",
                    "536": "SA IQ",
                    "540": "NC",
                    "548": "VU",
                    "554": "NZ",
                    "558": "NI",
                    "562": "NE",
                    "566": "NG",
                    "570": "NU",
                    "574": "NF",
                    "578": "NO",
                    "580": "MP",
                    "581": "UM",
                    "582": "FM MH MP PW",
                    "583": "FM",
                    "584": "MH",
                    "585": "PW",
                    "586": "PK",
                    "591": "PA",
                    "598": "PG",
                    "600": "PY",
                    "604": "PE",
                    "608": "PH",
                    "612": "PN",
                    "616": "PL",
                    "620": "PT",
                    "624": "GW",
                    "626": "TL",
                    "630": "PR",
                    "634": "QA",
                    "638": "RE",
                    "642": "RO",
                    "643": "RU",
                    "646": "RW",
                    "652": "BL",
                    "654": "SH",
                    "659": "KN",
                    "660": "AI",
                    "662": "LC",
                    "663": "MF",
                    "666": "PM",
                    "670": "VC",
                    "674": "SM",
                    "678": "ST",
                    "682": "SA",
                    "686": "SN",
                    "688": "RS",
                    "690": "SC",
                    "694": "SL",
                    "702": "SG",
                    "703": "SK",
                    "704": "VN",
                    "705": "SI",
                    "706": "SO",
                    "710": "ZA",
                    "716": "ZW",
                    "720": "YE",
                    "724": "ES",
                    "728": "SS",
                    "729": "SD",
                    "732": "EH",
                    "736": "SD",
                    "740": "SR",
                    "744": "SJ",
                    "748": "SZ",
                    "752": "SE",
                    "756": "CH",
                    "760": "SY",
                    "762": "TJ",
                    "764": "TH",
                    "768": "TG",
                    "772": "TK",
                    "776": "TO",
                    "780": "TT",
                    "784": "AE",
                    "788": "TN",
                    "792": "TR",
                    "795": "TM",
                    "796": "TC",
                    "798": "TV",
                    "800": "UG",
                    "804": "UA",
                    "807": "MK",
                    "810": "RU AM AZ BY EE GE KZ KG LV LT MD TJ TM UA UZ",
                    "818": "EG",
                    "826": "GB",
                    "830": "JE GG",
                    "831": "GG",
                    "832": "JE",
                    "833": "IM",
                    "834": "TZ",
                    "840": "US",
                    "850": "VI",
                    "854": "BF",
                    "858": "UY",
                    "860": "UZ",
                    "862": "VE",
                    "876": "WF",
                    "882": "WS",
                    "886": "YE",
                    "887": "YE",
                    "890": "RS ME SI HR MK BA",
                    "891": "RS ME",
                    "894": "ZM",
                    "958": "AA",
                    "959": "QM",
                    "960": "QN",
                    "962": "QP",
                    "963": "QQ",
                    "964": "QR",
                    "965": "QS",
                    "966": "QT",
                    "967": "EU",
                    "968": "QV",
                    "969": "QW",
                    "970": "QX",
                    "971": "QY",
                    "972": "QZ",
                    "973": "XA",
                    "974": "XB",
                    "975": "XC",
                    "976": "XD",
                    "977": "XE",
                    "978": "XF",
                    "979": "XG",
                    "980": "XH",
                    "981": "XI",
                    "982": "XJ",
                    "983": "XK",
                    "984": "XL",
                    "985": "XM",
                    "986": "XN",
                    "987": "XO",
                    "988": "XP",
                    "989": "XQ",
                    "990": "XR",
                    "991": "XS",
                    "992": "XT",
                    "993": "XU",
                    "994": "XV",
                    "995": "XW",
                    "996": "XX",
                    "997": "XY",
                    "998": "XZ",
                    "999": "ZZ",
                    "004": "AF",
                    "008": "AL",
                    "010": "AQ",
                    "012": "DZ",
                    "016": "AS",
                    "020": "AD",
                    "024": "AO",
                    "028": "AG",
                    "031": "AZ",
                    "032": "AR",
                    "036": "AU",
                    "040": "AT",
                    "044": "BS",
                    "048": "BH",
                    "050": "BD",
                    "051": "AM",
                    "052": "BB",
                    "056": "BE",
                    "060": "BM",
                    "062": "034 143",
                    "064": "BT",
                    "068": "BO",
                    "070": "BA",
                    "072": "BW",
                    "074": "BV",
                    "076": "BR",
                    "084": "BZ",
                    "086": "IO",
                    "090": "SB",
                    "092": "VG",
                    "096": "BN",
                    "AAA": "AA",
                    "ABW": "AW",
                    "AFG": "AF",
                    "AGO": "AO",
                    "AIA": "AI",
                    "ALA": "AX",
                    "ALB": "AL",
                    "AN": "CW SX BQ",
                    "AND": "AD",
                    "ANT": "CW SX BQ",
                    "ARE": "AE",
                    "ARG": "AR",
                    "ARM": "AM",
                    "ASC": "AC",
                    "ASM": "AS",
                    "ATA": "AQ",
                    "ATF": "TF",
                    "ATG": "AG",
                    "AUS": "AU",
                    "AUT": "AT",
                    "AZE": "AZ",
                    "BDI": "BI",
                    "BEL": "BE",
                    "BEN": "BJ",
                    "BES": "BQ",
                    "BFA": "BF",
                    "BGD": "BD",
                    "BGR": "BG",
                    "BHR": "BH",
                    "BHS": "BS",
                    "BIH": "BA",
                    "BLM": "BL",
                    "BLR": "BY",
                    "BLZ": "BZ",
                    "BMU": "BM",
                    "BOL": "BO",
                    "BRA": "BR",
                    "BRB": "BB",
                    "BRN": "BN",
                    "BTN": "BT",
                    "BU": "MM",
                    "BUR": "MM",
                    "BVT": "BV",
                    "BWA": "BW",
                    "CAF": "CF",
                    "CAN": "CA",
                    "CCK": "CC",
                    "CHE": "CH",
                    "CHL": "CL",
                    "CHN": "CN",
                    "CIV": "CI",
                    "CMR": "CM",
                    "COD": "CD",
                    "COG": "CG",
                    "COK": "CK",
                    "COL": "CO",
                    "COM": "KM",
                    "CPT": "CP",
                    "CPV": "CV",
                    "CRI": "CR",
                    "CS": "RS ME",
                    "CT": "KI",
                    "CUB": "CU",
                    "CUW": "CW",
                    "CXR": "CX",
                    "CYM": "KY",
                    "CYP": "CY",
                    "CZE": "CZ",
                    "DD": "DE",
                    "DDR": "DE",
                    "DEU": "DE",
                    "DGA": "DG",
                    "DJI": "DJ",
                    "DMA": "DM",
                    "DNK": "DK",
                    "DOM": "DO",
                    "DY": "BJ",
                    "DZA": "DZ",
                    "ECU": "EC",
                    "EGY": "EG",
                    "ERI": "ER",
                    "ESH": "EH",
                    "ESP": "ES",
                    "EST": "EE",
                    "ETH": "ET",
                    "FIN": "FI",
                    "FJI": "FJ",
                    "FLK": "FK",
                    "FQ": "AQ TF",
                    "FRA": "FR",
                    "FRO": "FO",
                    "FSM": "FM",
                    "FX": "FR",
                    "FXX": "FR",
                    "GAB": "GA",
                    "GBR": "GB",
                    "GEO": "GE",
                    "GGY": "GG",
                    "GHA": "GH",
                    "GIB": "GI",
                    "GIN": "GN",
                    "GLP": "GP",
                    "GMB": "GM",
                    "GNB": "GW",
                    "GNQ": "GQ",
                    "GRC": "GR",
                    "GRD": "GD",
                    "GRL": "GL",
                    "GTM": "GT",
                    "GUF": "GF",
                    "GUM": "GU",
                    "GUY": "GY",
                    "HKG": "HK",
                    "HMD": "HM",
                    "HND": "HN",
                    "HRV": "HR",
                    "HTI": "HT",
                    "HUN": "HU",
                    "HV": "BF",
                    "IDN": "ID",
                    "IMN": "IM",
                    "IND": "IN",
                    "IOT": "IO",
                    "IRL": "IE",
                    "IRN": "IR",
                    "IRQ": "IQ",
                    "ISL": "IS",
                    "ISR": "IL",
                    "ITA": "IT",
                    "JAM": "JM",
                    "JEY": "JE",
                    "JOR": "JO",
                    "JPN": "JP",
                    "JT": "UM",
                    "KAZ": "KZ",
                    "KEN": "KE",
                    "KGZ": "KG",
                    "KHM": "KH",
                    "KIR": "KI",
                    "KNA": "KN",
                    "KOR": "KR",
                    "KWT": "KW",
                    "LAO": "LA",
                    "LBN": "LB",
                    "LBR": "LR",
                    "LBY": "LY",
                    "LCA": "LC",
                    "LIE": "LI",
                    "LKA": "LK",
                    "LSO": "LS",
                    "LTU": "LT",
                    "LUX": "LU",
                    "LVA": "LV",
                    "MAC": "MO",
                    "MAF": "MF",
                    "MAR": "MA",
                    "MCO": "MC",
                    "MDA": "MD",
                    "MDG": "MG",
                    "MDV": "MV",
                    "MEX": "MX",
                    "MHL": "MH",
                    "MI": "UM",
                    "MKD": "MK",
                    "MLI": "ML",
                    "MLT": "MT",
                    "MMR": "MM",
                    "MNE": "ME",
                    "MNG": "MN",
                    "MNP": "MP",
                    "MOZ": "MZ",
                    "MRT": "MR",
                    "MSR": "MS",
                    "MTQ": "MQ",
                    "MUS": "MU",
                    "MWI": "MW",
                    "MYS": "MY",
                    "MYT": "YT",
                    "NAM": "NA",
                    "NCL": "NC",
                    "NER": "NE",
                    "NFK": "NF",
                    "NGA": "NG",
                    "NH": "VU",
                    "NIC": "NI",
                    "NIU": "NU",
                    "NLD": "NL",
                    "NOR": "NO",
                    "NPL": "NP",
                    "NQ": "AQ",
                    "NRU": "NR",
                    "NT": "SA IQ",
                    "NTZ": "SA IQ",
                    "NZL": "NZ",
                    "OMN": "OM",
                    "PAK": "PK",
                    "PAN": "PA",
                    "PC": "FM MH MP PW",
                    "PCN": "PN",
                    "PER": "PE",
                    "PHL": "PH",
                    "PLW": "PW",
                    "PNG": "PG",
                    "POL": "PL",
                    "PRI": "PR",
                    "PRK": "KP",
                    "PRT": "PT",
                    "PRY": "PY",
                    "PSE": "PS",
                    "PU": "UM",
                    "PYF": "PF",
                    "PZ": "PA",
                    "QAT": "QA",
                    "QMM": "QM",
                    "QNN": "QN",
                    "QPP": "QP",
                    "QQQ": "QQ",
                    "QRR": "QR",
                    "QSS": "QS",
                    "QTT": "QT",
                    "QU": "EU",
                    "QUU": "EU",
                    "QVV": "QV",
                    "QWW": "QW",
                    "QXX": "QX",
                    "QYY": "QY",
                    "QZZ": "QZ",
                    "REU": "RE",
                    "RH": "ZW",
                    "ROU": "RO",
                    "RUS": "RU",
                    "RWA": "RW",
                    "SAU": "SA",
                    "SCG": "RS ME",
                    "SDN": "SD",
                    "SEN": "SN",
                    "SGP": "SG",
                    "SGS": "GS",
                    "SHN": "SH",
                    "SJM": "SJ",
                    "SLB": "SB",
                    "SLE": "SL",
                    "SLV": "SV",
                    "SMR": "SM",
                    "SOM": "SO",
                    "SPM": "PM",
                    "SRB": "RS",
                    "SSD": "SS",
                    "STP": "ST",
                    "SU": "RU AM AZ BY EE GE KZ KG LV LT MD TJ TM UA UZ",
                    "SUN": "RU AM AZ BY EE GE KZ KG LV LT MD TJ TM UA UZ",
                    "SUR": "SR",
                    "SVK": "SK",
                    "SVN": "SI",
                    "SWE": "SE",
                    "SWZ": "SZ",
                    "SXM": "SX",
                    "SYC": "SC",
                    "SYR": "SY",
                    "TAA": "TA",
                    "TCA": "TC",
                    "TCD": "TD",
                    "TGO": "TG",
                    "THA": "TH",
                    "TJK": "TJ",
                    "TKL": "TK",
                    "TKM": "TM",
                    "TLS": "TL",
                    "TMP": "TL",
                    "TON": "TO",
                    "TP": "TL",
                    "TTO": "TT",
                    "TUN": "TN",
                    "TUR": "TR",
                    "TUV": "TV",
                    "TWN": "TW",
                    "TZA": "TZ",
                    "UGA": "UG",
                    "UK": "GB",
                    "UKR": "UA",
                    "UMI": "UM",
                    "URY": "UY",
                    "USA": "US",
                    "UZB": "UZ",
                    "VAT": "VA",
                    "VCT": "VC",
                    "VD": "VN",
                    "VEN": "VE",
                    "VGB": "VG",
                    "VIR": "VI",
                    "VNM": "VN",
                    "VUT": "VU",
                    "WK": "UM",
                    "WLF": "WF",
                    "WSM": "WS",
                    "XAA": "XA",
                    "XBB": "XB",
                    "XCC": "XC",
                    "XDD": "XD",
                    "XEE": "XE",
                    "XFF": "XF",
                    "XGG": "XG",
                    "XHH": "XH",
                    "XII": "XI",
                    "XJJ": "XJ",
                    "XKK": "XK",
                    "XLL": "XL",
                    "XMM": "XM",
                    "XNN": "XN",
                    "XOO": "XO",
                    "XPP": "XP",
                    "XQQ": "XQ",
                    "XRR": "XR",
                    "XSS": "XS",
                    "XTT": "XT",
                    "XUU": "XU",
                    "XVV": "XV",
                    "XWW": "XW",
                    "XXX": "XX",
                    "XYY": "XY",
                    "XZZ": "XZ",
                    "YD": "YE",
                    "YEM": "YE",
                    "YMD": "YE",
                    "YU": "RS ME",
                    "YUG": "RS ME",
                    "ZAF": "ZA",
                    "ZAR": "CD",
                    "ZMB": "ZM",
                    "ZR": "CD",
                    "ZWE": "ZW",
                    "ZZZ": "ZZ"
                };
                exports.scriptAlias = {
                    "Qaai": "Zinh"
                };
                exports.variantAlias = {
                    "heploc": "alalc97",
                    "polytoni": "polyton"
                };
            }
        });
        var require_likelySubtags = __commonJS({
            "node_modules/cldr-core/supplemental/likelySubtags.json": function (exports, module) {
                module.exports = {
                    supplemental: {
                        version: {
                            _unicodeVersion: "13.0.0",
                            _cldrVersion: "39"
                        },
                        likelySubtags: {
                            aa: "aa-Latn-ET",
                            aai: "aai-Latn-ZZ",
                            aak: "aak-Latn-ZZ",
                            aau: "aau-Latn-ZZ",
                            ab: "ab-Cyrl-GE",
                            abi: "abi-Latn-ZZ",
                            abq: "abq-Cyrl-ZZ",
                            abr: "abr-Latn-GH",
                            abt: "abt-Latn-ZZ",
                            aby: "aby-Latn-ZZ",
                            acd: "acd-Latn-ZZ",
                            ace: "ace-Latn-ID",
                            ach: "ach-Latn-UG",
                            ada: "ada-Latn-GH",
                            ade: "ade-Latn-ZZ",
                            adj: "adj-Latn-ZZ",
                            adp: "adp-Tibt-BT",
                            ady: "ady-Cyrl-RU",
                            adz: "adz-Latn-ZZ",
                            ae: "ae-Avst-IR",
                            aeb: "aeb-Arab-TN",
                            aey: "aey-Latn-ZZ",
                            af: "af-Latn-ZA",
                            agc: "agc-Latn-ZZ",
                            agd: "agd-Latn-ZZ",
                            agg: "agg-Latn-ZZ",
                            agm: "agm-Latn-ZZ",
                            ago: "ago-Latn-ZZ",
                            agq: "agq-Latn-CM",
                            aha: "aha-Latn-ZZ",
                            ahl: "ahl-Latn-ZZ",
                            aho: "aho-Ahom-IN",
                            ajg: "ajg-Latn-ZZ",
                            ak: "ak-Latn-GH",
                            akk: "akk-Xsux-IQ",
                            ala: "ala-Latn-ZZ",
                            ali: "ali-Latn-ZZ",
                            aln: "aln-Latn-XK",
                            alt: "alt-Cyrl-RU",
                            am: "am-Ethi-ET",
                            amm: "amm-Latn-ZZ",
                            amn: "amn-Latn-ZZ",
                            amo: "amo-Latn-NG",
                            amp: "amp-Latn-ZZ",
                            an: "an-Latn-ES",
                            anc: "anc-Latn-ZZ",
                            ank: "ank-Latn-ZZ",
                            ann: "ann-Latn-ZZ",
                            any: "any-Latn-ZZ",
                            aoj: "aoj-Latn-ZZ",
                            aom: "aom-Latn-ZZ",
                            aoz: "aoz-Latn-ID",
                            apc: "apc-Arab-ZZ",
                            apd: "apd-Arab-TG",
                            ape: "ape-Latn-ZZ",
                            apr: "apr-Latn-ZZ",
                            aps: "aps-Latn-ZZ",
                            apz: "apz-Latn-ZZ",
                            ar: "ar-Arab-EG",
                            arc: "arc-Armi-IR",
                            "arc-Nbat": "arc-Nbat-JO",
                            "arc-Palm": "arc-Palm-SY",
                            arh: "arh-Latn-ZZ",
                            arn: "arn-Latn-CL",
                            aro: "aro-Latn-BO",
                            arq: "arq-Arab-DZ",
                            ars: "ars-Arab-SA",
                            ary: "ary-Arab-MA",
                            arz: "arz-Arab-EG",
                            as: "as-Beng-IN",
                            asa: "asa-Latn-TZ",
                            ase: "ase-Sgnw-US",
                            asg: "asg-Latn-ZZ",
                            aso: "aso-Latn-ZZ",
                            ast: "ast-Latn-ES",
                            ata: "ata-Latn-ZZ",
                            atg: "atg-Latn-ZZ",
                            atj: "atj-Latn-CA",
                            auy: "auy-Latn-ZZ",
                            av: "av-Cyrl-RU",
                            avl: "avl-Arab-ZZ",
                            avn: "avn-Latn-ZZ",
                            avt: "avt-Latn-ZZ",
                            avu: "avu-Latn-ZZ",
                            awa: "awa-Deva-IN",
                            awb: "awb-Latn-ZZ",
                            awo: "awo-Latn-ZZ",
                            awx: "awx-Latn-ZZ",
                            ay: "ay-Latn-BO",
                            ayb: "ayb-Latn-ZZ",
                            az: "az-Latn-AZ",
                            "az-Arab": "az-Arab-IR",
                            "az-IQ": "az-Arab-IQ",
                            "az-IR": "az-Arab-IR",
                            "az-RU": "az-Cyrl-RU",
                            ba: "ba-Cyrl-RU",
                            bal: "bal-Arab-PK",
                            ban: "ban-Latn-ID",
                            bap: "bap-Deva-NP",
                            bar: "bar-Latn-AT",
                            bas: "bas-Latn-CM",
                            bav: "bav-Latn-ZZ",
                            bax: "bax-Bamu-CM",
                            bba: "bba-Latn-ZZ",
                            bbb: "bbb-Latn-ZZ",
                            bbc: "bbc-Latn-ID",
                            bbd: "bbd-Latn-ZZ",
                            bbj: "bbj-Latn-CM",
                            bbp: "bbp-Latn-ZZ",
                            bbr: "bbr-Latn-ZZ",
                            bcf: "bcf-Latn-ZZ",
                            bch: "bch-Latn-ZZ",
                            bci: "bci-Latn-CI",
                            bcm: "bcm-Latn-ZZ",
                            bcn: "bcn-Latn-ZZ",
                            bco: "bco-Latn-ZZ",
                            bcq: "bcq-Ethi-ZZ",
                            bcu: "bcu-Latn-ZZ",
                            bdd: "bdd-Latn-ZZ",
                            be: "be-Cyrl-BY",
                            bef: "bef-Latn-ZZ",
                            beh: "beh-Latn-ZZ",
                            bej: "bej-Arab-SD",
                            bem: "bem-Latn-ZM",
                            bet: "bet-Latn-ZZ",
                            bew: "bew-Latn-ID",
                            bex: "bex-Latn-ZZ",
                            bez: "bez-Latn-TZ",
                            bfd: "bfd-Latn-CM",
                            bfq: "bfq-Taml-IN",
                            bft: "bft-Arab-PK",
                            bfy: "bfy-Deva-IN",
                            bg: "bg-Cyrl-BG",
                            bgc: "bgc-Deva-IN",
                            bgn: "bgn-Arab-PK",
                            bgx: "bgx-Grek-TR",
                            bhb: "bhb-Deva-IN",
                            bhg: "bhg-Latn-ZZ",
                            bhi: "bhi-Deva-IN",
                            bhl: "bhl-Latn-ZZ",
                            bho: "bho-Deva-IN",
                            bhy: "bhy-Latn-ZZ",
                            bi: "bi-Latn-VU",
                            bib: "bib-Latn-ZZ",
                            big: "big-Latn-ZZ",
                            bik: "bik-Latn-PH",
                            bim: "bim-Latn-ZZ",
                            bin: "bin-Latn-NG",
                            bio: "bio-Latn-ZZ",
                            biq: "biq-Latn-ZZ",
                            bjh: "bjh-Latn-ZZ",
                            bji: "bji-Ethi-ZZ",
                            bjj: "bjj-Deva-IN",
                            bjn: "bjn-Latn-ID",
                            bjo: "bjo-Latn-ZZ",
                            bjr: "bjr-Latn-ZZ",
                            bjt: "bjt-Latn-SN",
                            bjz: "bjz-Latn-ZZ",
                            bkc: "bkc-Latn-ZZ",
                            bkm: "bkm-Latn-CM",
                            bkq: "bkq-Latn-ZZ",
                            bku: "bku-Latn-PH",
                            bkv: "bkv-Latn-ZZ",
                            blt: "blt-Tavt-VN",
                            bm: "bm-Latn-ML",
                            bmh: "bmh-Latn-ZZ",
                            bmk: "bmk-Latn-ZZ",
                            bmq: "bmq-Latn-ML",
                            bmu: "bmu-Latn-ZZ",
                            bn: "bn-Beng-BD",
                            bng: "bng-Latn-ZZ",
                            bnm: "bnm-Latn-ZZ",
                            bnp: "bnp-Latn-ZZ",
                            bo: "bo-Tibt-CN",
                            boj: "boj-Latn-ZZ",
                            bom: "bom-Latn-ZZ",
                            bon: "bon-Latn-ZZ",
                            bpy: "bpy-Beng-IN",
                            bqc: "bqc-Latn-ZZ",
                            bqi: "bqi-Arab-IR",
                            bqp: "bqp-Latn-ZZ",
                            bqv: "bqv-Latn-CI",
                            br: "br-Latn-FR",
                            bra: "bra-Deva-IN",
                            brh: "brh-Arab-PK",
                            brx: "brx-Deva-IN",
                            brz: "brz-Latn-ZZ",
                            bs: "bs-Latn-BA",
                            bsj: "bsj-Latn-ZZ",
                            bsq: "bsq-Bass-LR",
                            bss: "bss-Latn-CM",
                            bst: "bst-Ethi-ZZ",
                            bto: "bto-Latn-PH",
                            btt: "btt-Latn-ZZ",
                            btv: "btv-Deva-PK",
                            bua: "bua-Cyrl-RU",
                            buc: "buc-Latn-YT",
                            bud: "bud-Latn-ZZ",
                            bug: "bug-Latn-ID",
                            buk: "buk-Latn-ZZ",
                            bum: "bum-Latn-CM",
                            buo: "buo-Latn-ZZ",
                            bus: "bus-Latn-ZZ",
                            buu: "buu-Latn-ZZ",
                            bvb: "bvb-Latn-GQ",
                            bwd: "bwd-Latn-ZZ",
                            bwr: "bwr-Latn-ZZ",
                            bxh: "bxh-Latn-ZZ",
                            bye: "bye-Latn-ZZ",
                            byn: "byn-Ethi-ER",
                            byr: "byr-Latn-ZZ",
                            bys: "bys-Latn-ZZ",
                            byv: "byv-Latn-CM",
                            byx: "byx-Latn-ZZ",
                            bza: "bza-Latn-ZZ",
                            bze: "bze-Latn-ML",
                            bzf: "bzf-Latn-ZZ",
                            bzh: "bzh-Latn-ZZ",
                            bzw: "bzw-Latn-ZZ",
                            ca: "ca-Latn-ES",
                            cad: "cad-Latn-US",
                            can: "can-Latn-ZZ",
                            cbj: "cbj-Latn-ZZ",
                            cch: "cch-Latn-NG",
                            ccp: "ccp-Cakm-BD",
                            ce: "ce-Cyrl-RU",
                            ceb: "ceb-Latn-PH",
                            cfa: "cfa-Latn-ZZ",
                            cgg: "cgg-Latn-UG",
                            ch: "ch-Latn-GU",
                            chk: "chk-Latn-FM",
                            chm: "chm-Cyrl-RU",
                            cho: "cho-Latn-US",
                            chp: "chp-Latn-CA",
                            chr: "chr-Cher-US",
                            cic: "cic-Latn-US",
                            cja: "cja-Arab-KH",
                            cjm: "cjm-Cham-VN",
                            cjv: "cjv-Latn-ZZ",
                            ckb: "ckb-Arab-IQ",
                            ckl: "ckl-Latn-ZZ",
                            cko: "cko-Latn-ZZ",
                            cky: "cky-Latn-ZZ",
                            cla: "cla-Latn-ZZ",
                            cme: "cme-Latn-ZZ",
                            cmg: "cmg-Soyo-MN",
                            co: "co-Latn-FR",
                            cop: "cop-Copt-EG",
                            cps: "cps-Latn-PH",
                            cr: "cr-Cans-CA",
                            crh: "crh-Cyrl-UA",
                            crj: "crj-Cans-CA",
                            crk: "crk-Cans-CA",
                            crl: "crl-Cans-CA",
                            crm: "crm-Cans-CA",
                            crs: "crs-Latn-SC",
                            cs: "cs-Latn-CZ",
                            csb: "csb-Latn-PL",
                            csw: "csw-Cans-CA",
                            ctd: "ctd-Pauc-MM",
                            cu: "cu-Cyrl-RU",
                            "cu-Glag": "cu-Glag-BG",
                            cv: "cv-Cyrl-RU",
                            cy: "cy-Latn-GB",
                            da: "da-Latn-DK",
                            dad: "dad-Latn-ZZ",
                            daf: "daf-Latn-CI",
                            dag: "dag-Latn-ZZ",
                            dah: "dah-Latn-ZZ",
                            dak: "dak-Latn-US",
                            dar: "dar-Cyrl-RU",
                            dav: "dav-Latn-KE",
                            dbd: "dbd-Latn-ZZ",
                            dbq: "dbq-Latn-ZZ",
                            dcc: "dcc-Arab-IN",
                            ddn: "ddn-Latn-ZZ",
                            de: "de-Latn-DE",
                            ded: "ded-Latn-ZZ",
                            den: "den-Latn-CA",
                            dga: "dga-Latn-ZZ",
                            dgh: "dgh-Latn-ZZ",
                            dgi: "dgi-Latn-ZZ",
                            dgl: "dgl-Arab-ZZ",
                            dgr: "dgr-Latn-CA",
                            dgz: "dgz-Latn-ZZ",
                            dia: "dia-Latn-ZZ",
                            dje: "dje-Latn-NE",
                            dmf: "dmf-Medf-NG",
                            dnj: "dnj-Latn-CI",
                            dob: "dob-Latn-ZZ",
                            doi: "doi-Deva-IN",
                            dop: "dop-Latn-ZZ",
                            dow: "dow-Latn-ZZ",
                            drh: "drh-Mong-CN",
                            dri: "dri-Latn-ZZ",
                            drs: "drs-Ethi-ZZ",
                            dsb: "dsb-Latn-DE",
                            dtm: "dtm-Latn-ML",
                            dtp: "dtp-Latn-MY",
                            dts: "dts-Latn-ZZ",
                            dty: "dty-Deva-NP",
                            dua: "dua-Latn-CM",
                            duc: "duc-Latn-ZZ",
                            dud: "dud-Latn-ZZ",
                            dug: "dug-Latn-ZZ",
                            dv: "dv-Thaa-MV",
                            dva: "dva-Latn-ZZ",
                            dww: "dww-Latn-ZZ",
                            dyo: "dyo-Latn-SN",
                            dyu: "dyu-Latn-BF",
                            dz: "dz-Tibt-BT",
                            dzg: "dzg-Latn-ZZ",
                            ebu: "ebu-Latn-KE",
                            ee: "ee-Latn-GH",
                            efi: "efi-Latn-NG",
                            egl: "egl-Latn-IT",
                            egy: "egy-Egyp-EG",
                            eka: "eka-Latn-ZZ",
                            eky: "eky-Kali-MM",
                            el: "el-Grek-GR",
                            ema: "ema-Latn-ZZ",
                            emi: "emi-Latn-ZZ",
                            en: "en-Latn-US",
                            "en-Shaw": "en-Shaw-GB",
                            enn: "enn-Latn-ZZ",
                            enq: "enq-Latn-ZZ",
                            eo: "eo-Latn-001",
                            eri: "eri-Latn-ZZ",
                            es: "es-Latn-ES",
                            esg: "esg-Gonm-IN",
                            esu: "esu-Latn-US",
                            et: "et-Latn-EE",
                            etr: "etr-Latn-ZZ",
                            ett: "ett-Ital-IT",
                            etu: "etu-Latn-ZZ",
                            etx: "etx-Latn-ZZ",
                            eu: "eu-Latn-ES",
                            ewo: "ewo-Latn-CM",
                            ext: "ext-Latn-ES",
                            eza: "eza-Latn-ZZ",
                            fa: "fa-Arab-IR",
                            faa: "faa-Latn-ZZ",
                            fab: "fab-Latn-ZZ",
                            fag: "fag-Latn-ZZ",
                            fai: "fai-Latn-ZZ",
                            fan: "fan-Latn-GQ",
                            ff: "ff-Latn-SN",
                            "ff-Adlm": "ff-Adlm-GN",
                            ffi: "ffi-Latn-ZZ",
                            ffm: "ffm-Latn-ML",
                            fi: "fi-Latn-FI",
                            fia: "fia-Arab-SD",
                            fil: "fil-Latn-PH",
                            fit: "fit-Latn-SE",
                            fj: "fj-Latn-FJ",
                            flr: "flr-Latn-ZZ",
                            fmp: "fmp-Latn-ZZ",
                            fo: "fo-Latn-FO",
                            fod: "fod-Latn-ZZ",
                            fon: "fon-Latn-BJ",
                            "for": "for-Latn-ZZ",
                            fpe: "fpe-Latn-ZZ",
                            fqs: "fqs-Latn-ZZ",
                            fr: "fr-Latn-FR",
                            frc: "frc-Latn-US",
                            frp: "frp-Latn-FR",
                            frr: "frr-Latn-DE",
                            frs: "frs-Latn-DE",
                            fub: "fub-Arab-CM",
                            fud: "fud-Latn-WF",
                            fue: "fue-Latn-ZZ",
                            fuf: "fuf-Latn-GN",
                            fuh: "fuh-Latn-ZZ",
                            fuq: "fuq-Latn-NE",
                            fur: "fur-Latn-IT",
                            fuv: "fuv-Latn-NG",
                            fuy: "fuy-Latn-ZZ",
                            fvr: "fvr-Latn-SD",
                            fy: "fy-Latn-NL",
                            ga: "ga-Latn-IE",
                            gaa: "gaa-Latn-GH",
                            gaf: "gaf-Latn-ZZ",
                            gag: "gag-Latn-MD",
                            gah: "gah-Latn-ZZ",
                            gaj: "gaj-Latn-ZZ",
                            gam: "gam-Latn-ZZ",
                            gan: "gan-Hans-CN",
                            gaw: "gaw-Latn-ZZ",
                            gay: "gay-Latn-ID",
                            gba: "gba-Latn-ZZ",
                            gbf: "gbf-Latn-ZZ",
                            gbm: "gbm-Deva-IN",
                            gby: "gby-Latn-ZZ",
                            gbz: "gbz-Arab-IR",
                            gcr: "gcr-Latn-GF",
                            gd: "gd-Latn-GB",
                            gde: "gde-Latn-ZZ",
                            gdn: "gdn-Latn-ZZ",
                            gdr: "gdr-Latn-ZZ",
                            geb: "geb-Latn-ZZ",
                            gej: "gej-Latn-ZZ",
                            gel: "gel-Latn-ZZ",
                            gez: "gez-Ethi-ET",
                            gfk: "gfk-Latn-ZZ",
                            ggn: "ggn-Deva-NP",
                            ghs: "ghs-Latn-ZZ",
                            gil: "gil-Latn-KI",
                            gim: "gim-Latn-ZZ",
                            gjk: "gjk-Arab-PK",
                            gjn: "gjn-Latn-ZZ",
                            gju: "gju-Arab-PK",
                            gkn: "gkn-Latn-ZZ",
                            gkp: "gkp-Latn-ZZ",
                            gl: "gl-Latn-ES",
                            glk: "glk-Arab-IR",
                            gmm: "gmm-Latn-ZZ",
                            gmv: "gmv-Ethi-ZZ",
                            gn: "gn-Latn-PY",
                            gnd: "gnd-Latn-ZZ",
                            gng: "gng-Latn-ZZ",
                            god: "god-Latn-ZZ",
                            gof: "gof-Ethi-ZZ",
                            goi: "goi-Latn-ZZ",
                            gom: "gom-Deva-IN",
                            gon: "gon-Telu-IN",
                            gor: "gor-Latn-ID",
                            gos: "gos-Latn-NL",
                            got: "got-Goth-UA",
                            grb: "grb-Latn-ZZ",
                            grc: "grc-Cprt-CY",
                            "grc-Linb": "grc-Linb-GR",
                            grt: "grt-Beng-IN",
                            grw: "grw-Latn-ZZ",
                            gsw: "gsw-Latn-CH",
                            gu: "gu-Gujr-IN",
                            gub: "gub-Latn-BR",
                            guc: "guc-Latn-CO",
                            gud: "gud-Latn-ZZ",
                            gur: "gur-Latn-GH",
                            guw: "guw-Latn-ZZ",
                            gux: "gux-Latn-ZZ",
                            guz: "guz-Latn-KE",
                            gv: "gv-Latn-IM",
                            gvf: "gvf-Latn-ZZ",
                            gvr: "gvr-Deva-NP",
                            gvs: "gvs-Latn-ZZ",
                            gwc: "gwc-Arab-ZZ",
                            gwi: "gwi-Latn-CA",
                            gwt: "gwt-Arab-ZZ",
                            gyi: "gyi-Latn-ZZ",
                            ha: "ha-Latn-NG",
                            "ha-CM": "ha-Arab-CM",
                            "ha-SD": "ha-Arab-SD",
                            hag: "hag-Latn-ZZ",
                            hak: "hak-Hans-CN",
                            ham: "ham-Latn-ZZ",
                            haw: "haw-Latn-US",
                            haz: "haz-Arab-AF",
                            hbb: "hbb-Latn-ZZ",
                            hdy: "hdy-Ethi-ZZ",
                            he: "he-Hebr-IL",
                            hhy: "hhy-Latn-ZZ",
                            hi: "hi-Deva-IN",
                            hia: "hia-Latn-ZZ",
                            hif: "hif-Latn-FJ",
                            hig: "hig-Latn-ZZ",
                            hih: "hih-Latn-ZZ",
                            hil: "hil-Latn-PH",
                            hla: "hla-Latn-ZZ",
                            hlu: "hlu-Hluw-TR",
                            hmd: "hmd-Plrd-CN",
                            hmt: "hmt-Latn-ZZ",
                            hnd: "hnd-Arab-PK",
                            hne: "hne-Deva-IN",
                            hnj: "hnj-Hmng-LA",
                            hnn: "hnn-Latn-PH",
                            hno: "hno-Arab-PK",
                            ho: "ho-Latn-PG",
                            hoc: "hoc-Deva-IN",
                            hoj: "hoj-Deva-IN",
                            hot: "hot-Latn-ZZ",
                            hr: "hr-Latn-HR",
                            hsb: "hsb-Latn-DE",
                            hsn: "hsn-Hans-CN",
                            ht: "ht-Latn-HT",
                            hu: "hu-Latn-HU",
                            hui: "hui-Latn-ZZ",
                            hy: "hy-Armn-AM",
                            hz: "hz-Latn-NA",
                            ia: "ia-Latn-001",
                            ian: "ian-Latn-ZZ",
                            iar: "iar-Latn-ZZ",
                            iba: "iba-Latn-MY",
                            ibb: "ibb-Latn-NG",
                            iby: "iby-Latn-ZZ",
                            ica: "ica-Latn-ZZ",
                            ich: "ich-Latn-ZZ",
                            id: "id-Latn-ID",
                            idd: "idd-Latn-ZZ",
                            idi: "idi-Latn-ZZ",
                            idu: "idu-Latn-ZZ",
                            ife: "ife-Latn-TG",
                            ig: "ig-Latn-NG",
                            igb: "igb-Latn-ZZ",
                            ige: "ige-Latn-ZZ",
                            ii: "ii-Yiii-CN",
                            ijj: "ijj-Latn-ZZ",
                            ik: "ik-Latn-US",
                            ikk: "ikk-Latn-ZZ",
                            ikt: "ikt-Latn-CA",
                            ikw: "ikw-Latn-ZZ",
                            ikx: "ikx-Latn-ZZ",
                            ilo: "ilo-Latn-PH",
                            imo: "imo-Latn-ZZ",
                            "in": "in-Latn-ID",
                            inh: "inh-Cyrl-RU",
                            io: "io-Latn-001",
                            iou: "iou-Latn-ZZ",
                            iri: "iri-Latn-ZZ",
                            is: "is-Latn-IS",
                            it: "it-Latn-IT",
                            iu: "iu-Cans-CA",
                            iw: "iw-Hebr-IL",
                            iwm: "iwm-Latn-ZZ",
                            iws: "iws-Latn-ZZ",
                            izh: "izh-Latn-RU",
                            izi: "izi-Latn-ZZ",
                            ja: "ja-Jpan-JP",
                            jab: "jab-Latn-ZZ",
                            jam: "jam-Latn-JM",
                            jar: "jar-Latn-ZZ",
                            jbo: "jbo-Latn-001",
                            jbu: "jbu-Latn-ZZ",
                            jen: "jen-Latn-ZZ",
                            jgk: "jgk-Latn-ZZ",
                            jgo: "jgo-Latn-CM",
                            ji: "ji-Hebr-UA",
                            jib: "jib-Latn-ZZ",
                            jmc: "jmc-Latn-TZ",
                            jml: "jml-Deva-NP",
                            jra: "jra-Latn-ZZ",
                            jut: "jut-Latn-DK",
                            jv: "jv-Latn-ID",
                            jw: "jw-Latn-ID",
                            ka: "ka-Geor-GE",
                            kaa: "kaa-Cyrl-UZ",
                            kab: "kab-Latn-DZ",
                            kac: "kac-Latn-MM",
                            kad: "kad-Latn-ZZ",
                            kai: "kai-Latn-ZZ",
                            kaj: "kaj-Latn-NG",
                            kam: "kam-Latn-KE",
                            kao: "kao-Latn-ML",
                            kbd: "kbd-Cyrl-RU",
                            kbm: "kbm-Latn-ZZ",
                            kbp: "kbp-Latn-ZZ",
                            kbq: "kbq-Latn-ZZ",
                            kbx: "kbx-Latn-ZZ",
                            kby: "kby-Arab-NE",
                            kcg: "kcg-Latn-NG",
                            kck: "kck-Latn-ZW",
                            kcl: "kcl-Latn-ZZ",
                            kct: "kct-Latn-ZZ",
                            kde: "kde-Latn-TZ",
                            kdh: "kdh-Arab-TG",
                            kdl: "kdl-Latn-ZZ",
                            kdt: "kdt-Thai-TH",
                            kea: "kea-Latn-CV",
                            ken: "ken-Latn-CM",
                            kez: "kez-Latn-ZZ",
                            kfo: "kfo-Latn-CI",
                            kfr: "kfr-Deva-IN",
                            kfy: "kfy-Deva-IN",
                            kg: "kg-Latn-CD",
                            kge: "kge-Latn-ID",
                            kgf: "kgf-Latn-ZZ",
                            kgp: "kgp-Latn-BR",
                            kha: "kha-Latn-IN",
                            khb: "khb-Talu-CN",
                            khn: "khn-Deva-IN",
                            khq: "khq-Latn-ML",
                            khs: "khs-Latn-ZZ",
                            kht: "kht-Mymr-IN",
                            khw: "khw-Arab-PK",
                            khz: "khz-Latn-ZZ",
                            ki: "ki-Latn-KE",
                            kij: "kij-Latn-ZZ",
                            kiu: "kiu-Latn-TR",
                            kiw: "kiw-Latn-ZZ",
                            kj: "kj-Latn-NA",
                            kjd: "kjd-Latn-ZZ",
                            kjg: "kjg-Laoo-LA",
                            kjs: "kjs-Latn-ZZ",
                            kjy: "kjy-Latn-ZZ",
                            kk: "kk-Cyrl-KZ",
                            "kk-AF": "kk-Arab-AF",
                            "kk-Arab": "kk-Arab-CN",
                            "kk-CN": "kk-Arab-CN",
                            "kk-IR": "kk-Arab-IR",
                            "kk-MN": "kk-Arab-MN",
                            kkc: "kkc-Latn-ZZ",
                            kkj: "kkj-Latn-CM",
                            kl: "kl-Latn-GL",
                            kln: "kln-Latn-KE",
                            klq: "klq-Latn-ZZ",
                            klt: "klt-Latn-ZZ",
                            klx: "klx-Latn-ZZ",
                            km: "km-Khmr-KH",
                            kmb: "kmb-Latn-AO",
                            kmh: "kmh-Latn-ZZ",
                            kmo: "kmo-Latn-ZZ",
                            kms: "kms-Latn-ZZ",
                            kmu: "kmu-Latn-ZZ",
                            kmw: "kmw-Latn-ZZ",
                            kn: "kn-Knda-IN",
                            knf: "knf-Latn-GW",
                            knp: "knp-Latn-ZZ",
                            ko: "ko-Kore-KR",
                            koi: "koi-Cyrl-RU",
                            kok: "kok-Deva-IN",
                            kol: "kol-Latn-ZZ",
                            kos: "kos-Latn-FM",
                            koz: "koz-Latn-ZZ",
                            kpe: "kpe-Latn-LR",
                            kpf: "kpf-Latn-ZZ",
                            kpo: "kpo-Latn-ZZ",
                            kpr: "kpr-Latn-ZZ",
                            kpx: "kpx-Latn-ZZ",
                            kqb: "kqb-Latn-ZZ",
                            kqf: "kqf-Latn-ZZ",
                            kqs: "kqs-Latn-ZZ",
                            kqy: "kqy-Ethi-ZZ",
                            kr: "kr-Latn-ZZ",
                            krc: "krc-Cyrl-RU",
                            kri: "kri-Latn-SL",
                            krj: "krj-Latn-PH",
                            krl: "krl-Latn-RU",
                            krs: "krs-Latn-ZZ",
                            kru: "kru-Deva-IN",
                            ks: "ks-Arab-IN",
                            ksb: "ksb-Latn-TZ",
                            ksd: "ksd-Latn-ZZ",
                            ksf: "ksf-Latn-CM",
                            ksh: "ksh-Latn-DE",
                            ksj: "ksj-Latn-ZZ",
                            ksr: "ksr-Latn-ZZ",
                            ktb: "ktb-Ethi-ZZ",
                            ktm: "ktm-Latn-ZZ",
                            kto: "kto-Latn-ZZ",
                            ktr: "ktr-Latn-MY",
                            ku: "ku-Latn-TR",
                            "ku-Arab": "ku-Arab-IQ",
                            "ku-LB": "ku-Arab-LB",
                            "ku-Yezi": "ku-Yezi-GE",
                            kub: "kub-Latn-ZZ",
                            kud: "kud-Latn-ZZ",
                            kue: "kue-Latn-ZZ",
                            kuj: "kuj-Latn-ZZ",
                            kum: "kum-Cyrl-RU",
                            kun: "kun-Latn-ZZ",
                            kup: "kup-Latn-ZZ",
                            kus: "kus-Latn-ZZ",
                            kv: "kv-Cyrl-RU",
                            kvg: "kvg-Latn-ZZ",
                            kvr: "kvr-Latn-ID",
                            kvx: "kvx-Arab-PK",
                            kw: "kw-Latn-GB",
                            kwj: "kwj-Latn-ZZ",
                            kwo: "kwo-Latn-ZZ",
                            kwq: "kwq-Latn-ZZ",
                            kxa: "kxa-Latn-ZZ",
                            kxc: "kxc-Ethi-ZZ",
                            kxe: "kxe-Latn-ZZ",
                            kxl: "kxl-Deva-IN",
                            kxm: "kxm-Thai-TH",
                            kxp: "kxp-Arab-PK",
                            kxw: "kxw-Latn-ZZ",
                            kxz: "kxz-Latn-ZZ",
                            ky: "ky-Cyrl-KG",
                            "ky-Arab": "ky-Arab-CN",
                            "ky-CN": "ky-Arab-CN",
                            "ky-Latn": "ky-Latn-TR",
                            "ky-TR": "ky-Latn-TR",
                            kye: "kye-Latn-ZZ",
                            kyx: "kyx-Latn-ZZ",
                            kzh: "kzh-Arab-ZZ",
                            kzj: "kzj-Latn-MY",
                            kzr: "kzr-Latn-ZZ",
                            kzt: "kzt-Latn-MY",
                            la: "la-Latn-VA",
                            lab: "lab-Lina-GR",
                            lad: "lad-Hebr-IL",
                            lag: "lag-Latn-TZ",
                            lah: "lah-Arab-PK",
                            laj: "laj-Latn-UG",
                            las: "las-Latn-ZZ",
                            lb: "lb-Latn-LU",
                            lbe: "lbe-Cyrl-RU",
                            lbu: "lbu-Latn-ZZ",
                            lbw: "lbw-Latn-ID",
                            lcm: "lcm-Latn-ZZ",
                            lcp: "lcp-Thai-CN",
                            ldb: "ldb-Latn-ZZ",
                            led: "led-Latn-ZZ",
                            lee: "lee-Latn-ZZ",
                            lem: "lem-Latn-ZZ",
                            lep: "lep-Lepc-IN",
                            leq: "leq-Latn-ZZ",
                            leu: "leu-Latn-ZZ",
                            lez: "lez-Cyrl-RU",
                            lg: "lg-Latn-UG",
                            lgg: "lgg-Latn-ZZ",
                            li: "li-Latn-NL",
                            lia: "lia-Latn-ZZ",
                            lid: "lid-Latn-ZZ",
                            lif: "lif-Deva-NP",
                            "lif-Limb": "lif-Limb-IN",
                            lig: "lig-Latn-ZZ",
                            lih: "lih-Latn-ZZ",
                            lij: "lij-Latn-IT",
                            lis: "lis-Lisu-CN",
                            ljp: "ljp-Latn-ID",
                            lki: "lki-Arab-IR",
                            lkt: "lkt-Latn-US",
                            lle: "lle-Latn-ZZ",
                            lln: "lln-Latn-ZZ",
                            lmn: "lmn-Telu-IN",
                            lmo: "lmo-Latn-IT",
                            lmp: "lmp-Latn-ZZ",
                            ln: "ln-Latn-CD",
                            lns: "lns-Latn-ZZ",
                            lnu: "lnu-Latn-ZZ",
                            lo: "lo-Laoo-LA",
                            loj: "loj-Latn-ZZ",
                            lok: "lok-Latn-ZZ",
                            lol: "lol-Latn-CD",
                            lor: "lor-Latn-ZZ",
                            los: "los-Latn-ZZ",
                            loz: "loz-Latn-ZM",
                            lrc: "lrc-Arab-IR",
                            lt: "lt-Latn-LT",
                            ltg: "ltg-Latn-LV",
                            lu: "lu-Latn-CD",
                            lua: "lua-Latn-CD",
                            luo: "luo-Latn-KE",
                            luy: "luy-Latn-KE",
                            luz: "luz-Arab-IR",
                            lv: "lv-Latn-LV",
                            lwl: "lwl-Thai-TH",
                            lzh: "lzh-Hans-CN",
                            lzz: "lzz-Latn-TR",
                            mad: "mad-Latn-ID",
                            maf: "maf-Latn-CM",
                            mag: "mag-Deva-IN",
                            mai: "mai-Deva-IN",
                            mak: "mak-Latn-ID",
                            man: "man-Latn-GM",
                            "man-GN": "man-Nkoo-GN",
                            "man-Nkoo": "man-Nkoo-GN",
                            mas: "mas-Latn-KE",
                            maw: "maw-Latn-ZZ",
                            maz: "maz-Latn-MX",
                            mbh: "mbh-Latn-ZZ",
                            mbo: "mbo-Latn-ZZ",
                            mbq: "mbq-Latn-ZZ",
                            mbu: "mbu-Latn-ZZ",
                            mbw: "mbw-Latn-ZZ",
                            mci: "mci-Latn-ZZ",
                            mcp: "mcp-Latn-ZZ",
                            mcq: "mcq-Latn-ZZ",
                            mcr: "mcr-Latn-ZZ",
                            mcu: "mcu-Latn-ZZ",
                            mda: "mda-Latn-ZZ",
                            mde: "mde-Arab-ZZ",
                            mdf: "mdf-Cyrl-RU",
                            mdh: "mdh-Latn-PH",
                            mdj: "mdj-Latn-ZZ",
                            mdr: "mdr-Latn-ID",
                            mdx: "mdx-Ethi-ZZ",
                            med: "med-Latn-ZZ",
                            mee: "mee-Latn-ZZ",
                            mek: "mek-Latn-ZZ",
                            men: "men-Latn-SL",
                            mer: "mer-Latn-KE",
                            met: "met-Latn-ZZ",
                            meu: "meu-Latn-ZZ",
                            mfa: "mfa-Arab-TH",
                            mfe: "mfe-Latn-MU",
                            mfn: "mfn-Latn-ZZ",
                            mfo: "mfo-Latn-ZZ",
                            mfq: "mfq-Latn-ZZ",
                            mg: "mg-Latn-MG",
                            mgh: "mgh-Latn-MZ",
                            mgl: "mgl-Latn-ZZ",
                            mgo: "mgo-Latn-CM",
                            mgp: "mgp-Deva-NP",
                            mgy: "mgy-Latn-TZ",
                            mh: "mh-Latn-MH",
                            mhi: "mhi-Latn-ZZ",
                            mhl: "mhl-Latn-ZZ",
                            mi: "mi-Latn-NZ",
                            mif: "mif-Latn-ZZ",
                            min: "min-Latn-ID",
                            miw: "miw-Latn-ZZ",
                            mk: "mk-Cyrl-MK",
                            mki: "mki-Arab-ZZ",
                            mkl: "mkl-Latn-ZZ",
                            mkp: "mkp-Latn-ZZ",
                            mkw: "mkw-Latn-ZZ",
                            ml: "ml-Mlym-IN",
                            mle: "mle-Latn-ZZ",
                            mlp: "mlp-Latn-ZZ",
                            mls: "mls-Latn-SD",
                            mmo: "mmo-Latn-ZZ",
                            mmu: "mmu-Latn-ZZ",
                            mmx: "mmx-Latn-ZZ",
                            mn: "mn-Cyrl-MN",
                            "mn-CN": "mn-Mong-CN",
                            "mn-Mong": "mn-Mong-CN",
                            mna: "mna-Latn-ZZ",
                            mnf: "mnf-Latn-ZZ",
                            mni: "mni-Beng-IN",
                            mnw: "mnw-Mymr-MM",
                            mo: "mo-Latn-RO",
                            moa: "moa-Latn-ZZ",
                            moe: "moe-Latn-CA",
                            moh: "moh-Latn-CA",
                            mos: "mos-Latn-BF",
                            mox: "mox-Latn-ZZ",
                            mpp: "mpp-Latn-ZZ",
                            mps: "mps-Latn-ZZ",
                            mpt: "mpt-Latn-ZZ",
                            mpx: "mpx-Latn-ZZ",
                            mql: "mql-Latn-ZZ",
                            mr: "mr-Deva-IN",
                            mrd: "mrd-Deva-NP",
                            mrj: "mrj-Cyrl-RU",
                            mro: "mro-Mroo-BD",
                            ms: "ms-Latn-MY",
                            "ms-CC": "ms-Arab-CC",
                            mt: "mt-Latn-MT",
                            mtc: "mtc-Latn-ZZ",
                            mtf: "mtf-Latn-ZZ",
                            mti: "mti-Latn-ZZ",
                            mtr: "mtr-Deva-IN",
                            mua: "mua-Latn-CM",
                            mur: "mur-Latn-ZZ",
                            mus: "mus-Latn-US",
                            mva: "mva-Latn-ZZ",
                            mvn: "mvn-Latn-ZZ",
                            mvy: "mvy-Arab-PK",
                            mwk: "mwk-Latn-ML",
                            mwr: "mwr-Deva-IN",
                            mwv: "mwv-Latn-ID",
                            mww: "mww-Hmnp-US",
                            mxc: "mxc-Latn-ZW",
                            mxm: "mxm-Latn-ZZ",
                            my: "my-Mymr-MM",
                            myk: "myk-Latn-ZZ",
                            mym: "mym-Ethi-ZZ",
                            myv: "myv-Cyrl-RU",
                            myw: "myw-Latn-ZZ",
                            myx: "myx-Latn-UG",
                            myz: "myz-Mand-IR",
                            mzk: "mzk-Latn-ZZ",
                            mzm: "mzm-Latn-ZZ",
                            mzn: "mzn-Arab-IR",
                            mzp: "mzp-Latn-ZZ",
                            mzw: "mzw-Latn-ZZ",
                            mzz: "mzz-Latn-ZZ",
                            na: "na-Latn-NR",
                            nac: "nac-Latn-ZZ",
                            naf: "naf-Latn-ZZ",
                            nak: "nak-Latn-ZZ",
                            nan: "nan-Hans-CN",
                            nap: "nap-Latn-IT",
                            naq: "naq-Latn-NA",
                            nas: "nas-Latn-ZZ",
                            nb: "nb-Latn-NO",
                            nca: "nca-Latn-ZZ",
                            nce: "nce-Latn-ZZ",
                            ncf: "ncf-Latn-ZZ",
                            nch: "nch-Latn-MX",
                            nco: "nco-Latn-ZZ",
                            ncu: "ncu-Latn-ZZ",
                            nd: "nd-Latn-ZW",
                            ndc: "ndc-Latn-MZ",
                            nds: "nds-Latn-DE",
                            ne: "ne-Deva-NP",
                            neb: "neb-Latn-ZZ",
                            "new": "new-Deva-NP",
                            nex: "nex-Latn-ZZ",
                            nfr: "nfr-Latn-ZZ",
                            ng: "ng-Latn-NA",
                            nga: "nga-Latn-ZZ",
                            ngb: "ngb-Latn-ZZ",
                            ngl: "ngl-Latn-MZ",
                            nhb: "nhb-Latn-ZZ",
                            nhe: "nhe-Latn-MX",
                            nhw: "nhw-Latn-MX",
                            nif: "nif-Latn-ZZ",
                            nii: "nii-Latn-ZZ",
                            nij: "nij-Latn-ID",
                            nin: "nin-Latn-ZZ",
                            niu: "niu-Latn-NU",
                            niy: "niy-Latn-ZZ",
                            niz: "niz-Latn-ZZ",
                            njo: "njo-Latn-IN",
                            nkg: "nkg-Latn-ZZ",
                            nko: "nko-Latn-ZZ",
                            nl: "nl-Latn-NL",
                            nmg: "nmg-Latn-CM",
                            nmz: "nmz-Latn-ZZ",
                            nn: "nn-Latn-NO",
                            nnf: "nnf-Latn-ZZ",
                            nnh: "nnh-Latn-CM",
                            nnk: "nnk-Latn-ZZ",
                            nnm: "nnm-Latn-ZZ",
                            nnp: "nnp-Wcho-IN",
                            no: "no-Latn-NO",
                            nod: "nod-Lana-TH",
                            noe: "noe-Deva-IN",
                            non: "non-Runr-SE",
                            nop: "nop-Latn-ZZ",
                            nou: "nou-Latn-ZZ",
                            nqo: "nqo-Nkoo-GN",
                            nr: "nr-Latn-ZA",
                            nrb: "nrb-Latn-ZZ",
                            nsk: "nsk-Cans-CA",
                            nsn: "nsn-Latn-ZZ",
                            nso: "nso-Latn-ZA",
                            nss: "nss-Latn-ZZ",
                            ntm: "ntm-Latn-ZZ",
                            ntr: "ntr-Latn-ZZ",
                            nui: "nui-Latn-ZZ",
                            nup: "nup-Latn-ZZ",
                            nus: "nus-Latn-SS",
                            nuv: "nuv-Latn-ZZ",
                            nux: "nux-Latn-ZZ",
                            nv: "nv-Latn-US",
                            nwb: "nwb-Latn-ZZ",
                            nxq: "nxq-Latn-CN",
                            nxr: "nxr-Latn-ZZ",
                            ny: "ny-Latn-MW",
                            nym: "nym-Latn-TZ",
                            nyn: "nyn-Latn-UG",
                            nzi: "nzi-Latn-GH",
                            oc: "oc-Latn-FR",
                            ogc: "ogc-Latn-ZZ",
                            okr: "okr-Latn-ZZ",
                            okv: "okv-Latn-ZZ",
                            om: "om-Latn-ET",
                            ong: "ong-Latn-ZZ",
                            onn: "onn-Latn-ZZ",
                            ons: "ons-Latn-ZZ",
                            opm: "opm-Latn-ZZ",
                            or: "or-Orya-IN",
                            oro: "oro-Latn-ZZ",
                            oru: "oru-Arab-ZZ",
                            os: "os-Cyrl-GE",
                            osa: "osa-Osge-US",
                            ota: "ota-Arab-ZZ",
                            otk: "otk-Orkh-MN",
                            ozm: "ozm-Latn-ZZ",
                            pa: "pa-Guru-IN",
                            "pa-Arab": "pa-Arab-PK",
                            "pa-PK": "pa-Arab-PK",
                            pag: "pag-Latn-PH",
                            pal: "pal-Phli-IR",
                            "pal-Phlp": "pal-Phlp-CN",
                            pam: "pam-Latn-PH",
                            pap: "pap-Latn-AW",
                            pau: "pau-Latn-PW",
                            pbi: "pbi-Latn-ZZ",
                            pcd: "pcd-Latn-FR",
                            pcm: "pcm-Latn-NG",
                            pdc: "pdc-Latn-US",
                            pdt: "pdt-Latn-CA",
                            ped: "ped-Latn-ZZ",
                            peo: "peo-Xpeo-IR",
                            pex: "pex-Latn-ZZ",
                            pfl: "pfl-Latn-DE",
                            phl: "phl-Arab-ZZ",
                            phn: "phn-Phnx-LB",
                            pil: "pil-Latn-ZZ",
                            pip: "pip-Latn-ZZ",
                            pka: "pka-Brah-IN",
                            pko: "pko-Latn-KE",
                            pl: "pl-Latn-PL",
                            pla: "pla-Latn-ZZ",
                            pms: "pms-Latn-IT",
                            png: "png-Latn-ZZ",
                            pnn: "pnn-Latn-ZZ",
                            pnt: "pnt-Grek-GR",
                            pon: "pon-Latn-FM",
                            ppa: "ppa-Deva-IN",
                            ppo: "ppo-Latn-ZZ",
                            pra: "pra-Khar-PK",
                            prd: "prd-Arab-IR",
                            prg: "prg-Latn-001",
                            ps: "ps-Arab-AF",
                            pss: "pss-Latn-ZZ",
                            pt: "pt-Latn-BR",
                            ptp: "ptp-Latn-ZZ",
                            puu: "puu-Latn-GA",
                            pwa: "pwa-Latn-ZZ",
                            qu: "qu-Latn-PE",
                            quc: "quc-Latn-GT",
                            qug: "qug-Latn-EC",
                            rai: "rai-Latn-ZZ",
                            raj: "raj-Deva-IN",
                            rao: "rao-Latn-ZZ",
                            rcf: "rcf-Latn-RE",
                            rej: "rej-Latn-ID",
                            rel: "rel-Latn-ZZ",
                            res: "res-Latn-ZZ",
                            rgn: "rgn-Latn-IT",
                            rhg: "rhg-Arab-MM",
                            ria: "ria-Latn-IN",
                            rif: "rif-Tfng-MA",
                            "rif-NL": "rif-Latn-NL",
                            rjs: "rjs-Deva-NP",
                            rkt: "rkt-Beng-BD",
                            rm: "rm-Latn-CH",
                            rmf: "rmf-Latn-FI",
                            rmo: "rmo-Latn-CH",
                            rmt: "rmt-Arab-IR",
                            rmu: "rmu-Latn-SE",
                            rn: "rn-Latn-BI",
                            rna: "rna-Latn-ZZ",
                            rng: "rng-Latn-MZ",
                            ro: "ro-Latn-RO",
                            rob: "rob-Latn-ID",
                            rof: "rof-Latn-TZ",
                            roo: "roo-Latn-ZZ",
                            rro: "rro-Latn-ZZ",
                            rtm: "rtm-Latn-FJ",
                            ru: "ru-Cyrl-RU",
                            rue: "rue-Cyrl-UA",
                            rug: "rug-Latn-SB",
                            rw: "rw-Latn-RW",
                            rwk: "rwk-Latn-TZ",
                            rwo: "rwo-Latn-ZZ",
                            ryu: "ryu-Kana-JP",
                            sa: "sa-Deva-IN",
                            saf: "saf-Latn-GH",
                            sah: "sah-Cyrl-RU",
                            saq: "saq-Latn-KE",
                            sas: "sas-Latn-ID",
                            sat: "sat-Olck-IN",
                            sav: "sav-Latn-SN",
                            saz: "saz-Saur-IN",
                            sba: "sba-Latn-ZZ",
                            sbe: "sbe-Latn-ZZ",
                            sbp: "sbp-Latn-TZ",
                            sc: "sc-Latn-IT",
                            sck: "sck-Deva-IN",
                            scl: "scl-Arab-ZZ",
                            scn: "scn-Latn-IT",
                            sco: "sco-Latn-GB",
                            scs: "scs-Latn-CA",
                            sd: "sd-Arab-PK",
                            "sd-Deva": "sd-Deva-IN",
                            "sd-Khoj": "sd-Khoj-IN",
                            "sd-Sind": "sd-Sind-IN",
                            sdc: "sdc-Latn-IT",
                            sdh: "sdh-Arab-IR",
                            se: "se-Latn-NO",
                            sef: "sef-Latn-CI",
                            seh: "seh-Latn-MZ",
                            sei: "sei-Latn-MX",
                            ses: "ses-Latn-ML",
                            sg: "sg-Latn-CF",
                            sga: "sga-Ogam-IE",
                            sgs: "sgs-Latn-LT",
                            sgw: "sgw-Ethi-ZZ",
                            sgz: "sgz-Latn-ZZ",
                            shi: "shi-Tfng-MA",
                            shk: "shk-Latn-ZZ",
                            shn: "shn-Mymr-MM",
                            shu: "shu-Arab-ZZ",
                            si: "si-Sinh-LK",
                            sid: "sid-Latn-ET",
                            sig: "sig-Latn-ZZ",
                            sil: "sil-Latn-ZZ",
                            sim: "sim-Latn-ZZ",
                            sjr: "sjr-Latn-ZZ",
                            sk: "sk-Latn-SK",
                            skc: "skc-Latn-ZZ",
                            skr: "skr-Arab-PK",
                            sks: "sks-Latn-ZZ",
                            sl: "sl-Latn-SI",
                            sld: "sld-Latn-ZZ",
                            sli: "sli-Latn-PL",
                            sll: "sll-Latn-ZZ",
                            sly: "sly-Latn-ID",
                            sm: "sm-Latn-WS",
                            sma: "sma-Latn-SE",
                            smj: "smj-Latn-SE",
                            smn: "smn-Latn-FI",
                            smp: "smp-Samr-IL",
                            smq: "smq-Latn-ZZ",
                            sms: "sms-Latn-FI",
                            sn: "sn-Latn-ZW",
                            snc: "snc-Latn-ZZ",
                            snk: "snk-Latn-ML",
                            snp: "snp-Latn-ZZ",
                            snx: "snx-Latn-ZZ",
                            sny: "sny-Latn-ZZ",
                            so: "so-Latn-SO",
                            sog: "sog-Sogd-UZ",
                            sok: "sok-Latn-ZZ",
                            soq: "soq-Latn-ZZ",
                            sou: "sou-Thai-TH",
                            soy: "soy-Latn-ZZ",
                            spd: "spd-Latn-ZZ",
                            spl: "spl-Latn-ZZ",
                            sps: "sps-Latn-ZZ",
                            sq: "sq-Latn-AL",
                            sr: "sr-Cyrl-RS",
                            "sr-ME": "sr-Latn-ME",
                            "sr-RO": "sr-Latn-RO",
                            "sr-RU": "sr-Latn-RU",
                            "sr-TR": "sr-Latn-TR",
                            srb: "srb-Sora-IN",
                            srn: "srn-Latn-SR",
                            srr: "srr-Latn-SN",
                            srx: "srx-Deva-IN",
                            ss: "ss-Latn-ZA",
                            ssd: "ssd-Latn-ZZ",
                            ssg: "ssg-Latn-ZZ",
                            ssy: "ssy-Latn-ER",
                            st: "st-Latn-ZA",
                            stk: "stk-Latn-ZZ",
                            stq: "stq-Latn-DE",
                            su: "su-Latn-ID",
                            sua: "sua-Latn-ZZ",
                            sue: "sue-Latn-ZZ",
                            suk: "suk-Latn-TZ",
                            sur: "sur-Latn-ZZ",
                            sus: "sus-Latn-GN",
                            sv: "sv-Latn-SE",
                            sw: "sw-Latn-TZ",
                            swb: "swb-Arab-YT",
                            swc: "swc-Latn-CD",
                            swg: "swg-Latn-DE",
                            swp: "swp-Latn-ZZ",
                            swv: "swv-Deva-IN",
                            sxn: "sxn-Latn-ID",
                            sxw: "sxw-Latn-ZZ",
                            syl: "syl-Beng-BD",
                            syr: "syr-Syrc-IQ",
                            szl: "szl-Latn-PL",
                            ta: "ta-Taml-IN",
                            taj: "taj-Deva-NP",
                            tal: "tal-Latn-ZZ",
                            tan: "tan-Latn-ZZ",
                            taq: "taq-Latn-ZZ",
                            tbc: "tbc-Latn-ZZ",
                            tbd: "tbd-Latn-ZZ",
                            tbf: "tbf-Latn-ZZ",
                            tbg: "tbg-Latn-ZZ",
                            tbo: "tbo-Latn-ZZ",
                            tbw: "tbw-Latn-PH",
                            tbz: "tbz-Latn-ZZ",
                            tci: "tci-Latn-ZZ",
                            tcy: "tcy-Knda-IN",
                            tdd: "tdd-Tale-CN",
                            tdg: "tdg-Deva-NP",
                            tdh: "tdh-Deva-NP",
                            tdu: "tdu-Latn-MY",
                            te: "te-Telu-IN",
                            ted: "ted-Latn-ZZ",
                            tem: "tem-Latn-SL",
                            teo: "teo-Latn-UG",
                            tet: "tet-Latn-TL",
                            tfi: "tfi-Latn-ZZ",
                            tg: "tg-Cyrl-TJ",
                            "tg-Arab": "tg-Arab-PK",
                            "tg-PK": "tg-Arab-PK",
                            tgc: "tgc-Latn-ZZ",
                            tgo: "tgo-Latn-ZZ",
                            tgu: "tgu-Latn-ZZ",
                            th: "th-Thai-TH",
                            thl: "thl-Deva-NP",
                            thq: "thq-Deva-NP",
                            thr: "thr-Deva-NP",
                            ti: "ti-Ethi-ET",
                            tif: "tif-Latn-ZZ",
                            tig: "tig-Ethi-ER",
                            tik: "tik-Latn-ZZ",
                            tim: "tim-Latn-ZZ",
                            tio: "tio-Latn-ZZ",
                            tiv: "tiv-Latn-NG",
                            tk: "tk-Latn-TM",
                            tkl: "tkl-Latn-TK",
                            tkr: "tkr-Latn-AZ",
                            tkt: "tkt-Deva-NP",
                            tl: "tl-Latn-PH",
                            tlf: "tlf-Latn-ZZ",
                            tlx: "tlx-Latn-ZZ",
                            tly: "tly-Latn-AZ",
                            tmh: "tmh-Latn-NE",
                            tmy: "tmy-Latn-ZZ",
                            tn: "tn-Latn-ZA",
                            tnh: "tnh-Latn-ZZ",
                            to: "to-Latn-TO",
                            tof: "tof-Latn-ZZ",
                            tog: "tog-Latn-MW",
                            toq: "toq-Latn-ZZ",
                            tpi: "tpi-Latn-PG",
                            tpm: "tpm-Latn-ZZ",
                            tpz: "tpz-Latn-ZZ",
                            tqo: "tqo-Latn-ZZ",
                            tr: "tr-Latn-TR",
                            tru: "tru-Latn-TR",
                            trv: "trv-Latn-TW",
                            trw: "trw-Arab-PK",
                            ts: "ts-Latn-ZA",
                            tsd: "tsd-Grek-GR",
                            tsf: "tsf-Deva-NP",
                            tsg: "tsg-Latn-PH",
                            tsj: "tsj-Tibt-BT",
                            tsw: "tsw-Latn-ZZ",
                            tt: "tt-Cyrl-RU",
                            ttd: "ttd-Latn-ZZ",
                            tte: "tte-Latn-ZZ",
                            ttj: "ttj-Latn-UG",
                            ttr: "ttr-Latn-ZZ",
                            tts: "tts-Thai-TH",
                            ttt: "ttt-Latn-AZ",
                            tuh: "tuh-Latn-ZZ",
                            tul: "tul-Latn-ZZ",
                            tum: "tum-Latn-MW",
                            tuq: "tuq-Latn-ZZ",
                            tvd: "tvd-Latn-ZZ",
                            tvl: "tvl-Latn-TV",
                            tvu: "tvu-Latn-ZZ",
                            twh: "twh-Latn-ZZ",
                            twq: "twq-Latn-NE",
                            txg: "txg-Tang-CN",
                            ty: "ty-Latn-PF",
                            tya: "tya-Latn-ZZ",
                            tyv: "tyv-Cyrl-RU",
                            tzm: "tzm-Latn-MA",
                            ubu: "ubu-Latn-ZZ",
                            udi: "udi-Aghb-RU",
                            udm: "udm-Cyrl-RU",
                            ug: "ug-Arab-CN",
                            "ug-Cyrl": "ug-Cyrl-KZ",
                            "ug-KZ": "ug-Cyrl-KZ",
                            "ug-MN": "ug-Cyrl-MN",
                            uga: "uga-Ugar-SY",
                            uk: "uk-Cyrl-UA",
                            uli: "uli-Latn-FM",
                            umb: "umb-Latn-AO",
                            und: "en-Latn-US",
                            "und-002": "en-Latn-NG",
                            "und-003": "en-Latn-US",
                            "und-005": "pt-Latn-BR",
                            "und-009": "en-Latn-AU",
                            "und-011": "en-Latn-NG",
                            "und-013": "es-Latn-MX",
                            "und-014": "sw-Latn-TZ",
                            "und-015": "ar-Arab-EG",
                            "und-017": "sw-Latn-CD",
                            "und-018": "en-Latn-ZA",
                            "und-019": "en-Latn-US",
                            "und-021": "en-Latn-US",
                            "und-029": "es-Latn-CU",
                            "und-030": "zh-Hans-CN",
                            "und-034": "hi-Deva-IN",
                            "und-035": "id-Latn-ID",
                            "und-039": "it-Latn-IT",
                            "und-053": "en-Latn-AU",
                            "und-054": "en-Latn-PG",
                            "und-057": "en-Latn-GU",
                            "und-061": "sm-Latn-WS",
                            "und-142": "zh-Hans-CN",
                            "und-143": "uz-Latn-UZ",
                            "und-145": "ar-Arab-SA",
                            "und-150": "ru-Cyrl-RU",
                            "und-151": "ru-Cyrl-RU",
                            "und-154": "en-Latn-GB",
                            "und-155": "de-Latn-DE",
                            "und-202": "en-Latn-NG",
                            "und-419": "es-Latn-419",
                            "und-AD": "ca-Latn-AD",
                            "und-Adlm": "ff-Adlm-GN",
                            "und-AE": "ar-Arab-AE",
                            "und-AF": "fa-Arab-AF",
                            "und-Aghb": "udi-Aghb-RU",
                            "und-Ahom": "aho-Ahom-IN",
                            "und-AL": "sq-Latn-AL",
                            "und-AM": "hy-Armn-AM",
                            "und-AO": "pt-Latn-AO",
                            "und-AQ": "und-Latn-AQ",
                            "und-AR": "es-Latn-AR",
                            "und-Arab": "ar-Arab-EG",
                            "und-Arab-CC": "ms-Arab-CC",
                            "und-Arab-CN": "ug-Arab-CN",
                            "und-Arab-GB": "ks-Arab-GB",
                            "und-Arab-ID": "ms-Arab-ID",
                            "und-Arab-IN": "ur-Arab-IN",
                            "und-Arab-KH": "cja-Arab-KH",
                            "und-Arab-MM": "rhg-Arab-MM",
                            "und-Arab-MN": "kk-Arab-MN",
                            "und-Arab-MU": "ur-Arab-MU",
                            "und-Arab-NG": "ha-Arab-NG",
                            "und-Arab-PK": "ur-Arab-PK",
                            "und-Arab-TG": "apd-Arab-TG",
                            "und-Arab-TH": "mfa-Arab-TH",
                            "und-Arab-TJ": "fa-Arab-TJ",
                            "und-Arab-TR": "az-Arab-TR",
                            "und-Arab-YT": "swb-Arab-YT",
                            "und-Armi": "arc-Armi-IR",
                            "und-Armn": "hy-Armn-AM",
                            "und-AS": "sm-Latn-AS",
                            "und-AT": "de-Latn-AT",
                            "und-Avst": "ae-Avst-IR",
                            "und-AW": "nl-Latn-AW",
                            "und-AX": "sv-Latn-AX",
                            "und-AZ": "az-Latn-AZ",
                            "und-BA": "bs-Latn-BA",
                            "und-Bali": "ban-Bali-ID",
                            "und-Bamu": "bax-Bamu-CM",
                            "und-Bass": "bsq-Bass-LR",
                            "und-Batk": "bbc-Batk-ID",
                            "und-BD": "bn-Beng-BD",
                            "und-BE": "nl-Latn-BE",
                            "und-Beng": "bn-Beng-BD",
                            "und-BF": "fr-Latn-BF",
                            "und-BG": "bg-Cyrl-BG",
                            "und-BH": "ar-Arab-BH",
                            "und-Bhks": "sa-Bhks-IN",
                            "und-BI": "rn-Latn-BI",
                            "und-BJ": "fr-Latn-BJ",
                            "und-BL": "fr-Latn-BL",
                            "und-BN": "ms-Latn-BN",
                            "und-BO": "es-Latn-BO",
                            "und-Bopo": "zh-Bopo-TW",
                            "und-BQ": "pap-Latn-BQ",
                            "und-BR": "pt-Latn-BR",
                            "und-Brah": "pka-Brah-IN",
                            "und-Brai": "fr-Brai-FR",
                            "und-BT": "dz-Tibt-BT",
                            "und-Bugi": "bug-Bugi-ID",
                            "und-Buhd": "bku-Buhd-PH",
                            "und-BV": "und-Latn-BV",
                            "und-BY": "be-Cyrl-BY",
                            "und-Cakm": "ccp-Cakm-BD",
                            "und-Cans": "cr-Cans-CA",
                            "und-Cari": "xcr-Cari-TR",
                            "und-CD": "sw-Latn-CD",
                            "und-CF": "fr-Latn-CF",
                            "und-CG": "fr-Latn-CG",
                            "und-CH": "de-Latn-CH",
                            "und-Cham": "cjm-Cham-VN",
                            "und-Cher": "chr-Cher-US",
                            "und-Chrs": "xco-Chrs-UZ",
                            "und-CI": "fr-Latn-CI",
                            "und-CL": "es-Latn-CL",
                            "und-CM": "fr-Latn-CM",
                            "und-CN": "zh-Hans-CN",
                            "und-CO": "es-Latn-CO",
                            "und-Copt": "cop-Copt-EG",
                            "und-CP": "und-Latn-CP",
                            "und-Cprt": "grc-Cprt-CY",
                            "und-CR": "es-Latn-CR",
                            "und-CU": "es-Latn-CU",
                            "und-CV": "pt-Latn-CV",
                            "und-CW": "pap-Latn-CW",
                            "und-CY": "el-Grek-CY",
                            "und-Cyrl": "ru-Cyrl-RU",
                            "und-Cyrl-AL": "mk-Cyrl-AL",
                            "und-Cyrl-BA": "sr-Cyrl-BA",
                            "und-Cyrl-GE": "os-Cyrl-GE",
                            "und-Cyrl-GR": "mk-Cyrl-GR",
                            "und-Cyrl-MD": "uk-Cyrl-MD",
                            "und-Cyrl-RO": "bg-Cyrl-RO",
                            "und-Cyrl-SK": "uk-Cyrl-SK",
                            "und-Cyrl-TR": "kbd-Cyrl-TR",
                            "und-Cyrl-XK": "sr-Cyrl-XK",
                            "und-CZ": "cs-Latn-CZ",
                            "und-DE": "de-Latn-DE",
                            "und-Deva": "hi-Deva-IN",
                            "und-Deva-BT": "ne-Deva-BT",
                            "und-Deva-FJ": "hif-Deva-FJ",
                            "und-Deva-MU": "bho-Deva-MU",
                            "und-Deva-PK": "btv-Deva-PK",
                            "und-Diak": "dv-Diak-MV",
                            "und-DJ": "aa-Latn-DJ",
                            "und-DK": "da-Latn-DK",
                            "und-DO": "es-Latn-DO",
                            "und-Dogr": "doi-Dogr-IN",
                            "und-Dupl": "fr-Dupl-FR",
                            "und-DZ": "ar-Arab-DZ",
                            "und-EA": "es-Latn-EA",
                            "und-EC": "es-Latn-EC",
                            "und-EE": "et-Latn-EE",
                            "und-EG": "ar-Arab-EG",
                            "und-Egyp": "egy-Egyp-EG",
                            "und-EH": "ar-Arab-EH",
                            "und-Elba": "sq-Elba-AL",
                            "und-Elym": "arc-Elym-IR",
                            "und-ER": "ti-Ethi-ER",
                            "und-ES": "es-Latn-ES",
                            "und-ET": "am-Ethi-ET",
                            "und-Ethi": "am-Ethi-ET",
                            "und-EU": "en-Latn-IE",
                            "und-EZ": "de-Latn-EZ",
                            "und-FI": "fi-Latn-FI",
                            "und-FO": "fo-Latn-FO",
                            "und-FR": "fr-Latn-FR",
                            "und-GA": "fr-Latn-GA",
                            "und-GE": "ka-Geor-GE",
                            "und-Geor": "ka-Geor-GE",
                            "und-GF": "fr-Latn-GF",
                            "und-GH": "ak-Latn-GH",
                            "und-GL": "kl-Latn-GL",
                            "und-Glag": "cu-Glag-BG",
                            "und-GN": "fr-Latn-GN",
                            "und-Gong": "wsg-Gong-IN",
                            "und-Gonm": "esg-Gonm-IN",
                            "und-Goth": "got-Goth-UA",
                            "und-GP": "fr-Latn-GP",
                            "und-GQ": "es-Latn-GQ",
                            "und-GR": "el-Grek-GR",
                            "und-Gran": "sa-Gran-IN",
                            "und-Grek": "el-Grek-GR",
                            "und-Grek-TR": "bgx-Grek-TR",
                            "und-GS": "und-Latn-GS",
                            "und-GT": "es-Latn-GT",
                            "und-Gujr": "gu-Gujr-IN",
                            "und-Guru": "pa-Guru-IN",
                            "und-GW": "pt-Latn-GW",
                            "und-Hanb": "zh-Hanb-TW",
                            "und-Hang": "ko-Hang-KR",
                            "und-Hani": "zh-Hani-CN",
                            "und-Hano": "hnn-Hano-PH",
                            "und-Hans": "zh-Hans-CN",
                            "und-Hant": "zh-Hant-TW",
                            "und-Hebr": "he-Hebr-IL",
                            "und-Hebr-CA": "yi-Hebr-CA",
                            "und-Hebr-GB": "yi-Hebr-GB",
                            "und-Hebr-SE": "yi-Hebr-SE",
                            "und-Hebr-UA": "yi-Hebr-UA",
                            "und-Hebr-US": "yi-Hebr-US",
                            "und-Hira": "ja-Hira-JP",
                            "und-HK": "zh-Hant-HK",
                            "und-Hluw": "hlu-Hluw-TR",
                            "und-HM": "und-Latn-HM",
                            "und-Hmng": "hnj-Hmng-LA",
                            "und-Hmnp": "mww-Hmnp-US",
                            "und-HN": "es-Latn-HN",
                            "und-HR": "hr-Latn-HR",
                            "und-HT": "ht-Latn-HT",
                            "und-HU": "hu-Latn-HU",
                            "und-Hung": "hu-Hung-HU",
                            "und-IC": "es-Latn-IC",
                            "und-ID": "id-Latn-ID",
                            "und-IL": "he-Hebr-IL",
                            "und-IN": "hi-Deva-IN",
                            "und-IQ": "ar-Arab-IQ",
                            "und-IR": "fa-Arab-IR",
                            "und-IS": "is-Latn-IS",
                            "und-IT": "it-Latn-IT",
                            "und-Ital": "ett-Ital-IT",
                            "und-Jamo": "ko-Jamo-KR",
                            "und-Java": "jv-Java-ID",
                            "und-JO": "ar-Arab-JO",
                            "und-JP": "ja-Jpan-JP",
                            "und-Jpan": "ja-Jpan-JP",
                            "und-Kali": "eky-Kali-MM",
                            "und-Kana": "ja-Kana-JP",
                            "und-KE": "sw-Latn-KE",
                            "und-KG": "ky-Cyrl-KG",
                            "und-KH": "km-Khmr-KH",
                            "und-Khar": "pra-Khar-PK",
                            "und-Khmr": "km-Khmr-KH",
                            "und-Khoj": "sd-Khoj-IN",
                            "und-Kits": "zkt-Kits-CN",
                            "und-KM": "ar-Arab-KM",
                            "und-Knda": "kn-Knda-IN",
                            "und-Kore": "ko-Kore-KR",
                            "und-KP": "ko-Kore-KP",
                            "und-KR": "ko-Kore-KR",
                            "und-Kthi": "bho-Kthi-IN",
                            "und-KW": "ar-Arab-KW",
                            "und-KZ": "ru-Cyrl-KZ",
                            "und-LA": "lo-Laoo-LA",
                            "und-Lana": "nod-Lana-TH",
                            "und-Laoo": "lo-Laoo-LA",
                            "und-Latn-AF": "tk-Latn-AF",
                            "und-Latn-AM": "ku-Latn-AM",
                            "und-Latn-CN": "za-Latn-CN",
                            "und-Latn-CY": "tr-Latn-CY",
                            "und-Latn-DZ": "fr-Latn-DZ",
                            "und-Latn-ET": "en-Latn-ET",
                            "und-Latn-GE": "ku-Latn-GE",
                            "und-Latn-IR": "tk-Latn-IR",
                            "und-Latn-KM": "fr-Latn-KM",
                            "und-Latn-MA": "fr-Latn-MA",
                            "und-Latn-MK": "sq-Latn-MK",
                            "und-Latn-MM": "kac-Latn-MM",
                            "und-Latn-MO": "pt-Latn-MO",
                            "und-Latn-MR": "fr-Latn-MR",
                            "und-Latn-RU": "krl-Latn-RU",
                            "und-Latn-SY": "fr-Latn-SY",
                            "und-Latn-TN": "fr-Latn-TN",
                            "und-Latn-TW": "trv-Latn-TW",
                            "und-Latn-UA": "pl-Latn-UA",
                            "und-LB": "ar-Arab-LB",
                            "und-Lepc": "lep-Lepc-IN",
                            "und-LI": "de-Latn-LI",
                            "und-Limb": "lif-Limb-IN",
                            "und-Lina": "lab-Lina-GR",
                            "und-Linb": "grc-Linb-GR",
                            "und-Lisu": "lis-Lisu-CN",
                            "und-LK": "si-Sinh-LK",
                            "und-LS": "st-Latn-LS",
                            "und-LT": "lt-Latn-LT",
                            "und-LU": "fr-Latn-LU",
                            "und-LV": "lv-Latn-LV",
                            "und-LY": "ar-Arab-LY",
                            "und-Lyci": "xlc-Lyci-TR",
                            "und-Lydi": "xld-Lydi-TR",
                            "und-MA": "ar-Arab-MA",
                            "und-Mahj": "hi-Mahj-IN",
                            "und-Maka": "mak-Maka-ID",
                            "und-Mand": "myz-Mand-IR",
                            "und-Mani": "xmn-Mani-CN",
                            "und-Marc": "bo-Marc-CN",
                            "und-MC": "fr-Latn-MC",
                            "und-MD": "ro-Latn-MD",
                            "und-ME": "sr-Latn-ME",
                            "und-Medf": "dmf-Medf-NG",
                            "und-Mend": "men-Mend-SL",
                            "und-Merc": "xmr-Merc-SD",
                            "und-Mero": "xmr-Mero-SD",
                            "und-MF": "fr-Latn-MF",
                            "und-MG": "mg-Latn-MG",
                            "und-MK": "mk-Cyrl-MK",
                            "und-ML": "bm-Latn-ML",
                            "und-Mlym": "ml-Mlym-IN",
                            "und-MM": "my-Mymr-MM",
                            "und-MN": "mn-Cyrl-MN",
                            "und-MO": "zh-Hant-MO",
                            "und-Modi": "mr-Modi-IN",
                            "und-Mong": "mn-Mong-CN",
                            "und-MQ": "fr-Latn-MQ",
                            "und-MR": "ar-Arab-MR",
                            "und-Mroo": "mro-Mroo-BD",
                            "und-MT": "mt-Latn-MT",
                            "und-Mtei": "mni-Mtei-IN",
                            "und-MU": "mfe-Latn-MU",
                            "und-Mult": "skr-Mult-PK",
                            "und-MV": "dv-Thaa-MV",
                            "und-MX": "es-Latn-MX",
                            "und-MY": "ms-Latn-MY",
                            "und-Mymr": "my-Mymr-MM",
                            "und-Mymr-IN": "kht-Mymr-IN",
                            "und-Mymr-TH": "mnw-Mymr-TH",
                            "und-MZ": "pt-Latn-MZ",
                            "und-NA": "af-Latn-NA",
                            "und-Nand": "sa-Nand-IN",
                            "und-Narb": "xna-Narb-SA",
                            "und-Nbat": "arc-Nbat-JO",
                            "und-NC": "fr-Latn-NC",
                            "und-NE": "ha-Latn-NE",
                            "und-Newa": "new-Newa-NP",
                            "und-NI": "es-Latn-NI",
                            "und-Nkoo": "man-Nkoo-GN",
                            "und-NL": "nl-Latn-NL",
                            "und-NO": "nb-Latn-NO",
                            "und-NP": "ne-Deva-NP",
                            "und-Nshu": "zhx-Nshu-CN",
                            "und-Ogam": "sga-Ogam-IE",
                            "und-Olck": "sat-Olck-IN",
                            "und-OM": "ar-Arab-OM",
                            "und-Orkh": "otk-Orkh-MN",
                            "und-Orya": "or-Orya-IN",
                            "und-Osge": "osa-Osge-US",
                            "und-Osma": "so-Osma-SO",
                            "und-PA": "es-Latn-PA",
                            "und-Palm": "arc-Palm-SY",
                            "und-Pauc": "ctd-Pauc-MM",
                            "und-PE": "es-Latn-PE",
                            "und-Perm": "kv-Perm-RU",
                            "und-PF": "fr-Latn-PF",
                            "und-PG": "tpi-Latn-PG",
                            "und-PH": "fil-Latn-PH",
                            "und-Phag": "lzh-Phag-CN",
                            "und-Phli": "pal-Phli-IR",
                            "und-Phlp": "pal-Phlp-CN",
                            "und-Phnx": "phn-Phnx-LB",
                            "und-PK": "ur-Arab-PK",
                            "und-PL": "pl-Latn-PL",
                            "und-Plrd": "hmd-Plrd-CN",
                            "und-PM": "fr-Latn-PM",
                            "und-PR": "es-Latn-PR",
                            "und-Prti": "xpr-Prti-IR",
                            "und-PS": "ar-Arab-PS",
                            "und-PT": "pt-Latn-PT",
                            "und-PW": "pau-Latn-PW",
                            "und-PY": "gn-Latn-PY",
                            "und-QA": "ar-Arab-QA",
                            "und-QO": "en-Latn-DG",
                            "und-RE": "fr-Latn-RE",
                            "und-Rjng": "rej-Rjng-ID",
                            "und-RO": "ro-Latn-RO",
                            "und-Rohg": "rhg-Rohg-MM",
                            "und-RS": "sr-Cyrl-RS",
                            "und-RU": "ru-Cyrl-RU",
                            "und-Runr": "non-Runr-SE",
                            "und-RW": "rw-Latn-RW",
                            "und-SA": "ar-Arab-SA",
                            "und-Samr": "smp-Samr-IL",
                            "und-Sarb": "xsa-Sarb-YE",
                            "und-Saur": "saz-Saur-IN",
                            "und-SC": "fr-Latn-SC",
                            "und-SD": "ar-Arab-SD",
                            "und-SE": "sv-Latn-SE",
                            "und-Sgnw": "ase-Sgnw-US",
                            "und-Shaw": "en-Shaw-GB",
                            "und-Shrd": "sa-Shrd-IN",
                            "und-SI": "sl-Latn-SI",
                            "und-Sidd": "sa-Sidd-IN",
                            "und-Sind": "sd-Sind-IN",
                            "und-Sinh": "si-Sinh-LK",
                            "und-SJ": "nb-Latn-SJ",
                            "und-SK": "sk-Latn-SK",
                            "und-SM": "it-Latn-SM",
                            "und-SN": "fr-Latn-SN",
                            "und-SO": "so-Latn-SO",
                            "und-Sogd": "sog-Sogd-UZ",
                            "und-Sogo": "sog-Sogo-UZ",
                            "und-Sora": "srb-Sora-IN",
                            "und-Soyo": "cmg-Soyo-MN",
                            "und-SR": "nl-Latn-SR",
                            "und-ST": "pt-Latn-ST",
                            "und-Sund": "su-Sund-ID",
                            "und-SV": "es-Latn-SV",
                            "und-SY": "ar-Arab-SY",
                            "und-Sylo": "syl-Sylo-BD",
                            "und-Syrc": "syr-Syrc-IQ",
                            "und-Tagb": "tbw-Tagb-PH",
                            "und-Takr": "doi-Takr-IN",
                            "und-Tale": "tdd-Tale-CN",
                            "und-Talu": "khb-Talu-CN",
                            "und-Taml": "ta-Taml-IN",
                            "und-Tang": "txg-Tang-CN",
                            "und-Tavt": "blt-Tavt-VN",
                            "und-TD": "fr-Latn-TD",
                            "und-Telu": "te-Telu-IN",
                            "und-TF": "fr-Latn-TF",
                            "und-Tfng": "zgh-Tfng-MA",
                            "und-TG": "fr-Latn-TG",
                            "und-Tglg": "fil-Tglg-PH",
                            "und-TH": "th-Thai-TH",
                            "und-Thaa": "dv-Thaa-MV",
                            "und-Thai": "th-Thai-TH",
                            "und-Thai-CN": "lcp-Thai-CN",
                            "und-Thai-KH": "kdt-Thai-KH",
                            "und-Thai-LA": "kdt-Thai-LA",
                            "und-Tibt": "bo-Tibt-CN",
                            "und-Tirh": "mai-Tirh-IN",
                            "und-TJ": "tg-Cyrl-TJ",
                            "und-TK": "tkl-Latn-TK",
                            "und-TL": "pt-Latn-TL",
                            "und-TM": "tk-Latn-TM",
                            "und-TN": "ar-Arab-TN",
                            "und-TO": "to-Latn-TO",
                            "und-TR": "tr-Latn-TR",
                            "und-TV": "tvl-Latn-TV",
                            "und-TW": "zh-Hant-TW",
                            "und-TZ": "sw-Latn-TZ",
                            "und-UA": "uk-Cyrl-UA",
                            "und-UG": "sw-Latn-UG",
                            "und-Ugar": "uga-Ugar-SY",
                            "und-UY": "es-Latn-UY",
                            "und-UZ": "uz-Latn-UZ",
                            "und-VA": "it-Latn-VA",
                            "und-Vaii": "vai-Vaii-LR",
                            "und-VE": "es-Latn-VE",
                            "und-VN": "vi-Latn-VN",
                            "und-VU": "bi-Latn-VU",
                            "und-Wara": "hoc-Wara-IN",
                            "und-Wcho": "nnp-Wcho-IN",
                            "und-WF": "fr-Latn-WF",
                            "und-WS": "sm-Latn-WS",
                            "und-XK": "sq-Latn-XK",
                            "und-Xpeo": "peo-Xpeo-IR",
                            "und-Xsux": "akk-Xsux-IQ",
                            "und-YE": "ar-Arab-YE",
                            "und-Yezi": "ku-Yezi-GE",
                            "und-Yiii": "ii-Yiii-CN",
                            "und-YT": "fr-Latn-YT",
                            "und-Zanb": "cmg-Zanb-MN",
                            "und-ZW": "sn-Latn-ZW",
                            unr: "unr-Beng-IN",
                            "unr-Deva": "unr-Deva-NP",
                            "unr-NP": "unr-Deva-NP",
                            unx: "unx-Beng-IN",
                            uok: "uok-Latn-ZZ",
                            ur: "ur-Arab-PK",
                            uri: "uri-Latn-ZZ",
                            urt: "urt-Latn-ZZ",
                            urw: "urw-Latn-ZZ",
                            usa: "usa-Latn-ZZ",
                            uth: "uth-Latn-ZZ",
                            utr: "utr-Latn-ZZ",
                            uvh: "uvh-Latn-ZZ",
                            uvl: "uvl-Latn-ZZ",
                            uz: "uz-Latn-UZ",
                            "uz-AF": "uz-Arab-AF",
                            "uz-Arab": "uz-Arab-AF",
                            "uz-CN": "uz-Cyrl-CN",
                            vag: "vag-Latn-ZZ",
                            vai: "vai-Vaii-LR",
                            van: "van-Latn-ZZ",
                            ve: "ve-Latn-ZA",
                            vec: "vec-Latn-IT",
                            vep: "vep-Latn-RU",
                            vi: "vi-Latn-VN",
                            vic: "vic-Latn-SX",
                            viv: "viv-Latn-ZZ",
                            vls: "vls-Latn-BE",
                            vmf: "vmf-Latn-DE",
                            vmw: "vmw-Latn-MZ",
                            vo: "vo-Latn-001",
                            vot: "vot-Latn-RU",
                            vro: "vro-Latn-EE",
                            vun: "vun-Latn-TZ",
                            vut: "vut-Latn-ZZ",
                            wa: "wa-Latn-BE",
                            wae: "wae-Latn-CH",
                            waj: "waj-Latn-ZZ",
                            wal: "wal-Ethi-ET",
                            wan: "wan-Latn-ZZ",
                            war: "war-Latn-PH",
                            wbp: "wbp-Latn-AU",
                            wbq: "wbq-Telu-IN",
                            wbr: "wbr-Deva-IN",
                            wci: "wci-Latn-ZZ",
                            wer: "wer-Latn-ZZ",
                            wgi: "wgi-Latn-ZZ",
                            whg: "whg-Latn-ZZ",
                            wib: "wib-Latn-ZZ",
                            wiu: "wiu-Latn-ZZ",
                            wiv: "wiv-Latn-ZZ",
                            wja: "wja-Latn-ZZ",
                            wji: "wji-Latn-ZZ",
                            wls: "wls-Latn-WF",
                            wmo: "wmo-Latn-ZZ",
                            wnc: "wnc-Latn-ZZ",
                            wni: "wni-Arab-KM",
                            wnu: "wnu-Latn-ZZ",
                            wo: "wo-Latn-SN",
                            wob: "wob-Latn-ZZ",
                            wos: "wos-Latn-ZZ",
                            wrs: "wrs-Latn-ZZ",
                            wsg: "wsg-Gong-IN",
                            wsk: "wsk-Latn-ZZ",
                            wtm: "wtm-Deva-IN",
                            wuu: "wuu-Hans-CN",
                            wuv: "wuv-Latn-ZZ",
                            wwa: "wwa-Latn-ZZ",
                            xav: "xav-Latn-BR",
                            xbi: "xbi-Latn-ZZ",
                            xco: "xco-Chrs-UZ",
                            xcr: "xcr-Cari-TR",
                            xes: "xes-Latn-ZZ",
                            xh: "xh-Latn-ZA",
                            xla: "xla-Latn-ZZ",
                            xlc: "xlc-Lyci-TR",
                            xld: "xld-Lydi-TR",
                            xmf: "xmf-Geor-GE",
                            xmn: "xmn-Mani-CN",
                            xmr: "xmr-Merc-SD",
                            xna: "xna-Narb-SA",
                            xnr: "xnr-Deva-IN",
                            xog: "xog-Latn-UG",
                            xon: "xon-Latn-ZZ",
                            xpr: "xpr-Prti-IR",
                            xrb: "xrb-Latn-ZZ",
                            xsa: "xsa-Sarb-YE",
                            xsi: "xsi-Latn-ZZ",
                            xsm: "xsm-Latn-ZZ",
                            xsr: "xsr-Deva-NP",
                            xwe: "xwe-Latn-ZZ",
                            yam: "yam-Latn-ZZ",
                            yao: "yao-Latn-MZ",
                            yap: "yap-Latn-FM",
                            yas: "yas-Latn-ZZ",
                            yat: "yat-Latn-ZZ",
                            yav: "yav-Latn-CM",
                            yay: "yay-Latn-ZZ",
                            yaz: "yaz-Latn-ZZ",
                            yba: "yba-Latn-ZZ",
                            ybb: "ybb-Latn-CM",
                            yby: "yby-Latn-ZZ",
                            yer: "yer-Latn-ZZ",
                            ygr: "ygr-Latn-ZZ",
                            ygw: "ygw-Latn-ZZ",
                            yi: "yi-Hebr-001",
                            yko: "yko-Latn-ZZ",
                            yle: "yle-Latn-ZZ",
                            ylg: "ylg-Latn-ZZ",
                            yll: "yll-Latn-ZZ",
                            yml: "yml-Latn-ZZ",
                            yo: "yo-Latn-NG",
                            yon: "yon-Latn-ZZ",
                            yrb: "yrb-Latn-ZZ",
                            yre: "yre-Latn-ZZ",
                            yrl: "yrl-Latn-BR",
                            yss: "yss-Latn-ZZ",
                            yua: "yua-Latn-MX",
                            yue: "yue-Hant-HK",
                            "yue-CN": "yue-Hans-CN",
                            "yue-Hans": "yue-Hans-CN",
                            yuj: "yuj-Latn-ZZ",
                            yut: "yut-Latn-ZZ",
                            yuw: "yuw-Latn-ZZ",
                            za: "za-Latn-CN",
                            zag: "zag-Latn-SD",
                            zdj: "zdj-Arab-KM",
                            zea: "zea-Latn-NL",
                            zgh: "zgh-Tfng-MA",
                            zh: "zh-Hans-CN",
                            "zh-AU": "zh-Hant-AU",
                            "zh-BN": "zh-Hant-BN",
                            "zh-Bopo": "zh-Bopo-TW",
                            "zh-GB": "zh-Hant-GB",
                            "zh-GF": "zh-Hant-GF",
                            "zh-Hanb": "zh-Hanb-TW",
                            "zh-Hant": "zh-Hant-TW",
                            "zh-HK": "zh-Hant-HK",
                            "zh-ID": "zh-Hant-ID",
                            "zh-MO": "zh-Hant-MO",
                            "zh-PA": "zh-Hant-PA",
                            "zh-PF": "zh-Hant-PF",
                            "zh-PH": "zh-Hant-PH",
                            "zh-SR": "zh-Hant-SR",
                            "zh-TH": "zh-Hant-TH",
                            "zh-TW": "zh-Hant-TW",
                            "zh-US": "zh-Hant-US",
                            "zh-VN": "zh-Hant-VN",
                            zhx: "zhx-Nshu-CN",
                            zia: "zia-Latn-ZZ",
                            zkt: "zkt-Kits-CN",
                            zlm: "zlm-Latn-TG",
                            zmi: "zmi-Latn-MY",
                            zne: "zne-Latn-ZZ",
                            zu: "zu-Latn-ZA",
                            zza: "zza-Latn-TR"
                        }
                    }
                };
            }
        });
        var require_canonicalizer = __commonJS({
            "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/canonicalizer.js": function (exports) {
                "use strict";
                Object.defineProperty(exports, "__esModule", { value: true });
                exports.canonicalizeUnicodeLocaleId = exports.canonicalizeUnicodeLanguageId = void 0;
                var tslib_1 = require_tslib();
                var aliases_1 = require_aliases();
                var parser_1 = require_parser();
                var likelySubtags2 = tslib_1.__importStar(require_likelySubtags());
                var emitter_1 = require_emitter();
                function canonicalizeAttrs(strs) {
                    return Object.keys(strs.reduce(function (all, str) {
                        all[str.toLowerCase()] = 1;
                        return all;
                    }, {})).sort();
                }
                function canonicalizeKVs(arr) {
                    var all = {};
                    var result = [];
                    for (var _i = 0, arr_1 = arr; _i < arr_1.length; _i++) {
                        var kv = arr_1[_i];
                        if (kv[0] in all) {
                            continue;
                        }
                        all[kv[0]] = 1;
                        if (!kv[1] || kv[1] === "true") {
                            result.push([kv[0].toLowerCase()]);
                        }
                        else {
                            result.push([kv[0].toLowerCase(), kv[1].toLowerCase()]);
                        }
                    }
                    return result.sort(compareKV);
                }
                function compareKV(t1, t2) {
                    return t1[0] < t2[0] ? -1 : t1[0] > t2[0] ? 1 : 0;
                }
                function compareExtension(e1, e2) {
                    return e1.type < e2.type ? -1 : e1.type > e2.type ? 1 : 0;
                }
                function mergeVariants(v1, v2) {
                    var result = tslib_1.__spreadArray([], v1);
                    for (var _i = 0, v2_1 = v2; _i < v2_1.length; _i++) {
                        var v = v2_1[_i];
                        if (v1.indexOf(v) < 0) {
                            result.push(v);
                        }
                    }
                    return result;
                }
                function canonicalizeUnicodeLanguageId(unicodeLanguageId) {
                    var finalLangAst = unicodeLanguageId;
                    if (unicodeLanguageId.variants.length) {
                        var replacedLang_1 = "";
                        for (var _i = 0, _a = unicodeLanguageId.variants; _i < _a.length; _i++) {
                            var variant = _a[_i];
                            if (replacedLang_1 = aliases_1.languageAlias[emitter_1.emitUnicodeLanguageId({
                                lang: unicodeLanguageId.lang,
                                variants: [variant]
                            })]) {
                                var replacedLangAst = parser_1.parseUnicodeLanguageId(replacedLang_1.split(parser_1.SEPARATOR));
                                finalLangAst = {
                                    lang: replacedLangAst.lang,
                                    script: finalLangAst.script || replacedLangAst.script,
                                    region: finalLangAst.region || replacedLangAst.region,
                                    variants: mergeVariants(finalLangAst.variants, replacedLangAst.variants)
                                };
                                break;
                            }
                        }
                    }
                    if (finalLangAst.script && finalLangAst.region) {
                        var replacedLang_2 = aliases_1.languageAlias[emitter_1.emitUnicodeLanguageId({
                            lang: finalLangAst.lang,
                            script: finalLangAst.script,
                            region: finalLangAst.region,
                            variants: []
                        })];
                        if (replacedLang_2) {
                            var replacedLangAst = parser_1.parseUnicodeLanguageId(replacedLang_2.split(parser_1.SEPARATOR));
                            finalLangAst = {
                                lang: replacedLangAst.lang,
                                script: replacedLangAst.script,
                                region: replacedLangAst.region,
                                variants: finalLangAst.variants
                            };
                        }
                    }
                    if (finalLangAst.region) {
                        var replacedLang_3 = aliases_1.languageAlias[emitter_1.emitUnicodeLanguageId({
                            lang: finalLangAst.lang,
                            region: finalLangAst.region,
                            variants: []
                        })];
                        if (replacedLang_3) {
                            var replacedLangAst = parser_1.parseUnicodeLanguageId(replacedLang_3.split(parser_1.SEPARATOR));
                            finalLangAst = {
                                lang: replacedLangAst.lang,
                                script: finalLangAst.script || replacedLangAst.script,
                                region: replacedLangAst.region,
                                variants: finalLangAst.variants
                            };
                        }
                    }
                    var replacedLang = aliases_1.languageAlias[emitter_1.emitUnicodeLanguageId({
                        lang: finalLangAst.lang,
                        variants: []
                    })];
                    if (replacedLang) {
                        var replacedLangAst = parser_1.parseUnicodeLanguageId(replacedLang.split(parser_1.SEPARATOR));
                        finalLangAst = {
                            lang: replacedLangAst.lang,
                            script: finalLangAst.script || replacedLangAst.script,
                            region: finalLangAst.region || replacedLangAst.region,
                            variants: finalLangAst.variants
                        };
                    }
                    if (finalLangAst.region) {
                        var region = finalLangAst.region.toUpperCase();
                        var regionAlias = aliases_1.territoryAlias[region];
                        var replacedRegion = void 0;
                        if (regionAlias) {
                            var regions = regionAlias.split(" ");
                            replacedRegion = regions[0];
                            var likelySubtag = likelySubtags2.supplemental.likelySubtags[emitter_1.emitUnicodeLanguageId({
                                lang: finalLangAst.lang,
                                script: finalLangAst.script,
                                variants: []
                            })];
                            if (likelySubtag) {
                                var likelyRegion = parser_1.parseUnicodeLanguageId(likelySubtag.split(parser_1.SEPARATOR)).region;
                                if (likelyRegion && regions.indexOf(likelyRegion) > -1) {
                                    replacedRegion = likelyRegion;
                                }
                            }
                        }
                        if (replacedRegion) {
                            finalLangAst.region = replacedRegion;
                        }
                        finalLangAst.region = finalLangAst.region.toUpperCase();
                    }
                    if (finalLangAst.script) {
                        finalLangAst.script = finalLangAst.script[0].toUpperCase() + finalLangAst.script.slice(1).toLowerCase();
                        if (aliases_1.scriptAlias[finalLangAst.script]) {
                            finalLangAst.script = aliases_1.scriptAlias[finalLangAst.script];
                        }
                    }
                    if (finalLangAst.variants.length) {
                        for (var i = 0; i < finalLangAst.variants.length; i++) {
                            var variant = finalLangAst.variants[i].toLowerCase();
                            if (aliases_1.variantAlias[variant]) {
                                var alias = aliases_1.variantAlias[variant];
                                if (parser_1.isUnicodeVariantSubtag(alias)) {
                                    finalLangAst.variants[i] = alias;
                                }
                                else if (parser_1.isUnicodeLanguageSubtag(alias)) {
                                    finalLangAst.lang = alias;
                                }
                            }
                        }
                        finalLangAst.variants.sort();
                    }
                    return finalLangAst;
                }
                exports.canonicalizeUnicodeLanguageId = canonicalizeUnicodeLanguageId;
                function canonicalizeUnicodeLocaleId(locale) {
                    locale.lang = canonicalizeUnicodeLanguageId(locale.lang);
                    if (locale.extensions) {
                        for (var _i = 0, _a = locale.extensions; _i < _a.length; _i++) {
                            var extension = _a[_i];
                            switch (extension.type) {
                                case "u":
                                    extension.keywords = canonicalizeKVs(extension.keywords);
                                    if (extension.attributes) {
                                        extension.attributes = canonicalizeAttrs(extension.attributes);
                                    }
                                    break;
                                case "t":
                                    if (extension.lang) {
                                        extension.lang = canonicalizeUnicodeLanguageId(extension.lang);
                                    }
                                    extension.fields = canonicalizeKVs(extension.fields);
                                    break;
                                default:
                                    extension.value = extension.value.toLowerCase();
                                    break;
                            }
                        }
                        locale.extensions.sort(compareExtension);
                    }
                    return locale;
                }
                exports.canonicalizeUnicodeLocaleId = canonicalizeUnicodeLocaleId;
            }
        });
        var require_types = __commonJS({
            "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/src/types.js": function (exports) {
                "use strict";
                Object.defineProperty(exports, "__esModule", { value: true });
            }
        });
        var require_intl_getcanonicallocales = __commonJS({
            "bazel-out/darwin-fastbuild/bin/packages/intl-getcanonicallocales/index.js": function (exports) {
                "use strict";
                Object.defineProperty(exports, "__esModule", { value: true });
                exports.isUnicodeLanguageSubtag = exports.isUnicodeScriptSubtag = exports.isUnicodeRegionSubtag = exports.isStructurallyValidLanguageTag = exports.parseUnicodeLanguageId = exports.parseUnicodeLocaleId = exports.getCanonicalLocales = void 0;
                var tslib_1 = require_tslib();
                var parser_1 = require_parser();
                var emitter_1 = require_emitter();
                var canonicalizer_1 = require_canonicalizer();
                function CanonicalizeLocaleList2(locales) {
                    if (locales === void 0) {
                        return [];
                    }
                    var seen = [];
                    if (typeof locales === "string") {
                        locales = [locales];
                    }
                    for (var _i = 0, locales_1 = locales; _i < locales_1.length; _i++) {
                        var locale = locales_1[_i];
                        var canonicalizedTag = emitter_1.emitUnicodeLocaleId(canonicalizer_1.canonicalizeUnicodeLocaleId(parser_1.parseUnicodeLocaleId(locale)));
                        if (seen.indexOf(canonicalizedTag) < 0) {
                            seen.push(canonicalizedTag);
                        }
                    }
                    return seen;
                }
                function getCanonicalLocales(locales) {
                    return CanonicalizeLocaleList2(locales);
                }
                exports.getCanonicalLocales = getCanonicalLocales;
                var parser_2 = require_parser();
                Object.defineProperty(exports, "parseUnicodeLocaleId", { enumerable: true, get: function () {
                        return parser_2.parseUnicodeLocaleId;
                    } });
                Object.defineProperty(exports, "parseUnicodeLanguageId", { enumerable: true, get: function () {
                        return parser_2.parseUnicodeLanguageId;
                    } });
                Object.defineProperty(exports, "isStructurallyValidLanguageTag", { enumerable: true, get: function () {
                        return parser_2.isStructurallyValidLanguageTag;
                    } });
                Object.defineProperty(exports, "isUnicodeRegionSubtag", { enumerable: true, get: function () {
                        return parser_2.isUnicodeRegionSubtag;
                    } });
                Object.defineProperty(exports, "isUnicodeScriptSubtag", { enumerable: true, get: function () {
                        return parser_2.isUnicodeScriptSubtag;
                    } });
                Object.defineProperty(exports, "isUnicodeLanguageSubtag", { enumerable: true, get: function () {
                        return parser_2.isUnicodeLanguageSubtag;
                    } });
                tslib_1.__exportStar(require_types(), exports);
                tslib_1.__exportStar(require_emitter(), exports);
            }
        });
        var import_tslib5 = __toModule(require_tslib());
        var import_tslib2 = __toModule(require_tslib());
        function invariant(condition, message, Err) {
            if (Err === void 0) {
                Err = Error;
            }
            if (!condition) {
                throw new Err(message);
            }
        }
        var import_tslib = __toModule(require_tslib());
        var RangePatternType;
        (function (RangePatternType2) {
            RangePatternType2["startRange"] = "startRange";
            RangePatternType2["shared"] = "shared";
            RangePatternType2["endRange"] = "endRange";
        })(RangePatternType || (RangePatternType = {}));
        function ToString(o) {
            if (typeof o === "symbol") {
                throw TypeError("Cannot convert a Symbol value to a string");
            }
            return String(o);
        }
        function ToObject(arg) {
            if (arg == null) {
                throw new TypeError("undefined/null cannot be converted to object");
            }
            return Object(arg);
        }
        function SameValue(x, y) {
            if (Object.is) {
                return Object.is(x, y);
            }
            if (x === y) {
                return x !== 0 || 1 / x === 1 / y;
            }
            return x !== x && y !== y;
        }
        var MINUTES_PER_HOUR = 60;
        var SECONDS_PER_MINUTE = 60;
        var MS_PER_SECOND = 1e3;
        var MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;
        var MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;
        function CoerceOptionsToObject(options) {
            if (typeof options === "undefined") {
                return Object.create(null);
            }
            return ToObject(options);
        }
        var import_tslib3 = __toModule(require_tslib());
        function GetOption(opts, prop, type, values, fallback) {
            if (typeof opts !== "object") {
                throw new TypeError("Options must be an object");
            }
            var value = opts[prop];
            if (value !== void 0) {
                if (type !== "boolean" && type !== "string") {
                    throw new TypeError("invalid type");
                }
                if (type === "boolean") {
                    value = Boolean(value);
                }
                if (type === "string") {
                    value = ToString(value);
                }
                if (values !== void 0 && !values.filter(function (val) {
                    return val == value;
                }).length) {
                    throw new RangeError(value + " is not within " + values.join(", "));
                }
                return value;
            }
            return fallback;
        }
        var SANCTIONED_UNITS = [
            "angle-degree",
            "area-acre",
            "area-hectare",
            "concentr-percent",
            "digital-bit",
            "digital-byte",
            "digital-gigabit",
            "digital-gigabyte",
            "digital-kilobit",
            "digital-kilobyte",
            "digital-megabit",
            "digital-megabyte",
            "digital-petabyte",
            "digital-terabit",
            "digital-terabyte",
            "duration-day",
            "duration-hour",
            "duration-millisecond",
            "duration-minute",
            "duration-month",
            "duration-second",
            "duration-week",
            "duration-year",
            "length-centimeter",
            "length-foot",
            "length-inch",
            "length-kilometer",
            "length-meter",
            "length-mile-scandinavian",
            "length-mile",
            "length-millimeter",
            "length-yard",
            "mass-gram",
            "mass-kilogram",
            "mass-ounce",
            "mass-pound",
            "mass-stone",
            "temperature-celsius",
            "temperature-fahrenheit",
            "volume-fluid-ounce",
            "volume-gallon",
            "volume-liter",
            "volume-milliliter"
        ];
        function removeUnitNamespace(unit) {
            return unit.slice(unit.indexOf("-") + 1);
        }
        var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace);
        var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/;
        var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source);
        var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$");
        var import_tslib4 = __toModule(require_tslib());
        var MissingLocaleDataError = function (_super) {
            (0, import_tslib4.__extends)(MissingLocaleDataError2, _super);
            function MissingLocaleDataError2() {
                var _this = _super !== null && _super.apply(this, arguments) || this;
                _this.type = "MISSING_LOCALE_DATA";
                return _this;
            }
            return MissingLocaleDataError2;
        }(Error);
        var import_intl_getcanonicallocales = __toModule(require_intl_getcanonicallocales());
        var likelySubtagsData = __toModule(require_likelySubtags());
        var internalSlotMap = new WeakMap();
        function getInternalSlots(x) {
            var internalSlots = internalSlotMap.get(x);
            if (!internalSlots) {
                internalSlots = Object.create(null);
                internalSlotMap.set(x, internalSlots);
            }
            return internalSlots;
        }
        var likelySubtags = likelySubtagsData.supplemental.likelySubtags;
        var RELEVANT_EXTENSION_KEYS = ["ca", "co", "hc", "kf", "kn", "nu"];
        var UNICODE_TYPE_REGEX = /^[a-z0-9]{3,8}(-[a-z0-9]{3,8})*$/i;
        function applyOptionsToTag(tag, options) {
            invariant(typeof tag === "string", "language tag must be a string");
            invariant((0, import_intl_getcanonicallocales.isStructurallyValidLanguageTag)(tag), "malformed language tag", RangeError);
            var language = GetOption(options, "language", "string", void 0, void 0);
            if (language !== void 0) {
                invariant((0, import_intl_getcanonicallocales.isUnicodeLanguageSubtag)(language), "Malformed unicode_language_subtag", RangeError);
            }
            var script = GetOption(options, "script", "string", void 0, void 0);
            if (script !== void 0) {
                invariant((0, import_intl_getcanonicallocales.isUnicodeScriptSubtag)(script), "Malformed unicode_script_subtag", RangeError);
            }
            var region = GetOption(options, "region", "string", void 0, void 0);
            if (region !== void 0) {
                invariant((0, import_intl_getcanonicallocales.isUnicodeRegionSubtag)(region), "Malformed unicode_region_subtag", RangeError);
            }
            var languageId = (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(tag);
            if (language !== void 0) {
                languageId.lang = language;
            }
            if (script !== void 0) {
                languageId.script = script;
            }
            if (region !== void 0) {
                languageId.region = region;
            }
            return Intl.getCanonicalLocales((0, import_intl_getcanonicallocales.emitUnicodeLocaleId)((0, import_tslib5.__assign)((0, import_tslib5.__assign)({}, (0, import_intl_getcanonicallocales.parseUnicodeLocaleId)(tag)), { lang: languageId })))[0];
        }
        function applyUnicodeExtensionToTag(tag, options, relevantExtensionKeys) {
            var unicodeExtension;
            var keywords = [];
            var ast = (0, import_intl_getcanonicallocales.parseUnicodeLocaleId)(tag);
            for (var _i = 0, _a = ast.extensions; _i < _a.length; _i++) {
                var ext = _a[_i];
                if (ext.type === "u") {
                    unicodeExtension = ext;
                    if (Array.isArray(ext.keywords))
                        keywords = ext.keywords;
                }
            }
            var result = Object.create(null);
            for (var _b = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _b < relevantExtensionKeys_1.length; _b++) {
                var key = relevantExtensionKeys_1[_b];
                var value = void 0, entry = void 0;
                for (var _c = 0, keywords_1 = keywords; _c < keywords_1.length; _c++) {
                    var keyword = keywords_1[_c];
                    if (keyword[0] === key) {
                        entry = keyword;
                        value = entry[1];
                    }
                }
                invariant(key in options, key + " must be in options");
                var optionsValue = options[key];
                if (optionsValue !== void 0) {
                    invariant(typeof optionsValue === "string", "Value for " + key + " must be a string");
                    value = optionsValue;
                    if (entry) {
                        entry[1] = value;
                    }
                    else {
                        keywords.push([key, value]);
                    }
                }
                result[key] = value;
            }
            if (!unicodeExtension) {
                if (keywords.length) {
                    ast.extensions.push({
                        type: "u",
                        keywords: keywords,
                        attributes: []
                    });
                }
            }
            else {
                unicodeExtension.keywords = keywords;
            }
            result.locale = Intl.getCanonicalLocales((0, import_intl_getcanonicallocales.emitUnicodeLocaleId)(ast))[0];
            return result;
        }
        function mergeUnicodeLanguageId(lang, script, region, variants, replacement) {
            if (variants === void 0) {
                variants = [];
            }
            if (!replacement) {
                return {
                    lang: lang || "und",
                    script: script,
                    region: region,
                    variants: variants
                };
            }
            return {
                lang: !lang || lang === "und" ? replacement.lang : lang,
                script: script || replacement.script,
                region: region || replacement.region,
                variants: (0, import_tslib5.__spreadArray)((0, import_tslib5.__spreadArray)([], variants), replacement.variants)
            };
        }
        function addLikelySubtags(tag) {
            var ast = (0, import_intl_getcanonicallocales.parseUnicodeLocaleId)(tag);
            var unicodeLangId = ast.lang;
            var lang = unicodeLangId.lang, script = unicodeLangId.script, region = unicodeLangId.region, variants = unicodeLangId.variants;
            if (script && region) {
                var match_1 = likelySubtags[(0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({ lang: lang, script: script, region: region, variants: [] })];
                if (match_1) {
                    var parts_1 = (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(match_1);
                    ast.lang = mergeUnicodeLanguageId(void 0, void 0, void 0, variants, parts_1);
                    return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)(ast);
                }
            }
            if (script) {
                var match_2 = likelySubtags[(0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({ lang: lang, script: script, variants: [] })];
                if (match_2) {
                    var parts_2 = (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(match_2);
                    ast.lang = mergeUnicodeLanguageId(void 0, void 0, region, variants, parts_2);
                    return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)(ast);
                }
            }
            if (region) {
                var match_3 = likelySubtags[(0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({ lang: lang, region: region, variants: [] })];
                if (match_3) {
                    var parts_3 = (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(match_3);
                    ast.lang = mergeUnicodeLanguageId(void 0, script, void 0, variants, parts_3);
                    return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)(ast);
                }
            }
            var match = likelySubtags[lang] || likelySubtags[(0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({ lang: "und", script: script, variants: [] })];
            if (!match) {
                throw new Error("No match for addLikelySubtags");
            }
            var parts = (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(match);
            ast.lang = mergeUnicodeLanguageId(void 0, script, region, variants, parts);
            return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)(ast);
        }
        function removeLikelySubtags(tag) {
            var maxLocale = addLikelySubtags(tag);
            if (!maxLocale) {
                return tag;
            }
            maxLocale = (0, import_intl_getcanonicallocales.emitUnicodeLanguageId)((0, import_tslib5.__assign)((0, import_tslib5.__assign)({}, (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(maxLocale)), { variants: [] }));
            var ast = (0, import_intl_getcanonicallocales.parseUnicodeLocaleId)(tag);
            var _a = ast.lang, lang = _a.lang, script = _a.script, region = _a.region, variants = _a.variants;
            var trial = addLikelySubtags((0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({ lang: lang, variants: [] }));
            if (trial === maxLocale) {
                return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)((0, import_tslib5.__assign)((0, import_tslib5.__assign)({}, ast), { lang: mergeUnicodeLanguageId(lang, void 0, void 0, variants) }));
            }
            if (region) {
                var trial_1 = addLikelySubtags((0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({ lang: lang, region: region, variants: [] }));
                if (trial_1 === maxLocale) {
                    return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)((0, import_tslib5.__assign)((0, import_tslib5.__assign)({}, ast), { lang: mergeUnicodeLanguageId(lang, void 0, region, variants) }));
                }
            }
            if (script) {
                var trial_2 = addLikelySubtags((0, import_intl_getcanonicallocales.emitUnicodeLanguageId)({ lang: lang, script: script, variants: [] }));
                if (trial_2 === maxLocale) {
                    return (0, import_intl_getcanonicallocales.emitUnicodeLocaleId)((0, import_tslib5.__assign)((0, import_tslib5.__assign)({}, ast), { lang: mergeUnicodeLanguageId(lang, script, void 0, variants) }));
                }
            }
            return tag;
        }
        var Locale = function () {
            function Locale2(tag, opts) {
                var newTarget = this && this instanceof Locale2 ? this.constructor : void 0;
                if (!newTarget) {
                    throw new TypeError("Intl.Locale must be called with 'new'");
                }
                var relevantExtensionKeys = Locale2.relevantExtensionKeys;
                var internalSlotsList = [
                    "initializedLocale",
                    "locale",
                    "calendar",
                    "collation",
                    "hourCycle",
                    "numberingSystem"
                ];
                if (relevantExtensionKeys.indexOf("kf") > -1) {
                    internalSlotsList.push("caseFirst");
                }
                if (relevantExtensionKeys.indexOf("kn") > -1) {
                    internalSlotsList.push("numeric");
                }
                if (tag === void 0) {
                    throw new TypeError("First argument to Intl.Locale constructor can't be empty or missing");
                }
                if (typeof tag !== "string" && typeof tag !== "object") {
                    throw new TypeError("tag must be a string or object");
                }
                var internalSlots;
                if (typeof tag === "object" && (internalSlots = getInternalSlots(tag)) && internalSlots.initializedLocale) {
                    tag = internalSlots.locale;
                }
                else {
                    tag = tag.toString();
                }
                internalSlots = getInternalSlots(this);
                var options = CoerceOptionsToObject(opts);
                tag = applyOptionsToTag(tag, options);
                var opt = Object.create(null);
                var calendar = GetOption(options, "calendar", "string", void 0, void 0);
                if (calendar !== void 0) {
                    if (!UNICODE_TYPE_REGEX.test(calendar)) {
                        throw new RangeError("invalid calendar");
                    }
                }
                opt.ca = calendar;
                var collation = GetOption(options, "collation", "string", void 0, void 0);
                if (collation !== void 0) {
                    if (!UNICODE_TYPE_REGEX.test(collation)) {
                        throw new RangeError("invalid collation");
                    }
                }
                opt.co = collation;
                var hc = GetOption(options, "hourCycle", "string", ["h11", "h12", "h23", "h24"], void 0);
                opt.hc = hc;
                var kf = GetOption(options, "caseFirst", "string", ["upper", "lower", "false"], void 0);
                opt.kf = kf;
                var _kn = GetOption(options, "numeric", "boolean", void 0, void 0);
                var kn;
                if (_kn !== void 0) {
                    kn = String(_kn);
                }
                opt.kn = kn;
                var numberingSystem = GetOption(options, "numberingSystem", "string", void 0, void 0);
                if (numberingSystem !== void 0) {
                    if (!UNICODE_TYPE_REGEX.test(numberingSystem)) {
                        throw new RangeError("Invalid numberingSystem");
                    }
                }
                opt.nu = numberingSystem;
                var r = applyUnicodeExtensionToTag(tag, opt, relevantExtensionKeys);
                internalSlots.locale = r.locale;
                internalSlots.calendar = r.ca;
                internalSlots.collation = r.co;
                internalSlots.hourCycle = r.hc;
                if (relevantExtensionKeys.indexOf("kf") > -1) {
                    internalSlots.caseFirst = r.kf;
                }
                if (relevantExtensionKeys.indexOf("kn") > -1) {
                    internalSlots.numeric = SameValue(r.kn, "true");
                }
                internalSlots.numberingSystem = r.nu;
            }
            Locale2.prototype.maximize = function () {
                var locale = getInternalSlots(this).locale;
                try {
                    var maximizedLocale = addLikelySubtags(locale);
                    return new Locale2(maximizedLocale);
                }
                catch (e) {
                    return new Locale2(locale);
                }
            };
            Locale2.prototype.minimize = function () {
                var locale = getInternalSlots(this).locale;
                try {
                    var minimizedLocale = removeLikelySubtags(locale);
                    return new Locale2(minimizedLocale);
                }
                catch (e) {
                    return new Locale2(locale);
                }
            };
            Locale2.prototype.toString = function () {
                return getInternalSlots(this).locale;
            };
            Object.defineProperty(Locale2.prototype, "baseName", {
                get: function () {
                    var locale = getInternalSlots(this).locale;
                    return (0, import_intl_getcanonicallocales.emitUnicodeLanguageId)((0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(locale));
                },
                enumerable: false,
                configurable: true
            });
            Object.defineProperty(Locale2.prototype, "calendar", {
                get: function () {
                    return getInternalSlots(this).calendar;
                },
                enumerable: false,
                configurable: true
            });
            Object.defineProperty(Locale2.prototype, "collation", {
                get: function () {
                    return getInternalSlots(this).collation;
                },
                enumerable: false,
                configurable: true
            });
            Object.defineProperty(Locale2.prototype, "hourCycle", {
                get: function () {
                    return getInternalSlots(this).hourCycle;
                },
                enumerable: false,
                configurable: true
            });
            Object.defineProperty(Locale2.prototype, "caseFirst", {
                get: function () {
                    return getInternalSlots(this).caseFirst;
                },
                enumerable: false,
                configurable: true
            });
            Object.defineProperty(Locale2.prototype, "numeric", {
                get: function () {
                    return getInternalSlots(this).numeric;
                },
                enumerable: false,
                configurable: true
            });
            Object.defineProperty(Locale2.prototype, "numberingSystem", {
                get: function () {
                    return getInternalSlots(this).numberingSystem;
                },
                enumerable: false,
                configurable: true
            });
            Object.defineProperty(Locale2.prototype, "language", {
                get: function () {
                    var locale = getInternalSlots(this).locale;
                    return (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(locale).lang;
                },
                enumerable: false,
                configurable: true
            });
            Object.defineProperty(Locale2.prototype, "script", {
                get: function () {
                    var locale = getInternalSlots(this).locale;
                    return (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(locale).script;
                },
                enumerable: false,
                configurable: true
            });
            Object.defineProperty(Locale2.prototype, "region", {
                get: function () {
                    var locale = getInternalSlots(this).locale;
                    return (0, import_intl_getcanonicallocales.parseUnicodeLanguageId)(locale).region;
                },
                enumerable: false,
                configurable: true
            });
            Locale2.relevantExtensionKeys = RELEVANT_EXTENSION_KEYS;
            return Locale2;
        }();
        try {
            if (typeof Symbol !== "undefined") {
                Object.defineProperty(Locale.prototype, Symbol.toStringTag, {
                    value: "Intl.Locale",
                    writable: false,
                    enumerable: false,
                    configurable: true
                });
            }
            Object.defineProperty(Locale.prototype.constructor, "length", {
                value: 1,
                writable: false,
                enumerable: false,
                configurable: true
            });
        }
        catch (e) {
        }
        function hasIntlGetCanonicalLocalesBug() {
            try {
                return new Intl.Locale("und-x-private").toString() === "x-private";
            }
            catch (e) {
                return true;
            }
        }
        function shouldPolyfill() {
            return typeof Intl === "undefined" || !("Locale" in Intl) || hasIntlGetCanonicalLocalesBug();
        }
        if (shouldPolyfill()) {
            Object.defineProperty(Intl, "Locale", {
                value: Locale,
                writable: true,
                enumerable: false,
                configurable: true
            });
        }
    })();
    (function () {
        var extendStatics = function (d, b) {
            extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d2, b2) {
                d2.__proto__ = b2;
            } || function (d2, b2) {
                for (var p in b2)
                    if (Object.prototype.hasOwnProperty.call(b2, p))
                        d2[p] = b2[p];
            };
            return extendStatics(d, b);
        };
        function __extends(d, b) {
            if (typeof b !== "function" && b !== null)
                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
            extendStatics(d, b);
            function __() {
                this.constructor = d;
            }
            d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
        }
        var __assign = function () {
            __assign = Object.assign || function __assign2(t) {
                for (var s, i = 1, n = arguments.length; i < n; i++) {
                    s = arguments[i];
                    for (var p in s)
                        if (Object.prototype.hasOwnProperty.call(s, p))
                            t[p] = s[p];
                }
                return t;
            };
            return __assign.apply(this, arguments);
        };
        function setInternalSlot(map, pl, field, value) {
            if (!map.get(pl)) {
                map.set(pl, Object.create(null));
            }
            var slots = map.get(pl);
            slots[field] = value;
        }
        function getInternalSlot(map, pl, field) {
            return getMultiInternalSlots(map, pl, field)[field];
        }
        function getMultiInternalSlots(map, pl) {
            var fields = [];
            for (var _i = 2; _i < arguments.length; _i++) {
                fields[_i - 2] = arguments[_i];
            }
            var slots = map.get(pl);
            if (!slots) {
                throw new TypeError(pl + " InternalSlot has not been initialized");
            }
            return fields.reduce(function (all, f) {
                all[f] = slots[f];
                return all;
            }, Object.create(null));
        }
        function isLiteralPart(patternPart) {
            return patternPart.type === "literal";
        }
        var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;
        function invariant(condition, message, Err) {
            if (Err === void 0) {
                Err = Error;
            }
            if (!condition) {
                throw new Err(message);
            }
        }
        var RangePatternType;
        (function (RangePatternType2) {
            RangePatternType2["startRange"] = "startRange";
            RangePatternType2["shared"] = "shared";
            RangePatternType2["endRange"] = "endRange";
        })(RangePatternType || (RangePatternType = {}));
        function CanonicalizeLocaleList(locales) {
            return Intl.getCanonicalLocales(locales);
        }
        function ToString(o) {
            if (typeof o === "symbol") {
                throw TypeError("Cannot convert a Symbol value to a string");
            }
            return String(o);
        }
        function ToObject(arg) {
            if (arg == null) {
                throw new TypeError("undefined/null cannot be converted to object");
            }
            return Object(arg);
        }
        var MINUTES_PER_HOUR = 60;
        var SECONDS_PER_MINUTE = 60;
        var MS_PER_SECOND = 1e3;
        var MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;
        var MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;
        function PartitionPattern(pattern) {
            var result = [];
            var beginIndex = pattern.indexOf("{");
            var endIndex = 0;
            var nextIndex = 0;
            var length = pattern.length;
            while (beginIndex < pattern.length && beginIndex > -1) {
                endIndex = pattern.indexOf("}", beginIndex);
                invariant(endIndex > beginIndex, "Invalid pattern " + pattern);
                if (beginIndex > nextIndex) {
                    result.push({
                        type: "literal",
                        value: pattern.substring(nextIndex, beginIndex)
                    });
                }
                result.push({
                    type: pattern.substring(beginIndex + 1, endIndex),
                    value: void 0
                });
                nextIndex = endIndex + 1;
                beginIndex = pattern.indexOf("{", nextIndex);
            }
            if (nextIndex < length) {
                result.push({
                    type: "literal",
                    value: pattern.substring(nextIndex, length)
                });
            }
            return result;
        }
        function GetOption(opts, prop, type, values, fallback) {
            if (typeof opts !== "object") {
                throw new TypeError("Options must be an object");
            }
            var value = opts[prop];
            if (value !== void 0) {
                if (type !== "boolean" && type !== "string") {
                    throw new TypeError("invalid type");
                }
                if (type === "boolean") {
                    value = Boolean(value);
                }
                if (type === "string") {
                    value = ToString(value);
                }
                if (values !== void 0 && !values.filter(function (val) {
                    return val == value;
                }).length) {
                    throw new RangeError(value + " is not within " + values.join(", "));
                }
                return value;
            }
            return fallback;
        }
        function BestAvailableLocale(availableLocales, locale) {
            var candidate = locale;
            while (true) {
                if (availableLocales.has(candidate)) {
                    return candidate;
                }
                var pos = candidate.lastIndexOf("-");
                if (!~pos) {
                    return void 0;
                }
                if (pos >= 2 && candidate[pos - 2] === "-") {
                    pos -= 2;
                }
                candidate = candidate.slice(0, pos);
            }
        }
        function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {
            var result = { locale: "" };
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
                var locale = requestedLocales_1[_i];
                var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
                var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
                if (availableLocale) {
                    result.locale = availableLocale;
                    if (locale !== noExtensionLocale) {
                        result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);
                    }
                    return result;
                }
            }
            result.locale = getDefaultLocale();
            return result;
        }
        function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {
            var minimizedAvailableLocaleMap = {};
            var minimizedAvailableLocales = new Set();
            availableLocales.forEach(function (locale2) {
                var minimizedLocale = new Intl.Locale(locale2).minimize().toString();
                minimizedAvailableLocaleMap[minimizedLocale] = locale2;
                minimizedAvailableLocales.add(minimizedLocale);
            });
            var foundLocale;
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
                var l = requestedLocales_1[_i];
                if (foundLocale) {
                    break;
                }
                var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
                if (availableLocales.has(noExtensionLocale)) {
                    foundLocale = noExtensionLocale;
                    break;
                }
                if (minimizedAvailableLocales.has(noExtensionLocale)) {
                    foundLocale = minimizedAvailableLocaleMap[noExtensionLocale];
                    break;
                }
                var locale = new Intl.Locale(noExtensionLocale);
                var maximizedRequestedLocale = locale.maximize().toString();
                var minimizedRequestedLocale = locale.minimize().toString();
                if (minimizedAvailableLocales.has(minimizedRequestedLocale)) {
                    foundLocale = minimizedAvailableLocaleMap[minimizedRequestedLocale];
                    break;
                }
                foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale);
            }
            return {
                locale: foundLocale || getDefaultLocale()
            };
        }
        function UnicodeExtensionValue(extension, key) {
            invariant(key.length === 2, "key must have 2 elements");
            var size = extension.length;
            var searchValue = "-" + key + "-";
            var pos = extension.indexOf(searchValue);
            if (pos !== -1) {
                var start = pos + 4;
                var end = start;
                var k = start;
                var done = false;
                while (!done) {
                    var e = extension.indexOf("-", k);
                    var len = void 0;
                    if (e === -1) {
                        len = size - k;
                    }
                    else {
                        len = e - k;
                    }
                    if (len === 2) {
                        done = true;
                    }
                    else if (e === -1) {
                        end = size;
                        done = true;
                    }
                    else {
                        end = e;
                        k = e + 1;
                    }
                }
                return extension.slice(start, end);
            }
            searchValue = "-" + key;
            pos = extension.indexOf(searchValue);
            if (pos !== -1 && pos + 3 === size) {
                return "";
            }
            return void 0;
        }
        function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {
            var matcher = options.localeMatcher;
            var r;
            if (matcher === "lookup") {
                r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale);
            }
            else {
                r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale);
            }
            var foundLocale = r.locale;
            var result = { locale: "", dataLocale: foundLocale };
            var supportedExtension = "-u";
            for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {
                var key = relevantExtensionKeys_1[_i];
                invariant(foundLocale in localeData, "Missing locale data for " + foundLocale);
                var foundLocaleData = localeData[foundLocale];
                invariant(typeof foundLocaleData === "object" && foundLocaleData !== null, "locale data " + key + " must be an object");
                var keyLocaleData = foundLocaleData[key];
                invariant(Array.isArray(keyLocaleData), "keyLocaleData for " + key + " must be an array");
                var value = keyLocaleData[0];
                invariant(typeof value === "string" || value === null, "value must be string or null but got " + typeof value + " in key " + key);
                var supportedExtensionAddition = "";
                if (r.extension) {
                    var requestedValue = UnicodeExtensionValue(r.extension, key);
                    if (requestedValue !== void 0) {
                        if (requestedValue !== "") {
                            if (~keyLocaleData.indexOf(requestedValue)) {
                                value = requestedValue;
                                supportedExtensionAddition = "-" + key + "-" + value;
                            }
                        }
                        else if (~requestedValue.indexOf("true")) {
                            value = "true";
                            supportedExtensionAddition = "-" + key;
                        }
                    }
                }
                if (key in options) {
                    var optionsValue = options[key];
                    invariant(typeof optionsValue === "string" || typeof optionsValue === "undefined" || optionsValue === null, "optionsValue must be String, Undefined or Null");
                    if (~keyLocaleData.indexOf(optionsValue)) {
                        if (optionsValue !== value) {
                            value = optionsValue;
                            supportedExtensionAddition = "";
                        }
                    }
                }
                result[key] = value;
                supportedExtension += supportedExtensionAddition;
            }
            if (supportedExtension.length > 2) {
                var privateIndex = foundLocale.indexOf("-x-");
                if (privateIndex === -1) {
                    foundLocale = foundLocale + supportedExtension;
                }
                else {
                    var preExtension = foundLocale.slice(0, privateIndex);
                    var postExtension = foundLocale.slice(privateIndex, foundLocale.length);
                    foundLocale = preExtension + supportedExtension + postExtension;
                }
                foundLocale = Intl.getCanonicalLocales(foundLocale)[0];
            }
            result.locale = foundLocale;
            return result;
        }
        function GetOptionsObject(options) {
            if (typeof options === "undefined") {
                return Object.create(null);
            }
            if (typeof options === "object") {
                return options;
            }
            throw new TypeError("Options must be an object");
        }
        var SANCTIONED_UNITS = [
            "angle-degree",
            "area-acre",
            "area-hectare",
            "concentr-percent",
            "digital-bit",
            "digital-byte",
            "digital-gigabit",
            "digital-gigabyte",
            "digital-kilobit",
            "digital-kilobyte",
            "digital-megabit",
            "digital-megabyte",
            "digital-petabyte",
            "digital-terabit",
            "digital-terabyte",
            "duration-day",
            "duration-hour",
            "duration-millisecond",
            "duration-minute",
            "duration-month",
            "duration-second",
            "duration-week",
            "duration-year",
            "length-centimeter",
            "length-foot",
            "length-inch",
            "length-kilometer",
            "length-meter",
            "length-mile-scandinavian",
            "length-mile",
            "length-millimeter",
            "length-yard",
            "mass-gram",
            "mass-kilogram",
            "mass-ounce",
            "mass-pound",
            "mass-stone",
            "temperature-celsius",
            "temperature-fahrenheit",
            "volume-fluid-ounce",
            "volume-gallon",
            "volume-liter",
            "volume-milliliter"
        ];
        function removeUnitNamespace(unit) {
            return unit.slice(unit.indexOf("-") + 1);
        }
        var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace);
        var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/;
        var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source);
        var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$");
        function LookupSupportedLocales(availableLocales, requestedLocales) {
            var subset = [];
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
                var locale = requestedLocales_1[_i];
                var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
                var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
                if (availableLocale) {
                    subset.push(availableLocale);
                }
            }
            return subset;
        }
        function SupportedLocales(availableLocales, requestedLocales, options) {
            var matcher = "best fit";
            if (options !== void 0) {
                options = ToObject(options);
                matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit");
            }
            if (matcher === "best fit") {
                return LookupSupportedLocales(availableLocales, requestedLocales);
            }
            return LookupSupportedLocales(availableLocales, requestedLocales);
        }
        var MissingLocaleDataError = function (_super) {
            __extends(MissingLocaleDataError2, _super);
            function MissingLocaleDataError2() {
                var _this = _super !== null && _super.apply(this, arguments) || this;
                _this.type = "MISSING_LOCALE_DATA";
                return _this;
            }
            return MissingLocaleDataError2;
        }(Error);
        function validateInstance(instance, method) {
            if (!(instance instanceof ListFormat)) {
                throw new TypeError("Method Intl.ListFormat.prototype." + method + " called on incompatible receiver " + String(instance));
            }
        }
        function stringListFromIterable(list) {
            if (list === void 0) {
                return [];
            }
            var result = [];
            for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
                var el = list_1[_i];
                if (typeof el !== "string") {
                    throw new TypeError("array list[" + list.indexOf(el) + "] is not type String");
                }
                result.push(el);
            }
            return result;
        }
        function createPartsFromList(internalSlotMap, lf, list) {
            var size = list.length;
            if (size === 0) {
                return [];
            }
            if (size === 2) {
                var pattern = getInternalSlot(internalSlotMap, lf, "templatePair");
                var first = { type: "element", value: list[0] };
                var second = { type: "element", value: list[1] };
                return deconstructPattern(pattern, { "0": first, "1": second });
            }
            var last = {
                type: "element",
                value: list[size - 1]
            };
            var parts = last;
            var i = size - 2;
            while (i >= 0) {
                var pattern = void 0;
                if (i === 0) {
                    pattern = getInternalSlot(internalSlotMap, lf, "templateStart");
                }
                else if (i < size - 2) {
                    pattern = getInternalSlot(internalSlotMap, lf, "templateMiddle");
                }
                else {
                    pattern = getInternalSlot(internalSlotMap, lf, "templateEnd");
                }
                var head = { type: "element", value: list[i] };
                parts = deconstructPattern(pattern, { "0": head, "1": parts });
                i--;
            }
            return parts;
        }
        function deconstructPattern(pattern, placeables) {
            var patternParts = PartitionPattern(pattern);
            var result = [];
            for (var _i = 0, patternParts_1 = patternParts; _i < patternParts_1.length; _i++) {
                var patternPart = patternParts_1[_i];
                var part = patternPart.type;
                if (isLiteralPart(patternPart)) {
                    result.push({
                        type: "literal",
                        value: patternPart.value
                    });
                }
                else {
                    invariant(part in placeables, part + " is missing from placables");
                    var subst = placeables[part];
                    if (Array.isArray(subst)) {
                        result.push.apply(result, subst);
                    }
                    else {
                        result.push(subst);
                    }
                }
            }
            return result;
        }
        var ListFormat = function () {
            function ListFormat2(locales, options) {
                var newTarget = this && this instanceof ListFormat2 ? this.constructor : void 0;
                if (!newTarget) {
                    throw new TypeError("Intl.ListFormat must be called with 'new'");
                }
                setInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "initializedListFormat", true);
                var requestedLocales = CanonicalizeLocaleList(locales);
                var opt = Object.create(null);
                var opts = GetOptionsObject(options);
                var matcher = GetOption(opts, "localeMatcher", "string", ["best fit", "lookup"], "best fit");
                opt.localeMatcher = matcher;
                var localeData = ListFormat2.localeData;
                var r = ResolveLocale(ListFormat2.availableLocales, requestedLocales, opt, ListFormat2.relevantExtensionKeys, localeData, ListFormat2.getDefaultLocale);
                setInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "locale", r.locale);
                var type = GetOption(opts, "type", "string", ["conjunction", "disjunction", "unit"], "conjunction");
                setInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "type", type);
                var style = GetOption(opts, "style", "string", ["long", "short", "narrow"], "long");
                setInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "style", style);
                var dataLocale = r.dataLocale;
                var dataLocaleData = localeData[dataLocale];
                invariant(!!dataLocaleData, "Missing locale data for " + dataLocale);
                var dataLocaleTypes = dataLocaleData[type];
                var templates = dataLocaleTypes[style];
                setInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "templatePair", templates.pair);
                setInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "templateStart", templates.start);
                setInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "templateMiddle", templates.middle);
                setInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "templateEnd", templates.end);
            }
            ListFormat2.prototype.format = function (elements) {
                validateInstance(this, "format");
                var result = "";
                var parts = createPartsFromList(ListFormat2.__INTERNAL_SLOT_MAP__, this, stringListFromIterable(elements));
                if (!Array.isArray(parts)) {
                    return parts.value;
                }
                for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
                    var p = parts_1[_i];
                    result += p.value;
                }
                return result;
            };
            ListFormat2.prototype.formatToParts = function (elements) {
                validateInstance(this, "format");
                var parts = createPartsFromList(ListFormat2.__INTERNAL_SLOT_MAP__, this, stringListFromIterable(elements));
                if (!Array.isArray(parts)) {
                    return [parts];
                }
                var result = [];
                for (var _i = 0, parts_2 = parts; _i < parts_2.length; _i++) {
                    var part = parts_2[_i];
                    result.push(__assign({}, part));
                }
                return result;
            };
            ListFormat2.prototype.resolvedOptions = function () {
                validateInstance(this, "resolvedOptions");
                return {
                    locale: getInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "locale"),
                    type: getInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "type"),
                    style: getInternalSlot(ListFormat2.__INTERNAL_SLOT_MAP__, this, "style")
                };
            };
            ListFormat2.supportedLocalesOf = function (locales, options) {
                return SupportedLocales(ListFormat2.availableLocales, CanonicalizeLocaleList(locales), options);
            };
            ListFormat2.__addLocaleData = function () {
                var data = [];
                for (var _i = 0; _i < arguments.length; _i++) {
                    data[_i] = arguments[_i];
                }
                for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {
                    var _b = data_1[_a], d = _b.data, locale = _b.locale;
                    var minimizedLocale = new Intl.Locale(locale).minimize().toString();
                    ListFormat2.localeData[locale] = ListFormat2.localeData[minimizedLocale] = d;
                    ListFormat2.availableLocales.add(minimizedLocale);
                    ListFormat2.availableLocales.add(locale);
                    if (!ListFormat2.__defaultLocale) {
                        ListFormat2.__defaultLocale = minimizedLocale;
                    }
                }
            };
            ListFormat2.getDefaultLocale = function () {
                return ListFormat2.__defaultLocale;
            };
            ListFormat2.localeData = {};
            ListFormat2.availableLocales = new Set();
            ListFormat2.__defaultLocale = "";
            ListFormat2.relevantExtensionKeys = [];
            ListFormat2.polyfilled = true;
            ListFormat2.__INTERNAL_SLOT_MAP__ = new WeakMap();
            return ListFormat2;
        }();
        var lib_default = ListFormat;
        try {
            if (typeof Symbol !== "undefined") {
                Object.defineProperty(ListFormat.prototype, Symbol.toStringTag, {
                    value: "Intl.ListFormat",
                    writable: false,
                    enumerable: false,
                    configurable: true
                });
            }
            Object.defineProperty(ListFormat.prototype.constructor, "length", {
                value: 0,
                writable: false,
                enumerable: false,
                configurable: true
            });
            Object.defineProperty(ListFormat.supportedLocalesOf, "length", {
                value: 1,
                writable: false,
                enumerable: false,
                configurable: true
            });
        }
        catch (e) {
        }
        function shouldPolyfill() {
            return typeof Intl === "undefined" || !("ListFormat" in Intl);
        }
        if (shouldPolyfill()) {
            Object.defineProperty(Intl, "ListFormat", {
                value: lib_default,
                writable: true,
                enumerable: false,
                configurable: true
            });
        }
    })();
    (function () {
        var __defProp = Object.defineProperty;
        var __export = function (target, all) {
            for (var name in all)
                __defProp(target, name, { get: all[name], enumerable: true });
        };
        var extendStatics = function (d, b) {
            extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d2, b2) {
                d2.__proto__ = b2;
            } || function (d2, b2) {
                for (var p in b2)
                    if (Object.prototype.hasOwnProperty.call(b2, p))
                        d2[p] = b2[p];
            };
            return extendStatics(d, b);
        };
        function __extends(d, b) {
            if (typeof b !== "function" && b !== null)
                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
            extendStatics(d, b);
            function __() {
                this.constructor = d;
            }
            d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
        }
        function getMagnitude(x) {
            return Math.floor(Math.log(x) * Math.LOG10E);
        }
        function repeat(s, times) {
            if (typeof s.repeat === "function") {
                return s.repeat(times);
            }
            var arr = new Array(times);
            for (var i = 0; i < arr.length; i++) {
                arr[i] = s;
            }
            return arr.join("");
        }
        function defineProperty(target, name, _a) {
            var value = _a.value;
            Object.defineProperty(target, name, {
                configurable: true,
                enumerable: false,
                writable: true,
                value: value
            });
        }
        var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;
        function invariant(condition, message, Err) {
            if (Err === void 0) {
                Err = Error;
            }
            if (!condition) {
                throw new Err(message);
            }
        }
        var RangePatternType;
        (function (RangePatternType2) {
            RangePatternType2["startRange"] = "startRange";
            RangePatternType2["shared"] = "shared";
            RangePatternType2["endRange"] = "endRange";
        })(RangePatternType || (RangePatternType = {}));
        function CanonicalizeLocaleList(locales) {
            return Intl.getCanonicalLocales(locales);
        }
        function ToString(o) {
            if (typeof o === "symbol") {
                throw TypeError("Cannot convert a Symbol value to a string");
            }
            return String(o);
        }
        function ToNumber(val) {
            if (val === void 0) {
                return NaN;
            }
            if (val === null) {
                return 0;
            }
            if (typeof val === "boolean") {
                return val ? 1 : 0;
            }
            if (typeof val === "number") {
                return val;
            }
            if (typeof val === "symbol" || typeof val === "bigint") {
                throw new TypeError("Cannot convert symbol/bigint to number");
            }
            return Number(val);
        }
        function ToObject(arg) {
            if (arg == null) {
                throw new TypeError("undefined/null cannot be converted to object");
            }
            return Object(arg);
        }
        function SameValue(x, y) {
            if (Object.is) {
                return Object.is(x, y);
            }
            if (x === y) {
                return x !== 0 || 1 / x === 1 / y;
            }
            return x !== x && y !== y;
        }
        function ArrayCreate(len) {
            return new Array(len);
        }
        function HasOwnProperty(o, prop) {
            return Object.prototype.hasOwnProperty.call(o, prop);
        }
        var MINUTES_PER_HOUR = 60;
        var SECONDS_PER_MINUTE = 60;
        var MS_PER_SECOND = 1e3;
        var MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;
        var MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;
        function IsCallable(fn) {
            return typeof fn === "function";
        }
        function OrdinaryHasInstance(C, O, internalSlots) {
            if (!IsCallable(C)) {
                return false;
            }
            if (internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction) {
                var BC = internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction;
                return O instanceof BC;
            }
            if (typeof O !== "object") {
                return false;
            }
            var P = C.prototype;
            if (typeof P !== "object") {
                throw new TypeError("OrdinaryHasInstance called on an object with an invalid prototype property.");
            }
            return Object.prototype.isPrototypeOf.call(P, O);
        }
        function CoerceOptionsToObject(options) {
            if (typeof options === "undefined") {
                return Object.create(null);
            }
            return ToObject(options);
        }
        function GetOption(opts, prop, type, values, fallback) {
            if (typeof opts !== "object") {
                throw new TypeError("Options must be an object");
            }
            var value = opts[prop];
            if (value !== void 0) {
                if (type !== "boolean" && type !== "string") {
                    throw new TypeError("invalid type");
                }
                if (type === "boolean") {
                    value = Boolean(value);
                }
                if (type === "string") {
                    value = ToString(value);
                }
                if (values !== void 0 && !values.filter(function (val) {
                    return val == value;
                }).length) {
                    throw new RangeError(value + " is not within " + values.join(", "));
                }
                return value;
            }
            return fallback;
        }
        function BestAvailableLocale(availableLocales, locale) {
            var candidate = locale;
            while (true) {
                if (availableLocales.has(candidate)) {
                    return candidate;
                }
                var pos = candidate.lastIndexOf("-");
                if (!~pos) {
                    return void 0;
                }
                if (pos >= 2 && candidate[pos - 2] === "-") {
                    pos -= 2;
                }
                candidate = candidate.slice(0, pos);
            }
        }
        function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {
            var result = { locale: "" };
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
                var locale = requestedLocales_1[_i];
                var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
                var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
                if (availableLocale) {
                    result.locale = availableLocale;
                    if (locale !== noExtensionLocale) {
                        result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);
                    }
                    return result;
                }
            }
            result.locale = getDefaultLocale();
            return result;
        }
        function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {
            var minimizedAvailableLocaleMap = {};
            var minimizedAvailableLocales = new Set();
            availableLocales.forEach(function (locale2) {
                var minimizedLocale = new Intl.Locale(locale2).minimize().toString();
                minimizedAvailableLocaleMap[minimizedLocale] = locale2;
                minimizedAvailableLocales.add(minimizedLocale);
            });
            var foundLocale;
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
                var l = requestedLocales_1[_i];
                if (foundLocale) {
                    break;
                }
                var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
                if (availableLocales.has(noExtensionLocale)) {
                    foundLocale = noExtensionLocale;
                    break;
                }
                if (minimizedAvailableLocales.has(noExtensionLocale)) {
                    foundLocale = minimizedAvailableLocaleMap[noExtensionLocale];
                    break;
                }
                var locale = new Intl.Locale(noExtensionLocale);
                var maximizedRequestedLocale = locale.maximize().toString();
                var minimizedRequestedLocale = locale.minimize().toString();
                if (minimizedAvailableLocales.has(minimizedRequestedLocale)) {
                    foundLocale = minimizedAvailableLocaleMap[minimizedRequestedLocale];
                    break;
                }
                foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale);
            }
            return {
                locale: foundLocale || getDefaultLocale()
            };
        }
        function UnicodeExtensionValue(extension, key) {
            invariant(key.length === 2, "key must have 2 elements");
            var size = extension.length;
            var searchValue = "-" + key + "-";
            var pos = extension.indexOf(searchValue);
            if (pos !== -1) {
                var start = pos + 4;
                var end = start;
                var k = start;
                var done = false;
                while (!done) {
                    var e = extension.indexOf("-", k);
                    var len = void 0;
                    if (e === -1) {
                        len = size - k;
                    }
                    else {
                        len = e - k;
                    }
                    if (len === 2) {
                        done = true;
                    }
                    else if (e === -1) {
                        end = size;
                        done = true;
                    }
                    else {
                        end = e;
                        k = e + 1;
                    }
                }
                return extension.slice(start, end);
            }
            searchValue = "-" + key;
            pos = extension.indexOf(searchValue);
            if (pos !== -1 && pos + 3 === size) {
                return "";
            }
            return void 0;
        }
        function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {
            var matcher = options.localeMatcher;
            var r;
            if (matcher === "lookup") {
                r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale);
            }
            else {
                r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale);
            }
            var foundLocale = r.locale;
            var result = { locale: "", dataLocale: foundLocale };
            var supportedExtension = "-u";
            for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {
                var key = relevantExtensionKeys_1[_i];
                invariant(foundLocale in localeData, "Missing locale data for " + foundLocale);
                var foundLocaleData = localeData[foundLocale];
                invariant(typeof foundLocaleData === "object" && foundLocaleData !== null, "locale data " + key + " must be an object");
                var keyLocaleData = foundLocaleData[key];
                invariant(Array.isArray(keyLocaleData), "keyLocaleData for " + key + " must be an array");
                var value = keyLocaleData[0];
                invariant(typeof value === "string" || value === null, "value must be string or null but got " + typeof value + " in key " + key);
                var supportedExtensionAddition = "";
                if (r.extension) {
                    var requestedValue = UnicodeExtensionValue(r.extension, key);
                    if (requestedValue !== void 0) {
                        if (requestedValue !== "") {
                            if (~keyLocaleData.indexOf(requestedValue)) {
                                value = requestedValue;
                                supportedExtensionAddition = "-" + key + "-" + value;
                            }
                        }
                        else if (~requestedValue.indexOf("true")) {
                            value = "true";
                            supportedExtensionAddition = "-" + key;
                        }
                    }
                }
                if (key in options) {
                    var optionsValue = options[key];
                    invariant(typeof optionsValue === "string" || typeof optionsValue === "undefined" || optionsValue === null, "optionsValue must be String, Undefined or Null");
                    if (~keyLocaleData.indexOf(optionsValue)) {
                        if (optionsValue !== value) {
                            value = optionsValue;
                            supportedExtensionAddition = "";
                        }
                    }
                }
                result[key] = value;
                supportedExtension += supportedExtensionAddition;
            }
            if (supportedExtension.length > 2) {
                var privateIndex = foundLocale.indexOf("-x-");
                if (privateIndex === -1) {
                    foundLocale = foundLocale + supportedExtension;
                }
                else {
                    var preExtension = foundLocale.slice(0, privateIndex);
                    var postExtension = foundLocale.slice(privateIndex, foundLocale.length);
                    foundLocale = preExtension + supportedExtension + postExtension;
                }
                foundLocale = Intl.getCanonicalLocales(foundLocale)[0];
            }
            result.locale = foundLocale;
            return result;
        }
        function DefaultNumberOption(val, min, max, fallback) {
            if (val !== void 0) {
                val = Number(val);
                if (isNaN(val) || val < min || val > max) {
                    throw new RangeError(val + " is outside of range [" + min + ", " + max + "]");
                }
                return Math.floor(val);
            }
            return fallback;
        }
        function GetNumberOption(options, property, minimum, maximum, fallback) {
            var val = options[property];
            return DefaultNumberOption(val, minimum, maximum, fallback);
        }
        function toUpperCase(str) {
            return str.replace(/([a-z])/g, function (_, c) {
                return c.toUpperCase();
            });
        }
        var NOT_A_Z_REGEX = /[^A-Z]/;
        function IsWellFormedCurrencyCode(currency) {
            currency = toUpperCase(currency);
            if (currency.length !== 3) {
                return false;
            }
            if (NOT_A_Z_REGEX.test(currency)) {
                return false;
            }
            return true;
        }
        var SANCTIONED_UNITS = [
            "angle-degree",
            "area-acre",
            "area-hectare",
            "concentr-percent",
            "digital-bit",
            "digital-byte",
            "digital-gigabit",
            "digital-gigabyte",
            "digital-kilobit",
            "digital-kilobyte",
            "digital-megabit",
            "digital-megabyte",
            "digital-petabyte",
            "digital-terabit",
            "digital-terabyte",
            "duration-day",
            "duration-hour",
            "duration-millisecond",
            "duration-minute",
            "duration-month",
            "duration-second",
            "duration-week",
            "duration-year",
            "length-centimeter",
            "length-foot",
            "length-inch",
            "length-kilometer",
            "length-meter",
            "length-mile-scandinavian",
            "length-mile",
            "length-millimeter",
            "length-yard",
            "mass-gram",
            "mass-kilogram",
            "mass-ounce",
            "mass-pound",
            "mass-stone",
            "temperature-celsius",
            "temperature-fahrenheit",
            "volume-fluid-ounce",
            "volume-gallon",
            "volume-liter",
            "volume-milliliter"
        ];
        function removeUnitNamespace(unit) {
            return unit.slice(unit.indexOf("-") + 1);
        }
        var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace);
        function IsSanctionedSimpleUnitIdentifier(unitIdentifier) {
            return SIMPLE_UNITS.indexOf(unitIdentifier) > -1;
        }
        function toLowerCase(str) {
            return str.replace(/([A-Z])/g, function (_, c) {
                return c.toLowerCase();
            });
        }
        function IsWellFormedUnitIdentifier(unit) {
            unit = toLowerCase(unit);
            if (IsSanctionedSimpleUnitIdentifier(unit)) {
                return true;
            }
            var units = unit.split("-per-");
            if (units.length !== 2) {
                return false;
            }
            var numerator = units[0], denominator = units[1];
            if (!IsSanctionedSimpleUnitIdentifier(numerator) || !IsSanctionedSimpleUnitIdentifier(denominator)) {
                return false;
            }
            return true;
        }
        function ComputeExponentForMagnitude(numberFormat, magnitude, _a) {
            var getInternalSlots2 = _a.getInternalSlots;
            var internalSlots = getInternalSlots2(numberFormat);
            var notation = internalSlots.notation, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem;
            switch (notation) {
                case "standard":
                    return 0;
                case "scientific":
                    return magnitude;
                case "engineering":
                    return Math.floor(magnitude / 3) * 3;
                default: {
                    var compactDisplay = internalSlots.compactDisplay, style = internalSlots.style, currencyDisplay = internalSlots.currencyDisplay;
                    var thresholdMap = void 0;
                    if (style === "currency" && currencyDisplay !== "name") {
                        var currency = dataLocaleData.numbers.currency[numberingSystem] || dataLocaleData.numbers.currency[dataLocaleData.numbers.nu[0]];
                        thresholdMap = currency.short;
                    }
                    else {
                        var decimal = dataLocaleData.numbers.decimal[numberingSystem] || dataLocaleData.numbers.decimal[dataLocaleData.numbers.nu[0]];
                        thresholdMap = compactDisplay === "long" ? decimal.long : decimal.short;
                    }
                    if (!thresholdMap) {
                        return 0;
                    }
                    var num = String(Math.pow(10, magnitude));
                    var thresholds = Object.keys(thresholdMap);
                    if (num < thresholds[0]) {
                        return 0;
                    }
                    if (num > thresholds[thresholds.length - 1]) {
                        return thresholds[thresholds.length - 1].length - 1;
                    }
                    var i = thresholds.indexOf(num);
                    if (i === -1) {
                        return 0;
                    }
                    var magnitudeKey = thresholds[i];
                    var compactPattern = thresholdMap[magnitudeKey].other;
                    if (compactPattern === "0") {
                        return 0;
                    }
                    return magnitudeKey.length - thresholdMap[magnitudeKey].other.match(/0+/)[0].length;
                }
            }
        }
        function ToRawPrecision(x, minPrecision, maxPrecision) {
            var p = maxPrecision;
            var m;
            var e;
            var xFinal;
            if (x === 0) {
                m = repeat("0", p);
                e = 0;
                xFinal = 0;
            }
            else {
                var xToString = x.toString();
                var xToStringExponentIndex = xToString.indexOf("e");
                var _a = xToString.split("e"), xToStringMantissa = _a[0], xToStringExponent = _a[1];
                var xToStringMantissaWithoutDecimalPoint = xToStringMantissa.replace(".", "");
                if (xToStringExponentIndex >= 0 && xToStringMantissaWithoutDecimalPoint.length <= p) {
                    e = +xToStringExponent;
                    m = xToStringMantissaWithoutDecimalPoint + repeat("0", p - xToStringMantissaWithoutDecimalPoint.length);
                    xFinal = x;
                }
                else {
                    e = getMagnitude(x);
                    var decimalPlaceOffset = e - p + 1;
                    var n = Math.round(adjustDecimalPlace(x, decimalPlaceOffset));
                    if (adjustDecimalPlace(n, p - 1) >= 10) {
                        e = e + 1;
                        n = Math.floor(n / 10);
                    }
                    m = n.toString();
                    xFinal = adjustDecimalPlace(n, p - 1 - e);
                }
            }
            var int;
            if (e >= p - 1) {
                m = m + repeat("0", e - p + 1);
                int = e + 1;
            }
            else if (e >= 0) {
                m = m.slice(0, e + 1) + "." + m.slice(e + 1);
                int = e + 1;
            }
            else {
                m = "0." + repeat("0", -e - 1) + m;
                int = 1;
            }
            if (m.indexOf(".") >= 0 && maxPrecision > minPrecision) {
                var cut = maxPrecision - minPrecision;
                while (cut > 0 && m[m.length - 1] === "0") {
                    m = m.slice(0, -1);
                    cut--;
                }
                if (m[m.length - 1] === ".") {
                    m = m.slice(0, -1);
                }
            }
            return { formattedString: m, roundedNumber: xFinal, integerDigitsCount: int };
            function adjustDecimalPlace(x2, magnitude) {
                return magnitude < 0 ? x2 * Math.pow(10, -magnitude) : x2 / Math.pow(10, magnitude);
            }
        }
        function ToRawFixed(x, minFraction, maxFraction) {
            var f = maxFraction;
            var n = Math.round(x * Math.pow(10, f));
            var xFinal = n / Math.pow(10, f);
            var m;
            if (n < 1e21) {
                m = n.toString();
            }
            else {
                m = n.toString();
                var _a = m.split("e"), mantissa = _a[0], exponent = _a[1];
                m = mantissa.replace(".", "");
                m = m + repeat("0", Math.max(+exponent - m.length + 1, 0));
            }
            var int;
            if (f !== 0) {
                var k = m.length;
                if (k <= f) {
                    var z = repeat("0", f + 1 - k);
                    m = z + m;
                    k = f + 1;
                }
                var a = m.slice(0, k - f);
                var b = m.slice(k - f);
                m = a + "." + b;
                int = a.length;
            }
            else {
                int = m.length;
            }
            var cut = maxFraction - minFraction;
            while (cut > 0 && m[m.length - 1] === "0") {
                m = m.slice(0, -1);
                cut--;
            }
            if (m[m.length - 1] === ".") {
                m = m.slice(0, -1);
            }
            return { formattedString: m, roundedNumber: xFinal, integerDigitsCount: int };
        }
        function FormatNumericToString(intlObject, x) {
            var isNegative = x < 0 || SameValue(x, -0);
            if (isNegative) {
                x = -x;
            }
            var result;
            var rourndingType = intlObject.roundingType;
            switch (rourndingType) {
                case "significantDigits":
                    result = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits);
                    break;
                case "fractionDigits":
                    result = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits);
                    break;
                default:
                    result = ToRawPrecision(x, 1, 2);
                    if (result.integerDigitsCount > 1) {
                        result = ToRawFixed(x, 0, 0);
                    }
                    break;
            }
            x = result.roundedNumber;
            var string = result.formattedString;
            var int = result.integerDigitsCount;
            var minInteger = intlObject.minimumIntegerDigits;
            if (int < minInteger) {
                var forwardZeros = repeat("0", minInteger - int);
                string = forwardZeros + string;
            }
            if (isNegative) {
                x = -x;
            }
            return { roundedNumber: x, formattedString: string };
        }
        function ComputeExponent(numberFormat, x, _a) {
            var getInternalSlots2 = _a.getInternalSlots;
            if (x === 0) {
                return [0, 0];
            }
            if (x < 0) {
                x = -x;
            }
            var magnitude = getMagnitude(x);
            var exponent = ComputeExponentForMagnitude(numberFormat, magnitude, {
                getInternalSlots: getInternalSlots2
            });
            x = exponent < 0 ? x * Math.pow(10, -exponent) : x / Math.pow(10, exponent);
            var formatNumberResult = FormatNumericToString(getInternalSlots2(numberFormat), x);
            if (formatNumberResult.roundedNumber === 0) {
                return [exponent, magnitude];
            }
            var newMagnitude = getMagnitude(formatNumberResult.roundedNumber);
            if (newMagnitude === magnitude - exponent) {
                return [exponent, magnitude];
            }
            return [
                ComputeExponentForMagnitude(numberFormat, magnitude + 1, {
                    getInternalSlots: getInternalSlots2
                }),
                magnitude + 1
            ];
        }
        function CurrencyDigits(c, _a) {
            var currencyDigitsData = _a.currencyDigitsData;
            return HasOwnProperty(currencyDigitsData, c) ? currencyDigitsData[c] : 2;
        }
        var digit_mapping_exports = {};
        __export(digit_mapping_exports, {
            adlm: function () {
                return adlm;
            },
            ahom: function () {
                return ahom;
            },
            arab: function () {
                return arab;
            },
            arabext: function () {
                return arabext;
            },
            bali: function () {
                return bali;
            },
            beng: function () {
                return beng;
            },
            bhks: function () {
                return bhks;
            },
            brah: function () {
                return brah;
            },
            cakm: function () {
                return cakm;
            },
            cham: function () {
                return cham;
            },
            "default": function () {
                return digit_mapping_default;
            },
            deva: function () {
                return deva;
            },
            diak: function () {
                return diak;
            },
            fullwide: function () {
                return fullwide;
            },
            gong: function () {
                return gong;
            },
            gonm: function () {
                return gonm;
            },
            gujr: function () {
                return gujr;
            },
            guru: function () {
                return guru;
            },
            hanidec: function () {
                return hanidec;
            },
            hmng: function () {
                return hmng;
            },
            hmnp: function () {
                return hmnp;
            },
            java: function () {
                return java;
            },
            kali: function () {
                return kali;
            },
            khmr: function () {
                return khmr;
            },
            knda: function () {
                return knda;
            },
            lana: function () {
                return lana;
            },
            lanatham: function () {
                return lanatham;
            },
            laoo: function () {
                return laoo;
            },
            lepc: function () {
                return lepc;
            },
            limb: function () {
                return limb;
            },
            mathbold: function () {
                return mathbold;
            },
            mathdbl: function () {
                return mathdbl;
            },
            mathmono: function () {
                return mathmono;
            },
            mathsanb: function () {
                return mathsanb;
            },
            mathsans: function () {
                return mathsans;
            },
            mlym: function () {
                return mlym;
            },
            modi: function () {
                return modi;
            },
            mong: function () {
                return mong;
            },
            mroo: function () {
                return mroo;
            },
            mtei: function () {
                return mtei;
            },
            mymr: function () {
                return mymr;
            },
            mymrshan: function () {
                return mymrshan;
            },
            mymrtlng: function () {
                return mymrtlng;
            },
            newa: function () {
                return newa;
            },
            nkoo: function () {
                return nkoo;
            },
            olck: function () {
                return olck;
            },
            orya: function () {
                return orya;
            },
            osma: function () {
                return osma;
            },
            rohg: function () {
                return rohg;
            },
            saur: function () {
                return saur;
            },
            segment: function () {
                return segment;
            },
            shrd: function () {
                return shrd;
            },
            sind: function () {
                return sind;
            },
            sinh: function () {
                return sinh;
            },
            sora: function () {
                return sora;
            },
            sund: function () {
                return sund;
            },
            takr: function () {
                return takr;
            },
            talu: function () {
                return talu;
            },
            tamldec: function () {
                return tamldec;
            },
            telu: function () {
                return telu;
            },
            thai: function () {
                return thai;
            },
            tibt: function () {
                return tibt;
            },
            tirh: function () {
                return tirh;
            },
            vaii: function () {
                return vaii;
            },
            wara: function () {
                return wara;
            },
            wcho: function () {
                return wcho;
            }
        });
        var adlm = ["\uD83A\uDD50", "\uD83A\uDD51", "\uD83A\uDD52", "\uD83A\uDD53", "\uD83A\uDD54", "\uD83A\uDD55", "\uD83A\uDD56", "\uD83A\uDD57", "\uD83A\uDD58", "\uD83A\uDD59"];
        var ahom = ["\uD805\uDF30", "\uD805\uDF31", "\uD805\uDF32", "\uD805\uDF33", "\uD805\uDF34", "\uD805\uDF35", "\uD805\uDF36", "\uD805\uDF37", "\uD805\uDF38", "\uD805\uDF39"];
        var arab = ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"];
        var arabext = ["\u06F0", "\u06F1", "\u06F2", "\u06F3", "\u06F4", "\u06F5", "\u06F6", "\u06F7", "\u06F8", "\u06F9"];
        var bali = ["\u1B50", "\u1B51", "\u1B52", "\u1B53", "\u1B54", "\u1B55", "\u1B56", "\u1B57", "\u1B58", "\u1B59"];
        var beng = ["\u09E6", "\u09E7", "\u09E8", "\u09E9", "\u09EA", "\u09EB", "\u09EC", "\u09ED", "\u09EE", "\u09EF"];
        var bhks = ["\uD807\uDC50", "\uD807\uDC51", "\uD807\uDC52", "\uD807\uDC53", "\uD807\uDC54", "\uD807\uDC55", "\uD807\uDC56", "\uD807\uDC57", "\uD807\uDC58", "\uD807\uDC59"];
        var brah = ["\uD804\uDC66", "\uD804\uDC67", "\uD804\uDC68", "\uD804\uDC69", "\uD804\uDC6A", "\uD804\uDC6B", "\uD804\uDC6C", "\uD804\uDC6D", "\uD804\uDC6E", "\uD804\uDC6F"];
        var cakm = ["\uD804\uDD36", "\uD804\uDD37", "\uD804\uDD38", "\uD804\uDD39", "\uD804\uDD3A", "\uD804\uDD3B", "\uD804\uDD3C", "\uD804\uDD3D", "\uD804\uDD3E", "\uD804\uDD3F"];
        var cham = ["\uAA50", "\uAA51", "\uAA52", "\uAA53", "\uAA54", "\uAA55", "\uAA56", "\uAA57", "\uAA58", "\uAA59"];
        var deva = ["\u0966", "\u0967", "\u0968", "\u0969", "\u096A", "\u096B", "\u096C", "\u096D", "\u096E", "\u096F"];
        var diak = ["\uD806\uDD50", "\uD806\uDD51", "\uD806\uDD52", "\uD806\uDD53", "\uD806\uDD54", "\uD806\uDD55", "\uD806\uDD56", "\uD806\uDD57", "\uD806\uDD58", "\uD806\uDD59"];
        var fullwide = ["\uFF10", "\uFF11", "\uFF12", "\uFF13", "\uFF14", "\uFF15", "\uFF16", "\uFF17", "\uFF18", "\uFF19"];
        var gong = ["\uD807\uDDA0", "\uD807\uDDA1", "\uD807\uDDA2", "\uD807\uDDA3", "\uD807\uDDA4", "\uD807\uDDA5", "\uD807\uDDA6", "\uD807\uDDA7", "\uD807\uDDA8", "\uD807\uDDA9"];
        var gonm = ["\uD807\uDD50", "\uD807\uDD51", "\uD807\uDD52", "\uD807\uDD53", "\uD807\uDD54", "\uD807\uDD55", "\uD807\uDD56", "\uD807\uDD57", "\uD807\uDD58", "\uD807\uDD59"];
        var gujr = ["\u0AE6", "\u0AE7", "\u0AE8", "\u0AE9", "\u0AEA", "\u0AEB", "\u0AEC", "\u0AED", "\u0AEE", "\u0AEF"];
        var guru = ["\u0A66", "\u0A67", "\u0A68", "\u0A69", "\u0A6A", "\u0A6B", "\u0A6C", "\u0A6D", "\u0A6E", "\u0A6F"];
        var hanidec = ["\u3007", "\u4E00", "\u4E8C", "\u4E09", "\u56DB", "\u4E94", "\u516D", "\u4E03", "\u516B", "\u4E5D"];
        var hmng = ["\uD81A\uDF50", "\uD81A\uDF51", "\uD81A\uDF52", "\uD81A\uDF53", "\uD81A\uDF54", "\uD81A\uDF55", "\uD81A\uDF56", "\uD81A\uDF57", "\uD81A\uDF58", "\uD81A\uDF59"];
        var hmnp = ["\uD838\uDD40", "\uD838\uDD41", "\uD838\uDD42", "\uD838\uDD43", "\uD838\uDD44", "\uD838\uDD45", "\uD838\uDD46", "\uD838\uDD47", "\uD838\uDD48", "\uD838\uDD49"];
        var java = ["\uA9D0", "\uA9D1", "\uA9D2", "\uA9D3", "\uA9D4", "\uA9D5", "\uA9D6", "\uA9D7", "\uA9D8", "\uA9D9"];
        var kali = ["\uA900", "\uA901", "\uA902", "\uA903", "\uA904", "\uA905", "\uA906", "\uA907", "\uA908", "\uA909"];
        var khmr = ["\u17E0", "\u17E1", "\u17E2", "\u17E3", "\u17E4", "\u17E5", "\u17E6", "\u17E7", "\u17E8", "\u17E9"];
        var knda = ["\u0CE6", "\u0CE7", "\u0CE8", "\u0CE9", "\u0CEA", "\u0CEB", "\u0CEC", "\u0CED", "\u0CEE", "\u0CEF"];
        var lana = ["\u1A80", "\u1A81", "\u1A82", "\u1A83", "\u1A84", "\u1A85", "\u1A86", "\u1A87", "\u1A88", "\u1A89"];
        var lanatham = ["\u1A90", "\u1A91", "\u1A92", "\u1A93", "\u1A94", "\u1A95", "\u1A96", "\u1A97", "\u1A98", "\u1A99"];
        var laoo = ["\u0ED0", "\u0ED1", "\u0ED2", "\u0ED3", "\u0ED4", "\u0ED5", "\u0ED6", "\u0ED7", "\u0ED8", "\u0ED9"];
        var lepc = ["\u1A90", "\u1A91", "\u1A92", "\u1A93", "\u1A94", "\u1A95", "\u1A96", "\u1A97", "\u1A98", "\u1A99"];
        var limb = ["\u1946", "\u1947", "\u1948", "\u1949", "\u194A", "\u194B", "\u194C", "\u194D", "\u194E", "\u194F"];
        var mathbold = ["\uD835\uDFCE", "\uD835\uDFCF", "\uD835\uDFD0", "\uD835\uDFD1", "\uD835\uDFD2", "\uD835\uDFD3", "\uD835\uDFD4", "\uD835\uDFD5", "\uD835\uDFD6", "\uD835\uDFD7"];
        var mathdbl = ["\uD835\uDFD8", "\uD835\uDFD9", "\uD835\uDFDA", "\uD835\uDFDB", "\uD835\uDFDC", "\uD835\uDFDD", "\uD835\uDFDE", "\uD835\uDFDF", "\uD835\uDFE0", "\uD835\uDFE1"];
        var mathmono = ["\uD835\uDFF6", "\uD835\uDFF7", "\uD835\uDFF8", "\uD835\uDFF9", "\uD835\uDFFA", "\uD835\uDFFB", "\uD835\uDFFC", "\uD835\uDFFD", "\uD835\uDFFE", "\uD835\uDFFF"];
        var mathsanb = ["\uD835\uDFEC", "\uD835\uDFED", "\uD835\uDFEE", "\uD835\uDFEF", "\uD835\uDFF0", "\uD835\uDFF1", "\uD835\uDFF2", "\uD835\uDFF3", "\uD835\uDFF4", "\uD835\uDFF5"];
        var mathsans = ["\uD835\uDFE2", "\uD835\uDFE3", "\uD835\uDFE4", "\uD835\uDFE5", "\uD835\uDFE6", "\uD835\uDFE7", "\uD835\uDFE8", "\uD835\uDFE9", "\uD835\uDFEA", "\uD835\uDFEB"];
        var mlym = ["\u0D66", "\u0D67", "\u0D68", "\u0D69", "\u0D6A", "\u0D6B", "\u0D6C", "\u0D6D", "\u0D6E", "\u0D6F"];
        var modi = ["\uD805\uDE50", "\uD805\uDE51", "\uD805\uDE52", "\uD805\uDE53", "\uD805\uDE54", "\uD805\uDE55", "\uD805\uDE56", "\uD805\uDE57", "\uD805\uDE58", "\uD805\uDE59"];
        var mong = ["\u1810", "\u1811", "\u1812", "\u1813", "\u1814", "\u1815", "\u1816", "\u1817", "\u1818", "\u1819"];
        var mroo = ["\uD81A\uDE60", "\uD81A\uDE61", "\uD81A\uDE62", "\uD81A\uDE63", "\uD81A\uDE64", "\uD81A\uDE65", "\uD81A\uDE66", "\uD81A\uDE67", "\uD81A\uDE68", "\uD81A\uDE69"];
        var mtei = ["\uABF0", "\uABF1", "\uABF2", "\uABF3", "\uABF4", "\uABF5", "\uABF6", "\uABF7", "\uABF8", "\uABF9"];
        var mymr = ["\u1040", "\u1041", "\u1042", "\u1043", "\u1044", "\u1045", "\u1046", "\u1047", "\u1048", "\u1049"];
        var mymrshan = ["\u1090", "\u1091", "\u1092", "\u1093", "\u1094", "\u1095", "\u1096", "\u1097", "\u1098", "\u1099"];
        var mymrtlng = ["\uA9F0", "\uA9F1", "\uA9F2", "\uA9F3", "\uA9F4", "\uA9F5", "\uA9F6", "\uA9F7", "\uA9F8", "\uA9F9"];
        var newa = ["\uD805\uDC50", "\uD805\uDC51", "\uD805\uDC52", "\uD805\uDC53", "\uD805\uDC54", "\uD805\uDC55", "\uD805\uDC56", "\uD805\uDC57", "\uD805\uDC58", "\uD805\uDC59"];
        var nkoo = ["\u07C0", "\u07C1", "\u07C2", "\u07C3", "\u07C4", "\u07C5", "\u07C6", "\u07C7", "\u07C8", "\u07C9"];
        var olck = ["\u1C50", "\u1C51", "\u1C52", "\u1C53", "\u1C54", "\u1C55", "\u1C56", "\u1C57", "\u1C58", "\u1C59"];
        var orya = ["\u0B66", "\u0B67", "\u0B68", "\u0B69", "\u0B6A", "\u0B6B", "\u0B6C", "\u0B6D", "\u0B6E", "\u0B6F"];
        var osma = ["\uD801\uDCA0", "\uD801\uDCA1", "\uD801\uDCA2", "\uD801\uDCA3", "\uD801\uDCA4", "\uD801\uDCA5", "\uD801\uDCA6", "\uD801\uDCA7", "\uD801\uDCA8", "\uD801\uDCA9"];
        var rohg = ["\uD803\uDD30", "\uD803\uDD31", "\uD803\uDD32", "\uD803\uDD33", "\uD803\uDD34", "\uD803\uDD35", "\uD803\uDD36", "\uD803\uDD37", "\uD803\uDD38", "\uD803\uDD39"];
        var saur = ["\uA8D0", "\uA8D1", "\uA8D2", "\uA8D3", "\uA8D4", "\uA8D5", "\uA8D6", "\uA8D7", "\uA8D8", "\uA8D9"];
        var segment = ["\uD83E\uDFF0", "\uD83E\uDFF1", "\uD83E\uDFF2", "\uD83E\uDFF3", "\uD83E\uDFF4", "\uD83E\uDFF5", "\uD83E\uDFF6", "\uD83E\uDFF7", "\uD83E\uDFF8", "\uD83E\uDFF9"];
        var shrd = ["\uD804\uDDD0", "\uD804\uDDD1", "\uD804\uDDD2", "\uD804\uDDD3", "\uD804\uDDD4", "\uD804\uDDD5", "\uD804\uDDD6", "\uD804\uDDD7", "\uD804\uDDD8", "\uD804\uDDD9"];
        var sind = ["\uD804\uDEF0", "\uD804\uDEF1", "\uD804\uDEF2", "\uD804\uDEF3", "\uD804\uDEF4", "\uD804\uDEF5", "\uD804\uDEF6", "\uD804\uDEF7", "\uD804\uDEF8", "\uD804\uDEF9"];
        var sinh = ["\u0DE6", "\u0DE7", "\u0DE8", "\u0DE9", "\u0DEA", "\u0DEB", "\u0DEC", "\u0DED", "\u0DEE", "\u0DEF"];
        var sora = ["\uD804\uDCF0", "\uD804\uDCF1", "\uD804\uDCF2", "\uD804\uDCF3", "\uD804\uDCF4", "\uD804\uDCF5", "\uD804\uDCF6", "\uD804\uDCF7", "\uD804\uDCF8", "\uD804\uDCF9"];
        var sund = ["\u1BB0", "\u1BB1", "\u1BB2", "\u1BB3", "\u1BB4", "\u1BB5", "\u1BB6", "\u1BB7", "\u1BB8", "\u1BB9"];
        var takr = ["\uD805\uDEC0", "\uD805\uDEC1", "\uD805\uDEC2", "\uD805\uDEC3", "\uD805\uDEC4", "\uD805\uDEC5", "\uD805\uDEC6", "\uD805\uDEC7", "\uD805\uDEC8", "\uD805\uDEC9"];
        var talu = ["\u19D0", "\u19D1", "\u19D2", "\u19D3", "\u19D4", "\u19D5", "\u19D6", "\u19D7", "\u19D8", "\u19D9"];
        var tamldec = ["\u0BE6", "\u0BE7", "\u0BE8", "\u0BE9", "\u0BEA", "\u0BEB", "\u0BEC", "\u0BED", "\u0BEE", "\u0BEF"];
        var telu = ["\u0C66", "\u0C67", "\u0C68", "\u0C69", "\u0C6A", "\u0C6B", "\u0C6C", "\u0C6D", "\u0C6E", "\u0C6F"];
        var thai = ["\u0E50", "\u0E51", "\u0E52", "\u0E53", "\u0E54", "\u0E55", "\u0E56", "\u0E57", "\u0E58", "\u0E59"];
        var tibt = ["\u0F20", "\u0F21", "\u0F22", "\u0F23", "\u0F24", "\u0F25", "\u0F26", "\u0F27", "\u0F28", "\u0F29"];
        var tirh = ["\uD805\uDCD0", "\uD805\uDCD1", "\uD805\uDCD2", "\uD805\uDCD3", "\uD805\uDCD4", "\uD805\uDCD5", "\uD805\uDCD6", "\uD805\uDCD7", "\uD805\uDCD8", "\uD805\uDCD9"];
        var vaii = ["\u1620", "\u1621", "\u1622", "\u1623", "\u1624", "\u1625", "\u1626", "\u1627", "\u1628", "\u1629"];
        var wara = ["\uD806\uDCE0", "\uD806\uDCE1", "\uD806\uDCE2", "\uD806\uDCE3", "\uD806\uDCE4", "\uD806\uDCE5", "\uD806\uDCE6", "\uD806\uDCE7", "\uD806\uDCE8", "\uD806\uDCE9"];
        var wcho = ["\uD838\uDEF0", "\uD838\uDEF1", "\uD838\uDEF2", "\uD838\uDEF3", "\uD838\uDEF4", "\uD838\uDEF5", "\uD838\uDEF6", "\uD838\uDEF7", "\uD838\uDEF8", "\uD838\uDEF9"];
        var digit_mapping_default = { adlm: adlm, ahom: ahom, arab: arab, arabext: arabext, bali: bali, beng: beng, bhks: bhks, brah: brah, cakm: cakm, cham: cham, deva: deva, diak: diak, fullwide: fullwide, gong: gong, gonm: gonm, gujr: gujr, guru: guru, hanidec: hanidec, hmng: hmng, hmnp: hmnp, java: java, kali: kali, khmr: khmr, knda: knda, lana: lana, lanatham: lanatham, laoo: laoo, lepc: lepc, limb: limb, mathbold: mathbold, mathdbl: mathdbl, mathmono: mathmono, mathsanb: mathsanb, mathsans: mathsans, mlym: mlym, modi: modi, mong: mong, mroo: mroo, mtei: mtei, mymr: mymr, mymrshan: mymrshan, mymrtlng: mymrtlng, newa: newa, nkoo: nkoo, olck: olck, orya: orya, osma: osma, rohg: rohg, saur: saur, segment: segment, shrd: shrd, sind: sind, sinh: sinh, sora: sora, sund: sund, takr: takr, talu: talu, tamldec: tamldec, telu: telu, thai: thai, tibt: tibt, tirh: tirh, vaii: vaii, wara: wara, wcho: wcho };
        var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/;
        var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source);
        var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$");
        var CLDR_NUMBER_PATTERN = /[#0](?:[\.,][#0]+)*/g;
        function formatToParts(numberResult, data, pl, options) {
            var sign = numberResult.sign, exponent = numberResult.exponent, magnitude = numberResult.magnitude;
            var notation = options.notation, style = options.style, numberingSystem = options.numberingSystem;
            var defaultNumberingSystem = data.numbers.nu[0];
            var compactNumberPattern = null;
            if (notation === "compact" && magnitude) {
                compactNumberPattern = getCompactDisplayPattern(numberResult, pl, data, style, options.compactDisplay, options.currencyDisplay, numberingSystem);
            }
            var nonNameCurrencyPart;
            if (style === "currency" && options.currencyDisplay !== "name") {
                var byCurrencyDisplay = data.currencies[options.currency];
                if (byCurrencyDisplay) {
                    switch (options.currencyDisplay) {
                        case "code":
                            nonNameCurrencyPart = options.currency;
                            break;
                        case "symbol":
                            nonNameCurrencyPart = byCurrencyDisplay.symbol;
                            break;
                        default:
                            nonNameCurrencyPart = byCurrencyDisplay.narrow;
                            break;
                    }
                }
                else {
                    nonNameCurrencyPart = options.currency;
                }
            }
            var numberPattern;
            if (!compactNumberPattern) {
                if (style === "decimal" || style === "unit" || style === "currency" && options.currencyDisplay === "name") {
                    var decimalData = data.numbers.decimal[numberingSystem] || data.numbers.decimal[defaultNumberingSystem];
                    numberPattern = getPatternForSign(decimalData.standard, sign);
                }
                else if (style === "currency") {
                    var currencyData = data.numbers.currency[numberingSystem] || data.numbers.currency[defaultNumberingSystem];
                    numberPattern = getPatternForSign(currencyData[options.currencySign], sign);
                }
                else {
                    var percentPattern = data.numbers.percent[numberingSystem] || data.numbers.percent[defaultNumberingSystem];
                    numberPattern = getPatternForSign(percentPattern, sign);
                }
            }
            else {
                numberPattern = compactNumberPattern;
            }
            var decimalNumberPattern = CLDR_NUMBER_PATTERN.exec(numberPattern)[0];
            numberPattern = numberPattern.replace(CLDR_NUMBER_PATTERN, "{0}").replace(/'(.)'/g, "$1");
            if (style === "currency" && options.currencyDisplay !== "name") {
                var currencyData = data.numbers.currency[numberingSystem] || data.numbers.currency[defaultNumberingSystem];
                var afterCurrency = currencyData.currencySpacing.afterInsertBetween;
                if (afterCurrency && !S_DOLLAR_UNICODE_REGEX.test(nonNameCurrencyPart)) {
                    numberPattern = numberPattern.replace("\xA4{0}", "\xA4" + afterCurrency + "{0}");
                }
                var beforeCurrency = currencyData.currencySpacing.beforeInsertBetween;
                if (beforeCurrency && !CARET_S_UNICODE_REGEX.test(nonNameCurrencyPart)) {
                    numberPattern = numberPattern.replace("{0}\xA4", "{0}" + beforeCurrency + "\xA4");
                }
            }
            var numberPatternParts = numberPattern.split(/({c:[^}]+}|\{0\}|[¤%\-\+])/g);
            var numberParts = [];
            var symbols = data.numbers.symbols[numberingSystem] || data.numbers.symbols[defaultNumberingSystem];
            for (var _i = 0, numberPatternParts_1 = numberPatternParts; _i < numberPatternParts_1.length; _i++) {
                var part = numberPatternParts_1[_i];
                if (!part) {
                    continue;
                }
                switch (part) {
                    case "{0}": {
                        numberParts.push.apply(numberParts, paritionNumberIntoParts(symbols, numberResult, notation, exponent, numberingSystem, !compactNumberPattern && options.useGrouping, decimalNumberPattern));
                        break;
                    }
                    case "-":
                        numberParts.push({ type: "minusSign", value: symbols.minusSign });
                        break;
                    case "+":
                        numberParts.push({ type: "plusSign", value: symbols.plusSign });
                        break;
                    case "%":
                        numberParts.push({ type: "percentSign", value: symbols.percentSign });
                        break;
                    case "\xA4":
                        numberParts.push({ type: "currency", value: nonNameCurrencyPart });
                        break;
                    default:
                        if (/^\{c:/.test(part)) {
                            numberParts.push({
                                type: "compact",
                                value: part.substring(3, part.length - 1)
                            });
                        }
                        else {
                            numberParts.push({ type: "literal", value: part });
                        }
                        break;
                }
            }
            switch (style) {
                case "currency": {
                    if (options.currencyDisplay === "name") {
                        var unitPattern = (data.numbers.currency[numberingSystem] || data.numbers.currency[defaultNumberingSystem]).unitPattern;
                        var unitName = void 0;
                        var currencyNameData = data.currencies[options.currency];
                        if (currencyNameData) {
                            unitName = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), currencyNameData.displayName);
                        }
                        else {
                            unitName = options.currency;
                        }
                        var unitPatternParts = unitPattern.split(/(\{[01]\})/g);
                        var result = [];
                        for (var _a = 0, unitPatternParts_1 = unitPatternParts; _a < unitPatternParts_1.length; _a++) {
                            var part = unitPatternParts_1[_a];
                            switch (part) {
                                case "{0}":
                                    result.push.apply(result, numberParts);
                                    break;
                                case "{1}":
                                    result.push({ type: "currency", value: unitName });
                                    break;
                                default:
                                    if (part) {
                                        result.push({ type: "literal", value: part });
                                    }
                                    break;
                            }
                        }
                        return result;
                    }
                    else {
                        return numberParts;
                    }
                }
                case "unit": {
                    var unit = options.unit, unitDisplay = options.unitDisplay;
                    var unitData = data.units.simple[unit];
                    var unitPattern = void 0;
                    if (unitData) {
                        unitPattern = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), data.units.simple[unit][unitDisplay]);
                    }
                    else {
                        var _b = unit.split("-per-"), numeratorUnit = _b[0], denominatorUnit = _b[1];
                        unitData = data.units.simple[numeratorUnit];
                        var numeratorUnitPattern = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), data.units.simple[numeratorUnit][unitDisplay]);
                        var perUnitPattern = data.units.simple[denominatorUnit].perUnit[unitDisplay];
                        if (perUnitPattern) {
                            unitPattern = perUnitPattern.replace("{0}", numeratorUnitPattern);
                        }
                        else {
                            var perPattern = data.units.compound.per[unitDisplay];
                            var denominatorPattern = selectPlural(pl, 1, data.units.simple[denominatorUnit][unitDisplay]);
                            unitPattern = unitPattern = perPattern.replace("{0}", numeratorUnitPattern).replace("{1}", denominatorPattern.replace("{0}", ""));
                        }
                    }
                    var result = [];
                    for (var _c = 0, _d = unitPattern.split(/(\s*\{0\}\s*)/); _c < _d.length; _c++) {
                        var part = _d[_c];
                        var interpolateMatch = /^(\s*)\{0\}(\s*)$/.exec(part);
                        if (interpolateMatch) {
                            if (interpolateMatch[1]) {
                                result.push({ type: "literal", value: interpolateMatch[1] });
                            }
                            result.push.apply(result, numberParts);
                            if (interpolateMatch[2]) {
                                result.push({ type: "literal", value: interpolateMatch[2] });
                            }
                        }
                        else if (part) {
                            result.push({ type: "unit", value: part });
                        }
                    }
                    return result;
                }
                default:
                    return numberParts;
            }
        }
        function paritionNumberIntoParts(symbols, numberResult, notation, exponent, numberingSystem, useGrouping, decimalNumberPattern) {
            var result = [];
            var n = numberResult.formattedString, x = numberResult.roundedNumber;
            if (isNaN(x)) {
                return [{ type: "nan", value: n }];
            }
            else if (!isFinite(x)) {
                return [{ type: "infinity", value: n }];
            }
            var digitReplacementTable = digit_mapping_exports[numberingSystem];
            if (digitReplacementTable) {
                n = n.replace(/\d/g, function (digit) {
                    return digitReplacementTable[+digit] || digit;
                });
            }
            var decimalSepIndex = n.indexOf(".");
            var integer;
            var fraction;
            if (decimalSepIndex > 0) {
                integer = n.slice(0, decimalSepIndex);
                fraction = n.slice(decimalSepIndex + 1);
            }
            else {
                integer = n;
            }
            if (useGrouping && (notation !== "compact" || x >= 1e4)) {
                var groupSepSymbol = symbols.group;
                var groups = [];
                var integerNumberPattern = decimalNumberPattern.split(".")[0];
                var patternGroups = integerNumberPattern.split(",");
                var primaryGroupingSize = 3;
                var secondaryGroupingSize = 3;
                if (patternGroups.length > 1) {
                    primaryGroupingSize = patternGroups[patternGroups.length - 1].length;
                }
                if (patternGroups.length > 2) {
                    secondaryGroupingSize = patternGroups[patternGroups.length - 2].length;
                }
                var i = integer.length - primaryGroupingSize;
                if (i > 0) {
                    groups.push(integer.slice(i, i + primaryGroupingSize));
                    for (i -= secondaryGroupingSize; i > 0; i -= secondaryGroupingSize) {
                        groups.push(integer.slice(i, i + secondaryGroupingSize));
                    }
                    groups.push(integer.slice(0, i + secondaryGroupingSize));
                }
                else {
                    groups.push(integer);
                }
                while (groups.length > 0) {
                    var integerGroup = groups.pop();
                    result.push({ type: "integer", value: integerGroup });
                    if (groups.length > 0) {
                        result.push({ type: "group", value: groupSepSymbol });
                    }
                }
            }
            else {
                result.push({ type: "integer", value: integer });
            }
            if (fraction !== void 0) {
                result.push({ type: "decimal", value: symbols.decimal }, { type: "fraction", value: fraction });
            }
            if ((notation === "scientific" || notation === "engineering") && isFinite(x)) {
                result.push({ type: "exponentSeparator", value: symbols.exponential });
                if (exponent < 0) {
                    result.push({ type: "exponentMinusSign", value: symbols.minusSign });
                    exponent = -exponent;
                }
                var exponentResult = ToRawFixed(exponent, 0, 0);
                result.push({
                    type: "exponentInteger",
                    value: exponentResult.formattedString
                });
            }
            return result;
        }
        function getPatternForSign(pattern, sign) {
            if (pattern.indexOf(";") < 0) {
                pattern = pattern + ";-" + pattern;
            }
            var _a = pattern.split(";"), zeroPattern = _a[0], negativePattern = _a[1];
            switch (sign) {
                case 0:
                    return zeroPattern;
                case -1:
                    return negativePattern;
                default:
                    return negativePattern.indexOf("-") >= 0 ? negativePattern.replace(/-/g, "+") : "+" + zeroPattern;
            }
        }
        function getCompactDisplayPattern(numberResult, pl, data, style, compactDisplay, currencyDisplay, numberingSystem) {
            var _a;
            var roundedNumber = numberResult.roundedNumber, sign = numberResult.sign, magnitude = numberResult.magnitude;
            var magnitudeKey = String(Math.pow(10, magnitude));
            var defaultNumberingSystem = data.numbers.nu[0];
            var pattern;
            if (style === "currency" && currencyDisplay !== "name") {
                var byNumberingSystem = data.numbers.currency;
                var currencyData = byNumberingSystem[numberingSystem] || byNumberingSystem[defaultNumberingSystem];
                var compactPluralRules = (_a = currencyData.short) === null || _a === void 0 ? void 0 : _a[magnitudeKey];
                if (!compactPluralRules) {
                    return null;
                }
                pattern = selectPlural(pl, roundedNumber, compactPluralRules);
            }
            else {
                var byNumberingSystem = data.numbers.decimal;
                var byCompactDisplay = byNumberingSystem[numberingSystem] || byNumberingSystem[defaultNumberingSystem];
                var compactPlaralRule = byCompactDisplay[compactDisplay][magnitudeKey];
                if (!compactPlaralRule) {
                    return null;
                }
                pattern = selectPlural(pl, roundedNumber, compactPlaralRule);
            }
            if (pattern === "0") {
                return null;
            }
            pattern = getPatternForSign(pattern, sign).replace(/([^\s;\-\+\d¤]+)/g, "{c:$1}").replace(/0+/, "0");
            return pattern;
        }
        function selectPlural(pl, x, rules) {
            return rules[pl.select(x)] || rules.other;
        }
        function PartitionNumberPattern(numberFormat, x, _a) {
            var _b;
            var getInternalSlots2 = _a.getInternalSlots;
            var internalSlots = getInternalSlots2(numberFormat);
            var pl = internalSlots.pl, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem;
            var symbols = dataLocaleData.numbers.symbols[numberingSystem] || dataLocaleData.numbers.symbols[dataLocaleData.numbers.nu[0]];
            var magnitude = 0;
            var exponent = 0;
            var n;
            if (isNaN(x)) {
                n = symbols.nan;
            }
            else if (!isFinite(x)) {
                n = symbols.infinity;
            }
            else {
                if (internalSlots.style === "percent") {
                    x *= 100;
                }
                ;
                _b = ComputeExponent(numberFormat, x, {
                    getInternalSlots: getInternalSlots2
                }), exponent = _b[0], magnitude = _b[1];
                x = exponent < 0 ? x * Math.pow(10, -exponent) : x / Math.pow(10, exponent);
                var formatNumberResult = FormatNumericToString(internalSlots, x);
                n = formatNumberResult.formattedString;
                x = formatNumberResult.roundedNumber;
            }
            var sign;
            var signDisplay = internalSlots.signDisplay;
            switch (signDisplay) {
                case "never":
                    sign = 0;
                    break;
                case "auto":
                    if (SameValue(x, 0) || x > 0 || isNaN(x)) {
                        sign = 0;
                    }
                    else {
                        sign = -1;
                    }
                    break;
                case "always":
                    if (SameValue(x, 0) || x > 0 || isNaN(x)) {
                        sign = 1;
                    }
                    else {
                        sign = -1;
                    }
                    break;
                default:
                    if (x === 0 || isNaN(x)) {
                        sign = 0;
                    }
                    else if (x > 0) {
                        sign = 1;
                    }
                    else {
                        sign = -1;
                    }
            }
            return formatToParts({ roundedNumber: x, formattedString: n, exponent: exponent, magnitude: magnitude, sign: sign }, internalSlots.dataLocaleData, pl, internalSlots);
        }
        function FormatNumericToParts(nf, x, implDetails) {
            var parts = PartitionNumberPattern(nf, x, implDetails);
            var result = ArrayCreate(0);
            for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
                var part = parts_1[_i];
                result.push({
                    type: part.type,
                    value: part.value
                });
            }
            return result;
        }
        function SetNumberFormatUnitOptions(nf, options, _a) {
            if (options === void 0) {
                options = Object.create(null);
            }
            var getInternalSlots2 = _a.getInternalSlots;
            var internalSlots = getInternalSlots2(nf);
            var style = GetOption(options, "style", "string", ["decimal", "percent", "currency", "unit"], "decimal");
            internalSlots.style = style;
            var currency = GetOption(options, "currency", "string", void 0, void 0);
            if (currency !== void 0 && !IsWellFormedCurrencyCode(currency)) {
                throw RangeError("Malformed currency code");
            }
            if (style === "currency" && currency === void 0) {
                throw TypeError("currency cannot be undefined");
            }
            var currencyDisplay = GetOption(options, "currencyDisplay", "string", ["code", "symbol", "narrowSymbol", "name"], "symbol");
            var currencySign = GetOption(options, "currencySign", "string", ["standard", "accounting"], "standard");
            var unit = GetOption(options, "unit", "string", void 0, void 0);
            if (unit !== void 0 && !IsWellFormedUnitIdentifier(unit)) {
                throw RangeError("Invalid unit argument for Intl.NumberFormat()");
            }
            if (style === "unit" && unit === void 0) {
                throw TypeError("unit cannot be undefined");
            }
            var unitDisplay = GetOption(options, "unitDisplay", "string", ["short", "narrow", "long"], "short");
            if (style === "currency") {
                internalSlots.currency = currency.toUpperCase();
                internalSlots.currencyDisplay = currencyDisplay;
                internalSlots.currencySign = currencySign;
            }
            if (style === "unit") {
                internalSlots.unit = unit;
                internalSlots.unitDisplay = unitDisplay;
            }
        }
        function SetNumberFormatDigitOptions(internalSlots, opts, mnfdDefault, mxfdDefault, notation) {
            var mnid = GetNumberOption(opts, "minimumIntegerDigits", 1, 21, 1);
            var mnfd = opts.minimumFractionDigits;
            var mxfd = opts.maximumFractionDigits;
            var mnsd = opts.minimumSignificantDigits;
            var mxsd = opts.maximumSignificantDigits;
            internalSlots.minimumIntegerDigits = mnid;
            if (mnsd !== void 0 || mxsd !== void 0) {
                internalSlots.roundingType = "significantDigits";
                mnsd = DefaultNumberOption(mnsd, 1, 21, 1);
                mxsd = DefaultNumberOption(mxsd, mnsd, 21, 21);
                internalSlots.minimumSignificantDigits = mnsd;
                internalSlots.maximumSignificantDigits = mxsd;
            }
            else if (mnfd !== void 0 || mxfd !== void 0) {
                internalSlots.roundingType = "fractionDigits";
                mnfd = DefaultNumberOption(mnfd, 0, 20, mnfdDefault);
                var mxfdActualDefault = Math.max(mnfd, mxfdDefault);
                mxfd = DefaultNumberOption(mxfd, mnfd, 20, mxfdActualDefault);
                internalSlots.minimumFractionDigits = mnfd;
                internalSlots.maximumFractionDigits = mxfd;
            }
            else if (notation === "compact") {
                internalSlots.roundingType = "compactRounding";
            }
            else {
                internalSlots.roundingType = "fractionDigits";
                internalSlots.minimumFractionDigits = mnfdDefault;
                internalSlots.maximumFractionDigits = mxfdDefault;
            }
        }
        function InitializeNumberFormat(nf, locales, opts, _a) {
            var getInternalSlots2 = _a.getInternalSlots, localeData = _a.localeData, availableLocales = _a.availableLocales, numberingSystemNames2 = _a.numberingSystemNames, getDefaultLocale = _a.getDefaultLocale, currencyDigitsData = _a.currencyDigitsData;
            var requestedLocales = CanonicalizeLocaleList(locales);
            var options = CoerceOptionsToObject(opts);
            var opt = Object.create(null);
            var matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit");
            opt.localeMatcher = matcher;
            var numberingSystem = GetOption(options, "numberingSystem", "string", void 0, void 0);
            if (numberingSystem !== void 0 && numberingSystemNames2.indexOf(numberingSystem) < 0) {
                throw RangeError("Invalid numberingSystems: " + numberingSystem);
            }
            opt.nu = numberingSystem;
            var r = ResolveLocale(availableLocales, requestedLocales, opt, ["nu"], localeData, getDefaultLocale);
            var dataLocaleData = localeData[r.dataLocale];
            invariant(!!dataLocaleData, "Missing locale data for " + r.dataLocale);
            var internalSlots = getInternalSlots2(nf);
            internalSlots.locale = r.locale;
            internalSlots.dataLocale = r.dataLocale;
            internalSlots.numberingSystem = r.nu;
            internalSlots.dataLocaleData = dataLocaleData;
            SetNumberFormatUnitOptions(nf, options, { getInternalSlots: getInternalSlots2 });
            var style = internalSlots.style;
            var mnfdDefault;
            var mxfdDefault;
            if (style === "currency") {
                var currency = internalSlots.currency;
                var cDigits = CurrencyDigits(currency, { currencyDigitsData: currencyDigitsData });
                mnfdDefault = cDigits;
                mxfdDefault = cDigits;
            }
            else {
                mnfdDefault = 0;
                mxfdDefault = style === "percent" ? 0 : 3;
            }
            var notation = GetOption(options, "notation", "string", ["standard", "scientific", "engineering", "compact"], "standard");
            internalSlots.notation = notation;
            SetNumberFormatDigitOptions(internalSlots, options, mnfdDefault, mxfdDefault, notation);
            var compactDisplay = GetOption(options, "compactDisplay", "string", ["short", "long"], "short");
            if (notation === "compact") {
                internalSlots.compactDisplay = compactDisplay;
            }
            var useGrouping = GetOption(options, "useGrouping", "boolean", void 0, true);
            internalSlots.useGrouping = useGrouping;
            var signDisplay = GetOption(options, "signDisplay", "string", ["auto", "never", "always", "exceptZero"], "auto");
            internalSlots.signDisplay = signDisplay;
            return nf;
        }
        function LookupSupportedLocales(availableLocales, requestedLocales) {
            var subset = [];
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
                var locale = requestedLocales_1[_i];
                var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
                var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
                if (availableLocale) {
                    subset.push(availableLocale);
                }
            }
            return subset;
        }
        function SupportedLocales(availableLocales, requestedLocales, options) {
            var matcher = "best fit";
            if (options !== void 0) {
                options = ToObject(options);
                matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit");
            }
            if (matcher === "best fit") {
                return LookupSupportedLocales(availableLocales, requestedLocales);
            }
            return LookupSupportedLocales(availableLocales, requestedLocales);
        }
        var MissingLocaleDataError = function (_super) {
            __extends(MissingLocaleDataError2, _super);
            function MissingLocaleDataError2() {
                var _this = _super !== null && _super.apply(this, arguments) || this;
                _this.type = "MISSING_LOCALE_DATA";
                return _this;
            }
            return MissingLocaleDataError2;
        }(Error);
        var currency_digits_exports = {};
        __export(currency_digits_exports, {
            ADP: function () {
                return ADP;
            },
            AFN: function () {
                return AFN;
            },
            ALL: function () {
                return ALL;
            },
            AMD: function () {
                return AMD;
            },
            BHD: function () {
                return BHD;
            },
            BIF: function () {
                return BIF;
            },
            BYN: function () {
                return BYN;
            },
            BYR: function () {
                return BYR;
            },
            CAD: function () {
                return CAD;
            },
            CHF: function () {
                return CHF;
            },
            CLF: function () {
                return CLF;
            },
            CLP: function () {
                return CLP;
            },
            COP: function () {
                return COP;
            },
            CRC: function () {
                return CRC;
            },
            CZK: function () {
                return CZK;
            },
            DEFAULT: function () {
                return DEFAULT;
            },
            DJF: function () {
                return DJF;
            },
            DKK: function () {
                return DKK;
            },
            ESP: function () {
                return ESP;
            },
            GNF: function () {
                return GNF;
            },
            GYD: function () {
                return GYD;
            },
            HUF: function () {
                return HUF;
            },
            IDR: function () {
                return IDR;
            },
            IQD: function () {
                return IQD;
            },
            IRR: function () {
                return IRR;
            },
            ISK: function () {
                return ISK;
            },
            ITL: function () {
                return ITL;
            },
            JOD: function () {
                return JOD;
            },
            JPY: function () {
                return JPY;
            },
            KMF: function () {
                return KMF;
            },
            KPW: function () {
                return KPW;
            },
            KRW: function () {
                return KRW;
            },
            KWD: function () {
                return KWD;
            },
            LAK: function () {
                return LAK;
            },
            LBP: function () {
                return LBP;
            },
            LUF: function () {
                return LUF;
            },
            LYD: function () {
                return LYD;
            },
            MGA: function () {
                return MGA;
            },
            MGF: function () {
                return MGF;
            },
            MMK: function () {
                return MMK;
            },
            MNT: function () {
                return MNT;
            },
            MRO: function () {
                return MRO;
            },
            MUR: function () {
                return MUR;
            },
            NOK: function () {
                return NOK;
            },
            OMR: function () {
                return OMR;
            },
            PKR: function () {
                return PKR;
            },
            PYG: function () {
                return PYG;
            },
            RSD: function () {
                return RSD;
            },
            RWF: function () {
                return RWF;
            },
            SEK: function () {
                return SEK;
            },
            SLL: function () {
                return SLL;
            },
            SOS: function () {
                return SOS;
            },
            STD: function () {
                return STD;
            },
            SYP: function () {
                return SYP;
            },
            TMM: function () {
                return TMM;
            },
            TND: function () {
                return TND;
            },
            TRL: function () {
                return TRL;
            },
            TWD: function () {
                return TWD;
            },
            TZS: function () {
                return TZS;
            },
            UGX: function () {
                return UGX;
            },
            UYI: function () {
                return UYI;
            },
            UYW: function () {
                return UYW;
            },
            UZS: function () {
                return UZS;
            },
            VEF: function () {
                return VEF;
            },
            VND: function () {
                return VND;
            },
            VUV: function () {
                return VUV;
            },
            XAF: function () {
                return XAF;
            },
            XOF: function () {
                return XOF;
            },
            XPF: function () {
                return XPF;
            },
            YER: function () {
                return YER;
            },
            ZMK: function () {
                return ZMK;
            },
            ZWD: function () {
                return ZWD;
            },
            "default": function () {
                return currency_digits_default;
            }
        });
        var ADP = 0;
        var AFN = 0;
        var ALL = 0;
        var AMD = 2;
        var BHD = 3;
        var BIF = 0;
        var BYN = 2;
        var BYR = 0;
        var CAD = 2;
        var CHF = 2;
        var CLF = 4;
        var CLP = 0;
        var COP = 2;
        var CRC = 2;
        var CZK = 2;
        var DEFAULT = 2;
        var DJF = 0;
        var DKK = 2;
        var ESP = 0;
        var GNF = 0;
        var GYD = 2;
        var HUF = 2;
        var IDR = 2;
        var IQD = 0;
        var IRR = 0;
        var ISK = 0;
        var ITL = 0;
        var JOD = 3;
        var JPY = 0;
        var KMF = 0;
        var KPW = 0;
        var KRW = 0;
        var KWD = 3;
        var LAK = 0;
        var LBP = 0;
        var LUF = 0;
        var LYD = 3;
        var MGA = 0;
        var MGF = 0;
        var MMK = 0;
        var MNT = 2;
        var MRO = 0;
        var MUR = 2;
        var NOK = 2;
        var OMR = 3;
        var PKR = 2;
        var PYG = 0;
        var RSD = 0;
        var RWF = 0;
        var SEK = 2;
        var SLL = 0;
        var SOS = 0;
        var STD = 0;
        var SYP = 0;
        var TMM = 0;
        var TND = 3;
        var TRL = 0;
        var TWD = 2;
        var TZS = 2;
        var UGX = 0;
        var UYI = 0;
        var UYW = 4;
        var UZS = 2;
        var VEF = 2;
        var VND = 0;
        var VUV = 0;
        var XAF = 0;
        var XOF = 0;
        var XPF = 0;
        var YER = 0;
        var ZMK = 0;
        var ZWD = 0;
        var currency_digits_default = { ADP: ADP, AFN: AFN, ALL: ALL, AMD: AMD, BHD: BHD, BIF: BIF, BYN: BYN, BYR: BYR, CAD: CAD, CHF: CHF, CLF: CLF, CLP: CLP, COP: COP, CRC: CRC, CZK: CZK, DEFAULT: DEFAULT, DJF: DJF, DKK: DKK, ESP: ESP, GNF: GNF, GYD: GYD, HUF: HUF, IDR: IDR, IQD: IQD, IRR: IRR, ISK: ISK, ITL: ITL, JOD: JOD, JPY: JPY, KMF: KMF, KPW: KPW, KRW: KRW, KWD: KWD, LAK: LAK, LBP: LBP, LUF: LUF, LYD: LYD, MGA: MGA, MGF: MGF, MMK: MMK, MNT: MNT, MRO: MRO, MUR: MUR, NOK: NOK, OMR: OMR, PKR: PKR, PYG: PYG, RSD: RSD, RWF: RWF, SEK: SEK, SLL: SLL, SOS: SOS, STD: STD, SYP: SYP, TMM: TMM, TND: TND, TRL: TRL, TWD: TWD, TZS: TZS, UGX: UGX, UYI: UYI, UYW: UYW, UZS: UZS, VEF: VEF, VND: VND, VUV: VUV, XAF: XAF, XOF: XOF, XPF: XPF, YER: YER, ZMK: ZMK, ZWD: ZWD };
        var names = ["adlm", "ahom", "arab", "arabext", "armn", "armnlow", "bali", "beng", "bhks", "brah", "cakm", "cham", "cyrl", "deva", "diak", "ethi", "fullwide", "geor", "gong", "gonm", "grek", "greklow", "gujr", "guru", "hanidays", "hanidec", "hans", "hansfin", "hant", "hantfin", "hebr", "hmng", "hmnp", "java", "jpan", "jpanfin", "jpanyear", "kali", "khmr", "knda", "lana", "lanatham", "laoo", "latn", "lepc", "limb", "mathbold", "mathdbl", "mathmono", "mathsanb", "mathsans", "mlym", "modi", "mong", "mroo", "mtei", "mymr", "mymrshan", "mymrtlng", "newa", "nkoo", "olck", "orya", "osma", "rohg", "roman", "romanlow", "saur", "segment", "shrd", "sind", "sinh", "sora", "sund", "takr", "talu", "taml", "tamldec", "telu", "thai", "tibt", "tirh", "vaii", "wara", "wcho"];
        var internalSlotMap = new WeakMap();
        function getInternalSlots(x) {
            var internalSlots = internalSlotMap.get(x);
            if (!internalSlots) {
                internalSlots = Object.create(null);
                internalSlotMap.set(x, internalSlots);
            }
            return internalSlots;
        }
        var numberingSystemNames = names;
        var RESOLVED_OPTIONS_KEYS = [
            "locale",
            "numberingSystem",
            "style",
            "currency",
            "currencyDisplay",
            "currencySign",
            "unit",
            "unitDisplay",
            "minimumIntegerDigits",
            "minimumFractionDigits",
            "maximumFractionDigits",
            "minimumSignificantDigits",
            "maximumSignificantDigits",
            "useGrouping",
            "notation",
            "compactDisplay",
            "signDisplay"
        ];
        var NumberFormat = function (locales, options) {
            if (!this || !OrdinaryHasInstance(NumberFormat, this)) {
                return new NumberFormat(locales, options);
            }
            InitializeNumberFormat(this, locales, options, {
                getInternalSlots: getInternalSlots,
                localeData: NumberFormat.localeData,
                availableLocales: NumberFormat.availableLocales,
                getDefaultLocale: NumberFormat.getDefaultLocale,
                currencyDigitsData: currency_digits_exports,
                numberingSystemNames: numberingSystemNames
            });
            var internalSlots = getInternalSlots(this);
            var dataLocale = internalSlots.dataLocale;
            var dataLocaleData = NumberFormat.localeData[dataLocale];
            invariant(dataLocaleData !== void 0, "Cannot load locale-dependent data for " + dataLocale + ".");
            internalSlots.pl = new Intl.PluralRules(dataLocale, {
                minimumFractionDigits: internalSlots.minimumFractionDigits,
                maximumFractionDigits: internalSlots.maximumFractionDigits,
                minimumIntegerDigits: internalSlots.minimumIntegerDigits,
                minimumSignificantDigits: internalSlots.minimumSignificantDigits,
                maximumSignificantDigits: internalSlots.maximumSignificantDigits
            });
            return this;
        };
        function formatToParts2(x) {
            return FormatNumericToParts(this, toNumeric(x), {
                getInternalSlots: getInternalSlots
            });
        }
        try {
            Object.defineProperty(formatToParts2, "name", {
                value: "formatToParts",
                enumerable: false,
                writable: false,
                configurable: true
            });
        }
        catch (e) {
        }
        defineProperty(NumberFormat.prototype, "formatToParts", {
            value: formatToParts2
        });
        defineProperty(NumberFormat.prototype, "resolvedOptions", {
            value: function resolvedOptions() {
                if (typeof this !== "object" || !OrdinaryHasInstance(NumberFormat, this)) {
                    throw TypeError("Method Intl.NumberFormat.prototype.resolvedOptions called on incompatible receiver");
                }
                var internalSlots = getInternalSlots(this);
                var ro = {};
                for (var _i = 0, RESOLVED_OPTIONS_KEYS_1 = RESOLVED_OPTIONS_KEYS; _i < RESOLVED_OPTIONS_KEYS_1.length; _i++) {
                    var key = RESOLVED_OPTIONS_KEYS_1[_i];
                    var value = internalSlots[key];
                    if (value !== void 0) {
                        ro[key] = value;
                    }
                }
                return ro;
            }
        });
        var formatDescriptor = {
            enumerable: false,
            configurable: true,
            get: function () {
                if (typeof this !== "object" || !OrdinaryHasInstance(NumberFormat, this)) {
                    throw TypeError("Intl.NumberFormat format property accessor called on incompatible receiver");
                }
                var internalSlots = getInternalSlots(this);
                var numberFormat = this;
                var boundFormat = internalSlots.boundFormat;
                if (boundFormat === void 0) {
                    boundFormat = function (value) {
                        var x = toNumeric(value);
                        return numberFormat.formatToParts(x).map(function (x2) {
                            return x2.value;
                        }).join("");
                    };
                    try {
                        Object.defineProperty(boundFormat, "name", {
                            configurable: true,
                            enumerable: false,
                            writable: false,
                            value: ""
                        });
                    }
                    catch (e) {
                    }
                    internalSlots.boundFormat = boundFormat;
                }
                return boundFormat;
            }
        };
        try {
            Object.defineProperty(formatDescriptor.get, "name", {
                configurable: true,
                enumerable: false,
                writable: false,
                value: "get format"
            });
        }
        catch (e) {
        }
        Object.defineProperty(NumberFormat.prototype, "format", formatDescriptor);
        defineProperty(NumberFormat, "supportedLocalesOf", {
            value: function supportedLocalesOf(locales, options) {
                return SupportedLocales(NumberFormat.availableLocales, CanonicalizeLocaleList(locales), options);
            }
        });
        NumberFormat.__addLocaleData = function __addLocaleData() {
            var data = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                data[_i] = arguments[_i];
            }
            for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {
                var _b = data_1[_a], d = _b.data, locale = _b.locale;
                var minimizedLocale = new Intl.Locale(locale).minimize().toString();
                NumberFormat.localeData[locale] = NumberFormat.localeData[minimizedLocale] = d;
                NumberFormat.availableLocales.add(minimizedLocale);
                NumberFormat.availableLocales.add(locale);
                if (!NumberFormat.__defaultLocale) {
                    NumberFormat.__defaultLocale = minimizedLocale;
                }
            }
        };
        NumberFormat.__addUnitData = function __addUnitData(locale, unitsData) {
            var _a = NumberFormat.localeData, _b = locale, existingData = _a[_b];
            if (!existingData) {
                throw new Error('Locale data for "' + locale + '" has not been loaded in NumberFormat. \nPlease __addLocaleData before adding additional unit data');
            }
            for (var unit in unitsData.simple) {
                existingData.units.simple[unit] = unitsData.simple[unit];
            }
            for (var unit in unitsData.compound) {
                existingData.units.compound[unit] = unitsData.compound[unit];
            }
        };
        NumberFormat.__defaultLocale = "";
        NumberFormat.localeData = {};
        NumberFormat.availableLocales = new Set();
        NumberFormat.getDefaultLocale = function () {
            return NumberFormat.__defaultLocale;
        };
        NumberFormat.polyfilled = true;
        function toNumeric(val) {
            if (typeof val === "bigint") {
                return val;
            }
            return ToNumber(val);
        }
        try {
            if (typeof Symbol !== "undefined") {
                Object.defineProperty(NumberFormat.prototype, Symbol.toStringTag, {
                    configurable: true,
                    enumerable: false,
                    writable: false,
                    value: "Intl.NumberFormat"
                });
            }
            Object.defineProperty(NumberFormat.prototype.constructor, "length", {
                configurable: true,
                enumerable: false,
                writable: false,
                value: 0
            });
            Object.defineProperty(NumberFormat.supportedLocalesOf, "length", {
                configurable: true,
                enumerable: false,
                writable: false,
                value: 1
            });
            Object.defineProperty(NumberFormat, "prototype", {
                configurable: false,
                enumerable: false,
                writable: false,
                value: NumberFormat.prototype
            });
        }
        catch (e) {
        }
        function toLocaleString(x, locales, options) {
            var numberFormat = new NumberFormat(locales, options);
            return numberFormat.format(x);
        }
        function onlySupportsEn() {
            return !Intl.NumberFormat.polyfilled && !Intl.NumberFormat.supportedLocalesOf(["es"]).length;
        }
        function supportsES2020() {
            try {
                var s = new Intl.NumberFormat("en", {
                    style: "unit",
                    unit: "bit",
                    unitDisplay: "long",
                    notation: "scientific"
                }).format(1e4);
                if (s !== "1E4 bits") {
                    return false;
                }
            }
            catch (e) {
                return false;
            }
            return true;
        }
        function shouldPolyfill() {
            return typeof Intl === "undefined" || !("NumberFormat" in Intl) || !supportsES2020() || onlySupportsEn();
        }
        if (shouldPolyfill()) {
            defineProperty(Intl, "NumberFormat", { value: NumberFormat });
            defineProperty(Number.prototype, "toLocaleString", {
                value: function toLocaleString2(locales, options) {
                    return toLocaleString(this, locales, options);
                }
            });
        }
    })();
    (function () {
        var extendStatics = function (d, b) {
            extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d2, b2) {
                d2.__proto__ = b2;
            } || function (d2, b2) {
                for (var p in b2)
                    if (Object.prototype.hasOwnProperty.call(b2, p))
                        d2[p] = b2[p];
            };
            return extendStatics(d, b);
        };
        function __extends(d, b) {
            if (typeof b !== "function" && b !== null)
                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
            extendStatics(d, b);
            function __() {
                this.constructor = d;
            }
            d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
        }
        var __assign = function () {
            __assign = Object.assign || function __assign2(t) {
                for (var s, i = 1, n = arguments.length; i < n; i++) {
                    s = arguments[i];
                    for (var p in s)
                        if (Object.prototype.hasOwnProperty.call(s, p))
                            t[p] = s[p];
                }
                return t;
            };
            return __assign.apply(this, arguments);
        };
        function __rest(s, e) {
            var t = {};
            for (var p in s)
                if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
                    t[p] = s[p];
            if (s != null && typeof Object.getOwnPropertySymbols === "function")
                for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
                    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
                        t[p[i]] = s[p[i]];
                }
            return t;
        }
        function defineProperty(target, name, _a) {
            var value = _a.value;
            Object.defineProperty(target, name, {
                configurable: true,
                enumerable: false,
                writable: true,
                value: value
            });
        }
        var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;
        function invariant(condition, message, Err) {
            if (Err === void 0) {
                Err = Error;
            }
            if (!condition) {
                throw new Err(message);
            }
        }
        var DATE_TIME_PROPS = [
            "weekday",
            "era",
            "year",
            "month",
            "day",
            "hour",
            "minute",
            "second",
            "timeZoneName"
        ];
        var removalPenalty = 120;
        var additionPenalty = 20;
        var differentNumericTypePenalty = 15;
        var longLessPenalty = 8;
        var longMorePenalty = 6;
        var shortLessPenalty = 6;
        var shortMorePenalty = 3;
        var RangePatternType;
        (function (RangePatternType2) {
            RangePatternType2["startRange"] = "startRange";
            RangePatternType2["shared"] = "shared";
            RangePatternType2["endRange"] = "endRange";
        })(RangePatternType || (RangePatternType = {}));
        var 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;
        var expPatternTrimmer = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
        function matchSkeletonPattern(match, result) {
            var len = match.length;
            switch (match[0]) {
                case "G":
                    result.era = len === 4 ? "long" : len === 5 ? "narrow" : "short";
                    return "{era}";
                case "y":
                case "Y":
                case "u":
                case "U":
                case "r":
                    result.year = len === 2 ? "2-digit" : "numeric";
                    return "{year}";
                case "q":
                case "Q":
                    throw new RangeError("`w/Q` (quarter) patterns are not supported");
                case "M":
                case "L":
                    result.month = ["numeric", "2-digit", "short", "long", "narrow"][len - 1];
                    return "{month}";
                case "w":
                case "W":
                    throw new RangeError("`w/W` (week of year) patterns are not supported");
                case "d":
                    result.day = ["numeric", "2-digit"][len - 1];
                    return "{day}";
                case "D":
                case "F":
                case "g":
                    result.day = "numeric";
                    return "{day}";
                case "E":
                    result.weekday = len === 4 ? "long" : len === 5 ? "narrow" : "short";
                    return "{weekday}";
                case "e":
                    result.weekday = [
                        void 0,
                        void 0,
                        "short",
                        "long",
                        "narrow",
                        "short"
                    ][len - 1];
                    return "{weekday}";
                case "c":
                    result.weekday = [
                        void 0,
                        void 0,
                        "short",
                        "long",
                        "narrow",
                        "short"
                    ][len - 1];
                    return "{weekday}";
                case "a":
                case "b":
                case "B":
                    result.hour12 = true;
                    return "{ampm}";
                case "h":
                    result.hour = ["numeric", "2-digit"][len - 1];
                    result.hour12 = true;
                    return "{hour}";
                case "H":
                    result.hour = ["numeric", "2-digit"][len - 1];
                    return "{hour}";
                case "K":
                    result.hour = ["numeric", "2-digit"][len - 1];
                    result.hour12 = true;
                    return "{hour}";
                case "k":
                    result.hour = ["numeric", "2-digit"][len - 1];
                    return "{hour}";
                case "j":
                case "J":
                case "C":
                    throw new RangeError("`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead");
                case "m":
                    result.minute = ["numeric", "2-digit"][len - 1];
                    return "{minute}";
                case "s":
                    result.second = ["numeric", "2-digit"][len - 1];
                    return "{second}";
                case "S":
                case "A":
                    result.second = "numeric";
                    return "{second}";
                case "z":
                case "Z":
                case "O":
                case "v":
                case "V":
                case "X":
                case "x":
                    result.timeZoneName = len < 4 ? "short" : "long";
                    return "{timeZoneName}";
            }
            return "";
        }
        function skeletonTokenToTable2(c) {
            switch (c) {
                case "G":
                    return "era";
                case "y":
                case "Y":
                case "u":
                case "U":
                case "r":
                    return "year";
                case "M":
                case "L":
                    return "month";
                case "d":
                case "D":
                case "F":
                case "g":
                    return "day";
                case "a":
                case "b":
                case "B":
                    return "ampm";
                case "h":
                case "H":
                case "K":
                case "k":
                    return "hour";
                case "m":
                    return "minute";
                case "s":
                case "S":
                case "A":
                    return "second";
                default:
                    throw new RangeError("Invalid range pattern token");
            }
        }
        function processDateTimePattern(pattern, result) {
            var literals = [];
            var pattern12 = pattern.replace(/'{2}/g, "{apostrophe}").replace(/'(.*?)'/g, function (_, literal) {
                literals.push(literal);
                return "$$" + (literals.length - 1) + "$$";
            }).replace(DATE_TIME_REGEX, function (m) {
                return matchSkeletonPattern(m, result || {});
            });
            if (literals.length) {
                pattern12 = pattern12.replace(/\$\$(\d+)\$\$/g, function (_, i) {
                    return literals[+i];
                }).replace(/\{apostrophe\}/g, "'");
            }
            return [
                pattern12.replace(/([\s\uFEFF\xA0])\{ampm\}([\s\uFEFF\xA0])/, "$1").replace("{ampm}", "").replace(expPatternTrimmer, ""),
                pattern12
            ];
        }
        function parseDateTimeSkeleton(skeleton, rawPattern, rangePatterns, intervalFormatFallback) {
            if (rawPattern === void 0) {
                rawPattern = skeleton;
            }
            var result = {
                pattern: "",
                pattern12: "",
                skeleton: skeleton,
                rawPattern: rawPattern,
                rangePatterns: {},
                rangePatterns12: {}
            };
            if (rangePatterns) {
                for (var k in rangePatterns) {
                    var key = skeletonTokenToTable2(k);
                    var rawPattern_1 = rangePatterns[k];
                    var intervalResult = {
                        patternParts: []
                    };
                    var _a = processDateTimePattern(rawPattern_1, intervalResult), pattern_1 = _a[0], pattern12_1 = _a[1];
                    result.rangePatterns[key] = __assign(__assign({}, intervalResult), { patternParts: splitRangePattern(pattern_1) });
                    result.rangePatterns12[key] = __assign(__assign({}, intervalResult), { patternParts: splitRangePattern(pattern12_1) });
                }
            }
            else if (intervalFormatFallback) {
                var patternParts = splitFallbackRangePattern(intervalFormatFallback);
                result.rangePatterns["default"] = {
                    patternParts: patternParts
                };
                result.rangePatterns12["default"] = {
                    patternParts: patternParts
                };
            }
            skeleton.replace(DATE_TIME_REGEX, function (m) {
                return matchSkeletonPattern(m, result);
            });
            var _b = processDateTimePattern(rawPattern), pattern = _b[0], pattern12 = _b[1];
            result.pattern = pattern;
            result.pattern12 = pattern12;
            return result;
        }
        function splitFallbackRangePattern(pattern) {
            var parts = pattern.split(/(\{[0|1]\})/g).filter(Boolean);
            return parts.map(function (pattern2) {
                switch (pattern2) {
                    case "{0}":
                        return {
                            source: RangePatternType.startRange,
                            pattern: pattern2
                        };
                    case "{1}":
                        return {
                            source: RangePatternType.endRange,
                            pattern: pattern2
                        };
                    default:
                        return {
                            source: RangePatternType.shared,
                            pattern: pattern2
                        };
                }
            });
        }
        function splitRangePattern(pattern) {
            var PART_REGEX = /\{(.*?)\}/g;
            var parts = {};
            var match;
            var splitIndex = 0;
            while (match = PART_REGEX.exec(pattern)) {
                if (!(match[0] in parts)) {
                    parts[match[0]] = match.index;
                }
                else {
                    splitIndex = match.index;
                    break;
                }
            }
            if (!splitIndex) {
                return [
                    {
                        source: RangePatternType.startRange,
                        pattern: pattern
                    }
                ];
            }
            return [
                {
                    source: RangePatternType.startRange,
                    pattern: pattern.slice(0, splitIndex)
                },
                {
                    source: RangePatternType.endRange,
                    pattern: pattern.slice(splitIndex)
                }
            ];
        }
        function isNumericType(t) {
            return t === "numeric" || t === "2-digit";
        }
        function bestFitFormatMatcherScore(options, format) {
            var score = 0;
            if (options.hour12 && !format.hour12) {
                score -= removalPenalty;
            }
            else if (!options.hour12 && format.hour12) {
                score -= additionPenalty;
            }
            for (var _i = 0, DATE_TIME_PROPS_1 = DATE_TIME_PROPS; _i < DATE_TIME_PROPS_1.length; _i++) {
                var prop = DATE_TIME_PROPS_1[_i];
                var optionsProp = options[prop];
                var formatProp = format[prop];
                if (optionsProp === void 0 && formatProp !== void 0) {
                    score -= additionPenalty;
                }
                else if (optionsProp !== void 0 && formatProp === void 0) {
                    score -= removalPenalty;
                }
                else if (optionsProp !== formatProp) {
                    if (isNumericType(optionsProp) !== isNumericType(formatProp)) {
                        score -= differentNumericTypePenalty;
                    }
                    else {
                        var values = ["2-digit", "numeric", "narrow", "short", "long"];
                        var optionsPropIndex = values.indexOf(optionsProp);
                        var formatPropIndex = values.indexOf(formatProp);
                        var delta = Math.max(-2, Math.min(formatPropIndex - optionsPropIndex, 2));
                        if (delta === 2) {
                            score -= longMorePenalty;
                        }
                        else if (delta === 1) {
                            score -= shortMorePenalty;
                        }
                        else if (delta === -1) {
                            score -= shortLessPenalty;
                        }
                        else if (delta === -2) {
                            score -= longLessPenalty;
                        }
                    }
                }
            }
            return score;
        }
        function BestFitFormatMatcher(options, formats) {
            var bestScore = -Infinity;
            var bestFormat = formats[0];
            invariant(Array.isArray(formats), "formats should be a list of things");
            for (var _i = 0, formats_1 = formats; _i < formats_1.length; _i++) {
                var format = formats_1[_i];
                var score = bestFitFormatMatcherScore(options, format);
                if (score > bestScore) {
                    bestScore = score;
                    bestFormat = format;
                }
            }
            var skeletonFormat = __assign({}, bestFormat);
            var patternFormat = { rawPattern: bestFormat.rawPattern };
            processDateTimePattern(bestFormat.rawPattern, patternFormat);
            for (var prop in skeletonFormat) {
                var skeletonValue = skeletonFormat[prop];
                var patternValue = patternFormat[prop];
                var requestedValue = options[prop];
                if (prop === "minute" || prop === "second") {
                    continue;
                }
                if (!requestedValue) {
                    continue;
                }
                if (isNumericType(patternValue) && !isNumericType(requestedValue)) {
                    continue;
                }
                if (skeletonValue === requestedValue) {
                    continue;
                }
                patternFormat[prop] = requestedValue;
            }
            patternFormat.pattern = skeletonFormat.pattern;
            patternFormat.pattern12 = skeletonFormat.pattern12;
            patternFormat.skeleton = skeletonFormat.skeleton;
            patternFormat.rangePatterns = skeletonFormat.rangePatterns;
            patternFormat.rangePatterns12 = skeletonFormat.rangePatterns12;
            return patternFormat;
        }
        function CanonicalizeLocaleList(locales) {
            return Intl.getCanonicalLocales(locales);
        }
        function CanonicalizeTimeZoneName(tz, _a) {
            var tzData = _a.tzData, uppercaseLinks = _a.uppercaseLinks;
            var uppercasedTz = tz.toUpperCase();
            var uppercasedZones = Object.keys(tzData).reduce(function (all, z) {
                all[z.toUpperCase()] = z;
                return all;
            }, {});
            var ianaTimeZone = uppercaseLinks[uppercasedTz] || uppercasedZones[uppercasedTz];
            if (ianaTimeZone === "Etc/UTC" || ianaTimeZone === "Etc/GMT") {
                return "UTC";
            }
            return ianaTimeZone;
        }
        function ToString(o) {
            if (typeof o === "symbol") {
                throw TypeError("Cannot convert a Symbol value to a string");
            }
            return String(o);
        }
        function ToNumber(val) {
            if (val === void 0) {
                return NaN;
            }
            if (val === null) {
                return 0;
            }
            if (typeof val === "boolean") {
                return val ? 1 : 0;
            }
            if (typeof val === "number") {
                return val;
            }
            if (typeof val === "symbol" || typeof val === "bigint") {
                throw new TypeError("Cannot convert symbol/bigint to number");
            }
            return Number(val);
        }
        function ToInteger(n) {
            var number = ToNumber(n);
            if (isNaN(number) || SameValue(number, -0)) {
                return 0;
            }
            if (isFinite(number)) {
                return number;
            }
            var integer = Math.floor(Math.abs(number));
            if (number < 0) {
                integer = -integer;
            }
            if (SameValue(integer, -0)) {
                return 0;
            }
            return integer;
        }
        function TimeClip(time) {
            if (!isFinite(time)) {
                return NaN;
            }
            if (Math.abs(time) > 8.64 * 1e15) {
                return NaN;
            }
            return ToInteger(time);
        }
        function ToObject(arg) {
            if (arg == null) {
                throw new TypeError("undefined/null cannot be converted to object");
            }
            return Object(arg);
        }
        function SameValue(x, y) {
            if (Object.is) {
                return Object.is(x, y);
            }
            if (x === y) {
                return x !== 0 || 1 / x === 1 / y;
            }
            return x !== x && y !== y;
        }
        function ArrayCreate(len) {
            return new Array(len);
        }
        function Type(x) {
            if (x === null) {
                return "Null";
            }
            if (typeof x === "undefined") {
                return "Undefined";
            }
            if (typeof x === "function" || typeof x === "object") {
                return "Object";
            }
            if (typeof x === "number") {
                return "Number";
            }
            if (typeof x === "boolean") {
                return "Boolean";
            }
            if (typeof x === "string") {
                return "String";
            }
            if (typeof x === "symbol") {
                return "Symbol";
            }
            if (typeof x === "bigint") {
                return "BigInt";
            }
        }
        var MS_PER_DAY = 864e5;
        function mod(x, y) {
            return x - Math.floor(x / y) * y;
        }
        function Day(t) {
            return Math.floor(t / MS_PER_DAY);
        }
        function WeekDay(t) {
            return mod(Day(t) + 4, 7);
        }
        function DayFromYear(y) {
            return Date.UTC(y, 0) / MS_PER_DAY;
        }
        function YearFromTime(t) {
            return new Date(t).getUTCFullYear();
        }
        function DaysInYear(y) {
            if (y % 4 !== 0) {
                return 365;
            }
            if (y % 100 !== 0) {
                return 366;
            }
            if (y % 400 !== 0) {
                return 365;
            }
            return 366;
        }
        function DayWithinYear(t) {
            return Day(t) - DayFromYear(YearFromTime(t));
        }
        function InLeapYear(t) {
            return DaysInYear(YearFromTime(t)) === 365 ? 0 : 1;
        }
        function MonthFromTime(t) {
            var dwy = DayWithinYear(t);
            var leap = InLeapYear(t);
            if (dwy >= 0 && dwy < 31) {
                return 0;
            }
            if (dwy < 59 + leap) {
                return 1;
            }
            if (dwy < 90 + leap) {
                return 2;
            }
            if (dwy < 120 + leap) {
                return 3;
            }
            if (dwy < 151 + leap) {
                return 4;
            }
            if (dwy < 181 + leap) {
                return 5;
            }
            if (dwy < 212 + leap) {
                return 6;
            }
            if (dwy < 243 + leap) {
                return 7;
            }
            if (dwy < 273 + leap) {
                return 8;
            }
            if (dwy < 304 + leap) {
                return 9;
            }
            if (dwy < 334 + leap) {
                return 10;
            }
            if (dwy < 365 + leap) {
                return 11;
            }
            throw new Error("Invalid time");
        }
        function DateFromTime(t) {
            var dwy = DayWithinYear(t);
            var mft = MonthFromTime(t);
            var leap = InLeapYear(t);
            if (mft === 0) {
                return dwy + 1;
            }
            if (mft === 1) {
                return dwy - 30;
            }
            if (mft === 2) {
                return dwy - 58 - leap;
            }
            if (mft === 3) {
                return dwy - 89 - leap;
            }
            if (mft === 4) {
                return dwy - 119 - leap;
            }
            if (mft === 5) {
                return dwy - 150 - leap;
            }
            if (mft === 6) {
                return dwy - 180 - leap;
            }
            if (mft === 7) {
                return dwy - 211 - leap;
            }
            if (mft === 8) {
                return dwy - 242 - leap;
            }
            if (mft === 9) {
                return dwy - 272 - leap;
            }
            if (mft === 10) {
                return dwy - 303 - leap;
            }
            if (mft === 11) {
                return dwy - 333 - leap;
            }
            throw new Error("Invalid time");
        }
        var HOURS_PER_DAY = 24;
        var MINUTES_PER_HOUR = 60;
        var SECONDS_PER_MINUTE = 60;
        var MS_PER_SECOND = 1e3;
        var MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;
        var MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;
        function HourFromTime(t) {
            return mod(Math.floor(t / MS_PER_HOUR), HOURS_PER_DAY);
        }
        function MinFromTime(t) {
            return mod(Math.floor(t / MS_PER_MINUTE), MINUTES_PER_HOUR);
        }
        function SecFromTime(t) {
            return mod(Math.floor(t / MS_PER_SECOND), SECONDS_PER_MINUTE);
        }
        function IsCallable(fn) {
            return typeof fn === "function";
        }
        function OrdinaryHasInstance(C, O, internalSlots) {
            if (!IsCallable(C)) {
                return false;
            }
            if (internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction) {
                var BC = internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction;
                return O instanceof BC;
            }
            if (typeof O !== "object") {
                return false;
            }
            var P = C.prototype;
            if (typeof P !== "object") {
                throw new TypeError("OrdinaryHasInstance called on an object with an invalid prototype property.");
            }
            return Object.prototype.isPrototypeOf.call(P, O);
        }
        function msFromTime(t) {
            return mod(t, MS_PER_SECOND);
        }
        function BasicFormatMatcher(options, formats) {
            var bestScore = -Infinity;
            var bestFormat = formats[0];
            invariant(Array.isArray(formats), "formats should be a list of things");
            for (var _i = 0, formats_1 = formats; _i < formats_1.length; _i++) {
                var format = formats_1[_i];
                var score = 0;
                for (var _a = 0, DATE_TIME_PROPS_1 = DATE_TIME_PROPS; _a < DATE_TIME_PROPS_1.length; _a++) {
                    var prop = DATE_TIME_PROPS_1[_a];
                    var optionsProp = options[prop];
                    var formatProp = format[prop];
                    if (optionsProp === void 0 && formatProp !== void 0) {
                        score -= additionPenalty;
                    }
                    else if (optionsProp !== void 0 && formatProp === void 0) {
                        score -= removalPenalty;
                    }
                    else if (optionsProp !== formatProp) {
                        var values = void 0;
                        if (prop === "fractionalSecondDigits") {
                            values = [1, 2, 3];
                        }
                        else {
                            values = ["2-digit", "numeric", "narrow", "short", "long"];
                        }
                        var optionsPropIndex = values.indexOf(optionsProp);
                        var formatPropIndex = values.indexOf(formatProp);
                        var delta = Math.max(-2, Math.min(formatPropIndex - optionsPropIndex, 2));
                        if (delta === 2) {
                            score -= longMorePenalty;
                        }
                        else if (delta === 1) {
                            score -= shortMorePenalty;
                        }
                        else if (delta === -1) {
                            score -= shortLessPenalty;
                        }
                        else if (delta === -2) {
                            score -= longLessPenalty;
                        }
                    }
                }
                if (score > bestScore) {
                    bestScore = score;
                    bestFormat = format;
                }
            }
            return __assign({}, bestFormat);
        }
        function DateTimeStyleFormat(dateStyle, timeStyle, dataLocaleData) {
            var dateFormat, timeFormat;
            if (timeStyle !== void 0) {
                invariant(timeStyle === "full" || timeStyle === "long" || timeStyle === "medium" || timeStyle === "short", "invalid timeStyle");
                timeFormat = dataLocaleData.timeFormat[timeStyle];
            }
            if (dateStyle !== void 0) {
                invariant(dateStyle === "full" || dateStyle === "long" || dateStyle === "medium" || dateStyle === "short", "invalid dateStyle");
                dateFormat = dataLocaleData.dateFormat[dateStyle];
            }
            if (dateStyle !== void 0 && timeStyle !== void 0) {
                var format = {};
                for (var field in dateFormat) {
                    if (field !== "pattern") {
                        format[field] = dateFormat[field];
                    }
                }
                for (var field in timeFormat) {
                    if (field !== "pattern" && field !== "pattern12") {
                        format[field] = timeFormat[field];
                    }
                }
                var connector = dataLocaleData.dateTimeFormat[dateStyle];
                var pattern = connector.replace("{0}", timeFormat.pattern).replace("{1}", dateFormat.pattern);
                format.pattern = pattern;
                if ("pattern12" in timeFormat) {
                    var pattern12 = connector.replace("{0}", timeFormat.pattern12).replace("{1}", dateFormat.pattern);
                    format.pattern12 = pattern12;
                }
                return format;
            }
            if (timeStyle !== void 0) {
                return timeFormat;
            }
            invariant(dateStyle !== void 0, "dateStyle should not be undefined");
            return dateFormat;
        }
        function getApplicableZoneData(t, timeZone, tzData) {
            var _a;
            var zoneData = tzData[timeZone];
            if (!zoneData) {
                return [0, false];
            }
            var i = 0;
            var offset = 0;
            var dst = false;
            for (; i <= zoneData.length; i++) {
                if (i === zoneData.length || zoneData[i][0] * 1e3 > t) {
                    ;
                    _a = zoneData[i - 1], offset = _a[2], dst = _a[3];
                    break;
                }
            }
            return [offset * 1e3, dst];
        }
        function ToLocalTime(t, calendar, timeZone, _a) {
            var tzData = _a.tzData;
            invariant(Type(t) === "Number", "invalid time");
            invariant(calendar === "gregory", "We only support Gregory calendar right now");
            var _b = getApplicableZoneData(t, timeZone, tzData), timeZoneOffset = _b[0], inDST = _b[1];
            var tz = t + timeZoneOffset;
            var year = YearFromTime(tz);
            return {
                weekday: WeekDay(tz),
                era: year < 0 ? "BC" : "AD",
                year: year,
                relatedYear: void 0,
                yearName: void 0,
                month: MonthFromTime(tz),
                day: DateFromTime(tz),
                hour: HourFromTime(tz),
                minute: MinFromTime(tz),
                second: SecFromTime(tz),
                millisecond: msFromTime(tz),
                inDST: inDST,
                timeZoneOffset: timeZoneOffset
            };
        }
        function pad(n) {
            if (n < 10) {
                return "0" + n;
            }
            return String(n);
        }
        function offsetToGmtString(gmtFormat, hourFormat, offsetInMs, style) {
            var offsetInMinutes = Math.floor(offsetInMs / 6e4);
            var mins = Math.abs(offsetInMinutes) % 60;
            var hours = Math.floor(Math.abs(offsetInMinutes) / 60);
            var _a = hourFormat.split(";"), positivePattern = _a[0], negativePattern = _a[1];
            var offsetStr = "";
            var pattern = offsetInMs < 0 ? negativePattern : positivePattern;
            if (style === "long") {
                offsetStr = pattern.replace("HH", pad(hours)).replace("H", String(hours)).replace("mm", pad(mins)).replace("m", String(mins));
            }
            else if (mins || hours) {
                if (!mins) {
                    pattern = pattern.replace(/:?m+/, "");
                }
                offsetStr = pattern.replace(/H+/, String(hours)).replace(/m+/, String(mins));
            }
            return gmtFormat.replace("{0}", offsetStr);
        }
        function FormatDateTimePattern(dtf, patternParts, x, _a) {
            var getInternalSlots2 = _a.getInternalSlots, localeData = _a.localeData, getDefaultTimeZone = _a.getDefaultTimeZone, tzData = _a.tzData;
            x = TimeClip(x);
            var internalSlots = getInternalSlots2(dtf);
            var dataLocale = internalSlots.dataLocale;
            var dataLocaleData = localeData[dataLocale];
            var locale = internalSlots.locale;
            var nfOptions = Object.create(null);
            nfOptions.useGrouping = false;
            var nf = new Intl.NumberFormat(locale, nfOptions);
            var nf2Options = Object.create(null);
            nf2Options.minimumIntegerDigits = 2;
            nf2Options.useGrouping = false;
            var nf2 = new Intl.NumberFormat(locale, nf2Options);
            var fractionalSecondDigits = internalSlots.fractionalSecondDigits;
            var nf3;
            if (fractionalSecondDigits !== void 0) {
                var nf3Options = Object.create(null);
                nf3Options.minimumIntegerDigits = fractionalSecondDigits;
                nf3Options.useGrouping = false;
                nf3 = new Intl.NumberFormat(locale, nf3Options);
            }
            var tm = ToLocalTime(x, internalSlots.calendar, internalSlots.timeZone, { tzData: tzData });
            var result = [];
            for (var _i = 0, patternParts_1 = patternParts; _i < patternParts_1.length; _i++) {
                var patternPart = patternParts_1[_i];
                var p = patternPart.type;
                if (p === "literal") {
                    result.push({
                        type: "literal",
                        value: patternPart.value
                    });
                }
                else if (p === "fractionalSecondDigits") {
                    var v = Math.floor(tm.millisecond * Math.pow(10, (fractionalSecondDigits || 0) - 3));
                    result.push({
                        type: "fractionalSecond",
                        value: nf3.format(v)
                    });
                }
                else if (DATE_TIME_PROPS.indexOf(p) > -1) {
                    var fv = "";
                    var f = internalSlots[p];
                    var v = tm[p];
                    if (p === "year" && v <= 0) {
                        v = 1 - v;
                    }
                    if (p === "month") {
                        v++;
                    }
                    var hourCycle = internalSlots.hourCycle;
                    if (p === "hour" && (hourCycle === "h11" || hourCycle === "h12")) {
                        v = v % 12;
                        if (v === 0 && hourCycle === "h12") {
                            v = 12;
                        }
                    }
                    if (p === "hour" && hourCycle === "h24") {
                        if (v === 0) {
                            v = 24;
                        }
                    }
                    if (f === "numeric") {
                        fv = nf.format(v);
                    }
                    else if (f === "2-digit") {
                        fv = nf2.format(v);
                        if (fv.length > 2) {
                            fv = fv.slice(fv.length - 2, fv.length);
                        }
                    }
                    else if (f === "narrow" || f === "short" || f === "long") {
                        if (p === "era") {
                            fv = dataLocaleData[p][f][v];
                        }
                        else if (p === "timeZoneName") {
                            var timeZoneName = dataLocaleData.timeZoneName, gmtFormat = dataLocaleData.gmtFormat, hourFormat = dataLocaleData.hourFormat;
                            var timeZone = internalSlots.timeZone || getDefaultTimeZone();
                            var timeZoneData = timeZoneName[timeZone];
                            if (timeZoneData && timeZoneData[f]) {
                                fv = timeZoneData[f][+tm.inDST];
                            }
                            else {
                                fv = offsetToGmtString(gmtFormat, hourFormat, tm.timeZoneOffset, f);
                            }
                        }
                        else if (p === "month") {
                            fv = dataLocaleData.month[f][v - 1];
                        }
                        else {
                            fv = dataLocaleData[p][f][v];
                        }
                    }
                    result.push({
                        type: p,
                        value: fv
                    });
                }
                else if (p === "ampm") {
                    var v = tm.hour;
                    var fv = void 0;
                    if (v > 11) {
                        fv = dataLocaleData.pm;
                    }
                    else {
                        fv = dataLocaleData.am;
                    }
                    result.push({
                        type: "dayPeriod",
                        value: fv
                    });
                }
                else if (p === "relatedYear") {
                    var v = tm.relatedYear;
                    var fv = nf.format(v);
                    result.push({
                        type: "relatedYear",
                        value: fv
                    });
                }
                else if (p === "yearName") {
                    var v = tm.yearName;
                    var fv = nf.format(v);
                    result.push({
                        type: "yearName",
                        value: fv
                    });
                }
            }
            return result;
        }
        function PartitionPattern(pattern) {
            var result = [];
            var beginIndex = pattern.indexOf("{");
            var endIndex = 0;
            var nextIndex = 0;
            var length = pattern.length;
            while (beginIndex < pattern.length && beginIndex > -1) {
                endIndex = pattern.indexOf("}", beginIndex);
                invariant(endIndex > beginIndex, "Invalid pattern " + pattern);
                if (beginIndex > nextIndex) {
                    result.push({
                        type: "literal",
                        value: pattern.substring(nextIndex, beginIndex)
                    });
                }
                result.push({
                    type: pattern.substring(beginIndex + 1, endIndex),
                    value: void 0
                });
                nextIndex = endIndex + 1;
                beginIndex = pattern.indexOf("{", nextIndex);
            }
            if (nextIndex < length) {
                result.push({
                    type: "literal",
                    value: pattern.substring(nextIndex, length)
                });
            }
            return result;
        }
        function PartitionDateTimePattern(dtf, x, implDetails) {
            x = TimeClip(x);
            if (isNaN(x)) {
                throw new RangeError("invalid time");
            }
            var getInternalSlots2 = implDetails.getInternalSlots;
            var internalSlots = getInternalSlots2(dtf);
            var pattern = internalSlots.pattern;
            return FormatDateTimePattern(dtf, PartitionPattern(pattern), x, implDetails);
        }
        function FormatDateTime(dtf, x, implDetails) {
            var parts = PartitionDateTimePattern(dtf, x, implDetails);
            var result = "";
            for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
                var part = parts_1[_i];
                result += part.value;
            }
            return result;
        }
        var TABLE_2_FIELDS = [
            "era",
            "year",
            "month",
            "day",
            "ampm",
            "hour",
            "minute",
            "second",
            "fractionalSecondDigits"
        ];
        function PartitionDateTimeRangePattern(dtf, x, y, implDetails) {
            x = TimeClip(x);
            if (isNaN(x)) {
                throw new RangeError("Invalid start time");
            }
            y = TimeClip(y);
            if (isNaN(y)) {
                throw new RangeError("Invalid end time");
            }
            var getInternalSlots2 = implDetails.getInternalSlots, tzData = implDetails.tzData;
            var internalSlots = getInternalSlots2(dtf);
            var tm1 = ToLocalTime(x, internalSlots.calendar, internalSlots.timeZone, { tzData: tzData });
            var tm2 = ToLocalTime(y, internalSlots.calendar, internalSlots.timeZone, { tzData: tzData });
            var pattern = internalSlots.pattern, rangePatterns = internalSlots.rangePatterns;
            var rangePattern;
            var dateFieldsPracticallyEqual = true;
            var patternContainsLargerDateField = false;
            for (var _i = 0, TABLE_2_FIELDS_1 = TABLE_2_FIELDS; _i < TABLE_2_FIELDS_1.length; _i++) {
                var fieldName = TABLE_2_FIELDS_1[_i];
                if (dateFieldsPracticallyEqual && !patternContainsLargerDateField) {
                    if (fieldName === "ampm") {
                        var rp = rangePatterns.ampm;
                        if (rangePattern !== void 0 && rp === void 0) {
                            patternContainsLargerDateField = true;
                        }
                        else {
                            var v1 = tm1.hour;
                            var v2 = tm2.hour;
                            if (v1 > 11 && v2 < 11 || v1 < 11 && v2 > 11) {
                                dateFieldsPracticallyEqual = false;
                            }
                            rangePattern = rp;
                        }
                    }
                    else if (fieldName === "fractionalSecondDigits") {
                        var fractionalSecondDigits = internalSlots.fractionalSecondDigits;
                        if (fractionalSecondDigits === void 0) {
                            fractionalSecondDigits = 3;
                        }
                        var v1 = Math.floor(tm1.millisecond * Math.pow(10, fractionalSecondDigits - 3));
                        var v2 = Math.floor(tm2.millisecond * Math.pow(10, fractionalSecondDigits - 3));
                        if (v1 !== v2) {
                            dateFieldsPracticallyEqual = false;
                        }
                    }
                    else {
                        var rp = rangePatterns[fieldName];
                        if (rangePattern !== void 0 && rp === void 0) {
                            patternContainsLargerDateField = true;
                        }
                        else {
                            var v1 = tm1[fieldName];
                            var v2 = tm2[fieldName];
                            if (!SameValue(v1, v2)) {
                                dateFieldsPracticallyEqual = false;
                            }
                            rangePattern = rp;
                        }
                    }
                }
            }
            if (dateFieldsPracticallyEqual) {
                var result_2 = FormatDateTimePattern(dtf, PartitionPattern(pattern), x, implDetails);
                for (var _a = 0, result_1 = result_2; _a < result_1.length; _a++) {
                    var r = result_1[_a];
                    r.source = RangePatternType.shared;
                }
                return result_2;
            }
            var result = [];
            if (rangePattern === void 0) {
                rangePattern = rangePatterns["default"];
                for (var _b = 0, _c = rangePattern.patternParts; _b < _c.length; _b++) {
                    var patternPart = _c[_b];
                    if (patternPart.pattern === "{0}" || patternPart.pattern === "{1}") {
                        patternPart.pattern = pattern;
                    }
                }
            }
            for (var _d = 0, _e = rangePattern.patternParts; _d < _e.length; _d++) {
                var rangePatternPart = _e[_d];
                var source = rangePatternPart.source, pattern_1 = rangePatternPart.pattern;
                var z = void 0;
                if (source === RangePatternType.startRange || source === RangePatternType.shared) {
                    z = x;
                }
                else {
                    z = y;
                }
                var patternParts = PartitionPattern(pattern_1);
                var partResult = FormatDateTimePattern(dtf, patternParts, z, implDetails);
                for (var _f = 0, partResult_1 = partResult; _f < partResult_1.length; _f++) {
                    var r = partResult_1[_f];
                    r.source = source;
                }
                result = result.concat(partResult);
            }
            return result;
        }
        function FormatDateTimeRange(dtf, x, y, implDetails) {
            var parts = PartitionDateTimeRangePattern(dtf, x, y, implDetails);
            var result = "";
            for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
                var part = parts_1[_i];
                result += part.value;
            }
            return result;
        }
        function FormatDateTimeRangeToParts(dtf, x, y, implDetails) {
            var parts = PartitionDateTimeRangePattern(dtf, x, y, implDetails);
            var result = new Array(0);
            for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
                var part = parts_1[_i];
                result.push({
                    type: part.type,
                    value: part.value,
                    source: part.source
                });
            }
            return result;
        }
        function FormatDateTimeToParts(dtf, x, implDetails) {
            var parts = PartitionDateTimePattern(dtf, x, implDetails);
            var result = ArrayCreate(0);
            for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
                var part = parts_1[_i];
                result.push({
                    type: part.type,
                    value: part.value
                });
            }
            return result;
        }
        function ToDateTimeOptions(options, required, defaults) {
            if (options === void 0) {
                options = null;
            }
            else {
                options = ToObject(options);
            }
            options = Object.create(options);
            var needDefaults = true;
            if (required === "date" || required === "any") {
                for (var _i = 0, _a = ["weekday", "year", "month", "day"]; _i < _a.length; _i++) {
                    var prop = _a[_i];
                    var value = options[prop];
                    if (value !== void 0) {
                        needDefaults = false;
                    }
                }
            }
            if (required === "time" || required === "any") {
                for (var _b = 0, _c = [
                    "dayPeriod",
                    "hour",
                    "minute",
                    "second",
                    "fractionalSecondDigits"
                ]; _b < _c.length; _b++) {
                    var prop = _c[_b];
                    var value = options[prop];
                    if (value !== void 0) {
                        needDefaults = false;
                    }
                }
            }
            if (options.dateStyle !== void 0 || options.timeStyle !== void 0) {
                needDefaults = false;
            }
            if (required === "date" && options.timeStyle) {
                throw new TypeError("Intl.DateTimeFormat date was required but timeStyle was included");
            }
            if (required === "time" && options.dateStyle) {
                throw new TypeError("Intl.DateTimeFormat time was required but dateStyle was included");
            }
            if (needDefaults && (defaults === "date" || defaults === "all")) {
                for (var _d = 0, _e = ["year", "month", "day"]; _d < _e.length; _d++) {
                    var prop = _e[_d];
                    options[prop] = "numeric";
                }
            }
            if (needDefaults && (defaults === "time" || defaults === "all")) {
                for (var _f = 0, _g = ["hour", "minute", "second"]; _f < _g.length; _f++) {
                    var prop = _g[_f];
                    options[prop] = "numeric";
                }
            }
            return options;
        }
        function GetOption(opts, prop, type, values, fallback) {
            if (typeof opts !== "object") {
                throw new TypeError("Options must be an object");
            }
            var value = opts[prop];
            if (value !== void 0) {
                if (type !== "boolean" && type !== "string") {
                    throw new TypeError("invalid type");
                }
                if (type === "boolean") {
                    value = Boolean(value);
                }
                if (type === "string") {
                    value = ToString(value);
                }
                if (values !== void 0 && !values.filter(function (val) {
                    return val == value;
                }).length) {
                    throw new RangeError(value + " is not within " + values.join(", "));
                }
                return value;
            }
            return fallback;
        }
        function BestAvailableLocale(availableLocales, locale) {
            var candidate = locale;
            while (true) {
                if (availableLocales.has(candidate)) {
                    return candidate;
                }
                var pos = candidate.lastIndexOf("-");
                if (!~pos) {
                    return void 0;
                }
                if (pos >= 2 && candidate[pos - 2] === "-") {
                    pos -= 2;
                }
                candidate = candidate.slice(0, pos);
            }
        }
        function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {
            var result = { locale: "" };
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
                var locale = requestedLocales_1[_i];
                var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
                var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
                if (availableLocale) {
                    result.locale = availableLocale;
                    if (locale !== noExtensionLocale) {
                        result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);
                    }
                    return result;
                }
            }
            result.locale = getDefaultLocale();
            return result;
        }
        function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {
            var minimizedAvailableLocaleMap = {};
            var minimizedAvailableLocales = new Set();
            availableLocales.forEach(function (locale2) {
                var minimizedLocale = new Intl.Locale(locale2).minimize().toString();
                minimizedAvailableLocaleMap[minimizedLocale] = locale2;
                minimizedAvailableLocales.add(minimizedLocale);
            });
            var foundLocale;
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
                var l = requestedLocales_1[_i];
                if (foundLocale) {
                    break;
                }
                var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
                if (availableLocales.has(noExtensionLocale)) {
                    foundLocale = noExtensionLocale;
                    break;
                }
                if (minimizedAvailableLocales.has(noExtensionLocale)) {
                    foundLocale = minimizedAvailableLocaleMap[noExtensionLocale];
                    break;
                }
                var locale = new Intl.Locale(noExtensionLocale);
                var maximizedRequestedLocale = locale.maximize().toString();
                var minimizedRequestedLocale = locale.minimize().toString();
                if (minimizedAvailableLocales.has(minimizedRequestedLocale)) {
                    foundLocale = minimizedAvailableLocaleMap[minimizedRequestedLocale];
                    break;
                }
                foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale);
            }
            return {
                locale: foundLocale || getDefaultLocale()
            };
        }
        function UnicodeExtensionValue(extension, key) {
            invariant(key.length === 2, "key must have 2 elements");
            var size = extension.length;
            var searchValue = "-" + key + "-";
            var pos = extension.indexOf(searchValue);
            if (pos !== -1) {
                var start = pos + 4;
                var end = start;
                var k = start;
                var done = false;
                while (!done) {
                    var e = extension.indexOf("-", k);
                    var len = void 0;
                    if (e === -1) {
                        len = size - k;
                    }
                    else {
                        len = e - k;
                    }
                    if (len === 2) {
                        done = true;
                    }
                    else if (e === -1) {
                        end = size;
                        done = true;
                    }
                    else {
                        end = e;
                        k = e + 1;
                    }
                }
                return extension.slice(start, end);
            }
            searchValue = "-" + key;
            pos = extension.indexOf(searchValue);
            if (pos !== -1 && pos + 3 === size) {
                return "";
            }
            return void 0;
        }
        function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {
            var matcher = options.localeMatcher;
            var r;
            if (matcher === "lookup") {
                r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale);
            }
            else {
                r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale);
            }
            var foundLocale = r.locale;
            var result = { locale: "", dataLocale: foundLocale };
            var supportedExtension = "-u";
            for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {
                var key = relevantExtensionKeys_1[_i];
                invariant(foundLocale in localeData, "Missing locale data for " + foundLocale);
                var foundLocaleData = localeData[foundLocale];
                invariant(typeof foundLocaleData === "object" && foundLocaleData !== null, "locale data " + key + " must be an object");
                var keyLocaleData = foundLocaleData[key];
                invariant(Array.isArray(keyLocaleData), "keyLocaleData for " + key + " must be an array");
                var value = keyLocaleData[0];
                invariant(typeof value === "string" || value === null, "value must be string or null but got " + typeof value + " in key " + key);
                var supportedExtensionAddition = "";
                if (r.extension) {
                    var requestedValue = UnicodeExtensionValue(r.extension, key);
                    if (requestedValue !== void 0) {
                        if (requestedValue !== "") {
                            if (~keyLocaleData.indexOf(requestedValue)) {
                                value = requestedValue;
                                supportedExtensionAddition = "-" + key + "-" + value;
                            }
                        }
                        else if (~requestedValue.indexOf("true")) {
                            value = "true";
                            supportedExtensionAddition = "-" + key;
                        }
                    }
                }
                if (key in options) {
                    var optionsValue = options[key];
                    invariant(typeof optionsValue === "string" || typeof optionsValue === "undefined" || optionsValue === null, "optionsValue must be String, Undefined or Null");
                    if (~keyLocaleData.indexOf(optionsValue)) {
                        if (optionsValue !== value) {
                            value = optionsValue;
                            supportedExtensionAddition = "";
                        }
                    }
                }
                result[key] = value;
                supportedExtension += supportedExtensionAddition;
            }
            if (supportedExtension.length > 2) {
                var privateIndex = foundLocale.indexOf("-x-");
                if (privateIndex === -1) {
                    foundLocale = foundLocale + supportedExtension;
                }
                else {
                    var preExtension = foundLocale.slice(0, privateIndex);
                    var postExtension = foundLocale.slice(privateIndex, foundLocale.length);
                    foundLocale = preExtension + supportedExtension + postExtension;
                }
                foundLocale = Intl.getCanonicalLocales(foundLocale)[0];
            }
            result.locale = foundLocale;
            return result;
        }
        function IsValidTimeZoneName(tz, _a) {
            var tzData = _a.tzData, uppercaseLinks = _a.uppercaseLinks;
            var uppercasedTz = tz.toUpperCase();
            var zoneNames = new Set();
            Object.keys(tzData).map(function (z) {
                return z.toUpperCase();
            }).forEach(function (z) {
                return zoneNames.add(z);
            });
            return zoneNames.has(uppercasedTz) || uppercasedTz in uppercaseLinks;
        }
        function DefaultNumberOption(val, min, max, fallback) {
            if (val !== void 0) {
                val = Number(val);
                if (isNaN(val) || val < min || val > max) {
                    throw new RangeError(val + " is outside of range [" + min + ", " + max + "]");
                }
                return Math.floor(val);
            }
            return fallback;
        }
        function GetNumberOption(options, property, minimum, maximum, fallback) {
            var val = options[property];
            return DefaultNumberOption(val, minimum, maximum, fallback);
        }
        function isTimeRelated(opt) {
            for (var _i = 0, _a = ["hour", "minute", "second"]; _i < _a.length; _i++) {
                var prop = _a[_i];
                var value = opt[prop];
                if (value !== void 0) {
                    return true;
                }
            }
            return false;
        }
        function resolveHourCycle(hc, hcDefault, hour12) {
            if (hc == null) {
                hc = hcDefault;
            }
            if (hour12 !== void 0) {
                if (hour12) {
                    if (hcDefault === "h11" || hcDefault === "h23") {
                        hc = "h11";
                    }
                    else {
                        hc = "h12";
                    }
                }
                else {
                    invariant(!hour12, "hour12 must not be set");
                    if (hcDefault === "h11" || hcDefault === "h23") {
                        hc = "h23";
                    }
                    else {
                        hc = "h24";
                    }
                }
            }
            return hc;
        }
        var TYPE_REGEX = /^[a-z0-9]{3,8}$/i;
        function InitializeDateTimeFormat(dtf, locales, opts, _a) {
            var getInternalSlots2 = _a.getInternalSlots, availableLocales = _a.availableLocales, localeData = _a.localeData, getDefaultLocale = _a.getDefaultLocale, getDefaultTimeZone = _a.getDefaultTimeZone, relevantExtensionKeys = _a.relevantExtensionKeys, tzData = _a.tzData, uppercaseLinks = _a.uppercaseLinks;
            var requestedLocales = CanonicalizeLocaleList(locales);
            var options = ToDateTimeOptions(opts, "any", "date");
            var opt = Object.create(null);
            var matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit");
            opt.localeMatcher = matcher;
            var calendar = GetOption(options, "calendar", "string", void 0, void 0);
            if (calendar !== void 0 && !TYPE_REGEX.test(calendar)) {
                throw new RangeError("Malformed calendar");
            }
            var internalSlots = getInternalSlots2(dtf);
            opt.ca = calendar;
            var numberingSystem = GetOption(options, "numberingSystem", "string", void 0, void 0);
            if (numberingSystem !== void 0 && !TYPE_REGEX.test(numberingSystem)) {
                throw new RangeError("Malformed numbering system");
            }
            opt.nu = numberingSystem;
            var hour12 = GetOption(options, "hour12", "boolean", void 0, void 0);
            var hourCycle = GetOption(options, "hourCycle", "string", ["h11", "h12", "h23", "h24"], void 0);
            if (hour12 !== void 0) {
                hourCycle = null;
            }
            opt.hc = hourCycle;
            var r = ResolveLocale(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale);
            internalSlots.locale = r.locale;
            calendar = r.ca;
            internalSlots.calendar = calendar;
            internalSlots.hourCycle = r.hc;
            internalSlots.numberingSystem = r.nu;
            var dataLocale = r.dataLocale;
            internalSlots.dataLocale = dataLocale;
            var timeZone = options.timeZone;
            if (timeZone !== void 0) {
                timeZone = String(timeZone);
                if (!IsValidTimeZoneName(timeZone, { tzData: tzData, uppercaseLinks: uppercaseLinks })) {
                    throw new RangeError("Invalid timeZoneName");
                }
                timeZone = CanonicalizeTimeZoneName(timeZone, { tzData: tzData, uppercaseLinks: uppercaseLinks });
            }
            else {
                timeZone = getDefaultTimeZone();
            }
            internalSlots.timeZone = timeZone;
            opt = Object.create(null);
            opt.weekday = GetOption(options, "weekday", "string", ["narrow", "short", "long"], void 0);
            opt.era = GetOption(options, "era", "string", ["narrow", "short", "long"], void 0);
            opt.year = GetOption(options, "year", "string", ["2-digit", "numeric"], void 0);
            opt.month = GetOption(options, "month", "string", ["2-digit", "numeric", "narrow", "short", "long"], void 0);
            opt.day = GetOption(options, "day", "string", ["2-digit", "numeric"], void 0);
            opt.hour = GetOption(options, "hour", "string", ["2-digit", "numeric"], void 0);
            opt.minute = GetOption(options, "minute", "string", ["2-digit", "numeric"], void 0);
            opt.second = GetOption(options, "second", "string", ["2-digit", "numeric"], void 0);
            opt.timeZoneName = GetOption(options, "timeZoneName", "string", ["short", "long"], void 0);
            opt.fractionalSecondDigits = GetNumberOption(options, "fractionalSecondDigits", 1, 3, void 0);
            var dataLocaleData = localeData[dataLocale];
            invariant(!!dataLocaleData, "Missing locale data for " + dataLocale);
            var formats = dataLocaleData.formats[calendar];
            if (!formats) {
                throw new RangeError('Calendar "' + calendar + '" is not supported. Try setting "calendar" to 1 of the following: ' + Object.keys(dataLocaleData.formats).join(", "));
            }
            var formatMatcher = GetOption(options, "formatMatcher", "string", ["basic", "best fit"], "best fit");
            var dateStyle = GetOption(options, "dateStyle", "string", ["full", "long", "medium", "short"], void 0);
            internalSlots.dateStyle = dateStyle;
            var timeStyle = GetOption(options, "timeStyle", "string", ["full", "long", "medium", "short"], void 0);
            internalSlots.timeStyle = timeStyle;
            var bestFormat;
            if (dateStyle === void 0 && timeStyle === void 0) {
                if (formatMatcher === "basic") {
                    bestFormat = BasicFormatMatcher(opt, formats);
                }
                else {
                    if (isTimeRelated(opt)) {
                        var hc = resolveHourCycle(internalSlots.hourCycle, dataLocaleData.hourCycle, hour12);
                        opt.hour12 = hc === "h11" || hc === "h12";
                    }
                    bestFormat = BestFitFormatMatcher(opt, formats);
                }
            }
            else {
                for (var _i = 0, DATE_TIME_PROPS_1 = DATE_TIME_PROPS; _i < DATE_TIME_PROPS_1.length; _i++) {
                    var prop = DATE_TIME_PROPS_1[_i];
                    var p = opt[prop];
                    if (p !== void 0) {
                        throw new TypeError("Intl.DateTimeFormat can't set option " + prop + " when " + (dateStyle ? "dateStyle" : "timeStyle") + " is used");
                    }
                }
                bestFormat = DateTimeStyleFormat(dateStyle, timeStyle, dataLocaleData);
            }
            internalSlots.format = bestFormat;
            for (var prop in opt) {
                var p = bestFormat[prop];
                if (p !== void 0) {
                    internalSlots[prop] = p;
                }
            }
            var pattern;
            var rangePatterns;
            if (internalSlots.hour !== void 0) {
                var hc = resolveHourCycle(internalSlots.hourCycle, dataLocaleData.hourCycle, hour12);
                internalSlots.hourCycle = hc;
                if (hc === "h11" || hc === "h12") {
                    pattern = bestFormat.pattern12;
                    rangePatterns = bestFormat.rangePatterns12;
                }
                else {
                    pattern = bestFormat.pattern;
                    rangePatterns = bestFormat.rangePatterns;
                }
            }
            else {
                internalSlots.hourCycle = void 0;
                pattern = bestFormat.pattern;
                rangePatterns = bestFormat.rangePatterns;
            }
            internalSlots.pattern = pattern;
            internalSlots.rangePatterns = rangePatterns;
            return dtf;
        }
        var SANCTIONED_UNITS = [
            "angle-degree",
            "area-acre",
            "area-hectare",
            "concentr-percent",
            "digital-bit",
            "digital-byte",
            "digital-gigabit",
            "digital-gigabyte",
            "digital-kilobit",
            "digital-kilobyte",
            "digital-megabit",
            "digital-megabyte",
            "digital-petabyte",
            "digital-terabit",
            "digital-terabyte",
            "duration-day",
            "duration-hour",
            "duration-millisecond",
            "duration-minute",
            "duration-month",
            "duration-second",
            "duration-week",
            "duration-year",
            "length-centimeter",
            "length-foot",
            "length-inch",
            "length-kilometer",
            "length-meter",
            "length-mile-scandinavian",
            "length-mile",
            "length-millimeter",
            "length-yard",
            "mass-gram",
            "mass-kilogram",
            "mass-ounce",
            "mass-pound",
            "mass-stone",
            "temperature-celsius",
            "temperature-fahrenheit",
            "volume-fluid-ounce",
            "volume-gallon",
            "volume-liter",
            "volume-milliliter"
        ];
        function removeUnitNamespace(unit) {
            return unit.slice(unit.indexOf("-") + 1);
        }
        var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace);
        var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/;
        var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source);
        var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$");
        function LookupSupportedLocales(availableLocales, requestedLocales) {
            var subset = [];
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
                var locale = requestedLocales_1[_i];
                var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
                var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
                if (availableLocale) {
                    subset.push(availableLocale);
                }
            }
            return subset;
        }
        function SupportedLocales(availableLocales, requestedLocales, options) {
            var matcher = "best fit";
            if (options !== void 0) {
                options = ToObject(options);
                matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit");
            }
            if (matcher === "best fit") {
                return LookupSupportedLocales(availableLocales, requestedLocales);
            }
            return LookupSupportedLocales(availableLocales, requestedLocales);
        }
        var MissingLocaleDataError = function (_super) {
            __extends(MissingLocaleDataError2, _super);
            function MissingLocaleDataError2() {
                var _this = _super !== null && _super.apply(this, arguments) || this;
                _this.type = "MISSING_LOCALE_DATA";
                return _this;
            }
            return MissingLocaleDataError2;
        }(Error);
        var internalSlotMap = new WeakMap();
        function getInternalSlots(x) {
            var internalSlots = internalSlotMap.get(x);
            if (!internalSlots) {
                internalSlots = Object.create(null);
                internalSlotMap.set(x, internalSlots);
            }
            return internalSlots;
        }
        var links_default = {
            "Africa/Asmera": "Africa/Nairobi",
            "Africa/Timbuktu": "Africa/Abidjan",
            "America/Argentina/ComodRivadavia": "America/Argentina/Catamarca",
            "America/Atka": "America/Adak",
            "America/Buenos_Aires": "America/Argentina/Buenos_Aires",
            "America/Catamarca": "America/Argentina/Catamarca",
            "America/Coral_Harbour": "America/Atikokan",
            "America/Cordoba": "America/Argentina/Cordoba",
            "America/Ensenada": "America/Tijuana",
            "America/Fort_Wayne": "America/Indiana/Indianapolis",
            "America/Godthab": "America/Nuuk",
            "America/Indianapolis": "America/Indiana/Indianapolis",
            "America/Jujuy": "America/Argentina/Jujuy",
            "America/Knox_IN": "America/Indiana/Knox",
            "America/Louisville": "America/Kentucky/Louisville",
            "America/Mendoza": "America/Argentina/Mendoza",
            "America/Montreal": "America/Toronto",
            "America/Porto_Acre": "America/Rio_Branco",
            "America/Rosario": "America/Argentina/Cordoba",
            "America/Santa_Isabel": "America/Tijuana",
            "America/Shiprock": "America/Denver",
            "America/Virgin": "America/Port_of_Spain",
            "Antarctica/South_Pole": "Pacific/Auckland",
            "Asia/Ashkhabad": "Asia/Ashgabat",
            "Asia/Calcutta": "Asia/Kolkata",
            "Asia/Chongqing": "Asia/Shanghai",
            "Asia/Chungking": "Asia/Shanghai",
            "Asia/Dacca": "Asia/Dhaka",
            "Asia/Harbin": "Asia/Shanghai",
            "Asia/Kashgar": "Asia/Urumqi",
            "Asia/Katmandu": "Asia/Kathmandu",
            "Asia/Macao": "Asia/Macau",
            "Asia/Rangoon": "Asia/Yangon",
            "Asia/Saigon": "Asia/Ho_Chi_Minh",
            "Asia/Tel_Aviv": "Asia/Jerusalem",
            "Asia/Thimbu": "Asia/Thimphu",
            "Asia/Ujung_Pandang": "Asia/Makassar",
            "Asia/Ulan_Bator": "Asia/Ulaanbaatar",
            "Atlantic/Faeroe": "Atlantic/Faroe",
            "Atlantic/Jan_Mayen": "Europe/Oslo",
            "Australia/ACT": "Australia/Sydney",
            "Australia/Canberra": "Australia/Sydney",
            "Australia/Currie": "Australia/Hobart",
            "Australia/LHI": "Australia/Lord_Howe",
            "Australia/NSW": "Australia/Sydney",
            "Australia/North": "Australia/Darwin",
            "Australia/Queensland": "Australia/Brisbane",
            "Australia/South": "Australia/Adelaide",
            "Australia/Tasmania": "Australia/Hobart",
            "Australia/Victoria": "Australia/Melbourne",
            "Australia/West": "Australia/Perth",
            "Australia/Yancowinna": "Australia/Broken_Hill",
            "Brazil/Acre": "America/Rio_Branco",
            "Brazil/DeNoronha": "America/Noronha",
            "Brazil/East": "America/Sao_Paulo",
            "Brazil/West": "America/Manaus",
            "Canada/Atlantic": "America/Halifax",
            "Canada/Central": "America/Winnipeg",
            "Canada/Eastern": "America/Toronto",
            "Canada/Mountain": "America/Edmonton",
            "Canada/Newfoundland": "America/St_Johns",
            "Canada/Pacific": "America/Vancouver",
            "Canada/Saskatchewan": "America/Regina",
            "Canada/Yukon": "America/Whitehorse",
            "Chile/Continental": "America/Santiago",
            "Chile/EasterIsland": "Pacific/Easter",
            "Cuba": "America/Havana",
            "Egypt": "Africa/Cairo",
            "Eire": "Europe/Dublin",
            "Etc/UCT": "Etc/UTC",
            "Europe/Belfast": "Europe/London",
            "Europe/Tiraspol": "Europe/Chisinau",
            "GB": "Europe/London",
            "GB-Eire": "Europe/London",
            "GMT+0": "Etc/GMT",
            "GMT-0": "Etc/GMT",
            "GMT0": "Etc/GMT",
            "Greenwich": "Etc/GMT",
            "Hongkong": "Asia/Hong_Kong",
            "Iceland": "Atlantic/Reykjavik",
            "Iran": "Asia/Tehran",
            "Israel": "Asia/Jerusalem",
            "Jamaica": "America/Jamaica",
            "Japan": "Asia/Tokyo",
            "Kwajalein": "Pacific/Kwajalein",
            "Libya": "Africa/Tripoli",
            "Mexico/BajaNorte": "America/Tijuana",
            "Mexico/BajaSur": "America/Mazatlan",
            "Mexico/General": "America/Mexico_City",
            "NZ": "Pacific/Auckland",
            "NZ-CHAT": "Pacific/Chatham",
            "Navajo": "America/Denver",
            "PRC": "Asia/Shanghai",
            "Pacific/Johnston": "Pacific/Honolulu",
            "Pacific/Ponape": "Pacific/Pohnpei",
            "Pacific/Samoa": "Pacific/Pago_Pago",
            "Pacific/Truk": "Pacific/Chuuk",
            "Pacific/Yap": "Pacific/Chuuk",
            "Poland": "Europe/Warsaw",
            "Portugal": "Europe/Lisbon",
            "ROC": "Asia/Taipei",
            "ROK": "Asia/Seoul",
            "Singapore": "Asia/Singapore",
            "Turkey": "Europe/Istanbul",
            "UCT": "Etc/UTC",
            "US/Alaska": "America/Anchorage",
            "US/Aleutian": "America/Adak",
            "US/Arizona": "America/Phoenix",
            "US/Central": "America/Chicago",
            "US/East-Indiana": "America/Indiana/Indianapolis",
            "US/Eastern": "America/New_York",
            "US/Hawaii": "Pacific/Honolulu",
            "US/Indiana-Starke": "America/Indiana/Knox",
            "US/Michigan": "America/Detroit",
            "US/Mountain": "America/Denver",
            "US/Pacific": "America/Los_Angeles",
            "US/Samoa": "Pacific/Pago_Pago",
            "UTC": "Etc/UTC",
            "Universal": "Etc/UTC",
            "W-SU": "Europe/Moscow",
            "Zulu": "Etc/UTC"
        };
        function unpack(data) {
            var abbrvs = data.abbrvs.split("|");
            var offsets = data.offsets.split("|").map(function (n) {
                return parseInt(n, 36);
            });
            var packedZones = data.zones;
            var zones = {};
            for (var _i = 0, packedZones_1 = packedZones; _i < packedZones_1.length; _i++) {
                var d = packedZones_1[_i];
                var _a = d.split("|"), zone = _a[0], zoneData = _a.slice(1);
                zones[zone] = zoneData.map(function (z) {
                    return z.split(",");
                }).map(function (_a2) {
                    var ts = _a2[0], abbrvIndex = _a2[1], offsetIndex = _a2[2], dst = _a2[3];
                    return [
                        ts === "" ? -Infinity : parseInt(ts, 36),
                        abbrvs[+abbrvIndex],
                        offsets[+offsetIndex],
                        dst === "1"
                    ];
                });
            }
            return zones;
        }
        var UPPERCASED_LINKS = Object.keys(links_default).reduce(function (all, l) {
            all[l.toUpperCase()] = links_default[l];
            return all;
        }, {});
        var RESOLVED_OPTIONS_KEYS = [
            "locale",
            "calendar",
            "numberingSystem",
            "dateStyle",
            "timeStyle",
            "timeZone",
            "hourCycle",
            "weekday",
            "era",
            "year",
            "month",
            "day",
            "hour",
            "minute",
            "second",
            "timeZoneName"
        ];
        var formatDescriptor = {
            enumerable: false,
            configurable: true,
            get: function () {
                if (typeof this !== "object" || !OrdinaryHasInstance(DateTimeFormat, this)) {
                    throw TypeError("Intl.DateTimeFormat format property accessor called on incompatible receiver");
                }
                var internalSlots = getInternalSlots(this);
                var dtf = this;
                var boundFormat = internalSlots.boundFormat;
                if (boundFormat === void 0) {
                    boundFormat = function (date) {
                        var x;
                        if (date === void 0) {
                            x = Date.now();
                        }
                        else {
                            x = Number(date);
                        }
                        return FormatDateTime(dtf, x, {
                            getInternalSlots: getInternalSlots,
                            localeData: DateTimeFormat.localeData,
                            tzData: DateTimeFormat.tzData,
                            getDefaultTimeZone: DateTimeFormat.getDefaultTimeZone
                        });
                    };
                    try {
                        Object.defineProperty(boundFormat, "name", {
                            configurable: true,
                            enumerable: false,
                            writable: false,
                            value: ""
                        });
                    }
                    catch (e) {
                    }
                    internalSlots.boundFormat = boundFormat;
                }
                return boundFormat;
            }
        };
        try {
            Object.defineProperty(formatDescriptor.get, "name", {
                configurable: true,
                enumerable: false,
                writable: false,
                value: "get format"
            });
        }
        catch (e) {
        }
        var DateTimeFormat = function (locales, options) {
            if (!this || !OrdinaryHasInstance(DateTimeFormat, this)) {
                return new DateTimeFormat(locales, options);
            }
            InitializeDateTimeFormat(this, locales, options, {
                tzData: DateTimeFormat.tzData,
                uppercaseLinks: UPPERCASED_LINKS,
                availableLocales: DateTimeFormat.availableLocales,
                relevantExtensionKeys: DateTimeFormat.relevantExtensionKeys,
                getDefaultLocale: DateTimeFormat.getDefaultLocale,
                getDefaultTimeZone: DateTimeFormat.getDefaultTimeZone,
                getInternalSlots: getInternalSlots,
                localeData: DateTimeFormat.localeData
            });
            var internalSlots = getInternalSlots(this);
            var dataLocale = internalSlots.dataLocale;
            var dataLocaleData = DateTimeFormat.localeData[dataLocale];
            invariant(dataLocaleData !== void 0, "Cannot load locale-dependent data for " + dataLocale + ".");
        };
        defineProperty(DateTimeFormat, "supportedLocalesOf", {
            value: function supportedLocalesOf(locales, options) {
                return SupportedLocales(DateTimeFormat.availableLocales, CanonicalizeLocaleList(locales), options);
            }
        });
        defineProperty(DateTimeFormat.prototype, "resolvedOptions", {
            value: function resolvedOptions() {
                if (typeof this !== "object" || !OrdinaryHasInstance(DateTimeFormat, this)) {
                    throw TypeError("Method Intl.DateTimeFormat.prototype.resolvedOptions called on incompatible receiver");
                }
                var internalSlots = getInternalSlots(this);
                var ro = {};
                for (var _i = 0, RESOLVED_OPTIONS_KEYS_1 = RESOLVED_OPTIONS_KEYS; _i < RESOLVED_OPTIONS_KEYS_1.length; _i++) {
                    var key = RESOLVED_OPTIONS_KEYS_1[_i];
                    var value = internalSlots[key];
                    if (key === "hourCycle") {
                        var hour12 = value === "h11" || value === "h12" ? true : value === "h23" || value === "h24" ? false : void 0;
                        if (hour12 !== void 0) {
                            ro.hour12 = hour12;
                        }
                    }
                    if (DATE_TIME_PROPS.indexOf(key) > -1) {
                        if (internalSlots.dateStyle !== void 0 || internalSlots.timeStyle !== void 0) {
                            value = void 0;
                        }
                    }
                    if (value !== void 0) {
                        ro[key] = value;
                    }
                }
                return ro;
            }
        });
        defineProperty(DateTimeFormat.prototype, "formatToParts", {
            value: function formatToParts2(date) {
                if (date === void 0) {
                    date = Date.now();
                }
                else {
                    date = ToNumber(date);
                }
                return FormatDateTimeToParts(this, date, {
                    getInternalSlots: getInternalSlots,
                    localeData: DateTimeFormat.localeData,
                    tzData: DateTimeFormat.tzData,
                    getDefaultTimeZone: DateTimeFormat.getDefaultTimeZone
                });
            }
        });
        defineProperty(DateTimeFormat.prototype, "formatRangeToParts", {
            value: function formatRangeToParts(startDate, endDate) {
                var dtf = this;
                if (typeof dtf !== "object") {
                    throw new TypeError();
                }
                if (startDate === void 0 || endDate === void 0) {
                    throw new TypeError("startDate/endDate cannot be undefined");
                }
                var x = ToNumber(startDate);
                var y = ToNumber(endDate);
                return FormatDateTimeRangeToParts(dtf, x, y, {
                    getInternalSlots: getInternalSlots,
                    localeData: DateTimeFormat.localeData,
                    tzData: DateTimeFormat.tzData,
                    getDefaultTimeZone: DateTimeFormat.getDefaultTimeZone
                });
            }
        });
        defineProperty(DateTimeFormat.prototype, "formatRange", {
            value: function formatRange(startDate, endDate) {
                var dtf = this;
                if (typeof dtf !== "object") {
                    throw new TypeError();
                }
                if (startDate === void 0 || endDate === void 0) {
                    throw new TypeError("startDate/endDate cannot be undefined");
                }
                var x = ToNumber(startDate);
                var y = ToNumber(endDate);
                return FormatDateTimeRange(dtf, x, y, {
                    getInternalSlots: getInternalSlots,
                    localeData: DateTimeFormat.localeData,
                    tzData: DateTimeFormat.tzData,
                    getDefaultTimeZone: DateTimeFormat.getDefaultTimeZone
                });
            }
        });
        var DEFAULT_TIMEZONE = "UTC";
        DateTimeFormat.__setDefaultTimeZone = function (timeZone) {
            if (timeZone !== void 0) {
                timeZone = String(timeZone);
                if (!IsValidTimeZoneName(timeZone, {
                    tzData: DateTimeFormat.tzData,
                    uppercaseLinks: UPPERCASED_LINKS
                })) {
                    throw new RangeError("Invalid timeZoneName");
                }
                timeZone = CanonicalizeTimeZoneName(timeZone, {
                    tzData: DateTimeFormat.tzData,
                    uppercaseLinks: UPPERCASED_LINKS
                });
            }
            else {
                timeZone = DEFAULT_TIMEZONE;
            }
            DateTimeFormat.__defaultTimeZone = timeZone;
        };
        DateTimeFormat.relevantExtensionKeys = ["nu", "ca", "hc"];
        DateTimeFormat.__defaultTimeZone = DEFAULT_TIMEZONE;
        DateTimeFormat.getDefaultTimeZone = function () {
            return DateTimeFormat.__defaultTimeZone;
        };
        DateTimeFormat.__addLocaleData = function __addLocaleData() {
            var data = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                data[_i] = arguments[_i];
            }
            var _loop_1 = function (d2, locale2) {
                var dateFormat = d2.dateFormat, timeFormat = d2.timeFormat, dateTimeFormat = d2.dateTimeFormat, formats = d2.formats, intervalFormats = d2.intervalFormats, rawData = __rest(d2, ["dateFormat", "timeFormat", "dateTimeFormat", "formats", "intervalFormats"]);
                var processedData = __assign(__assign({}, rawData), { dateFormat: {
                        full: parseDateTimeSkeleton(dateFormat.full),
                        long: parseDateTimeSkeleton(dateFormat.long),
                        medium: parseDateTimeSkeleton(dateFormat.medium),
                        short: parseDateTimeSkeleton(dateFormat.short)
                    }, timeFormat: {
                        full: parseDateTimeSkeleton(timeFormat.full),
                        long: parseDateTimeSkeleton(timeFormat.long),
                        medium: parseDateTimeSkeleton(timeFormat.medium),
                        short: parseDateTimeSkeleton(timeFormat.short)
                    }, dateTimeFormat: {
                        full: parseDateTimeSkeleton(dateTimeFormat.full).pattern,
                        long: parseDateTimeSkeleton(dateTimeFormat.long).pattern,
                        medium: parseDateTimeSkeleton(dateTimeFormat.medium).pattern,
                        short: parseDateTimeSkeleton(dateTimeFormat.short).pattern
                    }, formats: {} });
                var _loop_2 = function (calendar2) {
                    processedData.formats[calendar2] = Object.keys(formats[calendar2]).map(function (skeleton) {
                        return parseDateTimeSkeleton(skeleton, formats[calendar2][skeleton], intervalFormats[skeleton], intervalFormats.intervalFormatFallback);
                    });
                };
                for (var calendar in formats) {
                    _loop_2(calendar);
                }
                var minimizedLocale = new Intl.Locale(locale2).minimize().toString();
                DateTimeFormat.localeData[locale2] = DateTimeFormat.localeData[minimizedLocale] = processedData;
                DateTimeFormat.availableLocales.add(locale2);
                DateTimeFormat.availableLocales.add(minimizedLocale);
                if (!DateTimeFormat.__defaultLocale) {
                    DateTimeFormat.__defaultLocale = minimizedLocale;
                }
            };
            for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {
                var _b = data_1[_a], d = _b.data, locale = _b.locale;
                _loop_1(d, locale);
            }
        };
        Object.defineProperty(DateTimeFormat.prototype, "format", formatDescriptor);
        DateTimeFormat.__defaultLocale = "";
        DateTimeFormat.localeData = {};
        DateTimeFormat.availableLocales = new Set();
        DateTimeFormat.getDefaultLocale = function () {
            return DateTimeFormat.__defaultLocale;
        };
        DateTimeFormat.polyfilled = true;
        DateTimeFormat.tzData = {};
        DateTimeFormat.__addTZData = function (d) {
            DateTimeFormat.tzData = unpack(d);
        };
        try {
            if (typeof Symbol !== "undefined") {
                Object.defineProperty(DateTimeFormat.prototype, Symbol.toStringTag, {
                    value: "Intl.DateTimeFormat",
                    writable: false,
                    enumerable: false,
                    configurable: true
                });
            }
            Object.defineProperty(DateTimeFormat.prototype.constructor, "length", {
                value: 1,
                writable: false,
                enumerable: false,
                configurable: true
            });
        }
        catch (e) {
        }
        function supportsDateStyle() {
            try {
                return !!new Intl.DateTimeFormat(void 0, {
                    dateStyle: "short"
                }).resolvedOptions().dateStyle;
            }
            catch (e) {
                return false;
            }
        }
        function hasChromeLt71Bug() {
            try {
                return new Intl.DateTimeFormat("en", {
                    hourCycle: "h11",
                    hour: "numeric"
                }).formatToParts(0)[2].type !== "dayPeriod";
            }
            catch (e) {
                return false;
            }
        }
        function hasUnthrownDateTimeStyleBug() {
            try {
                return !!new Intl.DateTimeFormat("en", {
                    dateStyle: "short",
                    hour: "numeric"
                }).format(new Date(0));
            }
            catch (e) {
                return false;
            }
        }
        function shouldPolyfill() {
            return !("DateTimeFormat" in Intl) || !("formatToParts" in Intl.DateTimeFormat.prototype) || !("formatRange" in Intl.DateTimeFormat.prototype) || hasChromeLt71Bug() || hasUnthrownDateTimeStyleBug() || !supportsDateStyle();
        }
        function toLocaleString(x, locales, options) {
            var dtf = new DateTimeFormat(locales, options);
            return dtf.format(x);
        }
        function toLocaleDateString(x, locales, options) {
            var dtf = new DateTimeFormat(locales, ToDateTimeOptions(options, "date", "date"));
            return dtf.format(x);
        }
        function toLocaleTimeString(x, locales, options) {
            var dtf = new DateTimeFormat(locales, ToDateTimeOptions(options, "time", "time"));
            return dtf.format(x);
        }
        if (shouldPolyfill()) {
            defineProperty(Intl, "DateTimeFormat", { value: DateTimeFormat });
            defineProperty(Date.prototype, "toLocaleString", {
                value: function toLocaleString2(locales, options) {
                    return toLocaleString(this, locales, options);
                }
            });
            defineProperty(Date.prototype, "toLocaleDateString", {
                value: function toLocaleDateString2(locales, options) {
                    return toLocaleDateString(this, locales, options);
                }
            });
            defineProperty(Date.prototype, "toLocaleTimeString", {
                value: function toLocaleTimeString2(locales, options) {
                    return toLocaleTimeString(this, locales, options);
                }
            });
        }
    })();
    if (Intl.NumberFormat && typeof Intl.NumberFormat.__addLocaleData === 'function') {
        Intl.NumberFormat.__addLocaleData({ "data": { "units": { "simple": { "degree": { "long": { "other": "{0} degrees", "one": "{0} degree" }, "short": { "other": "{0} deg" }, "narrow": { "other": "{0}°" }, "perUnit": {} }, "hectare": { "long": { "other": "{0} hectares", "one": "{0} hectare" }, "short": { "other": "{0} ha" }, "narrow": { "other": "{0}ha" }, "perUnit": {} }, "acre": { "long": { "other": "{0} acres", "one": "{0} acre" }, "short": { "other": "{0} ac" }, "narrow": { "other": "{0}ac" }, "perUnit": {} }, "percent": { "long": { "other": "{0} percent" }, "short": { "other": "{0}%" }, "narrow": { "other": "{0}%" }, "perUnit": {} }, "liter-per-kilometer": { "long": { "other": "{0} liters per kilometer", "one": "{0} liter per kilometer" }, "short": { "other": "{0} L/km" }, "narrow": { "other": "{0}L/km" }, "perUnit": {} }, "mile-per-gallon": { "long": { "other": "{0} miles per gallon", "one": "{0} mile per gallon" }, "short": { "other": "{0} mpg" }, "narrow": { "other": "{0}mpg" }, "perUnit": {} }, "petabyte": { "long": { "other": "{0} petabytes", "one": "{0} petabyte" }, "short": { "other": "{0} PB" }, "narrow": { "other": "{0}PB" }, "perUnit": {} }, "terabyte": { "long": { "other": "{0} terabytes", "one": "{0} terabyte" }, "short": { "other": "{0} TB" }, "narrow": { "other": "{0}TB" }, "perUnit": {} }, "terabit": { "long": { "other": "{0} terabits", "one": "{0} terabit" }, "short": { "other": "{0} Tb" }, "narrow": { "other": "{0}Tb" }, "perUnit": {} }, "gigabyte": { "long": { "other": "{0} gigabytes", "one": "{0} gigabyte" }, "short": { "other": "{0} GB" }, "narrow": { "other": "{0}GB" }, "perUnit": {} }, "gigabit": { "long": { "other": "{0} gigabits", "one": "{0} gigabit" }, "short": { "other": "{0} Gb" }, "narrow": { "other": "{0}Gb" }, "perUnit": {} }, "megabyte": { "long": { "other": "{0} megabytes", "one": "{0} megabyte" }, "short": { "other": "{0} MB" }, "narrow": { "other": "{0}MB" }, "perUnit": {} }, "megabit": { "long": { "other": "{0} megabits", "one": "{0} megabit" }, "short": { "other": "{0} Mb" }, "narrow": { "other": "{0}Mb" }, "perUnit": {} }, "kilobyte": { "long": { "other": "{0} kilobytes", "one": "{0} kilobyte" }, "short": { "other": "{0} kB" }, "narrow": { "other": "{0}kB" }, "perUnit": {} }, "kilobit": { "long": { "other": "{0} kilobits", "one": "{0} kilobit" }, "short": { "other": "{0} kb" }, "narrow": { "other": "{0}kb" }, "perUnit": {} }, "byte": { "long": { "other": "{0} bytes", "one": "{0} byte" }, "short": { "other": "{0} byte" }, "narrow": { "other": "{0}B" }, "perUnit": {} }, "bit": { "long": { "other": "{0} bits", "one": "{0} bit" }, "short": { "other": "{0} bit" }, "narrow": { "other": "{0}bit" }, "perUnit": {} }, "year": { "long": { "other": "{0} years", "one": "{0} year" }, "short": { "other": "{0} yrs", "one": "{0} yr" }, "narrow": { "other": "{0}y" }, "perUnit": { "long": "{0} per year", "short": "{0}/y", "narrow": "{0}/y" } }, "month": { "long": { "other": "{0} months", "one": "{0} month" }, "short": { "other": "{0} mths", "one": "{0} mth" }, "narrow": { "other": "{0}m" }, "perUnit": { "long": "{0} per month", "short": "{0}/m", "narrow": "{0}/m" } }, "week": { "long": { "other": "{0} weeks", "one": "{0} week" }, "short": { "other": "{0} wks", "one": "{0} wk" }, "narrow": { "other": "{0}w" }, "perUnit": { "long": "{0} per week", "short": "{0}/w", "narrow": "{0}/w" } }, "day": { "long": { "other": "{0} days", "one": "{0} day" }, "short": { "other": "{0} days", "one": "{0} day" }, "narrow": { "other": "{0}d" }, "perUnit": { "long": "{0} per day", "short": "{0}/d", "narrow": "{0}/d" } }, "hour": { "long": { "other": "{0} hours", "one": "{0} hour" }, "short": { "other": "{0} hr" }, "narrow": { "other": "{0}h" }, "perUnit": { "long": "{0} per hour", "short": "{0}/h", "narrow": "{0}/h" } }, "minute": { "long": { "other": "{0} minutes", "one": "{0} minute" }, "short": { "other": "{0} min" }, "narrow": { "other": "{0}m" }, "perUnit": { "long": "{0} per minute", "short": "{0}/min", "narrow": "{0}/min" } }, "second": { "long": { "other": "{0} seconds", "one": "{0} second" }, "short": { "other": "{0} sec" }, "narrow": { "other": "{0}s" }, "perUnit": { "long": "{0} per second", "short": "{0}/s", "narrow": "{0}/s" } }, "millisecond": { "long": { "other": "{0} milliseconds", "one": "{0} millisecond" }, "short": { "other": "{0} ms" }, "narrow": { "other": "{0}ms" }, "perUnit": {} }, "kilometer": { "long": { "other": "{0} kilometers", "one": "{0} kilometer" }, "short": { "other": "{0} km" }, "narrow": { "other": "{0}km" }, "perUnit": { "long": "{0} per kilometer", "short": "{0}/km", "narrow": "{0}/km" } }, "meter": { "long": { "other": "{0} meters", "one": "{0} meter" }, "short": { "other": "{0} m" }, "narrow": { "other": "{0}m" }, "perUnit": { "long": "{0} per meter", "short": "{0}/m", "narrow": "{0}/m" } }, "centimeter": { "long": { "other": "{0} centimeters", "one": "{0} centimeter" }, "short": { "other": "{0} cm" }, "narrow": { "other": "{0}cm" }, "perUnit": { "long": "{0} per centimeter", "short": "{0}/cm", "narrow": "{0}/cm" } }, "millimeter": { "long": { "other": "{0} millimeters", "one": "{0} millimeter" }, "short": { "other": "{0} mm" }, "narrow": { "other": "{0}mm" }, "perUnit": {} }, "mile": { "long": { "other": "{0} miles", "one": "{0} mile" }, "short": { "other": "{0} mi" }, "narrow": { "other": "{0}mi" }, "perUnit": {} }, "yard": { "long": { "other": "{0} yards", "one": "{0} yard" }, "short": { "other": "{0} yd" }, "narrow": { "other": "{0}yd" }, "perUnit": {} }, "foot": { "long": { "other": "{0} feet", "one": "{0} foot" }, "short": { "other": "{0} ft" }, "narrow": { "other": "{0}′" }, "perUnit": { "long": "{0} per foot", "short": "{0}/ft", "narrow": "{0}/ft" } }, "inch": { "long": { "other": "{0} inches", "one": "{0} inch" }, "short": { "other": "{0} in" }, "narrow": { "other": "{0}″" }, "perUnit": { "long": "{0} per inch", "short": "{0}/in", "narrow": "{0}/in" } }, "mile-scandinavian": { "long": { "other": "{0} miles-scandinavian", "one": "{0} mile-scandinavian" }, "short": { "other": "{0} smi" }, "narrow": { "other": "{0}smi" }, "perUnit": {} }, "kilogram": { "long": { "other": "{0} kilograms", "one": "{0} kilogram" }, "short": { "other": "{0} kg" }, "narrow": { "other": "{0}kg" }, "perUnit": { "long": "{0} per kilogram", "short": "{0}/kg", "narrow": "{0}/kg" } }, "gram": { "long": { "other": "{0} grams", "one": "{0} gram" }, "short": { "other": "{0} g" }, "narrow": { "other": "{0}g" }, "perUnit": { "long": "{0} per gram", "short": "{0}/g", "narrow": "{0}/g" } }, "stone": { "long": { "other": "{0} stones", "one": "{0} stone" }, "short": { "other": "{0} st" }, "narrow": { "other": "{0}st" }, "perUnit": {} }, "pound": { "long": { "other": "{0} pounds", "one": "{0} pound" }, "short": { "other": "{0} lb" }, "narrow": { "other": "{0}#" }, "perUnit": { "long": "{0} per pound", "short": "{0}/lb", "narrow": "{0}/lb" } }, "ounce": { "long": { "other": "{0} ounces", "one": "{0} ounce" }, "short": { "other": "{0} oz" }, "narrow": { "other": "{0}oz" }, "perUnit": { "long": "{0} per ounce", "short": "{0}/oz", "narrow": "{0}/oz" } }, "kilometer-per-hour": { "long": { "other": "{0} kilometers per hour", "one": "{0} kilometer per hour" }, "short": { "other": "{0} km/h" }, "narrow": { "other": "{0}km/h" }, "perUnit": {} }, "meter-per-second": { "long": { "other": "{0} meters per second", "one": "{0} meter per second" }, "short": { "other": "{0} m/s" }, "narrow": { "other": "{0}m/s" }, "perUnit": {} }, "mile-per-hour": { "long": { "other": "{0} miles per hour", "one": "{0} mile per hour" }, "short": { "other": "{0} mph" }, "narrow": { "other": "{0}mph" }, "perUnit": {} }, "celsius": { "long": { "other": "{0} degrees Celsius", "one": "{0} degree Celsius" }, "short": { "other": "{0}°C" }, "narrow": { "other": "{0}°C" }, "perUnit": {} }, "fahrenheit": { "long": { "other": "{0} degrees Fahrenheit", "one": "{0} degree Fahrenheit" }, "short": { "other": "{0}°F" }, "narrow": { "other": "{0}°" }, "perUnit": {} }, "liter": { "long": { "other": "{0} liters", "one": "{0} liter" }, "short": { "other": "{0} L" }, "narrow": { "other": "{0}L" }, "perUnit": { "long": "{0} per liter", "short": "{0}/L", "narrow": "{0}/L" } }, "milliliter": { "long": { "other": "{0} milliliters", "one": "{0} milliliter" }, "short": { "other": "{0} mL" }, "narrow": { "other": "{0}mL" }, "perUnit": {} }, "gallon": { "long": { "other": "{0} gallons", "one": "{0} gallon" }, "short": { "other": "{0} gal" }, "narrow": { "other": "{0}gal" }, "perUnit": { "long": "{0} per gallon", "short": "{0}/gal US", "narrow": "{0}/gal" } }, "fluid-ounce": { "long": { "other": "{0} fluid ounces", "one": "{0} fluid ounce" }, "short": { "other": "{0} fl oz" }, "narrow": { "other": "{0}fl oz" }, "perUnit": {} } }, "compound": { "per": { "long": "{0} per {1}", "short": "{0}/{1}", "narrow": "{0}/{1}" } } }, "currencies": { "ADP": { "displayName": { "other": "Andorran pesetas", "one": "Andorran peseta" }, "symbol": "ADP", "narrow": "ADP" }, "AED": { "displayName": { "other": "UAE dirhams", "one": "UAE dirham" }, "symbol": "AED", "narrow": "AED" }, "AFA": { "displayName": { "other": "Afghan afghanis (1927–2002)", "one": "Afghan afghani (1927–2002)" }, "symbol": "AFA", "narrow": "AFA" }, "AFN": { "displayName": { "other": "Afghan Afghanis", "one": "Afghan Afghani" }, "symbol": "AFN", "narrow": "؋" }, "ALK": { "displayName": { "other": "Albanian lekë (1946–1965)", "one": "Albanian lek (1946–1965)" }, "symbol": "ALK", "narrow": "ALK" }, "ALL": { "displayName": { "other": "Albanian lekë", "one": "Albanian lek" }, "symbol": "ALL", "narrow": "ALL" }, "AMD": { "displayName": { "other": "Armenian drams", "one": "Armenian dram" }, "symbol": "AMD", "narrow": "֏" }, "ANG": { "displayName": { "other": "Netherlands Antillean guilders", "one": "Netherlands Antillean guilder" }, "symbol": "ANG", "narrow": "ANG" }, "AOA": { "displayName": { "other": "Angolan kwanzas", "one": "Angolan kwanza" }, "symbol": "AOA", "narrow": "Kz" }, "AOK": { "displayName": { "other": "Angolan kwanzas (1977–1991)", "one": "Angolan kwanza (1977–1991)" }, "symbol": "AOK", "narrow": "AOK" }, "AON": { "displayName": { "other": "Angolan new kwanzas (1990–2000)", "one": "Angolan new kwanza (1990–2000)" }, "symbol": "AON", "narrow": "AON" }, "AOR": { "displayName": { "other": "Angolan readjusted kwanzas (1995–1999)", "one": "Angolan readjusted kwanza (1995–1999)" }, "symbol": "AOR", "narrow": "AOR" }, "ARA": { "displayName": { "other": "Argentine australs", "one": "Argentine austral" }, "symbol": "ARA", "narrow": "ARA" }, "ARL": { "displayName": { "other": "Argentine pesos ley (1970–1983)", "one": "Argentine peso ley (1970–1983)" }, "symbol": "ARL", "narrow": "ARL" }, "ARM": { "displayName": { "other": "Argentine pesos (1881–1970)", "one": "Argentine peso (1881–1970)" }, "symbol": "ARM", "narrow": "ARM" }, "ARP": { "displayName": { "other": "Argentine pesos (1983–1985)", "one": "Argentine peso (1983–1985)" }, "symbol": "ARP", "narrow": "ARP" }, "ARS": { "displayName": { "other": "Argentine pesos", "one": "Argentine peso" }, "symbol": "ARS", "narrow": "$" }, "ATS": { "displayName": { "other": "Austrian schillings", "one": "Austrian schilling" }, "symbol": "ATS", "narrow": "ATS" }, "AUD": { "displayName": { "other": "Australian dollars", "one": "Australian dollar" }, "symbol": "A$", "narrow": "$" }, "AWG": { "displayName": { "other": "Aruban florin" }, "symbol": "AWG", "narrow": "AWG" }, "AZM": { "displayName": { "other": "Azerbaijani manats (1993–2006)", "one": "Azerbaijani manat (1993–2006)" }, "symbol": "AZM", "narrow": "AZM" }, "AZN": { "displayName": { "other": "Azerbaijani manats", "one": "Azerbaijani manat" }, "symbol": "AZN", "narrow": "₼" }, "BAD": { "displayName": { "other": "Bosnia-Herzegovina dinars (1992–1994)", "one": "Bosnia-Herzegovina dinar (1992–1994)" }, "symbol": "BAD", "narrow": "BAD" }, "BAM": { "displayName": { "other": "Bosnia-Herzegovina convertible marks", "one": "Bosnia-Herzegovina convertible mark" }, "symbol": "BAM", "narrow": "KM" }, "BAN": { "displayName": { "other": "Bosnia-Herzegovina new dinars (1994–1997)", "one": "Bosnia-Herzegovina new dinar (1994–1997)" }, "symbol": "BAN", "narrow": "BAN" }, "BBD": { "displayName": { "other": "Barbadian dollars", "one": "Barbadian dollar" }, "symbol": "BBD", "narrow": "$" }, "BDT": { "displayName": { "other": "Bangladeshi takas", "one": "Bangladeshi taka" }, "symbol": "BDT", "narrow": "৳" }, "BEC": { "displayName": { "other": "Belgian francs (convertible)", "one": "Belgian franc (convertible)" }, "symbol": "BEC", "narrow": "BEC" }, "BEF": { "displayName": { "other": "Belgian francs", "one": "Belgian franc" }, "symbol": "BEF", "narrow": "BEF" }, "BEL": { "displayName": { "other": "Belgian francs (financial)", "one": "Belgian franc (financial)" }, "symbol": "BEL", "narrow": "BEL" }, "BGL": { "displayName": { "other": "Bulgarian hard leva", "one": "Bulgarian hard lev" }, "symbol": "BGL", "narrow": "BGL" }, "BGM": { "displayName": { "other": "Bulgarian socialist leva", "one": "Bulgarian socialist lev" }, "symbol": "BGM", "narrow": "BGM" }, "BGN": { "displayName": { "other": "Bulgarian leva", "one": "Bulgarian lev" }, "symbol": "BGN", "narrow": "BGN" }, "BGO": { "displayName": { "other": "Bulgarian leva (1879–1952)", "one": "Bulgarian lev (1879–1952)" }, "symbol": "BGO", "narrow": "BGO" }, "BHD": { "displayName": { "other": "Bahraini dinars", "one": "Bahraini dinar" }, "symbol": "BHD", "narrow": "BHD" }, "BIF": { "displayName": { "other": "Burundian francs", "one": "Burundian franc" }, "symbol": "BIF", "narrow": "BIF" }, "BMD": { "displayName": { "other": "Bermudan dollars", "one": "Bermudan dollar" }, "symbol": "BMD", "narrow": "$" }, "BND": { "displayName": { "other": "Brunei dollars", "one": "Brunei dollar" }, "symbol": "BND", "narrow": "$" }, "BOB": { "displayName": { "other": "Bolivian bolivianos", "one": "Bolivian boliviano" }, "symbol": "BOB", "narrow": "Bs" }, "BOL": { "displayName": { "other": "Bolivian bolivianos (1863–1963)", "one": "Bolivian boliviano (1863–1963)" }, "symbol": "BOL", "narrow": "BOL" }, "BOP": { "displayName": { "other": "Bolivian pesos", "one": "Bolivian peso" }, "symbol": "BOP", "narrow": "BOP" }, "BOV": { "displayName": { "other": "Bolivian mvdols", "one": "Bolivian mvdol" }, "symbol": "BOV", "narrow": "BOV" }, "BRB": { "displayName": { "other": "Brazilian new cruzeiros (1967–1986)", "one": "Brazilian new cruzeiro (1967–1986)" }, "symbol": "BRB", "narrow": "BRB" }, "BRC": { "displayName": { "other": "Brazilian cruzados (1986–1989)", "one": "Brazilian cruzado (1986–1989)" }, "symbol": "BRC", "narrow": "BRC" }, "BRE": { "displayName": { "other": "Brazilian cruzeiros (1990–1993)", "one": "Brazilian cruzeiro (1990–1993)" }, "symbol": "BRE", "narrow": "BRE" }, "BRL": { "displayName": { "other": "Brazilian reals", "one": "Brazilian real" }, "symbol": "R$", "narrow": "R$" }, "BRN": { "displayName": { "other": "Brazilian new cruzados (1989–1990)", "one": "Brazilian new cruzado (1989–1990)" }, "symbol": "BRN", "narrow": "BRN" }, "BRR": { "displayName": { "other": "Brazilian cruzeiros (1993–1994)", "one": "Brazilian cruzeiro (1993–1994)" }, "symbol": "BRR", "narrow": "BRR" }, "BRZ": { "displayName": { "other": "Brazilian cruzeiros (1942–1967)", "one": "Brazilian cruzeiro (1942–1967)" }, "symbol": "BRZ", "narrow": "BRZ" }, "BSD": { "displayName": { "other": "Bahamian dollars", "one": "Bahamian dollar" }, "symbol": "BSD", "narrow": "$" }, "BTN": { "displayName": { "other": "Bhutanese ngultrums", "one": "Bhutanese ngultrum" }, "symbol": "BTN", "narrow": "BTN" }, "BUK": { "displayName": { "other": "Burmese kyats", "one": "Burmese kyat" }, "symbol": "BUK", "narrow": "BUK" }, "BWP": { "displayName": { "other": "Botswanan pulas", "one": "Botswanan pula" }, "symbol": "BWP", "narrow": "P" }, "BYB": { "displayName": { "other": "Belarusian rubles (1994–1999)", "one": "Belarusian ruble (1994–1999)" }, "symbol": "BYB", "narrow": "BYB" }, "BYN": { "displayName": { "other": "Belarusian rubles", "one": "Belarusian ruble" }, "symbol": "BYN", "narrow": "р." }, "BYR": { "displayName": { "other": "Belarusian rubles (2000–2016)", "one": "Belarusian ruble (2000–2016)" }, "symbol": "BYR", "narrow": "BYR" }, "BZD": { "displayName": { "other": "Belize dollars", "one": "Belize dollar" }, "symbol": "BZD", "narrow": "$" }, "CAD": { "displayName": { "other": "Canadian dollars", "one": "Canadian dollar" }, "symbol": "CA$", "narrow": "$" }, "CDF": { "displayName": { "other": "Congolese francs", "one": "Congolese franc" }, "symbol": "CDF", "narrow": "CDF" }, "CHE": { "displayName": { "other": "WIR euros", "one": "WIR euro" }, "symbol": "CHE", "narrow": "CHE" }, "CHF": { "displayName": { "other": "Swiss francs", "one": "Swiss franc" }, "symbol": "CHF", "narrow": "CHF" }, "CHW": { "displayName": { "other": "WIR francs", "one": "WIR franc" }, "symbol": "CHW", "narrow": "CHW" }, "CLE": { "displayName": { "other": "Chilean escudos", "one": "Chilean escudo" }, "symbol": "CLE", "narrow": "CLE" }, "CLF": { "displayName": { "other": "Chilean units of account (UF)", "one": "Chilean unit of account (UF)" }, "symbol": "CLF", "narrow": "CLF" }, "CLP": { "displayName": { "other": "Chilean pesos", "one": "Chilean peso" }, "symbol": "CLP", "narrow": "$" }, "CNH": { "displayName": { "other": "Chinese yuan (offshore)" }, "symbol": "CNH", "narrow": "CNH" }, "CNX": { "displayName": { "other": "Chinese People’s Bank dollars", "one": "Chinese People’s Bank dollar" }, "symbol": "CNX", "narrow": "CNX" }, "CNY": { "displayName": { "other": "Chinese yuan" }, "symbol": "CN¥", "narrow": "¥" }, "COP": { "displayName": { "other": "Colombian pesos", "one": "Colombian peso" }, "symbol": "COP", "narrow": "$" }, "COU": { "displayName": { "other": "Colombian real value units", "one": "Colombian real value unit" }, "symbol": "COU", "narrow": "COU" }, "CRC": { "displayName": { "other": "Costa Rican colóns", "one": "Costa Rican colón" }, "symbol": "CRC", "narrow": "₡" }, "CSD": { "displayName": { "other": "Serbian dinars (2002–2006)", "one": "Serbian dinar (2002–2006)" }, "symbol": "CSD", "narrow": "CSD" }, "CSK": { "displayName": { "other": "Czechoslovak hard korunas", "one": "Czechoslovak hard koruna" }, "symbol": "CSK", "narrow": "CSK" }, "CUC": { "displayName": { "other": "Cuban convertible pesos", "one": "Cuban convertible peso" }, "symbol": "CUC", "narrow": "$" }, "CUP": { "displayName": { "other": "Cuban pesos", "one": "Cuban peso" }, "symbol": "CUP", "narrow": "$" }, "CVE": { "displayName": { "other": "Cape Verdean escudos", "one": "Cape Verdean escudo" }, "symbol": "CVE", "narrow": "CVE" }, "CYP": { "displayName": { "other": "Cypriot pounds", "one": "Cypriot pound" }, "symbol": "CYP", "narrow": "CYP" }, "CZK": { "displayName": { "other": "Czech korunas", "one": "Czech koruna" }, "symbol": "CZK", "narrow": "Kč" }, "DDM": { "displayName": { "other": "East German marks", "one": "East German mark" }, "symbol": "DDM", "narrow": "DDM" }, "DEM": { "displayName": { "other": "German marks", "one": "German mark" }, "symbol": "DEM", "narrow": "DEM" }, "DJF": { "displayName": { "other": "Djiboutian francs", "one": "Djiboutian franc" }, "symbol": "DJF", "narrow": "DJF" }, "DKK": { "displayName": { "other": "Danish kroner", "one": "Danish krone" }, "symbol": "DKK", "narrow": "kr" }, "DOP": { "displayName": { "other": "Dominican pesos", "one": "Dominican peso" }, "symbol": "DOP", "narrow": "$" }, "DZD": { "displayName": { "other": "Algerian dinars", "one": "Algerian dinar" }, "symbol": "DZD", "narrow": "DZD" }, "ECS": { "displayName": { "other": "Ecuadorian sucres", "one": "Ecuadorian sucre" }, "symbol": "ECS", "narrow": "ECS" }, "ECV": { "displayName": { "other": "Ecuadorian units of constant value", "one": "Ecuadorian unit of constant value" }, "symbol": "ECV", "narrow": "ECV" }, "EEK": { "displayName": { "other": "Estonian kroons", "one": "Estonian kroon" }, "symbol": "EEK", "narrow": "EEK" }, "EGP": { "displayName": { "other": "Egyptian pounds", "one": "Egyptian pound" }, "symbol": "EGP", "narrow": "E£" }, "ERN": { "displayName": { "other": "Eritrean nakfas", "one": "Eritrean nakfa" }, "symbol": "ERN", "narrow": "ERN" }, "ESA": { "displayName": { "other": "Spanish pesetas (A account)", "one": "Spanish peseta (A account)" }, "symbol": "ESA", "narrow": "ESA" }, "ESB": { "displayName": { "other": "Spanish pesetas (convertible account)", "one": "Spanish peseta (convertible account)" }, "symbol": "ESB", "narrow": "ESB" }, "ESP": { "displayName": { "other": "Spanish pesetas", "one": "Spanish peseta" }, "symbol": "ESP", "narrow": "₧" }, "ETB": { "displayName": { "other": "Ethiopian birrs", "one": "Ethiopian birr" }, "symbol": "ETB", "narrow": "ETB" }, "EUR": { "displayName": { "other": "euros", "one": "euro" }, "symbol": "€", "narrow": "€" }, "FIM": { "displayName": { "other": "Finnish markkas", "one": "Finnish markka" }, "symbol": "FIM", "narrow": "FIM" }, "FJD": { "displayName": { "other": "Fijian dollars", "one": "Fijian dollar" }, "symbol": "FJD", "narrow": "$" }, "FKP": { "displayName": { "other": "Falkland Islands pounds", "one": "Falkland Islands pound" }, "symbol": "FKP", "narrow": "£" }, "FRF": { "displayName": { "other": "French francs", "one": "French franc" }, "symbol": "FRF", "narrow": "FRF" }, "GBP": { "displayName": { "other": "British pounds", "one": "British pound" }, "symbol": "£", "narrow": "£" }, "GEK": { "displayName": { "other": "Georgian kupon larits", "one": "Georgian kupon larit" }, "symbol": "GEK", "narrow": "GEK" }, "GEL": { "displayName": { "other": "Georgian laris", "one": "Georgian lari" }, "symbol": "GEL", "narrow": "₾" }, "GHC": { "displayName": { "other": "Ghanaian cedis (1979–2007)", "one": "Ghanaian cedi (1979–2007)" }, "symbol": "GHC", "narrow": "GHC" }, "GHS": { "displayName": { "other": "Ghanaian cedis", "one": "Ghanaian cedi" }, "symbol": "GHS", "narrow": "GH₵" }, "GIP": { "displayName": { "other": "Gibraltar pounds", "one": "Gibraltar pound" }, "symbol": "GIP", "narrow": "£" }, "GMD": { "displayName": { "other": "Gambian dalasis", "one": "Gambian dalasi" }, "symbol": "GMD", "narrow": "GMD" }, "GNF": { "displayName": { "other": "Guinean francs", "one": "Guinean franc" }, "symbol": "GNF", "narrow": "FG" }, "GNS": { "displayName": { "other": "Guinean sylis", "one": "Guinean syli" }, "symbol": "GNS", "narrow": "GNS" }, "GQE": { "displayName": { "other": "Equatorial Guinean ekwele" }, "symbol": "GQE", "narrow": "GQE" }, "GRD": { "displayName": { "other": "Greek drachmas", "one": "Greek drachma" }, "symbol": "GRD", "narrow": "GRD" }, "GTQ": { "displayName": { "other": "Guatemalan quetzals", "one": "Guatemalan quetzal" }, "symbol": "GTQ", "narrow": "Q" }, "GWE": { "displayName": { "other": "Portuguese Guinea escudos", "one": "Portuguese Guinea escudo" }, "symbol": "GWE", "narrow": "GWE" }, "GWP": { "displayName": { "other": "Guinea-Bissau pesos", "one": "Guinea-Bissau peso" }, "symbol": "GWP", "narrow": "GWP" }, "GYD": { "displayName": { "other": "Guyanaese dollars", "one": "Guyanaese dollar" }, "symbol": "GYD", "narrow": "$" }, "HKD": { "displayName": { "other": "Hong Kong dollars", "one": "Hong Kong dollar" }, "symbol": "HK$", "narrow": "$" }, "HNL": { "displayName": { "other": "Honduran lempiras", "one": "Honduran lempira" }, "symbol": "HNL", "narrow": "L" }, "HRD": { "displayName": { "other": "Croatian dinars", "one": "Croatian dinar" }, "symbol": "HRD", "narrow": "HRD" }, "HRK": { "displayName": { "other": "Croatian kunas", "one": "Croatian kuna" }, "symbol": "HRK", "narrow": "kn" }, "HTG": { "displayName": { "other": "Haitian gourdes", "one": "Haitian gourde" }, "symbol": "HTG", "narrow": "HTG" }, "HUF": { "displayName": { "other": "Hungarian forints", "one": "Hungarian forint" }, "symbol": "HUF", "narrow": "Ft" }, "IDR": { "displayName": { "other": "Indonesian rupiahs", "one": "Indonesian rupiah" }, "symbol": "IDR", "narrow": "Rp" }, "IEP": { "displayName": { "other": "Irish pounds", "one": "Irish pound" }, "symbol": "IEP", "narrow": "IEP" }, "ILP": { "displayName": { "other": "Israeli pounds", "one": "Israeli pound" }, "symbol": "ILP", "narrow": "ILP" }, "ILR": { "displayName": { "other": "Israeli shekels (1980–1985)", "one": "Israeli shekel (1980–1985)" }, "symbol": "ILR", "narrow": "ILR" }, "ILS": { "displayName": { "other": "Israeli new shekels", "one": "Israeli new shekel" }, "symbol": "₪", "narrow": "₪" }, "INR": { "displayName": { "other": "Indian rupees", "one": "Indian rupee" }, "symbol": "₹", "narrow": "₹" }, "IQD": { "displayName": { "other": "Iraqi dinars", "one": "Iraqi dinar" }, "symbol": "IQD", "narrow": "IQD" }, "IRR": { "displayName": { "other": "Iranian rials", "one": "Iranian rial" }, "symbol": "IRR", "narrow": "IRR" }, "ISJ": { "displayName": { "other": "Icelandic krónur (1918–1981)", "one": "Icelandic króna (1918–1981)" }, "symbol": "ISJ", "narrow": "ISJ" }, "ISK": { "displayName": { "other": "Icelandic krónur", "one": "Icelandic króna" }, "symbol": "ISK", "narrow": "kr" }, "ITL": { "displayName": { "other": "Italian liras", "one": "Italian lira" }, "symbol": "ITL", "narrow": "ITL" }, "JMD": { "displayName": { "other": "Jamaican dollars", "one": "Jamaican dollar" }, "symbol": "JMD", "narrow": "$" }, "JOD": { "displayName": { "other": "Jordanian dinars", "one": "Jordanian dinar" }, "symbol": "JOD", "narrow": "JOD" }, "JPY": { "displayName": { "other": "Japanese yen" }, "symbol": "¥", "narrow": "¥" }, "KES": { "displayName": { "other": "Kenyan shillings", "one": "Kenyan shilling" }, "symbol": "KES", "narrow": "KES" }, "KGS": { "displayName": { "other": "Kyrgystani soms", "one": "Kyrgystani som" }, "symbol": "KGS", "narrow": "KGS" }, "KHR": { "displayName": { "other": "Cambodian riels", "one": "Cambodian riel" }, "symbol": "KHR", "narrow": "៛" }, "KMF": { "displayName": { "other": "Comorian francs", "one": "Comorian franc" }, "symbol": "KMF", "narrow": "CF" }, "KPW": { "displayName": { "other": "North Korean won" }, "symbol": "KPW", "narrow": "₩" }, "KRH": { "displayName": { "other": "South Korean hwan (1953–1962)" }, "symbol": "KRH", "narrow": "KRH" }, "KRO": { "displayName": { "other": "South Korean won (1945–1953)" }, "symbol": "KRO", "narrow": "KRO" }, "KRW": { "displayName": { "other": "South Korean won" }, "symbol": "₩", "narrow": "₩" }, "KWD": { "displayName": { "other": "Kuwaiti dinars", "one": "Kuwaiti dinar" }, "symbol": "KWD", "narrow": "KWD" }, "KYD": { "displayName": { "other": "Cayman Islands dollars", "one": "Cayman Islands dollar" }, "symbol": "KYD", "narrow": "$" }, "KZT": { "displayName": { "other": "Kazakhstani tenges", "one": "Kazakhstani tenge" }, "symbol": "KZT", "narrow": "₸" }, "LAK": { "displayName": { "other": "Laotian kips", "one": "Laotian kip" }, "symbol": "LAK", "narrow": "₭" }, "LBP": { "displayName": { "other": "Lebanese pounds", "one": "Lebanese pound" }, "symbol": "LBP", "narrow": "L£" }, "LKR": { "displayName": { "other": "Sri Lankan rupees", "one": "Sri Lankan rupee" }, "symbol": "LKR", "narrow": "Rs" }, "LRD": { "displayName": { "other": "Liberian dollars", "one": "Liberian dollar" }, "symbol": "LRD", "narrow": "$" }, "LSL": { "displayName": { "other": "Lesotho lotis", "one": "Lesotho loti" }, "symbol": "LSL", "narrow": "LSL" }, "LTL": { "displayName": { "other": "Lithuanian litai", "one": "Lithuanian litas" }, "symbol": "LTL", "narrow": "Lt" }, "LTT": { "displayName": { "other": "Lithuanian talonases", "one": "Lithuanian talonas" }, "symbol": "LTT", "narrow": "LTT" }, "LUC": { "displayName": { "other": "Luxembourgian convertible francs", "one": "Luxembourgian convertible franc" }, "symbol": "LUC", "narrow": "LUC" }, "LUF": { "displayName": { "other": "Luxembourgian francs", "one": "Luxembourgian franc" }, "symbol": "LUF", "narrow": "LUF" }, "LUL": { "displayName": { "other": "Luxembourg financial francs", "one": "Luxembourg financial franc" }, "symbol": "LUL", "narrow": "LUL" }, "LVL": { "displayName": { "other": "Latvian lati", "one": "Latvian lats" }, "symbol": "LVL", "narrow": "Ls" }, "LVR": { "displayName": { "other": "Latvian rubles", "one": "Latvian ruble" }, "symbol": "LVR", "narrow": "LVR" }, "LYD": { "displayName": { "other": "Libyan dinars", "one": "Libyan dinar" }, "symbol": "LYD", "narrow": "LYD" }, "MAD": { "displayName": { "other": "Moroccan dirhams", "one": "Moroccan dirham" }, "symbol": "MAD", "narrow": "MAD" }, "MAF": { "displayName": { "other": "Moroccan francs", "one": "Moroccan franc" }, "symbol": "MAF", "narrow": "MAF" }, "MCF": { "displayName": { "other": "Monegasque francs", "one": "Monegasque franc" }, "symbol": "MCF", "narrow": "MCF" }, "MDC": { "displayName": { "other": "Moldovan cupon" }, "symbol": "MDC", "narrow": "MDC" }, "MDL": { "displayName": { "other": "Moldovan lei", "one": "Moldovan leu" }, "symbol": "MDL", "narrow": "MDL" }, "MGA": { "displayName": { "other": "Malagasy ariaries", "one": "Malagasy ariary" }, "symbol": "MGA", "narrow": "Ar" }, "MGF": { "displayName": { "other": "Malagasy francs", "one": "Malagasy franc" }, "symbol": "MGF", "narrow": "MGF" }, "MKD": { "displayName": { "other": "Macedonian denari", "one": "Macedonian denar" }, "symbol": "MKD", "narrow": "MKD" }, "MKN": { "displayName": { "other": "Macedonian denari (1992–1993)", "one": "Macedonian denar (1992–1993)" }, "symbol": "MKN", "narrow": "MKN" }, "MLF": { "displayName": { "other": "Malian francs", "one": "Malian franc" }, "symbol": "MLF", "narrow": "MLF" }, "MMK": { "displayName": { "other": "Myanmar kyats", "one": "Myanmar kyat" }, "symbol": "MMK", "narrow": "K" }, "MNT": { "displayName": { "other": "Mongolian tugriks", "one": "Mongolian tugrik" }, "symbol": "MNT", "narrow": "₮" }, "MOP": { "displayName": { "other": "Macanese patacas", "one": "Macanese pataca" }, "symbol": "MOP", "narrow": "MOP" }, "MRO": { "displayName": { "other": "Mauritanian ouguiyas (1973–2017)", "one": "Mauritanian ouguiya (1973–2017)" }, "symbol": "MRO", "narrow": "MRO" }, "MRU": { "displayName": { "other": "Mauritanian ouguiyas", "one": "Mauritanian ouguiya" }, "symbol": "MRU", "narrow": "MRU" }, "MTL": { "displayName": { "other": "Maltese lira" }, "symbol": "MTL", "narrow": "MTL" }, "MTP": { "displayName": { "other": "Maltese pounds", "one": "Maltese pound" }, "symbol": "MTP", "narrow": "MTP" }, "MUR": { "displayName": { "other": "Mauritian rupees", "one": "Mauritian rupee" }, "symbol": "MUR", "narrow": "Rs" }, "MVP": { "displayName": { "other": "Maldivian rupees (1947–1981)", "one": "Maldivian rupee (1947–1981)" }, "symbol": "MVP", "narrow": "MVP" }, "MVR": { "displayName": { "other": "Maldivian rufiyaas", "one": "Maldivian rufiyaa" }, "symbol": "MVR", "narrow": "MVR" }, "MWK": { "displayName": { "other": "Malawian kwachas", "one": "Malawian kwacha" }, "symbol": "MWK", "narrow": "MWK" }, "MXN": { "displayName": { "other": "Mexican pesos", "one": "Mexican peso" }, "symbol": "MX$", "narrow": "$" }, "MXP": { "displayName": { "other": "Mexican silver pesos (1861–1992)", "one": "Mexican silver peso (1861–1992)" }, "symbol": "MXP", "narrow": "MXP" }, "MXV": { "displayName": { "other": "Mexican investment units", "one": "Mexican investment unit" }, "symbol": "MXV", "narrow": "MXV" }, "MYR": { "displayName": { "other": "Malaysian ringgits", "one": "Malaysian ringgit" }, "symbol": "MYR", "narrow": "RM" }, "MZE": { "displayName": { "other": "Mozambican escudos", "one": "Mozambican escudo" }, "symbol": "MZE", "narrow": "MZE" }, "MZM": { "displayName": { "other": "Mozambican meticals (1980–2006)", "one": "Mozambican metical (1980–2006)" }, "symbol": "MZM", "narrow": "MZM" }, "MZN": { "displayName": { "other": "Mozambican meticals", "one": "Mozambican metical" }, "symbol": "MZN", "narrow": "MZN" }, "NAD": { "displayName": { "other": "Namibian dollars", "one": "Namibian dollar" }, "symbol": "NAD", "narrow": "$" }, "NGN": { "displayName": { "other": "Nigerian nairas", "one": "Nigerian naira" }, "symbol": "NGN", "narrow": "₦" }, "NIC": { "displayName": { "other": "Nicaraguan córdobas (1988–1991)", "one": "Nicaraguan córdoba (1988–1991)" }, "symbol": "NIC", "narrow": "NIC" }, "NIO": { "displayName": { "other": "Nicaraguan córdobas", "one": "Nicaraguan córdoba" }, "symbol": "NIO", "narrow": "C$" }, "NLG": { "displayName": { "other": "Dutch guilders", "one": "Dutch guilder" }, "symbol": "NLG", "narrow": "NLG" }, "NOK": { "displayName": { "other": "Norwegian kroner", "one": "Norwegian krone" }, "symbol": "NOK", "narrow": "kr" }, "NPR": { "displayName": { "other": "Nepalese rupees", "one": "Nepalese rupee" }, "symbol": "NPR", "narrow": "Rs" }, "NZD": { "displayName": { "other": "New Zealand dollars", "one": "New Zealand dollar" }, "symbol": "NZ$", "narrow": "$" }, "OMR": { "displayName": { "other": "Omani rials", "one": "Omani rial" }, "symbol": "OMR", "narrow": "OMR" }, "PAB": { "displayName": { "other": "Panamanian balboas", "one": "Panamanian balboa" }, "symbol": "PAB", "narrow": "PAB" }, "PEI": { "displayName": { "other": "Peruvian intis", "one": "Peruvian inti" }, "symbol": "PEI", "narrow": "PEI" }, "PEN": { "displayName": { "other": "Peruvian soles", "one": "Peruvian sol" }, "symbol": "PEN", "narrow": "PEN" }, "PES": { "displayName": { "other": "Peruvian soles (1863–1965)", "one": "Peruvian sol (1863–1965)" }, "symbol": "PES", "narrow": "PES" }, "PGK": { "displayName": { "other": "Papua New Guinean kina" }, "symbol": "PGK", "narrow": "PGK" }, "PHP": { "displayName": { "other": "Philippine pisos", "one": "Philippine piso" }, "symbol": "₱", "narrow": "₱" }, "PKR": { "displayName": { "other": "Pakistani rupees", "one": "Pakistani rupee" }, "symbol": "PKR", "narrow": "Rs" }, "PLN": { "displayName": { "other": "Polish zlotys", "one": "Polish zloty" }, "symbol": "PLN", "narrow": "zł" }, "PLZ": { "displayName": { "other": "Polish zlotys (PLZ)", "one": "Polish zloty (PLZ)" }, "symbol": "PLZ", "narrow": "PLZ" }, "PTE": { "displayName": { "other": "Portuguese escudos", "one": "Portuguese escudo" }, "symbol": "PTE", "narrow": "PTE" }, "PYG": { "displayName": { "other": "Paraguayan guaranis", "one": "Paraguayan guarani" }, "symbol": "PYG", "narrow": "₲" }, "QAR": { "displayName": { "other": "Qatari rials", "one": "Qatari rial" }, "symbol": "QAR", "narrow": "QAR" }, "RHD": { "displayName": { "other": "Rhodesian dollars", "one": "Rhodesian dollar" }, "symbol": "RHD", "narrow": "RHD" }, "ROL": { "displayName": { "other": "Romanian Lei (1952–2006)", "one": "Romanian leu (1952–2006)" }, "symbol": "ROL", "narrow": "ROL" }, "RON": { "displayName": { "other": "Romanian lei", "one": "Romanian leu" }, "symbol": "RON", "narrow": "lei" }, "RSD": { "displayName": { "other": "Serbian dinars", "one": "Serbian dinar" }, "symbol": "RSD", "narrow": "RSD" }, "RUB": { "displayName": { "other": "Russian rubles", "one": "Russian ruble" }, "symbol": "RUB", "narrow": "₽" }, "RUR": { "displayName": { "other": "Russian rubles (1991–1998)", "one": "Russian ruble (1991–1998)" }, "symbol": "RUR", "narrow": "р." }, "RWF": { "displayName": { "other": "Rwandan francs", "one": "Rwandan franc" }, "symbol": "RWF", "narrow": "RF" }, "SAR": { "displayName": { "other": "Saudi riyals", "one": "Saudi riyal" }, "symbol": "SAR", "narrow": "SAR" }, "SBD": { "displayName": { "other": "Solomon Islands dollars", "one": "Solomon Islands dollar" }, "symbol": "SBD", "narrow": "$" }, "SCR": { "displayName": { "other": "Seychellois rupees", "one": "Seychellois rupee" }, "symbol": "SCR", "narrow": "SCR" }, "SDD": { "displayName": { "other": "Sudanese dinars (1992–2007)", "one": "Sudanese dinar (1992–2007)" }, "symbol": "SDD", "narrow": "SDD" }, "SDG": { "displayName": { "other": "Sudanese pounds", "one": "Sudanese pound" }, "symbol": "SDG", "narrow": "SDG" }, "SDP": { "displayName": { "other": "Sudanese pounds (1957–1998)", "one": "Sudanese pound (1957–1998)" }, "symbol": "SDP", "narrow": "SDP" }, "SEK": { "displayName": { "other": "Swedish kronor", "one": "Swedish krona" }, "symbol": "SEK", "narrow": "kr" }, "SGD": { "displayName": { "other": "Singapore dollars", "one": "Singapore dollar" }, "symbol": "SGD", "narrow": "$" }, "SHP": { "displayName": { "other": "St. Helena pounds", "one": "St. Helena pound" }, "symbol": "SHP", "narrow": "£" }, "SIT": { "displayName": { "other": "Slovenian tolars", "one": "Slovenian tolar" }, "symbol": "SIT", "narrow": "SIT" }, "SKK": { "displayName": { "other": "Slovak korunas", "one": "Slovak koruna" }, "symbol": "SKK", "narrow": "SKK" }, "SLL": { "displayName": { "other": "Sierra Leonean leones", "one": "Sierra Leonean leone" }, "symbol": "SLL", "narrow": "SLL" }, "SOS": { "displayName": { "other": "Somali shillings", "one": "Somali shilling" }, "symbol": "SOS", "narrow": "SOS" }, "SRD": { "displayName": { "other": "Surinamese dollars", "one": "Surinamese dollar" }, "symbol": "SRD", "narrow": "$" }, "SRG": { "displayName": { "other": "Surinamese guilders", "one": "Surinamese guilder" }, "symbol": "SRG", "narrow": "SRG" }, "SSP": { "displayName": { "other": "South Sudanese pounds", "one": "South Sudanese pound" }, "symbol": "SSP", "narrow": "£" }, "STD": { "displayName": { "other": "São Tomé & Príncipe dobras (1977–2017)", "one": "São Tomé & Príncipe dobra (1977–2017)" }, "symbol": "STD", "narrow": "STD" }, "STN": { "displayName": { "other": "São Tomé & Príncipe dobras", "one": "São Tomé & Príncipe dobra" }, "symbol": "STN", "narrow": "Db" }, "SUR": { "displayName": { "other": "Soviet roubles", "one": "Soviet rouble" }, "symbol": "SUR", "narrow": "SUR" }, "SVC": { "displayName": { "other": "Salvadoran colones", "one": "Salvadoran colón" }, "symbol": "SVC", "narrow": "SVC" }, "SYP": { "displayName": { "other": "Syrian pounds", "one": "Syrian pound" }, "symbol": "SYP", "narrow": "£" }, "SZL": { "displayName": { "other": "Swazi emalangeni", "one": "Swazi lilangeni" }, "symbol": "SZL", "narrow": "SZL" }, "THB": { "displayName": { "other": "Thai baht" }, "symbol": "THB", "narrow": "฿" }, "TJR": { "displayName": { "other": "Tajikistani rubles", "one": "Tajikistani ruble" }, "symbol": "TJR", "narrow": "TJR" }, "TJS": { "displayName": { "other": "Tajikistani somonis", "one": "Tajikistani somoni" }, "symbol": "TJS", "narrow": "TJS" }, "TMM": { "displayName": { "other": "Turkmenistani manat (1993–2009)" }, "symbol": "TMM", "narrow": "TMM" }, "TMT": { "displayName": { "other": "Turkmenistani manat" }, "symbol": "TMT", "narrow": "TMT" }, "TND": { "displayName": { "other": "Tunisian dinars", "one": "Tunisian dinar" }, "symbol": "TND", "narrow": "TND" }, "TOP": { "displayName": { "other": "Tongan paʻanga" }, "symbol": "TOP", "narrow": "T$" }, "TPE": { "displayName": { "other": "Timorese escudos", "one": "Timorese escudo" }, "symbol": "TPE", "narrow": "TPE" }, "TRL": { "displayName": { "other": "Turkish Lira (1922–2005)", "one": "Turkish lira (1922–2005)" }, "symbol": "TRL", "narrow": "TRL" }, "TRY": { "displayName": { "other": "Turkish Lira", "one": "Turkish lira" }, "symbol": "TRY", "narrow": "₺" }, "TTD": { "displayName": { "other": "Trinidad & Tobago dollars", "one": "Trinidad & Tobago dollar" }, "symbol": "TTD", "narrow": "$" }, "TWD": { "displayName": { "other": "New Taiwan dollars", "one": "New Taiwan dollar" }, "symbol": "NT$", "narrow": "$" }, "TZS": { "displayName": { "other": "Tanzanian shillings", "one": "Tanzanian shilling" }, "symbol": "TZS", "narrow": "TZS" }, "UAH": { "displayName": { "other": "Ukrainian hryvnias", "one": "Ukrainian hryvnia" }, "symbol": "UAH", "narrow": "₴" }, "UAK": { "displayName": { "other": "Ukrainian karbovantsiv", "one": "Ukrainian karbovanets" }, "symbol": "UAK", "narrow": "UAK" }, "UGS": { "displayName": { "other": "Ugandan shillings (1966–1987)", "one": "Ugandan shilling (1966–1987)" }, "symbol": "UGS", "narrow": "UGS" }, "UGX": { "displayName": { "other": "Ugandan shillings", "one": "Ugandan shilling" }, "symbol": "UGX", "narrow": "UGX" }, "USD": { "displayName": { "other": "US dollars", "one": "US dollar" }, "symbol": "$", "narrow": "$" }, "USN": { "displayName": { "other": "US dollars (next day)", "one": "US dollar (next day)" }, "symbol": "USN", "narrow": "USN" }, "USS": { "displayName": { "other": "US dollars (same day)", "one": "US dollar (same day)" }, "symbol": "USS", "narrow": "USS" }, "UYI": { "displayName": { "other": "Uruguayan pesos (indexed units)", "one": "Uruguayan peso (indexed units)" }, "symbol": "UYI", "narrow": "UYI" }, "UYP": { "displayName": { "other": "Uruguayan pesos (1975–1993)", "one": "Uruguayan peso (1975–1993)" }, "symbol": "UYP", "narrow": "UYP" }, "UYU": { "displayName": { "other": "Uruguayan pesos", "one": "Uruguayan peso" }, "symbol": "UYU", "narrow": "$" }, "UYW": { "displayName": { "other": "Uruguayan nominal wage index units", "one": "Uruguayan nominal wage index unit" }, "symbol": "UYW", "narrow": "UYW" }, "UZS": { "displayName": { "other": "Uzbekistani som" }, "symbol": "UZS", "narrow": "UZS" }, "VEB": { "displayName": { "other": "Venezuelan bolívars (1871–2008)", "one": "Venezuelan bolívar (1871–2008)" }, "symbol": "VEB", "narrow": "VEB" }, "VEF": { "displayName": { "other": "Venezuelan bolívars (2008–2018)", "one": "Venezuelan bolívar (2008–2018)" }, "symbol": "VEF", "narrow": "Bs" }, "VES": { "displayName": { "other": "Venezuelan bolívars", "one": "Venezuelan bolívar" }, "symbol": "VES", "narrow": "VES" }, "VND": { "displayName": { "other": "Vietnamese dong" }, "symbol": "₫", "narrow": "₫" }, "VNN": { "displayName": { "other": "Vietnamese dong (1978–1985)" }, "symbol": "VNN", "narrow": "VNN" }, "VUV": { "displayName": { "other": "Vanuatu vatus", "one": "Vanuatu vatu" }, "symbol": "VUV", "narrow": "VUV" }, "WST": { "displayName": { "other": "Samoan tala" }, "symbol": "WST", "narrow": "WST" }, "XAF": { "displayName": { "other": "Central African CFA francs", "one": "Central African CFA franc" }, "symbol": "FCFA", "narrow": "FCFA" }, "XAG": { "displayName": { "other": "troy ounces of silver", "one": "troy ounce of silver" }, "symbol": "XAG", "narrow": "XAG" }, "XAU": { "displayName": { "other": "troy ounces of gold", "one": "troy ounce of gold" }, "symbol": "XAU", "narrow": "XAU" }, "XBA": { "displayName": { "other": "European composite units", "one": "European composite unit" }, "symbol": "XBA", "narrow": "XBA" }, "XBB": { "displayName": { "other": "European monetary units", "one": "European monetary unit" }, "symbol": "XBB", "narrow": "XBB" }, "XBC": { "displayName": { "other": "European units of account (XBC)", "one": "European unit of account (XBC)" }, "symbol": "XBC", "narrow": "XBC" }, "XBD": { "displayName": { "other": "European units of account (XBD)", "one": "European unit of account (XBD)" }, "symbol": "XBD", "narrow": "XBD" }, "XCD": { "displayName": { "other": "East Caribbean dollars", "one": "East Caribbean dollar" }, "symbol": "EC$", "narrow": "$" }, "XDR": { "displayName": { "other": "special drawing rights" }, "symbol": "XDR", "narrow": "XDR" }, "XEU": { "displayName": { "other": "European currency units", "one": "European currency unit" }, "symbol": "XEU", "narrow": "XEU" }, "XFO": { "displayName": { "other": "French gold francs", "one": "French gold franc" }, "symbol": "XFO", "narrow": "XFO" }, "XFU": { "displayName": { "other": "French UIC-francs", "one": "French UIC-franc" }, "symbol": "XFU", "narrow": "XFU" }, "XOF": { "displayName": { "other": "West African CFA francs", "one": "West African CFA franc" }, "symbol": "F CFA", "narrow": "F CFA" }, "XPD": { "displayName": { "other": "troy ounces of palladium", "one": "troy ounce of palladium" }, "symbol": "XPD", "narrow": "XPD" }, "XPF": { "displayName": { "other": "CFP francs", "one": "CFP franc" }, "symbol": "CFPF", "narrow": "CFPF" }, "XPT": { "displayName": { "other": "troy ounces of platinum", "one": "troy ounce of platinum" }, "symbol": "XPT", "narrow": "XPT" }, "XRE": { "displayName": { "other": "RINET Funds units", "one": "RINET Funds unit" }, "symbol": "XRE", "narrow": "XRE" }, "XSU": { "displayName": { "other": "Sucres", "one": "Sucre" }, "symbol": "XSU", "narrow": "XSU" }, "XTS": { "displayName": { "other": "Testing Currency units", "one": "Testing Currency unit" }, "symbol": "XTS", "narrow": "XTS" }, "XUA": { "displayName": { "other": "ADB units of account", "one": "ADB unit of account" }, "symbol": "XUA", "narrow": "XUA" }, "XXX": { "displayName": { "other": "(unknown currency)", "one": "(unknown unit of currency)" }, "symbol": "¤", "narrow": "¤" }, "YDD": { "displayName": { "other": "Yemeni dinars", "one": "Yemeni dinar" }, "symbol": "YDD", "narrow": "YDD" }, "YER": { "displayName": { "other": "Yemeni rials", "one": "Yemeni rial" }, "symbol": "YER", "narrow": "YER" }, "YUD": { "displayName": { "other": "Yugoslavian hard dinars (1966–1990)", "one": "Yugoslavian hard dinar (1966–1990)" }, "symbol": "YUD", "narrow": "YUD" }, "YUM": { "displayName": { "other": "Yugoslavian new dinars (1994–2002)", "one": "Yugoslavian new dinar (1994–2002)" }, "symbol": "YUM", "narrow": "YUM" }, "YUN": { "displayName": { "other": "Yugoslavian convertible dinars (1990–1992)", "one": "Yugoslavian convertible dinar (1990–1992)" }, "symbol": "YUN", "narrow": "YUN" }, "YUR": { "displayName": { "other": "Yugoslavian reformed dinars (1992–1993)", "one": "Yugoslavian reformed dinar (1992–1993)" }, "symbol": "YUR", "narrow": "YUR" }, "ZAL": { "displayName": { "other": "South African rands (financial)", "one": "South African rand (financial)" }, "symbol": "ZAL", "narrow": "ZAL" }, "ZAR": { "displayName": { "other": "South African rand" }, "symbol": "ZAR", "narrow": "R" }, "ZMK": { "displayName": { "other": "Zambian kwachas (1968–2012)", "one": "Zambian kwacha (1968–2012)" }, "symbol": "ZMK", "narrow": "ZMK" }, "ZMW": { "displayName": { "other": "Zambian kwachas", "one": "Zambian kwacha" }, "symbol": "ZMW", "narrow": "ZK" }, "ZRN": { "displayName": { "other": "Zairean new zaires (1993–1998)", "one": "Zairean new zaire (1993–1998)" }, "symbol": "ZRN", "narrow": "ZRN" }, "ZRZ": { "displayName": { "other": "Zairean zaires (1971–1993)", "one": "Zairean zaire (1971–1993)" }, "symbol": "ZRZ", "narrow": "ZRZ" }, "ZWD": { "displayName": { "other": "Zimbabwean dollars (1980–2008)", "one": "Zimbabwean dollar (1980–2008)" }, "symbol": "ZWD", "narrow": "ZWD" }, "ZWL": { "displayName": { "other": "Zimbabwean dollars (2009)", "one": "Zimbabwean dollar (2009)" }, "symbol": "ZWL", "narrow": "ZWL" }, "ZWR": { "displayName": { "other": "Zimbabwean dollars (2008)", "one": "Zimbabwean dollar (2008)" }, "symbol": "ZWR", "narrow": "ZWR" } }, "numbers": { "nu": ["latn"], "symbols": { "latn": { "decimal": ".", "group": ",", "list": ";", "percentSign": "%", "plusSign": "+", "minusSign": "-", "approximatelySign": "~", "exponential": "E", "superscriptingExponent": "×", "perMille": "‰", "infinity": "∞", "nan": "NaN", "timeSeparator": ":" } }, "percent": { "latn": "#,##0%" }, "decimal": { "latn": { "standard": "#,##0.###", "long": { "1000": { "other": "0 thousand" }, "10000": { "other": "00 thousand" }, "100000": { "other": "000 thousand" }, "1000000": { "other": "0 million" }, "10000000": { "other": "00 million" }, "100000000": { "other": "000 million" }, "1000000000": { "other": "0 billion" }, "10000000000": { "other": "00 billion" }, "100000000000": { "other": "000 billion" }, "1000000000000": { "other": "0 trillion" }, "10000000000000": { "other": "00 trillion" }, "100000000000000": { "other": "000 trillion" } }, "short": { "1000": { "other": "0K" }, "10000": { "other": "00K" }, "100000": { "other": "000K" }, "1000000": { "other": "0M" }, "10000000": { "other": "00M" }, "100000000": { "other": "000M" }, "1000000000": { "other": "0B" }, "10000000000": { "other": "00B" }, "100000000000": { "other": "000B" }, "1000000000000": { "other": "0T" }, "10000000000000": { "other": "00T" }, "100000000000000": { "other": "000T" } } } }, "currency": { "latn": { "currencySpacing": { "beforeInsertBetween": " ", "afterInsertBetween": " " }, "standard": "¤#,##0.00", "accounting": "¤#,##0.00;(¤#,##0.00)", "unitPattern": "{0} {1}", "short": { "1000": { "other": "¤0K" }, "10000": { "other": "¤00K" }, "100000": { "other": "¤000K" }, "1000000": { "other": "¤0M" }, "10000000": { "other": "¤00M" }, "100000000": { "other": "¤000M" }, "1000000000": { "other": "¤0B" }, "10000000000": { "other": "¤00B" }, "100000000000": { "other": "¤000B" }, "1000000000000": { "other": "¤0T" }, "10000000000000": { "other": "¤00T" }, "100000000000000": { "other": "¤000T" } } } } }, "nu": ["latn"] }, "locale": "en" });
    }
    if (Intl.DateTimeFormat && typeof Intl.DateTimeFormat.__addLocaleData === 'function') {
        Intl.DateTimeFormat.__addLocaleData({ "data": { "am": "AM", "pm": "PM", "weekday": { "narrow": ["S", "M", "T", "W", "T", "F", "S"], "short": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], "long": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] }, "era": { "narrow": { "BC": "B", "AD": "A" }, "short": { "BC": "BC", "AD": "AD" }, "long": { "BC": "Before Christ", "AD": "Anno Domini" } }, "month": { "narrow": ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], "short": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], "long": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] }, "timeZoneName": { "America/Rio_Branco": { "long": ["Acre Standard Time", "Acre Summer Time"] }, "Asia/Kabul": { "long": ["Afghanistan Time", "Afghanistan Time"] }, "Africa/Maputo": { "long": ["Central Africa Time", "Central Africa Time"] }, "Africa/Bujumbura": { "long": ["Central Africa Time", "Central Africa Time"] }, "Africa/Gaborone": { "long": ["Central Africa Time", "Central Africa Time"] }, "Africa/Lubumbashi": { "long": ["Central Africa Time", "Central Africa Time"] }, "Africa/Blantyre": { "long": ["Central Africa Time", "Central Africa Time"] }, "Africa/Kigali": { "long": ["Central Africa Time", "Central Africa Time"] }, "Africa/Lusaka": { "long": ["Central Africa Time", "Central Africa Time"] }, "Africa/Harare": { "long": ["Central Africa Time", "Central Africa Time"] }, "Africa/Nairobi": { "long": ["East Africa Time", "East Africa Time"] }, "Africa/Djibouti": { "long": ["East Africa Time", "East Africa Time"] }, "Africa/Asmera": { "long": ["East Africa Time", "East Africa Time"] }, "Africa/Addis_Ababa": { "long": ["East Africa Time", "East Africa Time"] }, "Indian/Comoro": { "long": ["East Africa Time", "East Africa Time"] }, "Indian/Antananarivo": { "long": ["East Africa Time", "East Africa Time"] }, "Africa/Mogadishu": { "long": ["East Africa Time", "East Africa Time"] }, "Africa/Dar_es_Salaam": { "long": ["East Africa Time", "East Africa Time"] }, "Africa/Kampala": { "long": ["East Africa Time", "East Africa Time"] }, "Indian/Mayotte": { "long": ["East Africa Time", "East Africa Time"] }, "Africa/Johannesburg": { "long": ["South Africa Standard Time", "South Africa Standard Time"] }, "Africa/Maseru": { "long": ["South Africa Standard Time", "South Africa Standard Time"] }, "Africa/Mbabane": { "long": ["South Africa Standard Time", "South Africa Standard Time"] }, "Africa/Lagos": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Luanda": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Porto-Novo": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Kinshasa": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Bangui": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Brazzaville": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Douala": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Libreville": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Malabo": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Niamey": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Africa/Ndjamena": { "long": ["West Africa Standard Time", "West Africa Summer Time"] }, "Asia/Aqtobe": { "long": ["West Kazakhstan Time", "West Kazakhstan Time"] }, "America/Juneau": { "long": ["Alaska Standard Time", "Alaska Daylight Time"], "short": ["AKST", "AKDT"] }, "Asia/Almaty": { "long": ["East Kazakhstan Time", "East Kazakhstan Time"] }, "America/Manaus": { "long": ["Amazon Standard Time", "Amazon Summer Time"] }, "America/Chicago": { "long": ["Central Standard Time", "Central Daylight Time"], "short": ["CST", "CDT"] }, "America/Belize": { "long": ["Central Standard Time", "Central Daylight Time"], "short": ["CST", "CDT"] }, "America/Winnipeg": { "long": ["Central Standard Time", "Central Daylight Time"], "short": ["CST", "CDT"] }, "America/Costa_Rica": { "long": ["Central Standard Time", "Central Daylight Time"], "short": ["CST", "CDT"] }, "America/Guatemala": { "long": ["Central Standard Time", "Central Daylight Time"], "short": ["CST", "CDT"] }, "America/Tegucigalpa": { "long": ["Central Standard Time", "Central Daylight Time"], "short": ["CST", "CDT"] }, "America/Mexico_City": { "long": ["Central Standard Time", "Central Daylight Time"], "short": ["CST", "CDT"] }, "America/El_Salvador": { "long": ["Central Standard Time", "Central Daylight Time"], "short": ["CST", "CDT"] }, "America/New_York": { "long": ["Eastern Standard Time", "Eastern Daylight Time"], "short": ["EST", "EDT"] }, "America/Nassau": { "long": ["Eastern Standard Time", "Eastern Daylight Time"], "short": ["EST", "EDT"] }, "America/Toronto": { "long": ["Eastern Standard Time", "Eastern Daylight Time"], "short": ["EST", "EDT"] }, "America/Port-au-Prince": { "long": ["Eastern Standard Time", "Eastern Daylight Time"], "short": ["EST", "EDT"] }, "America/Jamaica": { "long": ["Eastern Standard Time", "Eastern Daylight Time"], "short": ["EST", "EDT"] }, "America/Cayman": { "long": ["Eastern Standard Time", "Eastern Daylight Time"], "short": ["EST", "EDT"] }, "America/Panama": { "long": ["Eastern Standard Time", "Eastern Daylight Time"], "short": ["EST", "EDT"] }, "America/Denver": { "long": ["Mountain Standard Time", "Mountain Daylight Time"], "short": ["MST", "MDT"] }, "America/Edmonton": { "long": ["Mountain Standard Time", "Mountain Daylight Time"], "short": ["MST", "MDT"] }, "America/Hermosillo": { "long": ["Mountain Standard Time", "Mountain Daylight Time"], "short": ["MST", "MDT"] }, "America/Los_Angeles": { "long": ["Pacific Standard Time", "Pacific Daylight Time"], "short": ["PST", "PDT"] }, "America/Vancouver": { "long": ["Pacific Standard Time", "Pacific Daylight Time"], "short": ["PST", "PDT"] }, "America/Tijuana": { "long": ["Pacific Standard Time", "Pacific Daylight Time"], "short": ["PST", "PDT"] }, "Asia/Anadyr": { "long": ["Anadyr Standard Time", "Anadyr Summer Time"] }, "Pacific/Apia": { "long": ["Apia Standard Time", "Apia Daylight Time"] }, "Asia/Riyadh": { "long": ["Arabian Standard Time", "Arabian Daylight Time"] }, "Asia/Bahrain": { "long": ["Arabian Standard Time", "Arabian Daylight Time"] }, "Asia/Baghdad": { "long": ["Arabian Standard Time", "Arabian Daylight Time"] }, "Asia/Kuwait": { "long": ["Arabian Standard Time", "Arabian Daylight Time"] }, "Asia/Qatar": { "long": ["Arabian Standard Time", "Arabian Daylight Time"] }, "Asia/Aden": { "long": ["Arabian Standard Time", "Arabian Daylight Time"] }, "America/Buenos_Aires": { "long": ["Argentina Standard Time", "Argentina Summer Time"] }, "America/Argentina/San_Luis": { "long": ["Western Argentina Standard Time", "Western Argentina Summer Time"] }, "Asia/Ashgabat": { "long": ["Turkmenistan Standard Time", "Turkmenistan Summer Time"] }, "America/Halifax": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Antigua": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Anguilla": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Aruba": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Barbados": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "Atlantic/Bermuda": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Kralendijk": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Curacao": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Dominica": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Grenada": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Thule": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Guadeloupe": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/St_Kitts": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/St_Lucia": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Marigot": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Martinique": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Montserrat": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Puerto_Rico": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Lower_Princes": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Port_of_Spain": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/St_Vincent": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/Tortola": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "America/St_Thomas": { "long": ["Atlantic Standard Time", "Atlantic Daylight Time"], "short": ["AST", "ADT"] }, "Australia/Adelaide": { "long": ["Australian Central Standard Time", "Australian Central Daylight Time"] }, "Australia/Eucla": { "long": ["Australian Central Western Standard Time", "Australian Central Western Daylight Time"] }, "Australia/Sydney": { "long": ["Australian Eastern Standard Time", "Australian Eastern Daylight Time"] }, "Australia/Perth": { "long": ["Australian Western Standard Time", "Australian Western Daylight Time"] }, "Atlantic/Azores": { "long": ["Azores Standard Time", "Azores Summer Time"] }, "Asia/Thimphu": { "long": ["Bhutan Time", "Bhutan Time"] }, "America/La_Paz": { "long": ["Bolivia Time", "Bolivia Time"] }, "Asia/Kuching": { "long": ["Malaysia Time", "Malaysia Time"] }, "America/Sao_Paulo": { "long": ["Brasilia Standard Time", "Brasilia Summer Time"] }, "Europe/London": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Asia/Brunei": { "long": ["Brunei Darussalam Time", "Brunei Darussalam Time"] }, "Atlantic/Cape_Verde": { "long": ["Cape Verde Standard Time", "Cape Verde Summer Time"] }, "Antarctica/Casey": { "long": ["Casey Time", "Casey Time"] }, "Pacific/Saipan": { "long": ["North Mariana Islands Time", "North Mariana Islands Time"] }, "Pacific/Guam": { "long": ["Guam Standard Time", "Guam Standard Time"] }, "Pacific/Chatham": { "long": ["Chatham Standard Time", "Chatham Daylight Time"] }, "America/Santiago": { "long": ["Chile Standard Time", "Chile Summer Time"] }, "Asia/Shanghai": { "long": ["China Standard Time", "China Daylight Time"] }, "Asia/Choibalsan": { "long": ["Choibalsan Standard Time", "Choibalsan Summer Time"] }, "Indian/Christmas": { "long": ["Christmas Island Time", "Christmas Island Time"] }, "Indian/Cocos": { "long": ["Cocos Islands Time", "Cocos Islands Time"] }, "America/Bogota": { "long": ["Colombia Standard Time", "Colombia Summer Time"] }, "Pacific/Rarotonga": { "long": ["Cook Islands Standard Time", "Cook Islands Half Summer Time"] }, "America/Havana": { "long": ["Cuba Standard Time", "Cuba Daylight Time"] }, "Antarctica/Davis": { "long": ["Davis Time", "Davis Time"] }, "Antarctica/DumontDUrville": { "long": ["Dumont-d’Urville Time", "Dumont-d’Urville Time"] }, "Asia/Dushanbe": { "long": ["Tajikistan Time", "Tajikistan Time"] }, "America/Paramaribo": { "long": ["Suriname Time", "Suriname Time"] }, "Asia/Dili": { "long": ["East Timor Time", "East Timor Time"] }, "Pacific/Easter": { "long": ["Easter Island Standard Time", "Easter Island Summer Time"] }, "America/Guayaquil": { "long": ["Ecuador Time", "Ecuador Time"] }, "Europe/Paris": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Andorra": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Tirane": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Vienna": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Sarajevo": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Brussels": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Zurich": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Prague": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Berlin": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Copenhagen": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Madrid": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Gibraltar": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Zagreb": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Budapest": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Rome": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Vaduz": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Luxembourg": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Monaco": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Podgorica": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Skopje": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Malta": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Amsterdam": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Oslo": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Warsaw": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Belgrade": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Stockholm": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Ljubljana": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Arctic/Longyearbyen": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Bratislava": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/San_Marino": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Africa/Tunis": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Vatican": { "long": ["Central European Standard Time", "Central European Summer Time"] }, "Europe/Bucharest": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Europe/Mariehamn": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Europe/Sofia": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Asia/Nicosia": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Africa/Cairo": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Europe/Helsinki": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Europe/Athens": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Asia/Amman": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Asia/Beirut": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Asia/Damascus": { "long": ["Eastern European Standard Time", "Eastern European Summer Time"] }, "Europe/Minsk": { "long": ["Further-eastern European Time", "Further-eastern European Time"] }, "Europe/Kaliningrad": { "long": ["Further-eastern European Time", "Further-eastern European Time"] }, "Atlantic/Canary": { "long": ["Western European Standard Time", "Western European Summer Time"] }, "Atlantic/Faeroe": { "long": ["Western European Standard Time", "Western European Summer Time"] }, "Atlantic/Stanley": { "long": ["Falkland Islands Standard Time", "Falkland Islands Summer Time"] }, "Pacific/Fiji": { "long": ["Fiji Standard Time", "Fiji Summer Time"] }, "America/Cayenne": { "long": ["French Guiana Time", "French Guiana Time"] }, "Indian/Kerguelen": { "long": ["French Southern & Antarctic Time", "French Southern & Antarctic Time"] }, "Asia/Bishkek": { "long": ["Kyrgyzstan Time", "Kyrgyzstan Time"] }, "Pacific/Galapagos": { "long": ["Galapagos Time", "Galapagos Time"] }, "Pacific/Gambier": { "long": ["Gambier Time", "Gambier Time"] }, "Pacific/Tarawa": { "long": ["Gilbert Islands Time", "Gilbert Islands Time"] }, "Atlantic/Reykjavik": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Ouagadougou": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Abidjan": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Accra": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Banjul": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Conakry": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Bamako": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Nouakchott": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Atlantic/St_Helena": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Freetown": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Dakar": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "Africa/Lome": { "long": ["Greenwich Mean Time", "Greenwich Mean Time"], "short": ["GMT", "GMT"] }, "America/Scoresbysund": { "long": ["East Greenland Standard Time", "East Greenland Summer Time"] }, "America/Godthab": { "long": ["West Greenland Standard Time", "West Greenland Summer Time"] }, "Asia/Dubai": { "long": ["Gulf Standard Time", "Gulf Standard Time"] }, "Asia/Muscat": { "long": ["Gulf Standard Time", "Gulf Standard Time"] }, "America/Guyana": { "long": ["Guyana Time", "Guyana Time"] }, "Pacific/Honolulu": { "long": ["Hawaii-Aleutian Standard Time", "Hawaii-Aleutian Daylight Time"], "short": ["HAST", "HADT"] }, "Asia/Hong_Kong": { "long": ["Hong Kong Standard Time", "Hong Kong Summer Time"] }, "Asia/Hovd": { "long": ["Hovd Standard Time", "Hovd Summer Time"] }, "Asia/Calcutta": { "long": ["India Standard Time", "India Standard Time"] }, "Asia/Colombo": { "long": ["Lanka Time", "Lanka Time"] }, "Indian/Chagos": { "long": ["Indian Ocean Time", "Indian Ocean Time"] }, "Asia/Bangkok": { "long": ["Indochina Time", "Indochina Time"] }, "Asia/Phnom_Penh": { "long": ["Indochina Time", "Indochina Time"] }, "Asia/Vientiane": { "long": ["Indochina Time", "Indochina Time"] }, "Asia/Makassar": { "long": ["Central Indonesia Time", "Central Indonesia Time"] }, "Asia/Jayapura": { "long": ["Eastern Indonesia Time", "Eastern Indonesia Time"] }, "Asia/Jakarta": { "long": ["Western Indonesia Time", "Western Indonesia Time"] }, "Asia/Tehran": { "long": ["Iran Standard Time", "Iran Daylight Time"] }, "Asia/Irkutsk": { "long": ["Irkutsk Standard Time", "Irkutsk Summer Time"] }, "Asia/Jerusalem": { "long": ["Israel Standard Time", "Israel Daylight Time"] }, "Asia/Tokyo": { "long": ["Japan Standard Time", "Japan Daylight Time"] }, "Asia/Kamchatka": { "long": ["Petropavlovsk-Kamchatski Standard Time", "Petropavlovsk-Kamchatski Summer Time"] }, "Asia/Karachi": { "long": ["Pakistan Standard Time", "Pakistan Summer Time"] }, "Asia/Qyzylorda": { "long": ["Qyzylorda Standard Time", "Qyzylorda Summer Time"] }, "Asia/Seoul": { "long": ["Korean Standard Time", "Korean Daylight Time"] }, "Pacific/Kosrae": { "long": ["Kosrae Time", "Kosrae Time"] }, "Asia/Krasnoyarsk": { "long": ["Krasnoyarsk Standard Time", "Krasnoyarsk Summer Time"] }, "Europe/Samara": { "long": ["Samara Standard Time", "Samara Summer Time"] }, "Pacific/Kiritimati": { "long": ["Line Islands Time", "Line Islands Time"] }, "Australia/Lord_Howe": { "long": ["Lord Howe Standard Time", "Lord Howe Daylight Time"] }, "Asia/Macau": { "long": ["Macao Standard Time", "Macao Summer Time"] }, "Antarctica/Macquarie": { "long": ["Macquarie Island Time", "Macquarie Island Time"] }, "Asia/Magadan": { "long": ["Magadan Standard Time", "Magadan Summer Time"] }, "Indian/Maldives": { "long": ["Maldives Time", "Maldives Time"] }, "Pacific/Marquesas": { "long": ["Marquesas Time", "Marquesas Time"] }, "Pacific/Majuro": { "long": ["Marshall Islands Time", "Marshall Islands Time"] }, "Indian/Mauritius": { "long": ["Mauritius Standard Time", "Mauritius Summer Time"] }, "Antarctica/Mawson": { "long": ["Mawson Time", "Mawson Time"] }, "America/Santa_Isabel": { "long": ["Northwest Mexico Standard Time", "Northwest Mexico Daylight Time"] }, "America/Mazatlan": { "long": ["Mexican Pacific Standard Time", "Mexican Pacific Daylight Time"] }, "Asia/Ulaanbaatar": { "long": ["Ulaanbaatar Standard Time", "Ulaanbaatar Summer Time"] }, "Europe/Moscow": { "long": ["Moscow Standard Time", "Moscow Summer Time"] }, "Asia/Rangoon": { "long": ["Myanmar Time", "Myanmar Time"] }, "Pacific/Nauru": { "long": ["Nauru Time", "Nauru Time"] }, "Asia/Katmandu": { "long": ["Nepal Time", "Nepal Time"] }, "Pacific/Noumea": { "long": ["New Caledonia Standard Time", "New Caledonia Summer Time"] }, "Pacific/Auckland": { "long": ["New Zealand Standard Time", "New Zealand Daylight Time"] }, "Antarctica/McMurdo": { "long": ["New Zealand Standard Time", "New Zealand Daylight Time"] }, "America/St_Johns": { "long": ["Newfoundland Standard Time", "Newfoundland Daylight Time"] }, "Pacific/Niue": { "long": ["Niue Time", "Niue Time"] }, "Pacific/Norfolk": { "long": ["Norfolk Island Standard Time", "Norfolk Island Daylight Time"] }, "America/Noronha": { "long": ["Fernando de Noronha Standard Time", "Fernando de Noronha Summer Time"] }, "Asia/Novosibirsk": { "long": ["Novosibirsk Standard Time", "Novosibirsk Summer Time"] }, "Asia/Omsk": { "long": ["Omsk Standard Time", "Omsk Summer Time"] }, "Pacific/Palau": { "long": ["Palau Time", "Palau Time"] }, "Pacific/Port_Moresby": { "long": ["Papua New Guinea Time", "Papua New Guinea Time"] }, "America/Asuncion": { "long": ["Paraguay Standard Time", "Paraguay Summer Time"] }, "America/Lima": { "long": ["Peru Standard Time", "Peru Summer Time"] }, "Asia/Manila": { "long": ["Philippine Standard Time", "Philippine Summer Time"] }, "Pacific/Enderbury": { "long": ["Phoenix Islands Time", "Phoenix Islands Time"] }, "America/Miquelon": { "long": ["St. Pierre & Miquelon Standard Time", "St. Pierre & Miquelon Daylight Time"] }, "Pacific/Pitcairn": { "long": ["Pitcairn Time", "Pitcairn Time"] }, "Pacific/Ponape": { "long": ["Ponape Time", "Ponape Time"] }, "Asia/Pyongyang": { "long": ["Pyongyang Time", "Pyongyang Time"] }, "Indian/Reunion": { "long": ["Réunion Time", "Réunion Time"] }, "Antarctica/Rothera": { "long": ["Rothera Time", "Rothera Time"] }, "Asia/Sakhalin": { "long": ["Sakhalin Standard Time", "Sakhalin Summer Time"] }, "Pacific/Pago_Pago": { "long": ["Samoa Standard Time", "Samoa Daylight Time"] }, "Indian/Mahe": { "long": ["Seychelles Time", "Seychelles Time"] }, "Asia/Singapore": { "long": ["Singapore Standard Time", "Singapore Standard Time"] }, "Pacific/Guadalcanal": { "long": ["Solomon Islands Time", "Solomon Islands Time"] }, "Atlantic/South_Georgia": { "long": ["South Georgia Time", "South Georgia Time"] }, "Asia/Yekaterinburg": { "long": ["Yekaterinburg Standard Time", "Yekaterinburg Summer Time"] }, "Antarctica/Syowa": { "long": ["Syowa Time", "Syowa Time"] }, "Pacific/Tahiti": { "long": ["Tahiti Time", "Tahiti Time"] }, "Asia/Taipei": { "long": ["Taipei Standard Time", "Taipei Daylight Time"] }, "Asia/Tashkent": { "long": ["Uzbekistan Standard Time", "Uzbekistan Summer Time"] }, "Pacific/Fakaofo": { "long": ["Tokelau Time", "Tokelau Time"] }, "Pacific/Tongatapu": { "long": ["Tonga Standard Time", "Tonga Summer Time"] }, "Pacific/Truk": { "long": ["Chuuk Time", "Chuuk Time"] }, "Pacific/Funafuti": { "long": ["Tuvalu Time", "Tuvalu Time"] }, "America/Montevideo": { "long": ["Uruguay Standard Time", "Uruguay Summer Time"] }, "Pacific/Efate": { "long": ["Vanuatu Standard Time", "Vanuatu Summer Time"] }, "America/Caracas": { "long": ["Venezuela Time", "Venezuela Time"] }, "Asia/Vladivostok": { "long": ["Vladivostok Standard Time", "Vladivostok Summer Time"] }, "Europe/Volgograd": { "long": ["Volgograd Standard Time", "Volgograd Summer Time"] }, "Antarctica/Vostok": { "long": ["Vostok Time", "Vostok Time"] }, "Pacific/Wake": { "long": ["Wake Island Time", "Wake Island Time"] }, "Pacific/Wallis": { "long": ["Wallis & Futuna Time", "Wallis & Futuna Time"] }, "Asia/Yakutsk": { "long": ["Yakutsk Standard Time", "Yakutsk Summer Time"] }, "UTC": { "long": ["Coordinated Universal Time", "Coordinated Universal Time"], "short": ["UTC", "UTC"] } }, "gmtFormat": "GMT{0}", "hourFormat": "+HH:mm;-HH:mm", "dateFormat": { "full": "EEEE, MMMM d, y", "long": "MMMM d, y", "medium": "MMM d, y", "short": "M/d/yy" }, "timeFormat": { "full": "h:mm:ss a zzzz", "long": "h:mm:ss a z", "medium": "h:mm:ss a", "short": "h:mm a" }, "dateTimeFormat": { "full": "{1} 'at' {0}", "long": "{1} 'at' {0}", "medium": "{1}, {0}", "short": "{1}, {0}" }, "formats": { "gregory": { "Bh": "h B", "Bhm": "h:mm B", "Bhms": "h:mm:ss B", "d": "d", "E": "ccc", "EBhm": "E h:mm B", "EBhms": "E h:mm:ss B", "Ed": "d E", "Ehm": "E h:mm a", "EHm": "E HH:mm", "Ehms": "E h:mm:ss a", "EHms": "E HH:mm:ss", "Gy": "y G", "GyMMM": "MMM y G", "GyMMMd": "MMM d, y G", "GyMMMEd": "E, MMM d, y G", "h": "h a", "H": "HH", "hm": "h:mm a", "Hm": "HH:mm", "hms": "h:mm:ss a", "Hms": "HH:mm:ss", "hmsv": "h:mm:ss a v", "Hmsv": "HH:mm:ss v", "hmv": "h:mm a v", "Hmv": "HH:mm v", "M": "L", "Md": "M/d", "MEd": "E, M/d", "MMM": "LLL", "MMMd": "MMM d", "MMMEd": "E, MMM d", "MMMMd": "MMMM d", "ms": "mm:ss", "y": "y", "yM": "M/y", "yMd": "M/d/y", "yMEd": "E, M/d/y", "yMMM": "MMM y", "yMMMd": "MMM d, y", "yMMMEd": "E, MMM d, y", "yMMMM": "MMMM y", "EEEE, MMMM d, y": "EEEE, MMMM d, y", "MMMM d, y": "MMMM d, y", "MMM d, y": "MMM d, y", "M/d/yy": "M/d/yy", "h:mm:ss a zzzz": "h:mm:ss a zzzz", "h:mm:ss a z": "h:mm:ss a z", "h:mm:ss a": "h:mm:ss a", "h:mm a": "h:mm a", "EEEE, MMMM d, y 'at' h:mm:ss a zzzz": "EEEE, MMMM d, y 'at' h:mm:ss a zzzz", "MMMM d, y 'at' h:mm:ss a zzzz": "MMMM d, y 'at' h:mm:ss a zzzz", "MMM d, y, h:mm:ss a zzzz": "MMM d, y, h:mm:ss a zzzz", "M/d/yy, h:mm:ss a zzzz": "M/d/yy, h:mm:ss a zzzz", "d, h:mm:ss a zzzz": "d, h:mm:ss a zzzz", "E, h:mm:ss a zzzz": "ccc, h:mm:ss a zzzz", "Ed, h:mm:ss a zzzz": "d E, h:mm:ss a zzzz", "Gy, h:mm:ss a zzzz": "y G, h:mm:ss a zzzz", "GyMMM, h:mm:ss a zzzz": "MMM y G, h:mm:ss a zzzz", "GyMMMd, h:mm:ss a zzzz": "MMM d, y G, h:mm:ss a zzzz", "GyMMMEd, h:mm:ss a zzzz": "E, MMM d, y G, h:mm:ss a zzzz", "M, h:mm:ss a zzzz": "L, h:mm:ss a zzzz", "Md, h:mm:ss a zzzz": "M/d, h:mm:ss a zzzz", "MEd, h:mm:ss a zzzz": "E, M/d, h:mm:ss a zzzz", "MMM, h:mm:ss a zzzz": "LLL, h:mm:ss a zzzz", "MMMd, h:mm:ss a zzzz": "MMM d, h:mm:ss a zzzz", "MMMEd, h:mm:ss a zzzz": "E, MMM d, h:mm:ss a zzzz", "MMMMd 'at' h:mm:ss a zzzz": "MMMM d 'at' h:mm:ss a zzzz", "y, h:mm:ss a zzzz": "y, h:mm:ss a zzzz", "yM, h:mm:ss a zzzz": "M/y, h:mm:ss a zzzz", "yMd, h:mm:ss a zzzz": "M/d/y, h:mm:ss a zzzz", "yMEd, h:mm:ss a zzzz": "E, M/d/y, h:mm:ss a zzzz", "yMMM, h:mm:ss a zzzz": "MMM y, h:mm:ss a zzzz", "yMMMd, h:mm:ss a zzzz": "MMM d, y, h:mm:ss a zzzz", "yMMMEd, h:mm:ss a zzzz": "E, MMM d, y, h:mm:ss a zzzz", "yMMMM 'at' h:mm:ss a zzzz": "MMMM y 'at' h:mm:ss a zzzz", "EEEE, MMMM d, y 'at' h:mm:ss a z": "EEEE, MMMM d, y 'at' h:mm:ss a z", "MMMM d, y 'at' h:mm:ss a z": "MMMM d, y 'at' h:mm:ss a z", "MMM d, y, h:mm:ss a z": "MMM d, y, h:mm:ss a z", "M/d/yy, h:mm:ss a z": "M/d/yy, h:mm:ss a z", "d, h:mm:ss a z": "d, h:mm:ss a z", "E, h:mm:ss a z": "ccc, h:mm:ss a z", "Ed, h:mm:ss a z": "d E, h:mm:ss a z", "Gy, h:mm:ss a z": "y G, h:mm:ss a z", "GyMMM, h:mm:ss a z": "MMM y G, h:mm:ss a z", "GyMMMd, h:mm:ss a z": "MMM d, y G, h:mm:ss a z", "GyMMMEd, h:mm:ss a z": "E, MMM d, y G, h:mm:ss a z", "M, h:mm:ss a z": "L, h:mm:ss a z", "Md, h:mm:ss a z": "M/d, h:mm:ss a z", "MEd, h:mm:ss a z": "E, M/d, h:mm:ss a z", "MMM, h:mm:ss a z": "LLL, h:mm:ss a z", "MMMd, h:mm:ss a z": "MMM d, h:mm:ss a z", "MMMEd, h:mm:ss a z": "E, MMM d, h:mm:ss a z", "MMMMd 'at' h:mm:ss a z": "MMMM d 'at' h:mm:ss a z", "y, h:mm:ss a z": "y, h:mm:ss a z", "yM, h:mm:ss a z": "M/y, h:mm:ss a z", "yMd, h:mm:ss a z": "M/d/y, h:mm:ss a z", "yMEd, h:mm:ss a z": "E, M/d/y, h:mm:ss a z", "yMMM, h:mm:ss a z": "MMM y, h:mm:ss a z", "yMMMd, h:mm:ss a z": "MMM d, y, h:mm:ss a z", "yMMMEd, h:mm:ss a z": "E, MMM d, y, h:mm:ss a z", "yMMMM 'at' h:mm:ss a z": "MMMM y 'at' h:mm:ss a z", "EEEE, MMMM d, y 'at' h:mm:ss a": "EEEE, MMMM d, y 'at' h:mm:ss a", "MMMM d, y 'at' h:mm:ss a": "MMMM d, y 'at' h:mm:ss a", "MMM d, y, h:mm:ss a": "MMM d, y, h:mm:ss a", "M/d/yy, h:mm:ss a": "M/d/yy, h:mm:ss a", "d, h:mm:ss a": "d, h:mm:ss a", "E, h:mm:ss a": "ccc, h:mm:ss a", "Ed, h:mm:ss a": "d E, h:mm:ss a", "Gy, h:mm:ss a": "y G, h:mm:ss a", "GyMMM, h:mm:ss a": "MMM y G, h:mm:ss a", "GyMMMd, h:mm:ss a": "MMM d, y G, h:mm:ss a", "GyMMMEd, h:mm:ss a": "E, MMM d, y G, h:mm:ss a", "M, h:mm:ss a": "L, h:mm:ss a", "Md, h:mm:ss a": "M/d, h:mm:ss a", "MEd, h:mm:ss a": "E, M/d, h:mm:ss a", "MMM, h:mm:ss a": "LLL, h:mm:ss a", "MMMd, h:mm:ss a": "MMM d, h:mm:ss a", "MMMEd, h:mm:ss a": "E, MMM d, h:mm:ss a", "MMMMd 'at' h:mm:ss a": "MMMM d 'at' h:mm:ss a", "y, h:mm:ss a": "y, h:mm:ss a", "yM, h:mm:ss a": "M/y, h:mm:ss a", "yMd, h:mm:ss a": "M/d/y, h:mm:ss a", "yMEd, h:mm:ss a": "E, M/d/y, h:mm:ss a", "yMMM, h:mm:ss a": "MMM y, h:mm:ss a", "yMMMd, h:mm:ss a": "MMM d, y, h:mm:ss a", "yMMMEd, h:mm:ss a": "E, MMM d, y, h:mm:ss a", "yMMMM 'at' h:mm:ss a": "MMMM y 'at' h:mm:ss a", "EEEE, MMMM d, y 'at' h:mm a": "EEEE, MMMM d, y 'at' h:mm a", "MMMM d, y 'at' h:mm a": "MMMM d, y 'at' h:mm a", "MMM d, y, h:mm a": "MMM d, y, h:mm a", "M/d/yy, h:mm a": "M/d/yy, h:mm a", "d, h:mm a": "d, h:mm a", "E, h:mm a": "ccc, h:mm a", "Ed, h:mm a": "d E, h:mm a", "Gy, h:mm a": "y G, h:mm a", "GyMMM, h:mm a": "MMM y G, h:mm a", "GyMMMd, h:mm a": "MMM d, y G, h:mm a", "GyMMMEd, h:mm a": "E, MMM d, y G, h:mm a", "M, h:mm a": "L, h:mm a", "Md, h:mm a": "M/d, h:mm a", "MEd, h:mm a": "E, M/d, h:mm a", "MMM, h:mm a": "LLL, h:mm a", "MMMd, h:mm a": "MMM d, h:mm a", "MMMEd, h:mm a": "E, MMM d, h:mm a", "MMMMd 'at' h:mm a": "MMMM d 'at' h:mm a", "y, h:mm a": "y, h:mm a", "yM, h:mm a": "M/y, h:mm a", "yMd, h:mm a": "M/d/y, h:mm a", "yMEd, h:mm a": "E, M/d/y, h:mm a", "yMMM, h:mm a": "MMM y, h:mm a", "yMMMd, h:mm a": "MMM d, y, h:mm a", "yMMMEd, h:mm a": "E, MMM d, y, h:mm a", "yMMMM 'at' h:mm a": "MMMM y 'at' h:mm a", "EEEE, MMMM d, y 'at' Bh": "EEEE, MMMM d, y 'at' h B", "MMMM d, y 'at' Bh": "MMMM d, y 'at' h B", "MMM d, y, Bh": "MMM d, y, h B", "M/d/yy, Bh": "M/d/yy, h B", "d, Bh": "d, h B", "E, Bh": "ccc, h B", "Ed, Bh": "d E, h B", "Gy, Bh": "y G, h B", "GyMMM, Bh": "MMM y G, h B", "GyMMMd, Bh": "MMM d, y G, h B", "GyMMMEd, Bh": "E, MMM d, y G, h B", "M, Bh": "L, h B", "Md, Bh": "M/d, h B", "MEd, Bh": "E, M/d, h B", "MMM, Bh": "LLL, h B", "MMMd, Bh": "MMM d, h B", "MMMEd, Bh": "E, MMM d, h B", "MMMMd 'at' Bh": "MMMM d 'at' h B", "y, Bh": "y, h B", "yM, Bh": "M/y, h B", "yMd, Bh": "M/d/y, h B", "yMEd, Bh": "E, M/d/y, h B", "yMMM, Bh": "MMM y, h B", "yMMMd, Bh": "MMM d, y, h B", "yMMMEd, Bh": "E, MMM d, y, h B", "yMMMM 'at' Bh": "MMMM y 'at' h B", "EEEE, MMMM d, y 'at' Bhm": "EEEE, MMMM d, y 'at' h:mm B", "MMMM d, y 'at' Bhm": "MMMM d, y 'at' h:mm B", "MMM d, y, Bhm": "MMM d, y, h:mm B", "M/d/yy, Bhm": "M/d/yy, h:mm B", "d, Bhm": "d, h:mm B", "E, Bhm": "ccc, h:mm B", "Ed, Bhm": "d E, h:mm B", "Gy, Bhm": "y G, h:mm B", "GyMMM, Bhm": "MMM y G, h:mm B", "GyMMMd, Bhm": "MMM d, y G, h:mm B", "GyMMMEd, Bhm": "E, MMM d, y G, h:mm B", "M, Bhm": "L, h:mm B", "Md, Bhm": "M/d, h:mm B", "MEd, Bhm": "E, M/d, h:mm B", "MMM, Bhm": "LLL, h:mm B", "MMMd, Bhm": "MMM d, h:mm B", "MMMEd, Bhm": "E, MMM d, h:mm B", "MMMMd 'at' Bhm": "MMMM d 'at' h:mm B", "y, Bhm": "y, h:mm B", "yM, Bhm": "M/y, h:mm B", "yMd, Bhm": "M/d/y, h:mm B", "yMEd, Bhm": "E, M/d/y, h:mm B", "yMMM, Bhm": "MMM y, h:mm B", "yMMMd, Bhm": "MMM d, y, h:mm B", "yMMMEd, Bhm": "E, MMM d, y, h:mm B", "yMMMM 'at' Bhm": "MMMM y 'at' h:mm B", "EEEE, MMMM d, y 'at' Bhms": "EEEE, MMMM d, y 'at' h:mm:ss B", "MMMM d, y 'at' Bhms": "MMMM d, y 'at' h:mm:ss B", "MMM d, y, Bhms": "MMM d, y, h:mm:ss B", "M/d/yy, Bhms": "M/d/yy, h:mm:ss B", "d, Bhms": "d, h:mm:ss B", "E, Bhms": "ccc, h:mm:ss B", "Ed, Bhms": "d E, h:mm:ss B", "Gy, Bhms": "y G, h:mm:ss B", "GyMMM, Bhms": "MMM y G, h:mm:ss B", "GyMMMd, Bhms": "MMM d, y G, h:mm:ss B", "GyMMMEd, Bhms": "E, MMM d, y G, h:mm:ss B", "M, Bhms": "L, h:mm:ss B", "Md, Bhms": "M/d, h:mm:ss B", "MEd, Bhms": "E, M/d, h:mm:ss B", "MMM, Bhms": "LLL, h:mm:ss B", "MMMd, Bhms": "MMM d, h:mm:ss B", "MMMEd, Bhms": "E, MMM d, h:mm:ss B", "MMMMd 'at' Bhms": "MMMM d 'at' h:mm:ss B", "y, Bhms": "y, h:mm:ss B", "yM, Bhms": "M/y, h:mm:ss B", "yMd, Bhms": "M/d/y, h:mm:ss B", "yMEd, Bhms": "E, M/d/y, h:mm:ss B", "yMMM, Bhms": "MMM y, h:mm:ss B", "yMMMd, Bhms": "MMM d, y, h:mm:ss B", "yMMMEd, Bhms": "E, MMM d, y, h:mm:ss B", "yMMMM 'at' Bhms": "MMMM y 'at' h:mm:ss B", "EEEE, MMMM d, y 'at' h": "EEEE, MMMM d, y 'at' h a", "MMMM d, y 'at' h": "MMMM d, y 'at' h a", "MMM d, y, h": "MMM d, y, h a", "M/d/yy, h": "M/d/yy, h a", "d, h": "d, h a", "E, h": "ccc, h a", "Ed, h": "d E, h a", "Gy, h": "y G, h a", "GyMMM, h": "MMM y G, h a", "GyMMMd, h": "MMM d, y G, h a", "GyMMMEd, h": "E, MMM d, y G, h a", "M, h": "L, h a", "Md, h": "M/d, h a", "MEd, h": "E, M/d, h a", "MMM, h": "LLL, h a", "MMMd, h": "MMM d, h a", "MMMEd, h": "E, MMM d, h a", "MMMMd 'at' h": "MMMM d 'at' h a", "y, h": "y, h a", "yM, h": "M/y, h a", "yMd, h": "M/d/y, h a", "yMEd, h": "E, M/d/y, h a", "yMMM, h": "MMM y, h a", "yMMMd, h": "MMM d, y, h a", "yMMMEd, h": "E, MMM d, y, h a", "yMMMM 'at' h": "MMMM y 'at' h a", "EEEE, MMMM d, y 'at' H": "EEEE, MMMM d, y 'at' HH", "MMMM d, y 'at' H": "MMMM d, y 'at' HH", "MMM d, y, H": "MMM d, y, HH", "M/d/yy, H": "M/d/yy, HH", "d, H": "d, HH", "E, H": "ccc, HH", "Ed, H": "d E, HH", "Gy, H": "y G, HH", "GyMMM, H": "MMM y G, HH", "GyMMMd, H": "MMM d, y G, HH", "GyMMMEd, H": "E, MMM d, y G, HH", "M, H": "L, HH", "Md, H": "M/d, HH", "MEd, H": "E, M/d, HH", "MMM, H": "LLL, HH", "MMMd, H": "MMM d, HH", "MMMEd, H": "E, MMM d, HH", "MMMMd 'at' H": "MMMM d 'at' HH", "y, H": "y, HH", "yM, H": "M/y, HH", "yMd, H": "M/d/y, HH", "yMEd, H": "E, M/d/y, HH", "yMMM, H": "MMM y, HH", "yMMMd, H": "MMM d, y, HH", "yMMMEd, H": "E, MMM d, y, HH", "yMMMM 'at' H": "MMMM y 'at' HH", "EEEE, MMMM d, y 'at' hm": "EEEE, MMMM d, y 'at' h:mm a", "MMMM d, y 'at' hm": "MMMM d, y 'at' h:mm a", "MMM d, y, hm": "MMM d, y, h:mm a", "M/d/yy, hm": "M/d/yy, h:mm a", "d, hm": "d, h:mm a", "E, hm": "ccc, h:mm a", "Ed, hm": "d E, h:mm a", "Gy, hm": "y G, h:mm a", "GyMMM, hm": "MMM y G, h:mm a", "GyMMMd, hm": "MMM d, y G, h:mm a", "GyMMMEd, hm": "E, MMM d, y G, h:mm a", "M, hm": "L, h:mm a", "Md, hm": "M/d, h:mm a", "MEd, hm": "E, M/d, h:mm a", "MMM, hm": "LLL, h:mm a", "MMMd, hm": "MMM d, h:mm a", "MMMEd, hm": "E, MMM d, h:mm a", "MMMMd 'at' hm": "MMMM d 'at' h:mm a", "y, hm": "y, h:mm a", "yM, hm": "M/y, h:mm a", "yMd, hm": "M/d/y, h:mm a", "yMEd, hm": "E, M/d/y, h:mm a", "yMMM, hm": "MMM y, h:mm a", "yMMMd, hm": "MMM d, y, h:mm a", "yMMMEd, hm": "E, MMM d, y, h:mm a", "yMMMM 'at' hm": "MMMM y 'at' h:mm a", "EEEE, MMMM d, y 'at' Hm": "EEEE, MMMM d, y 'at' HH:mm", "MMMM d, y 'at' Hm": "MMMM d, y 'at' HH:mm", "MMM d, y, Hm": "MMM d, y, HH:mm", "M/d/yy, Hm": "M/d/yy, HH:mm", "d, Hm": "d, HH:mm", "E, Hm": "ccc, HH:mm", "Ed, Hm": "d E, HH:mm", "Gy, Hm": "y G, HH:mm", "GyMMM, Hm": "MMM y G, HH:mm", "GyMMMd, Hm": "MMM d, y G, HH:mm", "GyMMMEd, Hm": "E, MMM d, y G, HH:mm", "M, Hm": "L, HH:mm", "Md, Hm": "M/d, HH:mm", "MEd, Hm": "E, M/d, HH:mm", "MMM, Hm": "LLL, HH:mm", "MMMd, Hm": "MMM d, HH:mm", "MMMEd, Hm": "E, MMM d, HH:mm", "MMMMd 'at' Hm": "MMMM d 'at' HH:mm", "y, Hm": "y, HH:mm", "yM, Hm": "M/y, HH:mm", "yMd, Hm": "M/d/y, HH:mm", "yMEd, Hm": "E, M/d/y, HH:mm", "yMMM, Hm": "MMM y, HH:mm", "yMMMd, Hm": "MMM d, y, HH:mm", "yMMMEd, Hm": "E, MMM d, y, HH:mm", "yMMMM 'at' Hm": "MMMM y 'at' HH:mm", "EEEE, MMMM d, y 'at' hms": "EEEE, MMMM d, y 'at' h:mm:ss a", "MMMM d, y 'at' hms": "MMMM d, y 'at' h:mm:ss a", "MMM d, y, hms": "MMM d, y, h:mm:ss a", "M/d/yy, hms": "M/d/yy, h:mm:ss a", "d, hms": "d, h:mm:ss a", "E, hms": "ccc, h:mm:ss a", "Ed, hms": "d E, h:mm:ss a", "Gy, hms": "y G, h:mm:ss a", "GyMMM, hms": "MMM y G, h:mm:ss a", "GyMMMd, hms": "MMM d, y G, h:mm:ss a", "GyMMMEd, hms": "E, MMM d, y G, h:mm:ss a", "M, hms": "L, h:mm:ss a", "Md, hms": "M/d, h:mm:ss a", "MEd, hms": "E, M/d, h:mm:ss a", "MMM, hms": "LLL, h:mm:ss a", "MMMd, hms": "MMM d, h:mm:ss a", "MMMEd, hms": "E, MMM d, h:mm:ss a", "MMMMd 'at' hms": "MMMM d 'at' h:mm:ss a", "y, hms": "y, h:mm:ss a", "yM, hms": "M/y, h:mm:ss a", "yMd, hms": "M/d/y, h:mm:ss a", "yMEd, hms": "E, M/d/y, h:mm:ss a", "yMMM, hms": "MMM y, h:mm:ss a", "yMMMd, hms": "MMM d, y, h:mm:ss a", "yMMMEd, hms": "E, MMM d, y, h:mm:ss a", "yMMMM 'at' hms": "MMMM y 'at' h:mm:ss a", "EEEE, MMMM d, y 'at' Hms": "EEEE, MMMM d, y 'at' HH:mm:ss", "MMMM d, y 'at' Hms": "MMMM d, y 'at' HH:mm:ss", "MMM d, y, Hms": "MMM d, y, HH:mm:ss", "M/d/yy, Hms": "M/d/yy, HH:mm:ss", "d, Hms": "d, HH:mm:ss", "E, Hms": "ccc, HH:mm:ss", "Ed, Hms": "d E, HH:mm:ss", "Gy, Hms": "y G, HH:mm:ss", "GyMMM, Hms": "MMM y G, HH:mm:ss", "GyMMMd, Hms": "MMM d, y G, HH:mm:ss", "GyMMMEd, Hms": "E, MMM d, y G, HH:mm:ss", "M, Hms": "L, HH:mm:ss", "Md, Hms": "M/d, HH:mm:ss", "MEd, Hms": "E, M/d, HH:mm:ss", "MMM, Hms": "LLL, HH:mm:ss", "MMMd, Hms": "MMM d, HH:mm:ss", "MMMEd, Hms": "E, MMM d, HH:mm:ss", "MMMMd 'at' Hms": "MMMM d 'at' HH:mm:ss", "y, Hms": "y, HH:mm:ss", "yM, Hms": "M/y, HH:mm:ss", "yMd, Hms": "M/d/y, HH:mm:ss", "yMEd, Hms": "E, M/d/y, HH:mm:ss", "yMMM, Hms": "MMM y, HH:mm:ss", "yMMMd, Hms": "MMM d, y, HH:mm:ss", "yMMMEd, Hms": "E, MMM d, y, HH:mm:ss", "yMMMM 'at' Hms": "MMMM y 'at' HH:mm:ss", "EEEE, MMMM d, y 'at' hmsv": "EEEE, MMMM d, y 'at' h:mm:ss a v", "MMMM d, y 'at' hmsv": "MMMM d, y 'at' h:mm:ss a v", "MMM d, y, hmsv": "MMM d, y, h:mm:ss a v", "M/d/yy, hmsv": "M/d/yy, h:mm:ss a v", "d, hmsv": "d, h:mm:ss a v", "E, hmsv": "ccc, h:mm:ss a v", "Ed, hmsv": "d E, h:mm:ss a v", "Gy, hmsv": "y G, h:mm:ss a v", "GyMMM, hmsv": "MMM y G, h:mm:ss a v", "GyMMMd, hmsv": "MMM d, y G, h:mm:ss a v", "GyMMMEd, hmsv": "E, MMM d, y G, h:mm:ss a v", "M, hmsv": "L, h:mm:ss a v", "Md, hmsv": "M/d, h:mm:ss a v", "MEd, hmsv": "E, M/d, h:mm:ss a v", "MMM, hmsv": "LLL, h:mm:ss a v", "MMMd, hmsv": "MMM d, h:mm:ss a v", "MMMEd, hmsv": "E, MMM d, h:mm:ss a v", "MMMMd 'at' hmsv": "MMMM d 'at' h:mm:ss a v", "y, hmsv": "y, h:mm:ss a v", "yM, hmsv": "M/y, h:mm:ss a v", "yMd, hmsv": "M/d/y, h:mm:ss a v", "yMEd, hmsv": "E, M/d/y, h:mm:ss a v", "yMMM, hmsv": "MMM y, h:mm:ss a v", "yMMMd, hmsv": "MMM d, y, h:mm:ss a v", "yMMMEd, hmsv": "E, MMM d, y, h:mm:ss a v", "yMMMM 'at' hmsv": "MMMM y 'at' h:mm:ss a v", "EEEE, MMMM d, y 'at' Hmsv": "EEEE, MMMM d, y 'at' HH:mm:ss v", "MMMM d, y 'at' Hmsv": "MMMM d, y 'at' HH:mm:ss v", "MMM d, y, Hmsv": "MMM d, y, HH:mm:ss v", "M/d/yy, Hmsv": "M/d/yy, HH:mm:ss v", "d, Hmsv": "d, HH:mm:ss v", "E, Hmsv": "ccc, HH:mm:ss v", "Ed, Hmsv": "d E, HH:mm:ss v", "Gy, Hmsv": "y G, HH:mm:ss v", "GyMMM, Hmsv": "MMM y G, HH:mm:ss v", "GyMMMd, Hmsv": "MMM d, y G, HH:mm:ss v", "GyMMMEd, Hmsv": "E, MMM d, y G, HH:mm:ss v", "M, Hmsv": "L, HH:mm:ss v", "Md, Hmsv": "M/d, HH:mm:ss v", "MEd, Hmsv": "E, M/d, HH:mm:ss v", "MMM, Hmsv": "LLL, HH:mm:ss v", "MMMd, Hmsv": "MMM d, HH:mm:ss v", "MMMEd, Hmsv": "E, MMM d, HH:mm:ss v", "MMMMd 'at' Hmsv": "MMMM d 'at' HH:mm:ss v", "y, Hmsv": "y, HH:mm:ss v", "yM, Hmsv": "M/y, HH:mm:ss v", "yMd, Hmsv": "M/d/y, HH:mm:ss v", "yMEd, Hmsv": "E, M/d/y, HH:mm:ss v", "yMMM, Hmsv": "MMM y, HH:mm:ss v", "yMMMd, Hmsv": "MMM d, y, HH:mm:ss v", "yMMMEd, Hmsv": "E, MMM d, y, HH:mm:ss v", "yMMMM 'at' Hmsv": "MMMM y 'at' HH:mm:ss v", "EEEE, MMMM d, y 'at' hmv": "EEEE, MMMM d, y 'at' h:mm a v", "MMMM d, y 'at' hmv": "MMMM d, y 'at' h:mm a v", "MMM d, y, hmv": "MMM d, y, h:mm a v", "M/d/yy, hmv": "M/d/yy, h:mm a v", "d, hmv": "d, h:mm a v", "E, hmv": "ccc, h:mm a v", "Ed, hmv": "d E, h:mm a v", "Gy, hmv": "y G, h:mm a v", "GyMMM, hmv": "MMM y G, h:mm a v", "GyMMMd, hmv": "MMM d, y G, h:mm a v", "GyMMMEd, hmv": "E, MMM d, y G, h:mm a v", "M, hmv": "L, h:mm a v", "Md, hmv": "M/d, h:mm a v", "MEd, hmv": "E, M/d, h:mm a v", "MMM, hmv": "LLL, h:mm a v", "MMMd, hmv": "MMM d, h:mm a v", "MMMEd, hmv": "E, MMM d, h:mm a v", "MMMMd 'at' hmv": "MMMM d 'at' h:mm a v", "y, hmv": "y, h:mm a v", "yM, hmv": "M/y, h:mm a v", "yMd, hmv": "M/d/y, h:mm a v", "yMEd, hmv": "E, M/d/y, h:mm a v", "yMMM, hmv": "MMM y, h:mm a v", "yMMMd, hmv": "MMM d, y, h:mm a v", "yMMMEd, hmv": "E, MMM d, y, h:mm a v", "yMMMM 'at' hmv": "MMMM y 'at' h:mm a v", "EEEE, MMMM d, y 'at' Hmv": "EEEE, MMMM d, y 'at' HH:mm v", "MMMM d, y 'at' Hmv": "MMMM d, y 'at' HH:mm v", "MMM d, y, Hmv": "MMM d, y, HH:mm v", "M/d/yy, Hmv": "M/d/yy, HH:mm v", "d, Hmv": "d, HH:mm v", "E, Hmv": "ccc, HH:mm v", "Ed, Hmv": "d E, HH:mm v", "Gy, Hmv": "y G, HH:mm v", "GyMMM, Hmv": "MMM y G, HH:mm v", "GyMMMd, Hmv": "MMM d, y G, HH:mm v", "GyMMMEd, Hmv": "E, MMM d, y G, HH:mm v", "M, Hmv": "L, HH:mm v", "Md, Hmv": "M/d, HH:mm v", "MEd, Hmv": "E, M/d, HH:mm v", "MMM, Hmv": "LLL, HH:mm v", "MMMd, Hmv": "MMM d, HH:mm v", "MMMEd, Hmv": "E, MMM d, HH:mm v", "MMMMd 'at' Hmv": "MMMM d 'at' HH:mm v", "y, Hmv": "y, HH:mm v", "yM, Hmv": "M/y, HH:mm v", "yMd, Hmv": "M/d/y, HH:mm v", "yMEd, Hmv": "E, M/d/y, HH:mm v", "yMMM, Hmv": "MMM y, HH:mm v", "yMMMd, Hmv": "MMM d, y, HH:mm v", "yMMMEd, Hmv": "E, MMM d, y, HH:mm v", "yMMMM 'at' Hmv": "MMMM y 'at' HH:mm v", "EEEE, MMMM d, y 'at' ms": "EEEE, MMMM d, y 'at' mm:ss", "MMMM d, y 'at' ms": "MMMM d, y 'at' mm:ss", "MMM d, y, ms": "MMM d, y, mm:ss", "M/d/yy, ms": "M/d/yy, mm:ss", "d, ms": "d, mm:ss", "E, ms": "ccc, mm:ss", "Ed, ms": "d E, mm:ss", "Gy, ms": "y G, mm:ss", "GyMMM, ms": "MMM y G, mm:ss", "GyMMMd, ms": "MMM d, y G, mm:ss", "GyMMMEd, ms": "E, MMM d, y G, mm:ss", "M, ms": "L, mm:ss", "Md, ms": "M/d, mm:ss", "MEd, ms": "E, M/d, mm:ss", "MMM, ms": "LLL, mm:ss", "MMMd, ms": "MMM d, mm:ss", "MMMEd, ms": "E, MMM d, mm:ss", "MMMMd 'at' ms": "MMMM d 'at' mm:ss", "y, ms": "y, mm:ss", "yM, ms": "M/y, mm:ss", "yMd, ms": "M/d/y, mm:ss", "yMEd, ms": "E, M/d/y, mm:ss", "yMMM, ms": "MMM y, mm:ss", "yMMMd, ms": "MMM d, y, mm:ss", "yMMMEd, ms": "E, MMM d, y, mm:ss", "yMMMM 'at' ms": "MMMM y 'at' mm:ss" } }, "intervalFormats": { "intervalFormatFallback": "{0} – {1}", "Bh": { "B": "h B – h B", "h": "h – h B" }, "Bhm": { "B": "h:mm B – h:mm B", "h": "h:mm – h:mm B", "m": "h:mm – h:mm B" }, "d": { "d": "d – d" }, "Gy": { "G": "y G – y G", "y": "y – y G" }, "GyM": { "G": "M/y GGGGG – M/y GGGGG", "M": "M/y – M/y GGGGG", "y": "M/y – M/y GGGGG" }, "GyMd": { "d": "M/d/y – M/d/y GGGGG", "G": "M/d/y GGGGG – M/d/y GGGGG", "M": "M/d/y – M/d/y GGGGG", "y": "M/d/y – M/d/y GGGGG" }, "GyMEd": { "d": "E, M/d/y – E, M/d/y GGGGG", "G": "E, M/d/y GGGGG – E, M/d/y GGGGG", "M": "E, M/d/y – E, M/d/y GGGGG", "y": "E, M/d/y – E, M/d/y GGGGG" }, "GyMMM": { "G": "MMM y G – MMM y G", "M": "MMM – MMM y G", "y": "MMM y – MMM y G" }, "GyMMMd": { "d": "MMM d – d, y G", "G": "MMM d, y G – MMM d, y G", "M": "MMM d – MMM d, y G", "y": "MMM d, y – MMM d, y G" }, "GyMMMEd": { "d": "E, MMM d – E, MMM d, y G", "G": "E, MMM d, y G – E, MMM d, y G", "M": "E, MMM d – E, MMM d, y G", "y": "E, MMM d, y – E, MMM d, y G" }, "h": { "a": "h a – h a", "h": "h – h a" }, "H": { "H": "HH – HH" }, "hm": { "a": "h:mm a – h:mm a", "h": "h:mm – h:mm a", "m": "h:mm – h:mm a" }, "Hm": { "H": "HH:mm – HH:mm", "m": "HH:mm – HH:mm" }, "hmv": { "a": "h:mm a – h:mm a v", "h": "h:mm – h:mm a v", "m": "h:mm – h:mm a v" }, "Hmv": { "H": "HH:mm – HH:mm v", "m": "HH:mm – HH:mm v" }, "hv": { "a": "h a – h a v", "h": "h – h a v" }, "Hv": { "H": "HH – HH v" }, "M": { "M": "M – M" }, "Md": { "d": "M/d – M/d", "M": "M/d – M/d" }, "MEd": { "d": "E, M/d – E, M/d", "M": "E, M/d – E, M/d" }, "MMM": { "M": "MMM – MMM" }, "MMMd": { "d": "MMM d – d", "M": "MMM d – MMM d" }, "MMMEd": { "d": "E, MMM d – E, MMM d", "M": "E, MMM d – E, MMM d" }, "y": { "y": "y – y" }, "yM": { "M": "M/y – M/y", "y": "M/y – M/y" }, "yMd": { "d": "M/d/y – M/d/y", "M": "M/d/y – M/d/y", "y": "M/d/y – M/d/y" }, "yMEd": { "d": "E, M/d/y – E, M/d/y", "M": "E, M/d/y – E, M/d/y", "y": "E, M/d/y – E, M/d/y" }, "yMMM": { "M": "MMM – MMM y", "y": "MMM y – MMM y" }, "yMMMd": { "d": "MMM d – d, y", "M": "MMM d – MMM d, y", "y": "MMM d, y – MMM d, y" }, "yMMMEd": { "d": "E, MMM d – E, MMM d, y", "M": "E, MMM d – E, MMM d, y", "y": "E, MMM d, y – E, MMM d, y" }, "yMMMM": { "M": "MMMM – MMMM y", "y": "MMMM y – MMMM y" } }, "hourCycle": "h12", "nu": ["latn"], "ca": ["gregory"], "hc": ["h12", "", "h23", ""] }, "locale": "en" });
    }
    (function () {
        var extendStatics = function (d, b) {
            extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d2, b2) {
                d2.__proto__ = b2;
            } || function (d2, b2) {
                for (var p in b2)
                    if (Object.prototype.hasOwnProperty.call(b2, p))
                        d2[p] = b2[p];
            };
            return extendStatics(d, b);
        };
        function __extends(d, b) {
            if (typeof b !== "function" && b !== null)
                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
            extendStatics(d, b);
            function __() {
                this.constructor = d;
            }
            d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
        }
        var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;
        function invariant(condition, message, Err) {
            if (Err === void 0) {
                Err = Error;
            }
            if (!condition) {
                throw new Err(message);
            }
        }
        var RangePatternType;
        (function (RangePatternType2) {
            RangePatternType2["startRange"] = "startRange";
            RangePatternType2["shared"] = "shared";
            RangePatternType2["endRange"] = "endRange";
        })(RangePatternType || (RangePatternType = {}));
        function CanonicalizeLocaleList(locales) {
            return Intl.getCanonicalLocales(locales);
        }
        function ToString(o) {
            if (typeof o === "symbol") {
                throw TypeError("Cannot convert a Symbol value to a string");
            }
            return String(o);
        }
        function ToObject(arg) {
            if (arg == null) {
                throw new TypeError("undefined/null cannot be converted to object");
            }
            return Object(arg);
        }
        function SameValue(x, y) {
            if (Object.is) {
                return Object.is(x, y);
            }
            if (x === y) {
                return x !== 0 || 1 / x === 1 / y;
            }
            return x !== x && y !== y;
        }
        function Type(x) {
            if (x === null) {
                return "Null";
            }
            if (typeof x === "undefined") {
                return "Undefined";
            }
            if (typeof x === "function" || typeof x === "object") {
                return "Object";
            }
            if (typeof x === "number") {
                return "Number";
            }
            if (typeof x === "boolean") {
                return "Boolean";
            }
            if (typeof x === "string") {
                return "String";
            }
            if (typeof x === "symbol") {
                return "Symbol";
            }
            if (typeof x === "bigint") {
                return "BigInt";
            }
        }
        var MINUTES_PER_HOUR = 60;
        var SECONDS_PER_MINUTE = 60;
        var MS_PER_SECOND = 1e3;
        var MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;
        var MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;
        function CoerceOptionsToObject(options) {
            if (typeof options === "undefined") {
                return Object.create(null);
            }
            return ToObject(options);
        }
        function PartitionPattern(pattern) {
            var result = [];
            var beginIndex = pattern.indexOf("{");
            var endIndex = 0;
            var nextIndex = 0;
            var length = pattern.length;
            while (beginIndex < pattern.length && beginIndex > -1) {
                endIndex = pattern.indexOf("}", beginIndex);
                invariant(endIndex > beginIndex, "Invalid pattern " + pattern);
                if (beginIndex > nextIndex) {
                    result.push({
                        type: "literal",
                        value: pattern.substring(nextIndex, beginIndex)
                    });
                }
                result.push({
                    type: pattern.substring(beginIndex + 1, endIndex),
                    value: void 0
                });
                nextIndex = endIndex + 1;
                beginIndex = pattern.indexOf("{", nextIndex);
            }
            if (nextIndex < length) {
                result.push({
                    type: "literal",
                    value: pattern.substring(nextIndex, length)
                });
            }
            return result;
        }
        function GetOption(opts, prop, type, values, fallback) {
            if (typeof opts !== "object") {
                throw new TypeError("Options must be an object");
            }
            var value = opts[prop];
            if (value !== void 0) {
                if (type !== "boolean" && type !== "string") {
                    throw new TypeError("invalid type");
                }
                if (type === "boolean") {
                    value = Boolean(value);
                }
                if (type === "string") {
                    value = ToString(value);
                }
                if (values !== void 0 && !values.filter(function (val) {
                    return val == value;
                }).length) {
                    throw new RangeError(value + " is not within " + values.join(", "));
                }
                return value;
            }
            return fallback;
        }
        function BestAvailableLocale(availableLocales, locale) {
            var candidate = locale;
            while (true) {
                if (availableLocales.has(candidate)) {
                    return candidate;
                }
                var pos = candidate.lastIndexOf("-");
                if (!~pos) {
                    return void 0;
                }
                if (pos >= 2 && candidate[pos - 2] === "-") {
                    pos -= 2;
                }
                candidate = candidate.slice(0, pos);
            }
        }
        function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {
            var result = { locale: "" };
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
                var locale = requestedLocales_1[_i];
                var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
                var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
                if (availableLocale) {
                    result.locale = availableLocale;
                    if (locale !== noExtensionLocale) {
                        result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);
                    }
                    return result;
                }
            }
            result.locale = getDefaultLocale();
            return result;
        }
        function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {
            var minimizedAvailableLocaleMap = {};
            var minimizedAvailableLocales = new Set();
            availableLocales.forEach(function (locale2) {
                var minimizedLocale = new Intl.Locale(locale2).minimize().toString();
                minimizedAvailableLocaleMap[minimizedLocale] = locale2;
                minimizedAvailableLocales.add(minimizedLocale);
            });
            var foundLocale;
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
                var l = requestedLocales_1[_i];
                if (foundLocale) {
                    break;
                }
                var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
                if (availableLocales.has(noExtensionLocale)) {
                    foundLocale = noExtensionLocale;
                    break;
                }
                if (minimizedAvailableLocales.has(noExtensionLocale)) {
                    foundLocale = minimizedAvailableLocaleMap[noExtensionLocale];
                    break;
                }
                var locale = new Intl.Locale(noExtensionLocale);
                var maximizedRequestedLocale = locale.maximize().toString();
                var minimizedRequestedLocale = locale.minimize().toString();
                if (minimizedAvailableLocales.has(minimizedRequestedLocale)) {
                    foundLocale = minimizedAvailableLocaleMap[minimizedRequestedLocale];
                    break;
                }
                foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale);
            }
            return {
                locale: foundLocale || getDefaultLocale()
            };
        }
        function UnicodeExtensionValue(extension, key) {
            invariant(key.length === 2, "key must have 2 elements");
            var size = extension.length;
            var searchValue = "-" + key + "-";
            var pos = extension.indexOf(searchValue);
            if (pos !== -1) {
                var start = pos + 4;
                var end = start;
                var k = start;
                var done = false;
                while (!done) {
                    var e = extension.indexOf("-", k);
                    var len = void 0;
                    if (e === -1) {
                        len = size - k;
                    }
                    else {
                        len = e - k;
                    }
                    if (len === 2) {
                        done = true;
                    }
                    else if (e === -1) {
                        end = size;
                        done = true;
                    }
                    else {
                        end = e;
                        k = e + 1;
                    }
                }
                return extension.slice(start, end);
            }
            searchValue = "-" + key;
            pos = extension.indexOf(searchValue);
            if (pos !== -1 && pos + 3 === size) {
                return "";
            }
            return void 0;
        }
        function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {
            var matcher = options.localeMatcher;
            var r;
            if (matcher === "lookup") {
                r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale);
            }
            else {
                r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale);
            }
            var foundLocale = r.locale;
            var result = { locale: "", dataLocale: foundLocale };
            var supportedExtension = "-u";
            for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {
                var key = relevantExtensionKeys_1[_i];
                invariant(foundLocale in localeData, "Missing locale data for " + foundLocale);
                var foundLocaleData = localeData[foundLocale];
                invariant(typeof foundLocaleData === "object" && foundLocaleData !== null, "locale data " + key + " must be an object");
                var keyLocaleData = foundLocaleData[key];
                invariant(Array.isArray(keyLocaleData), "keyLocaleData for " + key + " must be an array");
                var value = keyLocaleData[0];
                invariant(typeof value === "string" || value === null, "value must be string or null but got " + typeof value + " in key " + key);
                var supportedExtensionAddition = "";
                if (r.extension) {
                    var requestedValue = UnicodeExtensionValue(r.extension, key);
                    if (requestedValue !== void 0) {
                        if (requestedValue !== "") {
                            if (~keyLocaleData.indexOf(requestedValue)) {
                                value = requestedValue;
                                supportedExtensionAddition = "-" + key + "-" + value;
                            }
                        }
                        else if (~requestedValue.indexOf("true")) {
                            value = "true";
                            supportedExtensionAddition = "-" + key;
                        }
                    }
                }
                if (key in options) {
                    var optionsValue = options[key];
                    invariant(typeof optionsValue === "string" || typeof optionsValue === "undefined" || optionsValue === null, "optionsValue must be String, Undefined or Null");
                    if (~keyLocaleData.indexOf(optionsValue)) {
                        if (optionsValue !== value) {
                            value = optionsValue;
                            supportedExtensionAddition = "";
                        }
                    }
                }
                result[key] = value;
                supportedExtension += supportedExtensionAddition;
            }
            if (supportedExtension.length > 2) {
                var privateIndex = foundLocale.indexOf("-x-");
                if (privateIndex === -1) {
                    foundLocale = foundLocale + supportedExtension;
                }
                else {
                    var preExtension = foundLocale.slice(0, privateIndex);
                    var postExtension = foundLocale.slice(privateIndex, foundLocale.length);
                    foundLocale = preExtension + supportedExtension + postExtension;
                }
                foundLocale = Intl.getCanonicalLocales(foundLocale)[0];
            }
            result.locale = foundLocale;
            return result;
        }
        var SANCTIONED_UNITS = [
            "angle-degree",
            "area-acre",
            "area-hectare",
            "concentr-percent",
            "digital-bit",
            "digital-byte",
            "digital-gigabit",
            "digital-gigabyte",
            "digital-kilobit",
            "digital-kilobyte",
            "digital-megabit",
            "digital-megabyte",
            "digital-petabyte",
            "digital-terabit",
            "digital-terabyte",
            "duration-day",
            "duration-hour",
            "duration-millisecond",
            "duration-minute",
            "duration-month",
            "duration-second",
            "duration-week",
            "duration-year",
            "length-centimeter",
            "length-foot",
            "length-inch",
            "length-kilometer",
            "length-meter",
            "length-mile-scandinavian",
            "length-mile",
            "length-millimeter",
            "length-yard",
            "mass-gram",
            "mass-kilogram",
            "mass-ounce",
            "mass-pound",
            "mass-stone",
            "temperature-celsius",
            "temperature-fahrenheit",
            "volume-fluid-ounce",
            "volume-gallon",
            "volume-liter",
            "volume-milliliter"
        ];
        function removeUnitNamespace(unit) {
            return unit.slice(unit.indexOf("-") + 1);
        }
        var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace);
        var S_UNICODE_REGEX = /[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/;
        var CARET_S_UNICODE_REGEX = new RegExp("^" + S_UNICODE_REGEX.source);
        var S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + "$");
        function SingularRelativeTimeUnit(unit) {
            invariant(Type(unit) === "String", "unit must be a string");
            if (unit === "seconds")
                return "second";
            if (unit === "minutes")
                return "minute";
            if (unit === "hours")
                return "hour";
            if (unit === "days")
                return "day";
            if (unit === "weeks")
                return "week";
            if (unit === "months")
                return "month";
            if (unit === "quarters")
                return "quarter";
            if (unit === "years")
                return "year";
            if (unit !== "second" && unit !== "minute" && unit !== "hour" && unit !== "day" && unit !== "week" && unit !== "month" && unit !== "quarter" && unit !== "year") {
                throw new RangeError("invalid unit");
            }
            return unit;
        }
        function MakePartsList(pattern, unit, parts) {
            var patternParts = PartitionPattern(pattern);
            var result = [];
            for (var _i = 0, patternParts_1 = patternParts; _i < patternParts_1.length; _i++) {
                var patternPart = patternParts_1[_i];
                if (patternPart.type === "literal") {
                    result.push({
                        type: "literal",
                        value: patternPart.value
                    });
                }
                else {
                    invariant(patternPart.type === "0", "Malformed pattern " + pattern);
                    for (var _a = 0, parts_1 = parts; _a < parts_1.length; _a++) {
                        var part = parts_1[_a];
                        result.push({
                            type: part.type,
                            value: part.value,
                            unit: unit
                        });
                    }
                }
            }
            return result;
        }
        function PartitionRelativeTimePattern(rtf, value, unit, _a) {
            var getInternalSlots2 = _a.getInternalSlots;
            invariant(Type(value) === "Number", "value must be number, instead got " + typeof value, TypeError);
            invariant(Type(unit) === "String", "unit must be number, instead got " + typeof value, TypeError);
            if (isNaN(value) || !isFinite(value)) {
                throw new RangeError("Invalid value " + value);
            }
            var resolvedUnit = SingularRelativeTimeUnit(unit);
            var _b = getInternalSlots2(rtf), fields = _b.fields, style = _b.style, numeric = _b.numeric, pluralRules = _b.pluralRules, numberFormat = _b.numberFormat;
            var entry = resolvedUnit;
            if (style === "short") {
                entry = resolvedUnit + "-short";
            }
            else if (style === "narrow") {
                entry = resolvedUnit + "-narrow";
            }
            if (!(entry in fields)) {
                entry = resolvedUnit;
            }
            var patterns = fields[entry];
            if (numeric === "auto") {
                if (ToString(value) in patterns) {
                    return [
                        {
                            type: "literal",
                            value: patterns[ToString(value)]
                        }
                    ];
                }
            }
            var tl = "future";
            if (SameValue(value, -0) || value < 0) {
                tl = "past";
            }
            var po = patterns[tl];
            var fv = typeof numberFormat.formatToParts === "function" ? numberFormat.formatToParts(Math.abs(value)) : [
                {
                    type: "literal",
                    value: numberFormat.format(Math.abs(value)),
                    unit: unit
                }
            ];
            var pr = pluralRules.select(value);
            var pattern = po[pr];
            return MakePartsList(pattern, resolvedUnit, fv);
        }
        var NUMBERING_SYSTEM_REGEX = /^[a-z0-9]{3,8}(-[a-z0-9]{3,8})*$/i;
        function InitializeRelativeTimeFormat(rtf, locales, options, _a) {
            var getInternalSlots2 = _a.getInternalSlots, availableLocales = _a.availableLocales, relevantExtensionKeys = _a.relevantExtensionKeys, localeData = _a.localeData, getDefaultLocale = _a.getDefaultLocale;
            var internalSlots = getInternalSlots2(rtf);
            internalSlots.initializedRelativeTimeFormat = true;
            var requestedLocales = CanonicalizeLocaleList(locales);
            var opt = Object.create(null);
            var opts = CoerceOptionsToObject(options);
            var matcher = GetOption(opts, "localeMatcher", "string", ["best fit", "lookup"], "best fit");
            opt.localeMatcher = matcher;
            var numberingSystem = GetOption(opts, "numberingSystem", "string", void 0, void 0);
            if (numberingSystem !== void 0) {
                if (!NUMBERING_SYSTEM_REGEX.test(numberingSystem)) {
                    throw new RangeError("Invalid numbering system " + numberingSystem);
                }
            }
            opt.nu = numberingSystem;
            var r = ResolveLocale(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale);
            var locale = r.locale, nu = r.nu;
            internalSlots.locale = locale;
            internalSlots.style = GetOption(opts, "style", "string", ["long", "narrow", "short"], "long");
            internalSlots.numeric = GetOption(opts, "numeric", "string", ["always", "auto"], "always");
            var fields = localeData[r.dataLocale];
            invariant(!!fields, "Missing locale data for " + r.dataLocale);
            internalSlots.fields = fields;
            internalSlots.numberFormat = new Intl.NumberFormat(locales);
            internalSlots.pluralRules = new Intl.PluralRules(locales);
            internalSlots.numberingSystem = nu;
            return rtf;
        }
        function LookupSupportedLocales(availableLocales, requestedLocales) {
            var subset = [];
            for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {
                var locale = requestedLocales_1[_i];
                var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, "");
                var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);
                if (availableLocale) {
                    subset.push(availableLocale);
                }
            }
            return subset;
        }
        function SupportedLocales(availableLocales, requestedLocales, options) {
            var matcher = "best fit";
            if (options !== void 0) {
                options = ToObject(options);
                matcher = GetOption(options, "localeMatcher", "string", ["lookup", "best fit"], "best fit");
            }
            if (matcher === "best fit") {
                return LookupSupportedLocales(availableLocales, requestedLocales);
            }
            return LookupSupportedLocales(availableLocales, requestedLocales);
        }
        var MissingLocaleDataError = function (_super) {
            __extends(MissingLocaleDataError2, _super);
            function MissingLocaleDataError2() {
                var _this = _super !== null && _super.apply(this, arguments) || this;
                _this.type = "MISSING_LOCALE_DATA";
                return _this;
            }
            return MissingLocaleDataError2;
        }(Error);
        var internalSlotMap = new WeakMap();
        function getInternalSlots(x) {
            var internalSlots = internalSlotMap.get(x);
            if (!internalSlots) {
                internalSlots = Object.create(null);
                internalSlotMap.set(x, internalSlots);
            }
            return internalSlots;
        }
        var RelativeTimeFormat = function () {
            function RelativeTimeFormat2(locales, options) {
                var newTarget = this && this instanceof RelativeTimeFormat2 ? this.constructor : void 0;
                if (!newTarget) {
                    throw new TypeError("Intl.RelativeTimeFormat must be called with 'new'");
                }
                return InitializeRelativeTimeFormat(this, locales, options, {
                    getInternalSlots: getInternalSlots,
                    availableLocales: RelativeTimeFormat2.availableLocales,
                    relevantExtensionKeys: RelativeTimeFormat2.relevantExtensionKeys,
                    localeData: RelativeTimeFormat2.localeData,
                    getDefaultLocale: RelativeTimeFormat2.getDefaultLocale
                });
            }
            RelativeTimeFormat2.prototype.format = function (value, unit) {
                if (typeof this !== "object") {
                    throw new TypeError("format was called on a non-object");
                }
                var internalSlots = getInternalSlots(this);
                if (!internalSlots.initializedRelativeTimeFormat) {
                    throw new TypeError("format was called on a invalid context");
                }
                return PartitionRelativeTimePattern(this, Number(value), ToString(unit), {
                    getInternalSlots: getInternalSlots
                }).map(function (el) {
                    return el.value;
                }).join("");
            };
            RelativeTimeFormat2.prototype.formatToParts = function (value, unit) {
                if (typeof this !== "object") {
                    throw new TypeError("formatToParts was called on a non-object");
                }
                var internalSlots = getInternalSlots(this);
                if (!internalSlots.initializedRelativeTimeFormat) {
                    throw new TypeError("formatToParts was called on a invalid context");
                }
                return PartitionRelativeTimePattern(this, Number(value), ToString(unit), { getInternalSlots: getInternalSlots });
            };
            RelativeTimeFormat2.prototype.resolvedOptions = function () {
                if (typeof this !== "object") {
                    throw new TypeError("resolvedOptions was called on a non-object");
                }
                var internalSlots = getInternalSlots(this);
                if (!internalSlots.initializedRelativeTimeFormat) {
                    throw new TypeError("resolvedOptions was called on a invalid context");
                }
                return {
                    locale: internalSlots.locale,
                    style: internalSlots.style,
                    numeric: internalSlots.numeric,
                    numberingSystem: internalSlots.numberingSystem
                };
            };
            RelativeTimeFormat2.supportedLocalesOf = function (locales, options) {
                return SupportedLocales(RelativeTimeFormat2.availableLocales, CanonicalizeLocaleList(locales), options);
            };
            RelativeTimeFormat2.__addLocaleData = function () {
                var data = [];
                for (var _i = 0; _i < arguments.length; _i++) {
                    data[_i] = arguments[_i];
                }
                for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {
                    var _b = data_1[_a], d = _b.data, locale = _b.locale;
                    var minimizedLocale = new Intl.Locale(locale).minimize().toString();
                    RelativeTimeFormat2.localeData[locale] = RelativeTimeFormat2.localeData[minimizedLocale] = d;
                    RelativeTimeFormat2.availableLocales.add(minimizedLocale);
                    RelativeTimeFormat2.availableLocales.add(locale);
                    if (!RelativeTimeFormat2.__defaultLocale) {
                        RelativeTimeFormat2.__defaultLocale = minimizedLocale;
                    }
                }
            };
            RelativeTimeFormat2.getDefaultLocale = function () {
                return RelativeTimeFormat2.__defaultLocale;
            };
            RelativeTimeFormat2.localeData = {};
            RelativeTimeFormat2.availableLocales = new Set();
            RelativeTimeFormat2.__defaultLocale = "";
            RelativeTimeFormat2.relevantExtensionKeys = ["nu"];
            RelativeTimeFormat2.polyfilled = true;
            return RelativeTimeFormat2;
        }();
        var lib_default = RelativeTimeFormat;
        try {
            if (typeof Symbol !== "undefined") {
                Object.defineProperty(RelativeTimeFormat.prototype, Symbol.toStringTag, {
                    value: "Intl.RelativeTimeFormat",
                    writable: false,
                    enumerable: false,
                    configurable: true
                });
            }
            Object.defineProperty(RelativeTimeFormat.prototype.constructor, "length", {
                value: 0,
                writable: false,
                enumerable: false,
                configurable: true
            });
            Object.defineProperty(RelativeTimeFormat.supportedLocalesOf, "length", {
                value: 1,
                writable: false,
                enumerable: false,
                configurable: true
            });
        }
        catch (e) {
        }
        function shouldPolyfill() {
            return typeof Intl === "undefined" || !("RelativeTimeFormat" in Intl);
        }
        if (shouldPolyfill()) {
            Object.defineProperty(Intl, "RelativeTimeFormat", {
                value: lib_default,
                writable: true,
                enumerable: false,
                configurable: true
            });
        }
    })();
    CreateMethodProperty(Object, 'fromEntries', function fromEntries(iterable) {
        RequireObjectCoercible(iterable);
        var obj = {};
        var adder = function (key, value) {
            var O = this;
            var propertyKey = ToPropertyKey(key);
            CreateDataPropertyOrThrow(O, propertyKey, value);
        };
        return AddEntriesFromIterable(obj, iterable, adder);
    });
    (function (global) {
        global.URL.prototype.toJSON = function toJSON() {
            return this.href;
        };
    }(self));
})('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});

/* </pre> */