{ "version":3, "file":"hubspotleadgenvendor.js", "lineCount":71, "mappings":"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", "sources":["/src/com/google/javascript/jscomp/js/base.js","/src/com/google/javascript/jscomp/js/es6/util/arrayiterator.js","/src/com/google/javascript/jscomp/js/util/defines.js","/src/com/google/javascript/jscomp/js/util/defineproperty.js","/src/com/google/javascript/jscomp/js/util/global.js","/src/com/google/javascript/jscomp/js/util/shouldpolyfill.js","/src/com/google/javascript/jscomp/js/util/polyfill.js","/src/com/google/javascript/jscomp/js/es6/symbol.js","/src/com/google/javascript/jscomp/js/es6/util/iteratorfromarray.js","/src/com/google/javascript/jscomp/js/es6/array/keys.js","/js/vendor/plugins/cldr.js","/js/vendor/plugins/globalize.js","/js/vendor/plugins/cldr/event.js","/js/vendor/plugins/globalize/date.js","/js/vendor/plugins/globalize/number.js"], "sourcesContent":["","","","","","","","","","","/**\n * CLDR JavaScript Library v0.3.8\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-07-13T05:05Z\n */\n/*!\n * CLDR JavaScript Library v0.3.8 2014-07-13T05:05Z MIT license \u00a9 Rafael Xavier\n * http://git.io/h4lmVg\n */\n(function( root, factory ) {\n\n\t// if ( typeof define === \"function\" && define.amd ) {\n\t// \t// AMD.\n\t// \tdefine( factory );\n\t// } else if ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t// \t// Node. CommonJS.\n\t// \tmodule.exports = factory();\n\t// } else {\n\t\t// Global\n\t\troot.Cldr = factory();\n\t// }\n\n}( this, function() {\n\n\n\n\tvar arrayForEach = function( array, callback ) {\n\t\tvar i, length;\n\t\tif ( array.forEach ) {\n\t\t\treturn array.forEach( callback );\n\t\t}\n\t\tfor ( i = 0, length = array.length; i < length; i++ ) {\n\t\t\tcallback( array[ i ], i, array );\n\t\t}\n\t};\n\n\n\n\n\tvar objectKeys = function( object ) {\n\t\tvar i,\n\t\t\tresult = [];\n\n\t\tif ( Object.keys ) {\n\t\t\treturn Object.keys( object );\n\t\t}\n\n\t\tfor ( i in object ) {\n\t\t\tresult.push( i );\n\t\t}\n\n\t\treturn result;\n\t};\n\n\n\n\n\tvar createError = function( code, attributes ) {\n\t\tvar error, message;\n\n\t\tmessage = code + ( attributes && JSON ? \": \" + JSON.stringify( attributes ) : \"\" );\n\t\terror = new Error( message );\n\t\terror.code = code;\n\n\t\t// extend( error, attributes );\n\t\tarrayForEach( objectKeys( attributes ), function( attribute ) {\n\t\t\terror[ attribute ] = attributes[ attribute ];\n\t\t});\n\n\t\treturn error;\n\t};\n\n\n\n\n\tvar validate = function( code, check, attributes ) {\n\t\tif ( !check ) {\n\t\t\tthrow createError( code, attributes );\n\t\t}\n\t};\n\n\n\n\n\tvar validatePresence = function( value, name ) {\n\t\tvalidate( \"E_MISSING_PARAMETER\", typeof value !== \"undefined\", {\n\t\t\tname: name\n\t\t});\n\t};\n\n\n\n\n\tvar validateType = function( value, name, check, expected ) {\n\t\tvalidate( \"E_INVALID_PAR_TYPE\", check, {\n\t\t\texpected: expected,\n\t\t\tname: name,\n\t\t\tvalue: value\n\t\t});\n\t};\n\n\n\n\n\tvar arrayIsArray = Array.isArray || function( obj ) {\n\t\treturn Object.prototype.toString.call( obj ) === \"[object Array]\";\n\t};\n\n\n\n\n\tvar validateTypePath = function( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"string\" || arrayIsArray( value ), \"String or Array\" );\n\t};\n\n\n\n\n\t/**\n\t * Function inspired by jQuery Core, but reduced to our use case.\n\t */\n\tvar isPlainObject = function( obj ) {\n\t\treturn obj !== null && \"\" + obj === \"[object Object]\";\n\t};\n\n\n\n\n\tvar validateTypePlainObject = function( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"undefined\" || isPlainObject( value ), \"Plain Object\" );\n\t};\n\n\n\n\n\tvar validateTypeString = function( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"string\", \"a string\" );\n\t};\n\n\n\n\n\tvar pathNormalize = function( path, attributes ) {\n\t\tif ( arrayIsArray( path ) ) {\n\t\t\tpath = path.join( \"/\" );\n\t\t}\n\t\tif ( typeof path !== \"string\" ) {\n\t\t\tthrow new Error( \"invalid path \\\"\" + path + \"\\\"\" );\n\t\t}\n\t\t// 1: Ignore leading slash `/`\n\t\t// 2: Ignore leading `cldr/`\n\t\tpath = path\n\t\t\t.replace( /^\\// , \"\" ) /* 1 */\n\t\t\t.replace( /^cldr\\// , \"\" ); /* 2 */\n\n\t\t// Replace {attribute}'s\n\t\tpath = path.replace( /{[a-zA-Z]+}/g, function( name ) {\n\t\t\tname = name.replace( /^{([^}]*)}$/, \"$1\" );\n\t\t\treturn attributes[ name ];\n\t\t});\n\n\t\treturn path.split( \"/\" );\n\t};\n\n\n\n\n\tvar arraySome = function( array, callback ) {\n\t\tvar i, length;\n\t\tif ( array.some ) {\n\t\t\treturn array.some( callback );\n\t\t}\n\t\tfor ( i = 0, length = array.length; i < length; i++ ) {\n\t\t\tif ( callback( array[ i ], i, array ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\n\n\n\t/**\n\t * Return the maximized language id as defined in\n\t * http://www.unicode.org/reports/tr35/#Likely_Subtags\n\t * 1. Canonicalize.\n\t * 1.1 Make sure the input locale is in canonical form: uses the right\n\t * separator, and has the right casing.\n\t * TODO Right casing? What df? It seems languages are lowercase, scripts are\n\t * Capitalized, territory is uppercase. I am leaving this as an exercise to\n\t * the user.\n\t *\n\t * 1.2 Replace any deprecated subtags with their canonical values using the\n\t * data in supplemental metadata. Use the first value in the\n\t * replacement list, if it exists. Language tag replacements may have multiple\n\t * parts, such as \"sh\" \u279e \"sr_Latn\" or mo\" \u279e \"ro_MD\". In such a case, the\n\t * original script and/or region are retained if there is one. Thus\n\t * \"sh_Arab_AQ\" \u279e \"sr_Arab_AQ\", not \"sr_Latn_AQ\".\n\t * TODO What data?\n\t *\n\t * 1.3 If the tag is grandfathered (see in the supplemental data), then return it.\n\t * TODO grandfathered?\n\t *\n\t * 1.4 Remove the script code 'Zzzz' and the region code 'ZZ' if they occur.\n\t * 1.5 Get the components of the cleaned-up source tag (languages, scripts,\n\t * and regions), plus any variants and extensions.\n\t * 2. Lookup. Lookup each of the following in order, and stop on the first\n\t * match:\n\t * 2.1 languages_scripts_regions\n\t * 2.2 languages_regions\n\t * 2.3 languages_scripts\n\t * 2.4 languages\n\t * 2.5 und_scripts\n\t * 3. Return\n\t * 3.1 If there is no match, either return an error value, or the match for\n\t * \"und\" (in APIs where a valid language tag is required).\n\t * 3.2 Otherwise there is a match = languagem_scriptm_regionm\n\t * 3.3 Let xr = xs if xs is not empty, and xm otherwise.\n\t * 3.4 Return the language tag composed of languager _ scriptr _ regionr +\n\t * variants + extensions.\n\t *\n\t */\n\tvar coreLikelySubtags = function( Cldr, cldr, subtags, options ) {\n\t\tvar match, matchFound,\n\t\t\tlanguage = subtags[ 0 ],\n\t\t\tscript = subtags[ 1 ],\n\t\t\tsep = Cldr.localeSep,\n\t\t\tterritory = subtags[ 2 ];\n\t\toptions = options || {};\n\n\t\t// Skip if (language, script, territory) is not empty [3.3]\n\t\tif ( language !== \"und\" && script !== \"Zzzz\" && territory !== \"ZZ\" ) {\n\t\t\treturn [ language, script, territory ];\n\t\t}\n\n\t\t// Skip if no supplemental likelySubtags data is present\n\t\tif ( typeof cldr.get( \"supplemental/likelySubtags\" ) === \"undefined\" ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// [2]\n\t\tmatchFound = arraySome([\n\t\t\t[ language, script, territory ],\n\t\t\t[ language, territory ],\n\t\t\t[ language, script ],\n\t\t\t[ language ],\n\t\t\t[ \"und\", script ]\n\t\t], function( test ) {\n\t\t\treturn match = !(/\\b(Zzzz|ZZ)\\b/).test( test.join( sep ) ) /* [1.4] */ && cldr.get( [ \"supplemental/likelySubtags\", test.join( sep ) ] );\n\t\t});\n\n\t\t// [3]\n\t\tif ( matchFound ) {\n\t\t\t// [3.2 .. 3.4]\n\t\t\tmatch = match.split( sep );\n\t\t\treturn [\n\t\t\t\tlanguage !== \"und\" ? language : match[ 0 ],\n\t\t\t\tscript !== \"Zzzz\" ? script : match[ 1 ],\n\t\t\t\tterritory !== \"ZZ\" ? territory : match[ 2 ]\n\t\t\t];\n\t\t} else if ( options.force ) {\n\t\t\t// [3.1.2]\n\t\t\treturn cldr.get( \"supplemental/likelySubtags/und\" ).split( sep );\n\t\t} else {\n\t\t\t// [3.1.1]\n\t\t\treturn;\n\t\t}\n\t};\n\n\n\n\t/**\n\t * Given a locale, remove any fields that Add Likely Subtags would add.\n\t * http://www.unicode.org/reports/tr35/#Likely_Subtags\n\t * 1. First get max = AddLikelySubtags(inputLocale). If an error is signaled,\n\t * return it.\n\t * 2. Remove the variants from max.\n\t * 3. Then for trial in {language, language _ region, language _ script}. If\n\t * AddLikelySubtags(trial) = max, then return trial + variants.\n\t * 4. If you do not get a match, return max + variants.\n\t * \n\t */\n\tvar coreRemoveLikelySubtags = function( Cldr, cldr, maxLanguageId ) {\n\t\tvar match, matchFound,\n\t\t\tlanguage = maxLanguageId[ 0 ],\n\t\t\tscript = maxLanguageId[ 1 ],\n\t\t\tterritory = maxLanguageId[ 2 ];\n\n\t\t// [3]\n\t\tmatchFound = arraySome([\n\t\t\t[ [ language, \"Zzzz\", \"ZZ\" ], [ language ] ],\n\t\t\t[ [ language, \"Zzzz\", territory ], [ language, territory ] ],\n\t\t\t[ [ language, script, \"ZZ\" ], [ language, script ] ]\n\t\t], function( test ) {\n\t\t\tvar result = coreLikelySubtags( Cldr, cldr, test[ 0 ] );\n\t\t\tmatch = test[ 1 ];\n\t\t\treturn result && result[ 0 ] === maxLanguageId[ 0 ] &&\n\t\t\t\tresult[ 1 ] === maxLanguageId[ 1 ] &&\n\t\t\t\tresult[ 2 ] === maxLanguageId[ 2 ];\n\t\t});\n\n\t\t// [4]\n\t\treturn matchFound ? match : maxLanguageId;\n\t};\n\n\n\n\n\tvar resourceGet = function( data, path ) {\n\t\tvar i,\n\t\t\tnode = data,\n\t\t\tlength = path.length;\n\n\t\tfor ( i = 0; i < length - 1; i++ ) {\n\t\t\tnode = node[ path[ i ] ];\n\t\t\tif ( !node ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\t\treturn node[ path[ i ] ];\n\t};\n\n\n\n\n\tvar itemGetResolved = function( Cldr, path, attributes ) {\n\t\t// Resolve path\n\t\tvar normalizedPath = pathNormalize( path, attributes );\n\n\t\treturn resourceGet( Cldr._resolved, normalizedPath );\n\t};\n\n\n\n\n\tvar alwaysArray = function( stringOrArray ) {\n\t\treturn typeof stringOrArray === \"string\" ? [ stringOrArray ] : stringOrArray;\n\t};\n\n\n\tvar jsonMerge = (function() {\n\n\t// Returns new deeply merged JSON.\n\t//\n\t// Eg.\n\t// merge( { a: { b: 1, c: 2 } }, { a: { b: 3, d: 4 } } )\n\t// -> { a: { b: 3, c: 2, d: 4 } }\n\t//\n\t// \n\tvar merge = function() {\n\t\tvar destination = {},\n\t\t\tsources = [].slice.call( arguments, 0 );\n\t\tarrayForEach( sources, function( source ) {\n\t\t\tvar prop;\n\t\t\tfor ( prop in source ) {\n\t\t\t\tif ( prop in destination && arrayIsArray( destination[ prop ] ) ) {\n\n\t\t\t\t\t// Concat Arrays\n\t\t\t\t\tdestination[ prop ] = destination[ prop ].concat( source[ prop ] );\n\n\t\t\t\t} else if ( prop in destination && typeof destination[ prop ] === \"object\" ) {\n\n\t\t\t\t\t// Merge Objects\n\t\t\t\t\tdestination[ prop ] = merge( destination[ prop ], source[ prop ] );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Set new values\n\t\t\t\t\tdestination[ prop ] = source[ prop ];\n\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn destination;\n\t};\n\n\treturn merge;\n\n}());\n\n\n\t/**\n\t * new Cldr()\n\t */\n\tvar Cldr = function( locale ) {\n\t\tthis.init( locale );\n\t};\n\n\t// Build optimization hack to avoid duplicating functions across modules.\n\tCldr._alwaysArray = alwaysArray;\n\tCldr._createError = createError;\n\tCldr._itemGetResolved = itemGetResolved;\n\tCldr._jsonMerge = jsonMerge;\n\tCldr._pathNormalize = pathNormalize;\n\tCldr._resourceGet = resourceGet;\n\tCldr._validatePresence = validatePresence;\n\tCldr._validateType = validateType;\n\tCldr._validateTypePath = validateTypePath;\n\tCldr._validateTypePlainObject = validateTypePlainObject;\n\n\tCldr._resolved = {};\n\n\t// Allow user to override locale separator \"-\" (default) | \"_\". According to http://www.unicode.org/reports/tr35/#Unicode_language_identifier, both \"-\" and \"_\" are valid locale separators (eg. \"en_GB\", \"en-GB\"). According to http://unicode.org/cldr/trac/ticket/6786 its usage must be consistent throughout the data set.\n\tCldr.localeSep = \"-\";\n\n\t// Load resolved cldr data\n\tCldr.load = function( json ) {\n\t\tvalidatePresence( json, \"json\" );\n\t\tvalidateTypePlainObject( json, \"json\" );\n\t\tCldr._resolved = jsonMerge( Cldr._resolved, json );\n\t};\n\n\t/**\n\t * .init() automatically run on instantiation/construction.\n\t */\n\tCldr.prototype.init = function( locale ) {\n\t\tvar language, languageId, maxLanguageId, script, territory, unicodeLanguageId, variant,\n\t\t\tsep = Cldr.localeSep;\n\n\t\tvalidatePresence( locale, \"locale\" );\n\t\tvalidateTypeString( locale, \"locale\" );\n\n\t\t// Normalize locale code.\n\t\t// Get (or deduce) the \"triple subtags\": language, territory (also aliased as region), and script subtags.\n\t\t// Get the variant subtags (calendar, collation, currency, etc).\n\t\t// refs:\n\t\t// - http://www.unicode.org/reports/tr35/#Field_Definitions\n\t\t// - http://www.unicode.org/reports/tr35/#Language_and_Locale_IDs\n\t\t// - http://www.unicode.org/reports/tr35/#Unicode_locale_identifier\n\n\t\tlocale = locale.replace( /-/, \"_\" );\n\n\t\t// TODO normalize unicode locale extensions. Currently, skipped.\n\t\t// unicodeLocaleExtensions = locale.split( \"_u_\" )[ 1 ];\n\t\tlocale = locale.split( \"_u_\" )[ 0 ];\n\n\t\t// TODO normalize transformed extensions. Currently, skipped.\n\t\t// transformedExtensions = locale.split( \"_t_\" )[ 1 ];\n\t\tlocale = locale.split( \"_t_\" )[ 0 ];\n\n\t\tunicodeLanguageId = locale;\n\n\t\t// unicodeLanguageId = ...\n\t\tswitch ( true ) {\n\n\t\t\t// language_script_territory..\n\t\t\tcase /^[a-z]{2,3}_[A-Z][a-z]{3}_[A-Z0-9]{2}(\\b|_)/.test( unicodeLanguageId ):\n\t\t\t\tlanguage = unicodeLanguageId.split( \"_\" )[ 0 ];\n\t\t\t\tscript = unicodeLanguageId.split( \"_\" )[ 1 ];\n\t\t\t\tterritory = unicodeLanguageId.split( \"_\" )[ 2 ];\n\t\t\t\tvariant = unicodeLanguageId.split( \"_\" )[ 3 ];\n\t\t\t\tbreak;\n\n\t\t\t// language_script..\n\t\t\tcase /^[a-z]{2,3}_[A-Z][a-z]{3}(\\b|_)/.test( unicodeLanguageId ):\n\t\t\t\tlanguage = unicodeLanguageId.split( \"_\" )[ 0 ];\n\t\t\t\tscript = unicodeLanguageId.split( \"_\" )[ 1 ];\n\t\t\t\tterritory = \"ZZ\";\n\t\t\t\tvariant = unicodeLanguageId.split( \"_\" )[ 2 ];\n\t\t\t\tbreak;\n\n\t\t\t// language_territory..\n\t\t\tcase /^[a-z]{2,3}_[A-Z0-9]{2}(\\b|_)/.test( unicodeLanguageId ):\n\t\t\t\tlanguage = unicodeLanguageId.split( \"_\" )[ 0 ];\n\t\t\t\tscript = \"Zzzz\";\n\t\t\t\tterritory = unicodeLanguageId.split( \"_\" )[ 1 ];\n\t\t\t\tvariant = unicodeLanguageId.split( \"_\" )[ 2 ];\n\t\t\t\tbreak;\n\n\t\t\t// language.., or root\n\t\t\tcase /^([a-z]{2,3}|root)(\\b|_)/.test( unicodeLanguageId ):\n\t\t\t\tlanguage = unicodeLanguageId.split( \"_\" )[ 0 ];\n\t\t\t\tscript = \"Zzzz\";\n\t\t\t\tterritory = \"ZZ\";\n\t\t\t\tvariant = unicodeLanguageId.split( \"_\" )[ 1 ];\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tlanguage = \"und\";\n\t\t\t\tscript = \"Zzzz\";\n\t\t\t\tterritory = \"ZZ\";\n\t\t\t\tbreak;\n\t\t}\n\n\t\t// When a locale id does not specify a language, or territory (region), or script, they are obtained by Likely Subtags.\n\t\tmaxLanguageId = coreLikelySubtags( Cldr, this, [ language, script, territory ], { force: true } ) || unicodeLanguageId.split( \"_\" );\n\t\tlanguage = maxLanguageId[ 0 ];\n\t\tscript = maxLanguageId[ 1 ];\n\t\tterritory = maxLanguageId[ 2 ];\n\n\t\tlanguageId = coreRemoveLikelySubtags( Cldr, this, maxLanguageId ).join( sep );\n\n\t\t// Set attributes\n\t\tthis.attributes = {\n\n\t\t\t// Unicode Language Id\n\t\t\tlanguageId: languageId,\n\t\t\tmaxLanguageId: maxLanguageId.join( sep ),\n\n\t\t\t// Unicode Language Id Subtabs\n\t\t\tlanguage: language,\n\t\t\tscript: script,\n\t\t\tterritory: territory,\n\t\t\tregion: territory, /* alias */\n\t\t\tvariant: variant\n\t\t};\n\n\t\tthis.locale = variant ? [ languageId, variant ].join( sep ) : languageId;\n\t};\n\n\t/**\n\t * .get()\n\t */\n\tCldr.prototype.get = function( path ) {\n\n\t\tvalidatePresence( path, \"path\" );\n\t\tvalidateTypePath( path, \"path\" );\n\n\t\treturn itemGetResolved( Cldr, path, this.attributes );\n\t};\n\n\t/**\n\t * .main()\n\t */\n\tCldr.prototype.main = function( path ) {\n\t\tvalidatePresence( path, \"path\" );\n\t\tvalidateTypePath( path, \"path\" );\n\n\t\tpath = alwaysArray( path );\n\t\treturn this.get( [ \"main/{languageId}\" ].concat( path ) );\n\t};\n\n\treturn Cldr;\n\n\n\n}));\n","/*!\n * Globalize v1.0.0-alpha.4\n *\n * http://github.com/jquery/globalize\n *\n * Copyright 2010, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-07-13T05:36Z\n */\n(function( root, factory ) {\n\n\t// // UMD returnExports\n\t// if ( typeof define === \"function\" && define.amd ) {\n\n\t// \t// AMD\n\t// \tdefine([\n\t// \t\t\"cldr\",\n\t// \t\t\"cldr/event\"\n\t// \t], factory );\n\t// } else if ( typeof exports === \"object\" ) {\n\n\t// \t// Node, CommonJS\n\t// \tmodule.exports = factory( require( \"cldrjs\" ) );\n\t// } else {\n\n\t\t// Global\n\t\troot.Globalize = factory( root.Cldr );\n\t// }\n}( this, function( Cldr ) {\n\n\n/**\n * A toString method that outputs meaningful values for objects or arrays and still performs as fast as a plain string in case variable is string, or as fast as `\"\" + number` in case variable is a number.\n * Ref: http://jsperf.com/my-stringify\n */\nvar toString = function( variable ) {\n\treturn typeof variable === \"string\" ? variable : ( typeof variable === \"number\" ? \"\" + variable : JSON.stringify( variable ) );\n};\n\n\n\n\n/**\n * formatMessage( message, data )\n *\n *\n * Return the formatted message. For example:\n *\n * - formatMessage( \"{0} second\", 1 ); // 1 second\n *\n * - formatMessage( \"{0}/{1}\", [\"m\", \"s\"] ); // m/s\n *\n * - formatMessage( \"{name} <{email}>\", {\n * name: \"Foo\",\n * email: \"bar@baz.qux\"\n * }); // Foo \n */\nvar formatMessage = function( message, data ) {\n\n\t// Replace {attribute}'s\n\tmessage = message.replace( /{[0-9a-zA-Z-_. ]+}/g, function( name ) {\n\t\tname = name.replace( /^{([^}]*)}$/, \"$1\" );\n\t\treturn toString( data[ name ] );\n\t});\n\n\treturn message;\n};\n\n\n\n\nvar createError = function( code, message, attributes ) {\n\tvar error;\n\n\tmessage = code + ( message ? \": \" + formatMessage( message, attributes ) : \"\" );\n\terror = new Error( message );\n\terror.code = code;\n\n\t// extend( error, attributes );\n\tObject.keys( attributes ).forEach(function( attribute ) {\n\t\terror[ attribute ] = attributes[ attribute ];\n\t});\n\n\treturn error;\n};\n\n\n\n\nvar validate = function( code, message, check, attributes ) {\n\tif ( !check ) {\n\t\tthrow createError( code, message, attributes );\n\t}\n};\n\n\n\n\nvar alwaysArray = function( stringOrArray ) {\n\treturn Array.isArray( stringOrArray ) ? stringOrArray : stringOrArray ? [ stringOrArray ] : [];\n};\n\n\n\n\nvar validateCldr = function( path, value, options ) {\n\tvar skipBoolean;\n\toptions = options || {};\n\n\tskipBoolean = alwaysArray( options.skip ).some(function( pathRe ) {\n\t\treturn pathRe.test( path );\n\t});\n\n\tvalidate( \"E_MISSING_CLDR\", \"Missing required CLDR content `{path}`.\", value || skipBoolean, {\n\t\tpath: path\n\t});\n};\n\n\n\n\nvar validateDefaultLocale = function( value ) {\n\tvalidate( \"E_DEFAULT_LOCALE_NOT_DEFINED\", \"Default locale has not been defined.\", typeof value !== \"undefined\", {} );\n};\n\n\n\n\nvar validatePresence = function( value, name ) {\n\tvalidate( \"E_MISSING_PARAMETER\", \"Missing required parameter `{name}`.\", typeof value !== \"undefined\", {\n\t\tname: name\n\t});\n};\n\n\n\n\nvar validateType = function( value, name, check, expected ) {\n\tvalidate( \"E_INVALID_PAR_TYPE\", \"Invalid `{name}` parameter ({value}). {expected} expected.\", check, {\n\t\texpected: expected,\n\t\tname: name,\n\t\tvalue: value\n\t});\n};\n\n\n\n\nvar validateTypeLocale = function( value, name ) {\n\tvalidateType( value, name, typeof value === \"undefined\" || typeof value === \"string\" || value instanceof Cldr, \"String or Cldr instance\" );\n};\n\n\n\n\n/**\n * Function inspired by jQuery Core, but reduced to our use case.\n */\nvar isPlainObject = function( obj ) {\n\treturn obj !== null && \"\" + obj === \"[object Object]\";\n};\n\n\n\n\nvar validateTypePlainObject = function( value, name ) {\n\tvalidateType( value, name, typeof value === \"undefined\" || isPlainObject( value ), \"Plain Object\" );\n};\n\n\n\n\nvar alwaysCldr = function( localeOrCldr ) {\n\treturn localeOrCldr instanceof Cldr ? localeOrCldr : new Cldr( localeOrCldr );\n};\n\n\n\n\nfunction validateLikelySubtags( cldr ) {\n\tcldr.once( \"get\", validateCldr );\n\tcldr.get( \"supplemental/likelySubtags\" );\n}\n\n/**\n * [new] Globalize( locale|cldr )\n *\n * Create a Globalize instance.\n */\nfunction Globalize( locale ) {\n\tif ( !( this instanceof Globalize ) ) {\n\t\treturn new Globalize( locale );\n\t}\n\n\tvalidatePresence( locale, \"locale\" );\n\tvalidateTypeLocale( locale, \"locale\" );\n\n\tthis.cldr = alwaysCldr( locale );\n\n\tvalidateLikelySubtags( this.cldr );\n}\n\n/**\n * Globalize.load( json )\n *\n * Load resolved or unresolved cldr data.\n * Somewhat equivalent to previous Globalize.addCultureInfo(...).\n */\nGlobalize.load = function( json ) {\n\tvalidatePresence( json, \"json\" );\n\tvalidateTypePlainObject( json, \"json\" );\n\n\tCldr.load( json );\n};\n\n/**\n * Globalize.locale( [locale|cldr] )\n *\n *\n * Set default Cldr instance if locale or cldr argument is passed.\n *\n * Return the default Cldr instance.\n */\nGlobalize.locale = function( locale ) {\n\tvalidateTypeLocale( locale, \"locale\" );\n\n\tif ( arguments.length ) {\n\t\tthis.cldr = alwaysCldr( locale );\n\t\tvalidateLikelySubtags( this.cldr );\n\t}\n\treturn this.cldr;\n};\n\n/**\n * Optimization to avoid duplicating some internal functions across modules.\n */\nGlobalize._alwaysArray = alwaysArray;\nGlobalize._createError = createError;\nGlobalize._formatMessage = formatMessage;\nGlobalize._isPlainObject = isPlainObject;\nGlobalize._validateCldr = validateCldr;\nGlobalize._validateDefaultLocale = validateDefaultLocale;\nGlobalize._validatePresence = validatePresence;\nGlobalize._validateTypePlainObject = validateTypePlainObject;\nGlobalize._validateType = validateType;\n\nreturn Globalize;\n\n\n\n\n}));\n","/**\n * CLDR JavaScript Library v0.3.8\n * http://jquery.com/\n *\n * Copyright 2013 Rafael Xavier de Souza\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-07-13T05:05Z\n */\n/*!\n * CLDR JavaScript Library v0.3.8 2014-07-13T05:05Z MIT license \u00a9 Rafael Xavier\n * http://git.io/h4lmVg\n */\n(function( factory ) {\n\n\t// if ( typeof define === \"function\" && define.amd ) {\n\t// \t// AMD.\n\t// \tdefine( [ \"../cldr\" ], factory );\n\t// } else if ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t// \t// Node. CommonJS.\n\t// \tmodule.exports = factory( require( \"cldrjs\" ) );\n\t// } else {\n\t\t// Global\n\t\tfactory( Cldr );\n\t// }\n\n}(function( Cldr ) {\n\n\t// Build optimization hack to avoid duplicating functions across modules.\n\tvar pathNormalize = Cldr._pathNormalize,\n\t\tvalidatePresence = Cldr._validatePresence,\n\t\tvalidateType = Cldr._validateType;\n\n\n\t/**\n * EventEmitter v4.2.7 - git.io/ee\n * Oliver Caldwell\n * MIT license\n * @preserve\n */\n\nvar EventEmitter;\n/* jshint ignore:start */\nEventEmitter = (function () {\n\t\n\n\t/**\n\t * Class for managing events.\n\t * Can be extended to provide event functionality in other classes.\n\t *\n\t * @class EventEmitter Manages event registering and emitting.\n\t */\n\tfunction EventEmitter() {}\n\n\t// Shortcuts to improve speed and size\n\tvar proto = EventEmitter.prototype;\n\tvar exports = this;\n\tvar originalGlobalValue = exports.EventEmitter;\n\n\t/**\n\t * Finds the index of the listener for the event in it's storage array.\n\t *\n\t * @param {Function[]} listeners Array of listeners to search through.\n\t * @param {Function} listener Method to look for.\n\t * @return {Number} Index of the specified listener, -1 if not found\n\t */\n\tfunction indexOfListener(listeners, listener) {\n\t\tvar i = listeners.length;\n\t\twhile (i--) {\n\t\t\tif (listeners[i].listener === listener) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t}\n\n\t/**\n\t * Alias a method while keeping the context correct, to allow for overwriting of target method.\n\t *\n\t * @param {String} name The name of the target method.\n\t * @return {Function} The aliased method\n\t */\n\tfunction alias(name) {\n\t\treturn function aliasClosure() {\n\t\t\treturn this[name].apply(this, arguments);\n\t\t};\n\t}\n\n\t/**\n\t * Returns the listener array for the specified event.\n\t * Will initialise the event object and listener arrays if required.\n\t * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them.\n\t * Each property in the object response is an array of listener functions.\n\t *\n\t * @param {String|RegExp} evt Name of the event to return the listeners from.\n\t * @return {Function[]|Object} All listener functions for the event.\n\t */\n\tproto.getListeners = function getListeners(evt) {\n\t\tvar events = this._getEvents();\n\t\tvar response;\n\t\tvar key;\n\n\t\t// Return a concatenated array of all matching events if\n\t\t// the selector is a regular expression.\n\t\tif (evt instanceof RegExp) {\n\t\t\tresponse = {};\n\t\t\tfor (key in events) {\n\t\t\t\tif (events.hasOwnProperty(key) && evt.test(key)) {\n\t\t\t\t\tresponse[key] = events[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tresponse = events[evt] || (events[evt] = []);\n\t\t}\n\n\t\treturn response;\n\t};\n\n\t/**\n\t * Takes a list of listener objects and flattens it into a list of listener functions.\n\t *\n\t * @param {Object[]} listeners Raw listener objects.\n\t * @return {Function[]} Just the listener functions.\n\t */\n\tproto.flattenListeners = function flattenListeners(listeners) {\n\t\tvar flatListeners = [];\n\t\tvar i;\n\n\t\tfor (i = 0; i < listeners.length; i += 1) {\n\t\t\tflatListeners.push(listeners[i].listener);\n\t\t}\n\n\t\treturn flatListeners;\n\t};\n\n\t/**\n\t * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful.\n\t *\n\t * @param {String|RegExp} evt Name of the event to return the listeners from.\n\t * @return {Object} All listener functions for an event in an object.\n\t */\n\tproto.getListenersAsObject = function getListenersAsObject(evt) {\n\t\tvar listeners = this.getListeners(evt);\n\t\tvar response;\n\n\t\tif (listeners instanceof Array) {\n\t\t\tresponse = {};\n\t\t\tresponse[evt] = listeners;\n\t\t}\n\n\t\treturn response || listeners;\n\t};\n\n\t/**\n\t * Adds a listener function to the specified event.\n\t * The listener will not be added if it is a duplicate.\n\t * If the listener returns true then it will be removed after it is called.\n\t * If you pass a regular expression as the event name then the listener will be added to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to attach the listener to.\n\t * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.addListener = function addListener(evt, listener) {\n\t\tvar listeners = this.getListenersAsObject(evt);\n\t\tvar listenerIsWrapped = typeof listener === 'object';\n\t\tvar key;\n\n\t\tfor (key in listeners) {\n\t\t\tif (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) {\n\t\t\t\tlisteners[key].push(listenerIsWrapped ? listener : {\n\t\t\t\t\tlistener: listener,\n\t\t\t\t\tonce: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Alias of addListener\n\t */\n\tproto.on = alias('addListener');\n\n\t/**\n\t * Semi-alias of addListener. It will add a listener that will be\n\t * automatically removed after it's first execution.\n\t *\n\t * @param {String|RegExp} evt Name of the event to attach the listener to.\n\t * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.addOnceListener = function addOnceListener(evt, listener) {\n\t\treturn this.addListener(evt, {\n\t\t\tlistener: listener,\n\t\t\tonce: true\n\t\t});\n\t};\n\n\t/**\n\t * Alias of addOnceListener.\n\t */\n\tproto.once = alias('addOnceListener');\n\n\t/**\n\t * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad.\n\t * You need to tell it what event names should be matched by a regex.\n\t *\n\t * @param {String} evt Name of the event to create.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.defineEvent = function defineEvent(evt) {\n\t\tthis.getListeners(evt);\n\t\treturn this;\n\t};\n\n\t/**\n\t * Uses defineEvent to define multiple events.\n\t *\n\t * @param {String[]} evts An array of event names to define.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.defineEvents = function defineEvents(evts) {\n\t\tfor (var i = 0; i < evts.length; i += 1) {\n\t\t\tthis.defineEvent(evts[i]);\n\t\t}\n\t\treturn this;\n\t};\n\n\t/**\n\t * Removes a listener function from the specified event.\n\t * When passed a regular expression as the event name, it will remove the listener from all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to remove the listener from.\n\t * @param {Function} listener Method to remove from the event.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.removeListener = function removeListener(evt, listener) {\n\t\tvar listeners = this.getListenersAsObject(evt);\n\t\tvar index;\n\t\tvar key;\n\n\t\tfor (key in listeners) {\n\t\t\tif (listeners.hasOwnProperty(key)) {\n\t\t\t\tindex = indexOfListener(listeners[key], listener);\n\n\t\t\t\tif (index !== -1) {\n\t\t\t\t\tlisteners[key].splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Alias of removeListener\n\t */\n\tproto.off = alias('removeListener');\n\n\t/**\n\t * Adds listeners in bulk using the manipulateListeners method.\n\t * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added.\n\t * You can also pass it a regular expression to add the array of listeners to all events that match it.\n\t * Yeah, this function does quite a bit. That's probably a bad thing.\n\t *\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to add.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.addListeners = function addListeners(evt, listeners) {\n\t\t// Pass through to manipulateListeners\n\t\treturn this.manipulateListeners(false, evt, listeners);\n\t};\n\n\t/**\n\t * Removes listeners in bulk using the manipulateListeners method.\n\t * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n\t * You can also pass it an event name and an array of listeners to be removed.\n\t * You can also pass it a regular expression to remove the listeners from all events that match it.\n\t *\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to remove.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.removeListeners = function removeListeners(evt, listeners) {\n\t\t// Pass through to manipulateListeners\n\t\treturn this.manipulateListeners(true, evt, listeners);\n\t};\n\n\t/**\n\t * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level.\n\t * The first argument will determine if the listeners are removed (true) or added (false).\n\t * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays.\n\t * You can also pass it an event name and an array of listeners to be added/removed.\n\t * You can also pass it a regular expression to manipulate the listeners of all events that match it.\n\t *\n\t * @param {Boolean} remove True if you want to remove listeners, false if you want to add.\n\t * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once.\n\t * @param {Function[]} [listeners] An optional array of listener functions to add/remove.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.manipulateListeners = function manipulateListeners(remove, evt, listeners) {\n\t\tvar i;\n\t\tvar value;\n\t\tvar single = remove ? this.removeListener : this.addListener;\n\t\tvar multiple = remove ? this.removeListeners : this.addListeners;\n\n\t\t// If evt is an object then pass each of it's properties to this method\n\t\tif (typeof evt === 'object' && !(evt instanceof RegExp)) {\n\t\t\tfor (i in evt) {\n\t\t\t\tif (evt.hasOwnProperty(i) && (value = evt[i])) {\n\t\t\t\t\t// Pass the single listener straight through to the singular method\n\t\t\t\t\tif (typeof value === 'function') {\n\t\t\t\t\t\tsingle.call(this, i, value);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// Otherwise pass back to the multiple function\n\t\t\t\t\t\tmultiple.call(this, i, value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// So evt must be a string\n\t\t\t// And listeners must be an array of listeners\n\t\t\t// Loop over it and pass each one to the multiple method\n\t\t\ti = listeners.length;\n\t\t\twhile (i--) {\n\t\t\t\tsingle.call(this, evt, listeners[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Removes all listeners from a specified event.\n\t * If you do not specify an event then all listeners will be removed.\n\t * That means every event will be emptied.\n\t * You can also pass a regex to remove all events that match it.\n\t *\n\t * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.removeEvent = function removeEvent(evt) {\n\t\tvar type = typeof evt;\n\t\tvar events = this._getEvents();\n\t\tvar key;\n\n\t\t// Remove different things depending on the state of evt\n\t\tif (type === 'string') {\n\t\t\t// Remove all listeners for the specified event\n\t\t\tdelete events[evt];\n\t\t}\n\t\telse if (evt instanceof RegExp) {\n\t\t\t// Remove all events matching the regex.\n\t\t\tfor (key in events) {\n\t\t\t\tif (events.hasOwnProperty(key) && evt.test(key)) {\n\t\t\t\t\tdelete events[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Remove all listeners in all events\n\t\t\tdelete this._events;\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Alias of removeEvent.\n\t *\n\t * Added to mirror the node API.\n\t */\n\tproto.removeAllListeners = alias('removeEvent');\n\n\t/**\n\t * Emits an event of your choice.\n\t * When emitted, every listener attached to that event will be executed.\n\t * If you pass the optional argument array then those arguments will be passed to every listener upon execution.\n\t * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately.\n\t * So they will not arrive within the array on the other side, they will be separate.\n\t * You can also pass a regular expression to emit to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n\t * @param {Array} [args] Optional array of arguments to be passed to each listener.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.emitEvent = function emitEvent(evt, args) {\n\t\tvar listeners = this.getListenersAsObject(evt);\n\t\tvar listener;\n\t\tvar i;\n\t\tvar key;\n\t\tvar response;\n\n\t\tfor (key in listeners) {\n\t\t\tif (listeners.hasOwnProperty(key)) {\n\t\t\t\ti = listeners[key].length;\n\n\t\t\t\twhile (i--) {\n\t\t\t\t\t// If the listener returns true then it shall be removed from the event\n\t\t\t\t\t// The function is executed either with a basic call or an apply if there is an args array\n\t\t\t\t\tlistener = listeners[key][i];\n\n\t\t\t\t\tif (listener.once === true) {\n\t\t\t\t\t\tthis.removeListener(evt, listener.listener);\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse = listener.listener.apply(this, args || []);\n\n\t\t\t\t\tif (response === this._getOnceReturnValue()) {\n\t\t\t\t\t\tthis.removeListener(evt, listener.listener);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t};\n\n\t/**\n\t * Alias of emitEvent\n\t */\n\tproto.trigger = alias('emitEvent');\n\n\t/**\n\t * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on.\n\t * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it.\n\t *\n\t * @param {String|RegExp} evt Name of the event to emit and execute listeners for.\n\t * @param {...*} Optional additional arguments to be passed to each listener.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.emit = function emit(evt) {\n\t\tvar args = Array.prototype.slice.call(arguments, 1);\n\t\treturn this.emitEvent(evt, args);\n\t};\n\n\t/**\n\t * Sets the current value to check against when executing listeners. If a\n\t * listeners return value matches the one set here then it will be removed\n\t * after execution. This value defaults to true.\n\t *\n\t * @param {*} value The new value to check for when executing listeners.\n\t * @return {Object} Current instance of EventEmitter for chaining.\n\t */\n\tproto.setOnceReturnValue = function setOnceReturnValue(value) {\n\t\tthis._onceReturnValue = value;\n\t\treturn this;\n\t};\n\n\t/**\n\t * Fetches the current value to check against when executing listeners. If\n\t * the listeners return value matches this one then it should be removed\n\t * automatically. It will return true by default.\n\t *\n\t * @return {*|Boolean} The current value to check for or the default, true.\n\t */\n\tproto._getOnceReturnValue = function _getOnceReturnValue() {\n\t\tif (this.hasOwnProperty('_onceReturnValue')) {\n\t\t\treturn this._onceReturnValue;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t};\n\n\t/**\n\t * Fetches the events object and creates one if required.\n\t *\n\t * @return {Object} The events storage object.\n\t */\n\tproto._getEvents = function _getEvents() {\n\t\treturn this._events || (this._events = {});\n\t};\n\n\t/**\n\t * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version.\n\t *\n\t * @return {Function} Non conflicting EventEmitter class.\n\t */\n\tEventEmitter.noConflict = function noConflict() {\n\t\texports.EventEmitter = originalGlobalValue;\n\t\treturn EventEmitter;\n\t};\n\n\treturn EventEmitter;\n}());\n/* jshint ignore:end */\n\n\n\n\tvar validateTypeFunction = function( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"undefined\" || typeof value === \"function\", \"Function\" );\n\t};\n\n\n\n\n\tvar superGet, superInit,\n\t\tglobalEe = new EventEmitter();\n\n\tfunction validateTypeEvent( value, name ) {\n\t\tvalidateType( value, name, typeof value === \"string\" || value instanceof RegExp, \"String or RegExp\" );\n\t}\n\n\tfunction validateThenCall( method, self ) {\n\t\treturn function( event, listener ) {\n\t\t\tvalidatePresence( event, \"event\" );\n\t\t\tvalidateTypeEvent( event, \"event\" );\n\n\t\t\tvalidatePresence( listener, \"listener\" );\n\t\t\tvalidateTypeFunction( listener, \"listener\" );\n\n\t\t\treturn self[ method ].apply( self, arguments );\n\t\t};\n\t}\n\n\tfunction off( self ) {\n\t\treturn validateThenCall( \"off\", self );\n\t}\n\n\tfunction on( self ) {\n\t\treturn validateThenCall( \"on\", self );\n\t}\n\n\tfunction once( self ) {\n\t\treturn validateThenCall( \"once\", self );\n\t}\n\n\tCldr.off = off( globalEe );\n\tCldr.on = on( globalEe );\n\tCldr.once = once( globalEe );\n\n\t/**\n\t * Overload Cldr.prototype.init().\n\t */\n\tsuperInit = Cldr.prototype.init;\n\tCldr.prototype.init = function() {\n\t\tvar ee;\n\t\tthis.ee = ee = new EventEmitter();\n\t\tthis.off = off( ee );\n\t\tthis.on = on( ee );\n\t\tthis.once = once( ee );\n\t\tsuperInit.apply( this, arguments );\n\t};\n\n\t/**\n\t * getOverload is encapsulated, because of cldr/unresolved. If it's loaded\n\t * after cldr/event (and note it overwrites .get), it can trigger this\n\t * overload again.\n\t */\n\tfunction getOverload() {\n\n\t\t/**\n\t\t * Overload Cldr.prototype.get().\n\t\t */\n\t\tsuperGet = Cldr.prototype.get;\n\t\tCldr.prototype.get = function( path ) {\n\t\t\tvar value = superGet.apply( this, arguments );\n\t\t\tpath = pathNormalize( path, this.attributes ).join( \"/\" );\n\t\t\tglobalEe.trigger( \"get\", [ path, value ] );\n\t\t\tthis.ee.trigger( \"get\", [ path, value ] );\n\t\t\treturn value;\n\t\t};\n\t}\n\n\tCldr._eventInit = getOverload;\n\tgetOverload();\n\n\treturn Cldr;\n\n\n\n}));\n","/*!\n * Globalize v1.0.0-alpha.4\n *\n * http://github.com/jquery/globalize\n *\n * Copyright 2010, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-07-13T05:36Z\n */\n(function( root, factory ) {\n\n\t// // UMD returnExports\n\t// if ( typeof define === \"function\" && define.amd ) {\n\n\t// \t// AMD\n\t// \tdefine([\n\t// \t\t\"cldr\",\n\t// \t\t\"../globalize\",\n\t// \t\t\"cldr/event\",\n\t// \t\t\"cldr/supplemental\"\n\t// \t], factory );\n\t// } else if ( typeof exports === \"object\" ) {\n\n\t// \t// Node, CommonJS\n\t// \tmodule.exports = factory( require( \"cldrjs\" ), require( \"globalize\" ) );\n\t// } else {\n\n\t\t// Extend global\n\t\tfactory( root.Cldr, root.Globalize );\n\t// }\n}(this, function( Cldr, Globalize ) {\n\nvar alwaysArray = Globalize._alwaysArray,\n\tcreateError = Globalize._createError,\n\tformatMessage = Globalize._formatMessage,\n\tisPlainObject = Globalize._isPlainObject,\n\tvalidateCldr = Globalize._validateCldr,\n\tvalidateDefaultLocale = Globalize._validateDefaultLocale,\n\tvalidatePresence = Globalize._validatePresence,\n\tvalidateType = Globalize._validateType;\n\n\nvar validateTypeDate = function( value, name ) {\n\tvalidateType( value, name, typeof value === \"undefined\" || value instanceof Date, \"Date\" );\n};\n\n\n\n\nvar validateTypeDatePattern = function( value, name ) {\n\tvalidateType( value, name, typeof value === \"undefined\" || typeof value === \"string\" || isPlainObject( value ), \"String or plain Object\" );\n};\n\n\n\n\nvar validateTypeString = function( value, name ) {\n\tvalidateType( value, name, typeof value === \"undefined\" || typeof value === \"string\", \"a string\" );\n};\n\n\n\n\nvar objectValues = function( object ) {\n\tvar i,\n\t\tresult = [];\n\n\tfor ( i in object ) {\n\t\tresult.push( object[ i ] );\n\t}\n\n\treturn result;\n};\n\n\n\n\n/**\n * allPreset()\n *\n * Return an Array with all (skeleton, date, time, datetime) presets.\n */\nvar dateAllPresets = function( cldr ) {\n\tvar result = [];\n\n\t// Skeleton\n\tresult = objectValues( cldr.main( \"dates/calendars/gregorian/dateTimeFormats/availableFormats\" ) );\n\n\t// Time\n\tresult = result.concat( objectValues( cldr.main( \"dates/calendars/gregorian/timeFormats\" ) ) );\n\n\t// Date\n\tresult = result.concat( objectValues( cldr.main( \"dates/calendars/gregorian/dateFormats\" ) ) );\n\n\t// Datetime\n\tresult = result.concat( objectValues( cldr.main( \"dates/calendars/gregorian/dateTimeFormats\" ) ).map(function( datetimeFormat, key ) {\n\t\tif ( typeof datetimeFormat !== \"string\" ) {\n\t\t\treturn datetimeFormat;\n\t\t}\n\t\treturn formatMessage( datetimeFormat, [\n\t\t\tcldr.main([\n\t\t\t\t\"dates/calendars/gregorian/timeFormats\",\n\t\t\t\tkey\n\t\t\t]),\n\t\t\tcldr.main([\n\t\t\t\t\"dates/calendars/gregorian/dateFormats\",\n\t\t\t\tkey\n\t\t\t])\n\t\t]);\n\t}));\n\n\treturn result.map(function( pattern ) {\n\t\treturn { pattern: pattern };\n\t});\n};\n\n\n\n\nvar createErrorInvalidParameterValue = function( name, value ) {\n\treturn createError( \"E_INVALID_PAR_VALUE\", \"Invalid `{name}` value ({value}).\", {\n\t\tname: name,\n\t\tvalue: value\n\t});\n};\n\n\n\n\n/**\n * expandPattern( pattern, cldr )\n *\n * pattern [String or Object] if String, it's considered a skeleton. Object accepts:\n * - skeleton: [String] lookup availableFormat;\n * - date: [String] ( \"full\" | \"long\" | \"medium\" | \"short\" );\n * - time: [String] ( \"full\" | \"long\" | \"medium\" | \"short\" );\n * - datetime: [String] ( \"full\" | \"long\" | \"medium\" | \"short\" );\n * - pattern: [String] For more info see datetime/format.js.\n *\n *\n * Return the corresponding pattern.\n * Eg for \"en\":\n * - \"GyMMMd\" returns \"MMM d, y G\";\n * - { skeleton: \"GyMMMd\" } returns \"MMM d, y G\";\n * - { date: \"full\" } returns \"EEEE, MMMM d, y\";\n * - { time: \"full\" } returns \"h:mm:ss a zzzz\";\n * - { datetime: \"full\" } returns \"EEEE, MMMM d, y 'at' h:mm:ss a zzzz\";\n * - { pattern: \"dd/mm\" } returns \"dd/mm\";\n */\nvar dateExpandPattern = function( pattern, cldr ) {\n\tvar result;\n\n\tif ( typeof pattern === \"string\" ) {\n\t\tpattern = { skeleton: pattern };\n\t}\n\n\tswitch ( true ) {\n\t\tcase \"skeleton\" in pattern:\n\t\t\tresult = cldr.main([\n\t\t\t\t\"dates/calendars/gregorian/dateTimeFormats/availableFormats\",\n\t\t\t\tpattern.skeleton\n\t\t\t]);\n\t\t\tbreak;\n\n\t\tcase \"date\" in pattern:\n\t\tcase \"time\" in pattern:\n\t\t\tresult = cldr.main([\n\t\t\t\t\"dates/calendars/gregorian\",\n\t\t\t\t\"date\" in pattern ? \"dateFormats\" : \"timeFormats\",\n\t\t\t\t( pattern.date || pattern.time )\n\t\t\t]);\n\t\t\tbreak;\n\n\t\tcase \"datetime\" in pattern:\n\t\t\tresult = cldr.main([\n\t\t\t\t\"dates/calendars/gregorian/dateTimeFormats\",\n\t\t\t\tpattern.datetime\n\t\t\t]);\n\t\t\tif ( result ) {\n\t\t\t\tresult = formatMessage( result, [\n\t\t\t\t\tcldr.main([\n\t\t\t\t\t\t\"dates/calendars/gregorian/timeFormats\",\n\t\t\t\t\t\tpattern.datetime\n\t\t\t\t\t]),\n\t\t\t\t\tcldr.main([\n\t\t\t\t\t\t\"dates/calendars/gregorian/dateFormats\",\n\t\t\t\t\t\tpattern.datetime\n\t\t\t\t\t])\n\t\t\t\t]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \"pattern\" in pattern:\n\t\t\tresult = pattern.pattern;\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tthrow createErrorInvalidParameterValue({\n\t\t\t\tname: \"pattern\",\n\t\t\t\tvalue: pattern\n\t\t\t});\n\t}\n\n\treturn result;\n};\n\n\n\n\nvar dateWeekDays = [ \"sun\", \"mon\", \"tue\", \"wed\", \"thu\", \"fri\", \"sat\" ];\n\n\n\n\n/**\n * firstDayOfWeek\n */\nvar dateFirstDayOfWeek = function( cldr ) {\n\treturn dateWeekDays.indexOf( cldr.supplemental.weekData.firstDay() );\n};\n\n\n\n\n/**\n * dayOfWeek\n *\n * Return the day of the week normalized by the territory's firstDay [0-6].\n * Eg for \"mon\":\n * - return 0 if territory is GB, or BR, or DE, or FR (week starts on \"mon\");\n * - return 1 if territory is US (week starts on \"sun\");\n * - return 2 if territory is EG (week starts on \"sat\");\n */\nvar dateDayOfWeek = function( date, cldr ) {\n\treturn ( date.getDay() - dateFirstDayOfWeek( cldr ) + 7 ) % 7;\n};\n\n\n\n\n/**\n * distanceInDays( from, to )\n *\n * Return the distance in days between from and to Dates.\n */\nvar dateDistanceInDays = function( from, to ) {\n\tvar inDays = 864e5;\n\treturn ( to.getTime() - from.getTime() ) / inDays;\n};\n\n\n\n\n/**\n * startOf\n *\n * Return the \n */\nvar dateStartOf = function( date, unit ) {\n\tdate = new Date( date.getTime() );\n\tswitch( unit ) {\n\t\tcase \"year\":\n\t\t\tdate.setMonth( 0 );\n\t\t/* falls through */\n\t\tcase \"month\":\n\t\t\tdate.setDate( 1 );\n\t\t/* falls through */\n\t\tcase \"day\":\n\t\t\tdate.setHours( 0 );\n\t\t/* falls through */\n\t\tcase \"hour\":\n\t\t\tdate.setMinutes( 0 );\n\t\t/* falls through */\n\t\tcase \"minute\":\n\t\t\tdate.setSeconds( 0 );\n\t\t/* falls through */\n\t\tcase \"second\":\n\t\t\tdate.setMilliseconds( 0 );\n\t}\n\treturn date;\n};\n\n\n\n\n/**\n * dayOfYear\n *\n * Return the distance in days of the date to the begin of the year [0-d].\n */\nvar dateDayOfYear = function( date ) {\n\treturn Math.floor( dateDistanceInDays( dateStartOf( date, \"year\" ), date ) );\n};\n\n\n\n\n/**\n * millisecondsInDay\n */\nvar dateMillisecondsInDay = function( date ) {\n\t// TODO Handle daylight savings discontinuities\n\treturn date - dateStartOf( date, \"day\" );\n};\n\n\n\n\nvar datePatternRe = (/([a-z])\\1*|'[^']+'|''|./ig);\n\n\n\n\nvar stringPad = function( str, count, right ) {\n\tvar length;\n\tif ( typeof str !== \"string\" ) {\n\t\tstr = String( str );\n\t}\n\tfor ( length = str.length; length < count; length += 1 ) {\n\t\tstr = ( right ? ( str + \"0\" ) : ( \"0\" + str ) );\n\t}\n\treturn str;\n};\n\n\n\n\n/**\n * format( date, pattern, cldr )\n *\n * pattern [String] raw pattern.\n * ref: http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns\n *\n *\n * TODO Support other calendar types.\n *\n * Disclosure: this function borrows excerpts of dojo/date/locale.\n */\nvar dateFormat = function( date, pattern, cldr ) {\n\tvar widths = [ \"abbreviated\", \"wide\", \"narrow\" ];\n\treturn pattern.replace( datePatternRe, function( current ) {\n\t\tvar pad, ret,\n\t\t\tchr = current.charAt( 0 ),\n\t\t\tlength = current.length;\n\n\t\tif ( chr === \"j\" ) {\n\t\t\t// Locale preferred hHKk.\n\t\t\t// http://www.unicode.org/reports/tr35/tr35-dates.html#Time_Data\n\t\t\tchr = cldr.supplemental.timeData.preferred();\n\t\t}\n\n\t\tswitch ( chr ) {\n\n\t\t\t// Era\n\t\t\tcase \"G\":\n\t\t\t\tret = cldr.main([\n\t\t\t\t\t\"dates/calendars/gregorian/eras\",\n\t\t\t\t\tlength <= 3 ? \"eraAbbr\" : ( length === 4 ? \"eraNames\" : \"eraNarrow\" ),\n\t\t\t\t\tdate.getFullYear() < 0 ? 0 : 1\n\t\t\t\t]);\n\t\t\t\tbreak;\n\n\t\t\t// Year\n\t\t\tcase \"y\":\n\t\t\t\t// Plain year.\n\t\t\t\t// The length specifies the padding, but for two letters it also specifies the maximum length.\n\t\t\t\tret = String( date.getFullYear() );\n\t\t\t\tpad = true;\n\t\t\t\tif ( length === 2 ) {\n\t\t\t\t\tret = ret.substr( ret.length - 2 );\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"Y\":\n\t\t\t\t// Year in \"Week of Year\"\n\t\t\t\t// The length specifies the padding, but for two letters it also specifies the maximum length.\n\t\t\t\t// yearInWeekofYear = date + DaysInAWeek - (dayOfWeek - firstDay) - minDays\n\t\t\t\tret = new Date( date.getTime() );\n\t\t\t\tret.setDate( ret.getDate() + 7 - ( dateDayOfWeek( date, cldr ) - dateFirstDayOfWeek( cldr ) ) - cldr.supplemental.weekData.minDays() );\n\t\t\t\tret = String( ret.getFullYear() );\n\t\t\t\tpad = true;\n\t\t\t\tif ( length === 2 ) {\n\t\t\t\t\tret = ret.substr( ret.length - 2 );\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"u\": // Extended year. Need to be implemented.\n\t\t\tcase \"U\": // Cyclic year name. Need to be implemented.\n\t\t\t\tthrow new Error( \"Not implemented\" );\n\n\t\t\t// Quarter\n\t\t\tcase \"Q\":\n\t\t\tcase \"q\":\n\t\t\t\tret = Math.ceil( ( date.getMonth() + 1 ) / 3 );\n\t\t\t\tif ( length <= 2 ) {\n\t\t\t\t\tpad = true;\n\t\t\t\t} else {\n\t\t\t\t\t// http://unicode.org/cldr/trac/ticket/6788\n\t\t\t\t\tret = cldr.main([\n\t\t\t\t\t\t\"dates/calendars/gregorian/quarters\",\n\t\t\t\t\t\tchr === \"Q\" ? \"format\" : \"stand-alone\",\n\t\t\t\t\t\twidths[ length - 3 ],\n\t\t\t\t\t\tret\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t// Month\n\t\t\tcase \"M\":\n\t\t\tcase \"L\":\n\t\t\t\tret = date.getMonth() + 1;\n\t\t\t\tif ( length <= 2 ) {\n\t\t\t\t\tpad = true;\n\t\t\t\t} else {\n\t\t\t\t\tret = cldr.main([\n\t\t\t\t\t\t\"dates/calendars/gregorian/months\",\n\t\t\t\t\t\tchr === \"M\" ? \"format\" : \"stand-alone\",\n\t\t\t\t\t\twidths[ length - 3 ],\n\t\t\t\t\t\tret\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t// Week\n\t\t\tcase \"w\":\n\t\t\t\t// Week of Year.\n\t\t\t\t// woy = ceil( ( doy + dow of 1/1 ) / 7 ) - minDaysStuff ? 1 : 0.\n\t\t\t\t// TODO should pad on ww? Not documented, but I guess so.\n\t\t\t\tret = dateDayOfWeek( dateStartOf( date, \"year\" ), cldr );\n\t\t\t\tret = Math.ceil( ( dateDayOfYear( date ) + ret ) / 7 ) - ( 7 - ret >= cldr.supplemental.weekData.minDays() ? 0 : 1 );\n\t\t\t\tpad = true;\n\t\t\t\tbreak;\n\n\t\t\tcase \"W\":\n\t\t\t\t// Week of Month.\n\t\t\t\t// wom = ceil( ( dom + dow of `1/month` ) / 7 ) - minDaysStuff ? 1 : 0.\n\t\t\t\tret = dateDayOfWeek( dateStartOf( date, \"month\" ), cldr );\n\t\t\t\tret = Math.ceil( ( date.getDate() + ret ) / 7 ) - ( 7 - ret >= cldr.supplemental.weekData.minDays() ? 0 : 1 );\n\t\t\t\tbreak;\n\n\t\t\t// Day\n\t\t\tcase \"d\":\n\t\t\t\tret = date.getDate();\n\t\t\t\tpad = true;\n\t\t\t\tbreak;\n\n\t\t\tcase \"D\":\n\t\t\t\tret = dateDayOfYear( date ) + 1;\n\t\t\t\tpad = true;\n\t\t\t\tbreak;\n\n\t\t\tcase \"F\":\n\t\t\t\t// Day of Week in month. eg. 2nd Wed in July.\n\t\t\t\tret = Math.floor( date.getDate() / 7 ) + 1;\n\t\t\t\tbreak;\n\n\t\t\tcase \"g+\":\n\t\t\t\t// Modified Julian day. Need to be implemented.\n\t\t\t\tthrow new Error( \"Not implemented\" );\n\n\t\t\t// Week day\n\t\t\tcase \"e\":\n\t\t\tcase \"c\":\n\t\t\t\tif ( length <= 2 ) {\n\t\t\t\t\t// Range is [1-7] (deduced by example provided on documentation)\n\t\t\t\t\t// TODO Should pad with zeros (not specified in the docs)?\n\t\t\t\t\tret = dateDayOfWeek( date, cldr ) + 1;\n\t\t\t\t\tpad = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t/* falls through */\n\t\t\tcase \"E\":\n\t\t\t\tret = dateWeekDays[ date.getDay() ];\n\t\t\t\tif ( length === 6 ) {\n\t\t\t\t\t// If short day names are not explicitly specified, abbreviated day names are used instead.\n\t\t\t\t\t// http://www.unicode.org/reports/tr35/tr35-dates.html#months_days_quarters_eras\n\t\t\t\t\t// http://unicode.org/cldr/trac/ticket/6790\n\t\t\t\t\tret = cldr.main([\n\t\t\t\t\t\t\t\"dates/calendars/gregorian/days\",\n\t\t\t\t\t\t\tchr === \"c\" ? \"stand-alone\" : \"format\",\n\t\t\t\t\t\t\t\"short\",\n\t\t\t\t\t\t\tret\n\t\t\t\t\t\t]) || cldr.main([\n\t\t\t\t\t\t\t\"dates/calendars/gregorian/days\",\n\t\t\t\t\t\t\tchr === \"c\" ? \"stand-alone\" : \"format\",\n\t\t\t\t\t\t\t\"abbreviated\",\n\t\t\t\t\t\t\tret\n\t\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\tret = cldr.main([\n\t\t\t\t\t\t\"dates/calendars/gregorian/days\",\n\t\t\t\t\t\tchr === \"c\" ? \"stand-alone\" : \"format\",\n\t\t\t\t\t\twidths[ length < 3 ? 0 : length - 3 ],\n\t\t\t\t\t\tret\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t// Period (AM or PM)\n\t\t\tcase \"a\":\n\t\t\t\tret = cldr.main([\n\t\t\t\t\t\"dates/calendars/gregorian/dayPeriods/format/wide\",\n\t\t\t\t\tdate.getHours() < 12 ? \"am\" : \"pm\"\n\t\t\t\t]);\n\t\t\t\tbreak;\n\n\t\t\t// Hour\n\t\t\tcase \"h\": // 1-12\n\t\t\t\tret = ( date.getHours() % 12 ) || 12;\n\t\t\t\tpad = true;\n\t\t\t\tbreak;\n\n\t\t\tcase \"H\": // 0-23\n\t\t\t\tret = date.getHours();\n\t\t\t\tpad = true;\n\t\t\t\tbreak;\n\n\t\t\tcase \"K\": // 0-11\n\t\t\t\tret = date.getHours() % 12;\n\t\t\t\tpad = true;\n\t\t\t\tbreak;\n\n\t\t\tcase \"k\": // 1-24\n\t\t\t\tret = date.getHours() || 24;\n\t\t\t\tpad = true;\n\t\t\t\tbreak;\n\n\t\t\t// Minute\n\t\t\tcase \"m\":\n\t\t\t\tret = date.getMinutes();\n\t\t\t\tpad = true;\n\t\t\t\tbreak;\n\n\t\t\t// Second\n\t\t\tcase \"s\":\n\t\t\t\tret = date.getSeconds();\n\t\t\t\tpad = true;\n\t\t\t\tbreak;\n\n\t\t\tcase \"S\":\n\t\t\t\tret = Math.round( date.getMilliseconds() * Math.pow( 10, length - 3 ) );\n\t\t\t\tpad = true;\n\t\t\t\tbreak;\n\n\t\t\tcase \"A\":\n\t\t\t\tret = Math.round( dateMillisecondsInDay( date ) * Math.pow( 10, length - 3 ) );\n\t\t\t\tpad = true;\n\t\t\t\tbreak;\n\n\t\t\t// Zone\n\t\t\t// see http://www.unicode.org/reports/tr35/tr35-dates.html#Using_Time_Zone_Names ?\n\t\t\t// Need to be implemented.\n\t\t\tcase \"z\":\n\t\t\tcase \"Z\":\n\t\t\tcase \"O\":\n\t\t\tcase \"v\":\n\t\t\tcase \"V\":\n\t\t\tcase \"X\":\n\t\t\tcase \"x\":\n\t\t\t\tthrow new Error( \"Not implemented\" );\n\n\t\t\t// Anything else is considered a literal, including [ ,:/.'@#], chinese, japonese, and arabic characters.\n\t\t\tdefault:\n\t\t\t\treturn current;\n\t\t}\n\t\tif ( pad ) {\n\t\t\tret = stringPad( ret, length );\n\t\t}\n\t\treturn ret;\n\t});\n};\n\n\n\n\n/**\n * tokenizer( value, pattern )\n *\n * Returns an Array of tokens, eg. value \"5 o'clock PM\", pattern \"h 'o''clock' a\":\n * [{\n * type: \"h\",\n * lexeme: \"5\"\n * }, {\n * type: \"literal\",\n * lexeme: \" \"\n * }, {\n * type: \"literal\",\n * lexeme: \"o'clock\"\n * }, {\n * type: \"literal\",\n * lexeme: \" \"\n * }, {\n * type: \"a\",\n * lexeme: \"PM\",\n * value: \"pm\"\n * }]\n *\n * OBS: lexeme's are always String and may return invalid ranges depending of the token type. Eg. \"99\" for month number.\n *\n * Return an empty Array when not successfully parsed.\n */\nvar dateTokenizer = function( value, pattern, cldr ) {\n\tvar valid,\n\t\ttokens = [],\n\t\twidths = [ \"abbreviated\", \"wide\", \"narrow\" ];\n\n\tvalid = pattern.match( datePatternRe ).every(function( current ) {\n\t\tvar chr, length, tokenRe,\n\t\t\ttoken = {};\n\n\t\tfunction oneDigitIfLengthOne() {\n\t\t\tif ( length === 1 ) {\n\t\t\t\treturn tokenRe = /\\d/;\n\t\t\t}\n\t\t}\n\n\t\tfunction oneOrTwoDigitsIfLengthOne() {\n\t\t\tif ( length === 1 ) {\n\t\t\t\treturn tokenRe = /\\d\\d?/;\n\t\t\t}\n\t\t}\n\n\t\tfunction twoDigitsIfLengthTwo() {\n\t\t\tif ( length === 2 ) {\n\t\t\t\treturn tokenRe = /\\d\\d/;\n\t\t\t}\n\t\t}\n\n\t\t// Brute-force test every locale entry in an attempt to match the given value.\n\t\t// Return the first found one (and set token accordingly), or null.\n\t\tfunction lookup( path ) {\n\t\t\tvar i, re,\n\t\t\t\tdata = cldr.main( path );\n\t\t\tfor ( i in data ) {\n\t\t\t\tre = new RegExp( \"^\" + data[ i ] );\n\t\t\t\tif ( re.test( value ) ) {\n\t\t\t\t\ttoken.value = i;\n\t\t\t\t\treturn tokenRe = new RegExp( data[ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\ttoken.type = current;\n\t\tchr = current.charAt( 0 ),\n\t\tlength = current.length;\n\n\t\tswitch ( chr ) {\n\n\t\t\t// Era\n\t\t\tcase \"G\":\n\t\t\t\tlookup([\n\t\t\t\t\t\"dates/calendars/gregorian/eras\",\n\t\t\t\t\tlength <= 3 ? \"eraAbbr\" : ( length === 4 ? \"eraNames\" : \"eraNarrow\" )\n\t\t\t\t]);\n\t\t\t\tbreak;\n\n\t\t\t// Year\n\t\t\tcase \"y\":\n\t\t\tcase \"Y\":\n\t\t\t\t// number l=1:+, l=2:{2}, l=3:{3,}, l=4:{4,}, ...\n\t\t\t\tif ( length === 1 ) {\n\t\t\t\t\ttokenRe = /\\d+/;\n\t\t\t\t} else if ( length === 2 ) {\n\t\t\t\t\ttokenRe = /\\d\\d/;\n\t\t\t\t} else {\n\t\t\t\t\ttokenRe = new RegExp( \"\\\\d{\" + length + \",}\" );\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"u\": // Extended year. Need to be implemented.\n\t\t\tcase \"U\": // Cyclic year name. Need to be implemented.\n\t\t\t\tthrow new Error( \"Not implemented\" );\n\n\t\t\t// Quarter\n\t\t\tcase \"Q\":\n\t\t\tcase \"q\":\n\t\t\t\t// number l=1:{1}, l=2:{2}.\n\t\t\t\t// lookup l=3...\n\t\t\t\toneDigitIfLengthOne() || twoDigitsIfLengthTwo() || lookup([\n\t\t\t\t\t\"dates/calendars/gregorian/quarters\",\n\t\t\t\t\tchr === \"Q\" ? \"format\" : \"stand-alone\",\n\t\t\t\t\twidths[ length - 3 ]\n\t\t\t\t]);\n\t\t\t\tbreak;\n\n\t\t\t// Month\n\t\t\tcase \"M\":\n\t\t\tcase \"L\":\n\t\t\t\t// number l=1:{1,2}, l=2:{2}.\n\t\t\t\t// lookup l=3...\n\t\t\t\toneOrTwoDigitsIfLengthOne() || twoDigitsIfLengthTwo() || lookup([\n\t\t\t\t\t\"dates/calendars/gregorian/months\",\n\t\t\t\t\tchr === \"M\" ? \"format\" : \"stand-alone\",\n\t\t\t\t\twidths[ length - 3 ]\n\t\t\t\t]);\n\t\t\t\tbreak;\n\n\t\t\t// Day (see d below)\n\t\t\tcase \"D\":\n\t\t\t\t// number {l,3}.\n\t\t\t\tif ( length <= 3 ) {\n\t\t\t\t\ttokenRe = new RegExp( \"\\\\d{\" + length + \",3}\" );\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase \"W\":\n\t\t\tcase \"F\":\n\t\t\t\t// number l=1:{1}.\n\t\t\t\toneDigitIfLengthOne();\n\t\t\t\tbreak;\n\n\t\t\tcase \"g+\":\n\t\t\t\t// Modified Julian day. Need to be implemented.\n\t\t\t\tthrow new Error( \"Not implemented\" );\n\n\t\t\t// Week day\n\t\t\tcase \"e\":\n\t\t\tcase \"c\":\n\t\t\t\t// number l=1:{1}, l=2:{2}.\n\t\t\t\t// lookup for length >=3.\n\t\t\t\tif( length <= 2 ) {\n\t\t\t\t\toneDigitIfLengthOne() || twoDigitsIfLengthTwo();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t/* falls through */\n\t\t\tcase \"E\":\n\t\t\t\tif ( length === 6 ) {\n\t\t\t\t\t// Note: if short day names are not explicitly specified, abbreviated day names are used instead http://www.unicode.org/reports/tr35/tr35-dates.html#months_days_quarters_eras\n\t\t\t\t\tlookup([\n\t\t\t\t\t\t\"dates/calendars/gregorian/days\",\n\t\t\t\t\t\t[ chr === \"c\" ? \"stand-alone\" : \"format\" ],\n\t\t\t\t\t\t\"short\"\n\t\t\t\t\t]) || lookup([\n\t\t\t\t\t\t\"dates/calendars/gregorian/days\",\n\t\t\t\t\t\t[ chr === \"c\" ? \"stand-alone\" : \"format\" ],\n\t\t\t\t\t\t\"abbreviated\"\n\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\tlookup([\n\t\t\t\t\t\t\"dates/calendars/gregorian/days\",\n\t\t\t\t\t\t[ chr === \"c\" ? \"stand-alone\" : \"format\" ],\n\t\t\t\t\t\twidths[ length < 3 ? 0 : length - 3 ]\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t// Period (AM or PM)\n\t\t\tcase \"a\":\n\t\t\t\tlookup([\n\t\t\t\t\t\"dates/calendars/gregorian/dayPeriods/format/wide\"\n\t\t\t\t]);\n\t\t\t\tbreak;\n\n\t\t\t// Week, Day, Hour, Minute, or Second\n\t\t\tcase \"w\":\n\t\t\tcase \"d\":\n\t\t\tcase \"h\":\n\t\t\tcase \"H\":\n\t\t\tcase \"K\":\n\t\t\tcase \"k\":\n\t\t\tcase \"j\":\n\t\t\tcase \"m\":\n\t\t\tcase \"s\":\n\t\t\t\t// number l1:{1,2}, l2:{2}.\n\t\t\t\toneOrTwoDigitsIfLengthOne() || twoDigitsIfLengthTwo();\n\t\t\t\tbreak;\n\n\t\t\tcase \"S\":\n\t\t\t\t// number {l}.\n\t\t\t\t\ttokenRe = new RegExp( \"\\\\d{\" + length + \"}\" );\n\t\t\t\tbreak;\n\n\t\t\tcase \"A\":\n\t\t\t\t// number {l+5}.\n\t\t\t\t\ttokenRe = new RegExp( \"\\\\d{\" + ( length + 5 ) + \"}\" );\n\t\t\t\tbreak;\n\n\t\t\t// Zone\n\t\t\t// see http://www.unicode.org/reports/tr35/tr35-dates.html#Using_Time_Zone_Names ?\n\t\t\t// Need to be implemented.\n\t\t\tcase \"z\":\n\t\t\tcase \"Z\":\n\t\t\tcase \"O\":\n\t\t\tcase \"v\":\n\t\t\tcase \"V\":\n\t\t\tcase \"X\":\n\t\t\tcase \"x\":\n\t\t\t\tthrow new Error( \"Not implemented\" );\n\n\t\t\tcase \"'\":\n\t\t\t\ttoken.type = \"literal\";\n\t\t\t\tif ( current.charAt( 1 ) === \"'\" ) {\n\t\t\t\t\ttokenRe = /'/;\n\t\t\t\t} else {\n\t\t\t\t\ttokenRe = /'[^']+'/;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\ttoken.type = \"literal\";\n\t\t\t\ttokenRe = /./;\n\t\t}\n\n\t\tif ( !tokenRe ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Get lexeme and consume it.\n\t\tvalue = value.replace( new RegExp( \"^\" + tokenRe.source ), function( lexeme ) {\n\t\t\ttoken.lexeme = lexeme;\n\t\t\treturn \"\";\n\t\t});\n\n\t\tif ( !token.lexeme ) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttokens.push( token );\n\t\treturn true;\n\t});\n\n\treturn valid ? tokens : [];\n};\n\n\n\n\n/**\n * Differently from native date.setDate(), this function returns a date whose\n * day remains inside the month boundaries. For example:\n *\n * setDate( FebDate, 31 ): a \"Feb 28\" date.\n * setDate( SepDate, 31 ): a \"Sep 30\" date.\n */\nvar dateSetDate = function( date, day ) {\n\tvar lastDay = new Date( date.getFullYear(), date.getMonth() + 1 , 0 ).getDate();\n\t\n\tdate.setDate( day < 1 ? 1 : day < lastDay ? day : lastDay );\n};\n\n\n\n\n/**\n * Differently from native date.setMonth(), this function adjusts date if\n * needed, so final month is always the one set.\n *\n * setMonth( Jan31Date, 1 ): a \"Feb 28\" date.\n * setDate( Jan31Date, 8 ): a \"Sep 30\" date.\n */\nvar dateSetMonth = function( date, month ) {\n\tvar originalDate = date.getDate();\n\t\n\tdate.setDate( 1 );\n\tdate.setMonth( month );\n\tdateSetDate( date, originalDate );\n};\n\n\nvar dateParse = (function() {\n\nfunction outOfRange( value, low, high ) {\n\treturn value < low || value > high;\n}\n\n/**\n * parse\n *\n * ref: http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns\n */\nreturn function( value, pattern, cldr ) {\n\tvar amPm, era, hour, hour12, valid,\n\t\tYEAR = 0,\n\t\tMONTH = 1,\n\t\tDAY = 2,\n\t\tHOUR = 3,\n\t\tMINUTE = 4,\n\t\tSECOND = 5,\n\t\tMILLISECONDS = 6,\n\t\tdate = new Date(),\n\t\ttokens = dateTokenizer( value, pattern, cldr ),\n\t\ttruncateAt = [],\n\t\tunits = [ \"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"milliseconds\" ];\n\n\tif ( !tokens.length ) {\n\t\treturn null;\n\t}\n\n\tvalid = tokens.every(function( token ) {\n\t\tvar century, chr, value, length;\n\n\t\tif ( token.type === \"literal\" ) {\n\t\t\t// continue\n\t\t\treturn true;\n\t\t}\n\n\t\tchr = token.type.charAt( 0 );\n\t\tlength = token.type.length;\n\n\t\tif ( chr === \"j\" ) {\n\t\t\t// Locale preferred hHKk.\n\t\t\t// http://www.unicode.org/reports/tr35/tr35-dates.html#Time_Data\n\t\t\tchr = cldr.supplemental.timeData.preferred();\n\t\t}\n\n\t\tswitch ( chr ) {\n\n\t\t\t// Era\n\t\t\tcase \"G\":\n\t\t\t\ttruncateAt.push( YEAR );\n\t\t\t\tera = +token.value;\n\t\t\t\tbreak;\n\n\t\t\t// Year\n\t\t\tcase \"y\":\n\t\t\t\tvalue = +token.lexeme;\n\t\t\t\tif ( length === 2 ) {\n\t\t\t\t\tif ( outOfRange( value, 0, 99 ) ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\t// mimic dojo/date/locale: choose century to apply, according to a sliding window of 80 years before and 20 years after present year.\n\t\t\t\t\tcentury = Math.floor( date.getFullYear() / 100 ) * 100;\n\t\t\t\t\tvalue += century;\n\t\t\t\t\tif ( value > date.getFullYear() + 20 ) {\n\t\t\t\t\t\tvalue -= 100;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdate.setFullYear( value );\n\t\t\t\ttruncateAt.push( YEAR );\n\t\t\t\tbreak;\n\n\t\t\tcase \"Y\": // Year in \"Week of Year\"\n\t\t\tcase \"u\": // Extended year. Need to be implemented.\n\t\t\tcase \"U\": // Cyclic year name. Need to be implemented.\n\t\t\t\tthrow new Error( \"Not implemented\" );\n\n\t\t\t// Quarter (skip)\n\t\t\tcase \"Q\":\n\t\t\tcase \"q\":\n\t\t\t\tbreak;\n\n\t\t\t// Month\n\t\t\tcase \"M\":\n\t\t\tcase \"L\":\n\t\t\t\tif ( length <= 2 ) {\n\t\t\t\t\tvalue = +token.lexeme;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = +token.value;\n\t\t\t\t}\n\t\t\t\tif( outOfRange( value, 1, 12 ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tdateSetMonth( date, value - 1 );\n\t\t\t\ttruncateAt.push( MONTH );\n\t\t\t\tbreak;\n\n\t\t\t// Week (skip)\n\t\t\tcase \"w\": // Week of Year.\n\t\t\tcase \"W\": // Week of Month.\n\t\t\t\tbreak;\n\n\t\t\t// Day\n\t\t\tcase \"d\":\n\t\t\t\tvalue = +token.lexeme;\n\t\t\t\tif( outOfRange( value, 1, 31 ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tdateSetDate( date, value );\n\t\t\t\ttruncateAt.push( DAY );\n\t\t\t\tbreak;\n\n\t\t\tcase \"D\":\n\t\t\t\tvalue = +token.lexeme;\n\t\t\t\tif( outOfRange( value, 1, 366 ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tdate.setMonth(0);\n\t\t\t\tdate.setDate( value );\n\t\t\t\ttruncateAt.push( DAY );\n\t\t\t\tbreak;\n\n\t\t\tcase \"F\":\n\t\t\t\t// Day of Week in month. eg. 2nd Wed in July.\n\t\t\t\t// Skip\n\t\t\t\tbreak;\n\n\t\t\tcase \"g+\":\n\t\t\t\t// Modified Julian day. Need to be implemented.\n\t\t\t\tthrow new Error( \"Not implemented\" );\n\n\t\t\t// Week day\n\t\t\tcase \"e\":\n\t\t\tcase \"c\":\n\t\t\tcase \"E\":\n\t\t\t\t// Skip.\n\t\t\t\t// value = arrayIndexOf( dateWeekDays, token.value );\n\t\t\t\tbreak;\n\n\t\t\t// Period (AM or PM)\n\t\t\tcase \"a\":\n\t\t\t\tamPm = token.value;\n\t\t\t\tbreak;\n\n\t\t\t// Hour\n\t\t\tcase \"h\": // 1-12\n\t\t\t\tvalue = +token.lexeme;\n\t\t\t\tif( outOfRange( value, 1, 12 ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\thour = hour12 = true;\n\t\t\t\tdate.setHours( value === 12 ? 0 : value );\n\t\t\t\ttruncateAt.push( HOUR );\n\t\t\t\tbreak;\n\n\t\t\tcase \"K\": // 0-11\n\t\t\t\tvalue = +token.lexeme;\n\t\t\t\tif( outOfRange( value, 0, 11 ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\thour = hour12 = true;\n\t\t\t\tdate.setHours( value );\n\t\t\t\ttruncateAt.push( HOUR );\n\t\t\t\tbreak;\n\n\t\t\tcase \"k\": // 1-24\n\t\t\t\tvalue = +token.lexeme;\n\t\t\t\tif( outOfRange( value, 1, 24 ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\thour = true;\n\t\t\t\tdate.setHours( value === 24 ? 0 : value );\n\t\t\t\ttruncateAt.push( HOUR );\n\t\t\t\tbreak;\n\n\t\t\tcase \"H\": // 0-23\n\t\t\t\tvalue = +token.lexeme;\n\t\t\t\tif( outOfRange( value, 0, 23 ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\thour = true;\n\t\t\t\tdate.setHours( value );\n\t\t\t\ttruncateAt.push( HOUR );\n\t\t\t\tbreak;\n\n\t\t\t// Minute\n\t\t\tcase \"m\":\n\t\t\t\tvalue = +token.lexeme;\n\t\t\t\tif( outOfRange( value, 0, 59 ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tdate.setMinutes( value );\n\t\t\t\ttruncateAt.push( MINUTE );\n\t\t\t\tbreak;\n\n\t\t\t// Second\n\t\t\tcase \"s\":\n\t\t\t\tvalue = +token.lexeme;\n\t\t\t\tif( outOfRange( value, 0, 59 ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tdate.setSeconds( value );\n\t\t\t\ttruncateAt.push( SECOND );\n\t\t\t\tbreak;\n\n\t\t\tcase \"A\":\n\t\t\t\tdate.setHours( 0 );\n\t\t\t\tdate.setMinutes( 0 );\n\t\t\t\tdate.setSeconds( 0 );\n\n\t\t\t/* falls through */\n\t\t\tcase \"S\":\n\t\t\t\tvalue = Math.round( +token.lexeme * Math.pow( 10, 3 - length ) );\n\t\t\t\tdate.setMilliseconds( value );\n\t\t\t\ttruncateAt.push( MILLISECONDS );\n\t\t\t\tbreak;\n\n\t\t\t// Zone\n\t\t\t// see http://www.unicode.org/reports/tr35/tr35-dates.html#Using_Time_Zone_Names ?\n\t\t\t// Need to be implemented.\n\t\t\tcase \"z\":\n\t\t\tcase \"Z\":\n\t\t\tcase \"O\":\n\t\t\tcase \"v\":\n\t\t\tcase \"V\":\n\t\t\tcase \"X\":\n\t\t\tcase \"x\":\n\t\t\t\tthrow new Error( \"Not implemented\" );\n\t\t}\n\n\t\treturn true;\n\t});\n\n\tif ( !valid ) {\n\t\treturn null;\n\t}\n\n\t// 12-hour format needs AM or PM, 24-hour format doesn't, ie. return null if amPm && !hour12 || !amPm && hour12.\n\tif ( hour && !( !amPm ^ hour12 ) ) {\n\t\treturn null;\n\t}\n\n\tif ( era === 0 ) {\n\t\t// 1 BC = year 0\n\t\tdate.setFullYear( date.getFullYear() * -1 + 1 );\n\t}\n\n\tif ( hour12 && amPm === \"pm\" ) {\n\t\tdate.setHours( date.getHours() + 12 );\n\t}\n\n\t// Truncate date at the most precise unit defined. Eg.\n\t// If value is \"12/31\", and pattern is \"MM/dd\":\n\t// => new Date( , 12, 31, 0, 0, 0, 0 );\n\ttruncateAt = Math.max.apply( null, truncateAt );\n\tdate = dateStartOf( date, units[ truncateAt ] );\n\n\treturn date;\n};\n\n}());\n\n\nfunction validateRequiredCldr( path, value ) {\n\tvalidateCldr( path, value, {\n\t\tskip: [\n\t\t\t/dates\\/calendars\\/gregorian\\/days\\/.*\\/short/,\n\t\t\t/supplemental\\/timeData\\/(?!001)/,\n\t\t\t/supplemental\\/weekData\\/(?!001)/\n\t\t]\n\t});\n}\n\n/**\n * .formatDate( value, pattern )\n *\n * pattern [String or Object] see date/expand_pattern for more info.\n *\n * Formats a date or number according to the given pattern string and the default/instance locale.\n */\nGlobalize.formatDate =\nGlobalize.prototype.formatDate = function( value, pattern ) {\n\tvar cldr, ret;\n\n\tvalidatePresence( value, \"value\" );\n\tvalidatePresence( pattern, \"pattern\" );\n\tvalidateTypeDate( value, \"value\" );\n\tvalidateTypeDatePattern( pattern, \"pattern\" );\n\n\tcldr = this.cldr;\n\n\tvalidateDefaultLocale( cldr );\n\n\tcldr.on( \"get\", validateRequiredCldr );\n\tpattern = dateExpandPattern( pattern, cldr );\n\tret = dateFormat( value, pattern, cldr );\n\tcldr.off( \"get\", validateRequiredCldr );\n\n\treturn ret;\n};\n\n/**\n * .parseDate( value, patterns )\n *\n * patterns [Array] Optional. See date/expand_pattern for more info about each pattern. Defaults to the list of all presets defined in the locale (see date/all_presets for more info).\n *\n * Return a Date instance or null.\n */\nGlobalize.parseDate =\nGlobalize.prototype.parseDate = function( value, patterns ) {\n\tvar cldr, date;\n\n\tvalidatePresence( value, \"value\" );\n\tvalidateTypeString( value, \"value\" );\n\n\tcldr = this.cldr;\n\n\tvalidateDefaultLocale( cldr );\n\n\tcldr.on( \"get\", validateRequiredCldr );\n\n\tif ( !patterns ) {\n\t\tpatterns = dateAllPresets( cldr );\n\t} else {\n\t\tpatterns = alwaysArray( patterns );\n\t}\n\n\tpatterns.some(function( pattern ) {\n\t\tvalidateTypeDatePattern( pattern, \"patterns\" );\n\t\tpattern = dateExpandPattern( pattern, cldr );\n\t\tdate = dateParse( value, pattern, cldr );\n\t\treturn !!date;\n\t});\n\n\tcldr.off( \"get\", validateRequiredCldr );\n\n\treturn date || null;\n};\n\nreturn Globalize;\n\n\n\n\n}));\n","/*!\n * Globalize v1.0.0-alpha.4\n *\n * http://github.com/jquery/globalize\n *\n * Copyright 2010, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-07-13T05:36Z\n */\n(function( root, factory ) {\n\n\t// // UMD returnExports\n\t// if ( typeof define === \"function\" && define.amd ) {\n\n\t// \t// AMD\n\t// \tdefine([\n\t// \t\t\"cldr\",\n\t// \t\t\"../globalize\",\n\t// \t\t\"cldr/event\"\n\t// \t], factory );\n\t// } else if ( typeof exports === \"object\" ) {\n\n\t// \t// Node, CommonJS\n\t// \tmodule.exports = factory( require( \"cldrjs\" ), require( \"globalize\" ) );\n\t// } else {\n\n\t\t// Global\n\t\tfactory( root.Cldr, root.Globalize );\n\t// }\n}(this, function( Cldr, Globalize ) {\n\nvar validateCldr = Globalize._validateCldr,\n\tvalidateDefaultLocale = Globalize._validateDefaultLocale,\n\tvalidatePresence = Globalize._validatePresence,\n\tvalidateType = Globalize._validateType,\n\tvalidateTypePlainObject = Globalize._validateTypePlainObject;\n\n\nvar validateTypeNumber = function( value, name ) {\n\tvalidateType( value, name, typeof value === \"undefined\" || typeof value === \"number\", \"Number\" );\n};\n\n\n\n\nvar validateTypeString = function( value, name ) {\n\tvalidateType( value, name, typeof value === \"undefined\" || typeof value === \"string\", \"a string\" );\n};\n\n\n\n\n/**\n * goupingSeparator( number, primaryGroupingSize, secondaryGroupingSize )\n *\n * primaryGroupingSize [Number]\n *\n * secondaryGroupingSize [Number]\n *\n * Return the formatted number with group separator.\n */\nvar numberFormatGroupingSeparator = function( number, primaryGroupingSize, secondaryGroupingSize ) {\n\tvar index,\n\t\tcurrentGroupingSize = primaryGroupingSize,\n\t\tret = \"\",\n\t\tsep = \",\",\n\t\tswitchToSecondary = secondaryGroupingSize ? true : false;\n\n\tnumber = String( number ).split( \".\" );\n\tindex = number[ 0 ].length;\n\n\twhile ( index > currentGroupingSize ) {\n\t\tret = number[ 0 ].slice( index - currentGroupingSize, index ) + ( ret.length ? sep : \"\" ) + ret;\n\t\tindex -= currentGroupingSize;\n\t\tif ( switchToSecondary ) {\n\t\t\tcurrentGroupingSize = secondaryGroupingSize;\n\t\t\tswitchToSecondary = false;\n\t\t}\n\t}\n\n\tnumber[ 0 ] = number[ 0 ].slice( 0, index ) + ( ret.length ? sep : \"\" ) + ret;\n\treturn number.join( \".\" );\n};\n\n\n\n\nvar numberTruncate = function( value ) {\n\tif ( isNaN( value ) ) {\n\t\treturn NaN;\n\t}\n\treturn Math[ value < 0 ? \"ceil\" : \"floor\" ]( value );\n};\n\n\n\n\nvar stringPad = function( str, count, right ) {\n\tvar length;\n\tif ( typeof str !== \"string\" ) {\n\t\tstr = String( str );\n\t}\n\tfor ( length = str.length; length < count; length += 1 ) {\n\t\tstr = ( right ? ( str + \"0\" ) : ( \"0\" + str ) );\n\t}\n\treturn str;\n};\n\n\n\n\n/**\n * integerFractionDigits( number, minimumIntegerDigits, minimumFractionDigits, maximumFractionDigits, round, roundIncrement )\n *\n * number [Number]\n *\n * minimumIntegerDigits [Number] \n *\n * minimumFractionDigits [Number] \n *\n * maximumFractionDigits [Number] \n *\n * round [Function] \n *\n * roundIncrement [Function] \n *\n * Return the formatted integer and fraction digits.\n */\nvar numberFormatIntegerFractionDigits = function( number, minimumIntegerDigits, minimumFractionDigits, maximumFractionDigits, round, roundIncrement ) {\n\n\t// Sanity check.\n\tif ( minimumFractionDigits > maximumFractionDigits ) {\n\t\tmaximumFractionDigits = minimumFractionDigits;\n\t}\n\n\t// Fraction\n\tif ( maximumFractionDigits ) {\n\n\t\t// Rounding\n\t\tif ( roundIncrement ) {\n\t\t\tnumber = round( number, roundIncrement );\n\n\t\t// Maximum fraction digits\n\t\t} else {\n\t\t\tnumber = round( number, Math.pow( 10, -maximumFractionDigits ) );\n\t\t}\n\n\t\t// Ignore decimal error, eg. `1234 * 0.0001 = 0.12340000000000001`.\n\t\tnumber = +number.toFixed( maximumFractionDigits );\n\n\t\t// Minimum fraction digits\n\t\tif ( minimumFractionDigits ) {\n\t\t\tnumber = String( number ).split( \".\" );\n\t\t\tnumber[ 1 ] = stringPad( number[ 1 ] || \"\", minimumFractionDigits, true );\n\t\t\tnumber = number.join( \".\" );\n\t\t}\n\t} else {\n\t\tnumber = numberTruncate( number );\n\t}\n\n\tnumber = String( number );\n\n\t// Minimum integer digits\n\tif ( minimumIntegerDigits ) {\n\t\tnumber = number.split( \".\" );\n\t\tnumber[ 0 ] = stringPad( number[ 0 ], minimumIntegerDigits );\n\t\tnumber = number.join( \".\" );\n\t}\n\n\treturn number;\n};\n\n\n\n\n/**\n * toPrecision( number, precision, round )\n *\n * number (Number)\n *\n * precision (Number) significant figures precision (not decimal precision).\n *\n * round (Function)\n *\n * Return number.toPrecision( precision ) using the given round function.\n */\nvar numberToPrecision = function( number, precision, round ) {\n\tvar roundOrder, roundIncrement;\n\n\t// Get number at two extra significant figure precision.\n\tnumber = number.toPrecision( precision + 2 );\n\n\t// Then, round it to the required significant figure precision.\n\troundOrder = Math.ceil( Math.log( Math.abs( number ) ) / Math.log( 10 ) );\n\troundOrder -= precision;\n\troundIncrement = Math.pow( 10, roundOrder );\n\n\tnumber = round( number, roundIncrement );\n\n\t// Ignore decimal error, eg. `1234 * 0.0001 = 0.12340000000000001`.\n\tif ( roundOrder < 0 ) {\n\t\tnumber = +number.toFixed( -roundOrder );\n\t}\n\n\treturn number;\n};\n\n\n\n\n/**\n * toPrecision( number, minimumSignificantDigits, maximumSignificantDigits, round )\n *\n * number [Number] \n *\n * minimumSignificantDigits [Number] \n *\n * maximumSignificantDigits [Number] \n *\n * round [Function] \n *\n * Return the formatted significant digits number.\n */\nvar numberFormatSignificantDigits = function( number, minimumSignificantDigits, maximumSignificantDigits, round ) {\n\tvar atMinimum, atMaximum;\n\n\t// Sanity check.\n\tif ( minimumSignificantDigits > maximumSignificantDigits ) {\n\t\tmaximumSignificantDigits = minimumSignificantDigits;\n\t}\n\n\tatMinimum = numberToPrecision( number, minimumSignificantDigits, round );\n\tatMaximum = numberToPrecision( number, maximumSignificantDigits, round );\n\n\t// Use atMaximum only if it has more significant digits than atMinimum.\n\tnumber = +atMinimum === +atMaximum ? atMinimum : atMaximum;\n\n\t// Expand integer numbers, eg. 123e5 to 12300.\n\tnumber = ( +number ).toString( 10 );\n\n\tif ( (/e/).test( number ) ) {\n\t\tthrow new Error( \"Ops! Integers out of (1e21, 1e-7) not supported\" );\n\t}\n\n\t// Add trailing zeros if necessary.\n\tif ( minimumSignificantDigits - number.replace( /^0+|\\./g, \"\" ).length > 0 ) {\n\t\tnumber = number.split( \".\" );\n\t\tnumber[ 1 ] = stringPad( number[ 1 ] || \"\", minimumSignificantDigits - number[ 0 ].replace( /^0+/, \"\" ).length, true );\n\t\tnumber = number.join( \".\" );\n\t}\n\n\treturn number;\n};\n\n\n\n\n/**\n * EBNF representation:\n * \n * number_pattern_re = prefix?\n * padding?\n * (integer_fraction_pattern | significant_pattern)\n * scientific_notation?\n * suffix?\n *\n * prefix = non_number_stuff\n *\n * padding = \"*\" regexp(.)\n *\n * integer_fraction_pattern = integer_pattern\n * fraction_pattern?\n *\n * integer_pattern = regexp([#,]*[0,]*0+)\n *\n * fraction_pattern = \".\" regexp(0*[0-9]*#*)\n *\n * significant_pattern = regexp([#,]*@+#*)\n *\n * scientific_notation = regexp(E\\+?0+)\n *\n * suffix = non_number_stuff\n *\n * non_number_stuff = regexp(('[^']+'|''|[^*#@0,.E])*)\n *\n *\n * Regexp groups:\n *\n * 0: number_pattern_re\n * 1: prefix\n * 2: -\n * 3: padding\n * 4: (integer_fraction_pattern | significant_pattern)\n * 5: integer_fraction_pattern\n * 6: integer_pattern\n * 7: fraction_pattern\n * 8: significant_pattern\n * 9: scientific_notation\n * 10: suffix\n * 11: -\n */\nvar numberPatternRe = (/^(('[^']+'|''|[^*#@0,.E])*)(\\*.)?((([#,]*[0,]*0+)(\\.0*[0-9]*#*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/);\n\n\n\n\n/**\n * format( number, pattern )\n *\n * number [Number].\n *\n * pattern [String] raw pattern for numbers.\n *\n * Return the formatted number.\n * ref: http://www.unicode.org/reports/tr35/tr35-numbers.html\n */\nvar numberPatternProperties = function( pattern ) {\n\tvar aux1, aux2, fractionPattern, integerFractionOrSignificantPattern, integerPattern, maximumFractionDigits, maximumSignificantDigits, minimumFractionDigits, minimumIntegerDigits, minimumSignificantDigits, padding, prefix, primaryGroupingSize, roundIncrement, scientificNotation, secondaryGroupingSize, significantPattern, suffix;\n\n\tpattern = pattern.match( numberPatternRe );\n\tif ( !pattern ) {\n\t\tthrow new Error( \"Invalid pattern: \" + pattern );\n\t}\n\n\tprefix = pattern[ 1 ];\n\tpadding = pattern[ 3 ];\n\tintegerFractionOrSignificantPattern = pattern[ 4 ];\n\tsignificantPattern = pattern[ 8 ];\n\tscientificNotation = pattern[ 9 ];\n\tsuffix = pattern[ 10 ];\n\n\t// Significant digit format\n\tif ( significantPattern ) {\n\t\tsignificantPattern.replace( /(@+)(#*)/, function( match, minimumSignificantDigitsMatch, maximumSignificantDigitsMatch ) {\n\t\t\tminimumSignificantDigits = minimumSignificantDigitsMatch.length;\n\t\t\tmaximumSignificantDigits = minimumSignificantDigits + maximumSignificantDigitsMatch.length;\n\t\t});\n\n\t// Integer and fractional format\n\t} else {\n\t\tfractionPattern = pattern[ 7 ];\n\t\tintegerPattern = pattern[ 6 ];\n\n\t\tif ( fractionPattern ) {\n\n\t\t\t// Minimum fraction digits, and rounding.\n\t\t\tfractionPattern.replace( /[0-9]+/, function( match ) {\n\t\t\t\tminimumFractionDigits = match;\n\t\t\t});\n\t\t\tif ( minimumFractionDigits ) {\n\t\t\t\troundIncrement = +( \"0.\" + minimumFractionDigits );\n\t\t\t\tminimumFractionDigits = minimumFractionDigits.length;\n\t\t\t}\n\n\t\t\t// Maximum fraction digits\n\t\t\t// 1: ignore decimal character\n\t\t\tmaximumFractionDigits = fractionPattern.length - 1 /* 1 */;\n\t\t}\n\n\t\t// Minimum integer digits\n\t\tintegerPattern.replace( /0+$/, function( match ) {\n\t\t\tminimumIntegerDigits = match.length;\n\t\t});\n\t}\n\n\t// Scientific notation\n\tif ( scientificNotation ) {\n\t\tthrow new Error( \"Scientific notation not implemented\" );\n\t}\n\n\t// Padding\n\tif ( padding ) {\n\t\tthrow new Error( \"Padding not implemented\" );\n\t}\n\n\t// Grouping\n\tif ( ( aux1 = integerFractionOrSignificantPattern.lastIndexOf( \",\" ) ) !== -1 ) {\n\n\t\t// Primary grouping size is the interval between the last group separator and the end of the integer (or the end of the significant pattern).\n\t\taux2 = integerFractionOrSignificantPattern.split( \".\" )[ 0 ];\n\t\tprimaryGroupingSize = aux2.length - aux1 - 1;\n\n\t\t// Secondary grouping size is the interval between the last two group separators.\n\t\tif ( ( aux2 = integerFractionOrSignificantPattern.lastIndexOf( \",\", aux1 - 1 ) ) !== -1 ) {\n\t\t\tsecondaryGroupingSize = aux1 - 1 - aux2;\n\t\t}\n\t}\n\n\t// Return:\n\t// 0: prefix String\n\t// 1: padding Array [ , ] TODO\n\t// 2: minimumIntegerDigits non-negative integer Number value indicating the minimum integer digits to be used. Numbers will be padded with leading zeroes if necessary.\n\t// 3: minimumFractionDigits and\n\t// 4: maximumFractionDigits are non-negative integer Number values indicating the minimum and maximum fraction digits to be used. Numbers will be rounded or padded with trailing zeroes if necessary.\n\t// 5: minimumSignificantDigits and\n\t// 6: maximumSignificantDigits are positive integer Number values indicating the minimum and maximum fraction digits to be shown. Either none or both of these properties are present; if they are, they override minimum and maximum integer and fraction digits \u2013 the formatter uses however many integer and fraction digits are required to display the specified number of significant digits.\n\t// 7: roundIncrement Decimal round increment or null\n\t// 8: primaryGroupingSize\n\t// 9: secondaryGroupingSize\n\t// 10: suffix String\n\treturn [\n\t\tprefix,\n\t\tpadding,\n\t\tminimumIntegerDigits,\n\t\tminimumFractionDigits,\n\t\tmaximumFractionDigits,\n\t\tminimumSignificantDigits,\n\t\tmaximumSignificantDigits,\n\t\troundIncrement,\n\t\tprimaryGroupingSize,\n\t\tsecondaryGroupingSize,\n\t\tsuffix\n\t];\n};\n\n\n\n\n/**\n * NumberingSystem( cldr )\n *\n * TODO support ( native | traditional | finance ).\n */\nvar numberNumberingSystem = function( cldr ) {\n\treturn cldr.main( \"numbers/defaultNumberingSystem\" );\n};\n\n\n\n\n/**\n * Symbol( name, cldr )\n *\n *\n * Return the localized symbol given its name.\n */\nvar numberSymbol = function( name, cldr ) {\n\treturn cldr.main([\n\t\t\"numbers/symbols-numberSystem-\" + numberNumberingSystem( cldr ),\n\t\tname\n\t]);\n};\n\n\n\n\nvar numberSymbolName = {\n\t\".\" : \"decimal\",\n\t\",\" : \"group\",\n\t\"%\" : \"percentSign\",\n\t\"+\" : \"plusSign\",\n\t\"-\" : \"minusSign\",\n\t\"E\" : \"exponential\",\n\t\"\\u2030\" : \"perMille\"\n};\n\n\n\n\n/**\n * round( method )\n *\n * method [String] with either \"round\", \"ceil\", \"floor\", or \"truncate\".\n *\n * Return function( value, increment ):\n *\n *\n * increment [Number] optional, eg. 0.1.\n *\n * Return the rounded number, eg:\n * - round( \"round\" )( 123.45 ): 123;\n * - round( \"ceil\" )( 123.45 ): 124;\n * - round( \"floor\" )( 123.45 ): 123;\n * - round( \"truncate\" )( 123.45 ): 123;\n * - round( \"round\" )( 123.45, 0.1 ): 123.5;\n * - round( \"round\" )( 123.45, 10 ): 120;\n */\nvar numberRound = function( method ) {\n\tmethod = method || \"round\";\n\tmethod = method === \"truncate\" ? numberTruncate : Math[ method ];\n\treturn function( value, increment ) {\n\t\tincrement = increment || 1;\n\t\treturn method( value / increment ) * increment;\n\t};\n};\n\n\n\n\n/**\n * format( number, pattern, cldr [, options] )\n *\n *\n * pattern [String] raw pattern for numbers.\n *\n *\n * options [Object]:\n * - minimumIntegerDigits [Number] \n * - minimumFractionDigits, maximumFractionDigits [Number] \n * - minimumSignificantDigits, maximumSignificantDigits [Number] \n * - round [String] \"ceil\", \"floor\", \"round\" (default), or \"truncate\".\n * - useGrouping [Boolean] default true.\n *\n * Return the formatted number.\n * ref: http://www.unicode.org/reports/tr35/tr35-numbers.html\n */\nvar numberFormat = function( number, pattern, cldr, options ) {\n\tvar maximumFractionDigits, maximumSignificantDigits, minimumFractionDigits, minimumIntegerDigits, minimumSignificantDigits, padding, prefix, primaryGroupingSize, properties, ret, round, roundIncrement, secondaryGroupingSize, suffix;\n\n\t// NaN\n\tif ( isNaN( number ) ) {\n\t\treturn numberSymbol( \"nan\", cldr );\n\t}\n\n\tpattern = pattern.split( \";\" );\n\n\toptions = options || {};\n\tround = numberRound( options.round );\n\tproperties = numberPatternProperties( pattern[ 0 ] );\n\tpadding = properties[ 1 ];\n\tminimumIntegerDigits = options.minimumIntegerDigits || properties[ 2 ];\n\tminimumFractionDigits = options.minimumFractionDigits || properties[ 3 ];\n\tmaximumFractionDigits = options.maximumFractionDigits || properties[ 4 ];\n\tminimumSignificantDigits = options.minimumSignificantDigits || properties[ 5 ];\n\tmaximumSignificantDigits = options.maximumSignificantDigits || properties[ 6 ];\n\troundIncrement = properties[ 7 ];\n\tprimaryGroupingSize = properties[ 8 ];\n\tsecondaryGroupingSize = properties[ 9 ];\n\n\t// Negative pattern\n\t// \"If there is an explicit negative subpattern, it serves only to specify the negative prefix and suffix\" UTS#35\n\tif ( number < 0 ) {\n\n\t\t// \"If there is no explicit negative subpattern, the negative subpattern is the localized minus sign prefixed to the positive subpattern\" UTS#35\n\t\tpattern = pattern[ 1 ] || \"-\" + pattern[ 0 ];\n\t\tproperties = numberPatternProperties( pattern );\n\t} else {\n\t\tpattern = pattern[ 0 ];\n\t}\n\n\tprefix = properties[ 0 ];\n\tsuffix = properties[ 10 ];\n\n\t// Infinity (observe that isNaN() has been checked above)\n\tif ( !isFinite( number ) ) {\n\t\treturn prefix + numberSymbol( \"infinity\", cldr ) + suffix;\n\t}\n\n\tret = prefix;\n\n\t// Percent\n\tif ( pattern.indexOf( \"%\" ) !== -1 ) {\n\t\tnumber *= 100;\n\n\t// Per mille\n\t} else if ( pattern.indexOf( \"\\u2030\" ) !== -1 ) {\n\t\tnumber *= 1000;\n\t}\n\n\t// Significant digit format\n\tif ( minimumSignificantDigits && maximumSignificantDigits ) {\n\t\tnumber = numberFormatSignificantDigits( number, minimumSignificantDigits, maximumSignificantDigits, round );\n\t} else if ( minimumSignificantDigits || maximumSignificantDigits ) {\n\t\tthrow new Error( \"None or both the minimum and maximum significant digits must be present\" );\n\n\t// Integer and fractional format\n\t} else {\n\t\tnumber = numberFormatIntegerFractionDigits( number, minimumIntegerDigits, minimumFractionDigits, maximumFractionDigits, round, roundIncrement );\n\t}\n\n\t// Remove the possible number minus sign\n\tnumber = number.replace( /^-/, \"\" );\n\n\t// Grouping separators\n\tif ( primaryGroupingSize && !( \"useGrouping\" in options && !options.useGrouping ) ) {\n\t\tnumber = numberFormatGroupingSeparator( number, primaryGroupingSize, secondaryGroupingSize );\n\t}\n\n\tret += number;\n\n\tret += suffix;\n\n\t// Symbols\n\treturn ret.replace( /'[^']+'|[.,\\-+E%\\u2030]/g, function( symbol ) {\n\t\tif ( symbol.charAt( 0 ) === \"'\" ) {\n\t\t\treturn symbol;\n\t\t}\n\t\treturn numberSymbol( numberSymbolName[ symbol ], cldr );\n\t});\n};\n\n\n\n\n/**\n * EBNF representation:\n * \n * number_pattern_re = prefix_including_padding?\n * number\n * scientific_notation?\n * suffix?\n *\n * number = integer_including_group_separator fraction_including_decimal_separator\n *\n * integer_including_group_separator =\n * regexp([0-9,]*[0-9]+)\n *\n * fraction_including_decimal_separator =\n * regexp((\\.[0-9]+)?)\n\n * prefix_including_padding = non_number_stuff\n *\n * scientific_notation = regexp(E[+-]?[0-9]+)\n *\n * suffix = non_number_stuff\n *\n * non_number_stuff = regexp([^0-9]*)\n *\n *\n * Regexp groups:\n *\n * 0: number_pattern_re\n * 1: prefix\n * 2: integer_including_group_separator fraction_including_decimal_separator\n * 3: integer_including_group_separator\n * 4: fraction_including_decimal_separator\n * 5: scientific_notation\n * 6: suffix\n */\nvar numberNumberRe = (/^([^0-9]*)(([0-9,]*[0-9]+)(\\.[0-9]+)?)(E[+-]?[0-9]+)?([^0-9]*)$/);\n\n\n\n\n/**\n * symbolMap( cldr )\n *\n *\n * Return the (localized symbol, pattern symbol) key value pair, eg. {\n * \"\u066b\": \".\",\n * \"\u066c\": \",\",\n * \"\u066a\": \"%\",\n * ...\n * };\n */\nvar numberSymbolMap = function( cldr ) {\n\tvar symbol,\n\t\tsymbolMap = {};\n\n\tfor ( symbol in numberSymbolName ) {\n\t\tsymbolMap[ numberSymbol( numberSymbolName[ symbol ], cldr ) ] = symbol;\n\t}\n\n\treturn symbolMap;\n};\n\n\n\n\n// ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions?redirectlocale=en-US&redirectslug=JavaScript%2FGuide%2FRegular_Expressions\nvar regexpEscape = function( string ){\n\treturn string.replace( /([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, \"\\\\$1\" );\n};\n\n\n\n\n/**\n * parse( value, cldr )\n *\n *\n * Return the parsed Number (including Infinity) or NaN when value is invalid.\n * ref: http://www.unicode.org/reports/tr35/tr35-numbers.html\n */\nvar numberParse = function( value, pattern, cldr ) {\n\tvar aux, localizedSymbolsRe, number, prefix, properties, suffix, symbolMap;\n\n\t// Infinite number.\n\tif ( aux = value.match( numberSymbol( \"infinity\", cldr ) ) ) {\n\n\t\tnumber = Infinity;\n\t\tprefix = value.slice( 0, aux.length );\n\t\tsuffix = value.slice( aux.length + 1 );\n\n\t// Finite number.\n\t} else {\n\n\t\tsymbolMap = numberSymbolMap( cldr );\n\t\tlocalizedSymbolsRe = new RegExp( Object.keys( symbolMap ).map(function( localizedSymbol ) {\n\t\t\treturn regexpEscape( localizedSymbol );\n\t\t}).join( \"|\" ), \"g\" );\n\n\t\t// Reverse localized symbols.\n\t\tvalue = value.replace( localizedSymbolsRe, function( localizedSymbol ) {\n\t\t\treturn symbolMap[ localizedSymbol ];\n\t\t});\n\n\t\t// Is it a valid number?\n\t\tvalue = value.match( numberNumberRe );\n\t\tif ( !value ) {\n\n\t\t\t// Invalid number.\n\t\t\treturn NaN;\n\t\t}\n\n\t\tprefix = value[ 1 ];\n\t\tsuffix = value[ 6 ];\n\n\t\t// Remove grouping separators.\n\t\tnumber = value[ 2 ].replace( /,/g, \"\" );\n\n\t\t// Scientific notation\n\t\tif ( value[ 5 ] ) {\n\t\t\tnumber += value[ 5 ];\n\t\t}\n\n\t\tnumber = +number;\n\n\t\t// Is it a valid number?\n\t\tif ( isNaN( number ) ) {\n\n\t\t\t// Invalid number.\n\t\t\treturn NaN;\n\t\t}\n\n\t\t// Percent\n\t\tif ( value[ 0 ].indexOf( \"%\" ) !== -1 ) {\n\t\t\tnumber /= 100;\n\n\t\t// Per mille\n\t\t} else if ( value[ 0 ].indexOf( \"\\u2030\" ) !== -1 ) {\n\t\t\tnumber /= 1000;\n\t\t}\n\t}\n\n\t// Negative number\n\t// \"If there is an explicit negative subpattern, it serves only to specify the negative prefix and suffix. If there is no explicit negative subpattern, the negative subpattern is the localized minus sign prefixed to the positive subpattern\" UTS#35\n\tpattern = pattern.split( \";\" );\n\tproperties = numberPatternProperties( pattern[ 1 ] || pattern[ 0 ] );\n\tif ( prefix === ( pattern[ 1 ] ? \"\" : \"-\" ) + properties[ 0 ] && suffix === properties[ 10 ] ) {\n\t\tnumber *= -1;\n\t}\n\n\treturn number;\n};\n\n\n\n\n/**\n * Pattern( style )\n *\n */\nvar numberPattern = function( style, cldr ) {\n\tif ( style !== \"decimal\" && style !== \"percent\" ) {\n\t\tthrow new Error( \"Invalid style\" );\n\t}\n\n\treturn cldr.main([\n\t\t\"numbers\",\n\t\tstyle + \"Formats-numberSystem-\" + numberNumberingSystem( cldr ),\n\t\t\"standard\"\n\t]);\n};\n\n\n\n\n/**\n * .formatNumber( value, pattern )\n *\n *\n * attributes [Object]:\n * - style: [String] \"decimal\" (default) or \"percent\".\n * - see also number/format options.\n *\n * Format a number according to the given attributes and default/instance locale.\n */\nGlobalize.formatNumber =\nGlobalize.prototype.formatNumber = function( value, attributes ) {\n\tvar cldr, pattern, ret;\n\n\tvalidatePresence( value, \"value\" );\n\tvalidateTypeNumber( value, \"value\" );\n\tvalidateTypePlainObject( attributes, \"attributes\" );\n\n\tattributes = attributes || {};\n\tcldr = this.cldr;\n\n\tvalidateDefaultLocale( cldr );\n\n\tcldr.on( \"get\", validateCldr );\n\n\tif ( !attributes.pattern ) {\n\t\tpattern = numberPattern( attributes.style || \"decimal\", cldr );\n\t}\n\n\tret = numberFormat( value, pattern, cldr, attributes );\n\n\tcldr.off( \"get\", validateCldr );\n\n\treturn ret;\n};\n\n/**\n * .parseNumber( value )\n *\n * Return the parsed Number (including Infinity) or NaN when value is invalid.\n */\nGlobalize.parseNumber =\nGlobalize.prototype.parseNumber = function( value ) {\n\tvar cldr, pattern, ret;\n\n\tvalidatePresence( value, \"value\" );\n\tvalidateTypeString( value, \"value\" );\n\n\tcldr = this.cldr;\n\n\tvalidateDefaultLocale( cldr );\n\n\tcldr.on( \"get\", validateCldr );\n\n\t// TODO: What about per mille? Which \"style\" does it belong to?\n\tpattern = numberPattern( value.indexOf( \"%\" ) !== -1 ? \"percent\" : \"decimal\", cldr );\n\n\tret = numberParse( value, pattern, cldr );\n\n\tcldr.off( \"get\", validateCldr );\n\n\treturn ret;\n};\n\nreturn Globalize;\n\n\n\n\n}));\n"], "names":["root","factory","Cldr","arrayForEach","array","callback","length","forEach","i","objectKeys","object","result","Object","keys","push","createError","code","attributes","message","JSON","stringify","error","Error","attribute","validatePresence","value","name","validateType","check","expected","arrayIsArray","Array","isArray","obj","prototype","toString","call","validateTypePath","validateTypePlainObject","pathNormalize","path","join","replace","split","arraySome","some","coreLikelySubtags","cldr","subtags","options","language","script","sep","localeSep","territory","get","matchFound","test","match","force","coreRemoveLikelySubtags","maxLanguageId","resourceGet","data","node","itemGetResolved","normalizedPath","_resolved","alwaysArray","stringOrArray","jsonMerge","merge","destination","sources","slice","arguments","source","prop","concat","locale","init","_alwaysArray","_createError","_itemGetResolved","_jsonMerge","_pathNormalize","_resourceGet","_validatePresence","_validateType","_validateTypePath","_validateTypePlainObject","load","Cldr.load","json","Cldr.prototype.init","unicodeLanguageId","variant","languageId","region","Cldr.prototype.get","main","Cldr.prototype.main","Globalize","validateLikelySubtags","once","validateCldr","validateTypeLocale","formatMessage","variable","validate","skipBoolean","skip","pathRe","isPlainObject","Globalize.load","Globalize.locale","_formatMessage","_isPlainObject","_validateCldr","_validateDefaultLocale","validateDefaultLocale","validateThenCall","method","self","event","listener","RegExp","apply","getOverload","superGet","globalEe","trigger","ee","EventEmitter","indexOfListener","listeners","alias","aliasClosure","proto","exports","originalGlobalValue","getListeners","proto.getListeners","evt","events","_getEvents","key","response","hasOwnProperty","flattenListeners","proto.flattenListeners","flatListeners","getListenersAsObject","proto.getListenersAsObject","addListener","proto.addListener","listenerIsWrapped","on","addOnceListener","proto.addOnceListener","defineEvent","proto.defineEvent","defineEvents","proto.defineEvents","evts","removeListener","proto.removeListener","index","splice","off","addListeners","proto.addListeners","manipulateListeners","removeListeners","proto.removeListeners","proto.manipulateListeners","remove","single","multiple","removeEvent","proto.removeEvent","type","_events","removeAllListeners","emitEvent","proto.emitEvent","args","_getOnceReturnValue","emit","proto.emit","setOnceReturnValue","proto.setOnceReturnValue","_onceReturnValue","proto._getOnceReturnValue","proto._getEvents","noConflict","EventEmitter.noConflict","superInit","_eventInit","validateRequiredCldr","validateTypeDatePattern","objectValues","dateAllPresets","map","datetimeFormat","pattern","dateExpandPattern","skeleton","date","time","datetime","dateWeekDays","dateDayOfWeek","getDay","indexOf","supplemental","weekData","firstDay","dateStartOf","unit","Date","getTime","setMonth","setDate","setHours","setMinutes","setSeconds","setMilliseconds","dateDayOfYear","Math","floor","from","inDays","datePatternRe","dateFormat","widths","current","chr","charAt","timeData","preferred","ret","getFullYear","String","pad","substr","getDate","minDays","ceil","getMonth","getHours","getMinutes","getSeconds","round","getMilliseconds","pow","str","dateTokenizer","tokens","every","valid","oneDigitIfLengthOne","tokenRe","oneOrTwoDigitsIfLengthOne","twoDigitsIfLengthTwo","lookup","re","token","lexeme","dateSetDate","day","lastDay","dateParse","amPm","era","hour","hour12","truncateAt","YEAR","low","high","century","setFullYear","originalDate","month","MONTH","DAY","HOUR","MINUTE","SECOND","MILLISECONDS","max","units","formatDate","Globalize.prototype.formatDate","parseDate","Globalize.prototype.parseDate","patterns","numberFormatGroupingSeparator","number","primaryGroupingSize","secondaryGroupingSize","currentGroupingSize","switchToSecondary","numberTruncate","isNaN","NaN","stringPad","count","right","numberFormatIntegerFractionDigits","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","roundIncrement","toFixed","numberToPrecision","precision","toPrecision","roundOrder","log","abs","numberFormatSignificantDigits","minimumSignificantDigits","maximumSignificantDigits","atMinimum","atMaximum","numberPatternRe","numberPatternProperties","prefix","padding","integerFractionOrSignificantPattern","significantPattern","scientificNotation","suffix","minimumSignificantDigitsMatch","maximumSignificantDigitsMatch","fractionPattern","integerPattern","aux1","lastIndexOf","aux2","numberNumberingSystem","numberSymbol","numberSymbolName","numberRound","increment","numberFormat","properties","isFinite","useGrouping","symbol","numberNumberRe","numberSymbolMap","symbolMap","numberParse","aux","Infinity","localizedSymbolsRe","localizedSymbol","numberPattern","style","formatNumber","Globalize.prototype.formatNumber","parseNumber","Globalize.prototype.parseNumber"] }