twitter_cldr_js 2.2.0 → 2.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/History.txt +8 -0
  3. data/README.md +11 -1
  4. data/Rakefile +4 -5
  5. data/lib/assets/javascripts/twitter_cldr/af.js +208 -98
  6. data/lib/assets/javascripts/twitter_cldr/ar.js +208 -98
  7. data/lib/assets/javascripts/twitter_cldr/be.js +211 -101
  8. data/lib/assets/javascripts/twitter_cldr/bg.js +208 -98
  9. data/lib/assets/javascripts/twitter_cldr/bn.js +208 -98
  10. data/lib/assets/javascripts/twitter_cldr/ca.js +208 -98
  11. data/lib/assets/javascripts/twitter_cldr/cs.js +208 -98
  12. data/lib/assets/javascripts/twitter_cldr/cy.js +208 -98
  13. data/lib/assets/javascripts/twitter_cldr/da.js +208 -98
  14. data/lib/assets/javascripts/twitter_cldr/de.js +208 -98
  15. data/lib/assets/javascripts/twitter_cldr/el.js +208 -98
  16. data/lib/assets/javascripts/twitter_cldr/en-GB.js +1994 -0
  17. data/lib/assets/javascripts/twitter_cldr/en.js +206 -96
  18. data/lib/assets/javascripts/twitter_cldr/es.js +209 -98
  19. data/lib/assets/javascripts/twitter_cldr/eu.js +209 -98
  20. data/lib/assets/javascripts/twitter_cldr/fa.js +209 -98
  21. data/lib/assets/javascripts/twitter_cldr/fi.js +209 -98
  22. data/lib/assets/javascripts/twitter_cldr/fil.js +209 -98
  23. data/lib/assets/javascripts/twitter_cldr/fr.js +209 -98
  24. data/lib/assets/javascripts/twitter_cldr/ga.js +212 -101
  25. data/lib/assets/javascripts/twitter_cldr/gl.js +209 -98
  26. data/lib/assets/javascripts/twitter_cldr/he.js +209 -98
  27. data/lib/assets/javascripts/twitter_cldr/hi.js +209 -98
  28. data/lib/assets/javascripts/twitter_cldr/hr.js +209 -98
  29. data/lib/assets/javascripts/twitter_cldr/hu.js +210 -99
  30. data/lib/assets/javascripts/twitter_cldr/id.js +209 -98
  31. data/lib/assets/javascripts/twitter_cldr/is.js +209 -98
  32. data/lib/assets/javascripts/twitter_cldr/it.js +209 -98
  33. data/lib/assets/javascripts/twitter_cldr/ja.js +209 -98
  34. data/lib/assets/javascripts/twitter_cldr/ko.js +209 -98
  35. data/lib/assets/javascripts/twitter_cldr/lv.js +209 -98
  36. data/lib/assets/javascripts/twitter_cldr/msa.js +209 -98
  37. data/lib/assets/javascripts/twitter_cldr/nl.js +209 -98
  38. data/lib/assets/javascripts/twitter_cldr/no.js +209 -98
  39. data/lib/assets/javascripts/twitter_cldr/pl.js +209 -98
  40. data/lib/assets/javascripts/twitter_cldr/pt.js +209 -98
  41. data/lib/assets/javascripts/twitter_cldr/ro.js +209 -98
  42. data/lib/assets/javascripts/twitter_cldr/ru.js +209 -98
  43. data/lib/assets/javascripts/twitter_cldr/sk.js +209 -98
  44. data/lib/assets/javascripts/twitter_cldr/sq.js +212 -101
  45. data/lib/assets/javascripts/twitter_cldr/sr.js +209 -98
  46. data/lib/assets/javascripts/twitter_cldr/sv.js +209 -98
  47. data/lib/assets/javascripts/twitter_cldr/ta.js +209 -98
  48. data/lib/assets/javascripts/twitter_cldr/th.js +209 -98
  49. data/lib/assets/javascripts/twitter_cldr/tr.js +209 -98
  50. data/lib/assets/javascripts/twitter_cldr/uk.js +209 -98
  51. data/lib/assets/javascripts/twitter_cldr/ur.js +210 -99
  52. data/lib/assets/javascripts/twitter_cldr/vi.js +209 -98
  53. data/lib/assets/javascripts/twitter_cldr/zh-cn.js +209 -98
  54. data/lib/assets/javascripts/twitter_cldr/zh-tw.js +209 -98
  55. data/lib/twitter_cldr/js/compiler.rb +24 -5
  56. data/lib/twitter_cldr/js/mustache/bundle.coffee +6 -0
  57. data/lib/twitter_cldr/js/mustache/parsers/number_parser.coffee +103 -0
  58. data/lib/twitter_cldr/js/renderers/base.rb +2 -0
  59. data/lib/twitter_cldr/js/renderers/parsers/number_parser.rb +34 -0
  60. data/lib/twitter_cldr/js/renderers.rb +4 -0
  61. data/lib/twitter_cldr/js/tasks/tasks.rb +15 -3
  62. data/lib/twitter_cldr/js/version.rb +2 -2
  63. data/lib/twitter_cldr/js.rb +0 -3
  64. data/spec/js/parsers/number_parser.spec.js +211 -0
  65. data/spec/js/utilities.spec.js +0 -3
  66. data/twitter_cldr_js.gemspec +7 -6
  67. metadata +25 -47
@@ -0,0 +1,1994 @@
1
+
2
+ /*
3
+ // Copyright 2012 Twitter, Inc
4
+ // http://www.apache.org/licenses/LICENSE-2.0
5
+
6
+ // TwitterCLDR (JavaScript) v2.2.1
7
+ // Authors: Cameron Dutro [@camertron]
8
+ Kirill Lashuk [@KL_7]
9
+ portions by Sven Fuchs [@svenfuchs]
10
+ // Homepage: https://twitter.com
11
+ // Description: Provides date, time, number, and list formatting functionality for various Twitter-supported locales in Javascript.
12
+ */
13
+
14
+
15
+ /*-module-*/
16
+ /*_lib/twitter_cldr_*/
17
+
18
+ (function() {
19
+ var TwitterCldr, key, obj, root, _ref, _ref1, _ref2, _ref3,
20
+ __hasProp = {}.hasOwnProperty,
21
+ __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
22
+
23
+ TwitterCldr = {};
24
+
25
+ TwitterCldr.is_rtl = false;
26
+
27
+ TwitterCldr.Utilities = (function() {
28
+ function Utilities() {}
29
+
30
+ Utilities.from_char_code = function(code_point) {
31
+ if (code_point > 0xFFFF) {
32
+ code_point -= 0x10000;
33
+ return String.fromCharCode(0xD800 + (code_point >> 10), 0xDC00 + (code_point & 0x3FF));
34
+ } else {
35
+ return String.fromCharCode(code_point);
36
+ }
37
+ };
38
+
39
+ Utilities.char_code_at = function(str, idx) {
40
+ var code, end, hi, li, low, surrogatePairs;
41
+ str += '';
42
+ end = str.length;
43
+ surrogatePairs = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
44
+ while (surrogatePairs.exec(str) !== null) {
45
+ li = surrogatePairs.lastIndex;
46
+ if (li - 2 < idx) {
47
+ idx += 1;
48
+ } else {
49
+ break;
50
+ }
51
+ }
52
+ if ((idx >= end) || (idx < 0)) {
53
+ return NaN;
54
+ }
55
+ code = str.charCodeAt(idx);
56
+ if ((0xD800 <= code) && (code <= 0xDBFF)) {
57
+ hi = code;
58
+ low = str.charCodeAt(idx + 1);
59
+ return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;
60
+ }
61
+ return code;
62
+ };
63
+
64
+ Utilities.unpack_string = function(str) {
65
+ var code_point, idx, result, _i, _ref;
66
+ result = [];
67
+ for (idx = _i = 0, _ref = str.length; 0 <= _ref ? _i < _ref : _i > _ref; idx = 0 <= _ref ? ++_i : --_i) {
68
+ code_point = this.char_code_at(str, idx);
69
+ if (!code_point) {
70
+ break;
71
+ }
72
+ result.push(code_point);
73
+ }
74
+ return result;
75
+ };
76
+
77
+ Utilities.pack_array = function(char_arr) {
78
+ var cur_char;
79
+ return ((function() {
80
+ var _i, _len, _results;
81
+ _results = [];
82
+ for (_i = 0, _len = char_arr.length; _i < _len; _i++) {
83
+ cur_char = char_arr[_i];
84
+ _results.push(this.from_char_code(cur_char));
85
+ }
86
+ return _results;
87
+ }).call(this)).join("");
88
+ };
89
+
90
+ Utilities.arraycopy = function(orig, orig_index, dest, dest_index, length) {
91
+ var count, elem, _i, _len, _ref;
92
+ _ref = orig.slice(orig_index, orig_index + length);
93
+ for (count = _i = 0, _len = _ref.length; _i < _len; count = ++_i) {
94
+ elem = _ref[count];
95
+ dest[dest_index + count] = elem;
96
+ }
97
+ };
98
+
99
+ Utilities.max = function(arr) {
100
+ var elem, i, max, start_index, _i, _j, _len, _ref;
101
+ max = null;
102
+ for (start_index = _i = 0, _len = arr.length; _i < _len; start_index = ++_i) {
103
+ elem = arr[start_index];
104
+ if (elem != null) {
105
+ max = elem;
106
+ break;
107
+ }
108
+ }
109
+ for (i = _j = start_index, _ref = arr.length; start_index <= _ref ? _j <= _ref : _j >= _ref; i = start_index <= _ref ? ++_j : --_j) {
110
+ if (arr[i] > max) {
111
+ max = arr[i];
112
+ }
113
+ }
114
+ return max;
115
+ };
116
+
117
+ Utilities.min = function(arr) {
118
+ var elem, i, min, start_index, _i, _j, _len, _ref;
119
+ min = null;
120
+ for (start_index = _i = 0, _len = arr.length; _i < _len; start_index = ++_i) {
121
+ elem = arr[start_index];
122
+ if (elem != null) {
123
+ min = elem;
124
+ break;
125
+ }
126
+ }
127
+ for (i = _j = start_index, _ref = arr.length; start_index <= _ref ? _j <= _ref : _j >= _ref; i = start_index <= _ref ? ++_j : --_j) {
128
+ if (arr[i] < min) {
129
+ min = arr[i];
130
+ }
131
+ }
132
+ return min;
133
+ };
134
+
135
+ Utilities.is_even = function(num) {
136
+ return num % 2 === 0;
137
+ };
138
+
139
+ Utilities.is_odd = function(num) {
140
+ return num % 2 === 1;
141
+ };
142
+
143
+ return Utilities;
144
+
145
+ })();
146
+
147
+ TwitterCldr.PluralRules = (function() {
148
+ function PluralRules() {}
149
+
150
+ PluralRules.rules = {"keys": ["one","other"], "rule": function(n) { return (function() { if (n == 1) { return "one" } else { return "other" } })(); }};
151
+
152
+ PluralRules.all = function() {
153
+ return this.rules.keys;
154
+ };
155
+
156
+ PluralRules.rule_for = function(number) {
157
+ var error;
158
+ try {
159
+ return this.rules.rule(number);
160
+ } catch (_error) {
161
+ error = _error;
162
+ return "other";
163
+ }
164
+ };
165
+
166
+ return PluralRules;
167
+
168
+ })();
169
+
170
+ TwitterCldr.TimespanFormatter = (function() {
171
+ function TimespanFormatter() {
172
+ this.approximate_multiplier = 0.75;
173
+ this.default_type = "default";
174
+ this.tokens = {"ago":{"second":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" second ago","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" seconds ago","type":"plaintext"}]}},"minute":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" minute ago","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" minutes ago","type":"plaintext"}]}},"hour":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" hour ago","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" hours ago","type":"plaintext"}]}},"day":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" day ago","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" days ago","type":"plaintext"}]}},"week":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" week ago","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" weeks ago","type":"plaintext"}]}},"month":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" month ago","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" months ago","type":"plaintext"}]}},"year":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" year ago","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" years ago","type":"plaintext"}]}}},"until":{"second":{"default":{"one":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" second","type":"plaintext"}],"other":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" seconds","type":"plaintext"}]}},"minute":{"default":{"one":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" minute","type":"plaintext"}],"other":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" minutes","type":"plaintext"}]}},"hour":{"default":{"one":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" hour","type":"plaintext"}],"other":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" hours","type":"plaintext"}]}},"day":{"default":{"one":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" day","type":"plaintext"}],"other":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" days","type":"plaintext"}]}},"week":{"default":{"one":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" week","type":"plaintext"}],"other":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" weeks","type":"plaintext"}]}},"month":{"default":{"one":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" month","type":"plaintext"}],"other":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" months","type":"plaintext"}]}},"year":{"default":{"one":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" year","type":"plaintext"}],"other":[{"value":"In ","type":"plaintext"},{"value":"{0}","type":"placeholder"},{"value":" years","type":"plaintext"}]}}},"none":{"second":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" second","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" seconds","type":"plaintext"}]},"short":{"one":[{"value":"{0}","type":"placeholder"},{"value":" sec","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" secs","type":"plaintext"}]}},"minute":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" minute","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" minutes","type":"plaintext"}]},"short":{"one":[{"value":"{0}","type":"placeholder"},{"value":" min","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" mins","type":"plaintext"}]}},"hour":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" hour","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" hours","type":"plaintext"}]},"short":{"one":[{"value":"{0}","type":"placeholder"},{"value":" hr","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" hrs","type":"plaintext"}]}},"day":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" day","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" days","type":"plaintext"}]},"short":{"one":[{"value":"{0}","type":"placeholder"},{"value":" day","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" days","type":"plaintext"}]}},"week":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" week","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" weeks","type":"plaintext"}]},"short":{"one":[{"value":"{0}","type":"placeholder"},{"value":" wk","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" wks","type":"plaintext"}]}},"month":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" month","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" months","type":"plaintext"}]},"short":{"one":[{"value":"{0}","type":"placeholder"},{"value":" mth","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" mths","type":"plaintext"}]}},"year":{"default":{"one":[{"value":"{0}","type":"placeholder"},{"value":" year","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" years","type":"plaintext"}]},"short":{"one":[{"value":"{0}","type":"placeholder"},{"value":" yr","type":"plaintext"}],"other":[{"value":"{0}","type":"placeholder"},{"value":" yrs","type":"plaintext"}]}}}};
175
+ this.time_in_seconds = {
176
+ "second": 1,
177
+ "minute": 60,
178
+ "hour": 3600,
179
+ "day": 86400,
180
+ "week": 604800,
181
+ "month": 2629743.83,
182
+ "year": 31556926
183
+ };
184
+ }
185
+
186
+ TimespanFormatter.prototype.format = function(seconds, fmt_options) {
187
+ var key, number, obj, options, strings, token;
188
+ if (fmt_options == null) {
189
+ fmt_options = {};
190
+ }
191
+ options = {};
192
+ for (key in fmt_options) {
193
+ obj = fmt_options[key];
194
+ options[key] = obj;
195
+ }
196
+ options["direction"] || (options["direction"] = (seconds < 0 ? "ago" : "until"));
197
+ if (options["unit"] === null || options["unit"] === void 0) {
198
+ options["unit"] = this.calculate_unit(Math.abs(seconds), options);
199
+ }
200
+ options["type"] || (options["type"] = this.default_type);
201
+ options["number"] = this.calculate_time(Math.abs(seconds), options["unit"]);
202
+ number = this.calculate_time(Math.abs(seconds), options["unit"]);
203
+ options["rule"] = TwitterCldr.PluralRules.rule_for(number);
204
+ strings = (function() {
205
+ var _i, _len, _ref, _results;
206
+ _ref = this.tokens[options["direction"]][options["unit"]][options["type"]][options["rule"]];
207
+ _results = [];
208
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
209
+ token = _ref[_i];
210
+ _results.push(token.value);
211
+ }
212
+ return _results;
213
+ }).call(this);
214
+ return strings.join("").replace(/\{[0-9]\}/, number.toString());
215
+ };
216
+
217
+ TimespanFormatter.prototype.calculate_unit = function(seconds, unit_options) {
218
+ var key, multiplier, obj, options;
219
+ if (unit_options == null) {
220
+ unit_options = {};
221
+ }
222
+ options = {};
223
+ for (key in unit_options) {
224
+ obj = unit_options[key];
225
+ options[key] = obj;
226
+ }
227
+ if (options.approximate == null) {
228
+ options["approximate"] = false;
229
+ }
230
+ multiplier = options.approximate ? this.approximate_multiplier : 1;
231
+ if (seconds < (this.time_in_seconds.minute * multiplier)) {
232
+ return "second";
233
+ } else if (seconds < (this.time_in_seconds.hour * multiplier)) {
234
+ return "minute";
235
+ } else if (seconds < (this.time_in_seconds.day * multiplier)) {
236
+ return "hour";
237
+ } else if (seconds < (this.time_in_seconds.week * multiplier)) {
238
+ return "day";
239
+ } else if (seconds < (this.time_in_seconds.month * multiplier)) {
240
+ return "week";
241
+ } else if (seconds < (this.time_in_seconds.year * multiplier)) {
242
+ return "month";
243
+ } else {
244
+ return "year";
245
+ }
246
+ };
247
+
248
+ TimespanFormatter.prototype.calculate_time = function(seconds, unit) {
249
+ return Math.round(seconds / this.time_in_seconds[unit]);
250
+ };
251
+
252
+ return TimespanFormatter;
253
+
254
+ })();
255
+
256
+ TwitterCldr.DateTimeFormatter = (function() {
257
+ function DateTimeFormatter() {
258
+ this.tokens = {"date_time":{"default":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"}],"full":[{"value":"EEEE","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"zzzz","type":"pattern"}],"long":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"z","type":"pattern"}],"medium":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"}],"short":[{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"}],"additional":{"EHm":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"}],"EHms":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"}],"Ed":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"d","type":"pattern"}],"Ehm":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"Ehms":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"Gy":[{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"G","type":"pattern"}],"GyMMM":[{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"G","type":"pattern"}],"GyMMMEd":[{"value":"E","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"G","type":"pattern"}],"GyMMMd":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"G","type":"pattern"}],"H":[{"value":"HH","type":"pattern"}],"Hm":[{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"}],"Hms":[{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"}],"M":[{"value":"LL","type":"pattern"}],"MEd":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"}],"MMM":[{"value":"LLL","type":"pattern"}],"MMMEd":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"}],"MMMMd":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMMM","type":"pattern"}],"MMMd":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"}],"MMdd":[{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"}],"Md":[{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"}],"d":[{"value":"d","type":"pattern"}],"h":[{"value":"h","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"hm":[{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"hms":[{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"ms":[{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"}],"y":[{"value":"y","type":"pattern"}],"yM":[{"value":"MM","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"y","type":"pattern"}],"yMEd":[{"value":"E","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"y","type":"pattern"}],"yMMM":[{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"yMMMEd":[{"value":"E","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"yMMMM":[{"value":"MMMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"yMMMd":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"yMd":[{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"y","type":"pattern"}],"yQQQ":[{"value":"QQQ","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"yQQQQ":[{"value":"QQQQ","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}]}},"time":{"default":[{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"}],"full":[{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"zzzz","type":"pattern"}],"long":[{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"z","type":"pattern"}],"medium":[{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"}],"short":[{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"}],"additional":{"EHm":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"}],"EHms":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"}],"Ed":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"d","type":"pattern"}],"Ehm":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"Ehms":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"Gy":[{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"G","type":"pattern"}],"GyMMM":[{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"G","type":"pattern"}],"GyMMMEd":[{"value":"E","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"G","type":"pattern"}],"GyMMMd":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"G","type":"pattern"}],"H":[{"value":"HH","type":"pattern"}],"Hm":[{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"}],"Hms":[{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"}],"M":[{"value":"LL","type":"pattern"}],"MEd":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"}],"MMM":[{"value":"LLL","type":"pattern"}],"MMMEd":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"}],"MMMMd":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMMM","type":"pattern"}],"MMMd":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"}],"MMdd":[{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"}],"Md":[{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"}],"d":[{"value":"d","type":"pattern"}],"h":[{"value":"h","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"hm":[{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"hms":[{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"ms":[{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"}],"y":[{"value":"y","type":"pattern"}],"yM":[{"value":"MM","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"y","type":"pattern"}],"yMEd":[{"value":"E","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"y","type":"pattern"}],"yMMM":[{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"yMMMEd":[{"value":"E","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"yMMMM":[{"value":"MMMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"yMMMd":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"yMd":[{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"y","type":"pattern"}],"yQQQ":[{"value":"QQQ","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"yQQQQ":[{"value":"QQQQ","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}]}},"date":{"default":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"full":[{"value":"EEEE","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"long":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"medium":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"short":[{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"y","type":"pattern"}],"additional":{"EHm":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"}],"EHms":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"}],"Ed":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"d","type":"pattern"}],"Ehm":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"Ehms":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"Gy":[{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"G","type":"pattern"}],"GyMMM":[{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"G","type":"pattern"}],"GyMMMEd":[{"value":"E","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"G","type":"pattern"}],"GyMMMd":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"G","type":"pattern"}],"H":[{"value":"HH","type":"pattern"}],"Hm":[{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"}],"Hms":[{"value":"HH","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"}],"M":[{"value":"LL","type":"pattern"}],"MEd":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"}],"MMM":[{"value":"LLL","type":"pattern"}],"MMMEd":[{"value":"E","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"}],"MMMMd":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMMM","type":"pattern"}],"MMMd":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"}],"MMdd":[{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"}],"Md":[{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"}],"d":[{"value":"d","type":"pattern"}],"h":[{"value":"h","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"hm":[{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"hms":[{"value":"h","type":"pattern"},{"value":":","type":"plaintext"},{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"a","type":"pattern"}],"ms":[{"value":"mm","type":"pattern"},{"value":":","type":"plaintext"},{"value":"ss","type":"pattern"}],"y":[{"value":"y","type":"pattern"}],"yM":[{"value":"MM","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"y","type":"pattern"}],"yMEd":[{"value":"E","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"y","type":"pattern"}],"yMMM":[{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"yMMMEd":[{"value":"E","type":"pattern"},{"value":", ","type":"plaintext"},{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"yMMMM":[{"value":"MMMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"yMMMd":[{"value":"d","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"MMM","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"yMd":[{"value":"dd","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"MM","type":"pattern"},{"value":"/","type":"plaintext"},{"value":"y","type":"pattern"}],"yQQQ":[{"value":"QQQ","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}],"yQQQQ":[{"value":"QQQQ","type":"pattern"},{"value":" ","type":"plaintext"},{"value":"y","type":"pattern"}]}}};
259
+ this.weekday_keys = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
260
+ this.methods = {
261
+ 'G': 'era',
262
+ 'y': 'year',
263
+ 'Y': 'year_of_week_of_year',
264
+ 'Q': 'quarter',
265
+ 'q': 'quarter_stand_alone',
266
+ 'M': 'month',
267
+ 'L': 'month_stand_alone',
268
+ 'w': 'week_of_year',
269
+ 'W': 'week_of_month',
270
+ 'd': 'day',
271
+ 'D': 'day_of_month',
272
+ 'F': 'day_of_week_in_month',
273
+ 'E': 'weekday',
274
+ 'e': 'weekday_local',
275
+ 'c': 'weekday_local_stand_alone',
276
+ 'a': 'period',
277
+ 'h': 'hour',
278
+ 'H': 'hour',
279
+ 'K': 'hour',
280
+ 'k': 'hour',
281
+ 'm': 'minute',
282
+ 's': 'second',
283
+ 'S': 'second_fraction',
284
+ 'z': 'timezone',
285
+ 'Z': 'timezone',
286
+ 'v': 'timezone_generic_non_location',
287
+ 'V': 'timezone_metazone'
288
+ };
289
+ }
290
+
291
+ DateTimeFormatter.prototype.format = function(obj, options) {
292
+ var format_token, token, tokens;
293
+ format_token = (function(_this) {
294
+ return function(token) {
295
+ var result;
296
+ result = "";
297
+ switch (token.type) {
298
+ case "pattern":
299
+ return _this.result_for_token(token, obj);
300
+ default:
301
+ if (token.value.length > 0 && token.value[0] === "'" && token.value[token.value.length - 1] === "'") {
302
+ return token.value.substring(1, token.value.length - 1);
303
+ } else {
304
+ return token.value;
305
+ }
306
+ }
307
+ };
308
+ })(this);
309
+ tokens = this.get_tokens(obj, options);
310
+ return ((function() {
311
+ var _i, _len, _results;
312
+ _results = [];
313
+ for (_i = 0, _len = tokens.length; _i < _len; _i++) {
314
+ token = tokens[_i];
315
+ _results.push(format_token(token));
316
+ }
317
+ return _results;
318
+ })()).join("");
319
+ };
320
+
321
+ DateTimeFormatter.prototype.get_tokens = function(obj, options) {
322
+ var format, type;
323
+ format = options.format || "date_time";
324
+ type = options.type || "default";
325
+ if (format === "additional") {
326
+ return this.tokens["date_time"][format][this.additional_format_selector().find_closest(options.type)];
327
+ } else {
328
+ return this.tokens[format][type];
329
+ }
330
+ };
331
+
332
+ DateTimeFormatter.prototype.result_for_token = function(token, date) {
333
+ return this[this.methods[token.value[0]]](date, token.value, token.value.length);
334
+ };
335
+
336
+ DateTimeFormatter.prototype.additional_format_selector = function() {
337
+ return new TwitterCldr.AdditionalDateFormatSelector(this.tokens["date_time"]["additional"]);
338
+ };
339
+
340
+ DateTimeFormatter.additional_formats = function() {
341
+ return new TwitterCldr.DateTimeFormatter().additional_format_selector().patterns();
342
+ };
343
+
344
+ DateTimeFormatter.prototype.era = function(date, pattern, length) {
345
+ var choices, index, result;
346
+ switch (length) {
347
+ case 0:
348
+ choices = ["", ""];
349
+ break;
350
+ case 1:
351
+ case 2:
352
+ case 3:
353
+ choices = TwitterCldr.Calendar.calendar["eras"]["abbr"];
354
+ break;
355
+ default:
356
+ choices = TwitterCldr.Calendar.calendar["eras"]["name"];
357
+ }
358
+ index = date.getFullYear() < 0 ? 0 : 1;
359
+ result = choices[index];
360
+ if (result != null) {
361
+ return result;
362
+ } else {
363
+ return this.era(date, pattern.slice(0, -1), length - 1);
364
+ }
365
+ };
366
+
367
+ DateTimeFormatter.prototype.year = function(date, pattern, length) {
368
+ var year;
369
+ year = date.getFullYear().toString();
370
+ if (length === 2) {
371
+ if (year.length !== 1) {
372
+ year = year.slice(-2);
373
+ }
374
+ }
375
+ if (length > 1) {
376
+ year = ("0000" + year).slice(-length);
377
+ }
378
+ return year;
379
+ };
380
+
381
+ DateTimeFormatter.prototype.year_of_week_of_year = function(date, pattern, length) {
382
+ throw 'not implemented';
383
+ };
384
+
385
+ DateTimeFormatter.prototype.day_of_week_in_month = function(date, pattern, length) {
386
+ throw 'not implemented';
387
+ };
388
+
389
+ DateTimeFormatter.prototype.quarter = function(date, pattern, length) {
390
+ var quarter;
391
+ quarter = ((date.getMonth() / 3) | 0) + 1;
392
+ switch (length) {
393
+ case 1:
394
+ return quarter.toString();
395
+ case 2:
396
+ return ("0000" + quarter.toString()).slice(-length);
397
+ case 3:
398
+ return TwitterCldr.Calendar.calendar.quarters.format.abbreviated[quarter];
399
+ case 4:
400
+ return TwitterCldr.Calendar.calendar.quarters.format.wide[quarter];
401
+ }
402
+ };
403
+
404
+ DateTimeFormatter.prototype.quarter_stand_alone = function(date, pattern, length) {
405
+ var quarter;
406
+ quarter = (date.getMonth() - 1) / 3 + 1;
407
+ switch (length) {
408
+ case 1:
409
+ return quarter.toString();
410
+ case 2:
411
+ return ("0000" + quarter.toString()).slice(-length);
412
+ case 3:
413
+ throw 'not yet implemented (requires cldr\'s "multiple inheritance")';
414
+ break;
415
+ case 4:
416
+ throw 'not yet implemented (requires cldr\'s "multiple inheritance")';
417
+ break;
418
+ case 5:
419
+ return TwitterCldr.Calendar.calendar.quarters['stand-alone'].narrow[quarter];
420
+ }
421
+ };
422
+
423
+ DateTimeFormatter.prototype.month = function(date, pattern, length) {
424
+ var month_str;
425
+ month_str = (date.getMonth() + 1).toString();
426
+ switch (length) {
427
+ case 1:
428
+ return month_str;
429
+ case 2:
430
+ return ("0000" + month_str).slice(-length);
431
+ case 3:
432
+ return TwitterCldr.Calendar.calendar.months.format.abbreviated[month_str];
433
+ case 4:
434
+ return TwitterCldr.Calendar.calendar.months.format.wide[month_str];
435
+ case 5:
436
+ throw 'not yet implemented (requires cldr\'s "multiple inheritance")';
437
+ break;
438
+ default:
439
+ throw "Unknown date format";
440
+ }
441
+ };
442
+
443
+ DateTimeFormatter.prototype.month_stand_alone = function(date, pattern, length) {
444
+ var month_str;
445
+ month_str = (date.getMonth() + 1).toString();
446
+ switch (length) {
447
+ case 1:
448
+ return month_str;
449
+ case 2:
450
+ return ("0000" + month_str).slice(-length);
451
+ case 3:
452
+ return TwitterCldr.Calendar.calendar.months['stand-alone'].abbreviated[month_str];
453
+ case 4:
454
+ return TwitterCldr.Calendar.calendar.months['stand-alone'].wide[month_str];
455
+ case 5:
456
+ return TwitterCldr.Calendar.calendar.months['stand-alone'].narrow[month_str];
457
+ default:
458
+ throw "Unknown date format";
459
+ }
460
+ };
461
+
462
+ DateTimeFormatter.prototype.day = function(date, pattern, length) {
463
+ switch (length) {
464
+ case 1:
465
+ return date.getDate().toString();
466
+ case 2:
467
+ return ("0000" + date.getDate().toString()).slice(-length);
468
+ }
469
+ };
470
+
471
+ DateTimeFormatter.prototype.weekday = function(date, pattern, length) {
472
+ var key;
473
+ key = this.weekday_keys[date.getDay()];
474
+ switch (length) {
475
+ case 1:
476
+ case 2:
477
+ case 3:
478
+ return TwitterCldr.Calendar.calendar.days.format.abbreviated[key];
479
+ case 4:
480
+ return TwitterCldr.Calendar.calendar.days.format.wide[key];
481
+ case 5:
482
+ return TwitterCldr.Calendar.calendar.days['stand-alone'].narrow[key];
483
+ }
484
+ };
485
+
486
+ DateTimeFormatter.prototype.weekday_local = function(date, pattern, length) {
487
+ var day;
488
+ switch (length) {
489
+ case 1:
490
+ case 2:
491
+ day = date.getDay();
492
+ if (day === 0) {
493
+ return "7";
494
+ } else {
495
+ return day.toString();
496
+ }
497
+ break;
498
+ default:
499
+ return this.weekday(date, pattern, length);
500
+ }
501
+ };
502
+
503
+ DateTimeFormatter.prototype.weekday_local_stand_alone = function(date, pattern, length) {
504
+ switch (length) {
505
+ case 1:
506
+ return this.weekday_local(date, pattern, length);
507
+ default:
508
+ return this.weekday(date, pattern, length);
509
+ }
510
+ };
511
+
512
+ DateTimeFormatter.prototype.period = function(time, pattern, length) {
513
+ if (time.getHours() > 11) {
514
+ return TwitterCldr.Calendar.calendar.periods.format.wide["pm"];
515
+ } else {
516
+ return TwitterCldr.Calendar.calendar.periods.format.wide["am"];
517
+ }
518
+ };
519
+
520
+ DateTimeFormatter.prototype.hour = function(time, pattern, length) {
521
+ var hour;
522
+ hour = time.getHours();
523
+ switch (pattern[0]) {
524
+ case 'h':
525
+ if (hour > 12) {
526
+ hour = hour - 12;
527
+ } else if (hour === 0) {
528
+ hour = 12;
529
+ }
530
+ break;
531
+ case 'K':
532
+ if (hour > 11) {
533
+ hour = hour - 12;
534
+ }
535
+ break;
536
+ case 'k':
537
+ if (hour === 0) {
538
+ hour = 24;
539
+ }
540
+ }
541
+ if (length === 1) {
542
+ return hour.toString();
543
+ } else {
544
+ return ("000000" + hour.toString()).slice(-length);
545
+ }
546
+ };
547
+
548
+ DateTimeFormatter.prototype.minute = function(time, pattern, length) {
549
+ if (length === 1) {
550
+ return time.getMinutes().toString();
551
+ } else {
552
+ return ("000000" + time.getMinutes().toString()).slice(-length);
553
+ }
554
+ };
555
+
556
+ DateTimeFormatter.prototype.second = function(time, pattern, length) {
557
+ if (length === 1) {
558
+ return time.getSeconds().toString();
559
+ } else {
560
+ return ("000000" + time.getSeconds().toString()).slice(-length);
561
+ }
562
+ };
563
+
564
+ DateTimeFormatter.prototype.second_fraction = function(time, pattern, length) {
565
+ if (length > 6) {
566
+ throw 'can not use the S format with more than 6 digits';
567
+ }
568
+ return ("000000" + Math.round(Math.pow(time.getMilliseconds() * 100.0, 6 - length)).toString()).slice(-length);
569
+ };
570
+
571
+ DateTimeFormatter.prototype.timezone = function(time, pattern, length) {
572
+ var hours, minutes, offset, offsetString, sign;
573
+ offset = time.getTimezoneOffset();
574
+ hours = ("00" + (Math.abs(offset) / 60).toString()).slice(-2);
575
+ minutes = ("00" + (Math.abs(offset) % 60).toString()).slice(-2);
576
+ sign = offset > 0 ? "-" : "+";
577
+ offsetString = sign + hours + ":" + minutes;
578
+ switch (length) {
579
+ case 1:
580
+ case 2:
581
+ case 3:
582
+ return offsetString;
583
+ default:
584
+ return "UTC" + offsetString;
585
+ }
586
+ };
587
+
588
+ DateTimeFormatter.prototype.timezone_generic_non_location = function(time, pattern, length) {
589
+ throw 'not yet implemented (requires timezone translation data")';
590
+ };
591
+
592
+ return DateTimeFormatter;
593
+
594
+ })();
595
+
596
+ TwitterCldr.AdditionalDateFormatSelector = (function() {
597
+ function AdditionalDateFormatSelector(pattern_hash) {
598
+ this.pattern_hash = pattern_hash;
599
+ }
600
+
601
+ AdditionalDateFormatSelector.prototype.find_closest = function(goal_pattern) {
602
+ var key, min_key, min_rank, rank, ranks;
603
+ if ((goal_pattern == null) || goal_pattern.trim().length === 0) {
604
+ return null;
605
+ } else {
606
+ ranks = this.rank(goal_pattern);
607
+ min_rank = 100;
608
+ min_key = null;
609
+ for (key in ranks) {
610
+ rank = ranks[key];
611
+ if (rank < min_rank) {
612
+ min_rank = rank;
613
+ min_key = key;
614
+ }
615
+ }
616
+ return min_key;
617
+ }
618
+ };
619
+
620
+ AdditionalDateFormatSelector.prototype.patterns = function() {
621
+ var key, _results;
622
+ _results = [];
623
+ for (key in this.pattern_hash) {
624
+ _results.push(key);
625
+ }
626
+ return _results;
627
+ };
628
+
629
+ AdditionalDateFormatSelector.prototype.separate = function(pattern_key) {
630
+ var cur_char, last_char, result, _i, _len;
631
+ last_char = "";
632
+ result = [];
633
+ for (_i = 0, _len = pattern_key.length; _i < _len; _i++) {
634
+ cur_char = pattern_key[_i];
635
+ if (cur_char === last_char) {
636
+ result[result.length - 1] += cur_char;
637
+ } else {
638
+ result.push(cur_char);
639
+ }
640
+ last_char = cur_char;
641
+ }
642
+ return result;
643
+ };
644
+
645
+ AdditionalDateFormatSelector.prototype.all_separated_patterns = function() {
646
+ var key, _results;
647
+ _results = [];
648
+ for (key in this.pattern_hash) {
649
+ _results.push(this.separate(key));
650
+ }
651
+ return _results;
652
+ };
653
+
654
+ AdditionalDateFormatSelector.prototype.score = function(entities, goal_entities) {
655
+ var score;
656
+ score = this.exist_score(entities, goal_entities) * 2;
657
+ score += this.position_score(entities, goal_entities);
658
+ return score + this.count_score(entities, goal_entities);
659
+ };
660
+
661
+ AdditionalDateFormatSelector.prototype.position_score = function(entities, goal_entities) {
662
+ var found, goal_entity, index, sum;
663
+ sum = 0;
664
+ for (index in goal_entities) {
665
+ goal_entity = goal_entities[index];
666
+ found = entities.indexOf(goal_entity);
667
+ if (found > -1) {
668
+ sum += Math.abs(found - index);
669
+ }
670
+ }
671
+ return sum;
672
+ };
673
+
674
+ AdditionalDateFormatSelector.prototype.exist_score = function(entities, goal_entities) {
675
+ var count, entity, goal_entity, _i, _len;
676
+ count = 0;
677
+ for (_i = 0, _len = goal_entities.length; _i < _len; _i++) {
678
+ goal_entity = goal_entities[_i];
679
+ if (!(((function() {
680
+ var _j, _len1, _results;
681
+ _results = [];
682
+ for (_j = 0, _len1 = entities.length; _j < _len1; _j++) {
683
+ entity = entities[_j];
684
+ if (entity[0] === goal_entity[0]) {
685
+ _results.push(entity);
686
+ }
687
+ }
688
+ return _results;
689
+ })()).length > 0)) {
690
+ count += 1;
691
+ }
692
+ }
693
+ return count;
694
+ };
695
+
696
+ AdditionalDateFormatSelector.prototype.count_score = function(entities, goal_entities) {
697
+ var entity, found_entity, goal_entity, sum, _i, _len;
698
+ sum = 0;
699
+ for (_i = 0, _len = goal_entities.length; _i < _len; _i++) {
700
+ goal_entity = goal_entities[_i];
701
+ found_entity = ((function() {
702
+ var _j, _len1, _results;
703
+ _results = [];
704
+ for (_j = 0, _len1 = entities.length; _j < _len1; _j++) {
705
+ entity = entities[_j];
706
+ if (entity[0] === goal_entity[0]) {
707
+ _results.push(entity);
708
+ }
709
+ }
710
+ return _results;
711
+ })())[0];
712
+ if (found_entity != null) {
713
+ sum += Math.abs(found_entity.length - goal_entity.length);
714
+ }
715
+ }
716
+ return sum;
717
+ };
718
+
719
+ AdditionalDateFormatSelector.prototype.rank = function(goal_pattern) {
720
+ var result, separated_goal_pattern, separated_pattern, _i, _len, _ref;
721
+ separated_goal_pattern = this.separate(goal_pattern);
722
+ result = {};
723
+ _ref = this.all_separated_patterns();
724
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
725
+ separated_pattern = _ref[_i];
726
+ result[separated_pattern.join("")] = this.score(separated_pattern, separated_goal_pattern);
727
+ }
728
+ return result;
729
+ };
730
+
731
+ return AdditionalDateFormatSelector;
732
+
733
+ })();
734
+
735
+ TwitterCldr.NumberFormatter = (function() {
736
+ function NumberFormatter() {
737
+ this.all_tokens = {"decimal":{"positive":["","#,##0.###"],"negative":["-","#,##0.###"]},"percent":{"positive":["","#,##0","%"],"negative":["-","#,##0","%"]},"currency":{"positive":["¤","#,##0.00"],"negative":["-¤","#,##0.00"]},"short_decimal":{"positive":{"1000":["","0","K"],"10000":["","00","K"],"100000":["","000","K"],"1000000":["","0","M"],"10000000":["","00","M"],"100000000":["","000","M"],"1000000000":["","0","B"],"10000000000":["","00","B"],"100000000000":["","000","B"],"1000000000000":["","0","T"],"10000000000000":["","00","T"],"100000000000000":["","000","T"]},"negative":{"1000":["-","0","K"],"10000":["-","00","K"],"100000":["-","000","K"],"1000000":["-","0","M"],"10000000":["-","00","M"],"100000000":["-","000","M"],"1000000000":["-","0","B"],"10000000000":["-","00","B"],"100000000000":["-","000","B"],"1000000000000":["-","0","T"],"10000000000000":["-","00","T"],"100000000000000":["-","000","T"]}},"long_decimal":{"positive":{"1000":["","0"," thousand"],"10000":["","00"," thousand"],"100000":["","000"," thousand"],"1000000":["","0"," million"],"10000000":["","00"," million"],"100000000":["","000"," million"],"1000000000":["","0"," billion"],"10000000000":["","00"," billion"],"100000000000":["","000"," billion"],"1000000000000":["","0"," trillion"],"10000000000000":["","00"," trillion"],"100000000000000":["","000"," trillion"]},"negative":{"1000":["-","0"," thousand"],"10000":["-","00"," thousand"],"100000":["-","000"," thousand"],"1000000":["-","0"," million"],"10000000":["-","00"," million"],"100000000":["-","000"," million"],"1000000000":["-","0"," billion"],"10000000000":["-","00"," billion"],"100000000000":["-","000"," billion"],"1000000000000":["-","0"," trillion"],"10000000000000":["-","00"," trillion"],"100000000000000":["-","000"," trillion"]}}};
738
+ this.tokens = [];
739
+ this.symbols = {"alias":"","decimal":".","exponential":"E","group":",","infinity":"∞","list":";","minus_sign":"-","nan":"NaN","per_mille":"‰","percent_sign":"%","plus_sign":"+"};
740
+ this.default_symbols = {
741
+ 'group': ',',
742
+ 'decimal': '.',
743
+ 'plus_sign': '+',
744
+ 'minus_sign': '-'
745
+ };
746
+ }
747
+
748
+ NumberFormatter.prototype.format = function(number, options) {
749
+ var fraction, fraction_format, integer_format, intg, key, opts, prefix, result, sign, suffix, val, _ref, _ref1;
750
+ if (options == null) {
751
+ options = {};
752
+ }
753
+ opts = this.default_format_options_for(number);
754
+ for (key in options) {
755
+ val = options[key];
756
+ opts[key] = options[key] != null ? options[key] : opts[key];
757
+ }
758
+ _ref = this.partition_tokens(this.get_tokens(number, opts)), prefix = _ref[0], suffix = _ref[1], integer_format = _ref[2], fraction_format = _ref[3];
759
+ number = this.transform_number(number);
760
+ _ref1 = this.parse_number(number, opts), intg = _ref1[0], fraction = _ref1[1];
761
+ result = integer_format.apply(parseFloat(intg), opts);
762
+ if (fraction) {
763
+ result += fraction_format.apply(fraction, opts);
764
+ }
765
+ sign = number < 0 && prefix !== "-" ? this.symbols.minus_sign || this.default_symbols.minus_sign : "";
766
+ return "" + prefix + result + suffix;
767
+ };
768
+
769
+ NumberFormatter.prototype.transform_number = function(number) {
770
+ return number;
771
+ };
772
+
773
+ NumberFormatter.prototype.partition_tokens = function(tokens) {
774
+ return [tokens[0] || "", tokens[2] || "", new TwitterCldr.NumberFormatter.IntegerHelper(tokens[1], this.symbols), new TwitterCldr.NumberFormatter.FractionHelper(tokens[1], this.symbols)];
775
+ };
776
+
777
+ NumberFormatter.prototype.parse_number = function(number, options) {
778
+ var precision;
779
+ if (options == null) {
780
+ options = {};
781
+ }
782
+ if (options.precision != null) {
783
+ precision = options.precision;
784
+ } else {
785
+ precision = this.precision_from(number);
786
+ }
787
+ number = this.round_to(number, precision);
788
+ return Math.abs(number).toFixed(precision).split(".");
789
+ };
790
+
791
+ NumberFormatter.prototype.precision_from = function(num) {
792
+ var parts;
793
+ parts = num.toString().split(".");
794
+ if (parts.length === 2) {
795
+ return parts[1].length;
796
+ } else {
797
+ return 0;
798
+ }
799
+ };
800
+
801
+ NumberFormatter.prototype.round_to = function(number, precision) {
802
+ var factor;
803
+ factor = Math.pow(10, precision);
804
+ return Math.round(number * factor) / factor;
805
+ };
806
+
807
+ NumberFormatter.prototype.get_tokens = function() {
808
+ throw "get_tokens() not implemented - use a derived class like PercentFormatter.";
809
+ };
810
+
811
+ return NumberFormatter;
812
+
813
+ })();
814
+
815
+ TwitterCldr.PercentFormatter = (function(_super) {
816
+ __extends(PercentFormatter, _super);
817
+
818
+ function PercentFormatter(options) {
819
+ if (options == null) {
820
+ options = {};
821
+ }
822
+ this.default_percent_sign = "%";
823
+ PercentFormatter.__super__.constructor.apply(this, arguments);
824
+ }
825
+
826
+ PercentFormatter.prototype.format = function(number, options) {
827
+ if (options == null) {
828
+ options = {};
829
+ }
830
+ return PercentFormatter.__super__.format.call(this, number, options).replace('¤', this.symbols.percent_sign || this.default_percent_sign);
831
+ };
832
+
833
+ PercentFormatter.prototype.default_format_options_for = function(number) {
834
+ return {
835
+ precision: 0
836
+ };
837
+ };
838
+
839
+ PercentFormatter.prototype.get_tokens = function(number, options) {
840
+ if (number < 0) {
841
+ return this.all_tokens.percent.negative;
842
+ } else {
843
+ return this.all_tokens.percent.positive;
844
+ }
845
+ };
846
+
847
+ return PercentFormatter;
848
+
849
+ })(TwitterCldr.NumberFormatter);
850
+
851
+ TwitterCldr.DecimalFormatter = (function(_super) {
852
+ __extends(DecimalFormatter, _super);
853
+
854
+ function DecimalFormatter() {
855
+ _ref = DecimalFormatter.__super__.constructor.apply(this, arguments);
856
+ return _ref;
857
+ }
858
+
859
+ DecimalFormatter.prototype.format = function(number, options) {
860
+ var error;
861
+ if (options == null) {
862
+ options = {};
863
+ }
864
+ try {
865
+ return DecimalFormatter.__super__.format.call(this, number, options);
866
+ } catch (_error) {
867
+ error = _error;
868
+ return number;
869
+ }
870
+ };
871
+
872
+ DecimalFormatter.prototype.default_format_options_for = function(number) {
873
+ return {
874
+ precision: this.precision_from(number)
875
+ };
876
+ };
877
+
878
+ DecimalFormatter.prototype.get_tokens = function(number, options) {
879
+ if (options == null) {
880
+ options = {};
881
+ }
882
+ if (number < 0) {
883
+ return this.all_tokens.decimal.negative;
884
+ } else {
885
+ return this.all_tokens.decimal.positive;
886
+ }
887
+ };
888
+
889
+ return DecimalFormatter;
890
+
891
+ })(TwitterCldr.NumberFormatter);
892
+
893
+ TwitterCldr.CurrencyFormatter = (function(_super) {
894
+ __extends(CurrencyFormatter, _super);
895
+
896
+ function CurrencyFormatter(options) {
897
+ if (options == null) {
898
+ options = {};
899
+ }
900
+ this.default_currency_symbol = "$";
901
+ this.default_precision = 2;
902
+ CurrencyFormatter.__super__.constructor.apply(this, arguments);
903
+ }
904
+
905
+ CurrencyFormatter.prototype.format = function(number, options) {
906
+ var currency, symbol;
907
+ if (options == null) {
908
+ options = {};
909
+ }
910
+ if (options.currency) {
911
+ if (TwitterCldr.Currencies != null) {
912
+ currency = TwitterCldr.Currencies.for_code(options.currency);
913
+ currency || (currency = {
914
+ symbol: options.currency
915
+ });
916
+ } else {
917
+ currency = {
918
+ symbol: options.currency
919
+ };
920
+ }
921
+ } else {
922
+ currency = {
923
+ symbol: this.default_currency_symbol
924
+ };
925
+ }
926
+ symbol = options.use_cldr_symbol ? currency.cldr_symbol : currency.symbol;
927
+ return CurrencyFormatter.__super__.format.call(this, number, options).replace('¤', symbol);
928
+ };
929
+
930
+ CurrencyFormatter.prototype.default_format_options_for = function(number) {
931
+ var precision;
932
+ precision = this.precision_from(number);
933
+ if (precision === 0) {
934
+ precision = this.default_precision;
935
+ }
936
+ return {
937
+ precision: precision
938
+ };
939
+ };
940
+
941
+ CurrencyFormatter.prototype.get_tokens = function(number, options) {
942
+ if (options == null) {
943
+ options = {};
944
+ }
945
+ if (number < 0) {
946
+ return this.all_tokens.currency.negative;
947
+ } else {
948
+ return this.all_tokens.currency.positive;
949
+ }
950
+ };
951
+
952
+ return CurrencyFormatter;
953
+
954
+ })(TwitterCldr.NumberFormatter);
955
+
956
+ TwitterCldr.AbbreviatedNumberFormatter = (function(_super) {
957
+ __extends(AbbreviatedNumberFormatter, _super);
958
+
959
+ function AbbreviatedNumberFormatter() {
960
+ _ref1 = AbbreviatedNumberFormatter.__super__.constructor.apply(this, arguments);
961
+ return _ref1;
962
+ }
963
+
964
+ AbbreviatedNumberFormatter.prototype.NUMBER_MAX = Math.pow(10, 15);
965
+
966
+ AbbreviatedNumberFormatter.prototype.NUMBER_MIN = 1000;
967
+
968
+ AbbreviatedNumberFormatter.prototype.default_format_options_for = function(number) {
969
+ return {
970
+ precision: this.precision_from(number)
971
+ };
972
+ };
973
+
974
+ AbbreviatedNumberFormatter.prototype.get_type = function() {
975
+ return "decimal";
976
+ };
977
+
978
+ AbbreviatedNumberFormatter.prototype.get_key = function(number) {
979
+ var i, zeroes;
980
+ zeroes = ((function() {
981
+ var _i, _ref2, _results;
982
+ _results = [];
983
+ for (i = _i = 0, _ref2 = Math.floor(number).toString().length - 1; 0 <= _ref2 ? _i < _ref2 : _i > _ref2; i = 0 <= _ref2 ? ++_i : --_i) {
984
+ _results.push("0");
985
+ }
986
+ return _results;
987
+ })()).join("");
988
+ return "1" + zeroes;
989
+ };
990
+
991
+ AbbreviatedNumberFormatter.prototype.get_tokens = function(number, options) {
992
+ var format, tokens, type;
993
+ if (options == null) {
994
+ options = {};
995
+ }
996
+ type = (number < this.NUMBER_MAX) && (number >= this.NUMBER_MIN) ? this.get_type() : "decimal";
997
+ format = type === this.get_type() ? this.get_key(number) : null;
998
+ tokens = this.all_tokens[type];
999
+ tokens = number < 0 ? tokens.negative : tokens.positive;
1000
+ if (format != null) {
1001
+ tokens = tokens[format];
1002
+ }
1003
+ return tokens;
1004
+ };
1005
+
1006
+ AbbreviatedNumberFormatter.prototype.transform_number = function(number) {
1007
+ var factor, power;
1008
+ if ((number < this.NUMBER_MAX) && (number >= this.NUMBER_MIN)) {
1009
+ power = Math.floor((number.toString().length - 1) / 3) * 3;
1010
+ factor = Math.pow(10, power);
1011
+ return number / factor;
1012
+ } else {
1013
+ return number;
1014
+ }
1015
+ };
1016
+
1017
+ return AbbreviatedNumberFormatter;
1018
+
1019
+ })(TwitterCldr.NumberFormatter);
1020
+
1021
+ TwitterCldr.ShortDecimalFormatter = (function(_super) {
1022
+ __extends(ShortDecimalFormatter, _super);
1023
+
1024
+ function ShortDecimalFormatter() {
1025
+ _ref2 = ShortDecimalFormatter.__super__.constructor.apply(this, arguments);
1026
+ return _ref2;
1027
+ }
1028
+
1029
+ ShortDecimalFormatter.prototype.get_type = function() {
1030
+ return "short_decimal";
1031
+ };
1032
+
1033
+ return ShortDecimalFormatter;
1034
+
1035
+ })(TwitterCldr.AbbreviatedNumberFormatter);
1036
+
1037
+ TwitterCldr.LongDecimalFormatter = (function(_super) {
1038
+ __extends(LongDecimalFormatter, _super);
1039
+
1040
+ function LongDecimalFormatter() {
1041
+ _ref3 = LongDecimalFormatter.__super__.constructor.apply(this, arguments);
1042
+ return _ref3;
1043
+ }
1044
+
1045
+ LongDecimalFormatter.prototype.get_type = function() {
1046
+ return "long_decimal";
1047
+ };
1048
+
1049
+ return LongDecimalFormatter;
1050
+
1051
+ })(TwitterCldr.AbbreviatedNumberFormatter);
1052
+
1053
+ TwitterCldr.NumberFormatter.BaseHelper = (function() {
1054
+ function BaseHelper() {}
1055
+
1056
+ BaseHelper.prototype.interpolate = function(string, value, orientation) {
1057
+ var i, length, start;
1058
+ if (orientation == null) {
1059
+ orientation = "right";
1060
+ }
1061
+ value = value.toString();
1062
+ length = value.length;
1063
+ start = orientation === "left" ? 0 : -length;
1064
+ if (string.length < length) {
1065
+ string = (((function() {
1066
+ var _i, _results;
1067
+ _results = [];
1068
+ for (i = _i = 0; 0 <= length ? _i < length : _i > length; i = 0 <= length ? ++_i : --_i) {
1069
+ _results.push("#");
1070
+ }
1071
+ return _results;
1072
+ })()).join("") + string).slice(-length);
1073
+ }
1074
+ if (start < 0) {
1075
+ string = string.slice(0, start + string.length) + value;
1076
+ } else {
1077
+ string = string.slice(0, start) + value + string.slice(length);
1078
+ }
1079
+ return string.replace(/#/g, "");
1080
+ };
1081
+
1082
+ return BaseHelper;
1083
+
1084
+ })();
1085
+
1086
+ TwitterCldr.NumberFormatter.IntegerHelper = (function(_super) {
1087
+ __extends(IntegerHelper, _super);
1088
+
1089
+ function IntegerHelper(token, symbols) {
1090
+ var format;
1091
+ if (symbols == null) {
1092
+ symbols = {};
1093
+ }
1094
+ format = token.split('.')[0];
1095
+ this.format = this.prepare_format(format, symbols);
1096
+ this.groups = this.parse_groups(format);
1097
+ this.separator = symbols.group || ',';
1098
+ }
1099
+
1100
+ IntegerHelper.prototype.apply = function(number, options) {
1101
+ if (options == null) {
1102
+ options = {};
1103
+ }
1104
+ return this.format_groups(this.interpolate(this.format, parseInt(number)));
1105
+ };
1106
+
1107
+ IntegerHelper.prototype.format_groups = function(string) {
1108
+ var cur_token, token, tokens;
1109
+ if (this.groups.length === 0) {
1110
+ return string;
1111
+ }
1112
+ tokens = [];
1113
+ cur_token = this.chop_group(string, this.groups[0]);
1114
+ tokens.push(cur_token);
1115
+ if (cur_token) {
1116
+ string = string.slice(0, string.length - cur_token.length);
1117
+ }
1118
+ while (string.length > this.groups[this.groups.length - 1]) {
1119
+ cur_token = this.chop_group(string, this.groups[this.groups.length - 1]);
1120
+ tokens.push(cur_token);
1121
+ if (cur_token) {
1122
+ string = string.slice(0, string.length - cur_token.length);
1123
+ }
1124
+ }
1125
+ tokens.push(string);
1126
+ return ((function() {
1127
+ var _i, _len, _results;
1128
+ _results = [];
1129
+ for (_i = 0, _len = tokens.length; _i < _len; _i++) {
1130
+ token = tokens[_i];
1131
+ if (token !== null) {
1132
+ _results.push(token);
1133
+ }
1134
+ }
1135
+ return _results;
1136
+ })()).reverse().join(this.separator);
1137
+ };
1138
+
1139
+ IntegerHelper.prototype.parse_groups = function(format) {
1140
+ var index, rest, width, widths;
1141
+ index = format.lastIndexOf(',');
1142
+ if (!(index > 0)) {
1143
+ return [];
1144
+ }
1145
+ rest = format.slice(0, index);
1146
+ widths = [format.length - index - 1];
1147
+ if (rest.lastIndexOf(',') > -1) {
1148
+ widths.push(rest.length - rest.lastIndexOf(',') - 1);
1149
+ }
1150
+ widths = (function() {
1151
+ var _i, _len, _results;
1152
+ _results = [];
1153
+ for (_i = 0, _len = widths.length; _i < _len; _i++) {
1154
+ width = widths[_i];
1155
+ if (width !== null) {
1156
+ _results.push(width);
1157
+ }
1158
+ }
1159
+ return _results;
1160
+ })();
1161
+ widths.reverse();
1162
+ return ((function() {
1163
+ var _i, _ref4, _results;
1164
+ _results = [];
1165
+ for (index = _i = 0, _ref4 = widths.length; 0 <= _ref4 ? _i < _ref4 : _i > _ref4; index = 0 <= _ref4 ? ++_i : --_i) {
1166
+ if (widths.indexOf(widths[index], index + 1) === -1) {
1167
+ _results.push(widths[index]);
1168
+ }
1169
+ }
1170
+ return _results;
1171
+ })()).reverse();
1172
+ };
1173
+
1174
+ IntegerHelper.prototype.chop_group = function(string, size) {
1175
+ if (string.length > size) {
1176
+ return string.slice(-size);
1177
+ } else {
1178
+ return null;
1179
+ }
1180
+ };
1181
+
1182
+ IntegerHelper.prototype.prepare_format = function(format, symbols) {
1183
+ return format.replace(",", "").replace("+", symbols.plus_sign).replace("-", symbols.minus_sign);
1184
+ };
1185
+
1186
+ return IntegerHelper;
1187
+
1188
+ })(TwitterCldr.NumberFormatter.BaseHelper);
1189
+
1190
+ TwitterCldr.NumberFormatter.FractionHelper = (function(_super) {
1191
+ __extends(FractionHelper, _super);
1192
+
1193
+ function FractionHelper(token, symbols) {
1194
+ if (symbols == null) {
1195
+ symbols = {};
1196
+ }
1197
+ this.format = token ? token.split('.').pop() : "";
1198
+ this.decimal = symbols.decimal || ".";
1199
+ this.precision = this.format.length;
1200
+ }
1201
+
1202
+ FractionHelper.prototype.apply = function(fraction, options) {
1203
+ var precision;
1204
+ if (options == null) {
1205
+ options = {};
1206
+ }
1207
+ precision = options.precision != null ? options.precision : this.precision;
1208
+ if (precision > 0) {
1209
+ return this.decimal + this.interpolate(this.format_for(options), fraction, "left");
1210
+ } else {
1211
+ return "";
1212
+ }
1213
+ };
1214
+
1215
+ FractionHelper.prototype.format_for = function(options) {
1216
+ var i, precision;
1217
+ precision = options.precision != null ? options.precision : this.precision;
1218
+ if (precision) {
1219
+ return ((function() {
1220
+ var _i, _results;
1221
+ _results = [];
1222
+ for (i = _i = 0; 0 <= precision ? _i < precision : _i > precision; i = 0 <= precision ? ++_i : --_i) {
1223
+ _results.push("0");
1224
+ }
1225
+ return _results;
1226
+ })()).join("");
1227
+ } else {
1228
+ return this.format;
1229
+ }
1230
+ };
1231
+
1232
+ return FractionHelper;
1233
+
1234
+ })(TwitterCldr.NumberFormatter.BaseHelper);
1235
+
1236
+ TwitterCldr.Currencies = (function() {
1237
+ function Currencies() {}
1238
+
1239
+ Currencies.currencies = {"ADP":{"currency":"ADP","name":"Andorran peseta","cldr_symbol":"ADP","symbol":"ADP","code_points":[65,68,80]},"AED":{"currency":"AED","name":"UAE dirham","cldr_symbol":"AED","symbol":"AED","code_points":[65,69,68]},"AFA":{"currency":"AFA","name":"Afghan afghani (1927-2002)","cldr_symbol":"AFA","symbol":"AFA","code_points":[65,70,65]},"AFN":{"currency":"AFN","name":"Afghan Afghani","cldr_symbol":"AFN","symbol":"؋","code_points":[1547]},"ALK":{"currency":"ALK","name":"Albanian lek (1946-1965)","cldr_symbol":"ALK","symbol":"ALK","code_points":[65,76,75]},"ALL":{"currency":"ALL","name":"Albanian lek","cldr_symbol":"ALL","symbol":"LEK","code_points":[76,69,75]},"AMD":{"currency":"AMD","name":"Armenian dram","cldr_symbol":"AMD","symbol":"AMD","code_points":[65,77,68]},"ANG":{"currency":"ANG","name":"Netherlands Antillean guilder","cldr_symbol":"ANG","symbol":"ƒ","code_points":[402]},"AOA":{"currency":"AOA","name":"Angolan kwanza","cldr_symbol":"AOA","symbol":"AOA","code_points":[65,79,65]},"AOK":{"currency":"AOK","name":"Angolan kwanza (1977-1991)","cldr_symbol":"AOK","symbol":"AOK","code_points":[65,79,75]},"AON":{"currency":"AON","name":"Angolan new kwanza (1990-2000)","cldr_symbol":"AON","symbol":"AON","code_points":[65,79,78]},"AOR":{"currency":"AOR","name":"Angolan readjusted kwanza (1995-1999)","cldr_symbol":"AOR","symbol":"AOR","code_points":[65,79,82]},"ARA":{"currency":"ARA","name":"Argentine austral","cldr_symbol":"ARA","symbol":"ARA","code_points":[65,82,65]},"ARL":{"currency":"ARL","name":"Argentine peso ley (1970-1983)","cldr_symbol":"ARL","symbol":"ARL","code_points":[65,82,76]},"ARM":{"currency":"ARM","name":"Argentine peso (1881-1970)","cldr_symbol":"ARM","symbol":"ARM","code_points":[65,82,77]},"ARP":{"currency":"ARP","name":"Argentine peso (1983-1985)","cldr_symbol":"ARP","symbol":"ARP","code_points":[65,82,80]},"ARS":{"currency":"ARS","name":"Argentine peso","cldr_symbol":"ARS","symbol":"$","code_points":[36]},"ATS":{"currency":"ATS","name":"Austrian schilling","cldr_symbol":"ATS","symbol":"ATS","code_points":[65,84,83]},"AUD":{"currency":"AUD","name":"Australian dollar","cldr_symbol":"A$","symbol":"$","code_points":[36]},"AWG":{"currency":"AWG","name":"Aruban florin","cldr_symbol":"AWG","symbol":"ƒ","code_points":[402],"alt_name":"Florins"},"AZM":{"currency":"AZM","name":"Azerbaijani manat (1993-2006)","cldr_symbol":"AZM","symbol":"AZM","code_points":[65,90,77]},"AZN":{"currency":"AZN","name":"Azerbaijani manat","cldr_symbol":"AZN","symbol":"ман","code_points":[1084,1072,1085]},"BAD":{"currency":"BAD","name":"Bosnia-Herzegovina dinar (1992-1994)","cldr_symbol":"BAD","symbol":"BAD","code_points":[66,65,68]},"BAM":{"currency":"BAM","name":"Bosnia-Herzegovina convertible mark","cldr_symbol":"BAM","symbol":"KM","code_points":[75,77]},"BAN":{"currency":"BAN","name":"Bosnia-Herzegovina new dinar (1994-1997)","cldr_symbol":"BAN","symbol":"BAN","code_points":[66,65,78]},"BBD":{"currency":"BBD","name":"Barbadian dollar","cldr_symbol":"BBD","symbol":"$","code_points":[36]},"BDT":{"currency":"BDT","name":"Bangladeshi taka","cldr_symbol":"BDT","symbol":"BDT","code_points":[66,68,84]},"BEC":{"currency":"BEC","name":"Belgian franc (convertible)","cldr_symbol":"BEC","symbol":"BEC","code_points":[66,69,67]},"BEF":{"currency":"BEF","name":"Belgian franc","cldr_symbol":"BEF","symbol":"BEF","code_points":[66,69,70]},"BEL":{"currency":"BEL","name":"Belgian franc (financial)","cldr_symbol":"BEL","symbol":"BEL","code_points":[66,69,76]},"BGL":{"currency":"BGL","name":"Bulgarian hard lev","cldr_symbol":"BGL","symbol":"BGL","code_points":[66,71,76]},"BGM":{"currency":"BGM","name":"Bulgarian socialist lev","cldr_symbol":"BGM","symbol":"BGM","code_points":[66,71,77]},"BGN":{"currency":"BGN","name":"Bulgarian lev","cldr_symbol":"BGN","symbol":"лв","code_points":[1083,1074]},"BGO":{"currency":"BGO","name":"Bulgarian lev (1879-1952)","cldr_symbol":"BGO","symbol":"BGO","code_points":[66,71,79]},"BHD":{"currency":"BHD","name":"Bahraini dinar","cldr_symbol":"BHD","symbol":"BHD","code_points":[66,72,68]},"BIF":{"currency":"BIF","name":"Burundian franc","cldr_symbol":"BIF","symbol":"BIF","code_points":[66,73,70]},"BMD":{"currency":"BMD","name":"Bermudan dollar","cldr_symbol":"BMD","symbol":"$","code_points":[36]},"BND":{"currency":"BND","name":"Brunei dollar","cldr_symbol":"BND","symbol":"$","code_points":[36]},"BOB":{"currency":"BOB","name":"Bolivian boliviano","cldr_symbol":"BOB","symbol":"$b","code_points":[36,98]},"BOL":{"currency":"BOL","name":"Bolivian boliviano (1863-1963)","cldr_symbol":"BOL","symbol":"BOL","code_points":[66,79,76]},"BOP":{"currency":"BOP","name":"Bolivian peso","cldr_symbol":"BOP","symbol":"BOP","code_points":[66,79,80]},"BOV":{"currency":"BOV","name":"Bolivian mvdol","cldr_symbol":"BOV","symbol":"BOV","code_points":[66,79,86]},"BRB":{"currency":"BRB","name":"Brazilian new cruzeiro (1967-1986)","cldr_symbol":"BRB","symbol":"BRB","code_points":[66,82,66]},"BRC":{"currency":"BRC","name":"Brazilian cruzado (1986-1989)","cldr_symbol":"BRC","symbol":"BRC","code_points":[66,82,67]},"BRE":{"currency":"BRE","name":"Brazilian cruzeiro (1990-1993)","cldr_symbol":"BRE","symbol":"BRE","code_points":[66,82,69]},"BRL":{"currency":"BRL","name":"Brazilian real","cldr_symbol":"R$","symbol":"R$","code_points":[82,36]},"BRN":{"currency":"BRN","name":"Brazilian new cruzado (1989-1990)","cldr_symbol":"BRN","symbol":"BRN","code_points":[66,82,78]},"BRR":{"currency":"BRR","name":"Brazilian cruzeiro (1993-1994)","cldr_symbol":"BRR","symbol":"BRR","code_points":[66,82,82]},"BRZ":{"currency":"BRZ","name":"Brazilian cruzeiro (1942-1967)","cldr_symbol":"BRZ","symbol":"BRZ","code_points":[66,82,90]},"BSD":{"currency":"BSD","name":"Bahamian dollar","cldr_symbol":"BSD","symbol":"$","code_points":[36]},"BTN":{"currency":"BTN","name":"Bhutanese ngultrum","cldr_symbol":"BTN","symbol":"BTN","code_points":[66,84,78]},"BUK":{"currency":"BUK","name":"Burmese kyat","cldr_symbol":"BUK","symbol":"BUK","code_points":[66,85,75]},"BWP":{"currency":"BWP","name":"Botswanan pula","cldr_symbol":"BWP","symbol":"P","code_points":[80]},"BYB":{"currency":"BYB","name":"Belarusian new ruble (1994-1999)","cldr_symbol":"BYB","symbol":"BYB","code_points":[66,89,66]},"BYR":{"currency":"BYR","name":"Belarusian ruble","cldr_symbol":"BYR","symbol":"p.","code_points":[112,46]},"BZD":{"currency":"BZD","name":"Belize dollar","cldr_symbol":"BZD","symbol":"BZ$","code_points":[66,90,36]},"CAD":{"currency":"CAD","name":"Canadian dollar","cldr_symbol":"CA$","symbol":"$","code_points":[36]},"CDF":{"currency":"CDF","name":"Congolese franc","cldr_symbol":"CDF","symbol":"CDF","code_points":[67,68,70]},"CHE":{"currency":"CHE","name":"WIR euro","cldr_symbol":"CHE","symbol":"CHE","code_points":[67,72,69]},"CHF":{"currency":"CHF","name":"Swiss franc","cldr_symbol":"CHF","symbol":"CHF","code_points":[67,72,70]},"CHW":{"currency":"CHW","name":"WIR franc","cldr_symbol":"CHW","symbol":"CHW","code_points":[67,72,87]},"CLE":{"currency":"CLE","name":"Chilean escudo","cldr_symbol":"CLE","symbol":"CLE","code_points":[67,76,69]},"CLF":{"currency":"CLF","name":"Chilean unit of account (UF)","cldr_symbol":"CLF","symbol":"CLF","code_points":[67,76,70]},"CLP":{"currency":"CLP","name":"Chilean peso","cldr_symbol":"CLP","symbol":"$","code_points":[36]},"CNX":{"currency":"CNX","name":"Chinese People’s Bank dollar","cldr_symbol":"CNX","symbol":"CNX","code_points":[67,78,88]},"CNY":{"currency":"CNY","name":"Chinese yuan","cldr_symbol":"CN¥","symbol":"¥","code_points":[165]},"COP":{"currency":"COP","name":"Colombian peso","cldr_symbol":"COP","symbol":"$","code_points":[36]},"COU":{"currency":"COU","name":"Colombian real value unit","cldr_symbol":"COU","symbol":"COU","code_points":[67,79,85]},"CRC":{"currency":"CRC","name":"Costa Rican colón","cldr_symbol":"CRC","symbol":"₡","code_points":[8353]},"CSD":{"currency":"CSD","name":"Serbian dinar (2002-2006)","cldr_symbol":"CSD","symbol":"CSD","code_points":[67,83,68]},"CSK":{"currency":"CSK","name":"Czechoslovak hard koruna","cldr_symbol":"CSK","symbol":"CSK","code_points":[67,83,75]},"CUC":{"currency":"CUC","name":"Cuban convertible peso","cldr_symbol":"CUC","symbol":"CUC","code_points":[67,85,67]},"CUP":{"currency":"CUP","name":"Cuban peso","cldr_symbol":"CUP","symbol":"₱","code_points":[8369]},"CVE":{"currency":"CVE","name":"Cape Verdean escudo","cldr_symbol":"CVE","symbol":"CVE","code_points":[67,86,69]},"CYP":{"currency":"CYP","name":"Cypriot pound","cldr_symbol":"CYP","symbol":"CYP","code_points":[67,89,80]},"CZK":{"currency":"CZK","name":"Czech Republic koruna","cldr_symbol":"CZK","symbol":"Kč","code_points":[75,269]},"DDM":{"currency":"DDM","name":"East German mark","cldr_symbol":"DDM","symbol":"DDM","code_points":[68,68,77]},"DEM":{"currency":"DEM","name":"German mark","cldr_symbol":"DEM","symbol":"DEM","code_points":[68,69,77]},"DJF":{"currency":"DJF","name":"Djiboutian franc","cldr_symbol":"DJF","symbol":"DJF","code_points":[68,74,70]},"DKK":{"currency":"DKK","name":"Danish krone","cldr_symbol":"DKK","symbol":"kr","code_points":[107,114]},"DOP":{"currency":"DOP","name":"Dominican peso","cldr_symbol":"DOP","symbol":"RD$","code_points":[82,68,36]},"DZD":{"currency":"DZD","name":"Algerian dinar","cldr_symbol":"DZD","symbol":"DZD","code_points":[68,90,68]},"ECS":{"currency":"ECS","name":"Ecuadorian sucre","cldr_symbol":"ECS","symbol":"ECS","code_points":[69,67,83]},"ECV":{"currency":"ECV","name":"Ecuadorian unit of constant value","cldr_symbol":"ECV","symbol":"ECV","code_points":[69,67,86]},"EEK":{"currency":"EEK","name":"Estonian kroon","cldr_symbol":"EEK","symbol":"kr","code_points":[107,114]},"EGP":{"currency":"EGP","name":"Egyptian pound","cldr_symbol":"EGP","symbol":"£","code_points":[163]},"ERN":{"currency":"ERN","name":"Eritrean nakfa","cldr_symbol":"ERN","symbol":"ERN","code_points":[69,82,78]},"ESA":{"currency":"ESA","name":"Spanish peseta (A account)","cldr_symbol":"ESA","symbol":"ESA","code_points":[69,83,65]},"ESB":{"currency":"ESB","name":"Spanish peseta (convertible account)","cldr_symbol":"ESB","symbol":"ESB","code_points":[69,83,66]},"ESP":{"currency":"ESP","name":"Spanish peseta","cldr_symbol":"ESP","symbol":"ESP","code_points":[69,83,80]},"ETB":{"currency":"ETB","name":"Ethiopian birr","cldr_symbol":"ETB","symbol":"ETB","code_points":[69,84,66]},"EUR":{"currency":"EUR","name":"euro","cldr_symbol":"€","symbol":"€","code_points":[8364]},"FIM":{"currency":"FIM","name":"Finnish markka","cldr_symbol":"FIM","symbol":"FIM","code_points":[70,73,77]},"FJD":{"currency":"FJD","name":"Fijian dollar","cldr_symbol":"FJD","symbol":"FJD","code_points":[70,74,68]},"FKP":{"currency":"FKP","name":"Falkland Islands pound","cldr_symbol":"FKP","symbol":"£","code_points":[163]},"FRF":{"currency":"FRF","name":"French franc","cldr_symbol":"FRF","symbol":"FRF","code_points":[70,82,70]},"GBP":{"currency":"GBP","name":"British pound sterling","cldr_symbol":"£","symbol":"£","code_points":[163]},"GEK":{"currency":"GEK","name":"Georgian kupon larit","cldr_symbol":"GEK","symbol":"GEK","code_points":[71,69,75]},"GEL":{"currency":"GEL","name":"Georgian lari","cldr_symbol":"GEL","symbol":"GEL","code_points":[71,69,76]},"GHC":{"currency":"GHC","name":"Ghanaian cedi (1979-2007)","cldr_symbol":"GHC","symbol":"GHC","code_points":[71,72,67]},"GHS":{"currency":"GHS","name":"Ghanaian cedi","cldr_symbol":"GHS","symbol":"¢","code_points":[162]},"GIP":{"currency":"GIP","name":"Gibraltar pound","cldr_symbol":"GIP","symbol":"£","code_points":[163]},"GMD":{"currency":"GMD","name":"Gambian dalasi","cldr_symbol":"GMD","symbol":"GMD","code_points":[71,77,68]},"GNF":{"currency":"GNF","name":"Guinean franc","cldr_symbol":"GNF","symbol":"GNF","code_points":[71,78,70]},"GNS":{"currency":"GNS","name":"Guinean syli","cldr_symbol":"GNS","symbol":"GNS","code_points":[71,78,83]},"GQE":{"currency":"GQE","name":"Equatorial Guinean ekwele","cldr_symbol":"GQE","symbol":"GQE","code_points":[71,81,69]},"GRD":{"currency":"GRD","name":"Greek drachma","cldr_symbol":"GRD","symbol":"GRD","code_points":[71,82,68]},"GTQ":{"currency":"GTQ","name":"Guatemalan quetzal","cldr_symbol":"GTQ","symbol":"Q","code_points":[81]},"GWE":{"currency":"GWE","name":"Portuguese Guinea escudo","cldr_symbol":"GWE","symbol":"GWE","code_points":[71,87,69]},"GWP":{"currency":"GWP","name":"Guinea-Bissau peso","cldr_symbol":"GWP","symbol":"GWP","code_points":[71,87,80]},"GYD":{"currency":"GYD","name":"Guyanaese dollar","cldr_symbol":"GYD","symbol":"GYD","code_points":[71,89,68]},"HKD":{"currency":"HKD","name":"Hong Kong dollar","cldr_symbol":"HK$","symbol":"$","code_points":[36]},"HNL":{"currency":"HNL","name":"Honduran lempira","cldr_symbol":"HNL","symbol":"L","code_points":[76]},"HRD":{"currency":"HRD","name":"Croatian dinar","cldr_symbol":"HRD","symbol":"HRD","code_points":[72,82,68]},"HRK":{"currency":"HRK","name":"Croatian kuna","cldr_symbol":"HRK","symbol":"kn","code_points":[107,110]},"HTG":{"currency":"HTG","name":"Haitian gourde","cldr_symbol":"HTG","symbol":"HTG","code_points":[72,84,71]},"HUF":{"currency":"HUF","name":"Hungarian forint","cldr_symbol":"HUF","symbol":"Ft","code_points":[70,116]},"IDR":{"currency":"IDR","name":"Indonesian rupiah","cldr_symbol":"IDR","symbol":"Rp","code_points":[82,112]},"IEP":{"currency":"IEP","name":"Irish pound","cldr_symbol":"IEP","symbol":"IEP","code_points":[73,69,80]},"ILP":{"currency":"ILP","name":"Israeli pound","cldr_symbol":"ILP","symbol":"ILP","code_points":[73,76,80]},"ILR":{"currency":"ILR","name":"Israeli sheqel (1980-1985)","cldr_symbol":"ILR","symbol":"ILR","code_points":[73,76,82]},"ILS":{"currency":"ILS","name":"Israeli new sheqel","cldr_symbol":"₪","symbol":"₪","code_points":[8362]},"INR":{"currency":"INR","name":"Indian rupee","cldr_symbol":"₹","symbol":"₨","code_points":[8360]},"IQD":{"currency":"IQD","name":"Iraqi dinar","cldr_symbol":"IQD","symbol":"IQD","code_points":[73,81,68]},"IRR":{"currency":"IRR","name":"Iranian rial","cldr_symbol":"IRR","symbol":"﷼","code_points":[65020]},"ISJ":{"currency":"ISJ","name":"Icelandic króna (1918-1981)","cldr_symbol":"ISJ","symbol":"ISJ","code_points":[73,83,74]},"ISK":{"currency":"ISK","name":"Icelandic króna","cldr_symbol":"ISK","symbol":"kr","code_points":[107,114]},"ITL":{"currency":"ITL","name":"Italian lira","cldr_symbol":"ITL","symbol":"ITL","code_points":[73,84,76]},"JMD":{"currency":"JMD","name":"Jamaican dollar","cldr_symbol":"JMD","symbol":"JMD","code_points":[74,77,68]},"JOD":{"currency":"JOD","name":"Jordanian dinar","cldr_symbol":"JOD","symbol":"JOD","code_points":[74,79,68]},"JPY":{"currency":"JPY","name":"Japanese yen","cldr_symbol":"¥","symbol":"¥","code_points":[165]},"KES":{"currency":"KES","name":"Kenyan shilling","cldr_symbol":"KES","symbol":"KES","code_points":[75,69,83]},"KGS":{"currency":"KGS","name":"Kyrgystani som","cldr_symbol":"KGS","symbol":"лв","code_points":[1083,1074]},"KHR":{"currency":"KHR","name":"Cambodian riel","cldr_symbol":"KHR","symbol":"KHR","code_points":[75,72,82]},"KMF":{"currency":"KMF","name":"Comorian franc","cldr_symbol":"KMF","symbol":"KMF","code_points":[75,77,70]},"KPW":{"currency":"KPW","name":"North Korean won","cldr_symbol":"KPW","symbol":"₩","code_points":[8361]},"KRH":{"currency":"KRH","name":"South Korean hwan (1953-1962)","cldr_symbol":"KRH","symbol":"KRH","code_points":[75,82,72]},"KRO":{"currency":"KRO","name":"South Korean won (1945-1953)","cldr_symbol":"KRO","symbol":"KRO","code_points":[75,82,79]},"KRW":{"currency":"KRW","name":"South Korean won","cldr_symbol":"₩","symbol":"₩","code_points":[8361]},"KWD":{"currency":"KWD","name":"Kuwaiti dinar","cldr_symbol":"KWD","symbol":"KWD","code_points":[75,87,68]},"KYD":{"currency":"KYD","name":"Cayman Islands dollar","cldr_symbol":"KYD","symbol":"$","code_points":[36]},"KZT":{"currency":"KZT","name":"Kazakhstani tenge","cldr_symbol":"KZT","symbol":"лв","code_points":[1083,1074]},"LAK":{"currency":"LAK","name":"Laotian kip","cldr_symbol":"LAK","symbol":"₭","code_points":[8365]},"LBP":{"currency":"LBP","name":"Lebanese pound","cldr_symbol":"LBP","symbol":"£","code_points":[163]},"LKR":{"currency":"LKR","name":"Sri Lankan rupee","cldr_symbol":"LKR","symbol":"₨","code_points":[8360]},"LRD":{"currency":"LRD","name":"Liberian dollar","cldr_symbol":"LRD","symbol":"$","code_points":[36]},"LSL":{"currency":"LSL","name":"Lesotho loti","cldr_symbol":"LSL","symbol":"LSL","code_points":[76,83,76]},"LTL":{"currency":"LTL","name":"Lithuanian litas","cldr_symbol":"LTL","symbol":"Lt","code_points":[76,116]},"LTT":{"currency":"LTT","name":"Lithuanian talonas","cldr_symbol":"LTT","symbol":"LTT","code_points":[76,84,84]},"LUC":{"currency":"LUC","name":"Luxembourgian convertible franc","cldr_symbol":"LUC","symbol":"LUC","code_points":[76,85,67]},"LUF":{"currency":"LUF","name":"Luxembourgian franc","cldr_symbol":"LUF","symbol":"LUF","code_points":[76,85,70]},"LUL":{"currency":"LUL","name":"Luxembourg financial franc","cldr_symbol":"LUL","symbol":"LUL","code_points":[76,85,76]},"LVL":{"currency":"LVL","name":"Latvian lats","cldr_symbol":"LVL","symbol":"Ls","code_points":[76,115]},"LVR":{"currency":"LVR","name":"Latvian ruble","cldr_symbol":"LVR","symbol":"LVR","code_points":[76,86,82]},"LYD":{"currency":"LYD","name":"Libyan dinar","cldr_symbol":"LYD","symbol":"LYD","code_points":[76,89,68]},"MAD":{"currency":"MAD","name":"Moroccan dirham","cldr_symbol":"MAD","symbol":"MAD","code_points":[77,65,68]},"MAF":{"currency":"MAF","name":"Moroccan franc","cldr_symbol":"MAF","symbol":"MAF","code_points":[77,65,70]},"MCF":{"currency":"MCF","name":"Monegasque franc","cldr_symbol":"MCF","symbol":"MCF","code_points":[77,67,70]},"MDC":{"currency":"MDC","name":"Moldovan cupon","cldr_symbol":"MDC","symbol":"MDC","code_points":[77,68,67]},"MDL":{"currency":"MDL","name":"Moldovan leu","cldr_symbol":"MDL","symbol":"MDL","code_points":[77,68,76]},"MGA":{"currency":"MGA","name":"Malagasy Ariary","cldr_symbol":"MGA","symbol":"MGA","code_points":[77,71,65]},"MGF":{"currency":"MGF","name":"Malagasy franc","cldr_symbol":"MGF","symbol":"MGF","code_points":[77,71,70]},"MKD":{"currency":"MKD","name":"Macedonian denar","cldr_symbol":"MKD","symbol":"MKD","code_points":[77,75,68]},"MKN":{"currency":"MKN","name":"Macedonian denar (1992-1993)","cldr_symbol":"MKN","symbol":"MKN","code_points":[77,75,78]},"MLF":{"currency":"MLF","name":"Malian franc","cldr_symbol":"MLF","symbol":"MLF","code_points":[77,76,70]},"MMK":{"currency":"MMK","name":"Myanma kyat","cldr_symbol":"MMK","symbol":"MMK","code_points":[77,77,75]},"MNT":{"currency":"MNT","name":"Mongolian tugrik","cldr_symbol":"MNT","symbol":"₮","code_points":[8366]},"MOP":{"currency":"MOP","name":"Macanese pataca","cldr_symbol":"MOP","symbol":"MOP","code_points":[77,79,80]},"MRO":{"currency":"MRO","name":"Mauritanian ouguiya","cldr_symbol":"MRO","symbol":"MRO","code_points":[77,82,79]},"MTL":{"currency":"MTL","name":"Maltese lira","cldr_symbol":"MTL","symbol":"MTL","code_points":[77,84,76]},"MTP":{"currency":"MTP","name":"Maltese pound","cldr_symbol":"MTP","symbol":"MTP","code_points":[77,84,80]},"MUR":{"currency":"MUR","name":"Mauritian rupee","cldr_symbol":"MUR","symbol":"₨","code_points":[8360]},"MVP":{"currency":"MVP","name":"Maldivian rupee","cldr_symbol":"MVP","symbol":"MVP","code_points":[77,86,80]},"MVR":{"currency":"MVR","name":"Maldivian rufiyaa","cldr_symbol":"MVR","symbol":"MVR","code_points":[77,86,82]},"MWK":{"currency":"MWK","name":"Malawian Kwacha","cldr_symbol":"MWK","symbol":"MWK","code_points":[77,87,75]},"MXN":{"currency":"MXN","name":"Mexican peso","cldr_symbol":"MX$","symbol":"$","code_points":[36]},"MXP":{"currency":"MXP","name":"Mexican silver peso (1861-1992)","cldr_symbol":"MXP","symbol":"MXP","code_points":[77,88,80]},"MXV":{"currency":"MXV","name":"Mexican investment unit","cldr_symbol":"MXV","symbol":"MXV","code_points":[77,88,86]},"MYR":{"currency":"MYR","name":"Malaysian ringgit","cldr_symbol":"MYR","symbol":"RM","code_points":[82,77]},"MZE":{"currency":"MZE","name":"Mozambican escudo","cldr_symbol":"MZE","symbol":"MZE","code_points":[77,90,69]},"MZM":{"currency":"MZM","name":"Mozambican metical (1980-2006)","cldr_symbol":"MZM","symbol":"MZM","code_points":[77,90,77]},"MZN":{"currency":"MZN","name":"Mozambican metical","cldr_symbol":"MZN","symbol":"MT","code_points":[77,84]},"NAD":{"currency":"NAD","name":"Namibian dollar","cldr_symbol":"NAD","symbol":"$","code_points":[36]},"NGN":{"currency":"NGN","name":"Nigerian naira","cldr_symbol":"NGN","symbol":"₦","code_points":[8358]},"NIC":{"currency":"NIC","name":"Nicaraguan córdoba (1988-1991)","cldr_symbol":"NIC","symbol":"NIC","code_points":[78,73,67]},"NIO":{"currency":"NIO","name":"Nicaraguan córdoba","cldr_symbol":"NIO","symbol":"C$","code_points":[67,36]},"NLG":{"currency":"NLG","name":"Dutch guilder","cldr_symbol":"NLG","symbol":"NLG","code_points":[78,76,71]},"NOK":{"currency":"NOK","name":"Norwegian krone","cldr_symbol":"NOK","symbol":"kr","code_points":[107,114]},"NPR":{"currency":"NPR","name":"Nepalese rupee","cldr_symbol":"NPR","symbol":"₨","code_points":[8360]},"NZD":{"currency":"NZD","name":"New Zealand dollar","cldr_symbol":"NZ$","symbol":"$","code_points":[36]},"OMR":{"currency":"OMR","name":"Omani rial","cldr_symbol":"OMR","symbol":"﷼","code_points":[65020]},"PAB":{"currency":"PAB","name":"Panamanian balboa","cldr_symbol":"PAB","symbol":"B/.","code_points":[66,47,46]},"PEI":{"currency":"PEI","name":"Peruvian inti","cldr_symbol":"PEI","symbol":"PEI","code_points":[80,69,73]},"PEN":{"currency":"PEN","name":"Peruvian nuevo sol","cldr_symbol":"PEN","symbol":"S/.","code_points":[83,47,46]},"PES":{"currency":"PES","name":"Peruvian sol (1863-1965)","cldr_symbol":"PES","symbol":"PES","code_points":[80,69,83]},"PGK":{"currency":"PGK","name":"Papua New Guinean kina","cldr_symbol":"PGK","symbol":"PGK","code_points":[80,71,75]},"PHP":{"currency":"PHP","name":"Philippine peso","cldr_symbol":"PHP","symbol":"Php","code_points":[80,104,112]},"PKR":{"currency":"PKR","name":"Pakistani rupee","cldr_symbol":"PKR","symbol":"₨","code_points":[8360]},"PLN":{"currency":"PLN","name":"Polish zloty","cldr_symbol":"PLN","symbol":"zł","code_points":[122,322]},"PLZ":{"currency":"PLZ","name":"Polish zloty (PLZ)","cldr_symbol":"PLZ","symbol":"PLZ","code_points":[80,76,90]},"PTE":{"currency":"PTE","name":"Portuguese escudo","cldr_symbol":"PTE","symbol":"PTE","code_points":[80,84,69]},"PYG":{"currency":"PYG","name":"Paraguayan guarani","cldr_symbol":"PYG","symbol":"Gs","code_points":[71,115]},"QAR":{"currency":"QAR","name":"Qatari rial","cldr_symbol":"QAR","symbol":"﷼","code_points":[65020]},"RHD":{"currency":"RHD","name":"Rhodesian dollar","cldr_symbol":"RHD","symbol":"RHD","code_points":[82,72,68]},"ROL":{"currency":"ROL","name":"Romanian leu (1952-2006)","cldr_symbol":"ROL","symbol":"ROL","code_points":[82,79,76]},"RON":{"currency":"RON","name":"Romanian leu","cldr_symbol":"RON","symbol":"lei","code_points":[108,101,105]},"RSD":{"currency":"RSD","name":"Serbian dinar","cldr_symbol":"RSD","symbol":"Дин.","code_points":[1044,1080,1085,46]},"RUB":{"currency":"RUB","name":"Russian ruble","cldr_symbol":"RUB","symbol":"руб","code_points":[1088,1091,1073]},"RUR":{"currency":"RUR","name":"Russian ruble (1991-1998)","cldr_symbol":"RUR","symbol":"RUR","code_points":[82,85,82]},"RWF":{"currency":"RWF","name":"Rwandan franc","cldr_symbol":"RWF","symbol":"RWF","code_points":[82,87,70]},"SAR":{"currency":"SAR","name":"Saudi riyal","cldr_symbol":"SAR","symbol":"﷼","code_points":[65020]},"SBD":{"currency":"SBD","name":"Solomon Islands dollar","cldr_symbol":"SBD","symbol":"$","code_points":[36]},"SCR":{"currency":"SCR","name":"Seychellois rupee","cldr_symbol":"SCR","symbol":"₨","code_points":[8360]},"SDD":{"currency":"SDD","name":"Sudanese dinar (1992-2007)","cldr_symbol":"SDD","symbol":"SDD","code_points":[83,68,68]},"SDG":{"currency":"SDG","name":"Sudanese pound","cldr_symbol":"SDG","symbol":"SDG","code_points":[83,68,71]},"SDP":{"currency":"SDP","name":"Sudanese pound (1957-1998)","cldr_symbol":"SDP","symbol":"SDP","code_points":[83,68,80]},"SEK":{"currency":"SEK","name":"Swedish krona","cldr_symbol":"SEK","symbol":"kr","code_points":[107,114]},"SGD":{"currency":"SGD","name":"Singapore dollar","cldr_symbol":"SGD","symbol":"$","code_points":[36]},"SHP":{"currency":"SHP","name":"Saint Helena pound","cldr_symbol":"SHP","symbol":"£","code_points":[163]},"SIT":{"currency":"SIT","name":"Slovenian tolar","cldr_symbol":"SIT","symbol":"SIT","code_points":[83,73,84]},"SKK":{"currency":"SKK","name":"Slovak koruna","cldr_symbol":"SKK","symbol":"SKK","code_points":[83,75,75]},"SLL":{"currency":"SLL","name":"Sierra Leonean leone","cldr_symbol":"SLL","symbol":"SLL","code_points":[83,76,76]},"SOS":{"currency":"SOS","name":"Somali shilling","cldr_symbol":"SOS","symbol":"S","code_points":[83]},"SRD":{"currency":"SRD","name":"Surinamese dollar","cldr_symbol":"SRD","symbol":"$","code_points":[36]},"SRG":{"currency":"SRG","name":"Surinamese guilder","cldr_symbol":"SRG","symbol":"SRG","code_points":[83,82,71]},"SSP":{"currency":"SSP","name":"South Sudanese pound","cldr_symbol":"SSP","symbol":"SSP","code_points":[83,83,80]},"STD":{"currency":"STD","name":"São Tomé and Príncipe dobra","cldr_symbol":"STD","symbol":"STD","code_points":[83,84,68]},"SUR":{"currency":"SUR","name":"Soviet rouble","cldr_symbol":"SUR","symbol":"SUR","code_points":[83,85,82]},"SVC":{"currency":"SVC","name":"Salvadoran colón","cldr_symbol":"SVC","symbol":"SVC","code_points":[83,86,67]},"SYP":{"currency":"SYP","name":"Syrian pound","cldr_symbol":"SYP","symbol":"£","code_points":[163]},"SZL":{"currency":"SZL","name":"Swazi lilangeni","cldr_symbol":"SZL","symbol":"SZL","code_points":[83,90,76]},"THB":{"currency":"THB","name":"Thai baht","cldr_symbol":"฿","symbol":"฿","code_points":[3647]},"TJR":{"currency":"TJR","name":"Tajikistani ruble","cldr_symbol":"TJR","symbol":"TJR","code_points":[84,74,82]},"TJS":{"currency":"TJS","name":"Tajikistani somoni","cldr_symbol":"TJS","symbol":"TJS","code_points":[84,74,83]},"TMM":{"currency":"TMM","name":"Turkmenistani manat (1993-2009)","cldr_symbol":"TMM","symbol":"TMM","code_points":[84,77,77]},"TMT":{"currency":"TMT","name":"Turkmenistani manat","cldr_symbol":"TMT","symbol":"TMT","code_points":[84,77,84]},"TND":{"currency":"TND","name":"Tunisian dinar","cldr_symbol":"TND","symbol":"TND","code_points":[84,78,68]},"TOP":{"currency":"TOP","name":"Tongan paʻanga","cldr_symbol":"TOP","symbol":"TOP","code_points":[84,79,80]},"TPE":{"currency":"TPE","name":"Timorese escudo","cldr_symbol":"TPE","symbol":"TPE","code_points":[84,80,69]},"TRL":{"currency":"TRL","name":"Turkish lira (1922-2005)","cldr_symbol":"TRL","symbol":"TRL","code_points":[84,82,76]},"TRY":{"currency":"TRY","name":"Turkish lira","cldr_symbol":"TRY","symbol":"TL","code_points":[84,76]},"TTD":{"currency":"TTD","name":"Trinidad and Tobago dollar","cldr_symbol":"TTD","symbol":"$","code_points":[36]},"TWD":{"currency":"TWD","name":"New Taiwan dollar","cldr_symbol":"NT$","symbol":"NT$","code_points":[78,84,36]},"TZS":{"currency":"TZS","name":"Tanzanian shilling","cldr_symbol":"TZS","symbol":"TZS","code_points":[84,90,83]},"UAH":{"currency":"UAH","name":"Ukrainian hryvnia","cldr_symbol":"UAH","symbol":"₴","code_points":[8372]},"UAK":{"currency":"UAK","name":"Ukrainian karbovanets","cldr_symbol":"UAK","symbol":"UAK","code_points":[85,65,75]},"UGS":{"currency":"UGS","name":"Ugandan shilling (1966-1987)","cldr_symbol":"UGS","symbol":"UGS","code_points":[85,71,83]},"UGX":{"currency":"UGX","name":"Ugandan shilling","cldr_symbol":"UGX","symbol":"UGX","code_points":[85,71,88]},"USD":{"currency":"USD","name":"US dollar","cldr_symbol":"$","symbol":"$","code_points":[36]},"USN":{"currency":"USN","name":"US dollar (next day)","cldr_symbol":"USN","symbol":"USN","code_points":[85,83,78]},"USS":{"currency":"USS","name":"US dollar (same day)","cldr_symbol":"USS","symbol":"USS","code_points":[85,83,83]},"UYI":{"currency":"UYI","name":"Uruguayan peso (indexed units)","cldr_symbol":"UYI","symbol":"UYI","code_points":[85,89,73]},"UYP":{"currency":"UYP","name":"Uruguayan peso (1975-1993)","cldr_symbol":"UYP","symbol":"UYP","code_points":[85,89,80]},"UYU":{"currency":"UYU","name":"Uruguayan peso","cldr_symbol":"UYU","symbol":"$U","code_points":[36,85]},"UZS":{"currency":"UZS","name":"Uzbekistan som","cldr_symbol":"UZS","symbol":"лв","code_points":[1083,1074]},"VEB":{"currency":"VEB","name":"Venezuelan bolívar (1871-2008)","cldr_symbol":"VEB","symbol":"VEB","code_points":[86,69,66]},"VEF":{"currency":"VEF","name":"Venezuelan bolívar","cldr_symbol":"VEF","symbol":"Bs","code_points":[66,115]},"VND":{"currency":"VND","name":"Vietnamese dong","cldr_symbol":"₫","symbol":"₫","code_points":[8363]},"VNN":{"currency":"VNN","name":"Vietnamese dong (1978-1985)","cldr_symbol":"VNN","symbol":"VNN","code_points":[86,78,78]},"VUV":{"currency":"VUV","name":"Vanuatu vatu","cldr_symbol":"VUV","symbol":"VUV","code_points":[86,85,86]},"WST":{"currency":"WST","name":"Samoan tala","cldr_symbol":"WST","symbol":"WST","code_points":[87,83,84]},"XAF":{"currency":"XAF","name":"CFA franc BEAC","cldr_symbol":"FCFA","symbol":"FCFA","code_points":[70,67,70,65]},"XAG":{"currency":"XAG","name":"troy ounce of silver","cldr_symbol":"XAG","symbol":"XAG","code_points":[88,65,71]},"XAU":{"currency":"XAU","name":"troy ounce of gold","cldr_symbol":"XAU","symbol":"XAU","code_points":[88,65,85]},"XBA":{"currency":"XBA","name":"European composite unit","cldr_symbol":"XBA","symbol":"XBA","code_points":[88,66,65]},"XBB":{"currency":"XBB","name":"European monetary unit","cldr_symbol":"XBB","symbol":"XBB","code_points":[88,66,66]},"XBC":{"currency":"XBC","name":"European unit of account (XBC)","cldr_symbol":"XBC","symbol":"XBC","code_points":[88,66,67]},"XBD":{"currency":"XBD","name":"European unit of account (XBD)","cldr_symbol":"XBD","symbol":"XBD","code_points":[88,66,68]},"XCD":{"currency":"XCD","name":"East Caribbean dollar","cldr_symbol":"EC$","symbol":"$","code_points":[36]},"XDR":{"currency":"XDR","name":"special drawing rights","cldr_symbol":"XDR","symbol":"XDR","code_points":[88,68,82]},"XEU":{"currency":"XEU","name":"European currency unit","cldr_symbol":"XEU","symbol":"XEU","code_points":[88,69,85]},"XFO":{"currency":"XFO","name":"French gold franc","cldr_symbol":"XFO","symbol":"XFO","code_points":[88,70,79]},"XFU":{"currency":"XFU","name":"French UIC-franc","cldr_symbol":"XFU","symbol":"XFU","code_points":[88,70,85]},"XOF":{"currency":"XOF","name":"CFA franc BCEAO","cldr_symbol":"CFA","symbol":"CFA","code_points":[67,70,65]},"XPD":{"currency":"XPD","name":"troy ounce of palladium","cldr_symbol":"XPD","symbol":"XPD","code_points":[88,80,68]},"XPF":{"currency":"XPF","name":"CFP franc","cldr_symbol":"CFPF","symbol":"CFPF","code_points":[67,70,80,70]},"XPT":{"currency":"XPT","name":"troy ounce of platinum","cldr_symbol":"XPT","symbol":"XPT","code_points":[88,80,84]},"XRE":{"currency":"XRE","name":"RINET Funds unit","cldr_symbol":"XRE","symbol":"XRE","code_points":[88,82,69]},"XSU":{"currency":"XSU","name":"Sucre","cldr_symbol":"XSU","symbol":"XSU","code_points":[88,83,85]},"XTS":{"currency":"XTS","name":"Testing Currency unit","cldr_symbol":"XTS","symbol":"XTS","code_points":[88,84,83]},"XUA":{"currency":"XUA","name":"ADB unit of account","cldr_symbol":"XUA","symbol":"XUA","code_points":[88,85,65]},"XXX":{"currency":"XXX","name":"(unknown unit of currency)","cldr_symbol":"XXX","symbol":"XXX","code_points":[88,88,88]},"YDD":{"currency":"YDD","name":"Yemeni dinar","cldr_symbol":"YDD","symbol":"YDD","code_points":[89,68,68]},"YER":{"currency":"YER","name":"Yemeni rial","cldr_symbol":"YER","symbol":"﷼","code_points":[65020]},"YUD":{"currency":"YUD","name":"Yugoslavian hard dinar (1966-1990)","cldr_symbol":"YUD","symbol":"YUD","code_points":[89,85,68]},"YUM":{"currency":"YUM","name":"Yugoslavian new dinar (1994-2002)","cldr_symbol":"YUM","symbol":"YUM","code_points":[89,85,77]},"YUN":{"currency":"YUN","name":"Yugoslavian convertible dinar (1990-1992)","cldr_symbol":"YUN","symbol":"YUN","code_points":[89,85,78]},"YUR":{"currency":"YUR","name":"Yugoslavian reformed dinar (1992-1993)","cldr_symbol":"YUR","symbol":"YUR","code_points":[89,85,82]},"ZAL":{"currency":"ZAL","name":"South African rand (financial)","cldr_symbol":"ZAL","symbol":"ZAL","code_points":[90,65,76]},"ZAR":{"currency":"ZAR","name":"South African rand","cldr_symbol":"ZAR","symbol":"R","code_points":[82]},"ZMK":{"currency":"ZMK","name":"Zambian kwacha (1968-2012)","cldr_symbol":"ZMK","symbol":"ZMK","code_points":[90,77,75]},"ZMW":{"currency":"ZMW","name":"Zambian kwacha","cldr_symbol":"ZMW","symbol":"ZMW","code_points":[90,77,87]},"ZRN":{"currency":"ZRN","name":"Zairean new zaire (1993-1998)","cldr_symbol":"ZRN","symbol":"ZRN","code_points":[90,82,78]},"ZRZ":{"currency":"ZRZ","name":"Zairean zaire (1971-1993)","cldr_symbol":"ZRZ","symbol":"ZRZ","code_points":[90,82,90]},"ZWD":{"currency":"ZWD","name":"Zimbabwean dollar (1980-2008)","cldr_symbol":"ZWD","symbol":"Z$","code_points":[90,36]},"ZWL":{"currency":"ZWL","name":"Zimbabwean dollar (2009)","cldr_symbol":"ZWL","symbol":"ZWL","code_points":[90,87,76]},"ZWR":{"currency":"ZWR","name":"Zimbabwean dollar (2008)","cldr_symbol":"ZWR","symbol":"ZWR","code_points":[90,87,82]}};
1240
+
1241
+ Currencies.currency_codes = function() {
1242
+ var data, _;
1243
+ return this.codes || (this.codes = (function() {
1244
+ var _ref4, _results;
1245
+ _ref4 = this.currencies;
1246
+ _results = [];
1247
+ for (_ in _ref4) {
1248
+ data = _ref4[_];
1249
+ _results.push(data.code);
1250
+ }
1251
+ return _results;
1252
+ }).call(this));
1253
+ };
1254
+
1255
+ Currencies.for_code = function(currency_code) {
1256
+ var country_name, data, result, _ref4;
1257
+ result = null;
1258
+ _ref4 = this.currencies;
1259
+ for (country_name in _ref4) {
1260
+ data = _ref4[country_name];
1261
+ if (data.currency === currency_code) {
1262
+ result = {
1263
+ country: country_name,
1264
+ cldr_symbol: data.cldr_symbol,
1265
+ symbol: data.symbol,
1266
+ currency: data.currency
1267
+ };
1268
+ break;
1269
+ }
1270
+ }
1271
+ return result;
1272
+ };
1273
+
1274
+ return Currencies;
1275
+
1276
+ })();
1277
+
1278
+ TwitterCldr.ListFormatter = (function() {
1279
+ function ListFormatter(options) {
1280
+ if (options == null) {
1281
+ options = {};
1282
+ }
1283
+ this.formats = {"2":"{0} and {1}","end":"{0} and {1}","middle":"{0}, {1}","start":"{0}, {1}"};
1284
+ }
1285
+
1286
+ ListFormatter.prototype.format = function(list) {
1287
+ if (this.formats[list.length.toString()] != null) {
1288
+ return this.compose(this.formats[list.length.toString()], list);
1289
+ } else {
1290
+ return this.compose_list(list);
1291
+ }
1292
+ };
1293
+
1294
+ ListFormatter.prototype.compose_list = function(list) {
1295
+ var format_key, i, result, _i, _ref4;
1296
+ result = this.compose(this.formats.end || this.formats.middle || "", [list[list.length - 2], list[list.length - 1]]);
1297
+ if (list.length > 2) {
1298
+ for (i = _i = 3, _ref4 = list.length; 3 <= _ref4 ? _i <= _ref4 : _i >= _ref4; i = 3 <= _ref4 ? ++_i : --_i) {
1299
+ format_key = i === list.length ? "start" : "middle";
1300
+ if (this.formats[format_key] == null) {
1301
+ format_key = "middle";
1302
+ }
1303
+ result = this.compose(this.formats[format_key] || "", [list[list.length - i], result]);
1304
+ }
1305
+ }
1306
+ return result;
1307
+ };
1308
+
1309
+ ListFormatter.prototype.compose = function(format, elements) {
1310
+ var element, result;
1311
+ elements = (function() {
1312
+ var _i, _len, _results;
1313
+ _results = [];
1314
+ for (_i = 0, _len = elements.length; _i < _len; _i++) {
1315
+ element = elements[_i];
1316
+ if (element !== null) {
1317
+ _results.push(element);
1318
+ }
1319
+ }
1320
+ return _results;
1321
+ })();
1322
+ if (elements.length > 1) {
1323
+ result = format.replace(/\{(\d+)\}/g, function() {
1324
+ return RegExp.$1;
1325
+ });
1326
+ if (TwitterCldr.is_rtl) {
1327
+ result = TwitterCldr.Bidi.from_string(result, {
1328
+ "direction": "RTL"
1329
+ }).reorder_visually().toString();
1330
+ }
1331
+ return result.replace(/(\d+)/g, function() {
1332
+ return elements[parseInt(RegExp.$1)];
1333
+ });
1334
+ } else {
1335
+ return elements[0] || "";
1336
+ }
1337
+ };
1338
+
1339
+ return ListFormatter;
1340
+
1341
+ })();
1342
+
1343
+ TwitterCldr.Bidi = (function() {
1344
+ var MAX_DEPTH;
1345
+
1346
+ MAX_DEPTH = 62;
1347
+
1348
+ function Bidi(options) {
1349
+ if (options == null) {
1350
+ options = {};
1351
+ }
1352
+ this.bidi_classes = {"BN":{"8":[0],"13":[14],"5":[127,8298],"25":[134],"0":[173,65279,917505],"2":[8203],"4":[8288],"7":[119155],"95":[917536]},"S":{"0":[9,11,31]},"B":{"0":[10,13,133,8233],"2":[28]},"WS":{"0":[12,32,5760,6158,8232,8287,12288],"10":[8192]},"ON":{"1":[33,171,174,697,884,900,1542,1550,5787,6468,8189,8448,8456,8506,12342,12443,12829,13278,42622,64830,65120,65281,126704,127338],"4":[38,187,8512,65286,65529,127942],"5":[59,91,3059,8478,11493,65307,65339,127792],"3":[123,166,2038,3898,8451,8522,12289,13004,13175,43048,43124,128249,128320],"0":[161,180,215,247,894,903,1014,1418,1758,1769,3066,5120,6464,8125,8468,8485,8487,8489,8585,12336,12448,12539,13311,42611,42888,65021,65105,65108,65128,65131,65793,67871,119365,120539,120597,120655,120713,120771,128064],"2":[182,8127,8141,8157,8173,8316,8332,8470,12349,12924,42509,65124,65506],"13":[706,722,127153],"8":[741,65110],"16":[751,127968],"6":[3192,11513,65512,68409],"9":[5008,6128,11088,65040],"10":[6144,9280,65371,128581],"33":[6622,42752],"23":[8208,128336],"14":[8245,12977,127136,127169,127185],"25":[8261,9083,11904],"15":[8528,12880],"129":[8592],"289":[8724],"93":[9110],"38":[9216],"39":[9312],"449":[9450],"82":[9901],"254":[9985],"588":[10496],"59":[11776],"88":[11931],"213":[12032],"11":[12272,65936],"24":[12296],"35":[12736],"63":[19904],"54":[42128],"31":[65072],"74":[65856],"19":[69714,127872],"65":[119296],"86":[119552],"43":[126976],"99":[127024],"32":[127744],"69":[127799,128507,128640],"36":[127904],"62":[128000],"181":[128066],"61":[128256],"115":[128768]},"ET":{"2":[35,65283],"3":[162],"1":[176,1545,2546,43064,65129,65504,65509],"0":[1423,1642,2555,2801,3065,3647,6107,8494,8723,65119],"4":[8240],"25":[8352]},"ES":{"0":[43,45,8722,64297,65291,65293],"1":[8314,8330,65122]},"CS":{"0":[44,58,160,1548,8239,8260,65104,65106,65109,65292,65306],"1":[46,65294]},"EN":{"9":[48,1776,8320,65296],"1":[178],"0":[185,8304],"5":[8308],"19":[9352],"49":[120782],"10":[127232]},"L":{"25":[65,97,5761,6576,65313,65345,65549],"0":[170,181,186,750,902,908,1417,2363,2482,2510,2519,2563,2654,2691,2761,2768,2880,2903,2947,2972,3024,3031,3133,3199,3294,3406,3415,3517,3716,3722,3725,3749,3751,3773,3782,3894,3896,3967,3973,4145,4152,4295,4301,4696,4800,6070,6108,6314,6743,6753,6965,6971,7082,7143,7150,7379,7393,8025,8027,8029,8126,8206,8305,8319,8450,8455,8469,8484,8486,8488,9109,9900,11559,11565,43047,43597,43697,43712,43714,65792,65794,69632,69932,71340,71350,119970,119995,120134],"22":[192,3090,3218,6656,11648],"30":[216,8031,13280,66304,127248],"448":[248],"6":[699,1369,2425,2474,2548,2602,2730,2858,3449,3520,3648,3737,4688,4792,6100,8118,8134,8182,11680,11688,11696,11704,11712,11720,11728,11736,43808,43816,64256,69703,69819,119997,120086,120138],"1":[720,886,2434,2447,2503,2507,2524,2575,2610,2613,2616,2738,2763,2784,2818,2831,2866,2877,2887,2891,2908,2969,2974,2979,3006,3009,3160,3168,3202,3274,3285,3296,3313,3330,3424,3458,3634,3713,3719,3754,3762,4155,4227,5941,6087,6448,6755,7078,7154,7220,7413,8526,11506,11631,12334,43346,43444,43450,43486,43567,43571,43701,44006,65596,69815,71342,110592,119171,119966,119973,127568],"4":[736,2741,2869,3125,3253,3776,3976,6512,6973,8473,8517,12337,12344,43705,64275,120128],"3":[880,890,2365,2377,2486,2493,2649,2749,2962,3137,3389,3732,3757,3804,4186,4682,4698,4746,4786,4802,4882,5902,6435,7401,8144,8490,8508,11499,12540,42896,43015,44009,66336,74864,119977,120071,120123],"2":[904,2382,2527,2622,2674,2703,2911,2958,2984,3014,3018,3073,3086,3214,3270,3342,3398,3402,3535,3570,3745,5998,6441,6681,7146,8130,8178,12293,12445,43011,43584,65498],"19":[910,2404],"82":[931],"139":[1015],"157":[1162,66560],"37":[1329,7968,11520,43264],"38":[1377,119040],"54":[2307],"9":[2392,2662,3114,3174,3242,3302,3792,3902,6112,6160,6784,6800,8458,43000,43250,43600,44016,66720,69734,69872,70079,70096,71360],"7":[2437,2821,3077,3205,3261,3333,3544,4030,6078,7360,8016,43056,43588,43758,120077,120772],"21":[2451,2579,2707,2835],"11":[2534,2990,12992,43214,65536,119982],"5":[2565,2949,4039,4231,6451,6765,7406,7960,8008,8150,42738,42889,43777,43785,43793,65474,65482,65490],"8":[2693,3507,6979,7028,12321,65847,119146,127552],"10":[2790,6608,8495,42912,43471],"17":[2918,3461,5920,5952,119648],"12":[3046,3663,4046,4213,5888,5984,8160,8336,94099],"40":[3346,4704,6272,8544,12549,43520],"15":[3430,4193,4992],"23":[3482,3840,42624],"47":[3585,6916,7164,12832,43395,43648,119214],"26":[3866,6992,66352],"35":[3913,69891],"44":[4096,12784,65799,66000],"24":[4159,43020,43310,69840],"14":[4238,4808,7227,65599],"39":[4254,6470],"376":[4304],"32":[4752],"56":[4824,120540,120598,120656,120714],"66":[4888],"28":[4960,6400,66176,127462],"84":[5024,119808],"638":[5121],"80":[5792],"51":[6016,43072,70018],"87":[6176],"69":[6320],"43":[6528],"55":[6686,11568],"13":[6816,65616,66504,69942],"31":[7042,43612],"57":[7084,127280],"50":[7245,120488],"191":[7424],"277":[7680],"52":[8064],"68":[9014,93952],"77":[9372],"255":[10240],"46":[11264,11312,13008,42560,94032],"132":[11360],"85":[12353],"89":[12449],"93":[12593],"42":[12688,71296,127344,127504],"27":[12896,42512,120094],"49":[12927],"118":[13056],"98":[13179,74752],"6591":[13312],"22156":[19968],"316":[42192],"79":[42656],"101":[42786],"67":[43136],"29":[43359,66432,119180],"16":[43453,43739],"36":[43968,66463],"11206":[44032],"48":[55243,66208,69762],"8813":[55296],"105":[64112],"88":[65382],"18":[65576],"122":[65664],"53":[69634],"878":[73728],"1070":[77824],"568":[92160],"245":[118784],"61":[119081],"70":[119894],"64":[120005],"339":[120146],"42719":[131072],"4383":[173824],"541":[194560],"131071":[983040]},"NSM":{"111":[768],"6":[1155,1750,2385,3636,6071,6744,7394,65056,119173],"44":[1425],"0":[1471,1479,1648,1809,2362,2364,2381,2433,2492,2509,2620,2641,2677,2748,2765,2817,2876,2879,2893,2902,2946,3008,3021,3260,3405,3530,3542,3633,3761,3893,3895,3897,4038,4226,4237,4253,6086,6109,6313,6450,6742,6752,6754,6783,6964,6972,6978,7083,7142,7149,7405,7412,11647,42655,43010,43014,43019,43204,43443,43452,43587,43596,43696,43713,43766,44005,44008,44013,64286,66045,68159,69633,71339,71341,71351],"1":[1473,1476,1767,2402,2530,2561,2625,2631,2672,2689,2759,2786,2914,3157,3170,3276,3298,3426,3771,3864,3974,4153,4157,4184,4229,5970,6002,6068,6439,6679,7040,7080,7144,7222,12441,42736,43045,43569,43573,43703,43710,43756,68101,69760,69817,70016],"10":[1552,1958,3981,6089,43335],"20":[1611],"5":[1759,3764,3784,4146,43561,71344],"3":[1770,2070,2497,2881,3146,3393,4141,4209,6912,7074,7676,12330,42607,43446,68108,69811,94095,119210],"26":[1840,2276],"8":[2027,2075,7019,70070],"2":[2085,2137,2304,2635,3134,3142,3538,4190,4957,5906,5938,6155,6432,6457,7151,7376,11503,43392,43698,68097,68152,69888,119143,119362],"4":[2089,2753,3968,6966,69927],"7":[2369,3655,6757,7212,43302,69933,119163],"13":[3953],"35":[3993],"9":[6771,42612],"12":[7380],"38":[7616],"32":[8400],"31":[11744],"17":[43232],"15":[65024],"14":[69688],"239":[917760]},"R":{"0":[1470,1472,1475,1478,2042,2074,2084,2088,2142,8207,64285,64318,67592,67644,67903,68096],"26":[1488,68121,68440],"4":[1520,64312],"42":[1984],"1":[2036,64320,64323,67639,68030],"21":[2048,68416],"14":[2096],"24":[2112],"9":[64287,64326],"12":[64298],"5":[67584],"43":[67594],"22":[67647],"8":[67671,68176],"27":[67840],"25":[67872],"55":[67968],"3":[68112],"2":[68117],"7":[68160,68472],"31":[68192],"53":[68352],"72":[68608]},"AN":{"4":[1536],"9":[1632],"1":[1643],"0":[1757],"30":[69216]},"AL":{"0":[1544,1547,1549,1563,1969,2208,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590],"44":[1566],"2":[1645,126541,126625],"100":[1649],"1":[1765,1774,1807,126497,126545,126561],"19":[1786],"29":[1810],"88":[1869],"10":[2210],"113":[64336],"362":[64467],"63":[64848],"53":[64914],"12":[65008],"4":[65136,126629],"134":[65142],"3":[126464,126516,126567,126580,126585],"26":[126469],"9":[126505,126592],"6":[126572],"16":[126603,126635]},"LRE":{"0":[8234]},"RLE":{"0":[8235]},"PDF":{"0":[8236]},"LRO":{"0":[8237]},"RLO":{"0":[8238]}};
1353
+ this.string_arr = options.string_arr || options.types;
1354
+ this.types = options.types || [];
1355
+ this.levels = [];
1356
+ this.runs = [];
1357
+ this.direction = options.direction;
1358
+ this.default_direction = options.default_direction || "LTR";
1359
+ this.length = this.types.length;
1360
+ this.run_bidi();
1361
+ }
1362
+
1363
+ Bidi.bidi_class_for = function(code_point) {
1364
+ var bidi_class, end, range, range_list, range_offset, ranges, start, _i, _len, _ref4;
1365
+ _ref4 = this.bidi_classes;
1366
+ for (bidi_class in _ref4) {
1367
+ ranges = _ref4[bidi_class];
1368
+ for (range_offset in ranges) {
1369
+ range_list = ranges[range_offset];
1370
+ for (_i = 0, _len = range_list.length; _i < _len; _i++) {
1371
+ range = range_list[_i];
1372
+ start = range;
1373
+ end = start + parseInt(range_offset);
1374
+ if ((code_point >= start) && (code_point <= end)) {
1375
+ return bidi_class;
1376
+ }
1377
+ }
1378
+ }
1379
+ }
1380
+ return null;
1381
+ };
1382
+
1383
+ Bidi.from_string = function(str, options) {
1384
+ var string_arr;
1385
+ if (options == null) {
1386
+ options = {};
1387
+ }
1388
+ string_arr = TwitterCldr.Utilities.unpack_string(str);
1389
+ options.types || (options.types = this.compute_types(string_arr));
1390
+ options.string_arr || (options.string_arr = string_arr);
1391
+ return new TwitterCldr.Bidi(options);
1392
+ };
1393
+
1394
+ Bidi.from_type_array = function(types, options) {
1395
+ if (options == null) {
1396
+ options = {};
1397
+ }
1398
+ options.types || (options.types = types);
1399
+ return new TwitterCldr.Bidi(options);
1400
+ };
1401
+
1402
+ Bidi.compute_types = function(arr) {
1403
+ var code_point, _i, _len, _results;
1404
+ _results = [];
1405
+ for (_i = 0, _len = arr.length; _i < _len; _i++) {
1406
+ code_point = arr[_i];
1407
+ _results.push(TwitterCldr.Bidi.bidi_class_for(code_point));
1408
+ }
1409
+ return _results;
1410
+ };
1411
+
1412
+ Bidi.prototype.toString = function() {
1413
+ return TwitterCldr.Utilities.pack_array(this.string_arr);
1414
+ };
1415
+
1416
+ Bidi.prototype.reorder_visually = function() {
1417
+ var depth, finish, i, level, lowest_odd, max, start, tmpb, tmpo, _i, _j, _k, _len, _ref4, _ref5;
1418
+ if (!this.string_arr) {
1419
+ throw "No string given!";
1420
+ }
1421
+ max = 0;
1422
+ lowest_odd = MAX_DEPTH + 1;
1423
+ _ref4 = this.levels;
1424
+ for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
1425
+ level = _ref4[_i];
1426
+ max = TwitterCldr.Utilities.max([level, max]);
1427
+ if (!TwitterCldr.Utilities.is_even(level)) {
1428
+ lowest_odd = TwitterCldr.Utilities.min([lowest_odd, level]);
1429
+ }
1430
+ }
1431
+ for (depth = _j = max; max <= 0 ? _j < 0 : _j > 0; depth = max <= 0 ? ++_j : --_j) {
1432
+ start = 0;
1433
+ while (start < this.levels.length) {
1434
+ while (start < this.levels.length && this.levels[start] < depth) {
1435
+ start += 1;
1436
+ }
1437
+ if (start === this.levels.length) {
1438
+ break;
1439
+ }
1440
+ finish = start + 1;
1441
+ while (finish < this.levels.length && this.levels[finish] >= depth) {
1442
+ finish += 1;
1443
+ }
1444
+ for (i = _k = 0, _ref5 = (finish - start) / 2; 0 <= _ref5 ? _k < _ref5 : _k > _ref5; i = 0 <= _ref5 ? ++_k : --_k) {
1445
+ tmpb = this.levels[finish - i - 1];
1446
+ this.levels[finish - i - 1] = this.levels[start + i];
1447
+ this.levels[start + i] = tmpb;
1448
+ tmpo = this.string_arr[finish - i - 1];
1449
+ this.string_arr[finish - i - 1] = this.string_arr[start + i];
1450
+ this.string_arr[start + i] = tmpo;
1451
+ }
1452
+ start = finish + 1;
1453
+ }
1454
+ }
1455
+ return this;
1456
+ };
1457
+
1458
+ Bidi.prototype.compute_paragraph_embedding_level = function() {
1459
+ var type, _i, _len, _ref4;
1460
+ if (["LTR", "RTL"].indexOf(this.direction) > -1) {
1461
+ if (this.direction === "LTR") {
1462
+ return 0;
1463
+ } else {
1464
+ return 1;
1465
+ }
1466
+ } else {
1467
+ _ref4 = this.types;
1468
+ for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
1469
+ type = _ref4[_i];
1470
+ if (type === "L") {
1471
+ return 0;
1472
+ }
1473
+ if (type === "R") {
1474
+ return 1;
1475
+ }
1476
+ }
1477
+ if (this.default_direction === "LTR") {
1478
+ return 0;
1479
+ } else {
1480
+ return 1;
1481
+ }
1482
+ }
1483
+ };
1484
+
1485
+ Bidi.prototype.compute_explicit_levels = function() {
1486
+ var current_embedding, directional_override, embedding_stack, i, input, is_ltr, is_special, len, new_embedding, next_fmt, output, size, sp, _i, _j, _ref4, _ref5;
1487
+ current_embedding = this.base_embedding;
1488
+ directional_override = -1;
1489
+ embedding_stack = [];
1490
+ this.formatter_indices || (this.formatter_indices = []);
1491
+ sp = 0;
1492
+ for (i = _i = 0, _ref4 = this.length; 0 <= _ref4 ? _i < _ref4 : _i > _ref4; i = 0 <= _ref4 ? ++_i : --_i) {
1493
+ is_ltr = false;
1494
+ is_special = true;
1495
+ is_ltr = this.types[i] === "LRE" || this.types[i] === "LRO";
1496
+ switch (this.types[i]) {
1497
+ case "RLE":
1498
+ case "RLO":
1499
+ case "LRE":
1500
+ case "LRO":
1501
+ new_embedding = is_ltr ? (current_embedding & ~1) + 2 : (current_embedding + 1) | 1;
1502
+ if (new_embedding < MAX_DEPTH) {
1503
+ if (directional_override !== -1) {
1504
+ current_embedding |= -0x80;
1505
+ }
1506
+ embedding_stack[sp] = current_embedding;
1507
+ current_embedding = new_embedding;
1508
+ sp += 1;
1509
+ directional_override = this.types[i] === "LRO" ? "L" : this.types[i] === "RLO" ? "R" : -1;
1510
+ }
1511
+ break;
1512
+ case "PDF":
1513
+ if (sp > 0) {
1514
+ sp -= 1;
1515
+ new_embedding = embedding_stack[sp];
1516
+ current_embedding = new_embedding & 0x7f;
1517
+ directional_override = new_embedding < 0 ? (_ref5 = (new_embedding & 1) === 0) != null ? _ref5 : {
1518
+ "L": "R"
1519
+ } : -1;
1520
+ }
1521
+ break;
1522
+ default:
1523
+ is_special = false;
1524
+ }
1525
+ this.levels[i] = current_embedding;
1526
+ if (is_special) {
1527
+ this.formatter_indices.push(i);
1528
+ } else if (directional_override !== -1) {
1529
+ this.types[i] = directional_override;
1530
+ }
1531
+ }
1532
+ output = 0;
1533
+ input = 0;
1534
+ size = this.formatter_indices.length;
1535
+ for (i = _j = 0; 0 <= size ? _j <= size : _j >= size; i = 0 <= size ? ++_j : --_j) {
1536
+ next_fmt = i === size ? this.length : this.formatter_indices[i];
1537
+ len = next_fmt - input;
1538
+ TwitterCldr.Utilities.arraycopy(this.levels, input, this.levels, output, len);
1539
+ TwitterCldr.Utilities.arraycopy(this.types, input, this.types, output, len);
1540
+ output += len;
1541
+ input = next_fmt + 1;
1542
+ }
1543
+ return this.length -= this.formatter_indices.length;
1544
+ };
1545
+
1546
+ Bidi.prototype.compute_runs = function() {
1547
+ var current_embedding, i, last_run_start, run_count, where, _i, _j, _ref4, _ref5;
1548
+ run_count = 0;
1549
+ current_embedding = this.base_embedding;
1550
+ for (i = _i = 0, _ref4 = this.length; 0 <= _ref4 ? _i < _ref4 : _i > _ref4; i = 0 <= _ref4 ? ++_i : --_i) {
1551
+ if (this.levels[i] !== current_embedding) {
1552
+ current_embedding = this.levels[i];
1553
+ run_count += 1;
1554
+ }
1555
+ }
1556
+ where = 0;
1557
+ last_run_start = 0;
1558
+ current_embedding = this.base_embedding;
1559
+ for (i = _j = 0, _ref5 = this.length; 0 <= _ref5 ? _j < _ref5 : _j > _ref5; i = 0 <= _ref5 ? ++_j : --_j) {
1560
+ if (this.levels[i] !== current_embedding) {
1561
+ this.runs[where] = last_run_start;
1562
+ where += 1;
1563
+ last_run_start = i;
1564
+ current_embedding = this.levels[i];
1565
+ }
1566
+ }
1567
+ return this.runs[where] = last_run_start;
1568
+ };
1569
+
1570
+ Bidi.prototype.resolve_weak_types = function() {
1571
+ var eor, finish, i, j, k, level, next_level, next_type, prev_strong_type, prev_type, previous_level, run_count, run_idx, sor, start, _i, _j, _k;
1572
+ run_count = this.runs.length;
1573
+ previous_level = this.base_embedding;
1574
+ for (run_idx = _i = 0; 0 <= run_count ? _i < run_count : _i > run_count; run_idx = 0 <= run_count ? ++_i : --_i) {
1575
+ start = this.get_run_start(run_idx);
1576
+ finish = this.get_run_limit(run_idx);
1577
+ level = this.get_run_level(run_idx) || 0;
1578
+ sor = TwitterCldr.Utilities.is_even(TwitterCldr.Utilities.max([previous_level, level])) ? "L" : "R";
1579
+ next_level = run_idx === (run_count - 1) ? this.base_embedding : this.get_run_level(run_idx + 1) || 0;
1580
+ eor = TwitterCldr.Utilities.is_even(TwitterCldr.Utilities.max([level, next_level])) ? "L" : "R";
1581
+ prev_type = sor;
1582
+ prev_strong_type = sor;
1583
+ for (i = _j = start; start <= finish ? _j < finish : _j > finish; i = start <= finish ? ++_j : --_j) {
1584
+ next_type = i === (finish - 1) ? eor : this.types[i + 1];
1585
+ if (this.types[i] === "NSM") {
1586
+ this.types[i] = prev_type;
1587
+ } else {
1588
+ prev_type = this.types[i];
1589
+ }
1590
+ if (this.types[i] === "EN") {
1591
+ if (prev_strong_type === "AL") {
1592
+ this.types[i] = "AN";
1593
+ }
1594
+ } else if (this.types[i] === "L" || this.types[i] === "R" || this.types[i] === "AL") {
1595
+ prev_strong_type = this.types[i];
1596
+ }
1597
+ if (this.types[i] === "AL") {
1598
+ this.types[i] = "R";
1599
+ }
1600
+ if (prev_type === "EN" && next_type === "EN") {
1601
+ if (this.types[i] === "ES" || this.types[i] === "CS") {
1602
+ this.types[i] = nextType;
1603
+ }
1604
+ } else if (prev_type === "AN" && next_type === "AN" && this.types[i] === "CS") {
1605
+ this.types[i] = next_type;
1606
+ }
1607
+ if (this.types[i] === "ET" || this.types[i] === "BN") {
1608
+ if (prev_type === "EN") {
1609
+ this.types[i] = prev_type;
1610
+ } else {
1611
+ j = i + 1;
1612
+ while (j < finish && this.types[j] === "ET" || this.types[j] === "BN") {
1613
+ j += 1;
1614
+ }
1615
+ if (j < finish && this.types[j] === "EN") {
1616
+ for (k = _k = i; i <= j ? _k < j : _k > j; k = i <= j ? ++_k : --_k) {
1617
+ this.types[k] = "EN";
1618
+ }
1619
+ }
1620
+ }
1621
+ }
1622
+ if (this.types[i] === "ET" || this.types[i] === "CS" || this.types[i] === "BN") {
1623
+ this.types[i] = "ON";
1624
+ }
1625
+ if (prev_strong_type === "L" && this.types[i] === "EN") {
1626
+ this.types[i] = prev_strong_type;
1627
+ }
1628
+ }
1629
+ previous_level = level;
1630
+ }
1631
+ };
1632
+
1633
+ Bidi.prototype.get_run_count = function() {
1634
+ return this.runs.length;
1635
+ };
1636
+
1637
+ Bidi.prototype.get_run_level = function(which) {
1638
+ return this.levels[this.runs[which]];
1639
+ };
1640
+
1641
+ Bidi.prototype.get_run_limit = function(which) {
1642
+ if (which === (this.runs.length - 1)) {
1643
+ return this.length;
1644
+ } else {
1645
+ return this.runs[which + 1];
1646
+ }
1647
+ };
1648
+
1649
+ Bidi.prototype.get_run_start = function(which) {
1650
+ return this.runs[which];
1651
+ };
1652
+
1653
+ Bidi.prototype.resolve_implicit_levels = function() {
1654
+ var i, _i, _ref4;
1655
+ for (i = _i = 0, _ref4 = this.length; 0 <= _ref4 ? _i < _ref4 : _i > _ref4; i = 0 <= _ref4 ? ++_i : --_i) {
1656
+ if ((this.levels[i] & 1) === 0) {
1657
+ if (this.types[i] === "R") {
1658
+ this.levels[i] += 1;
1659
+ } else if (this.types[i] === "AN" || this.types[i] === "EN") {
1660
+ this.levels[i] += 2;
1661
+ }
1662
+ } else {
1663
+ if (this.types[i] === "L" || this.types[i] === "AN" || this.types[i] === "EN") {
1664
+ this.levels[i] += 1;
1665
+ }
1666
+ }
1667
+ }
1668
+ };
1669
+
1670
+ Bidi.prototype.resolve_neutral_types = function() {
1671
+ var embedding_direction, eor, finish, i, j, level, neutral_start, new_strong, next_level, override, prev_strong, previous_level, run, run_count, sor, start, this_type, _i, _j, _k;
1672
+ run_count = this.get_run_count();
1673
+ previous_level = this.base_embedding;
1674
+ for (run = _i = 0; 0 <= run_count ? _i < run_count : _i > run_count; run = 0 <= run_count ? ++_i : --_i) {
1675
+ start = this.get_run_start(run);
1676
+ finish = this.get_run_limit(run);
1677
+ level = this.get_run_level(run);
1678
+ if (level == null) {
1679
+ continue;
1680
+ }
1681
+ embedding_direction = TwitterCldr.Utilities.is_even(level) ? "L" : "R";
1682
+ sor = TwitterCldr.Utilities.is_even(TwitterCldr.Utilities.max([previous_level, level])) ? "L" : "R";
1683
+ next_level = run === (run_count - 1) ? this.base_embedding : this.get_run_level(run + 1);
1684
+ eor = TwitterCldr.Utilities.is_even(TwitterCldr.Utilities.max([level, next_level])) ? "L" : "R";
1685
+ prev_strong = sor;
1686
+ neutral_start = -1;
1687
+ for (i = _j = start; start <= finish ? _j <= finish : _j >= finish; i = start <= finish ? ++_j : --_j) {
1688
+ new_strong = -1;
1689
+ this_type = i === finish ? eor : this.types[i];
1690
+ switch (this_type) {
1691
+ case "L":
1692
+ new_strong = "L";
1693
+ break;
1694
+ case "R":
1695
+ case "AN":
1696
+ case "EN":
1697
+ new_strong = "R";
1698
+ break;
1699
+ case "BN":
1700
+ case "ON":
1701
+ case "S":
1702
+ case "B":
1703
+ case "WS":
1704
+ if (neutral_start === -1) {
1705
+ neutral_start = i;
1706
+ }
1707
+ }
1708
+ if (new_strong !== -1) {
1709
+ if (neutral_start !== -1) {
1710
+ override = prev_strong === new_strong ? prev_strong : embedding_direction;
1711
+ for (j = _k = neutral_start; neutral_start <= i ? _k < i : _k > i; j = neutral_start <= i ? ++_k : --_k) {
1712
+ this.types[j] = override;
1713
+ }
1714
+ }
1715
+ prev_strong = new_strong;
1716
+ neutral_start = -1;
1717
+ }
1718
+ }
1719
+ previous_level = level;
1720
+ }
1721
+ };
1722
+
1723
+ Bidi.prototype.reinsert_formatting_codes = function() {
1724
+ var index, input, left_level, len, next_fmt, output, right_level, _i, _ref4;
1725
+ if ((this.formatter_indices != null) && this.formatter_indices.length > 0) {
1726
+ input = this.length;
1727
+ output = this.levels.length;
1728
+ for (index = _i = _ref4 = this.formatter_indices.length - 1; _ref4 <= 0 ? _i <= 0 : _i >= 0; index = _ref4 <= 0 ? ++_i : --_i) {
1729
+ next_fmt = this.formatter_indices[index];
1730
+ len = output - next_fmt - 1;
1731
+ output = next_fmt;
1732
+ input -= len;
1733
+ if (next_fmt + 1 < this.levels.length) {
1734
+ TwitterCldr.Utilities.arraycopy(this.levels, input, this.levels, next_fmt + 1, len);
1735
+ }
1736
+ right_level = output === this.levels.length - 1 ? this.base_embedding : this.levels[output + 1] != null ? this.levels[output + 1] : 0;
1737
+ left_level = input === 0 ? this.base_embedding : this.levels[input] != null ? this.levels[input] : 0;
1738
+ this.levels[output] = TwitterCldr.Utilities.max([left_level, right_level]);
1739
+ }
1740
+ }
1741
+ return this.length = this.levels.length;
1742
+ };
1743
+
1744
+ Bidi.prototype.run_bidi = function() {
1745
+ this.base_embedding = this.compute_paragraph_embedding_level();
1746
+ this.compute_explicit_levels();
1747
+ this.compute_runs();
1748
+ this.resolve_weak_types();
1749
+ this.resolve_neutral_types();
1750
+ this.resolve_implicit_levels();
1751
+ this.reinsert_formatting_codes();
1752
+ this.compute_runs();
1753
+ };
1754
+
1755
+ return Bidi;
1756
+
1757
+ })();
1758
+
1759
+ TwitterCldr.Calendar = (function() {
1760
+ function Calendar() {}
1761
+
1762
+ Calendar.calendar = {"additional_formats":{"EHm":"E HH:mm","EHms":"E HH:mm:ss","Ed":"E d","Ehm":"E h:mm a","Ehms":"E h:mm:ss a","Gy":"y G","GyMMM":"MMM y G","GyMMMEd":"E, d MMM y G","GyMMMd":"d MMM y G","H":"HH","Hm":"HH:mm","Hms":"HH:mm:ss","M":"LL","MEd":"E dd/MM","MMM":"LLL","MMMEd":"E d MMM","MMMMd":"d MMMM","MMMd":"d MMM","MMdd":"dd/MM","Md":"dd/MM","d":"d","h":"h a","hm":"h:mm a","hms":"h:mm:ss a","ms":"mm:ss","y":"y","yM":"MM/y","yMEd":"E, dd/MM/y","yMMM":"MMM y","yMMMEd":"E, d MMM y","yMMMM":"MMMM y","yMMMd":"d MMM y","yMd":"dd/MM/y","yQQQ":"QQQ y","yQQQQ":"QQQQ y"},"days":{"format":{"abbreviated":{"fri":"Fri","mon":"Mon","sat":"Sat","sun":"Sun","thu":"Thu","tue":"Tue","wed":"Wed"},"narrow":{"fri":"F","mon":"M","sat":"S","sun":"S","thu":"T","tue":"T","wed":"W"},"short":{"fri":"Fr","mon":"Mo","sat":"Sa","sun":"Su","thu":"Th","tue":"Tu","wed":"We"},"wide":{"fri":"Friday","mon":"Monday","sat":"Saturday","sun":"Sunday","thu":"Thursday","tue":"Tuesday","wed":"Wednesday"}},"stand-alone":{"abbreviated":{"fri":"Fri","mon":"Mon","sat":"Sat","sun":"Sun","thu":"Thu","tue":"Tue","wed":"Wed"},"narrow":{"fri":"F","mon":"M","sat":"S","sun":"S","thu":"T","tue":"T","wed":"W"},"short":{"fri":"Fr","mon":"Mo","sat":"Sa","sun":"Su","thu":"Th","tue":"Tu","wed":"We"},"wide":{"fri":"Friday","mon":"Monday","sat":"Saturday","sun":"Sunday","thu":"Thursday","tue":"Tuesday","wed":"Wednesday"}}},"eras":{"abbr":{"0":"BC","1":"AD"},"name":{"0":"Before Christ","1":"Anno Domini"},"narrow":{"0":"B","1":"A"}},"fields":{"day":"Day","dayperiod":"am/pm","era":"Era","hour":"Hour","minute":"Minute","month":"Month","second":"Second","week":"Week","weekday":"Day of the Week","year":"Year","zone":"Time Zone"},"formats":{"date":{"full":{"pattern":"EEEE, d MMMM y"},"long":{"pattern":"d MMMM y"},"medium":{"pattern":"d MMM y"},"short":{"pattern":"dd/MM/y"}},"datetime":{"full":{"pattern":"{{date}} {{time}}"},"long":{"pattern":"{{date}} {{time}}"},"medium":{"pattern":"{{date}} {{time}}"},"short":{"pattern":"{{date}} {{time}}"}},"time":{"full":{"pattern":"HH:mm:ss zzzz"},"long":{"pattern":"HH:mm:ss z"},"medium":{"pattern":"HH:mm:ss"},"short":{"pattern":"HH:mm"}}},"months":{"format":{"abbreviated":{"1":"Jan","10":"Oct","11":"Nov","12":"Dec","2":"Feb","3":"Mar","4":"Apr","5":"May","6":"Jun","7":"Jul","8":"Aug","9":"Sep"},"narrow":{"1":"J","10":"O","11":"N","12":"D","2":"F","3":"M","4":"A","5":"M","6":"J","7":"J","8":"A","9":"S"},"wide":{"1":"January","10":"October","11":"November","12":"December","2":"February","3":"March","4":"April","5":"May","6":"June","7":"July","8":"August","9":"September"}},"stand-alone":{"abbreviated":{"1":"Jan","10":"Oct","11":"Nov","12":"Dec","2":"Feb","3":"Mar","4":"Apr","5":"May","6":"Jun","7":"Jul","8":"Aug","9":"Sep"},"narrow":{"1":"J","10":"O","11":"N","12":"D","2":"F","3":"M","4":"A","5":"M","6":"J","7":"J","8":"A","9":"S"},"wide":{"1":"January","10":"October","11":"November","12":"December","2":"February","3":"March","4":"April","5":"May","6":"June","7":"July","8":"August","9":"September"}}},"periods":{"format":{"abbreviated":null,"narrow":{"am":"a","noon":"n","pm":"p"},"wide":{"am":"am","noon":"noon","pm":"pm","variant":{"am":"a.m.","pm":"p.m."}}},"stand-alone":{}},"quarters":{"format":{"abbreviated":{"1":"Q1","2":"Q2","3":"Q3","4":"Q4"},"narrow":{"1":1,"2":2,"3":3,"4":4},"wide":{"1":"1st quarter","2":"2nd quarter","3":"3rd quarter","4":"4th quarter"}},"stand-alone":{"abbreviated":{"1":"Q1","2":"Q2","3":"Q3","4":"Q4"},"narrow":{"1":1,"2":2,"3":3,"4":4},"wide":{"1":"1st quarter","2":"2nd quarter","3":"3rd quarter","4":"4th quarter"}}}};
1763
+
1764
+ Calendar.months = function(options) {
1765
+ var key, result, root, val;
1766
+ if (options == null) {
1767
+ options = {};
1768
+ }
1769
+ root = this.get_root("months", options);
1770
+ result = [];
1771
+ for (key in root) {
1772
+ val = root[key];
1773
+ result[parseInt(key) - 1] = val;
1774
+ }
1775
+ return result;
1776
+ };
1777
+
1778
+ Calendar.weekdays = function(options) {
1779
+ if (options == null) {
1780
+ options = {};
1781
+ }
1782
+ return this.get_root("days", options);
1783
+ };
1784
+
1785
+ Calendar.get_root = function(key, options) {
1786
+ var format, names_form, root, _ref4;
1787
+ if (options == null) {
1788
+ options = {};
1789
+ }
1790
+ root = this.calendar[key];
1791
+ names_form = options["names_form"] || "wide";
1792
+ format = options.format || ((root != null ? (_ref4 = root["stand-alone"]) != null ? _ref4[names_form] : void 0 : void 0) != null ? "stand-alone" : "format");
1793
+ return root[format][names_form];
1794
+ };
1795
+
1796
+ return Calendar;
1797
+
1798
+ })();
1799
+
1800
+ TwitterCldr = {};
1801
+
1802
+ TwitterCldr.NumberParser = (function() {
1803
+ function NumberParser() {
1804
+ this.group_separator = ",";
1805
+ this.decimal_separator = "\\\.";
1806
+ this.separator_chars = ['\\.', ',', '\\s'].join("");
1807
+ }
1808
+
1809
+ NumberParser.prototype.parse = function(number_text, options) {
1810
+ var num, num_list, punct_list, result, separators, token, tokens, _i, _len;
1811
+ if (options == null) {
1812
+ options = {};
1813
+ }
1814
+ if (options.strict === void 0) {
1815
+ options.strict = true;
1816
+ }
1817
+ separators = this.get_separators(options.strict);
1818
+ tokens = this.tokenize(number_text, separators.group, separators.decimal);
1819
+ num_list = [];
1820
+ punct_list = [];
1821
+ for (_i = 0, _len = tokens.length; _i < _len; _i++) {
1822
+ token = tokens[_i];
1823
+ if (token.type === "numeric") {
1824
+ num_list.push(token);
1825
+ } else {
1826
+ punct_list.push(token);
1827
+ }
1828
+ }
1829
+ if (!this.is_punct_valid(punct_list)) {
1830
+ throw "Invalid number";
1831
+ }
1832
+ if (!(tokens.slice(-1)[0] && tokens.slice(-1)[0]["type"] === "numeric")) {
1833
+ throw "Invalid number";
1834
+ }
1835
+ if (punct_list.slice(-1)[0] && punct_list.slice(-1)[0]["type"] === "decimal") {
1836
+ result = parseInt(((function() {
1837
+ var _j, _len1, _ref4, _results;
1838
+ _ref4 = num_list.slice(0, -1);
1839
+ _results = [];
1840
+ for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) {
1841
+ num = _ref4[_j];
1842
+ _results.push(num.value);
1843
+ }
1844
+ return _results;
1845
+ })()).join(""));
1846
+ return result + parseInt(num_list.slice(-1)[0].value) / Math.pow(10.0, num_list.slice(-1)[0].value.length);
1847
+ } else {
1848
+ return parseInt(((function() {
1849
+ var _j, _len1, _results;
1850
+ _results = [];
1851
+ for (_j = 0, _len1 = num_list.length; _j < _len1; _j++) {
1852
+ num = num_list[_j];
1853
+ _results.push(num.value);
1854
+ }
1855
+ return _results;
1856
+ })()).join(""));
1857
+ }
1858
+ };
1859
+
1860
+ NumberParser.prototype.try_parse = function(number_text, default_value, callback, options) {
1861
+ var err, result;
1862
+ if (default_value == null) {
1863
+ default_value = null;
1864
+ }
1865
+ if (callback == null) {
1866
+ callback = null;
1867
+ }
1868
+ if (options == null) {
1869
+ options = {};
1870
+ }
1871
+ result = (function() {
1872
+ try {
1873
+ return this.parse(number_text, options);
1874
+ } catch (_error) {
1875
+ err = _error;
1876
+ if (err.toString() === "Invalid number") {
1877
+ return null;
1878
+ } else {
1879
+ throw err;
1880
+ }
1881
+ }
1882
+ }).call(this);
1883
+ if (callback) {
1884
+ return callback(result);
1885
+ } else {
1886
+ return result || default_value;
1887
+ }
1888
+ };
1889
+
1890
+ NumberParser.prototype.is_valid = function(number_text, options) {
1891
+ var err;
1892
+ if (options == null) {
1893
+ options = {};
1894
+ }
1895
+ try {
1896
+ this.parse(number_text, options);
1897
+ return true;
1898
+ } catch (_error) {
1899
+ err = _error;
1900
+ if (err.toString() === "Invalid number") {
1901
+ return false;
1902
+ } else {
1903
+ throw err;
1904
+ }
1905
+ }
1906
+ };
1907
+
1908
+ NumberParser.is_numeric = function(text, separators) {
1909
+ var regexp;
1910
+ if (separators == null) {
1911
+ separators = new NumberParser().separator_chars;
1912
+ }
1913
+ regexp = new RegExp("^[0-9" + separators + "]+$");
1914
+ return regexp.test(text);
1915
+ };
1916
+
1917
+ NumberParser.prototype.is_punct_valid = function(punct_list) {
1918
+ var index, punct, valid, _i, _len;
1919
+ valid = true;
1920
+ for (index = _i = 0, _len = punct_list.length; _i < _len; index = ++_i) {
1921
+ punct = punct_list[index];
1922
+ valid = valid && (punct.type === "group" || (index === (punct_list.length - 1) && punct.type === "decimal"));
1923
+ }
1924
+ return valid;
1925
+ };
1926
+
1927
+ NumberParser.prototype.get_separators = function(strict) {
1928
+ var decimal, group;
1929
+ if (strict == null) {
1930
+ strict = false;
1931
+ }
1932
+ group = strict ? this.group_separator : this.separator_chars;
1933
+ decimal = strict ? this.decimal_separator : this.separator_chars;
1934
+ return {
1935
+ group: group,
1936
+ decimal: decimal
1937
+ };
1938
+ };
1939
+
1940
+ NumberParser.prototype.tokenize = function(number_text, group, decimal) {
1941
+ var match, match_data, regexp, token, tokens, _i, _len, _results;
1942
+ regexp = new RegExp("([\\d]*)([" + group + "]{0,1})([\\d]*)([" + decimal + "]{0,1})([\\d]*)");
1943
+ match_data = number_text.split(regexp);
1944
+ match_data = (function() {
1945
+ var _i, _len, _results;
1946
+ _results = [];
1947
+ for (_i = 0, _len = match_data.length; _i < _len; _i++) {
1948
+ match = match_data[_i];
1949
+ if (match !== "") {
1950
+ _results.push(match);
1951
+ }
1952
+ }
1953
+ return _results;
1954
+ })();
1955
+ tokens = (function() {
1956
+ var _i, _len, _results;
1957
+ _results = [];
1958
+ for (_i = 0, _len = match_data.length; _i < _len; _i++) {
1959
+ match = match_data[_i];
1960
+ _results.push(this.identify(match, group, decimal));
1961
+ }
1962
+ return _results;
1963
+ }).call(this);
1964
+ _results = [];
1965
+ for (_i = 0, _len = tokens.length; _i < _len; _i++) {
1966
+ token = tokens[_i];
1967
+ if (token.type !== null) {
1968
+ _results.push(token);
1969
+ }
1970
+ }
1971
+ return _results;
1972
+ };
1973
+
1974
+ NumberParser.prototype.identify = function(text, group, decimal) {
1975
+ var decimal_regexp, group_regexp, result;
1976
+ result = {
1977
+ value: text
1978
+ };
1979
+ result.type = NumberParser.is_numeric(result.value, "") ? "numeric" : (group_regexp = new RegExp("[" + group + "]"), decimal_regexp = new RegExp("[" + decimal + "]"), group_regexp.test(result.value) ? "group" : decimal_regexp.test(result.value) ? "decimal" : null);
1980
+ return result;
1981
+ };
1982
+
1983
+ return NumberParser;
1984
+
1985
+ })();
1986
+
1987
+ root = typeof exports !== "undefined" && exports !== null ? exports : (this.TwitterCldr = {}, this.TwitterCldr);
1988
+
1989
+ for (key in TwitterCldr) {
1990
+ obj = TwitterCldr[key];
1991
+ root[key] = obj;
1992
+ }
1993
+
1994
+ }).call(this);